diff --git a/README.md b/README.md index 1c6e5bc..cb53c72 100644 --- a/README.md +++ b/README.md @@ -5,142 +5,47 @@ Development workflow platform. Run, test, and document everything in one place. ## Quick Start ```bash -# Build standalone -python build.py dev -cd gen/standalone && .venv/bin/python run.py - -# Build with room config -python build.py dev --cfg amar -cd gen/amar && .venv/bin/python run.py - +# Build and run standalone +python build.py +cd gen/standalone && docker compose up # Visit http://localhost:12000 + +# Build and run with room config +python build.py --cfg +cd gen//soleprint && docker compose up ``` ## Commands ```bash # Build -python build.py dev # → gen/standalone/ -python build.py dev --cfg # → gen// -python build.py dev --all # → both +python build.py # -> gen/standalone/ +python build.py --cfg # -> gen// +python build.py --all # -> all rooms -# ctrl scripts +# Using ctrl scripts ./ctrl/build.sh # Build standalone -./ctrl/build.sh # Build -./ctrl/build.sh --all # Build all +./ctrl/build.sh # Build room +./ctrl/start.sh # Start standalone +./ctrl/start.sh # Start room +./ctrl/stop.sh # Stop +./ctrl/logs.sh # View logs -./ctrl/start.sh # Start standalone (Docker) -./ctrl/start.sh # Start amar -./ctrl/start.sh -d # Detached -./ctrl/stop.sh # Stop -./ctrl/logs.sh # View logs +# Bare-metal dev (without Docker) +cd gen/standalone && .venv/bin/python run.py ``` -## Adding a New Managed Room +## Adding a New Room -1. Create room config directory: ```bash -mkdir -p cfg/ +# 1. Create room config +mkdir -p cfg/myroom/data +cp cfg/standalone/config.json cfg/myroom/ +cp -r cfg/standalone/data/* cfg/myroom/data/ + +# 2. Build and run +python build.py --cfg myroom +cd gen/myroom/soleprint && docker compose up ``` -2. Add required files: -``` -cfg// -├── .env.example # Environment template -├── docker-compose.yml # Room services (optional) -├── databrowse/depot/ # Database schemas (optional) -├── tester/tests/ # Room-specific tests (optional) -├── monitors/ # Room-specific monitors (optional) -├── models/ # Room-specific models (optional) -└── data/ # Room-specific data files (optional) - ├── depots.json # Doc depots for Atlas - └── shunts.json # Mock connectors -``` - -3. Build and run: -```bash -python build.py dev --cfg -./ctrl/start.sh -``` - -## Systems - -| | System | What it does | -|---|--------|--------------| -| 👣 | **Soleprint** | Core coordinator, routing, landing page | -| 💉 | **Artery** | Connectors to external services | -| 🗺️ | **Atlas** | Actionable documentation | -| 🎛️ | **Station** | Tools and monitors | - -## Structure - -``` -spr/ -├── build.py # Build tool -├── cfg/ # Room configurations -│ ├── soleprint.config.json -│ └── amar/ # AMAR room config -├── ctrl/ # Docker scripts -│ -├── artery/ # Connectors -│ ├── veins/ # Jira, Slack, Google -│ ├── shunts/ # Fake connectors for testing -│ └── plexus/ # Full apps (backend + frontend) -│ -├── atlas/ # Documentation -│ └── books/ # Soleprint docs only -│ -├── station/ # Tools & monitors -│ ├── tools/ # modelgen, tester, datagen -│ └── monitors/ # databrowse -│ -├── soleprint/ # Core (versioned) -│ -├── gen/ # Built instances (gitignored) -│ ├── standalone/ # Base soleprint -│ └── amar/ # With amar config -│ -└── mainroom/ # Orchestration with managed room - ├── amar -> cfg/amar - ├── soleprint/ # Soleprint Docker config - └── ctrl/ # start, stop, deploy scripts -``` - -## Artery Hierarchy - -``` -Vein ──► Pulse ──► Plexus -│ │ │ -│ │ └── Full app (backend + frontend + DB) -│ └── Composed (Vein + Room + Depot) -└── Stateless API connector - -Shunt ── Fake connector for testing -``` - -## Ports - -| Service | Port | -|---------|------| -| Soleprint | 12000 | -| Amar Backend | 8000 | -| Amar Frontend | 3000 | - -## Tools - -| Tool | Purpose | -|------|---------| -| modelgen | Generate models from config | -| tester | BDD/playwright test runner | -| datagen | Test data generation | -| databrowse | SQL data browser | - -## Veins - -| Vein | Auth | -|------|------| -| jira | Token | -| slack | Token | -| google | OAuth2 | - ---- +Or use the generation UI at `/generate`.