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>
4.2 KiB
4.2 KiB
Orchard Studio: The Interactive Foundry
Vision: A "Deploy First, Code Later" platform where users build software through conversation with an Architect Agent, watching their application evolve in real-time.
1. The Core Philosophy
Current AI coding tools (Cursor, Copilot) operate at the file level. Deploying is the last step. Orchard Studio flips this:
- Infrastructure is Day 0. You get a URL and a Database immediately.
- Requirements are Fluid. You don't write a spec document; you have a conversation.
- Agents are Engineers. You don't review PRs line-by-line; you review functionality and intent.
2. The User Experience (The "Aeries" Flow)
Phase 1: Genesis (Template Selection)
- UI: A visual catalog of "Seeds" (Templates).
- Option A: "SaaS Starter" (Auth + Billing + API).
- Option B: "Social World" (Realtime + Spatial).
- Option C: "Empty Canvas" (Hello World).
- Action: User clicks "Spawn".
- System:
rdevimmediately provisions K8s namespace, CRDB database, and deploys the Skeleton. - Result: User sees a green "Live" badge and a URL:
https://cool-project.threesix.ai.
Phase 2: The Consultation (The Architect)
- UI: A split screen. Left side is the Live App Preview. Right side is the Architect Chat.
- Interaction:
- User: "I want users to be able to post photos of their cats."
- Architect: "Sounds good. Should these photos be public, or friends-only?" (Clarifying requirements).
- User: "Public feed, like Instagram."
- Architect: "Understood. I'll add a
Postmodel, image storage, and a public feed endpoint."
- The Artifact: The Architect updates a "Blueprint" (a live JSON/Markdown representation of the feature) in the sidebar. The user sees the plan forming.
Phase 3: Materialization (The Build)
- Action: User clicks "Build It".
- System: The Studio bundles the context and sends it to
rdev.rdevtriggers the SDLC: Spec -> Design -> Implement -> Verify.- The Magic: The user sees a "Terminal/Activity" feed in the Studio:
- Check: "Designing Database Schema..."
- Check: "Writing Go Handlers..."
- Check: "Running Tests..."
- Check: "Deploying..."
- Result: The "Live App Preview" refreshes. The feature is now real.
Phase 4: Evolution (Day 2+)
- UI: The user sees a bug or wants a change.
- Interaction: "The cat photos are too big. Make them grid style."
- System:
rdevtreats this as a refactor/style update task.
3. Technical Architecture
The Frontend: orchard-studio
A Next.js application that acts as the control plane.
- Auth: Integrated with
rdevauth. - State: Holds the "Draft" state of features before they are sent to the build engine.
- Socket: Listens to
rdevevents to stream build logs and deployment status.
The Backend: rdev-api Adaptation
We need to expose the "Tree Runner" logic as a managed service.
POST /projects/{id}/blueprint: Updates the desired state.POST /projects/{id}/materialize: Triggers the Agent to reconcile the difference between Current Code and Blueprint.
The Agent: "The Architect"
A specialized persona (system prompt) separate from the "Coder."
- Responsibility: Requirement Elicitation. It doesn't write code; it writes Specs.
- Skill:
interview-user. It knows to ask about edge cases (Auth, Scale, Privacy) before committing to a plan.
4. How this enables "Aeries"
If the goal is a social world:
- Genesis: User spawns "Empty World".
- Consultation: "I want agents that walk around and talk about philosophy."
- Materialization:
rdevdeploys thesimulation-serviceandredis. - Evolution: "Add a weather system."
rdevrefactors the simulation loop to include environmental variables.
5. Roadmap to Reality
- The Engine (Now): Finish
slackpath&aeriestrees to proverdevcan build these systems autonomously. - The API Layer (Next): Expose
rdevcapabilities so a UI can trigger them (not just CLI). - The Studio (Future): Build the Next.js UI that wraps this power in a conversation.