@cluesmith/codev 2.0.0-rc.9 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/af.js +2 -2
- package/bin/consult.js +1 -1
- package/dashboard/dist/assets/index-4n9zpWLY.css +32 -0
- package/dashboard/dist/assets/index-b38SaXk5.js +136 -0
- package/dashboard/dist/assets/index-b38SaXk5.js.map +1 -0
- package/dashboard/dist/index.html +14 -0
- package/dist/agent-farm/cli.d.ts.map +1 -1
- package/dist/agent-farm/cli.js +179 -104
- package/dist/agent-farm/cli.js.map +1 -1
- package/dist/agent-farm/commands/architect.d.ts +3 -3
- package/dist/agent-farm/commands/architect.d.ts.map +1 -1
- package/dist/agent-farm/commands/architect.js +20 -147
- package/dist/agent-farm/commands/architect.js.map +1 -1
- package/dist/agent-farm/commands/attach.d.ts +13 -0
- package/dist/agent-farm/commands/attach.d.ts.map +1 -0
- package/dist/agent-farm/commands/attach.js +144 -0
- package/dist/agent-farm/commands/attach.js.map +1 -0
- package/dist/agent-farm/commands/cleanup.d.ts.map +1 -1
- package/dist/agent-farm/commands/cleanup.js +35 -19
- package/dist/agent-farm/commands/cleanup.js.map +1 -1
- package/dist/agent-farm/commands/consult.d.ts +3 -4
- package/dist/agent-farm/commands/consult.d.ts.map +1 -1
- package/dist/agent-farm/commands/consult.js +27 -37
- package/dist/agent-farm/commands/consult.js.map +1 -1
- package/dist/agent-farm/commands/index.d.ts +2 -2
- package/dist/agent-farm/commands/index.d.ts.map +1 -1
- package/dist/agent-farm/commands/index.js +2 -2
- package/dist/agent-farm/commands/index.js.map +1 -1
- package/dist/agent-farm/commands/open.d.ts +4 -2
- package/dist/agent-farm/commands/open.d.ts.map +1 -1
- package/dist/agent-farm/commands/open.js +33 -83
- package/dist/agent-farm/commands/open.js.map +1 -1
- package/dist/agent-farm/commands/send.d.ts +1 -1
- package/dist/agent-farm/commands/send.d.ts.map +1 -1
- package/dist/agent-farm/commands/send.js +70 -79
- package/dist/agent-farm/commands/send.js.map +1 -1
- package/dist/agent-farm/commands/shell.d.ts +15 -0
- package/dist/agent-farm/commands/shell.d.ts.map +1 -0
- package/dist/agent-farm/commands/shell.js +50 -0
- package/dist/agent-farm/commands/shell.js.map +1 -0
- package/dist/agent-farm/commands/spawn-roles.d.ts +80 -0
- package/dist/agent-farm/commands/spawn-roles.d.ts.map +1 -0
- package/dist/agent-farm/commands/spawn-roles.js +278 -0
- package/dist/agent-farm/commands/spawn-roles.js.map +1 -0
- package/dist/agent-farm/commands/spawn-worktree.d.ts +96 -0
- package/dist/agent-farm/commands/spawn-worktree.d.ts.map +1 -0
- package/dist/agent-farm/commands/spawn-worktree.js +305 -0
- package/dist/agent-farm/commands/spawn-worktree.js.map +1 -0
- package/dist/agent-farm/commands/spawn.d.ts +5 -1
- package/dist/agent-farm/commands/spawn.d.ts.map +1 -1
- package/dist/agent-farm/commands/spawn.js +241 -561
- package/dist/agent-farm/commands/spawn.js.map +1 -1
- package/dist/agent-farm/commands/start.d.ts +10 -20
- package/dist/agent-farm/commands/start.d.ts.map +1 -1
- package/dist/agent-farm/commands/start.js +45 -449
- package/dist/agent-farm/commands/start.js.map +1 -1
- package/dist/agent-farm/commands/status.d.ts +2 -0
- package/dist/agent-farm/commands/status.d.ts.map +1 -1
- package/dist/agent-farm/commands/status.js +75 -24
- package/dist/agent-farm/commands/status.js.map +1 -1
- package/dist/agent-farm/commands/stop.d.ts +6 -0
- package/dist/agent-farm/commands/stop.d.ts.map +1 -1
- package/dist/agent-farm/commands/stop.js +49 -109
- package/dist/agent-farm/commands/stop.js.map +1 -1
- package/dist/agent-farm/commands/tower-cloud.d.ts +48 -0
- package/dist/agent-farm/commands/tower-cloud.d.ts.map +1 -0
- package/dist/agent-farm/commands/tower-cloud.js +293 -0
- package/dist/agent-farm/commands/tower-cloud.js.map +1 -0
- package/dist/agent-farm/commands/tower.d.ts +9 -0
- package/dist/agent-farm/commands/tower.d.ts.map +1 -1
- package/dist/agent-farm/commands/tower.js +59 -19
- package/dist/agent-farm/commands/tower.js.map +1 -1
- package/dist/agent-farm/db/index.d.ts +6 -2
- package/dist/agent-farm/db/index.d.ts.map +1 -1
- package/dist/agent-farm/db/index.js +301 -19
- package/dist/agent-farm/db/index.js.map +1 -1
- package/dist/agent-farm/db/migrate.d.ts +0 -4
- package/dist/agent-farm/db/migrate.d.ts.map +1 -1
- package/dist/agent-farm/db/migrate.js +6 -55
- package/dist/agent-farm/db/migrate.js.map +1 -1
- package/dist/agent-farm/db/schema.d.ts +3 -3
- package/dist/agent-farm/db/schema.d.ts.map +1 -1
- package/dist/agent-farm/db/schema.js +25 -19
- package/dist/agent-farm/db/schema.js.map +1 -1
- package/dist/agent-farm/db/types.d.ts +3 -13
- package/dist/agent-farm/db/types.d.ts.map +1 -1
- package/dist/agent-farm/db/types.js +3 -11
- package/dist/agent-farm/db/types.js.map +1 -1
- package/dist/agent-farm/hq-connector.d.ts +2 -6
- package/dist/agent-farm/hq-connector.d.ts.map +1 -1
- package/dist/agent-farm/hq-connector.js +2 -17
- package/dist/agent-farm/hq-connector.js.map +1 -1
- package/dist/agent-farm/lib/cloud-config.d.ts +59 -0
- package/dist/agent-farm/lib/cloud-config.d.ts.map +1 -0
- package/dist/agent-farm/lib/cloud-config.js +143 -0
- package/dist/agent-farm/lib/cloud-config.js.map +1 -0
- package/dist/agent-farm/lib/device-name.d.ts +25 -0
- package/dist/agent-farm/lib/device-name.d.ts.map +1 -0
- package/dist/agent-farm/lib/device-name.js +46 -0
- package/dist/agent-farm/lib/device-name.js.map +1 -0
- package/dist/agent-farm/lib/nonce-store.d.ts +28 -0
- package/dist/agent-farm/lib/nonce-store.d.ts.map +1 -0
- package/dist/agent-farm/lib/nonce-store.js +60 -0
- package/dist/agent-farm/lib/nonce-store.js.map +1 -0
- package/dist/agent-farm/lib/token-exchange.d.ts +18 -0
- package/dist/agent-farm/lib/token-exchange.d.ts.map +1 -0
- package/dist/agent-farm/lib/token-exchange.js +48 -0
- package/dist/agent-farm/lib/token-exchange.js.map +1 -0
- package/dist/agent-farm/lib/tower-client.d.ts +163 -0
- package/dist/agent-farm/lib/tower-client.d.ts.map +1 -0
- package/dist/agent-farm/lib/tower-client.js +233 -0
- package/dist/agent-farm/lib/tower-client.js.map +1 -0
- package/dist/agent-farm/lib/tunnel-client.d.ts +117 -0
- package/dist/agent-farm/lib/tunnel-client.d.ts.map +1 -0
- package/dist/agent-farm/lib/tunnel-client.js +504 -0
- package/dist/agent-farm/lib/tunnel-client.js.map +1 -0
- package/dist/agent-farm/servers/tower-instances.d.ts +82 -0
- package/dist/agent-farm/servers/tower-instances.d.ts.map +1 -0
- package/dist/agent-farm/servers/tower-instances.js +454 -0
- package/dist/agent-farm/servers/tower-instances.js.map +1 -0
- package/dist/agent-farm/servers/tower-routes.d.ts +34 -0
- package/dist/agent-farm/servers/tower-routes.d.ts.map +1 -0
- package/dist/agent-farm/servers/tower-routes.js +1445 -0
- package/dist/agent-farm/servers/tower-routes.js.map +1 -0
- package/dist/agent-farm/servers/tower-server.d.ts +5 -2
- package/dist/agent-farm/servers/tower-server.d.ts.map +1 -1
- package/dist/agent-farm/servers/tower-server.js +157 -475
- package/dist/agent-farm/servers/tower-server.js.map +1 -1
- package/dist/agent-farm/servers/tower-terminals.d.ts +119 -0
- package/dist/agent-farm/servers/tower-terminals.d.ts.map +1 -0
- package/dist/agent-farm/servers/tower-terminals.js +629 -0
- package/dist/agent-farm/servers/tower-terminals.js.map +1 -0
- package/dist/agent-farm/servers/tower-tunnel.d.ts +34 -0
- package/dist/agent-farm/servers/tower-tunnel.d.ts.map +1 -0
- package/dist/agent-farm/servers/tower-tunnel.js +480 -0
- package/dist/agent-farm/servers/tower-tunnel.js.map +1 -0
- package/dist/agent-farm/servers/tower-types.d.ts +86 -0
- package/dist/agent-farm/servers/tower-types.d.ts.map +1 -0
- package/dist/agent-farm/servers/tower-types.js +6 -0
- package/dist/agent-farm/servers/tower-types.js.map +1 -0
- package/dist/agent-farm/servers/tower-utils.d.ts +58 -0
- package/dist/agent-farm/servers/tower-utils.d.ts.map +1 -0
- package/dist/agent-farm/servers/tower-utils.js +182 -0
- package/dist/agent-farm/servers/tower-utils.js.map +1 -0
- package/dist/agent-farm/servers/tower-websocket.d.ts +25 -0
- package/dist/agent-farm/servers/tower-websocket.d.ts.map +1 -0
- package/dist/agent-farm/servers/tower-websocket.js +171 -0
- package/dist/agent-farm/servers/tower-websocket.js.map +1 -0
- package/dist/agent-farm/state.d.ts +6 -2
- package/dist/agent-farm/state.d.ts.map +1 -1
- package/dist/agent-farm/state.js +34 -25
- package/dist/agent-farm/state.js.map +1 -1
- package/dist/agent-farm/types.d.ts +49 -26
- package/dist/agent-farm/types.d.ts.map +1 -1
- package/dist/agent-farm/utils/config.d.ts +0 -5
- package/dist/agent-farm/utils/config.d.ts.map +1 -1
- package/dist/agent-farm/utils/config.js +12 -44
- package/dist/agent-farm/utils/config.js.map +1 -1
- package/dist/agent-farm/utils/deps.d.ts.map +1 -1
- package/dist/agent-farm/utils/deps.js +0 -32
- package/dist/agent-farm/utils/deps.js.map +1 -1
- package/dist/agent-farm/utils/file-tabs.d.ts +27 -0
- package/dist/agent-farm/utils/file-tabs.d.ts.map +1 -0
- package/dist/agent-farm/utils/file-tabs.js +46 -0
- package/dist/agent-farm/utils/file-tabs.js.map +1 -0
- package/dist/agent-farm/utils/gate-status.d.ts +16 -0
- package/dist/agent-farm/utils/gate-status.d.ts.map +1 -0
- package/dist/agent-farm/utils/gate-status.js +79 -0
- package/dist/agent-farm/utils/gate-status.js.map +1 -0
- package/dist/agent-farm/utils/gate-watcher.d.ts +38 -0
- package/dist/agent-farm/utils/gate-watcher.d.ts.map +1 -0
- package/dist/agent-farm/utils/gate-watcher.js +122 -0
- package/dist/agent-farm/utils/gate-watcher.js.map +1 -0
- package/dist/agent-farm/utils/index.d.ts +0 -1
- package/dist/agent-farm/utils/index.d.ts.map +1 -1
- package/dist/agent-farm/utils/index.js +0 -1
- package/dist/agent-farm/utils/index.js.map +1 -1
- package/dist/agent-farm/utils/notifications.d.ts +30 -0
- package/dist/agent-farm/utils/notifications.d.ts.map +1 -0
- package/dist/agent-farm/utils/notifications.js +121 -0
- package/dist/agent-farm/utils/notifications.js.map +1 -0
- package/dist/agent-farm/utils/server-utils.d.ts +5 -5
- package/dist/agent-farm/utils/server-utils.d.ts.map +1 -1
- package/dist/agent-farm/utils/server-utils.js +5 -16
- package/dist/agent-farm/utils/server-utils.js.map +1 -1
- package/dist/agent-farm/utils/session.d.ts +32 -0
- package/dist/agent-farm/utils/session.d.ts.map +1 -0
- package/dist/agent-farm/utils/session.js +57 -0
- package/dist/agent-farm/utils/session.js.map +1 -0
- package/dist/agent-farm/utils/shell.d.ts +9 -22
- package/dist/agent-farm/utils/shell.d.ts.map +1 -1
- package/dist/agent-farm/utils/shell.js +34 -34
- package/dist/agent-farm/utils/shell.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +6 -37
- package/dist/cli.js.map +1 -1
- package/dist/commands/adopt.d.ts.map +1 -1
- package/dist/commands/adopt.js +33 -4
- package/dist/commands/adopt.js.map +1 -1
- package/dist/commands/consult/index.d.ts +13 -2
- package/dist/commands/consult/index.d.ts.map +1 -1
- package/dist/commands/consult/index.js +244 -29
- package/dist/commands/consult/index.js.map +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +96 -79
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +36 -3
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/porch/build-counter.d.ts +5 -0
- package/dist/commands/porch/build-counter.d.ts.map +1 -0
- package/dist/commands/porch/build-counter.js +5 -0
- package/dist/commands/porch/build-counter.js.map +1 -0
- package/dist/commands/porch/checks.d.ts +3 -2
- package/dist/commands/porch/checks.d.ts.map +1 -1
- package/dist/commands/porch/checks.js +8 -2
- package/dist/commands/porch/checks.js.map +1 -1
- package/dist/commands/porch/index.d.ts +4 -0
- package/dist/commands/porch/index.d.ts.map +1 -1
- package/dist/commands/porch/index.js +109 -70
- package/dist/commands/porch/index.js.map +1 -1
- package/dist/commands/porch/next.d.ts +22 -0
- package/dist/commands/porch/next.d.ts.map +1 -0
- package/dist/commands/porch/next.js +571 -0
- package/dist/commands/porch/next.js.map +1 -0
- package/dist/commands/porch/plan.d.ts +11 -1
- package/dist/commands/porch/plan.d.ts.map +1 -1
- package/dist/commands/porch/plan.js +33 -5
- package/dist/commands/porch/plan.js.map +1 -1
- package/dist/commands/porch/prompts.d.ts.map +1 -1
- package/dist/commands/porch/prompts.js +44 -26
- package/dist/commands/porch/prompts.js.map +1 -1
- package/dist/commands/porch/protocol.d.ts +6 -4
- package/dist/commands/porch/protocol.d.ts.map +1 -1
- package/dist/commands/porch/protocol.js +59 -15
- package/dist/commands/porch/protocol.js.map +1 -1
- package/dist/commands/porch/state.d.ts +29 -2
- package/dist/commands/porch/state.d.ts.map +1 -1
- package/dist/commands/porch/state.js +71 -3
- package/dist/commands/porch/state.js.map +1 -1
- package/dist/commands/porch/types.d.ts +45 -2
- package/dist/commands/porch/types.d.ts.map +1 -1
- package/dist/commands/porch/verdict.d.ts +31 -0
- package/dist/commands/porch/verdict.d.ts.map +1 -0
- package/dist/commands/porch/verdict.js +59 -0
- package/dist/commands/porch/verdict.js.map +1 -0
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +18 -6
- package/dist/commands/update.js.map +1 -1
- package/dist/lib/scaffold.d.ts +13 -0
- package/dist/lib/scaffold.d.ts.map +1 -1
- package/dist/lib/scaffold.js +36 -0
- package/dist/lib/scaffold.js.map +1 -1
- package/dist/terminal/index.d.ts +8 -0
- package/dist/terminal/index.d.ts.map +1 -0
- package/dist/terminal/index.js +5 -0
- package/dist/terminal/index.js.map +1 -0
- package/dist/terminal/pty-manager.d.ts +69 -0
- package/dist/terminal/pty-manager.d.ts.map +1 -0
- package/dist/terminal/pty-manager.js +377 -0
- package/dist/terminal/pty-manager.js.map +1 -0
- package/dist/terminal/pty-session.d.ts +104 -0
- package/dist/terminal/pty-session.d.ts.map +1 -0
- package/dist/terminal/pty-session.js +327 -0
- package/dist/terminal/pty-session.js.map +1 -0
- package/dist/terminal/ring-buffer.d.ts +34 -0
- package/dist/terminal/ring-buffer.d.ts.map +1 -0
- package/dist/terminal/ring-buffer.js +94 -0
- package/dist/terminal/ring-buffer.js.map +1 -0
- package/dist/terminal/session-manager.d.ts +115 -0
- package/dist/terminal/session-manager.d.ts.map +1 -0
- package/dist/terminal/session-manager.js +582 -0
- package/dist/terminal/session-manager.js.map +1 -0
- package/dist/terminal/shellper-client.d.ts +66 -0
- package/dist/terminal/shellper-client.d.ts.map +1 -0
- package/dist/terminal/shellper-client.js +234 -0
- package/dist/terminal/shellper-client.js.map +1 -0
- package/dist/terminal/shellper-main.d.ts +19 -0
- package/dist/terminal/shellper-main.d.ts.map +1 -0
- package/dist/terminal/shellper-main.js +153 -0
- package/dist/terminal/shellper-main.js.map +1 -0
- package/dist/terminal/shellper-process.d.ts +75 -0
- package/dist/terminal/shellper-process.d.ts.map +1 -0
- package/dist/terminal/shellper-process.js +279 -0
- package/dist/terminal/shellper-process.js.map +1 -0
- package/dist/terminal/shellper-protocol.d.ts +115 -0
- package/dist/terminal/shellper-protocol.d.ts.map +1 -0
- package/dist/terminal/shellper-protocol.js +214 -0
- package/dist/terminal/shellper-protocol.js.map +1 -0
- package/dist/terminal/shellper-replay-buffer.d.ts +38 -0
- package/dist/terminal/shellper-replay-buffer.d.ts.map +1 -0
- package/dist/terminal/shellper-replay-buffer.js +94 -0
- package/dist/terminal/shellper-replay-buffer.js.map +1 -0
- package/dist/terminal/ws-protocol.d.ts +27 -0
- package/dist/terminal/ws-protocol.d.ts.map +1 -0
- package/dist/terminal/ws-protocol.js +44 -0
- package/dist/terminal/ws-protocol.js.map +1 -0
- package/package.json +17 -5
- package/skeleton/.claude/skills/af/SKILL.md +89 -0
- package/skeleton/.claude/skills/codev/SKILL.md +41 -0
- package/skeleton/.claude/skills/consult/SKILL.md +81 -0
- package/skeleton/.claude/skills/generate-image/SKILL.md +56 -0
- package/skeleton/DEPENDENCIES.md +4 -62
- package/skeleton/builders.md +1 -1
- package/skeleton/consult-types/impl-review.md +18 -9
- package/skeleton/consult-types/integration-review.md +1 -1
- package/skeleton/consult-types/plan-review.md +1 -1
- package/skeleton/consult-types/pr-ready.md +1 -1
- package/skeleton/consult-types/spec-review.md +1 -1
- package/skeleton/porch/prompts/defend.md +1 -1
- package/skeleton/porch/prompts/evaluate.md +2 -2
- package/skeleton/porch/prompts/implement.md +1 -1
- package/skeleton/porch/prompts/plan.md +1 -1
- package/skeleton/porch/prompts/review.md +4 -4
- package/skeleton/porch/prompts/specify.md +1 -1
- package/skeleton/porch/prompts/understand.md +2 -2
- package/skeleton/protocol-schema.json +282 -0
- package/skeleton/protocols/bugfix/builder-prompt.md +60 -0
- package/skeleton/protocols/bugfix/prompts/fix.md +77 -0
- package/skeleton/protocols/bugfix/prompts/investigate.md +77 -0
- package/skeleton/protocols/bugfix/prompts/pr.md +84 -0
- package/skeleton/protocols/bugfix/protocol.json +20 -33
- package/skeleton/protocols/experiment/builder-prompt.md +52 -0
- package/skeleton/protocols/experiment/protocol.json +101 -0
- package/skeleton/protocols/experiment/protocol.md +3 -3
- package/skeleton/protocols/experiment/templates/notes.md +1 -1
- package/skeleton/protocols/maintain/builder-prompt.md +46 -0
- package/skeleton/protocols/maintain/prompts/audit.md +111 -0
- package/skeleton/protocols/maintain/prompts/clean.md +91 -0
- package/skeleton/protocols/maintain/prompts/sync.md +113 -0
- package/skeleton/protocols/maintain/prompts/verify.md +110 -0
- package/skeleton/protocols/maintain/protocol.json +141 -0
- package/skeleton/protocols/maintain/protocol.md +17 -11
- package/skeleton/protocols/protocol-schema.json +54 -1
- package/skeleton/protocols/spir/builder-prompt.md +66 -0
- package/skeleton/protocols/spir/prompts/implement.md +208 -0
- package/skeleton/protocols/{spider → spir}/prompts/plan.md +6 -70
- package/skeleton/protocols/{spider → spir}/prompts/review.md +20 -39
- package/skeleton/protocols/{spider → spir}/prompts/specify.md +24 -59
- package/skeleton/protocols/{spider → spir}/protocol.json +30 -10
- package/skeleton/protocols/{spider → spir}/protocol.md +35 -21
- package/skeleton/protocols/spir/templates/review.md +89 -0
- package/skeleton/protocols/tick/builder-prompt.md +56 -0
- package/skeleton/protocols/tick/protocol.json +7 -2
- package/skeleton/protocols/tick/protocol.md +18 -18
- package/skeleton/protocols/tick/templates/review.md +1 -1
- package/skeleton/resources/commands/agent-farm.md +63 -46
- package/skeleton/resources/commands/codev.md +0 -2
- package/skeleton/resources/commands/overview.md +7 -17
- package/skeleton/resources/workflow-reference.md +4 -4
- package/skeleton/roles/architect.md +151 -306
- package/skeleton/roles/builder.md +115 -332
- package/skeleton/roles/consultant.md +6 -6
- package/skeleton/templates/AGENTS.md +2 -2
- package/skeleton/templates/CLAUDE.md +2 -2
- package/skeleton/templates/cheatsheet.md +7 -5
- package/skeleton/templates/projectlist.md +1 -1
- package/templates/dashboard/index.html +17 -16
- package/templates/dashboard/js/dialogs.js +7 -7
- package/templates/dashboard/js/files.js +2 -2
- package/templates/dashboard/js/main.js +4 -4
- package/templates/dashboard/js/projects.js +3 -3
- package/templates/dashboard/js/tabs.js +1 -1
- package/templates/dashboard/js/utils.js +22 -1
- package/templates/open.html +26 -0
- package/templates/tower.html +731 -91
- package/dist/agent-farm/commands/kickoff.d.ts +0 -20
- package/dist/agent-farm/commands/kickoff.d.ts.map +0 -1
- package/dist/agent-farm/commands/kickoff.js +0 -273
- package/dist/agent-farm/commands/kickoff.js.map +0 -1
- package/dist/agent-farm/commands/rename.d.ts +0 -13
- package/dist/agent-farm/commands/rename.d.ts.map +0 -1
- package/dist/agent-farm/commands/rename.js +0 -33
- package/dist/agent-farm/commands/rename.js.map +0 -1
- package/dist/agent-farm/commands/tutorial.d.ts +0 -10
- package/dist/agent-farm/commands/tutorial.d.ts.map +0 -1
- package/dist/agent-farm/commands/tutorial.js +0 -49
- package/dist/agent-farm/commands/tutorial.js.map +0 -1
- package/dist/agent-farm/commands/util.d.ts +0 -15
- package/dist/agent-farm/commands/util.d.ts.map +0 -1
- package/dist/agent-farm/commands/util.js +0 -108
- package/dist/agent-farm/commands/util.js.map +0 -1
- package/dist/agent-farm/servers/dashboard-server.d.ts +0 -7
- package/dist/agent-farm/servers/dashboard-server.d.ts.map +0 -1
- package/dist/agent-farm/servers/dashboard-server.js +0 -1858
- package/dist/agent-farm/servers/dashboard-server.js.map +0 -1
- package/dist/agent-farm/servers/open-server.d.ts +0 -7
- package/dist/agent-farm/servers/open-server.d.ts.map +0 -1
- package/dist/agent-farm/servers/open-server.js +0 -315
- package/dist/agent-farm/servers/open-server.js.map +0 -1
- package/dist/agent-farm/tutorial/index.d.ts +0 -8
- package/dist/agent-farm/tutorial/index.d.ts.map +0 -1
- package/dist/agent-farm/tutorial/index.js +0 -8
- package/dist/agent-farm/tutorial/index.js.map +0 -1
- package/dist/agent-farm/tutorial/prompts.d.ts +0 -57
- package/dist/agent-farm/tutorial/prompts.d.ts.map +0 -1
- package/dist/agent-farm/tutorial/prompts.js +0 -147
- package/dist/agent-farm/tutorial/prompts.js.map +0 -1
- package/dist/agent-farm/tutorial/runner.d.ts +0 -52
- package/dist/agent-farm/tutorial/runner.d.ts.map +0 -1
- package/dist/agent-farm/tutorial/runner.js +0 -204
- package/dist/agent-farm/tutorial/runner.js.map +0 -1
- package/dist/agent-farm/tutorial/state.d.ts +0 -26
- package/dist/agent-farm/tutorial/state.d.ts.map +0 -1
- package/dist/agent-farm/tutorial/state.js +0 -89
- package/dist/agent-farm/tutorial/state.js.map +0 -1
- package/dist/agent-farm/tutorial/steps/first-spec.d.ts +0 -7
- package/dist/agent-farm/tutorial/steps/first-spec.d.ts.map +0 -1
- package/dist/agent-farm/tutorial/steps/first-spec.js +0 -136
- package/dist/agent-farm/tutorial/steps/first-spec.js.map +0 -1
- package/dist/agent-farm/tutorial/steps/implementation.d.ts +0 -7
- package/dist/agent-farm/tutorial/steps/implementation.d.ts.map +0 -1
- package/dist/agent-farm/tutorial/steps/implementation.js +0 -76
- package/dist/agent-farm/tutorial/steps/implementation.js.map +0 -1
- package/dist/agent-farm/tutorial/steps/index.d.ts +0 -10
- package/dist/agent-farm/tutorial/steps/index.d.ts.map +0 -1
- package/dist/agent-farm/tutorial/steps/index.js +0 -10
- package/dist/agent-farm/tutorial/steps/index.js.map +0 -1
- package/dist/agent-farm/tutorial/steps/planning.d.ts +0 -7
- package/dist/agent-farm/tutorial/steps/planning.d.ts.map +0 -1
- package/dist/agent-farm/tutorial/steps/planning.js +0 -143
- package/dist/agent-farm/tutorial/steps/planning.js.map +0 -1
- package/dist/agent-farm/tutorial/steps/review.d.ts +0 -7
- package/dist/agent-farm/tutorial/steps/review.d.ts.map +0 -1
- package/dist/agent-farm/tutorial/steps/review.js +0 -78
- package/dist/agent-farm/tutorial/steps/review.js.map +0 -1
- package/dist/agent-farm/tutorial/steps/setup.d.ts +0 -7
- package/dist/agent-farm/tutorial/steps/setup.d.ts.map +0 -1
- package/dist/agent-farm/tutorial/steps/setup.js +0 -126
- package/dist/agent-farm/tutorial/steps/setup.js.map +0 -1
- package/dist/agent-farm/tutorial/steps/welcome.d.ts +0 -7
- package/dist/agent-farm/tutorial/steps/welcome.d.ts.map +0 -1
- package/dist/agent-farm/tutorial/steps/welcome.js +0 -50
- package/dist/agent-farm/tutorial/steps/welcome.js.map +0 -1
- package/dist/agent-farm/utils/orphan-handler.d.ts +0 -27
- package/dist/agent-farm/utils/orphan-handler.d.ts.map +0 -1
- package/dist/agent-farm/utils/orphan-handler.js +0 -149
- package/dist/agent-farm/utils/orphan-handler.js.map +0 -1
- package/dist/agent-farm/utils/port-registry.d.ts +0 -58
- package/dist/agent-farm/utils/port-registry.d.ts.map +0 -1
- package/dist/agent-farm/utils/port-registry.js +0 -166
- package/dist/agent-farm/utils/port-registry.js.map +0 -1
- package/dist/agent-farm/utils/terminal-ports.d.ts +0 -18
- package/dist/agent-farm/utils/terminal-ports.d.ts.map +0 -1
- package/dist/agent-farm/utils/terminal-ports.js +0 -35
- package/dist/agent-farm/utils/terminal-ports.js.map +0 -1
- package/dist/commands/pcheck/cache.d.ts +0 -48
- package/dist/commands/pcheck/cache.d.ts.map +0 -1
- package/dist/commands/pcheck/cache.js +0 -170
- package/dist/commands/pcheck/cache.js.map +0 -1
- package/dist/commands/pcheck/evaluator.d.ts +0 -15
- package/dist/commands/pcheck/evaluator.d.ts.map +0 -1
- package/dist/commands/pcheck/evaluator.js +0 -246
- package/dist/commands/pcheck/evaluator.js.map +0 -1
- package/dist/commands/pcheck/index.d.ts +0 -12
- package/dist/commands/pcheck/index.d.ts.map +0 -1
- package/dist/commands/pcheck/index.js +0 -249
- package/dist/commands/pcheck/index.js.map +0 -1
- package/dist/commands/pcheck/parser.d.ts +0 -39
- package/dist/commands/pcheck/parser.d.ts.map +0 -1
- package/dist/commands/pcheck/parser.js +0 -155
- package/dist/commands/pcheck/parser.js.map +0 -1
- package/dist/commands/pcheck/types.d.ts +0 -82
- package/dist/commands/pcheck/types.d.ts.map +0 -1
- package/dist/commands/pcheck/types.js +0 -5
- package/dist/commands/pcheck/types.js.map +0 -1
- package/dist/commands/porch/claude.d.ts +0 -29
- package/dist/commands/porch/claude.d.ts.map +0 -1
- package/dist/commands/porch/claude.js +0 -79
- package/dist/commands/porch/claude.js.map +0 -1
- package/dist/commands/porch/consultation.d.ts +0 -56
- package/dist/commands/porch/consultation.d.ts.map +0 -1
- package/dist/commands/porch/consultation.js +0 -330
- package/dist/commands/porch/consultation.js.map +0 -1
- package/dist/commands/porch/notifications.d.ts +0 -99
- package/dist/commands/porch/notifications.d.ts.map +0 -1
- package/dist/commands/porch/notifications.js +0 -223
- package/dist/commands/porch/notifications.js.map +0 -1
- package/dist/commands/porch/plan-parser.d.ts +0 -38
- package/dist/commands/porch/plan-parser.d.ts.map +0 -1
- package/dist/commands/porch/plan-parser.js +0 -166
- package/dist/commands/porch/plan-parser.js.map +0 -1
- package/dist/commands/porch/protocol-loader.d.ts +0 -46
- package/dist/commands/porch/protocol-loader.d.ts.map +0 -1
- package/dist/commands/porch/protocol-loader.js +0 -262
- package/dist/commands/porch/protocol-loader.js.map +0 -1
- package/dist/commands/porch/repl.d.ts +0 -33
- package/dist/commands/porch/repl.d.ts.map +0 -1
- package/dist/commands/porch/repl.js +0 -206
- package/dist/commands/porch/repl.js.map +0 -1
- package/dist/commands/porch/run.d.ts +0 -15
- package/dist/commands/porch/run.d.ts.map +0 -1
- package/dist/commands/porch/run.js +0 -551
- package/dist/commands/porch/run.js.map +0 -1
- package/dist/commands/porch/signal-parser.d.ts +0 -102
- package/dist/commands/porch/signal-parser.d.ts.map +0 -1
- package/dist/commands/porch/signal-parser.js +0 -199
- package/dist/commands/porch/signal-parser.js.map +0 -1
- package/dist/commands/porch/signals.d.ts +0 -35
- package/dist/commands/porch/signals.d.ts.map +0 -1
- package/dist/commands/porch/signals.js +0 -76
- package/dist/commands/porch/signals.js.map +0 -1
- package/dist/commands/porch2/checks.d.ts +0 -29
- package/dist/commands/porch2/checks.d.ts.map +0 -1
- package/dist/commands/porch2/checks.js +0 -141
- package/dist/commands/porch2/checks.js.map +0 -1
- package/dist/commands/porch2/index.d.ts +0 -38
- package/dist/commands/porch2/index.d.ts.map +0 -1
- package/dist/commands/porch2/index.js +0 -483
- package/dist/commands/porch2/index.js.map +0 -1
- package/dist/commands/porch2/plan.d.ts +0 -70
- package/dist/commands/porch2/plan.d.ts.map +0 -1
- package/dist/commands/porch2/plan.js +0 -227
- package/dist/commands/porch2/plan.js.map +0 -1
- package/dist/commands/porch2/protocol.d.ts +0 -37
- package/dist/commands/porch2/protocol.d.ts.map +0 -1
- package/dist/commands/porch2/protocol.js +0 -183
- package/dist/commands/porch2/protocol.js.map +0 -1
- package/dist/commands/porch2/state.d.ts +0 -35
- package/dist/commands/porch2/state.d.ts.map +0 -1
- package/dist/commands/porch2/state.js +0 -124
- package/dist/commands/porch2/state.js.map +0 -1
- package/dist/commands/porch2/types.d.ts +0 -79
- package/dist/commands/porch2/types.d.ts.map +0 -1
- package/dist/commands/porch2/types.js +0 -8
- package/dist/commands/porch2/types.js.map +0 -1
- package/dist/commands/tower.d.ts +0 -16
- package/dist/commands/tower.d.ts.map +0 -1
- package/dist/commands/tower.js +0 -21
- package/dist/commands/tower.js.map +0 -1
- package/skeleton/config.json +0 -7
- package/skeleton/protocols/spider/prompts/defend.md +0 -215
- package/skeleton/protocols/spider/prompts/evaluate.md +0 -241
- package/skeleton/protocols/spider/prompts/implement.md +0 -149
- package/skeleton/protocols/spider/templates/review.md +0 -207
- /package/skeleton/protocols/{spider → spir}/templates/plan.md +0 -0
- /package/skeleton/protocols/{spider → spir}/templates/spec.md +0 -0
|
@@ -1,332 +1,170 @@
|
|
|
1
1
|
# Role: Builder
|
|
2
2
|
|
|
3
|
-
A Builder is
|
|
3
|
+
A Builder is an implementation agent that works on a single project in an isolated git worktree.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
## Two Operating Modes
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
Builders run in one of two modes, determined by how they were spawned:
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
| Mode | Command | Behavior |
|
|
10
|
+
|------|---------|----------|
|
|
11
|
+
| **Strict** (default) | `af spawn -p XXXX` | Porch orchestrates - runs autonomously to completion |
|
|
12
|
+
| **Soft** | `af spawn --soft -p XXXX` | AI follows protocol - architect verifies compliance |
|
|
10
13
|
|
|
11
|
-
|
|
12
|
-
# Open a file for review in the dashboard
|
|
13
|
-
af open src/lib/auth.ts
|
|
14
|
-
|
|
15
|
-
# Check your status
|
|
16
|
-
af status
|
|
17
|
-
|
|
18
|
-
# Send a message to the architect
|
|
19
|
-
af send architect "Question about the spec..."
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
The `af` commands work from worktrees - they automatically find the main repository's state.
|
|
23
|
-
|
|
24
|
-
## Responsibilities
|
|
25
|
-
|
|
26
|
-
1. **Implement a single spec** - Focus on one well-defined task
|
|
27
|
-
2. **Work in isolation** - Use the assigned git worktree
|
|
28
|
-
3. **Follow the assigned protocol** - SPIDER or TICK as specified in the spec
|
|
29
|
-
4. **Report status** - Keep status updated (implementing/blocked/pr-ready)
|
|
30
|
-
5. **Request help when blocked** - Don't spin; output a clear blocker message
|
|
31
|
-
6. **Deliver clean PRs** - Tests passing, code reviewed, protocol artifacts complete
|
|
32
|
-
|
|
33
|
-
## Protocol Adherence
|
|
34
|
-
|
|
35
|
-
**The spec will tell you which protocol to use: SPIDER or TICK.**
|
|
36
|
-
|
|
37
|
-
You are expected to **adhere FULLY to the protocol**. Before starting:
|
|
38
|
-
1. Read the spec carefully to identify the protocol
|
|
39
|
-
2. Read the full protocol documentation:
|
|
40
|
-
- SPIDER: `codev/protocols/spider/protocol.md`
|
|
41
|
-
- TICK: `codev/protocols/tick/protocol.md`
|
|
42
|
-
3. Follow every phase and produce all required artifacts
|
|
43
|
-
|
|
44
|
-
## CRITICAL: Porch Protocol Enforcement
|
|
45
|
-
|
|
46
|
-
**You are operating under protocol orchestration. Porch is the gatekeeper.**
|
|
47
|
-
|
|
48
|
-
Porch (`porch`) is the authoritative source of truth for your current state, what to do next, and whether you can advance. You MUST follow porch's instructions.
|
|
49
|
-
|
|
50
|
-
### MANDATORY BEHAVIORS
|
|
51
|
-
|
|
52
|
-
1. **FIRST ACTION**: Run `porch status {PROJECT_ID}` to see your current state
|
|
53
|
-
2. **BEFORE ANY WORK**: Read porch's instructions carefully
|
|
54
|
-
3. **AFTER COMPLETING WORK**: Run `porch check {PROJECT_ID}` to verify criteria
|
|
55
|
-
4. **TO ADVANCE**: Run `porch done {PROJECT_ID}` - porch will verify and advance
|
|
56
|
-
5. **AT GATES**: Run `porch gate {PROJECT_ID}` and **STOP**. Wait for human.
|
|
57
|
-
|
|
58
|
-
### PORCH IS AUTHORITATIVE
|
|
59
|
-
|
|
60
|
-
- Porch tells you what phase you're in
|
|
61
|
-
- Porch tells you what to do next
|
|
62
|
-
- Porch runs the checks that determine if you're done
|
|
63
|
-
- Porch controls advancement between phases
|
|
64
|
-
- You CANNOT skip phases or ignore porch
|
|
14
|
+
## Strict Mode (Default)
|
|
65
15
|
|
|
66
|
-
|
|
16
|
+
Spawned with: `af spawn -p XXXX`
|
|
67
17
|
|
|
68
|
-
|
|
18
|
+
In strict mode, porch orchestrates your work and drives the protocol to completion autonomously. Your job is simple: **run porch until the project completes**.
|
|
69
19
|
|
|
70
|
-
|
|
71
|
-
GATE: spec_approval
|
|
72
|
-
|
|
73
|
-
Human approval required. STOP and wait.
|
|
74
|
-
Do not proceed until gate is approved.
|
|
75
|
-
|
|
76
|
-
STATUS: WAITING FOR HUMAN APPROVAL
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
When you see output like this, **STOP IMMEDIATELY**. Output a message indicating you're waiting for approval and do not continue until the gate is approved.
|
|
80
|
-
|
|
81
|
-
### Porch Command Reference
|
|
82
|
-
|
|
83
|
-
```bash
|
|
84
|
-
porch status <id> # See current state and instructions
|
|
85
|
-
porch check <id> # Run checks for current phase
|
|
86
|
-
porch done <id> # Advance to next phase (if checks pass)
|
|
87
|
-
porch gate <id> # Request human approval
|
|
88
|
-
```
|
|
89
|
-
|
|
90
|
-
### Example Workflow
|
|
20
|
+
### The Core Loop
|
|
91
21
|
|
|
92
22
|
```bash
|
|
93
|
-
#
|
|
94
|
-
porch
|
|
95
|
-
|
|
96
|
-
# After implementing code
|
|
97
|
-
porch check 0074
|
|
98
|
-
|
|
99
|
-
# If checks pass, advance
|
|
100
|
-
porch done 0074
|
|
23
|
+
# 1. Get your next tasks (project ID auto-detected from worktree)
|
|
24
|
+
porch next
|
|
101
25
|
|
|
102
|
-
#
|
|
103
|
-
|
|
104
|
-
|
|
26
|
+
# 2. Do the work described in the tasks
|
|
27
|
+
# 3. Signal completion
|
|
28
|
+
porch done
|
|
105
29
|
|
|
106
|
-
#
|
|
107
|
-
porch
|
|
30
|
+
# 4. If porch hits a gate, STOP and wait for human approval
|
|
31
|
+
# 5. After gate approval, run porch next again
|
|
32
|
+
# 6. Repeat until project is complete
|
|
108
33
|
```
|
|
109
34
|
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
- Write the spec with all required sections
|
|
116
|
-
- **Run 3-way consultation** and add a `## Consultation` section summarizing findings:
|
|
117
|
-
```bash
|
|
118
|
-
consult --model gemini --type spec-review spec XXXX
|
|
119
|
-
consult --model codex --type spec-review spec XXXX
|
|
120
|
-
consult --model claude --type spec-review spec XXXX
|
|
121
|
-
```
|
|
122
|
-
- **NO phases in spec** - phases belong in the plan, not the spec
|
|
123
|
-
- **COMMIT** the spec file
|
|
124
|
-
- Run `porch done` → hits `spec_approval` gate
|
|
125
|
-
- Run `porch gate` → **STOP and wait for human**
|
|
126
|
-
|
|
127
|
-
2. **Plan**: Write the plan (`codev/plans/XXXX-name.md`)
|
|
128
|
-
- Write the plan with numbered phases and a JSON phases block
|
|
129
|
-
- **Run 3-way consultation** and add a `## Consultation` section
|
|
130
|
-
- **COMMIT** the plan file
|
|
131
|
-
- Run `porch done` → hits `plan_approval` gate
|
|
132
|
-
- Run `porch gate` → **STOP and wait for human**
|
|
133
|
-
|
|
134
|
-
3-5. **Implement → Defend → Evaluate** (per plan phase): See detailed section below
|
|
135
|
-
|
|
136
|
-
6. **Review** - Document lessons learned, run 3-way review, create PR
|
|
137
|
-
- Write the review document (`codev/reviews/XXXX-spec-name.md`)
|
|
138
|
-
- **Run 3-way parallel review focused on IMPLEMENTATION quality**:
|
|
139
|
-
```bash
|
|
140
|
-
consult --model gemini --type pr-ready pr $PR_NUMBER &
|
|
141
|
-
consult --model codex --type pr-ready pr $PR_NUMBER &
|
|
142
|
-
consult --model claude --type pr-ready pr $PR_NUMBER &
|
|
143
|
-
wait
|
|
144
|
-
```
|
|
145
|
-
- Address any REQUEST_CHANGES feedback before creating the PR
|
|
146
|
-
- Include the 3-way review summary in your PR description
|
|
147
|
-
|
|
148
|
-
**Note**: The Architect will run a separate 3-way review focused on **integration** concerns.
|
|
35
|
+
Porch handles:
|
|
36
|
+
- Spawning Claude to create artifacts (spec, plan, code)
|
|
37
|
+
- Running 3-way consultations (Gemini, Codex, Claude)
|
|
38
|
+
- Iterating based on feedback
|
|
39
|
+
- Enforcing phase transitions
|
|
149
40
|
|
|
150
|
-
###
|
|
41
|
+
### Gates: When to STOP
|
|
151
42
|
|
|
152
|
-
|
|
43
|
+
Porch has two human approval gates:
|
|
153
44
|
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
45
|
+
| Gate | When | What to do |
|
|
46
|
+
|------|------|------------|
|
|
47
|
+
| `spec-approval` | After spec is written | **STOP** and wait |
|
|
48
|
+
| `plan-approval` | After plan is written | **STOP** and wait |
|
|
157
49
|
|
|
50
|
+
When porch outputs:
|
|
158
51
|
```
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
├─────────────────────────────────────────────────────────────┤
|
|
162
|
-
│ 1. IMPLEMENT │
|
|
163
|
-
│ - Write the code for this phase │
|
|
164
|
-
│ - Run `porch done XXXX` → advances to defend │
|
|
165
|
-
│ │
|
|
166
|
-
│ 2. DEFEND │
|
|
167
|
-
│ - Write tests for the code │
|
|
168
|
-
│ - Run `porch done XXXX` → advances to evaluate │
|
|
169
|
-
│ │
|
|
170
|
-
│ 3. EVALUATE │
|
|
171
|
-
│ - Run 3-way consultation on implementation │
|
|
172
|
-
│ - Address any feedback │
|
|
173
|
-
│ - **COMMIT everything** (code + tests + consultation) │
|
|
174
|
-
│ - Run `porch done XXXX` → runs PHASE COMPLETION CHECKS │
|
|
175
|
-
│ │
|
|
176
|
-
│ Phase completion checks verify your commit has: │
|
|
177
|
-
│ ✓ Build passes │
|
|
178
|
-
│ ✓ Tests pass │
|
|
179
|
-
│ ✓ Commit includes code files │
|
|
180
|
-
│ ✓ Commit includes test files │
|
|
181
|
-
│ ✓ Commit message mentions 3-way review │
|
|
182
|
-
│ │
|
|
183
|
-
│ If checks fail → FIX and try `porch done` again │
|
|
184
|
-
│ If checks pass → Advances to next phase │
|
|
185
|
-
└─────────────────────────────────────────────────────────────┘
|
|
52
|
+
GATE: spec-approval
|
|
53
|
+
Human approval required. STOP and wait.
|
|
186
54
|
```
|
|
187
55
|
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
56
|
+
You must:
|
|
57
|
+
1. Output a clear message: "Spec ready for approval. Waiting for human."
|
|
58
|
+
2. **STOP working**
|
|
59
|
+
3. Wait for the human to run `porch approve XXXX spec-approval`
|
|
60
|
+
4. After approval, run `porch next` again
|
|
192
61
|
|
|
193
|
-
|
|
194
|
-
- Removed getGitCommits, getModifiedFiles, getGitHubPRs functions
|
|
195
|
-
- Removed /api/activity-summary endpoint
|
|
196
|
-
- Added tests for remaining endpoints
|
|
197
|
-
|
|
198
|
-
3-way review: Gemini APPROVE, Codex APPROVE, Claude APPROVE
|
|
199
|
-
```
|
|
62
|
+
### What You DON'T Do in Strict Mode
|
|
200
63
|
|
|
201
|
-
|
|
64
|
+
- **Don't manually follow SPIR steps** - Porch handles this
|
|
65
|
+
- **Don't run consult directly** - Porch runs 3-way reviews
|
|
66
|
+
- **Don't edit status.yaml phase/iteration** - Only porch modifies state
|
|
67
|
+
- **Don't call porch approve** - Only humans approve gates
|
|
68
|
+
- **Don't skip gates** - Always stop and wait for approval
|
|
202
69
|
|
|
203
|
-
|
|
204
|
-
- Porch doesn't know you finished
|
|
205
|
-
- Phase completion checks never run
|
|
206
|
-
- Your work is not validated
|
|
207
|
-
- The Architect will reject your PR
|
|
70
|
+
## Soft Mode
|
|
208
71
|
|
|
209
|
-
|
|
72
|
+
Spawned with: `af spawn --soft -p XXXX` or `af spawn --task "..."`
|
|
210
73
|
|
|
211
|
-
|
|
212
|
-
1. Validates your work meets criteria
|
|
213
|
-
2. Records your progress
|
|
214
|
-
3. Ensures quality gates are enforced
|
|
74
|
+
In soft mode, you follow the protocol document yourself. The architect monitors your work and verifies you're adhering to the protocol correctly.
|
|
215
75
|
|
|
216
|
-
###
|
|
76
|
+
### Startup Sequence
|
|
217
77
|
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
78
|
+
```bash
|
|
79
|
+
# Read the spec and/or plan
|
|
80
|
+
cat codev/specs/XXXX-*.md
|
|
81
|
+
cat codev/plans/XXXX-*.md
|
|
222
82
|
|
|
223
|
-
|
|
83
|
+
# Read the protocol
|
|
84
|
+
cat codev/protocols/spir/protocol.md
|
|
224
85
|
|
|
225
|
-
|
|
86
|
+
# Start implementing
|
|
87
|
+
```
|
|
226
88
|
|
|
227
|
-
###
|
|
89
|
+
### The SPIR Protocol (Specify → Plan → Implement → Review)
|
|
228
90
|
|
|
229
|
-
**
|
|
91
|
+
1. **Specify**: Read or create the spec at `codev/specs/XXXX-name.md`
|
|
92
|
+
2. **Plan**: Read or create the plan at `codev/plans/XXXX-name.md`
|
|
93
|
+
3. **Implement**: Write code following the plan phases
|
|
94
|
+
4. **Review**: Write lessons learned and create PR
|
|
230
95
|
|
|
231
|
-
|
|
232
|
-
2. ✅ "If the spec has a 'Traps to Avoid' section, have I read it?"
|
|
233
|
-
3. ✅ "Does my planned approach match the spec's Technical Implementation section?"
|
|
234
|
-
4. ✅ "If the spec has code examples, am I following them?"
|
|
235
|
-
5. ✅ "Does the existing code I'm building on actually match the spec?"
|
|
96
|
+
### Consultations
|
|
236
97
|
|
|
237
|
-
|
|
98
|
+
Run 3-way consultations at checkpoints:
|
|
99
|
+
```bash
|
|
100
|
+
# After writing spec
|
|
101
|
+
consult --model gemini --type spec-review spec XXXX &
|
|
102
|
+
consult --model codex --type spec-review spec XXXX &
|
|
103
|
+
consult --model claude --type spec-review spec XXXX &
|
|
104
|
+
wait
|
|
238
105
|
|
|
239
|
-
|
|
106
|
+
# After writing plan
|
|
107
|
+
consult --model gemini --type plan-review plan XXXX &
|
|
108
|
+
consult --model codex --type plan-review plan XXXX &
|
|
109
|
+
consult --model claude --type plan-review plan XXXX &
|
|
110
|
+
wait
|
|
240
111
|
|
|
112
|
+
# After implementation
|
|
113
|
+
consult --model gemini --type impl-review pr N &
|
|
114
|
+
consult --model codex --type impl-review pr N &
|
|
115
|
+
consult --model claude --type impl-review pr N &
|
|
116
|
+
wait
|
|
241
117
|
```
|
|
242
|
-
SPEC (source of truth)
|
|
243
|
-
↓
|
|
244
|
-
PLAN (implementation guide derived from spec)
|
|
245
|
-
↓
|
|
246
|
-
EXISTING CODE (NOT TRUSTED - must be validated against spec)
|
|
247
|
-
```
|
|
248
|
-
|
|
249
|
-
**Never trust existing code over the spec.** Previous implementations may have drifted. The spec is always authoritative.
|
|
250
|
-
|
|
251
|
-
### Avoiding "Fixing Mode"
|
|
252
118
|
|
|
253
|
-
|
|
254
|
-
- Cargo-culting existing patterns that may be wrong
|
|
255
|
-
- Building on broken foundations
|
|
256
|
-
- Implementing something different from what the spec describes
|
|
257
|
-
|
|
258
|
-
**When you catch yourself "fixing" code:**
|
|
259
|
-
1. STOP
|
|
260
|
-
2. Ask: "What does the spec say about this?"
|
|
261
|
-
3. Re-read the spec's Traps to Avoid section
|
|
262
|
-
4. Verify existing code matches the spec before building on it
|
|
119
|
+
## Deliverables
|
|
263
120
|
|
|
264
|
-
|
|
121
|
+
- Spec at `codev/specs/XXXX-name.md`
|
|
122
|
+
- Plan at `codev/plans/XXXX-name.md`
|
|
123
|
+
- Review at `codev/reviews/XXXX-name.md`
|
|
124
|
+
- Implementation code with tests
|
|
125
|
+
- PR ready for architect review
|
|
265
126
|
|
|
266
|
-
|
|
267
|
-
- "Does this match the spec?"
|
|
268
|
-
- "What does the spec say about X?"
|
|
269
|
-
- "Check the spec's Traps to Avoid section"
|
|
270
|
-
- "Are you sure?"
|
|
271
|
-
- "You're cargo-culting existing patterns"
|
|
127
|
+
## Communication
|
|
272
128
|
|
|
273
|
-
|
|
129
|
+
### With the Architect
|
|
274
130
|
|
|
131
|
+
If you're blocked or need help:
|
|
132
|
+
```bash
|
|
133
|
+
af send architect "Question about the spec..."
|
|
275
134
|
```
|
|
276
|
-
spawning → implementing → blocked → implementing → pr-ready → complete
|
|
277
|
-
↑______________|
|
|
278
|
-
```
|
|
279
|
-
|
|
280
|
-
### Status Definitions
|
|
281
|
-
|
|
282
|
-
| Status | Meaning |
|
|
283
|
-
|--------|---------|
|
|
284
|
-
| `spawning` | Worktree created, Builder starting up |
|
|
285
|
-
| `implementing` | Actively working on the spec |
|
|
286
|
-
| `blocked` | Stuck, needs Architect help |
|
|
287
|
-
| `pr-ready` | Implementation complete, ready for review |
|
|
288
|
-
| `complete` | Merged, worktree can be cleaned up |
|
|
289
135
|
|
|
290
136
|
### Checking Status
|
|
291
137
|
|
|
292
138
|
```bash
|
|
293
|
-
|
|
139
|
+
porch status # (strict mode) Your project status
|
|
140
|
+
af status # All builders
|
|
294
141
|
```
|
|
295
142
|
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
## Working in a Worktree
|
|
143
|
+
## Notifications
|
|
299
144
|
|
|
300
|
-
|
|
301
|
-
- You are in an isolated git worktree at `.builders/XXXX/`
|
|
302
|
-
- You have your own branch: `builder/XXXX-spec-name`
|
|
303
|
-
- Changes here don't affect main until merged
|
|
304
|
-
- You can commit freely without affecting other Builders
|
|
145
|
+
**ALWAYS notify the architect** via `af send` at these key moments:
|
|
305
146
|
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
147
|
+
| When | What to send |
|
|
148
|
+
|------|-------------|
|
|
149
|
+
| **Gate reached** | `af send architect "Project XXXX: <gate-name> ready for approval"` |
|
|
150
|
+
| **PR ready** | `af send architect "PR #N ready for review"` |
|
|
151
|
+
| **PR merged** | `af send architect "Project XXXX complete. PR merged. Ready for cleanup."` |
|
|
152
|
+
| **Blocked/stuck** | `af send architect "Blocked on X — need guidance"` |
|
|
153
|
+
| **Escalation needed** | `af send architect "Issue too complex — recommend escalating to SPIR/TICK"` |
|
|
311
154
|
|
|
312
|
-
|
|
155
|
+
The architect may be working on other tasks and won't know you need attention unless you send a message. **Don't assume they're watching** — always notify explicitly.
|
|
313
156
|
|
|
314
|
-
|
|
315
|
-
- Spec is ambiguous and you need clarification
|
|
316
|
-
- You discover a dependency on another spec
|
|
317
|
-
- You encounter an unexpected technical blocker
|
|
318
|
-
- You need architectural guidance
|
|
319
|
-
- Tests are failing for reasons outside your scope
|
|
157
|
+
## When You're Blocked
|
|
320
158
|
|
|
321
|
-
|
|
159
|
+
If you encounter issues you can't resolve:
|
|
322
160
|
|
|
323
|
-
1. Output a clear message
|
|
324
|
-
2.
|
|
325
|
-
3.
|
|
161
|
+
1. **Output a clear blocker message** describing the problem and options
|
|
162
|
+
2. **Use `af send architect "..."` to notify the Architect**
|
|
163
|
+
3. **Wait for guidance** before proceeding
|
|
326
164
|
|
|
327
|
-
Example
|
|
165
|
+
Example:
|
|
328
166
|
```
|
|
329
|
-
## BLOCKED: Spec
|
|
167
|
+
## BLOCKED: Spec 0077
|
|
330
168
|
Can't find the auth helper mentioned in spec. Options:
|
|
331
169
|
1. Create a new auth helper
|
|
332
170
|
2. Use a third-party library
|
|
@@ -334,67 +172,12 @@ Can't find the auth helper mentioned in spec. Options:
|
|
|
334
172
|
Waiting for Architect guidance.
|
|
335
173
|
```
|
|
336
174
|
|
|
337
|
-
The Architect will provide guidance via `af send` or PR comments.
|
|
338
|
-
|
|
339
|
-
## Deliverables
|
|
340
|
-
|
|
341
|
-
When done, a Builder should have:
|
|
342
|
-
|
|
343
|
-
1. **Implementation** - Code that fulfills the spec
|
|
344
|
-
2. **Tests** - Appropriate test coverage
|
|
345
|
-
3. **Documentation** - Updated relevant docs (if needed)
|
|
346
|
-
4. **Clean commits** - Atomic, well-messaged commits per phase
|
|
347
|
-
5. **Review document** - As specified in the SPIDER protocol (`codev/reviews/XXXX-spec-name.md`)
|
|
348
|
-
6. **PR-ready branch** - Ready for Architect review
|
|
349
|
-
|
|
350
|
-
## Communication with Architect
|
|
351
|
-
|
|
352
|
-
### Receiving Instructions
|
|
353
|
-
The Architect provides:
|
|
354
|
-
- Spec file path
|
|
355
|
-
- Plan file path
|
|
356
|
-
- Protocol to follow (SPIDER/TICK)
|
|
357
|
-
- Context and constraints
|
|
358
|
-
|
|
359
|
-
### Reporting Completion
|
|
360
|
-
When implementation is complete:
|
|
361
|
-
1. Run all tests
|
|
362
|
-
2. Self-review the code
|
|
363
|
-
3. Ensure all protocol artifacts are present (especially the review document for SPIDER)
|
|
364
|
-
4. Create a PR: `gh pr create --title "[Spec XXXX] Description" --body "..."`
|
|
365
|
-
5. Update status to `pr-ready`
|
|
366
|
-
6. Wait for Architect review and approval
|
|
367
|
-
7. **Merge your own PR** once approved: `gh pr merge --merge --delete-branch`
|
|
368
|
-
|
|
369
|
-
**Important**: The Builder is responsible for merging after Architect approval. This ensures the Builder sees the merge succeed and can handle any final cleanup.
|
|
370
|
-
|
|
371
|
-
### Receiving PR Feedback
|
|
372
|
-
|
|
373
|
-
The Architect reviews PRs and leaves feedback as GitHub PR comments. When notified to check feedback:
|
|
374
|
-
|
|
375
|
-
```bash
|
|
376
|
-
# View PR comments
|
|
377
|
-
gh pr view <PR_NUMBER> --comments
|
|
378
|
-
|
|
379
|
-
# Or view the full PR with comments in browser
|
|
380
|
-
gh pr view <PR_NUMBER> --web
|
|
381
|
-
```
|
|
382
|
-
|
|
383
|
-
**Workflow:**
|
|
384
|
-
1. Architect leaves review comments on PR
|
|
385
|
-
2. You receive a short message: "Check PR comments and address feedback"
|
|
386
|
-
3. Run `gh pr view <PR_NUMBER> --comments` to see feedback
|
|
387
|
-
4. Address the issues (High priority first, then Medium, Low is optional)
|
|
388
|
-
5. Push fixes to the same branch
|
|
389
|
-
6. Reply to PR comment when done or if clarification needed
|
|
390
|
-
|
|
391
175
|
## Constraints
|
|
392
176
|
|
|
393
|
-
- **Stay in scope** - Only implement what's in
|
|
394
|
-
- **
|
|
395
|
-
- **Merge your own PRs** - After Architect approves, you are responsible for merging
|
|
396
|
-
- **Don't spawn other Builders** - Only Architects spawn Builders
|
|
177
|
+
- **Stay in scope** - Only implement what's in the spec
|
|
178
|
+
- **Merge your own PRs** - After architect approves
|
|
397
179
|
- **Keep worktree clean** - No untracked files, no debug code
|
|
398
|
-
- **
|
|
399
|
-
- **
|
|
400
|
-
- **
|
|
180
|
+
- **(Strict mode)** Run porch, don't bypass it
|
|
181
|
+
- **(Strict mode)** Stop at gates - Human approval is required
|
|
182
|
+
- **(Strict mode)** NEVER edit status.yaml directly
|
|
183
|
+
- **(Strict mode)** NEVER call porch approve
|
|
@@ -5,16 +5,16 @@ You are a consultant providing a second perspective to support decision-making.
|
|
|
5
5
|
## Responsibilities
|
|
6
6
|
|
|
7
7
|
1. **Understand context** - Grasp the problem and constraints being presented
|
|
8
|
-
2. **
|
|
9
|
-
3. **
|
|
10
|
-
4. **Be
|
|
11
|
-
5. **
|
|
8
|
+
2. **Verify before flagging** - Check actual project files (package.json, configs) before claiming something is wrong or missing. Framework conventions change between major versions.
|
|
9
|
+
3. **Offer insights** - Provide alternatives or considerations that may have been missed
|
|
10
|
+
4. **Be constructive** - Help improve the solution, don't just critique
|
|
11
|
+
5. **Be direct** - Give honest, clear feedback without excessive hedging
|
|
12
12
|
|
|
13
13
|
## You Are NOT
|
|
14
14
|
|
|
15
15
|
- An adversary or gatekeeper
|
|
16
16
|
- A rubber stamp that just agrees
|
|
17
|
-
- A
|
|
17
|
+
- A source of generic advice that ignores actual project context
|
|
18
18
|
|
|
19
19
|
## Relationship to Other Roles
|
|
20
20
|
|
|
@@ -24,4 +24,4 @@ You are a consultant providing a second perspective to support decision-making.
|
|
|
24
24
|
| Builder | Implements in isolation |
|
|
25
25
|
| Consultant | Provides perspective, supports decisions |
|
|
26
26
|
|
|
27
|
-
You think alongside the other agents, helping them see blind spots.
|
|
27
|
+
You think alongside the other agents, helping them see blind spots. You have filesystem access — use it to verify your claims against the actual codebase.
|
|
@@ -8,7 +8,7 @@ This project uses **Codev** for AI-assisted development.
|
|
|
8
8
|
|
|
9
9
|
## Available Protocols
|
|
10
10
|
|
|
11
|
-
- **
|
|
11
|
+
- **SPIR**: Multi-phase development with consultation (`codev/protocols/spir/protocol.md`)
|
|
12
12
|
- **TICK**: Fast autonomous implementation (`codev/protocols/tick/protocol.md`)
|
|
13
13
|
- **EXPERIMENT**: Disciplined experimentation (`codev/protocols/experiment/protocol.md`)
|
|
14
14
|
- **MAINTAIN**: Codebase maintenance (`codev/protocols/maintain/protocol.md`)
|
|
@@ -60,7 +60,7 @@ For complete reference, see `codev/resources/commands/`:
|
|
|
60
60
|
|
|
61
61
|
## Configuration
|
|
62
62
|
|
|
63
|
-
|
|
63
|
+
Agent Farm is configured via `af-config.json` at the project root. Created during `codev init` or `codev adopt`. Override via CLI flags: `--architect-cmd`, `--builder-cmd`, `--shell-cmd`.
|
|
64
64
|
|
|
65
65
|
```json
|
|
66
66
|
{
|
|
@@ -6,7 +6,7 @@ This project uses **Codev** for AI-assisted development.
|
|
|
6
6
|
|
|
7
7
|
## Available Protocols
|
|
8
8
|
|
|
9
|
-
- **
|
|
9
|
+
- **SPIR**: Multi-phase development with consultation (`codev/protocols/spir/protocol.md`)
|
|
10
10
|
- **TICK**: Fast autonomous implementation (`codev/protocols/tick/protocol.md`)
|
|
11
11
|
- **EXPERIMENT**: Disciplined experimentation (`codev/protocols/experiment/protocol.md`)
|
|
12
12
|
- **MAINTAIN**: Codebase maintenance (`codev/protocols/maintain/protocol.md`)
|
|
@@ -58,7 +58,7 @@ For complete reference, see `codev/resources/commands/`:
|
|
|
58
58
|
|
|
59
59
|
## Configuration
|
|
60
60
|
|
|
61
|
-
|
|
61
|
+
Agent Farm is configured via `af-config.json` at the project root. Created during `codev init` or `codev adopt`. Override via CLI flags: `--architect-cmd`, `--builder-cmd`, `--shell-cmd`.
|
|
62
62
|
|
|
63
63
|
```json
|
|
64
64
|
{
|
|
@@ -41,7 +41,7 @@ Just like structuring a human team—clear roles, defined processes, explicit ha
|
|
|
41
41
|
|
|
42
42
|
| Component | Purpose |
|
|
43
43
|
|-----------|---------|
|
|
44
|
-
| Protocols | Define HOW work happens (
|
|
44
|
+
| Protocols | Define HOW work happens (SPIR, TICK, etc.) |
|
|
45
45
|
| Roles | Define WHO does what (Architect, Builder, Consultant) |
|
|
46
46
|
| Parallelism | Scale by running multiple builders simultaneously |
|
|
47
47
|
|
|
@@ -60,7 +60,7 @@ A **protocol** is a structured workflow that defines how work progresses from id
|
|
|
60
60
|
|
|
61
61
|
| Protocol | Use For | Phases |
|
|
62
62
|
|----------|---------|--------|
|
|
63
|
-
| **
|
|
63
|
+
| **SPIR** | New features | Specify → Plan → Implement → Review |
|
|
64
64
|
| **TICK** | Amendments to existing specs | Task Identification → Coding → Kickout |
|
|
65
65
|
| **MAINTAIN** | Codebase hygiene | Dead code removal, documentation sync |
|
|
66
66
|
| **EXPERIMENT** | Research & prototyping | Hypothesis → Experiment → Conclude |
|
|
@@ -110,13 +110,15 @@ Architect-Builder orchestration. Used by both **humans and agents**—agents use
|
|
|
110
110
|
|
|
111
111
|
| Command | Description |
|
|
112
112
|
|---------|-------------|
|
|
113
|
-
| `af start` | Start dashboard (port 4200, 4300, etc.) |
|
|
114
|
-
| `af stop` | Stop all processes |
|
|
113
|
+
| `af dash start` | Start dashboard (port 4200, 4300, etc.) |
|
|
114
|
+
| `af dash stop` | Stop all processes |
|
|
115
115
|
| `af spawn -p <id>` | Spawn a builder for project |
|
|
116
116
|
| `af status` | Check status of all builders |
|
|
117
117
|
| `af send <target> <msg>` | Send message (builder↔architect) |
|
|
118
118
|
| `af cleanup -p <id>` | Clean up a builder worktree |
|
|
119
|
+
| `af shell` | Spawn a utility shell |
|
|
119
120
|
| `af open <file>` | Open file in dashboard viewer |
|
|
121
|
+
| `af tower start` | Start cross-project tower |
|
|
120
122
|
|
|
121
123
|
### consult
|
|
122
124
|
|
|
@@ -143,7 +145,7 @@ Multi-agent consultation. Used by both humans and agents—**mostly agents** dur
|
|
|
143
145
|
|
|
144
146
|
## Quick Reference
|
|
145
147
|
|
|
146
|
-
###
|
|
148
|
+
### SPIR Checklist
|
|
147
149
|
|
|
148
150
|
```
|
|
149
151
|
[ ] Specify - Write spec in codev/specs/XXXX-name.md
|
|
@@ -142,6 +142,6 @@ To see high-priority work, search for `priority: high`.
|
|
|
142
142
|
Before starting a project, verify its dependencies are at least `implemented`.
|
|
143
143
|
|
|
144
144
|
### Protocol Selection
|
|
145
|
-
- **
|
|
145
|
+
- **SPIR**: Most projects (formal spec → plan → implement → review)
|
|
146
146
|
- **TICK**: Small, well-defined tasks (< 300 lines) or amendments to existing specs
|
|
147
147
|
- **EXPERIMENT**: Research/prototyping before committing to a project
|