Foundary cookbook
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed

This commit is contained in:
jordan 2026-02-09 01:06:10 -07:00
parent a69eb7e587
commit 88e4eb7f3f

View File

@ -80,44 +80,49 @@ steps:
- sdlc_initialized: .data.initialized - sdlc_initialized: .data.initialized
# ============================================================ # ============================================================
# SECTION 2: ARCHITECT (Shell Stubs for Future Chat/Blueprint APIs) # SECTION 2: ARCHITECT
# Documents the conversational architect flow that will use # Conversational product design via architect API.
# POST /projects/{id}/chat and GET /projects/{id}/blueprints # Starts a conversation, refines architecture, generates blueprint.
# ============================================================ # ============================================================
architect-session: architect-start:
description: "Simulate architect conversation (stub for future chat API)" description: "Start architect conversation about product goals"
depends_on: [verify-sdlc] depends_on: [verify-sdlc]
action: shell action: api
command: | method: POST
cat <<'ARCHITECT' endpoint: "/projects/{{ .outputs.create-project.project_id }}/architect/start"
============================================================ body:
FOUNDARY ARCHITECT SESSION (Future: POST /projects/{id}/chat) prompt: "I want to build a task management studio. The product needs: 1) Core data models for Task, Project, Label, and Assignment entities with full CRUD stored in Postgres via studio-db, exposed as REST endpoints on studio-api. 2) A React frontend in studio-ui with a Kanban board (drag-and-drop columns: To Do, In Progress, Done), task creation/edit modals, and filtering by label and assignee. Propose the architecture and identify the two MVP features we should build."
============================================================ outputs:
The architect conversation would: - conversation_id: .data.id
1. Discuss product goals for a task management studio
2. Identify core entities: projects, tasks, labels, assignments
3. Propose two features for MVP:
- Feature 1: data-models (Core Data Models & Persistence)
- Feature 2: task-management-ui (Task Management UI)
4. Generate blueprint (Future: GET /projects/{id}/blueprints)
Feature definitions for downstream SDLC: architect-refine:
{ description: "Refine architecture with component details"
"features": [ depends_on: [architect-start]
{ action: api
"slug": "data-models", method: POST
"title": "Core Data Models & Persistence", endpoint: "/projects/{{ .outputs.create-project.project_id }}/architect/continue/{{ .outputs.architect-start.conversation_id }}"
"requirements": "Define Task, Project, Label, and Assignment entities with full CRUD. Postgres storage via studio-db. REST endpoints on studio-api. Include migrations, repository layer, service layer, and handler tests." body:
}, message: "Good. Let's define exactly two features for the MVP: Feature 1 'data-models' covers the persistence layer (Task, Project, Label, Assignment entities, migrations, repository layer, service layer, handler tests). Feature 2 'task-management-ui' covers the React frontend (Kanban board, task CRUD modals, label/assignee filters). Feature 2 depends on Feature 1 being complete since it consumes the API. Please confirm this breakdown and note any architectural considerations."
{
"slug": "task-management-ui", architect-generate-blueprint:
"title": "Task Management UI", description: "Generate structured blueprint from conversation"
"requirements": "React UI in studio-ui for managing tasks. Kanban board view with drag-and-drop columns (To Do, In Progress, Done). Task creation/edit modal. Filter by label and assignee. Connects to studio-api REST endpoints." depends_on: [architect-refine]
} action: api
] method: POST
} endpoint: "/projects/{{ .outputs.create-project.project_id }}/architect/generate-blueprint/{{ .outputs.architect-start.conversation_id }}"
ARCHITECT body:
echo "Architect session complete — feature definitions ready" name: "foundary-studio-mvp"
outputs:
- blueprint_id: .data.blueprint.id
architect-verify-blueprint:
description: "Verify blueprint was persisted"
depends_on: [architect-generate-blueprint]
action: api
method: GET
endpoint: "/projects/{{ .outputs.create-project.project_id }}/blueprints/{{ .outputs.architect-generate-blueprint.blueprint_id }}"
outputs:
- blueprint_name: .data.name
# ============================================================ # ============================================================
# SECTION 3: FEATURE 1 — Core Data Models (draft → released) # SECTION 3: FEATURE 1 — Core Data Models (draft → released)
@ -127,7 +132,7 @@ steps:
# --- Phase 1: Draft --- # --- Phase 1: Draft ---
f1-create-feature: f1-create-feature:
description: "Create data-models feature in draft phase" description: "Create data-models feature in draft phase"
depends_on: [architect-session] depends_on: [architect-verify-blueprint]
action: api action: api
method: POST method: POST
endpoint: "/projects/{{ .outputs.create-project.project_id }}/sdlc/features" endpoint: "/projects/{{ .outputs.create-project.project_id }}/sdlc/features"