name: aeries-1-genesis description: "Aeries Phase 1: The Monolith. Creates the Core API and React App for Agent Creation." version: 1 vars: project_name: "" service_name: "core-api" app_name: "creator-ui" feature_slug: "agent-crud" steps: # --- Infrastructure --- create-project: action: api method: POST endpoint: /project body: name: "{{ .vars.project_name }}" description: "Aeries Genesis: The God Game" outputs: - project_id: .data.name - domain: .data.domain add-db: description: Add CockroachDB depends_on: [create-project] action: api method: POST endpoint: "/projects/{{ .outputs.create-project.project_id }}/components" body: { type: postgres, name: "core-db" } add-core: description: Add Core Monolith Service depends_on: [add-db] action: api method: POST endpoint: "/projects/{{ .outputs.create-project.project_id }}/components" body: { type: service, name: "{{ .vars.service_name }}" } add-web: description: Add React Frontend depends_on: [add-core] action: api method: POST endpoint: "/projects/{{ .outputs.create-project.project_id }}/components" body: { type: app-react, name: "{{ .vars.app_name }}" } wait-infra: action: wait_pipeline project_id: "{{ .outputs.create-project.project_id }}" # --- Feature: Agent Creation --- create-feature: action: api method: POST endpoint: "/projects/{{ .outputs.create-project.project_id }}/sdlc/features" body: slug: "{{ .vars.feature_slug }}" title: "Agent Creation Flow" spec-feature: description: "Define Agent Data Model (Name, Bio, Stats)" depends_on: [create-feature] action: api method: POST endpoint: "/projects/{{ .outputs.create-project.project_id }}/builds" body: prompt: "/spec-feature {{ .vars.feature_slug }}" auto_commit: true auto_push: true git_clone_url: "https://git.threesix.ai/jordan/{{ .outputs.create-project.project_id }}.git" outputs: - build_id: .data.task_id wait-spec: description: Wait for spec generation depends_on: [spec-feature] action: wait_build build_id: "{{ .outputs.spec-feature.build_id }}" max_attempts: 120 poll_interval: 5 implement-backend: description: "Implement GET/POST /agents in Core API" depends_on: [wait-spec] action: api method: POST endpoint: "/projects/{{ .outputs.create-project.project_id }}/builds" body: prompt: "/implement-feature {{ .vars.feature_slug }} --scope backend --requirements 'Use pkg/api. DB Table: agents. Fields: id, name, personality_prompt, created_at.'" auto_commit: true auto_push: true git_clone_url: "https://git.threesix.ai/jordan/{{ .outputs.create-project.project_id }}.git" outputs: - build_id: .data.task_id wait-backend: description: Wait for backend implementation depends_on: [implement-backend] action: wait_build build_id: "{{ .outputs.implement-backend.build_id }}" max_attempts: 120 poll_interval: 5 wait-deploy: action: wait_pipeline project_id: "{{ .outputs.create-project.project_id }}" # --- Verification --- verify-api: description: "Test Agent Creation via API" depends_on: [wait-deploy] action: shell command: | DOMAIN="{{ .outputs.create-project.domain }}" echo "Creating Agent..." ID=$(curl -s -X POST "https://$DOMAIN/api/agents" -d '{"name":"Hal","personality":"Helpful"}' -H "Content-Type: application/json" | jq -r .id) echo "Verifying..." RESP=$(curl -s "https://$DOMAIN/api/agents/$ID") if echo "$RESP" | grep -q "Hal"; then exit 0; else exit 1; fi teardown: - action: api method: DELETE endpoint: "/project/{{ .outputs.create-project.project_id }}"