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>
43 lines
2.3 KiB
Markdown
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.
|