From 0be53180c8b02461a39b4ac58d133cef57c81de4 Mon Sep 17 00:00:00 2001 From: ReachableCEO Date: Fri, 24 Oct 2025 08:50:34 -0500 Subject: [PATCH] chore: update repository structure and migrate to new remote Co-authored-by: Qwen-Coder --- AGENTS.md | 131 +++------------- AUDIT1.md | 141 ++++++++++++++++++ AboutMe.md | 15 ++ GUIDEBOOK/AgentRules.md => AgentRules.md | 29 ++-- .../Dockerfile | 86 ----------- .../README.md | 109 -------------- .../TODO.md | 75 ---------- .../docker-compose-wrapper.sh | 67 --------- .../docker-compose.yml | 18 --- .../entrypoint.sh | 49 ------ .../Dockerfile | 42 ------ .../README.md | 100 ------------- .../docker-compose-wrapper.sh | 67 --------- .../docker-compose.yml | 20 --- .../Dockerfile | 14 -- .../README.md | 85 ----------- .../docker-compose-wrapper.sh | 67 --------- .../docker-compose.yml | 18 --- .../Dockerfile | 6 - .../README.md | 82 ---------- .../docker-compose-wrapper.sh | 67 --------- .../docker-compose.yml | 18 --- Docker/README.md | 37 ----- Docker/build-containers.sh | 58 ------- GUIDEBOOK/AboutMe.md | 12 -- GUIDEBOOK/ArchitecturalApproach.md | 47 ------ GUIDEBOOK/StartHere.md | 9 -- GUIDEBOOK/TSYS.md | 36 ----- README.md | 48 ++++-- StartHere.md | 31 ++++ TSYS.md | 54 +++++++ 31 files changed, 320 insertions(+), 1318 deletions(-) create mode 100644 AUDIT1.md create mode 100644 AboutMe.md rename GUIDEBOOK/AgentRules.md => AgentRules.md (73%) delete mode 100644 Docker/RCEO-AIOS-Public-Tools-DocMaker-Base/Dockerfile delete mode 100644 Docker/RCEO-AIOS-Public-Tools-DocMaker-Base/README.md delete mode 100644 Docker/RCEO-AIOS-Public-Tools-DocMaker-Base/TODO.md delete mode 100755 Docker/RCEO-AIOS-Public-Tools-DocMaker-Base/docker-compose-wrapper.sh delete mode 100644 Docker/RCEO-AIOS-Public-Tools-DocMaker-Base/docker-compose.yml delete mode 100644 Docker/RCEO-AIOS-Public-Tools-DocMaker-Base/entrypoint.sh delete mode 100644 Docker/RCEO-AIOS-Public-Tools-DocMaker-Computational/Dockerfile delete mode 100644 Docker/RCEO-AIOS-Public-Tools-DocMaker-Computational/README.md delete mode 100755 Docker/RCEO-AIOS-Public-Tools-DocMaker-Computational/docker-compose-wrapper.sh delete mode 100644 Docker/RCEO-AIOS-Public-Tools-DocMaker-Computational/docker-compose.yml delete mode 100644 Docker/RCEO-AIOS-Public-Tools-DocMaker-Full/Dockerfile delete mode 100644 Docker/RCEO-AIOS-Public-Tools-DocMaker-Full/README.md delete mode 100755 Docker/RCEO-AIOS-Public-Tools-DocMaker-Full/docker-compose-wrapper.sh delete mode 100644 Docker/RCEO-AIOS-Public-Tools-DocMaker-Full/docker-compose.yml delete mode 100644 Docker/RCEO-AIOS-Public-Tools-DocMaker-Light/Dockerfile delete mode 100644 Docker/RCEO-AIOS-Public-Tools-DocMaker-Light/README.md delete mode 100755 Docker/RCEO-AIOS-Public-Tools-DocMaker-Light/docker-compose-wrapper.sh delete mode 100644 Docker/RCEO-AIOS-Public-Tools-DocMaker-Light/docker-compose.yml delete mode 100644 Docker/README.md delete mode 100755 Docker/build-containers.sh delete mode 100644 GUIDEBOOK/AboutMe.md delete mode 100644 GUIDEBOOK/ArchitecturalApproach.md delete mode 100644 GUIDEBOOK/StartHere.md delete mode 100644 GUIDEBOOK/TSYS.md create mode 100644 StartHere.md create mode 100644 TSYS.md diff --git a/AGENTS.md b/AGENTS.md index eba0255..a212af4 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,118 +1,33 @@ -# AIOS-Public Agents +We use GItea exclusively as our docker registry, CI system, git repository and any other package repository needs. +Use conventional commits. Make them beautiful. +Commit frequently and use atomic commits -This document tracks the various agents, tools, and systems used in the AIOS-Public project. +A project may have a collab/rules directory with files such as -## Documentation Tools +SECURITY.md +RELEASE.md +GITFLOW.md -### RCEO-AIOS-Public-Tools-DocMaker Container Family +Those need to be followed for the project. -**Purpose**: Documentation generation containers with multiple document conversion tools, organized in a layered architecture. +Otherwise use best common practices for project/release management, security, compliance, accesibility, internationaliztion etc. -**Container/Stack Names**: -- RCEO-AIOS-Public-Tools-DocMaker-Base: Base documentation environment -- RCEO-AIOS-Public-Tools-DocMaker-Light: Lightweight documentation tools (fast-starting) -- RCEO-AIOS-Public-Tools-DocMaker-Full: Full documentation with LaTeX-full -- RCEO-AIOS-Public-Tools-DocMaker-Computational: All documentation tools plus computational tools (R, Python, Jupyter, Octave) -**Technology Stack**: -- Base: Debian Bookworm slim -- Bash -- Python 3 -- Node.js -- Rust (with Cargo) -- Pandoc -- LaTeX (varies by container: light packages in base/full in full) -- mdBook (installed via Cargo) -- mdbook-pdf (installed via Cargo) -- Typst -- Marp CLI -- Wandmalfarbe pandoc-latex-template: Beautiful Eisvogel LaTeX template for professional PDF generation -- Spell/Grammar checking: - - Hunspell (with en-US dictionary) - - Aspell (with en dictionary) - - Vale (style and grammar linter) -- Reading time estimation: mdstat -- Additional text processing tools -- Computational tools in Computational container: - - R programming language - - Python scientific stack (pandas, numpy, matplotlib, scipy) - - Jupyter notebooks - - GNU Octave - - bc (command-line calculator) +Usew the git details found in collab/.env , never attribute git commits to a non human or system entity. +Don't do any git push, just commit to the local repository. +Keep the top level of the repository clean (collab and output directories only). Anything needed for CI/CD -**Usage**: -- Use Light container for quick documentation tasks (COO mode) -- Use Full container for complex document generation (COO mode) -- Use Computational container for data analysis and R&D work (CTO mode) -- Base container serves as foundation for other containers +The AI manages the output directory as it sees fit. The exact structure depends on the project, but generally it would be something like: -**Docker Configuration**: -- Located in the `Docker/` directory -- Each container has its own subdirectory with Dockerfile and docker-compose.yml -- Maps the project root directory to `/workspace` inside the container -- Uses UID/GID mapping for proper file permissions across environments -- Can be run with `docker-compose up` from each container's directory +output/ + tests/ + docs/ + code/ + frontend/ + backend/ +etc -**Container Usage Map**: -- Light container: COO mode, quick documentation tasks (CV, proposals, governance docs) -- Full container: COO mode, complex document generation with LaTeX-full -- Computational container: CTO mode, data analysis and R&D work (R, Python, Jupyter) +The human and the AI communicate in the collab/ directory tree. +Use a strict workflow of -**Commands to run**: - -# Using the wrapper script (recommended - handles UID/GID automatically): -```bash -# Build and start the lightweight container (COO mode) -cd Docker/RCEO-AIOS-Public-Tools-DocMaker-Light -./docker-compose-wrapper.sh up --build - -# Build and start the full documentation container (COO mode) -cd Docker/RCEO-AIOS-Public-Tools-DocMaker-Full -./docker-compose-wrapper.sh up --build - -# Build and start the computational container (CTO mode) -cd Docker/RCEO-AIOS-Public-Tools-DocMaker-Computational -./docker-compose-wrapper.sh up --build - -# Run commands in containers with automatic user mapping: -./docker-compose-wrapper.sh run docmaker-light [command] # Light container -./docker-compose-wrapper.sh run docmaker-full [command] # Full container -./docker-compose-wrapper.sh run docmaker-computational [command] # Computational container -``` - -# Using docker-compose directly (requires manual environment variables): -```bash -# Set environment variables for proper file permissions -export LOCAL_USER_ID=$(id -u) -export LOCAL_GROUP_ID=$(id -g) - -# Build and start containers -cd Docker/RCEO-AIOS-Public-Tools-DocMaker-Light -docker-compose up --build - -# Example usage of documentation tools with wrapper script: - -# Spell checking with hunspell -./docker-compose-wrapper.sh run docmaker-full hunspell -d en_US document.md - -# Create timeline with Markwhen (not currently available) -# This will be enabled when Markwhen installation issue is resolved -# ./docker-compose-wrapper.sh run docmaker-full markwhen input.mw --output output.html - -# Grammar/style checking with Vale -./docker-compose-wrapper.sh run docmaker-full vale document.md - -# Reading time estimation -./docker-compose-wrapper.sh run docmaker-full python3 -m mdstat document.md - -# Run R analysis (in computational container) -./docker-compose-wrapper.sh run docmaker-computational Rscript analysis.R - -# Run Python analysis (in computational container) -./docker-compose-wrapper.sh run docmaker-computational python analysis.py - -# Check spelling with aspell -./docker-compose-wrapper.sh run docmaker-full aspell -c document.md -``` - -**User Management**: All containers run as non-root user `ReachableCEO-Tools` with UID/GID mapping from the host environment to ensure proper file permissions. \ No newline at end of file +questions -> \ No newline at end of file diff --git a/AUDIT1.md b/AUDIT1.md new file mode 100644 index 0000000..eafd2aa --- /dev/null +++ b/AUDIT1.md @@ -0,0 +1,141 @@ +# GUIDEBOOK Audit #1 + +Date: October 16, 2025 + +## Summary +Comprehensive review of the GUIDEBOOK directory and its contents conducted to identify areas for improvement and optimization. + +## TODO Tracking + +### Completed +- [x] Fixed typos in AboutMe.md +- [x] Updated AgentRules.md to remove reference to collab directory and improve formatting +- [x] Created GUIDEBOOK/README.md as central navigation document + +### In Progress +- [ ] Enhance StartHere.md with more structured guidance +- [ ] Standardize formatting across all GUIDEBOOK files +- [ ] Add last-updated timestamps to documents +- [ ] Consider implementing document status tracking + +### Deferred +- [ ] Update TSYS.md with current business entity information (will be updated later with detailed entity info) + +## Files Reviewed +1. `AboutMe.md` - Personal information and background +2. `AgentRules.md` - Operational guidelines for agents +3. `ArchitecturalApproach.md` - Technical architecture patterns +4. `StartHere.md` - Onboarding and repository purpose +5. `TSYS.md` - Business entity information + +## Analysis and Improvement Suggestions + +### 1. Overall Structure & Organization +**Current State**: The GUIDEBOOK contains 5 files with different purposes but lacks a cohesive structure or navigation system. + +**Suggested Improvements**: +- Add a main `README.md` or `INDEX.md` file in the GUIDEBOOK directory that serves as a table of contents and entry point +- Create cross-links between related documents +- Consider organizing files by function (Personal, Technical, Business) if the number of files grows + +### 2. AboutMe.md - Personal Information +**Issues**: +- Contains outdated information (relocation to Raleigh NC in April 2026 is now in the past) +- Informal tone and formatting +- Missing important professional details +- Contains typos ("entrepenuer", "soverignity", "streamlne") + +**Suggested Improvements**: +- Standardize formatting with consistent headers +- Update or remove time-sensitive information +- Add professional skills, technical expertise, and areas of focus +- Include contact methods or communication preferences +- Add a section on current projects or focus areas +- Proofread and fix typos + +### 3. AgentRules.md - Operational Guidelines +**Strengths**: +- Clear workflow pattern (Question -> Proposal -> Plan -> Prompt -> Implementation) +- Good technical guidelines for Docker containers +- Clear expectations about communication style + +**Issues**: +- Mixed formatting and inconsistent structure +- Contains a rule about the collab directory that is now removed +- Some rules are quite detailed while others are brief +- The title "This file is rules for you to follow" is informal + +**Suggested Improvements**: +- Restructure as a proper markdown document with clear sections +- Update the rules to reflect the current architecture (remove collab reference) +- Add more specific examples where needed +- Create a more professional title like "Agent Interaction Guidelines" +- Possibly break this into multiple focused documents if it grows larger +- Add sections on error handling, rollback procedures, and testing expectations + +### 4. ArchitecturalApproach.md - Technical Architecture +**Strengths**: +- Well-structured with clear sections +- Comprehensive coverage of architectural principles +- Good technical details about security and operations + +**Issues**: +- Could benefit from more specific examples +- Some sections could be expanded with implementation details +- Could include more discussion of trade-offs or considerations + +**Suggested Improvements**: +- Add diagrams or visual representations where helpful +- Include specific examples of good vs. bad implementations +- Add sections on monitoring, logging, and observability +- Include guidance on when to use each architectural pattern +- Add a section on migration patterns for existing systems + +### 5. StartHere.md - Onboarding Guide +**Strengths**: +- Clear explanation of the repository's purpose as a template +- Good metaphor of a "home directory" for project launch + +**Issues**: +- Could be more comprehensive in terms of onboarding +- Lacks specific instructions on next steps +- Could benefit from a more structured approach + +**Suggested Improvements**: +- Add a step-by-step onboarding process +- Include links to important resources +- Add information about repository structure and navigation +- Include guidelines on when and how to copy/clone the template +- Add troubleshooting section for common setup issues + +### 6. TSYS.md - Business Information +**Issues**: +- Contains outdated information (2026 dates are now in the past) +- Complex organizational structure that's hard to follow +- Technical jargon that may not be clear to all readers +- Formatting needs improvement for readability + +**Suggested Improvements**: +- Update or remove time-sensitive information +- Create a clearer organizational chart or hierarchy +- Add a glossary of terms for the various entities +- Include mission statement and core values more prominently +- Add timelines for current initiatives and status updates +- Simplify the explanation of the digital divide solution + +### 7. Cross-cutting Improvements +**Consistency**: +- Standardize the format and style across all GUIDEBOOK files +- Use consistent header levels and formatting +- Implement a consistent terminology throughout +- Consider implementing versioning for important policy documents + +**Maintainability**: +- Add last-updated timestamps to each document +- Create a document for change management procedures +- Consider implementing document status (draft, active, deprecated) + +**Integration**: +- Add cross-references between related documents +- Create a central index or navigation system +- Consider linking to external resources or related documents \ No newline at end of file diff --git a/AboutMe.md b/AboutMe.md new file mode 100644 index 0000000..6b648c4 --- /dev/null +++ b/AboutMe.md @@ -0,0 +1,15 @@ +My full name is Charles N Wyble. I use the online handle @ReachableCEO. +I am a strong believer in digital data sovereignty. I am a firm practitioner of self hosting (using Cloudron on a netcup VPS and soon Coolify on another Cloudron VPS). +I am 41 years old. +I am a Democrat and believe strongly in the rule of law and separation of powers. +I actively avoid the media. +I am a solo entrepreneur creating an ecosystem of entities called TSYS Group. (Please see TSYS.md for more on that) +My professional background is in production technical operations since 2002. +I use many command line AI agents (Codex, Coder, Qwen, Gemini) and wish to remain agent agnostic at all times. +I am located in the United States of America. As of October 2025 I am located in central Texas. +I will be relocating to Raleigh North Carolina in April 2026. +I want to streamline my life using AI and relying on it for all aspects of my professional, knowledge worker actions. +I prefer relaxed but professional engagement and don't want to be flattered. + +--- +*Last updated: October 16, 2025* \ No newline at end of file diff --git a/GUIDEBOOK/AgentRules.md b/AgentRules.md similarity index 73% rename from GUIDEBOOK/AgentRules.md rename to AgentRules.md index 1868cd4..1a6e208 100644 --- a/GUIDEBOOK/AgentRules.md +++ b/AgentRules.md @@ -1,26 +1,35 @@ -This file is rules for you to follow +# Agent Interaction Guidelines +This document outlines the operational guidelines for AI agents working within the AIOS-Public system. -Always refer to me as Charles. Do not ever refer to me as "the human" or "the user" please. -Do not be a sychophant -Avoid fluff in your responses +## Personal Interaction Guidelines -Use this pattern for workflows: +Always refer to me as Charles. Do not ever refer to me as "the human" or "the user" please. +Do not be a sycophant. +Avoid fluff in your responses. -Question -> Proposal -> Plan -> Prompt -> Implementation +## Workflow Pattern +Use this pattern for all workflows: +**Question -> Proposal -> Plan -> Prompt -> Implementation** -Expanding on that: +## Technical Guidelines -Additional Rules: +### Docker Container Management - When working with Docker containers, minimize root usage as much as possible. Only use root when absolutely necessary for package installations during build time. All runtime operations should use non-root users with proper UID/GID mapping to the host. - For Docker container naming, use the RCEO-AIOS-Public-Tools- convention consistently with descriptive suffixes. - Create thin wrapper scripts that detect and handle UID/GID mapping to ensure file permissions work across any host environment. + +### Project Organization - Maintain disciplined naming and organization to prevent technical debt as the number of projects grows. - Keep the repository root directory clean. Place all project-specific files and scripts in appropriate subdirectories rather than at the top level. +- Follow the architectural approach: layered container architecture (base -> specialized layers), consistent security patterns (non-root user with UID/GID mapping), same operational patterns (wrapper scripts), and disciplined naming conventions. + +### Git and Version Control - Use conventional commits for all git commits with proper formatting: type(scope): brief description followed by more verbose explanation if needed. - Commit messages should be beautiful and properly verbose, explaining what was done and why. - Use the LLM's judgment for when to push and tag - delegate these decisions based on the significance of changes. -- All projects should include a collab/ directory with subdirectories: questions, proposals, plans, prompts, and audit. -- Follow the architectural approach: layered container architecture (base -> specialized layers), consistent security patterns (non-root user with UID/GID mapping), same operational patterns (wrapper scripts), and disciplined naming conventions. + +--- +*Last updated: October 16, 2025* \ No newline at end of file diff --git a/Docker/RCEO-AIOS-Public-Tools-DocMaker-Base/Dockerfile b/Docker/RCEO-AIOS-Public-Tools-DocMaker-Base/Dockerfile deleted file mode 100644 index 58f6337..0000000 --- a/Docker/RCEO-AIOS-Public-Tools-DocMaker-Base/Dockerfile +++ /dev/null @@ -1,86 +0,0 @@ -FROM debian:bookworm-slim - -# Avoid prompts from apt -ENV DEBIAN_FRONTEND=noninteractive - -# Install base packages -RUN apt-get update && apt-get install -y \ - bash \ - curl \ - wget \ - git \ - python3 \ - python3-pip \ - nodejs \ - npm \ - build-essential \ - sudo \ - && rm -rf /var/lib/apt/lists/* - -# Create symbolic link for python -RUN ln -s /usr/bin/python3 /usr/bin/python - -# Install Rust (for root - will be accessible to user) -RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y -ENV PATH="/root/.cargo/bin:${PATH}" - -# Install Pandoc -RUN apt-get update && apt-get install -y \ - pandoc \ - && rm -rf /var/lib/apt/lists/* - -# Install lightweight LaTeX -RUN apt-get update && apt-get install -y \ - texlive-latex-base \ - texlive-fonts-recommended \ - texlive-fonts-extra \ - && rm -rf /var/lib/apt/lists/* - -# Install mdBook and mdbook-pdf using cargo -RUN /root/.cargo/bin/cargo install --root /usr/local mdbook mdbook-pdf - -# Install Typst -RUN curl -L https://github.com/typst/typst/releases/latest/download/typst-x86_64-unknown-linux-musl.tar.xz \ - | tar xJ -C /tmp && cp /tmp/typst-x86_64-unknown-linux-musl/typst /usr/local/bin && chmod +x /usr/local/bin/typst - -# Install Marp CLI -RUN npm install -g @marp-team/marp-cli - -# Install Wandmalfarbe pandoc-latex-template for beautiful PDF generation -RUN git clone --depth 1 https://github.com/Wandmalfarbe/pandoc-latex-template.git /tmp/pandoc-latex-template && \ - mkdir -p /root/.local/share/pandoc/templates && \ - # Find and copy any .latex template files to the templates directory - find /tmp/pandoc-latex-template -name "*.latex" -exec cp {} /root/.local/share/pandoc/templates/ \; && \ - # Also install to system-wide location for all users - mkdir -p /usr/share/pandoc/templates && \ - find /tmp/pandoc-latex-template -name "*.latex" -exec cp {} /usr/share/pandoc/templates/ \; && \ - rm -rf /tmp/pandoc-latex-template - -# Install spell/grammar checking tools -RUN apt-get update && apt-get install -y \ - hunspell \ - hunspell-en-us \ - && rm -rf /var/lib/apt/lists/* - -# Install vale for advanced style and grammar checking -RUN curl -L https://github.com/errata-ai/vale/releases/download/v3.12.0/vale_3.12.0_Linux_64-bit.tar.gz \ - | tar xz -C /tmp && cp /tmp/vale /usr/local/bin && chmod +x /usr/local/bin/vale - -# Install text statistics tool for reading time estimation -RUN pip3 install --break-system-packages mdstat textstat - -# Install additional text processing tools -RUN apt-get update && apt-get install -y \ - aspell \ - aspell-en \ - && rm -rf /var/lib/apt/lists/* - -# Add entrypoint script -COPY entrypoint.sh /entrypoint.sh -RUN chmod +x /entrypoint.sh - -# Create a working directory -WORKDIR /workspace - -# Use the entrypoint script to handle user creation -ENTRYPOINT ["/entrypoint.sh"] \ No newline at end of file diff --git a/Docker/RCEO-AIOS-Public-Tools-DocMaker-Base/README.md b/Docker/RCEO-AIOS-Public-Tools-DocMaker-Base/README.md deleted file mode 100644 index 2bf1881..0000000 --- a/Docker/RCEO-AIOS-Public-Tools-DocMaker-Base/README.md +++ /dev/null @@ -1,109 +0,0 @@ -# RCEO-AIOS-Public-Tools-DocMaker-Base Container - -This container is part of the AIOS-Public project and provides a base documentation generation environment. - -## Overview - -The RCEO-AIOS-Public-Tools-DocMaker-Base container is designed for lightweight documentation generation tasks. It includes a range of tools for creating, converting, and processing documentation in various formats without heavy dependencies like full LaTeX. - -## Tools Included - -### Core Tools -- **Base OS**: Debian Bookworm slim -- **Shell**: Bash -- **Programming Languages**: - - Python 3 - - Node.js - - Rust (with Cargo) - -### Documentation Generation -- **Pandoc**: Universal document converter -- **Wandmalfarbe pandoc-latex-template**: Beautiful Eisvogel LaTeX template for professional PDFs -- **mdBook**: Create books from Markdown files -- **mdbook-pdf**: PDF renderer for mdBook -- **Typst**: Modern typesetting system -- **Marp CLI**: Create presentations from Markdown - -### LaTeX -- **TeX Live**: Lightweight LaTeX packages for basic document typesetting - -### Spell and Grammar Checking -- **Hunspell**: Spell checker (with en-US dictionary) -- **Aspell**: Spell checker (with en dictionary) -- **Vale**: Syntax-aware linter for prose - -### Text Analysis -- **mdstat**: Text statistics including reading time estimation - -## Usage - -### Building the Base Container -```bash -# From this directory -cd /home/localuser/AIWorkspace/AIOS-Public/Docker/RCEO-AIOS-Public-Tools-DocMaker-Base - -# Use the wrapper script to automatically detect and set user IDs -./docker-compose-wrapper.sh build - -# Or run commands in the base container with automatic user mapping -./docker-compose-wrapper.sh run docmaker-base [command] - -# Example: Convert a Markdown file to PDF using pandoc -./docker-compose-wrapper.sh run docmaker-base pandoc input.md -o output.pdf - -# Example: Create beautiful PDF using Eisvogel template -./docker-compose-wrapper.sh run docmaker-base pandoc input.md --template eisvogel -o output.pdf - -# Example: Create a timeline with Markwhen -./docker-compose-wrapper.sh run docmaker-base markwhen input.mw --output output.html -``` - -### Using with docker-compose directly -```bash -# Set environment variables and run docker-compose directly -LOCAL_USER_ID=$(id -u) LOCAL_GROUP_ID=$(id -g) docker-compose up --build - -# Or export variables first -export LOCAL_USER_ID=$(id -u) -export LOCAL_GROUP_ID=$(id -g) -docker-compose up -``` - -### Using the wrapper script -```bash -# Build and start the base documentation container with automatic user mapping -./docker-compose-wrapper.sh up --build - -# Start without rebuilding -./docker-compose-wrapper.sh up - -# View container status -./docker-compose-wrapper.sh ps - -# Stop containers -./docker-compose-wrapper.sh down -``` - -## User ID Mapping (For File Permissions) - -The container automatically detects and uses the host user's UID and GID to ensure proper file permissions. This means: - -- Files created inside the container will have the correct ownership on the host -- No more root-owned files after container operations -- Works across different environments (development, CI/CD, cloud) - -The container detects the user ID from the mounted workspace volume. If needed, you can override the default values by setting environment variables: - -```bash -# Set specific user ID and group ID before running docker-compose -export LOCAL_USER_ID=1000 -export LOCAL_GROUP_ID=1000 -docker-compose up -``` - -Or run with inline environment variables: -```bash -LOCAL_USER_ID=1000 LOCAL_GROUP_ID=1000 docker-compose up -``` - -The container runs as a non-root user named `ReachableCEO-Tools` with the detected host user's UID/GID. \ No newline at end of file diff --git a/Docker/RCEO-AIOS-Public-Tools-DocMaker-Base/TODO.md b/Docker/RCEO-AIOS-Public-Tools-DocMaker-Base/TODO.md deleted file mode 100644 index 273efd9..0000000 --- a/Docker/RCEO-AIOS-Public-Tools-DocMaker-Base/TODO.md +++ /dev/null @@ -1,75 +0,0 @@ -# TODO List for RCEO-AIOS-Public-Tools-DocMaker Containers - -This document tracks potential enhancements and tools to be added to the documentation generation container family. - -## Container Structure - -### RCEO-AIOS-Public-Tools-DocMaker-Base -- Base documentation environment with lightweight tools -- Purpose: Foundation for all other containers - -### RCEO-AIOS-Public-Tools-DocMaker-Light -- Lightweight documentation tools (no heavy LaTeX) -- Purpose: Fast-starting documentation tasks (COO mode) - -### RCEO-AIOS-Public-Tools-DocMaker-Full -- Full documentation environment with LaTeX-full -- Purpose: Complex document generation (COO mode) - -### RCEO-AIOS-Public-Tools-DocMaker-Computational -- All documentation tools plus R, Python, Jupyter, Octave -- Purpose: Computational tasks and analysis (CTO mode) - -## Tools Under Consideration - -### [Tool Name Placeholder] -**Purpose**: [Purpose of the tool] - -**Description**: [Detailed description of what this tool does and how it could benefit the container] - -**Technical Details**: -- [Requirements] -- [Installation method] - -**Benefits**: -- [How this enhances the container] - -**Container**: [Base/Light/Full/Computational] -**Priority**: [High/Medium/Low] - -## Completed Items - -### Base Container Tools -- ✅ Core system packages (bash, curl, wget, git) -- ✅ Programming languages (Python 3, Node.js, Rust) -- ✅ Pandoc - Universal document converter -- ✅ Wandmalfarbe pandoc-latex-template - Beautiful Eisvogel LaTeX template for professional PDFs -- ✅ mdBook - Create books from Markdown files -- ✅ mdbook-pdf - PDF renderer for mdBook -- ✅ Typst - Modern typesetting system -- ✅ Marp CLI - Create presentations from Markdown -- ⏳ Markwhen - Interactive text-to-timeline tool (installation failed, needs fix) -- ✅ Light LaTeX packages (texlive-latex-base) -- ✅ Spell/grammar checking tools (Hunspell, Aspell, Vale) -- ✅ Text statistics tools (mdstat, textstat) -- ✅ Non-root user management with UID/GID mapping -- ✅ Entrypoint script for runtime user creation - -### Full Documentation Container Tools -- ✅ All Base Container tools included -- ✅ Full LaTeX (texlive-full) - for complex document generation - -### Computational Container Tools -- ✅ All Full Documentation Container tools included -- ✅ R programming language and common packages -- ✅ Python scientific stack (pandas, numpy, matplotlib, scipy) -- ✅ Jupyter Notebooks with R kernel support -- ✅ GNU Octave -- ✅ Command-line calculator (bc) - -### Organizational Improvements -- ✅ Disciplined naming convention using RCEO-AIOS-Public-Tools- prefix -- ✅ Individual directories per container type -- ✅ Proper documentation with individual README files -- ✅ Organized docker-compose files per container -- ✅ Clear separation of COO vs CTO mode containers \ No newline at end of file diff --git a/Docker/RCEO-AIOS-Public-Tools-DocMaker-Base/docker-compose-wrapper.sh b/Docker/RCEO-AIOS-Public-Tools-DocMaker-Base/docker-compose-wrapper.sh deleted file mode 100755 index 67b0c91..0000000 --- a/Docker/RCEO-AIOS-Public-Tools-DocMaker-Base/docker-compose-wrapper.sh +++ /dev/null @@ -1,67 +0,0 @@ -#!/bin/bash -# docker-compose-wrapper.sh - Wrapper script to detect host UID/GID and run docker-compose - -set -e # Exit on any error - -# Detect the UID and GID of the user that owns the workspace directory (parent directory) -WORKSPACE_DIR="$(cd "$(dirname "$0")/../.." && pwd)" -echo "Detecting user ID from workspace directory: $WORKSPACE_DIR" - -if [ -d "$WORKSPACE_DIR" ]; then - DETECTED_USER_ID=$(stat -c %u "$WORKSPACE_DIR" 2>/dev/null || echo 0) - DETECTED_GROUP_ID=$(stat -c %g "$WORKSPACE_DIR" 2>/dev/null || echo 0) - - # If detection failed, try current user - if [ "$DETECTED_USER_ID" = "0" ]; then - DETECTED_USER_ID=$(id -u) - DETECTED_GROUP_ID=$(id -g) - fi -else - # Fallback to current user if workspace directory doesn't exist - DETECTED_USER_ID=$(id -u) - DETECTED_GROUP_ID=$(id -g) -fi - -echo "Detected USER_ID=$DETECTED_USER_ID and GROUP_ID=$DETECTED_GROUP_ID" - -# Set environment variables for docker-compose -export LOCAL_USER_ID=$DETECTED_USER_ID -export LOCAL_GROUP_ID=$DETECTED_GROUP_ID - -# Show usage information -echo "" -echo "Usage: $0 [build|up|run |exec |down|ps]" -echo "" -echo "Examples:" -echo " $0 up # Start services" -echo " $0 build # Build containers" -echo " $0 run docmaker-full bash # Run command in container" -echo " $0 down # Stop and remove containers" -echo "" - -# Check if docker compose (new format) or docker-compose (old format) is available -if command -v docker &> /dev/null && docker compose version &> /dev/null; then - # Use new docker compose format - if [ $# -eq 0 ]; then - echo "No command provided. Running 'docker compose up'..." - docker compose up - else - # Execute the provided docker compose command - echo "Running: docker compose $*" - docker compose "$@" - fi -elif command -v docker-compose &> /dev/null; then - # Fallback to old docker-compose format - if [ $# -eq 0 ]; then - echo "No command provided. Running 'docker-compose up'..." - docker-compose up - else - # Execute the provided docker-compose command - echo "Running: docker-compose $*" - docker-compose "$@" - fi -else - echo "Error: Neither 'docker compose' nor 'docker-compose' command found." - echo "Please install Docker Compose to use this script." - exit 1 -fi \ No newline at end of file diff --git a/Docker/RCEO-AIOS-Public-Tools-DocMaker-Base/docker-compose.yml b/Docker/RCEO-AIOS-Public-Tools-DocMaker-Base/docker-compose.yml deleted file mode 100644 index 53a9730..0000000 --- a/Docker/RCEO-AIOS-Public-Tools-DocMaker-Base/docker-compose.yml +++ /dev/null @@ -1,18 +0,0 @@ -version: '3.8' - -services: - docmaker-base: - build: - context: . - dockerfile: Dockerfile - container_name: RCEO-AIOS-Public-Tools-DocMaker-Base - image: rceo-aios-public-tools-docmaker-base:latest - volumes: - - ../../../:/workspace:rw - working_dir: /workspace - stdin_open: true - tty: true - environment: - - LOCAL_USER_ID=${LOCAL_USER_ID:-1000} - - LOCAL_GROUP_ID=${LOCAL_GROUP_ID:-1000} - user: "${LOCAL_USER_ID:-1000}:${LOCAL_GROUP_ID:-1000}" \ No newline at end of file diff --git a/Docker/RCEO-AIOS-Public-Tools-DocMaker-Base/entrypoint.sh b/Docker/RCEO-AIOS-Public-Tools-DocMaker-Base/entrypoint.sh deleted file mode 100644 index fc5bf57..0000000 --- a/Docker/RCEO-AIOS-Public-Tools-DocMaker-Base/entrypoint.sh +++ /dev/null @@ -1,49 +0,0 @@ -#!/bin/bash -# entrypoint.sh - Entrypoint script to handle user creation and permission setup at runtime - -# Set default values if not provided -USER_ID=${LOCAL_USER_ID:-$(id -u 1000)} -GROUP_ID=${LOCAL_GROUP_ID:-$(id -g 1000)} - -# In case the environment variables are not set properly, detect them from the workspace volume -if [ "$USER_ID" = "$(id -u 0)" ] || [ "$USER_ID" = "0" ]; then - # Detect the UID and GID of the user that owns the workspace directory - if [ -d "/workspace" ]; then - USER_ID=$(stat -c %u /workspace 2>/dev/null || echo 1000) - GROUP_ID=$(stat -c %g /workspace 2>/dev/null || echo 1000) - else - USER_ID=${LOCAL_USER_ID:-1000} - GROUP_ID=${LOCAL_GROUP_ID:-1000} - fi -fi - -echo "Starting with USER_ID=$USER_ID and GROUP_ID=$GROUP_ID" - -# Create the group with specified GID -groupadd -f -g $GROUP_ID -o ReachableCEO-Tools 2>/dev/null || groupmod -g $GROUP_ID -o ReachableCEO-Tools - -# Create the user with specified UID and add to the group -useradd -f -u $USER_ID -g $GROUP_ID -m -s /bin/bash -o ReachableCEO-Tools 2>/dev/null || usermod -u $USER_ID -g $GROUP_ID -o ReachableCEO-Tools - -# Add user to sudo group for any necessary operations -usermod -aG sudo ReachableCEO-Tools 2>/dev/null || true - -# Make sure workspace directory exists and has proper permissions -mkdir -p /workspace -chown -R $USER_ID:$GROUP_ID /workspace - -# Set up proper permissions for Rust and Cargo (if they exist) -mkdir -p /home/ReachableCEO-Tools/.cargo -chown $USER_ID:$GROUP_ID /home/ReachableCEO-Tools/.cargo - -# Set up proper permissions for npm global packages (if they exist) -mkdir -p /home/ReachableCEO-Tools/.npm -chown $USER_ID:$GROUP_ID /home/ReachableCEO-Tools/.npm - -# If there are additional arguments, run them as the created user -if [ $# -gt 0 ]; then - exec su -p ReachableCEO-Tools -c "$*" -else - # Otherwise start an interactive bash shell as the created user - exec su -p ReachableCEO-Tools -c "/bin/bash" -fi \ No newline at end of file diff --git a/Docker/RCEO-AIOS-Public-Tools-DocMaker-Computational/Dockerfile b/Docker/RCEO-AIOS-Public-Tools-DocMaker-Computational/Dockerfile deleted file mode 100644 index 1c0af2f..0000000 --- a/Docker/RCEO-AIOS-Public-Tools-DocMaker-Computational/Dockerfile +++ /dev/null @@ -1,42 +0,0 @@ -FROM rceo-aios-public-tools-docmaker-full:latest - -# Avoid prompts from apt -ENV DEBIAN_FRONTEND=noninteractive - -# Install computational tools -RUN apt-get update && apt-get install -y \ - r-base \ - r-base-dev \ - bc \ - octave \ - && rm -rf /var/lib/apt/lists/* - -# Install Python scientific packages -RUN pip3 install pandas numpy matplotlib scipy jupyter - -# Install R packages (commonly used ones) -RUN R -e "install.packages(c('knitr', 'rmarkdown', 'dplyr', 'ggplot2'), repos='https://cran.rstudio.com/')" - -# Install IRkernel for R in Jupyter -RUN R -e "install.packages('IRkernel', repos='https://cran.rstudio.com/')" - -# Create Jupyter config directory and set up notebook directory -RUN mkdir -p /workspace/notebooks - -# Create Jupyter startup script -RUN echo '#!/bin/bash' > /jupyter_start.sh && \ - echo '# Install R kernel for Jupyter if R is available' >> /jupyter_start.sh && \ - echo 'if command -v R &> /dev/null; then' >> /jupyter_start.sh && \ - echo ' R -e "IRkernel::installspec()" 2>/dev/null || true' >> /jupyter_start.sh && \ - echo 'fi' >> /jupyter_start.sh && \ - echo '# Run Jupyter as the proper user' >> /jupyter_start.sh && \ - echo 'exec su -p ReachableCEO-Tools -c "jupyter notebook --ip=0.0.0.0 --port=8888 --no-browser --allow-root --notebook-dir=/workspace/notebooks"' >> /jupyter_start.sh && \ - chmod +x /jupyter_start.sh - -# Expose Jupyter on port 8888 -EXPOSE 8888 - -# Create a working directory -WORKDIR /workspace - -# The entrypoint from the base image handles user creation \ No newline at end of file diff --git a/Docker/RCEO-AIOS-Public-Tools-DocMaker-Computational/README.md b/Docker/RCEO-AIOS-Public-Tools-DocMaker-Computational/README.md deleted file mode 100644 index cd5c23d..0000000 --- a/Docker/RCEO-AIOS-Public-Tools-DocMaker-Computational/README.md +++ /dev/null @@ -1,100 +0,0 @@ -# RCEO-AIOS-Public-Tools-DocMaker-Computational Container - -This container is part of the AIOS-Public project and provides a comprehensive documentation and computational environment. - -## Overview - -The RCEO-AIOS-Public-Tools-DocMaker-Computational container extends the full documentation environment with computational tools for data analysis, scientific computing, and interactive notebooks. It's designed for CTO mode operations involving R&D and computational work. - -## Tools Included - -Inherits all tools from: -- **RCEO-AIOS-Public-Tools-DocMaker-Full**: All documentation and LaTeX tools - -### Computational Tools -- **R Programming Language**: Statistical computing and data analysis -- **Python Scientific Stack**: - - pandas - Data manipulation - - numpy - Numerical computing - - matplotlib - Visualization - - scipy - Scientific computing -- **Jupyter Notebooks**: Interactive computational environments -- **GNU Octave**: Numerical computations (MATLAB alternative) -- **bc**: Command-line calculator - -## Usage - -### Building the Computational Container -```bash -# From this directory -cd /home/localuser/AIWorkspace/AIOS-Public/Docker/RCEO-AIOS-Public-Tools-DocMaker-Computational - -# Use the wrapper script to automatically detect and set user IDs -./docker-compose-wrapper.sh build - -# Or run commands in the computational container with automatic user mapping -./docker-compose-wrapper.sh run docmaker-computational [command] - -# Example: Run R analysis -./docker-compose-wrapper.sh run docmaker-computational Rscript analysis.R - -# Example: Run Python analysis -./docker-compose-wrapper.sh run docmaker-computational python analysis.py - -# Example: Convert a Markdown file to beautiful PDF using Eisvogel template -./docker-compose-wrapper.sh run docmaker-computational pandoc input.md --template eisvogel -o output.pdf --pdf-engine=xelatex - -# Example: Start Jupyter notebook server -./docker-compose-wrapper.sh up -# Then access at http://localhost:8888 -``` - -### Using with docker-compose directly -```bash -# Set environment variables and run docker-compose directly -LOCAL_USER_ID=$(id -u) LOCAL_GROUP_ID=$(id -g) docker-compose up --build - -# Or export variables first -export LOCAL_USER_ID=$(id -u) -export LOCAL_GROUP_ID=$(id -g) -docker-compose up -``` - -### Using the wrapper script -```bash -# Build and start the computational container with Jupyter access and automatic user mapping -./docker-compose-wrapper.sh up --build - -# Start without rebuilding -./docker-compose-wrapper.sh up - -# View container status -./docker-compose-wrapper.sh ps - -# Stop containers -./docker-compose-wrapper.sh down -``` - -## User ID Mapping (For File Permissions) - -The container automatically detects and uses the host user's UID and GID to ensure proper file permissions. This means: - -- Files created inside the container will have the correct ownership on the host -- No more root-owned files after container operations -- Works across different environments (development, CI/CD, cloud) - -The container detects the user ID from the mounted workspace volume. If needed, you can override the default values by setting environment variables: - -```bash -# Set specific user ID and group ID before running docker-compose -export LOCAL_USER_ID=1000 -export LOCAL_GROUP_ID=1000 -docker-compose up -``` - -Or run with inline environment variables: -```bash -LOCAL_USER_ID=1000 LOCAL_GROUP_ID=1000 docker-compose up -``` - -The container runs as a non-root user named `ReachableCEO-Tools` with the detected host user's UID/GID. \ No newline at end of file diff --git a/Docker/RCEO-AIOS-Public-Tools-DocMaker-Computational/docker-compose-wrapper.sh b/Docker/RCEO-AIOS-Public-Tools-DocMaker-Computational/docker-compose-wrapper.sh deleted file mode 100755 index 67b0c91..0000000 --- a/Docker/RCEO-AIOS-Public-Tools-DocMaker-Computational/docker-compose-wrapper.sh +++ /dev/null @@ -1,67 +0,0 @@ -#!/bin/bash -# docker-compose-wrapper.sh - Wrapper script to detect host UID/GID and run docker-compose - -set -e # Exit on any error - -# Detect the UID and GID of the user that owns the workspace directory (parent directory) -WORKSPACE_DIR="$(cd "$(dirname "$0")/../.." && pwd)" -echo "Detecting user ID from workspace directory: $WORKSPACE_DIR" - -if [ -d "$WORKSPACE_DIR" ]; then - DETECTED_USER_ID=$(stat -c %u "$WORKSPACE_DIR" 2>/dev/null || echo 0) - DETECTED_GROUP_ID=$(stat -c %g "$WORKSPACE_DIR" 2>/dev/null || echo 0) - - # If detection failed, try current user - if [ "$DETECTED_USER_ID" = "0" ]; then - DETECTED_USER_ID=$(id -u) - DETECTED_GROUP_ID=$(id -g) - fi -else - # Fallback to current user if workspace directory doesn't exist - DETECTED_USER_ID=$(id -u) - DETECTED_GROUP_ID=$(id -g) -fi - -echo "Detected USER_ID=$DETECTED_USER_ID and GROUP_ID=$DETECTED_GROUP_ID" - -# Set environment variables for docker-compose -export LOCAL_USER_ID=$DETECTED_USER_ID -export LOCAL_GROUP_ID=$DETECTED_GROUP_ID - -# Show usage information -echo "" -echo "Usage: $0 [build|up|run |exec |down|ps]" -echo "" -echo "Examples:" -echo " $0 up # Start services" -echo " $0 build # Build containers" -echo " $0 run docmaker-full bash # Run command in container" -echo " $0 down # Stop and remove containers" -echo "" - -# Check if docker compose (new format) or docker-compose (old format) is available -if command -v docker &> /dev/null && docker compose version &> /dev/null; then - # Use new docker compose format - if [ $# -eq 0 ]; then - echo "No command provided. Running 'docker compose up'..." - docker compose up - else - # Execute the provided docker compose command - echo "Running: docker compose $*" - docker compose "$@" - fi -elif command -v docker-compose &> /dev/null; then - # Fallback to old docker-compose format - if [ $# -eq 0 ]; then - echo "No command provided. Running 'docker-compose up'..." - docker-compose up - else - # Execute the provided docker-compose command - echo "Running: docker-compose $*" - docker-compose "$@" - fi -else - echo "Error: Neither 'docker compose' nor 'docker-compose' command found." - echo "Please install Docker Compose to use this script." - exit 1 -fi \ No newline at end of file diff --git a/Docker/RCEO-AIOS-Public-Tools-DocMaker-Computational/docker-compose.yml b/Docker/RCEO-AIOS-Public-Tools-DocMaker-Computational/docker-compose.yml deleted file mode 100644 index c245a66..0000000 --- a/Docker/RCEO-AIOS-Public-Tools-DocMaker-Computational/docker-compose.yml +++ /dev/null @@ -1,20 +0,0 @@ -version: '3.8' - -services: - docmaker-computational: - build: - context: . - dockerfile: Dockerfile - container_name: RCEO-AIOS-Public-Tools-DocMaker-Computational - image: rceo-aios-public-tools-docmaker-computational:latest - volumes: - - ../../../:/workspace:rw - working_dir: /workspace - stdin_open: true - tty: true - ports: - - "8888:8888" # Jupyter notebook access - environment: - - LOCAL_USER_ID=${LOCAL_USER_ID:-1000} - - LOCAL_GROUP_ID=${LOCAL_GROUP_ID:-1000} - user: "${LOCAL_USER_ID:-1000}:${LOCAL_GROUP_ID:-1000}" \ No newline at end of file diff --git a/Docker/RCEO-AIOS-Public-Tools-DocMaker-Full/Dockerfile b/Docker/RCEO-AIOS-Public-Tools-DocMaker-Full/Dockerfile deleted file mode 100644 index 4e128bc..0000000 --- a/Docker/RCEO-AIOS-Public-Tools-DocMaker-Full/Dockerfile +++ /dev/null @@ -1,14 +0,0 @@ -FROM rceo-aios-public-tools-docmaker-base:latest - -# Avoid prompts from apt -ENV DEBIAN_FRONTEND=noninteractive - -# Install full LaTeX (the heavy component that takes time) -RUN apt-get update && apt-get install -y \ - texlive-full \ - && rm -rf /var/lib/apt/lists/* - -# Create a working directory -WORKDIR /workspace - -# The entrypoint from the base image handles user creation \ No newline at end of file diff --git a/Docker/RCEO-AIOS-Public-Tools-DocMaker-Full/README.md b/Docker/RCEO-AIOS-Public-Tools-DocMaker-Full/README.md deleted file mode 100644 index d1dca07..0000000 --- a/Docker/RCEO-AIOS-Public-Tools-DocMaker-Full/README.md +++ /dev/null @@ -1,85 +0,0 @@ -# RCEO-AIOS-Public-Tools-DocMaker-Full Container - -This container is part of the AIOS-Public project and provides a comprehensive documentation generation environment with full LaTeX support. - -## Overview - -The RCEO-AIOS-Public-Tools-DocMaker-Full container is designed for comprehensive documentation generation tasks that require full LaTeX functionality. It includes all documentation tools plus the complete TeX Live distribution for advanced document typesetting. - -## Tools Included - -Inherits all tools from: -- **RCEO-AIOS-Public-Tools-DocMaker-Base**: All base documentation generation tools - -### LaTeX -- **TeX Live Full**: Complete LaTeX distribution for advanced document typesetting - -## Usage - -### Building the Full Documentation Container -```bash -# From this directory -cd /home/localuser/AIWorkspace/AIOS-Public/Docker/RCEO-AIOS-Public-Tools-DocMaker-Full - -# Use the wrapper script to automatically detect and set user IDs -./docker-compose-wrapper.sh build - -# Or run commands in the full documentation container with automatic user mapping -./docker-compose-wrapper.sh run docmaker-full [command] - -# Example: Convert a Markdown file to PDF using pandoc with full LaTeX -./docker-compose-wrapper.sh run docmaker-full pandoc input.md -o output.pdf --pdf-engine=xelatex - -# Example: Create beautiful PDF using Eisvogel template -./docker-compose-wrapper.sh run docmaker-full pandoc input.md --template eisvogel -o output.pdf --pdf-engine=xelatex -``` - -### Using with docker-compose directly -```bash -# Set environment variables and run docker-compose directly -LOCAL_USER_ID=$(id -u) LOCAL_GROUP_ID=$(id -g) docker-compose up --build - -# Or export variables first -export LOCAL_USER_ID=$(id -u) -export LOCAL_GROUP_ID=$(id -g) -docker-compose up -``` - -### Using the wrapper script -```bash -# Build and start the full documentation container with automatic user mapping -./docker-compose-wrapper.sh up --build - -# Start without rebuilding -./docker-compose-wrapper.sh up - -# View container status -./docker-compose-wrapper.sh ps - -# Stop containers -./docker-compose-wrapper.sh down -``` - -## User ID Mapping (For File Permissions) - -The container automatically detects and uses the host user's UID and GID to ensure proper file permissions. This means: - -- Files created inside the container will have the correct ownership on the host -- No more root-owned files after container operations -- Works across different environments (development, CI/CD, cloud) - -The container detects the user ID from the mounted workspace volume. If needed, you can override the default values by setting environment variables: - -```bash -# Set specific user ID and group ID before running docker-compose -export LOCAL_USER_ID=1000 -export LOCAL_GROUP_ID=1000 -docker-compose up -``` - -Or run with inline environment variables: -```bash -LOCAL_USER_ID=1000 LOCAL_GROUP_ID=1000 docker-compose up -``` - -The container runs as a non-root user named `ReachableCEO-Tools` with the detected host user's UID/GID. \ No newline at end of file diff --git a/Docker/RCEO-AIOS-Public-Tools-DocMaker-Full/docker-compose-wrapper.sh b/Docker/RCEO-AIOS-Public-Tools-DocMaker-Full/docker-compose-wrapper.sh deleted file mode 100755 index 67b0c91..0000000 --- a/Docker/RCEO-AIOS-Public-Tools-DocMaker-Full/docker-compose-wrapper.sh +++ /dev/null @@ -1,67 +0,0 @@ -#!/bin/bash -# docker-compose-wrapper.sh - Wrapper script to detect host UID/GID and run docker-compose - -set -e # Exit on any error - -# Detect the UID and GID of the user that owns the workspace directory (parent directory) -WORKSPACE_DIR="$(cd "$(dirname "$0")/../.." && pwd)" -echo "Detecting user ID from workspace directory: $WORKSPACE_DIR" - -if [ -d "$WORKSPACE_DIR" ]; then - DETECTED_USER_ID=$(stat -c %u "$WORKSPACE_DIR" 2>/dev/null || echo 0) - DETECTED_GROUP_ID=$(stat -c %g "$WORKSPACE_DIR" 2>/dev/null || echo 0) - - # If detection failed, try current user - if [ "$DETECTED_USER_ID" = "0" ]; then - DETECTED_USER_ID=$(id -u) - DETECTED_GROUP_ID=$(id -g) - fi -else - # Fallback to current user if workspace directory doesn't exist - DETECTED_USER_ID=$(id -u) - DETECTED_GROUP_ID=$(id -g) -fi - -echo "Detected USER_ID=$DETECTED_USER_ID and GROUP_ID=$DETECTED_GROUP_ID" - -# Set environment variables for docker-compose -export LOCAL_USER_ID=$DETECTED_USER_ID -export LOCAL_GROUP_ID=$DETECTED_GROUP_ID - -# Show usage information -echo "" -echo "Usage: $0 [build|up|run |exec |down|ps]" -echo "" -echo "Examples:" -echo " $0 up # Start services" -echo " $0 build # Build containers" -echo " $0 run docmaker-full bash # Run command in container" -echo " $0 down # Stop and remove containers" -echo "" - -# Check if docker compose (new format) or docker-compose (old format) is available -if command -v docker &> /dev/null && docker compose version &> /dev/null; then - # Use new docker compose format - if [ $# -eq 0 ]; then - echo "No command provided. Running 'docker compose up'..." - docker compose up - else - # Execute the provided docker compose command - echo "Running: docker compose $*" - docker compose "$@" - fi -elif command -v docker-compose &> /dev/null; then - # Fallback to old docker-compose format - if [ $# -eq 0 ]; then - echo "No command provided. Running 'docker-compose up'..." - docker-compose up - else - # Execute the provided docker-compose command - echo "Running: docker-compose $*" - docker-compose "$@" - fi -else - echo "Error: Neither 'docker compose' nor 'docker-compose' command found." - echo "Please install Docker Compose to use this script." - exit 1 -fi \ No newline at end of file diff --git a/Docker/RCEO-AIOS-Public-Tools-DocMaker-Full/docker-compose.yml b/Docker/RCEO-AIOS-Public-Tools-DocMaker-Full/docker-compose.yml deleted file mode 100644 index 3dc337c..0000000 --- a/Docker/RCEO-AIOS-Public-Tools-DocMaker-Full/docker-compose.yml +++ /dev/null @@ -1,18 +0,0 @@ -version: '3.8' - -services: - docmaker-full: - build: - context: . - dockerfile: Dockerfile - container_name: RCEO-AIOS-Public-Tools-DocMaker-Full - image: rceo-aios-public-tools-docmaker-full:latest - volumes: - - ../../../:/workspace:rw - working_dir: /workspace - stdin_open: true - tty: true - environment: - - LOCAL_USER_ID=${LOCAL_USER_ID:-1000} - - LOCAL_GROUP_ID=${LOCAL_GROUP_ID:-1000} - user: "${LOCAL_USER_ID:-1000}:${LOCAL_GROUP_ID:-1000}" \ No newline at end of file diff --git a/Docker/RCEO-AIOS-Public-Tools-DocMaker-Light/Dockerfile b/Docker/RCEO-AIOS-Public-Tools-DocMaker-Light/Dockerfile deleted file mode 100644 index 96086df..0000000 --- a/Docker/RCEO-AIOS-Public-Tools-DocMaker-Light/Dockerfile +++ /dev/null @@ -1,6 +0,0 @@ -FROM rceo-aios-public-tools-docmaker-base:latest - -# Create a working directory -WORKDIR /workspace - -# The entrypoint from the base image handles user creation \ No newline at end of file diff --git a/Docker/RCEO-AIOS-Public-Tools-DocMaker-Light/README.md b/Docker/RCEO-AIOS-Public-Tools-DocMaker-Light/README.md deleted file mode 100644 index 356cd9a..0000000 --- a/Docker/RCEO-AIOS-Public-Tools-DocMaker-Light/README.md +++ /dev/null @@ -1,82 +0,0 @@ -# RCEO-AIOS-Public-Tools-DocMaker-Light Container - -This container is part of the AIOS-Public project and provides a lightweight documentation generation environment. - -## Overview - -The RCEO-AIOS-Public-Tools-DocMaker-Light container is designed for fast-starting documentation tasks. It extends the base documentation environment without adding heavy dependencies like full LaTeX, enabling quick startup and efficient operations for lighter documentation tasks. - -## Tools Included - -Inherits all tools from: -- **RCEO-AIOS-Public-Tools-DocMaker-Base**: All base documentation generation tools - -## Usage - -### Building the Lightweight Container -```bash -# From this directory -cd /home/localuser/AIWorkspace/AIOS-Public/Docker/RCEO-AIOS-Public-Tools-DocMaker-Light - -# Use the wrapper script to automatically detect and set user IDs -./docker-compose-wrapper.sh build - -# Or run commands in the lightweight container with automatic user mapping -./docker-compose-wrapper.sh run docmaker-light [command] - -# Example: Convert a Markdown file to PDF using pandoc -./docker-compose-wrapper.sh run docmaker-light pandoc input.md -o output.pdf - -# Example: Create beautiful PDF using Eisvogel template -./docker-compose-wrapper.sh run docmaker-light pandoc input.md --template eisvogel -o output.pdf -``` - -### Using with docker-compose directly -```bash -# Set environment variables and run docker-compose directly -LOCAL_USER_ID=$(id -u) LOCAL_GROUP_ID=$(id -g) docker-compose up --build - -# Or export variables first -export LOCAL_USER_ID=$(id -u) -export LOCAL_GROUP_ID=$(id -g) -docker-compose up -``` - -### Using the wrapper script -```bash -# Build and start the lightweight documentation container with automatic user mapping -./docker-compose-wrapper.sh up --build - -# Start without rebuilding -./docker-compose-wrapper.sh up - -# View container status -./docker-compose-wrapper.sh ps - -# Stop containers -./docker-compose-wrapper.sh down -``` - -## User ID Mapping (For File Permissions) - -The container automatically detects and uses the host user's UID and GID to ensure proper file permissions. This means: - -- Files created inside the container will have the correct ownership on the host -- No more root-owned files after container operations -- Works across different environments (development, CI/CD, cloud) - -The container detects the user ID from the mounted workspace volume. If needed, you can override the default values by setting environment variables: - -```bash -# Set specific user ID and group ID before running docker-compose -export LOCAL_USER_ID=1000 -export LOCAL_GROUP_ID=1000 -docker-compose up -``` - -Or run with inline environment variables: -```bash -LOCAL_USER_ID=1000 LOCAL_GROUP_ID=1000 docker-compose up -``` - -The container runs as a non-root user named `ReachableCEO-Tools` with the detected host user's UID/GID. \ No newline at end of file diff --git a/Docker/RCEO-AIOS-Public-Tools-DocMaker-Light/docker-compose-wrapper.sh b/Docker/RCEO-AIOS-Public-Tools-DocMaker-Light/docker-compose-wrapper.sh deleted file mode 100755 index 67b0c91..0000000 --- a/Docker/RCEO-AIOS-Public-Tools-DocMaker-Light/docker-compose-wrapper.sh +++ /dev/null @@ -1,67 +0,0 @@ -#!/bin/bash -# docker-compose-wrapper.sh - Wrapper script to detect host UID/GID and run docker-compose - -set -e # Exit on any error - -# Detect the UID and GID of the user that owns the workspace directory (parent directory) -WORKSPACE_DIR="$(cd "$(dirname "$0")/../.." && pwd)" -echo "Detecting user ID from workspace directory: $WORKSPACE_DIR" - -if [ -d "$WORKSPACE_DIR" ]; then - DETECTED_USER_ID=$(stat -c %u "$WORKSPACE_DIR" 2>/dev/null || echo 0) - DETECTED_GROUP_ID=$(stat -c %g "$WORKSPACE_DIR" 2>/dev/null || echo 0) - - # If detection failed, try current user - if [ "$DETECTED_USER_ID" = "0" ]; then - DETECTED_USER_ID=$(id -u) - DETECTED_GROUP_ID=$(id -g) - fi -else - # Fallback to current user if workspace directory doesn't exist - DETECTED_USER_ID=$(id -u) - DETECTED_GROUP_ID=$(id -g) -fi - -echo "Detected USER_ID=$DETECTED_USER_ID and GROUP_ID=$DETECTED_GROUP_ID" - -# Set environment variables for docker-compose -export LOCAL_USER_ID=$DETECTED_USER_ID -export LOCAL_GROUP_ID=$DETECTED_GROUP_ID - -# Show usage information -echo "" -echo "Usage: $0 [build|up|run |exec |down|ps]" -echo "" -echo "Examples:" -echo " $0 up # Start services" -echo " $0 build # Build containers" -echo " $0 run docmaker-full bash # Run command in container" -echo " $0 down # Stop and remove containers" -echo "" - -# Check if docker compose (new format) or docker-compose (old format) is available -if command -v docker &> /dev/null && docker compose version &> /dev/null; then - # Use new docker compose format - if [ $# -eq 0 ]; then - echo "No command provided. Running 'docker compose up'..." - docker compose up - else - # Execute the provided docker compose command - echo "Running: docker compose $*" - docker compose "$@" - fi -elif command -v docker-compose &> /dev/null; then - # Fallback to old docker-compose format - if [ $# -eq 0 ]; then - echo "No command provided. Running 'docker-compose up'..." - docker-compose up - else - # Execute the provided docker-compose command - echo "Running: docker-compose $*" - docker-compose "$@" - fi -else - echo "Error: Neither 'docker compose' nor 'docker-compose' command found." - echo "Please install Docker Compose to use this script." - exit 1 -fi \ No newline at end of file diff --git a/Docker/RCEO-AIOS-Public-Tools-DocMaker-Light/docker-compose.yml b/Docker/RCEO-AIOS-Public-Tools-DocMaker-Light/docker-compose.yml deleted file mode 100644 index 11f8b66..0000000 --- a/Docker/RCEO-AIOS-Public-Tools-DocMaker-Light/docker-compose.yml +++ /dev/null @@ -1,18 +0,0 @@ -version: '3.8' - -services: - docmaker-light: - build: - context: . - dockerfile: Dockerfile - container_name: RCEO-AIOS-Public-Tools-DocMaker-Light - image: rceo-aios-public-tools-docmaker-light:latest - volumes: - - ../../../:/workspace:rw - working_dir: /workspace - stdin_open: true - tty: true - environment: - - LOCAL_USER_ID=${LOCAL_USER_ID:-1000} - - LOCAL_GROUP_ID=${LOCAL_GROUP_ID:-1000} - user: "${LOCAL_USER_ID:-1000}:${LOCAL_GROUP_ID:-1000}" \ No newline at end of file diff --git a/Docker/README.md b/Docker/README.md deleted file mode 100644 index d661680..0000000 --- a/Docker/README.md +++ /dev/null @@ -1,37 +0,0 @@ -# RCEO-AIOS-Public Docker Documentation Tools - -This directory contains organized Docker configurations for documentation generation tools in the AIOS-Public project. - -## Container Structure - -Each container has its own subdirectory with specific configuration files: - -- `RCEO-AIOS-Public-Tools-DocMaker-Base/` - Base documentation environment with lightweight tools -- `RCEO-AIOS-Public-Tools-DocMaker-Light/` - Fast-starting documentation tools (no heavy LaTeX) -- `RCEO-AIOS-Public-Tools-DocMaker-Full/` - Full documentation environment with LaTeX-full -- `RCEO-AIOS-Public-Tools-DocMaker-Computational/` - All documentation tools plus R, Python, Jupyter, Octave - -## Container Naming Convention - -All containers follow the `RCEO-AIOS-Public-Tools-` naming convention with descriptive suffixes. - -## Usage - -### Building and Running Individual Containers - -Each container has its own subdirectory with its Dockerfile and docker-compose.yml file. - -```bash -# Navigate to the specific container directory -cd /home/localuser/AIWorkspace/AIOS-Public/Docker/RCEO-AIOS-Public-Tools-DocMaker-Full - -# Build the container -docker-compose build - -# Run the container -docker-compose up --build -``` - -### Individual Container Documentation - -For specific usage information for each container, see the README files in their respective subdirectories. \ No newline at end of file diff --git a/Docker/build-containers.sh b/Docker/build-containers.sh deleted file mode 100755 index f48fcdb..0000000 --- a/Docker/build-containers.sh +++ /dev/null @@ -1,58 +0,0 @@ -#!/bin/bash -# build-containers.sh - Script to build all documentation containers - -echo "Starting build of RCEO-AIOS-Public documentation containers..." -echo "This may take several minutes, especially for the Full and Computational containers due to LaTeX and other heavy packages." -echo "" - -# Build the Base container first (foundation for others) -echo "Building Base container..." -cd /home/localuser/AIWorkspace/AIOS-Public/Docker/RCEO-AIOS-Public-Tools-DocMaker-Base -./docker-compose-wrapper.sh build -if [ $? -ne 0 ]; then - echo "Error building Base container. Exiting." - exit 1 -fi -echo "Base container build complete" -echo "" - -# Build the Light container -echo "Building Light container..." -cd /home/localuser/AIWorkspace/AIOS-Public/Docker/RCEO-AIOS-Public-Tools-DocMaker-Light -./docker-compose-wrapper.sh build -if [ $? -ne 0 ]; then - echo "Error building Light container. Exiting." - exit 1 -fi -echo "Light container build complete" -echo "" - -# Build the Full container (this will take longer due to LaTeX-full) -echo "Building Full container (this may take several minutes due to texlive-full)..." -cd /home/localuser/AIWorkspace/AIOS-Public/Docker/RCEO-AIOS-Public-Tools-DocMaker-Full -./docker-compose-wrapper.sh build -if [ $? -ne 0 ]; then - echo "Error building Full container. Exiting." - exit 1 -fi -echo "Full container build complete" -echo "" - -# Build the Computational container (this will also take some time) -echo "Building Computational container..." -cd /home/localuser/AIWorkspace/AIOS-Public/Docker/RCEO-AIOS-Public-Tools-DocMaker-Computational -./docker-compose-wrapper.sh build -if [ $? -ne 0 ]; then - echo "Error building Computational container. Exiting." - exit 1 -fi -echo "Computational container build complete" -echo "" - -echo "All containers built successfully!" -echo "" -echo "You can now run individual containers with:" -echo " cd /home/localuser/AIWorkspace/AIOS-Public/Docker/RCEO-AIOS-Public-Tools-DocMaker-[type]" -echo " ./docker-compose-wrapper.sh up" -echo "" -echo "Where [type] is: Base, Light, Full, or Computational" \ No newline at end of file diff --git a/GUIDEBOOK/AboutMe.md b/GUIDEBOOK/AboutMe.md deleted file mode 100644 index 9ea5421..0000000 --- a/GUIDEBOOK/AboutMe.md +++ /dev/null @@ -1,12 +0,0 @@ -My full name is Charles N Wyble. I use the online handle @ReachableCEO. -I am a strong believer in digital data soverignity. I am a firm practicer of self hosting (using Cloudron on a netcup vps and soon Coolify on another Cloudron VPS). -I am 41 years old. -I am a democrat and believe strongly in the rule of law and separation of powers. -I actively avoid the media. -I am solo entrepenuer creating an ecosystem of entities called TSYS Group. (Please see TSYS.md for more on that) -My professional background is in production technical operations since 2002 -I use many command line ai agents (codex,coder,qwen,gemini) and wish to remain agent agnostic at all times -I am located in the United States of America . As of October 2025 I am located in central texas -I will be relocating to Raleigh North Carolina in April 2026 -I want to streamlne my life using AI and relying on it for all aspects of my professional, knowledge worker actions. -I prefer relaxed but professional engagement and dont want to be flattered. \ No newline at end of file diff --git a/GUIDEBOOK/ArchitecturalApproach.md b/GUIDEBOOK/ArchitecturalApproach.md deleted file mode 100644 index 218c35a..0000000 --- a/GUIDEBOOK/ArchitecturalApproach.md +++ /dev/null @@ -1,47 +0,0 @@ -# Architectural Approach - -This document captures the architectural approach for project development in the AIOS-Public system. - -## Container Architecture - -### Layered Approach -- Base containers provide foundational tools and libraries -- Specialized containers extend base functionality for specific use cases -- Each layer adds specific capabilities while maintaining consistency - -### Naming Convention -- Use `RCEO-AIOS-Public-Tools-` prefix consistently -- Include descriptive suffixes indicating container purpose -- Follow pattern: `RCEO-AIOS-Public-Tools-[domain]-[type]` - -### Security Patterns -- Minimize root usage during build and runtime -- Implement non-root users for all runtime operations -- Use UID/GID mapping for proper file permissions across environments -- Detect host user IDs automatically through file system inspection - -### Operational Patterns -- Create thin wrapper scripts that handle environment setup -- Use consistent patterns for user ID detection and mapping -- Maintain same operational workflow across all containers -- Provide clear documentation in README files - -### Organization Principles -- Separate COO mode (operational tasks) from CTO mode (R&D tasks) containers -- Create individual directories per container type -- Maintain disciplined file organization to prevent technical debt -- Keep repository root clean with project-specific files in subdirectories - -## Documentation Requirements -- Each container must have comprehensive README -- Include usage examples and environment setup instructions -- Document security and permission handling -- Provide clear container mapping and purpose - -## Implementation Workflow -1. Start with architectural design document -2. Create detailed implementation plan -3. Develop following established patterns -4. Test with sample data/usage -5. Document for end users -6. Commit with conventional commit messages \ No newline at end of file diff --git a/GUIDEBOOK/StartHere.md b/GUIDEBOOK/StartHere.md deleted file mode 100644 index fce02df..0000000 --- a/GUIDEBOOK/StartHere.md +++ /dev/null @@ -1,9 +0,0 @@ -This repository is where I will start all of my AI interactions from. - -Unless we are making new tools, you won't be doing any work in this repository (other than when I tell you to commit/push anything in the tree). - -You will be doing all your work in a new repository that I will tell you about. You will have all of the core knowledge from -the GUIDEBOOK directory files and you will follow the workflow and rules outlined in AgentRules.md in that new project repository. - -Think of this repository like the top level of a users home directory who is hyper organized. These markdown files and docker containers are kind of the dotfiles. -Any work would be done in a sub directory off of the users home directory, not at the top level. \ No newline at end of file diff --git a/GUIDEBOOK/TSYS.md b/GUIDEBOOK/TSYS.md deleted file mode 100644 index 41b1085..0000000 --- a/GUIDEBOOK/TSYS.md +++ /dev/null @@ -1,36 +0,0 @@ -This file documents the TSYS Group. - -Legal Entities (all filed and domiciled in the great state of Texas) - -Turnkey Network Systems LLC (a series LLC) -RackRental.net Operating Company LLC (a stand alone LLC) (all consulting and SAAS operations are run from here) -Suborbital Systems Development Company LLC (a stand alone LLC) (this is my "moonshot" business and will be where all fundraising is done) - -Americans For A Better Network INC (a Texas non profit) (plan to be a 501c3) (want to get a fiscal sponsor by end of 2025) -Side Door Group (a Texas non profit) (plan to be a 501c4) -Side Door Solutions Group INC (a Texas non profit) (super PAC) - - -The overaall goal of TSYS Group is to solve the digital divide through a combination of : - -R&D -Operations -Advocacy/Lobbying/Education - -We are firecly FLO and also our governance materials are open. - -We want our operations/business model to be adopted by other passionate pragmatic individuals to solve big problems (clean water, clean energy, governance, food shortages etc). We believe strongly that only a combination of private enterprise and government can solve these issues. - - -Series of Turnkey Network Systems LLC - -High Flight Network Operating Company (HFNOC) (will be a coop in all states that recognize it) in early formation stages currently . This will be the entity (a collection of sub entities under this banner) that will own and operate (in coop/collective trust) balloons and ground stations for MorseNet (what we are calling the network we are building) - -High Flight Network Finance Company (HFNFC) (will also be a coop just like HFNFC , also in early formation stages currently). This will be the entity that handles network finance/construction/loans etc. The idea is to raise financing from main street. To the extent wall street participates, it's only given financial interest, not governance. -We will not do security bundling and chase returns. The capital will earn a reasonable rate of return and reinvest into the coop to build more networks and keep debt and interest rates low. - -RWSCP - -RWFO - -AP4AP \ No newline at end of file diff --git a/README.md b/README.md index d50e164..679aae8 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,38 @@ -# AIOS-Public +# GUIDEBOOK Index -The @ReachableCEO AI Operating System - Public edition - -All things that the @ReachableCEO wishes to share with the world in how he is using AI for his businesses/revenue generation etc. - -Two other editions exist, as subsets of this one: - -- Personal is for COO (TSYS/WFO) scoped things -- Private is for coaching/therapy/personal development etc - -I spend 80% of my time in public, and the rest between personal/private \ No newline at end of file +Welcome to the AIOS-Public GUIDEBOOK - your comprehensive guide to the AI Operating System template. + +## Overview +The GUIDEBOOK contains essential documentation that serves as the foundation for all AIOS projects. Each document has a specific purpose in the AIOS ecosystem. + +## Document List + +### [AboutMe.md](./AboutMe.md) +Personal information about Charles N Wyble (@ReachableCEO), including background, philosophy, and professional details. + +### [AgentRules.md](./AgentRules.md) +Operational guidelines for AI agents, including interaction rules, workflow patterns, and technical guidelines. + +### [ArchitecturalApproach.md](./ArchitecturalApproach.md) +Technical architecture patterns, including container architecture, security patterns, operational patterns, and implementation workflow. + +### [StartHere.md](./StartHere.md) +Onboarding guide explaining the purpose of the AIOS-Public repository as a template for launching new projects. + +### [TSYS.md](./TSYS.md) +Business information about the TSYS Group, including legal entities and organizational structure. + +### [AUDIT1.md](./AUDIT1.md) +First comprehensive audit of the GUIDEBOOK, containing analysis and improvement suggestions. + +## How to Use This Template +1. Clone this repository to create a new project +2. Review the documentation in the order above to understand the AIOS approach +3. Follow the architectural patterns outlined in ArchitecturalApproach.md +4. Apply the operational guidelines from AgentRules.md in your project work +5. Customize documentation as needed for your specific project + +## Relationship to Other AIOS Editions +- This is the Public edition of AIOS +- Two other editions exist as subsets: Personal and Private +- 80% of focus is on public work, with the rest in personal/private editions \ No newline at end of file diff --git a/StartHere.md b/StartHere.md new file mode 100644 index 0000000..138bf21 --- /dev/null +++ b/StartHere.md @@ -0,0 +1,31 @@ +# Getting Started with AIOS-Public + +This repository serves as the starting point for all AI interactions within the AIOS system. + +## Purpose + +This repository functions as a template for launching new projects. It contains the foundational architecture, documentation, and tools needed to create new repositories following AIOS patterns. + +## Workflow + +- Unless specifically creating new tools for the template itself, AI agents will not work directly in this repository +- All project-specific work happens in separate repositories created from this template +- When instructed, AI agents may commit or push changes to this template repository +- AI agents carry forward the core knowledge from GUIDEBOOK files when working in project repositories +- All work in project repositories follows the workflow and rules outlined in AgentRules.md + +## Repository Structure + +Think of this repository like a highly organized home directory. The markdown files and Docker containers serve as the foundational "dotfiles" that provide consistent patterns across all projects. + +Project work is conducted in subdirectories or separate repositories created from this template, not directly in this template repository. + +## Next Steps + +When beginning work in a new project repository: +1. Review the GUIDEBOOK documentation for architectural patterns +2. Follow the workflow outlined in AgentRules.md +3. Apply the architectural approach described in ArchitecturalApproach.md + +--- +*Last updated: October 16, 2025* \ No newline at end of file diff --git a/TSYS.md b/TSYS.md new file mode 100644 index 0000000..b80fbc6 --- /dev/null +++ b/TSYS.md @@ -0,0 +1,54 @@ +# TSYS Group Documentation + +This file documents the TSYS Group and its entities. + +## Legal Entities + +All entities are filed and domiciled in the great state of Texas. + +### For-Profit Entities +- **Turnkey Network Systems LLC** (a series LLC) +- **RackRental.net Operating Company LLC** (a stand alone LLC) - all consulting and SaaS operations are run from here +- **Suborbital Systems Development Company LLC** (a stand alone LLC) - this is the "moonshot" business and will be where all fundraising is done + +### Non-Profit Entities +- **Americans For A Better Network INC** (a Texas non profit) - plan to be a 501c3, want to get a fiscal sponsor by end of 2025 +- **Side Door Group** (a Texas non profit) - plan to be a 501c4 +- **Side Door Solutions Group INC** (a Texas non profit) - super PAC + +## Mission Statement + +The overall goal of TSYS Group is to solve the digital divide through a combination of: +- R&D +- Operations +- Advocacy/Lobbying/Education + +We are fiercely FLO and our governance materials are open. + +## Business Model Vision + +We want our operations/business model to be adopted by other passionate pragmatic individuals to solve big problems (clean water, clean energy, governance, food shortages etc). We believe strongly that only a combination of private enterprise and government can solve these issues. + +## Series of Turnkey Network Systems LLC + +### High Flight Network Operating Company (HFNOC) +- Will be a coop in all states that recognize it +- Currently in early formation stages +- Will be the entity (a collection of sub entities under this banner) that will own and operate (in coop/collective trust) balloons and ground stations for MorseNet (what we are calling the network we are building) + +### High Flight Network Finance Company (HFNFC) +- Will also be a coop just like HFNOC +- Also in early formation stages currently +- Will handle network finance/construction/loans etc. +- The idea is to raise financing from main street +- To the extent wall street participates, it's only given financial interest, not governance +- Will not do security bundling and chase returns +- The capital will earn a reasonable rate of return and reinvest into the coop to build more networks and keep debt and interest rates low. + +## Abbreviated Entity Names +- RWSCP +- RWFO +- AP4AP + +--- +*Last updated: October 16, 2025* \ No newline at end of file