@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
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
# IMPLEMENT Phase Prompt
|
|
2
|
+
|
|
3
|
+
You are executing the **IMPLEMENT** phase of the SPIR protocol.
|
|
4
|
+
|
|
5
|
+
## Your Goal
|
|
6
|
+
|
|
7
|
+
Write clean, well-structured code AND tests that implement the current plan phase.
|
|
8
|
+
|
|
9
|
+
## Context
|
|
10
|
+
|
|
11
|
+
- **Project ID**: {{project_id}}
|
|
12
|
+
- **Project Title**: {{title}}
|
|
13
|
+
- **Current State**: {{current_state}}
|
|
14
|
+
- **Plan Phase**: {{plan_phase_id}} - {{plan_phase_title}}
|
|
15
|
+
|
|
16
|
+
## ⚠️ SCOPE RESTRICTION — READ THIS FIRST
|
|
17
|
+
|
|
18
|
+
**You are implementing ONLY the current plan phase: {{plan_phase_id}} ({{plan_phase_title}}).**
|
|
19
|
+
|
|
20
|
+
- **DO NOT** implement other phases. Other phases will be handled in subsequent porch iterations.
|
|
21
|
+
- **DO NOT** read the full plan file and implement everything you see.
|
|
22
|
+
- The plan phase details are included below under "Current Plan Phase Details". That is your ONLY scope.
|
|
23
|
+
- If you need to reference the spec for requirements, read `codev/specs/{{project_id}}-*.md` but ONLY implement what the current phase requires.
|
|
24
|
+
|
|
25
|
+
## What Happens After You Finish
|
|
26
|
+
|
|
27
|
+
When you signal `PHASE_COMPLETE`, porch will:
|
|
28
|
+
1. Run 3-way consultation (Gemini, Codex, Claude) on your implementation
|
|
29
|
+
2. Check that tests exist and pass
|
|
30
|
+
3. If reviewers request changes, you'll be respawned with their feedback
|
|
31
|
+
4. Once approved, porch commits and moves to the next plan phase
|
|
32
|
+
|
|
33
|
+
## Spec Compliance (CRITICAL)
|
|
34
|
+
|
|
35
|
+
**The spec is the source of truth. Code that doesn't match the spec is wrong, even if it "works".**
|
|
36
|
+
|
|
37
|
+
### Trust Hierarchy
|
|
38
|
+
|
|
39
|
+
```
|
|
40
|
+
SPEC (source of truth)
|
|
41
|
+
↓
|
|
42
|
+
PLAN (implementation guide derived from spec)
|
|
43
|
+
↓
|
|
44
|
+
EXISTING CODE (NOT TRUSTED - must be validated against spec)
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
**Never trust existing code over the spec.** Previous implementations may have drifted.
|
|
48
|
+
|
|
49
|
+
### Pre-Implementation Sanity Check (PISC)
|
|
50
|
+
|
|
51
|
+
**Before writing ANY code:**
|
|
52
|
+
|
|
53
|
+
1. ✅ "Have I read the spec in the last 30 minutes?"
|
|
54
|
+
2. ✅ "If the spec has a 'Traps to Avoid' section, have I read it?"
|
|
55
|
+
3. ✅ "Does my approach match the spec's Technical Implementation section?"
|
|
56
|
+
4. ✅ "If the spec has code examples, am I following them?"
|
|
57
|
+
5. ✅ "Does the existing code I'm building on actually match the spec?"
|
|
58
|
+
|
|
59
|
+
**If ANY answer is "no" or "unsure" → STOP and re-read the spec.**
|
|
60
|
+
|
|
61
|
+
### Avoiding "Fixing Mode"
|
|
62
|
+
|
|
63
|
+
A dangerous pattern: You start looking at symptoms in code, making incremental fixes, copying existing patterns - without going back to the spec. This leads to:
|
|
64
|
+
- Cargo-culting patterns that may be wrong
|
|
65
|
+
- Building on broken foundations
|
|
66
|
+
- Implementing something different from the spec
|
|
67
|
+
|
|
68
|
+
**When you catch yourself "fixing" code:**
|
|
69
|
+
1. STOP
|
|
70
|
+
2. Ask: "What does the spec say about this?"
|
|
71
|
+
3. Re-read the spec's Traps to Avoid section
|
|
72
|
+
4. Verify existing code matches the spec before building on it
|
|
73
|
+
|
|
74
|
+
## Prerequisites
|
|
75
|
+
|
|
76
|
+
Before implementing, verify:
|
|
77
|
+
1. Previous phase (if any) is committed to git
|
|
78
|
+
2. You've read the plan phase you're implementing
|
|
79
|
+
3. You understand the success criteria for this phase
|
|
80
|
+
4. Dependencies from earlier phases are available
|
|
81
|
+
|
|
82
|
+
## Process
|
|
83
|
+
|
|
84
|
+
### 1. Review the Plan Phase
|
|
85
|
+
|
|
86
|
+
Read the current phase in the plan:
|
|
87
|
+
- What is the objective?
|
|
88
|
+
- What files need to be created/modified?
|
|
89
|
+
- What are the success criteria?
|
|
90
|
+
- What dependencies exist?
|
|
91
|
+
|
|
92
|
+
### 2. Set Up
|
|
93
|
+
|
|
94
|
+
- Verify you're on the correct branch
|
|
95
|
+
- Check that previous phase is committed: `git log --oneline -5`
|
|
96
|
+
- Ensure build passes before starting: `npm run build` (or equivalent)
|
|
97
|
+
|
|
98
|
+
### 3. Implement the Code
|
|
99
|
+
|
|
100
|
+
Write the code following these principles:
|
|
101
|
+
|
|
102
|
+
**Code Quality Standards**:
|
|
103
|
+
- Self-documenting code (clear names, obvious structure)
|
|
104
|
+
- No commented-out code
|
|
105
|
+
- No debug prints in final code
|
|
106
|
+
- Explicit error handling
|
|
107
|
+
- Follow project style guide
|
|
108
|
+
|
|
109
|
+
**Implementation Approach**:
|
|
110
|
+
- Work on one file at a time
|
|
111
|
+
- Make small, incremental changes
|
|
112
|
+
- Document complex logic with comments
|
|
113
|
+
|
|
114
|
+
### 4. Write Tests
|
|
115
|
+
|
|
116
|
+
**Tests are required.** For each piece of functionality you implement:
|
|
117
|
+
|
|
118
|
+
- Write unit tests for core logic
|
|
119
|
+
- Write integration tests if the phase involves multiple components
|
|
120
|
+
- Test error cases and edge conditions
|
|
121
|
+
- Ensure tests are deterministic (no flaky tests)
|
|
122
|
+
|
|
123
|
+
**Test file locations** (follow project conventions):
|
|
124
|
+
- `tests/` or `__tests__/` directories
|
|
125
|
+
- `*.test.ts` or `*.spec.ts` naming
|
|
126
|
+
|
|
127
|
+
### 5. Verify Everything Works
|
|
128
|
+
|
|
129
|
+
Run both build and tests:
|
|
130
|
+
|
|
131
|
+
```bash
|
|
132
|
+
npm run build # Must pass
|
|
133
|
+
npm test # Must pass
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
**Important**: Don't assume these commands exist. Check `package.json` first.
|
|
137
|
+
|
|
138
|
+
Fix any errors before signaling completion.
|
|
139
|
+
|
|
140
|
+
### 6. Self-Review
|
|
141
|
+
|
|
142
|
+
Before signaling completion:
|
|
143
|
+
- Read through all code changes
|
|
144
|
+
- Read through all test changes
|
|
145
|
+
- Verify code matches the spec requirements
|
|
146
|
+
- Ensure no accidental debug code
|
|
147
|
+
- Check test coverage is adequate
|
|
148
|
+
|
|
149
|
+
## Output
|
|
150
|
+
|
|
151
|
+
When complete, you should have:
|
|
152
|
+
- Modified/created source files as specified in the plan phase
|
|
153
|
+
- Tests covering the new functionality
|
|
154
|
+
- All build checks passing
|
|
155
|
+
- All tests passing
|
|
156
|
+
|
|
157
|
+
## Signals
|
|
158
|
+
|
|
159
|
+
When implementation AND tests are complete and passing:
|
|
160
|
+
|
|
161
|
+
```
|
|
162
|
+
<signal>PHASE_COMPLETE</signal>
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
If you encounter a blocker:
|
|
166
|
+
|
|
167
|
+
```
|
|
168
|
+
<signal>BLOCKED:reason goes here</signal>
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
If you need spec/plan clarification:
|
|
172
|
+
|
|
173
|
+
```
|
|
174
|
+
<signal type=AWAITING_INPUT>
|
|
175
|
+
Your specific questions here
|
|
176
|
+
</signal>
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
## Important Notes
|
|
180
|
+
|
|
181
|
+
1. **Follow the plan** - Implement what's specified, not more
|
|
182
|
+
2. **Don't over-engineer** - Simplest solution that works
|
|
183
|
+
3. **Don't skip error handling** - But don't go overboard either
|
|
184
|
+
4. **Keep changes focused** - Only touch files in this phase
|
|
185
|
+
5. **Build AND tests must pass** - Don't signal complete until both pass
|
|
186
|
+
6. **Write tests** - Every implementation phase needs tests
|
|
187
|
+
|
|
188
|
+
## What NOT to Do
|
|
189
|
+
|
|
190
|
+
- Don't modify files outside this phase's scope
|
|
191
|
+
- Don't add features not in the spec
|
|
192
|
+
- Don't leave TODO comments for later (fix now or note as blocker)
|
|
193
|
+
- Don't skip writing tests
|
|
194
|
+
- Don't use `git add .` or `git add -A` when you commit (security risk)
|
|
195
|
+
|
|
196
|
+
## Handling Problems
|
|
197
|
+
|
|
198
|
+
**If the plan is unclear**:
|
|
199
|
+
Signal `AWAITING_INPUT` with your specific question.
|
|
200
|
+
|
|
201
|
+
**If you discover the spec is wrong**:
|
|
202
|
+
Signal `BLOCKED` and explain the issue. The Architect may need to update the spec.
|
|
203
|
+
|
|
204
|
+
**If a dependency is missing**:
|
|
205
|
+
Signal `BLOCKED` with details about what's missing.
|
|
206
|
+
|
|
207
|
+
**If build or tests fail and you can't fix it**:
|
|
208
|
+
Signal `BLOCKED` with the error message.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# PLAN Phase Prompt
|
|
2
2
|
|
|
3
|
-
You are executing the **PLAN** phase of the
|
|
3
|
+
You are executing the **PLAN** phase of the SPIR protocol.
|
|
4
4
|
|
|
5
5
|
## Your Goal
|
|
6
6
|
|
|
@@ -14,10 +14,6 @@ Transform the approved specification into an executable implementation plan with
|
|
|
14
14
|
- **Spec File**: `codev/specs/{{project_id}}-{{title}}.md`
|
|
15
15
|
- **Plan File**: `codev/plans/{{project_id}}-{{title}}.md`
|
|
16
16
|
|
|
17
|
-
## CRITICAL: Multi-Agent Consultation is MANDATORY
|
|
18
|
-
|
|
19
|
-
The SPIDER protocol **requires** consultation with GPT-5 Codex AND Gemini Pro at specific checkpoints. This is BLOCKING - you cannot proceed without completing consultations.
|
|
20
|
-
|
|
21
17
|
## Prerequisites
|
|
22
18
|
|
|
23
19
|
Before planning, verify:
|
|
@@ -72,51 +68,15 @@ Phase 3: API Endpoints (depends on Phase 2)
|
|
|
72
68
|
Phase 4: Frontend Integration (depends on Phase 3)
|
|
73
69
|
```
|
|
74
70
|
|
|
75
|
-
### 5.
|
|
76
|
-
|
|
77
|
-
After completing the initial plan draft:
|
|
78
|
-
|
|
79
|
-
```bash
|
|
80
|
-
# Run consultations in parallel (REQUIRED)
|
|
81
|
-
consult --model gemini plan {{project_id}} &
|
|
82
|
-
consult --model codex plan {{project_id}} &
|
|
83
|
-
wait
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
- Review ALL feedback from both models
|
|
87
|
-
- Update the plan with incorporated feedback
|
|
88
|
-
- Add a **Consultation Log** section documenting:
|
|
89
|
-
- Key feedback received
|
|
90
|
-
- Changes made in response
|
|
91
|
-
- Any feedback intentionally not incorporated (with reasoning)
|
|
92
|
-
|
|
93
|
-
### 6. Human Review
|
|
94
|
-
|
|
95
|
-
After consultation feedback is incorporated:
|
|
96
|
-
- Present the plan for human review
|
|
97
|
-
- Wait for approval or change requests
|
|
98
|
-
- If changes requested, make them and proceed to Step 7
|
|
99
|
-
|
|
100
|
-
### 7. MANDATORY: Second Consultation (After Human Feedback)
|
|
101
|
-
|
|
102
|
-
After incorporating human feedback:
|
|
71
|
+
### 5. Finalize
|
|
103
72
|
|
|
104
|
-
|
|
105
|
-
# Run consultations again (REQUIRED)
|
|
106
|
-
consult --model gemini plan {{project_id}} &
|
|
107
|
-
consult --model codex plan {{project_id}} &
|
|
108
|
-
wait
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
- Update Consultation Log with new feedback
|
|
112
|
-
- Incorporate changes
|
|
113
|
-
- Prepare final plan for approval
|
|
73
|
+
After completing the plan draft, signal completion. Porch will run 3-way consultation (Gemini, Codex, Claude) automatically via the verify step. If reviewers request changes, you'll be respawned with their feedback.
|
|
114
74
|
|
|
115
75
|
## Output
|
|
116
76
|
|
|
117
77
|
Create the plan file at `codev/plans/{{project_id}}-{{title}}.md`.
|
|
118
78
|
|
|
119
|
-
Use the plan template from `codev/protocols/
|
|
79
|
+
Use the plan template from `codev/protocols/spir/templates/plan.md` if available.
|
|
120
80
|
|
|
121
81
|
### Plan Structure
|
|
122
82
|
|
|
@@ -148,18 +108,6 @@ Brief summary of what will be implemented.
|
|
|
148
108
|
- [Risk 1]: [Mitigation]
|
|
149
109
|
- [Risk 2]: [Mitigation]
|
|
150
110
|
|
|
151
|
-
## Consultation Log
|
|
152
|
-
|
|
153
|
-
### First Consultation (After Draft)
|
|
154
|
-
- **Gemini Feedback**: [Summary]
|
|
155
|
-
- **Codex Feedback**: [Summary]
|
|
156
|
-
- **Changes Made**: [List]
|
|
157
|
-
- **Not Incorporated**: [List with reasons]
|
|
158
|
-
|
|
159
|
-
### Second Consultation (After Human Feedback)
|
|
160
|
-
- **Gemini Feedback**: [Summary]
|
|
161
|
-
- **Codex Feedback**: [Summary]
|
|
162
|
-
- **Changes Made**: [List]
|
|
163
111
|
```
|
|
164
112
|
|
|
165
113
|
## Signals
|
|
@@ -171,16 +119,6 @@ Emit appropriate signals based on your progress:
|
|
|
171
119
|
<signal>PLAN_DRAFTED</signal>
|
|
172
120
|
```
|
|
173
121
|
|
|
174
|
-
- After incorporating consultation feedback:
|
|
175
|
-
```
|
|
176
|
-
<signal>CONSULTATION_INCORPORATED</signal>
|
|
177
|
-
```
|
|
178
|
-
|
|
179
|
-
- After final plan is ready for human approval:
|
|
180
|
-
```
|
|
181
|
-
<signal>PLAN_READY_FOR_APPROVAL</signal>
|
|
182
|
-
```
|
|
183
|
-
|
|
184
122
|
## Commit Cadence
|
|
185
123
|
|
|
186
124
|
Make commits at these milestones:
|
|
@@ -196,16 +134,14 @@ git add codev/plans/{{project_id}}-{{title}}.md
|
|
|
196
134
|
|
|
197
135
|
## Important Notes
|
|
198
136
|
|
|
199
|
-
1. **
|
|
200
|
-
2. **No time estimates** - Don't include hours/days/weeks
|
|
137
|
+
1. **No time estimates** - Don't include hours/days/weeks
|
|
201
138
|
3. **Be specific about files** - Exact paths, not "the config file"
|
|
202
139
|
4. **Keep phases small** - 1-3 files per phase is ideal
|
|
203
140
|
5. **Document dependencies clearly** - Prevents blocked work
|
|
204
|
-
6. **Document consultations** - Maintain the Consultation Log section
|
|
205
141
|
|
|
206
142
|
## What NOT to Do
|
|
207
143
|
|
|
208
|
-
- Don't
|
|
144
|
+
- Don't run `consult` commands yourself (porch handles consultations)
|
|
209
145
|
- Don't write code (that's for Implement phase)
|
|
210
146
|
- Don't estimate time (meaningless in AI development)
|
|
211
147
|
- Don't create phases that can't be independently tested
|
|
@@ -1,14 +1,10 @@
|
|
|
1
1
|
# REVIEW Phase Prompt
|
|
2
2
|
|
|
3
|
-
You are executing the **REVIEW** phase of the
|
|
3
|
+
You are executing the **REVIEW** phase of the SPIR protocol.
|
|
4
4
|
|
|
5
5
|
## Your Goal
|
|
6
6
|
|
|
7
|
-
Perform a comprehensive review, document lessons learned,
|
|
8
|
-
|
|
9
|
-
## CRITICAL: Final Consultation Before PR
|
|
10
|
-
|
|
11
|
-
The SPIDER protocol **requires** a final consultation with GPT-5 Codex AND Gemini Pro before submitting the PR. This ensures the complete implementation is reviewed.
|
|
7
|
+
Perform a comprehensive review, document lessons learned, and prepare for PR submission.
|
|
12
8
|
|
|
13
9
|
## Context
|
|
14
10
|
|
|
@@ -92,7 +88,7 @@ Brief description of what was implemented.
|
|
|
92
88
|
- [Insight 2]
|
|
93
89
|
|
|
94
90
|
### Methodology Improvements
|
|
95
|
-
- [Suggested improvement to
|
|
91
|
+
- [Suggested improvement to SPIR protocol]
|
|
96
92
|
- [Suggested improvement to tooling]
|
|
97
93
|
|
|
98
94
|
## Technical Debt
|
|
@@ -118,29 +114,14 @@ Before PR:
|
|
|
118
114
|
- [ ] No uncommitted changes: `git status`
|
|
119
115
|
- [ ] Review document complete
|
|
120
116
|
|
|
121
|
-
### 6.
|
|
117
|
+
### 6. Create Pull Request
|
|
122
118
|
|
|
123
|
-
**
|
|
119
|
+
**IMPORTANT: Create the PR BEFORE signaling completion.** The PR must exist so that
|
|
120
|
+
porch consultation reviews the actual PR, and the architect can review a real PR
|
|
121
|
+
when the pr-ready gate fires.
|
|
124
122
|
|
|
125
123
|
```bash
|
|
126
|
-
|
|
127
|
-
consult --model gemini --type pr-ready spec {{project_id}} &
|
|
128
|
-
consult --model codex --type pr-ready spec {{project_id}} &
|
|
129
|
-
wait
|
|
130
|
-
```
|
|
131
|
-
|
|
132
|
-
- Review ALL feedback from both models
|
|
133
|
-
- Address any final issues identified
|
|
134
|
-
- This is the last chance to catch problems before PR
|
|
135
|
-
|
|
136
|
-
### 7. Create Pull Request
|
|
137
|
-
|
|
138
|
-
Prepare PR with:
|
|
139
|
-
|
|
140
|
-
**Title**: `[Spec {{project_id}}] {{title}}`
|
|
141
|
-
|
|
142
|
-
**Body**:
|
|
143
|
-
```markdown
|
|
124
|
+
gh pr create --title "[Spec {{project_id}}] {{title}}" --body "$(cat <<'EOF'
|
|
144
125
|
## Summary
|
|
145
126
|
[Brief description of the implementation]
|
|
146
127
|
|
|
@@ -158,37 +139,37 @@ Link: codev/specs/{{project_id}}-{{title}}.md
|
|
|
158
139
|
|
|
159
140
|
## Review
|
|
160
141
|
Link: codev/reviews/{{project_id}}-{{title}}.md
|
|
142
|
+
EOF
|
|
143
|
+
)"
|
|
161
144
|
```
|
|
162
145
|
|
|
146
|
+
### 7. Signal Completion
|
|
147
|
+
|
|
148
|
+
After the PR is created, signal completion. Porch will run 3-way consultation
|
|
149
|
+
(Gemini, Codex, Claude) automatically via the verify step. If reviewers request
|
|
150
|
+
changes, you'll be respawned with their feedback.
|
|
151
|
+
|
|
163
152
|
## Output
|
|
164
153
|
|
|
165
154
|
- Review document at `codev/reviews/{{project_id}}-{{title}}.md`
|
|
166
155
|
- Updated documentation (if needed)
|
|
167
|
-
- Pull request ready for
|
|
156
|
+
- Pull request created and ready for review
|
|
168
157
|
|
|
169
158
|
## Signals
|
|
170
159
|
|
|
171
|
-
Emit appropriate signals based on your progress:
|
|
172
|
-
|
|
173
160
|
- After review document is complete:
|
|
174
161
|
```
|
|
175
162
|
<signal>REVIEW_COMPLETE</signal>
|
|
176
163
|
```
|
|
177
164
|
|
|
178
|
-
- After PR is created:
|
|
179
|
-
```
|
|
180
|
-
<signal>PR_CREATED</signal>
|
|
181
|
-
```
|
|
182
|
-
|
|
183
|
-
- When ready for Architect review:
|
|
165
|
+
- After PR is created — signal completion so porch runs consultation:
|
|
184
166
|
```
|
|
185
167
|
<signal>PR_READY</signal>
|
|
186
168
|
```
|
|
187
169
|
|
|
188
170
|
## Important Notes
|
|
189
171
|
|
|
190
|
-
1. **
|
|
191
|
-
2. **Be honest in lessons learned** - Future you will thank present you
|
|
172
|
+
1. **Be honest in lessons learned** - Future you will thank present you
|
|
192
173
|
3. **Document deviations** - They're not failures, they're learnings
|
|
193
174
|
4. **Update methodology** - If you found a better way, document it
|
|
194
175
|
5. **Don't skip the checklist** - It catches last-minute issues
|
|
@@ -196,7 +177,7 @@ Emit appropriate signals based on your progress:
|
|
|
196
177
|
|
|
197
178
|
## What NOT to Do
|
|
198
179
|
|
|
199
|
-
- Don't
|
|
180
|
+
- Don't run `consult` commands yourself (porch handles consultations)
|
|
200
181
|
- Don't skip lessons learned ("nothing to report")
|
|
201
182
|
- Don't merge your own PR (Architect handles integration)
|
|
202
183
|
- Don't leave uncommitted changes
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# SPECIFY Phase Prompt
|
|
2
2
|
|
|
3
|
-
You are executing the **SPECIFY** phase of the
|
|
3
|
+
You are executing the **SPECIFY** phase of the SPIR protocol.
|
|
4
4
|
|
|
5
5
|
## Your Goal
|
|
6
6
|
|
|
@@ -13,13 +13,25 @@ Create a comprehensive specification document that thoroughly explores the probl
|
|
|
13
13
|
- **Current State**: {{current_state}}
|
|
14
14
|
- **Spec File**: `codev/specs/{{project_id}}-{{title}}.md`
|
|
15
15
|
|
|
16
|
-
##
|
|
16
|
+
## Process
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
### 0. Check for Existing Spec (ALWAYS DO THIS FIRST)
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
**Before asking ANY questions**, check if a spec already exists:
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
ls codev/specs/{{project_id}}-*.md
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
**If a spec file exists:**
|
|
27
|
+
1. READ IT COMPLETELY - the answers to your questions are already there
|
|
28
|
+
2. The spec author has already made the key decisions
|
|
29
|
+
3. DO NOT ask clarifying questions - proceed directly to consultation
|
|
30
|
+
4. Your job is to REVIEW and IMPROVE the existing spec, not rewrite it from scratch
|
|
31
|
+
|
|
32
|
+
**If no spec exists:** Proceed to Step 1 below.
|
|
21
33
|
|
|
22
|
-
### 1. Clarifying Questions (
|
|
34
|
+
### 1. Clarifying Questions (ONLY IF NO SPEC EXISTS)
|
|
23
35
|
|
|
24
36
|
Before writing anything, ask clarifying questions to understand:
|
|
25
37
|
- What problem is being solved?
|
|
@@ -28,7 +40,9 @@ Before writing anything, ask clarifying questions to understand:
|
|
|
28
40
|
- What's in scope vs out of scope?
|
|
29
41
|
- What does success look like?
|
|
30
42
|
|
|
31
|
-
If this is your first iteration, ask these questions now and wait for answers.
|
|
43
|
+
If this is your first iteration AND no spec exists, ask these questions now and wait for answers.
|
|
44
|
+
|
|
45
|
+
**CRITICAL**: Do NOT ask questions if a spec already exists. The spec IS the answer.
|
|
32
46
|
|
|
33
47
|
**On subsequent iterations**: If questions were already answered, acknowledge the answers and proceed to the next step.
|
|
34
48
|
|
|
@@ -62,45 +76,9 @@ Define measurable acceptance criteria:
|
|
|
62
76
|
- Non-functional requirements (performance, security)
|
|
63
77
|
- Test scenarios
|
|
64
78
|
|
|
65
|
-
### 6.
|
|
66
|
-
|
|
67
|
-
After completing the initial spec draft:
|
|
68
|
-
|
|
69
|
-
```bash
|
|
70
|
-
# Run consultations in parallel (REQUIRED)
|
|
71
|
-
consult --model gemini spec {{project_id}} &
|
|
72
|
-
consult --model codex spec {{project_id}} &
|
|
73
|
-
wait
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
- Review ALL feedback from both models
|
|
77
|
-
- Update the spec with incorporated feedback
|
|
78
|
-
- Add a **Consultation Log** section documenting:
|
|
79
|
-
- Key feedback received
|
|
80
|
-
- Changes made in response
|
|
81
|
-
- Any feedback intentionally not incorporated (with reasoning)
|
|
79
|
+
### 6. Finalize
|
|
82
80
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
After consultation feedback is incorporated:
|
|
86
|
-
- Present the spec for human review
|
|
87
|
-
- Wait for approval or change requests
|
|
88
|
-
- If changes requested, make them and proceed to Step 8
|
|
89
|
-
|
|
90
|
-
### 8. MANDATORY: Second Consultation (After Human Feedback)
|
|
91
|
-
|
|
92
|
-
After incorporating human feedback:
|
|
93
|
-
|
|
94
|
-
```bash
|
|
95
|
-
# Run consultations again (REQUIRED)
|
|
96
|
-
consult --model gemini spec {{project_id}} &
|
|
97
|
-
consult --model codex spec {{project_id}} &
|
|
98
|
-
wait
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
- Update Consultation Log with new feedback
|
|
102
|
-
- Incorporate changes
|
|
103
|
-
- Prepare final spec for approval
|
|
81
|
+
After completing the spec draft, signal completion. Porch will run 3-way consultation (Gemini, Codex, Claude) automatically via the verify step. If reviewers request changes, you'll be respawned with their feedback.
|
|
104
82
|
|
|
105
83
|
## Output
|
|
106
84
|
|
|
@@ -111,8 +89,6 @@ Create or update the specification file at `codev/specs/{{project_id}}-{{title}}
|
|
|
111
89
|
- Plan: `codev/plans/{{project_id}}-{{title}}.md`
|
|
112
90
|
- Review: `codev/reviews/{{project_id}}-{{title}}.md`
|
|
113
91
|
|
|
114
|
-
Include a **Consultation Log** section in the spec documenting all consultation feedback.
|
|
115
|
-
|
|
116
92
|
## Signals
|
|
117
93
|
|
|
118
94
|
Emit appropriate signals based on your progress:
|
|
@@ -134,15 +110,6 @@ Emit appropriate signals based on your progress:
|
|
|
134
110
|
<signal>SPEC_DRAFTED</signal>
|
|
135
111
|
```
|
|
136
112
|
|
|
137
|
-
- After incorporating consultation feedback:
|
|
138
|
-
```
|
|
139
|
-
<signal>CONSULTATION_INCORPORATED</signal>
|
|
140
|
-
```
|
|
141
|
-
|
|
142
|
-
- After final spec is ready for human approval:
|
|
143
|
-
```
|
|
144
|
-
<signal>SPEC_READY_FOR_APPROVAL</signal>
|
|
145
|
-
```
|
|
146
113
|
|
|
147
114
|
## Commit Cadence
|
|
148
115
|
|
|
@@ -159,15 +126,13 @@ git add codev/specs/{{project_id}}-{{title}}.md
|
|
|
159
126
|
|
|
160
127
|
## Important Notes
|
|
161
128
|
|
|
162
|
-
1. **
|
|
163
|
-
2. **Be thorough** - A good spec prevents implementation problems
|
|
129
|
+
1. **Be thorough** - A good spec prevents implementation problems
|
|
164
130
|
3. **Be specific** - Vague specs lead to wrong implementations
|
|
165
131
|
4. **Include examples** - Concrete examples clarify intent
|
|
166
|
-
5. **Document consultations** - Maintain the Consultation Log section
|
|
167
132
|
|
|
168
133
|
## What NOT to Do
|
|
169
134
|
|
|
170
|
-
- Don't
|
|
135
|
+
- Don't run `consult` commands yourself (porch handles consultations)
|
|
171
136
|
- Don't include implementation details (that's for the Plan phase)
|
|
172
137
|
- Don't estimate time (AI makes time estimates meaningless)
|
|
173
138
|
- Don't start coding (you're in Specify, not Implement)
|
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "../../protocol-schema.json",
|
|
3
|
-
"name": "
|
|
4
|
-
"
|
|
5
|
-
"
|
|
3
|
+
"name": "spir",
|
|
4
|
+
"alias": "spider",
|
|
5
|
+
"version": "2.2.0",
|
|
6
|
+
"description": "SPIR: Specify → Plan → Implement → Review with build-verify cycles",
|
|
7
|
+
"input": {
|
|
8
|
+
"type": "spec",
|
|
9
|
+
"required": false,
|
|
10
|
+
"default_for": ["--project", "-p"]
|
|
11
|
+
},
|
|
6
12
|
"phases": [
|
|
7
13
|
{
|
|
8
14
|
"id": "specify",
|
|
@@ -18,7 +24,7 @@
|
|
|
18
24
|
"models": ["gemini", "codex", "claude"],
|
|
19
25
|
"parallel": true
|
|
20
26
|
},
|
|
21
|
-
"max_iterations":
|
|
27
|
+
"max_iterations": 7,
|
|
22
28
|
"on_complete": {
|
|
23
29
|
"commit": true,
|
|
24
30
|
"push": true
|
|
@@ -40,14 +46,15 @@
|
|
|
40
46
|
"models": ["gemini", "codex", "claude"],
|
|
41
47
|
"parallel": true
|
|
42
48
|
},
|
|
43
|
-
"max_iterations":
|
|
49
|
+
"max_iterations": 7,
|
|
44
50
|
"on_complete": {
|
|
45
51
|
"commit": true,
|
|
46
52
|
"push": true
|
|
47
53
|
},
|
|
48
54
|
"checks": {
|
|
49
55
|
"plan_exists": "test -f codev/plans/${PROJECT_ID}-*.md",
|
|
50
|
-
"has_phases_json": "grep -q '\"phases\":' codev/plans/${PROJECT_ID}-*.md"
|
|
56
|
+
"has_phases_json": "grep -q '\"phases\":' codev/plans/${PROJECT_ID}-*.md",
|
|
57
|
+
"min_two_phases": "grep -o '\"id\": *\"[^\"]*\"' codev/plans/${PROJECT_ID}-*.md | wc -l | awk '$1 >= 2 {exit 0} {exit 1}'"
|
|
51
58
|
},
|
|
52
59
|
"gate": "plan-approval",
|
|
53
60
|
"next": "implement"
|
|
@@ -66,7 +73,7 @@
|
|
|
66
73
|
"models": ["gemini", "codex", "claude"],
|
|
67
74
|
"parallel": true
|
|
68
75
|
},
|
|
69
|
-
"max_iterations":
|
|
76
|
+
"max_iterations": 7,
|
|
70
77
|
"on_complete": {
|
|
71
78
|
"commit": true,
|
|
72
79
|
"push": true
|
|
@@ -78,7 +85,8 @@
|
|
|
78
85
|
"max_retries": 2
|
|
79
86
|
},
|
|
80
87
|
"tests": {
|
|
81
|
-
"command": "npm test",
|
|
88
|
+
"command": "npm test -- --exclude='**/e2e/**'",
|
|
89
|
+
"description": "Unit tests only - e2e tests run in review phase",
|
|
82
90
|
"on_fail": "retry",
|
|
83
91
|
"max_retries": 2
|
|
84
92
|
}
|
|
@@ -102,11 +110,22 @@
|
|
|
102
110
|
"models": ["gemini", "codex", "claude"],
|
|
103
111
|
"parallel": true
|
|
104
112
|
},
|
|
105
|
-
"max_iterations":
|
|
113
|
+
"max_iterations": 7,
|
|
106
114
|
"on_complete": {
|
|
107
115
|
"commit": true,
|
|
108
116
|
"push": true
|
|
109
117
|
},
|
|
118
|
+
"checks": {
|
|
119
|
+
"pr_exists": {
|
|
120
|
+
"command": "gh pr list --head \"$(git branch --show-current)\" --json number --jq 'length' | grep -q '^[1-9]'",
|
|
121
|
+
"description": "PR must be created before signaling completion"
|
|
122
|
+
},
|
|
123
|
+
"e2e_tests": {
|
|
124
|
+
"command": "npm run test:e2e 2>&1 || echo 'e2e tests skipped (not configured)'",
|
|
125
|
+
"description": "Full e2e test suite - only runs in review phase",
|
|
126
|
+
"optional": true
|
|
127
|
+
}
|
|
128
|
+
},
|
|
110
129
|
"gate": "pr-ready",
|
|
111
130
|
"next": null
|
|
112
131
|
}
|
|
@@ -127,7 +146,8 @@
|
|
|
127
146
|
"commit_has_code": "git log -1 --name-only --pretty=format: | grep -qE '\\.(ts|tsx|js|jsx|py|go|rs)$'"
|
|
128
147
|
},
|
|
129
148
|
"defaults": {
|
|
130
|
-
"
|
|
149
|
+
"mode": "strict",
|
|
150
|
+
"max_iterations": 7,
|
|
131
151
|
"verify": {
|
|
132
152
|
"models": ["gemini", "codex", "claude"],
|
|
133
153
|
"parallel": true
|