rdev/app-vision-roadmap.md
jordan 853ec4cf81 fix: go.work race condition with batch components and idempotent provisioning
Three coordinated fixes for CI pipeline race conditions:

1. Woodpecker step dependencies: Added depends_on: [deps] to all 6 component
   templates (service, worker, cli, app-astro, app-react, app-nextjs) so build
   steps wait for go work sync to complete.

2. Idempotent resource provisioning: Modified provisionResources() to check
   for existing database/cache before creating, preventing "already exists"
   errors on component re-adds.

3. Batch component endpoint: POST /projects/{id}/components/batch enables
   atomic multi-component additions in a single git commit. Validates all
   components upfront, provisions infra sequentially, commits code components
   atomically.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 12:31:40 -07:00

43 lines
2.3 KiB
Markdown

# App Vision Roadmap
This roadmap bridges the gap between the current `rdev` CLI engine and the **Orchard Studio** vision.
## Phase 1: Engine Reliability (The "Slack Path")
**Goal:** Prove `rdev` can autonomously build complex systems via CLI/Scripts.
* *Why:* If the engine can't build Slack/Aeries, the UI is useless.
* **Tasks:**
1. [ ] **Templates:** Complete `worker`, `postgres`, `redis`, `app-react`.
2. **Shared Libs:** Implement `pkg/auth`, `pkg/queue`.
3. **Validation:** successfully run `slackpath-1` (Auth) and `slackpath-2` (Async).
4. **Refactor:** Ensure all templates use the "Secret-First" config pattern.
## Phase 2: The API Lift (The "Tree Runner Migration")
**Goal:** Move orchestration state from local JSON files to the `rdev` Database.
* *Why:* The Web UI cannot read a JSON file on my laptop. It needs an API.
* **Tasks:**
1. [ ] **Schema:** Create `operations` and `operation_steps` tables in CockroachDB.
2. **Port Logic:** Rewrite `tree-runner.sh` logic into `internal/service/orchestrator.go`.
3. **Endpoints:** Expose `POST /operations/start`, `GET /operations/{id}`.
4. **Verify:** Run `slackpath-3` using `curl` calls to the new API instead of the shell script.
## Phase 3: The Architect & Blueprint (The "Brain")
**Goal:** Enable the "Conversation -> Spec" loop.
* **Tasks:**
1. [ ] **Agent:** Create `architect` persona (specialized in requirements gathering).
2. **API:** Create `POST /blueprint/chat` endpoint.
3. **Logic:** Implement the "Clarification Loop" (Agent outputting questions vs Agent outputting specs).
4. **Verify:** Have a conversation via `curl` that results in a validated Spec artifact.
## Phase 4: Orchard Studio UI (The "Face")
**Goal:** Build the Next.js Frontend.
* **Tasks:**
1. [ ] **Scaffold:** Create `apps/studio` in the `rdev` repo.
2. **UI:** Build the Split Screen (Chat + Preview).
3. **Integration:** Connect to `rdev-api` (Auth, Operations, Blueprints).
4. **Streaming:** Implement the WebSocket client for build logs.
## Phase 5: The "Aeries" Launch
**Goal:** Use Orchard Studio to build Aeries from scratch.
* **Action:** Click "Social World Seed". Chat with Architect. Watch Aeries deploy.
* **Success Criteria:** A working multi-agent simulation built without writing a single line of code manually.