@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,9 +1,19 @@
|
|
|
1
|
-
#
|
|
1
|
+
# SPIR Protocol
|
|
2
|
+
|
|
3
|
+
> **SPIR** = **S**pecify → **P**lan → **I**mplement → **R**eview
|
|
4
|
+
>
|
|
5
|
+
> Each phase has one build-verify cycle with 3-way consultation.
|
|
2
6
|
|
|
3
7
|
> **Quick Reference**: See `codev/resources/workflow-reference.md` for stage diagrams and common commands.
|
|
4
8
|
|
|
5
9
|
## Prerequisites
|
|
6
10
|
|
|
11
|
+
**Clean Worktree Before Spawning Builders**:
|
|
12
|
+
- All specs, plans, and local changes **MUST be committed** before `af spawn`
|
|
13
|
+
- Builders work in git worktrees branched from HEAD — uncommitted files are invisible
|
|
14
|
+
- This includes `codev update` results, spec drafts, and plan approvals
|
|
15
|
+
- The `af spawn` command enforces this (use `--force` to override)
|
|
16
|
+
|
|
7
17
|
**Required for Multi-Agent Consultation**:
|
|
8
18
|
- The `consult` CLI must be available (installed with `npm install -g @cluesmith/codev`)
|
|
9
19
|
- At least one consultation backend: `claude`, `gemini-cli`, or `codex`
|
|
@@ -14,17 +24,17 @@
|
|
|
14
24
|
### Multi-Agent Consultation (ENABLED BY DEFAULT)
|
|
15
25
|
|
|
16
26
|
**DEFAULT BEHAVIOR:**
|
|
17
|
-
Multi-agent consultation is **ENABLED BY DEFAULT** when using
|
|
27
|
+
Multi-agent consultation is **ENABLED BY DEFAULT** when using SPIR protocol.
|
|
18
28
|
|
|
19
29
|
**DEFAULT AGENTS:**
|
|
20
30
|
- **GPT-5 Codex**: Primary reviewer for architecture, feasibility, and code quality
|
|
21
31
|
- **Gemini Pro**: Secondary reviewer for completeness, edge cases, and alternative approaches
|
|
22
32
|
|
|
23
33
|
**DISABLING CONSULTATION:**
|
|
24
|
-
To run
|
|
34
|
+
To run SPIR without consultation, say "without consultation" when starting work.
|
|
25
35
|
|
|
26
36
|
**CUSTOM AGENTS:**
|
|
27
|
-
The user can specify different agents by saying: "use
|
|
37
|
+
The user can specify different agents by saying: "use SPIR with consultation from [agent1] and [agent2]"
|
|
28
38
|
|
|
29
39
|
**CONSULTATION BEHAVIOR:**
|
|
30
40
|
- DEFAULT: MANDATORY consultation with GPT-5 and Gemini Pro at EVERY checkpoint
|
|
@@ -40,13 +50,21 @@ The user can specify different agents by saying: "use SPIDER with consultation f
|
|
|
40
50
|
- **Review**: After review document
|
|
41
51
|
|
|
42
52
|
## Overview
|
|
43
|
-
|
|
53
|
+
SPIR is a structured development protocol that emphasizes specification-driven development with iterative implementation and continuous review. It builds upon the DAPPER methodology with a focus on context-first development and multi-agent collaboration.
|
|
54
|
+
|
|
55
|
+
**The SPIR Model**:
|
|
56
|
+
- **S - Specify**: Write specification with 3-way review → Gate: `spec-approval`
|
|
57
|
+
- **P - Plan**: Write implementation plan with 3-way review → Gate: `plan-approval`
|
|
58
|
+
- **I - Implement**: Execute each plan phase with build-verify cycle (one cycle per phase)
|
|
59
|
+
- **R - Review**: Final review and PR preparation with 3-way review
|
|
60
|
+
|
|
61
|
+
Each phase follows a build-verify loop: build the artifact, then verify with 3-way consultation (Gemini, Codex, Claude).
|
|
44
62
|
|
|
45
63
|
**Core Principle**: Each feature is tracked through exactly THREE documents - a specification, a plan, and a review with lessons learned - all sharing the same filename and sequential identifier.
|
|
46
64
|
|
|
47
|
-
## When to Use
|
|
65
|
+
## When to Use SPIR
|
|
48
66
|
|
|
49
|
-
### Use
|
|
67
|
+
### Use SPIR for:
|
|
50
68
|
- New feature development
|
|
51
69
|
- Architecture changes
|
|
52
70
|
- Complex refactoring
|
|
@@ -54,7 +72,7 @@ SPIDER is a structured development protocol that emphasizes specification-driven
|
|
|
54
72
|
- API design and implementation
|
|
55
73
|
- Performance optimization initiatives
|
|
56
74
|
|
|
57
|
-
### Skip
|
|
75
|
+
### Skip SPIR for:
|
|
58
76
|
- Simple bug fixes (< 10 lines)
|
|
59
77
|
- Documentation updates
|
|
60
78
|
- Configuration changes
|
|
@@ -224,25 +242,21 @@ Each phase should be:
|
|
|
224
242
|
**Template**: `templates/plan.md`
|
|
225
243
|
**Review Required**: Yes - Technical lead approval AFTER consultations
|
|
226
244
|
|
|
227
|
-
###
|
|
228
|
-
|
|
229
|
-
Execute for each phase in the plan. This is a strict cycle that must be completed in order.
|
|
245
|
+
### I - Implement (Per Plan Phase)
|
|
230
246
|
|
|
231
|
-
|
|
247
|
+
Execute for each phase in the plan. Each phase follows a build-verify cycle.
|
|
232
248
|
|
|
233
249
|
**CRITICAL PRECONDITION**: Before starting any phase, verify the previous phase was committed to git. No phase can begin without the prior phase's commit.
|
|
234
250
|
|
|
235
|
-
**
|
|
236
|
-
1. **
|
|
237
|
-
2. **
|
|
238
|
-
3. **
|
|
251
|
+
**Build-Verify Cycle Per Phase**:
|
|
252
|
+
1. **Build** - Implement code and tests for this phase
|
|
253
|
+
2. **Verify** - 3-way consultation (Gemini, Codex, Claude)
|
|
254
|
+
3. **Iterate** - Address feedback until verification passes
|
|
239
255
|
4. **Commit** - Single atomic commit for the phase (MANDATORY before next phase)
|
|
240
256
|
5. **Proceed** - Move to next phase only after commit
|
|
241
257
|
|
|
242
258
|
**Handling Failures**:
|
|
243
|
-
- If
|
|
244
|
-
- If **Evaluation** reveals unmet criteria → return to **Implement**
|
|
245
|
-
- If user requests changes → return to **Implement**
|
|
259
|
+
- If verification reveals gaps → iterate and fix
|
|
246
260
|
- If fundamental plan flaws found → mark phase as `blocked` and revise plan
|
|
247
261
|
|
|
248
262
|
**Commit Requirements**:
|
|
@@ -586,12 +600,12 @@ Implements bcrypt-based password hashing with configurable rounds
|
|
|
586
600
|
|
|
587
601
|
### Branch Naming
|
|
588
602
|
```
|
|
589
|
-
|
|
603
|
+
spir/####-<spec-name>/<phase-name>
|
|
590
604
|
```
|
|
591
605
|
|
|
592
606
|
Example:
|
|
593
607
|
```
|
|
594
|
-
|
|
608
|
+
spir/0001-user-authentication/database-schema
|
|
595
609
|
```
|
|
596
610
|
|
|
597
611
|
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
# Review: [Feature/Project Name]
|
|
2
|
+
|
|
3
|
+
## Summary
|
|
4
|
+
|
|
5
|
+
[1-3 sentences: what was built, how many phases, net outcome.]
|
|
6
|
+
|
|
7
|
+
## Spec Compliance
|
|
8
|
+
|
|
9
|
+
- [x] AC1: [Description] (Phase N)
|
|
10
|
+
- [x] AC2: [Description] (Phase N)
|
|
11
|
+
- [ ] ACn: [Not met — reason]
|
|
12
|
+
|
|
13
|
+
## Deviations from Plan
|
|
14
|
+
|
|
15
|
+
- **Phase N**: [What changed and why]
|
|
16
|
+
|
|
17
|
+
## Key Metrics
|
|
18
|
+
|
|
19
|
+
- **Commits**: [N] on the branch
|
|
20
|
+
- **Tests**: [N] passing ([N] existing + [N] new)
|
|
21
|
+
- **Files created**: [list]
|
|
22
|
+
- **Files deleted**: [list]
|
|
23
|
+
- **Net LOC impact**: [+/-N lines]
|
|
24
|
+
|
|
25
|
+
## Timelog
|
|
26
|
+
|
|
27
|
+
All times [timezone], [date range].
|
|
28
|
+
|
|
29
|
+
| Time | Event |
|
|
30
|
+
|------|-------|
|
|
31
|
+
| HH:MM | First commit: [description] |
|
|
32
|
+
| HH:MM | [Phase/milestone] |
|
|
33
|
+
| — | **GATE: [gate-name]** (human approval required) |
|
|
34
|
+
| HH:MM | Implementation begins |
|
|
35
|
+
| HH:MM | Phase N complete after N iterations |
|
|
36
|
+
| HH:MM | **GATE: pr-ready** |
|
|
37
|
+
|
|
38
|
+
### Autonomous Operation
|
|
39
|
+
|
|
40
|
+
| Period | Duration | Activity |
|
|
41
|
+
|--------|----------|----------|
|
|
42
|
+
| Spec + Plan | ~Nm | [Summary] |
|
|
43
|
+
| Human gate wait | ~Nh Nm | Idle — waiting for approval |
|
|
44
|
+
| Implementation → PR | ~Nh Nm | N phases, N consultation rounds |
|
|
45
|
+
|
|
46
|
+
**Total wall clock** (first commit to pr-ready): **Xh Ym**
|
|
47
|
+
**Total autonomous work time** (excluding gate waits): **~Xh Ym**
|
|
48
|
+
**Context window resets**: [N] (resumed automatically / required manual restart)
|
|
49
|
+
|
|
50
|
+
## Consultation Iteration Summary
|
|
51
|
+
|
|
52
|
+
[N] consultation files produced ([N] rounds x [N] models). [N] APPROVE, [N] REQUEST_CHANGES, [N] COMMENT.
|
|
53
|
+
|
|
54
|
+
| Phase | Iters | Who Blocked | What They Caught |
|
|
55
|
+
|-------|-------|-------------|------------------|
|
|
56
|
+
| Specify | N | [Model] | [Brief description] |
|
|
57
|
+
| Plan | N | [Model] | [Brief description] |
|
|
58
|
+
| Phase 1 | N | [Model] | [Brief description] |
|
|
59
|
+
| Phase N | N | [Model] | [Brief description] |
|
|
60
|
+
| Review | N | [Model] | [Brief description] |
|
|
61
|
+
|
|
62
|
+
**Most frequent blocker**: [Model] — blocked in N of N rounds, focused on: [pattern].
|
|
63
|
+
|
|
64
|
+
### Avoidable Iterations
|
|
65
|
+
|
|
66
|
+
Iterations that could have been prevented with better builder behavior:
|
|
67
|
+
|
|
68
|
+
1. **[Pattern]**: [Specific thing the builder should have done without needing reviewer feedback. E.g., "Run exhaustive grep before claiming all instances fixed."]
|
|
69
|
+
|
|
70
|
+
2. **[Pattern]**: [Another avoidable iteration pattern.]
|
|
71
|
+
|
|
72
|
+
## Lessons Learned
|
|
73
|
+
|
|
74
|
+
### What Went Well
|
|
75
|
+
- [Specific positive observation — what worked and why]
|
|
76
|
+
|
|
77
|
+
### Challenges Encountered
|
|
78
|
+
- **[Challenge]**: [How it was resolved. How many iterations it cost.]
|
|
79
|
+
|
|
80
|
+
### What Would Be Done Differently
|
|
81
|
+
- [Actionable improvement for future builders]
|
|
82
|
+
|
|
83
|
+
## Technical Debt
|
|
84
|
+
|
|
85
|
+
- [Any shortcuts taken or inconsistencies introduced]
|
|
86
|
+
|
|
87
|
+
## Follow-up Items
|
|
88
|
+
|
|
89
|
+
- [Items identified for future work, outside this spec's scope]
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# {{protocol_name}} Builder ({{mode}} mode)
|
|
2
|
+
|
|
3
|
+
You are implementing {{input_description}}.
|
|
4
|
+
|
|
5
|
+
{{#if mode_soft}}
|
|
6
|
+
## Mode: SOFT
|
|
7
|
+
You are running in SOFT mode. This means:
|
|
8
|
+
- You follow the TICK protocol yourself (no porch orchestration)
|
|
9
|
+
- The architect monitors your work and verifies you're adhering to the protocol
|
|
10
|
+
- Run consultations manually when the protocol calls for them
|
|
11
|
+
- You have flexibility in execution, but must stay compliant with the protocol
|
|
12
|
+
{{/if}}
|
|
13
|
+
|
|
14
|
+
{{#if mode_strict}}
|
|
15
|
+
## Mode: STRICT
|
|
16
|
+
You are running in STRICT mode. This means:
|
|
17
|
+
- Porch orchestrates your work
|
|
18
|
+
- Run: `porch next` to get your next tasks
|
|
19
|
+
- Follow porch signals and gate approvals
|
|
20
|
+
|
|
21
|
+
### ABSOLUTE RESTRICTIONS (STRICT MODE)
|
|
22
|
+
- **NEVER edit `status.yaml` directly** — only porch commands may modify project state
|
|
23
|
+
- **NEVER call `porch approve` without explicit human approval** — only run it after the architect says to
|
|
24
|
+
- **NEVER skip the 3-way review** — always follow porch next → porch done cycle
|
|
25
|
+
{{/if}}
|
|
26
|
+
|
|
27
|
+
## Protocol
|
|
28
|
+
Follow the TICK protocol: `codev/protocols/tick/protocol.md`
|
|
29
|
+
|
|
30
|
+
TICK is for amendments to existing SPIR specifications. You will:
|
|
31
|
+
1. Identify the target spec to amend
|
|
32
|
+
2. Update the spec with the amendment
|
|
33
|
+
3. Update the plan
|
|
34
|
+
4. Implement the changes
|
|
35
|
+
5. Defend with tests
|
|
36
|
+
6. Create review
|
|
37
|
+
|
|
38
|
+
{{#if spec}}
|
|
39
|
+
## Target Spec
|
|
40
|
+
The spec to amend is at: `{{spec.path}}`
|
|
41
|
+
{{/if}}
|
|
42
|
+
|
|
43
|
+
{{#if plan}}
|
|
44
|
+
## Target Plan
|
|
45
|
+
The plan to amend is at: `{{plan.path}}`
|
|
46
|
+
{{/if}}
|
|
47
|
+
|
|
48
|
+
{{#if task}}
|
|
49
|
+
## Amendment Description
|
|
50
|
+
{{task_text}}
|
|
51
|
+
{{/if}}
|
|
52
|
+
|
|
53
|
+
## Getting Started
|
|
54
|
+
1. Read the TICK protocol thoroughly
|
|
55
|
+
2. Identify what needs to change in the existing spec
|
|
56
|
+
3. Follow the amendment workflow
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "../../protocol-schema.json",
|
|
3
3
|
"name": "tick",
|
|
4
|
-
"version": "1.
|
|
5
|
-
"description": "Amendment workflow for existing
|
|
4
|
+
"version": "1.1.0",
|
|
5
|
+
"description": "Amendment workflow for existing SPIR specifications",
|
|
6
|
+
"input": {
|
|
7
|
+
"type": "spec",
|
|
8
|
+
"required": false
|
|
9
|
+
},
|
|
6
10
|
"phases": [
|
|
7
11
|
{
|
|
8
12
|
"id": "identify",
|
|
@@ -138,6 +142,7 @@
|
|
|
138
142
|
}
|
|
139
143
|
},
|
|
140
144
|
"defaults": {
|
|
145
|
+
"mode": "strict",
|
|
141
146
|
"consultation": {
|
|
142
147
|
"enabled": true,
|
|
143
148
|
"models": ["gemini", "codex"],
|
|
@@ -3,16 +3,16 @@
|
|
|
3
3
|
|
|
4
4
|
## Overview
|
|
5
5
|
|
|
6
|
-
TICK is an **amendment workflow** for existing
|
|
6
|
+
TICK is an **amendment workflow** for existing SPIR specifications. Rather than creating new standalone specs, TICK modifies existing spec and plan documents in-place, tracking changes in an "Amendments" section.
|
|
7
7
|
|
|
8
|
-
**Core Principle**: TICK is for *refining* existing specs.
|
|
8
|
+
**Core Principle**: TICK is for *refining* existing specs. SPIR is for *creating* new specs.
|
|
9
9
|
|
|
10
|
-
**Key Insight**: TICKs are not small
|
|
10
|
+
**Key Insight**: TICKs are not small SPIRs - they're amendments to existing SPIRs. This eliminates the "TICK vs SPIR" decision problem and keeps related work together.
|
|
11
11
|
|
|
12
12
|
## When to Use TICK
|
|
13
13
|
|
|
14
14
|
### Use TICK when:
|
|
15
|
-
- Making **amendments to an existing
|
|
15
|
+
- Making **amendments to an existing SPIR spec** that is already `integrated`
|
|
16
16
|
- Small scope (< 300 lines of new/changed code)
|
|
17
17
|
- Requirements are clear and well-defined
|
|
18
18
|
- No fundamental architecture changes
|
|
@@ -23,7 +23,7 @@ TICK is an **amendment workflow** for existing SPIDER specifications. Rather tha
|
|
|
23
23
|
- Utility function additions to existing modules
|
|
24
24
|
- Refactoring within an existing feature
|
|
25
25
|
|
|
26
|
-
### Use
|
|
26
|
+
### Use SPIR instead when:
|
|
27
27
|
- Creating a **new feature from scratch** (no existing spec to amend)
|
|
28
28
|
- Major architecture changes (scope too large for amendment)
|
|
29
29
|
- Unclear requirements needing exploration
|
|
@@ -31,8 +31,8 @@ TICK is an **amendment workflow** for existing SPIDER specifications. Rather tha
|
|
|
31
31
|
- Multiple stakeholders need alignment
|
|
32
32
|
|
|
33
33
|
### Cannot Use TICK when:
|
|
34
|
-
- No relevant
|
|
35
|
-
- Target spec is not yet `integrated` (complete the
|
|
34
|
+
- No relevant SPIR spec exists (create a new SPIR spec instead)
|
|
35
|
+
- Target spec is not yet `integrated` (complete the SPIR cycle first)
|
|
36
36
|
|
|
37
37
|
## Amendment Workflow
|
|
38
38
|
|
|
@@ -162,9 +162,9 @@ The format `[TICK ####-NNN]` identifies:
|
|
|
162
162
|
- `####`: Parent spec number (e.g., 0002)
|
|
163
163
|
- `NNN`: TICK amendment number (e.g., 001, 002, 003)
|
|
164
164
|
|
|
165
|
-
## Key Differences from
|
|
165
|
+
## Key Differences from SPIR
|
|
166
166
|
|
|
167
|
-
| Aspect |
|
|
167
|
+
| Aspect | SPIR | TICK |
|
|
168
168
|
|--------|--------|------|
|
|
169
169
|
| Purpose | Create new features | Amend existing features |
|
|
170
170
|
| File creation | Creates new spec/plan/review | Modifies spec/plan, creates review |
|
|
@@ -178,16 +178,16 @@ The format `[TICK ####-NNN]` identifies:
|
|
|
178
178
|
|
|
179
179
|
```
|
|
180
180
|
Is there an existing spec to amend?
|
|
181
|
-
├── NO → Use
|
|
181
|
+
├── NO → Use SPIR (create new spec)
|
|
182
182
|
└── YES → Is it integrated?
|
|
183
|
-
├── NO → Complete
|
|
183
|
+
├── NO → Complete SPIR cycle first
|
|
184
184
|
└── YES → Is the change small (<300 LOC)?
|
|
185
185
|
├── YES → Use TICK (amend existing spec)
|
|
186
|
-
└── NO → Use
|
|
186
|
+
└── NO → Use SPIR (scope too large)
|
|
187
187
|
```
|
|
188
188
|
|
|
189
189
|
**Mental Model**:
|
|
190
|
-
-
|
|
190
|
+
- SPIR = Create new feature from scratch
|
|
191
191
|
- TICK = Refine/extend existing feature
|
|
192
192
|
|
|
193
193
|
## Example TICK Workflow
|
|
@@ -251,7 +251,7 @@ Existing standalone TICK projects (created before this protocol change) are gran
|
|
|
251
251
|
1. **Single source of truth**: Spec file shows complete feature evolution
|
|
252
252
|
2. **Clear history**: Amendments section documents all changes chronologically
|
|
253
253
|
3. **Reduced fragmentation**: Related work stays together
|
|
254
|
-
4. **Simpler mental model**: "New vs amendment" is clearer than "
|
|
254
|
+
4. **Simpler mental model**: "New vs amendment" is clearer than "SPIR vs TICK"
|
|
255
255
|
5. **Preserved context**: Looking at a spec shows all refinements
|
|
256
256
|
|
|
257
257
|
## Limitations
|
|
@@ -264,14 +264,14 @@ Existing standalone TICK projects (created before this protocol change) are gran
|
|
|
264
264
|
## Best Practices
|
|
265
265
|
|
|
266
266
|
1. **Verify spec is integrated**: Never TICK a spec that isn't complete
|
|
267
|
-
2. **Keep TICKs small**: If scope grows, consider new
|
|
267
|
+
2. **Keep TICKs small**: If scope grows, consider new SPIR spec
|
|
268
268
|
3. **Clear summaries**: Amendment entries should be self-explanatory
|
|
269
269
|
4. **Test before review**: Always test functionality before presenting
|
|
270
270
|
5. **Honest documentation**: Document all deviations in review
|
|
271
271
|
|
|
272
272
|
## Templates
|
|
273
273
|
|
|
274
|
-
TICK uses the standard
|
|
275
|
-
- Spec template: `codev/protocols/
|
|
276
|
-
- Plan template: `codev/protocols/
|
|
274
|
+
TICK uses the standard SPIR templates with amendments sections:
|
|
275
|
+
- Spec template: `codev/protocols/spir/templates/spec.md` (includes Amendments section)
|
|
276
|
+
- Plan template: `codev/protocols/spir/templates/plan.md` (includes Amendment History section)
|
|
277
277
|
- Review template: `codev/protocols/tick/templates/review.md` (TICK-specific)
|
|
@@ -77,7 +77,7 @@
|
|
|
77
77
|
|
|
78
78
|
## TICK Protocol Feedback
|
|
79
79
|
- **Autonomous execution**: [Worked well / Issues encountered]
|
|
80
|
-
- **Single-phase approach**: [Appropriate / Should have used
|
|
80
|
+
- **Single-phase approach**: [Appropriate / Should have used SPIR]
|
|
81
81
|
- **Speed vs quality trade-off**: [Balanced / Too fast / Too slow]
|
|
82
82
|
- **End-only consultation**: [Caught issues / Missed opportunities]
|
|
83
83
|
|
|
@@ -18,12 +18,16 @@ af <command> [options]
|
|
|
18
18
|
|
|
19
19
|
## Commands
|
|
20
20
|
|
|
21
|
-
### af
|
|
21
|
+
### af dash
|
|
22
|
+
|
|
23
|
+
Project dashboard commands - start/stop the architect dashboard for this project.
|
|
24
|
+
|
|
25
|
+
#### af dash start
|
|
22
26
|
|
|
23
27
|
Start the architect dashboard.
|
|
24
28
|
|
|
25
29
|
```bash
|
|
26
|
-
af start [options]
|
|
30
|
+
af dash start [options]
|
|
27
31
|
```
|
|
28
32
|
|
|
29
33
|
**Options:**
|
|
@@ -39,7 +43,7 @@ af start [options]
|
|
|
39
43
|
Starts the agent-farm dashboard with:
|
|
40
44
|
- Architect terminal (Claude session with architect role)
|
|
41
45
|
- Web-based UI for monitoring builders
|
|
42
|
-
-
|
|
46
|
+
- Terminal session management (shellper processes)
|
|
43
47
|
|
|
44
48
|
The dashboard is accessible via browser at `http://localhost:<port>`.
|
|
45
49
|
|
|
@@ -47,16 +51,16 @@ The dashboard is accessible via browser at `http://localhost:<port>`.
|
|
|
47
51
|
|
|
48
52
|
```bash
|
|
49
53
|
# Start with defaults
|
|
50
|
-
af start
|
|
54
|
+
af dash start
|
|
51
55
|
|
|
52
56
|
# Start with custom port
|
|
53
|
-
af start -p 4300
|
|
57
|
+
af dash start -p 4300
|
|
54
58
|
|
|
55
59
|
# Start with specific command
|
|
56
|
-
af start -c "claude --model opus"
|
|
60
|
+
af dash start -c "claude --model opus"
|
|
57
61
|
|
|
58
62
|
# Start on remote machine
|
|
59
|
-
af start --remote user@host
|
|
63
|
+
af dash start --remote user@host
|
|
60
64
|
```
|
|
61
65
|
|
|
62
66
|
#### Remote Access
|
|
@@ -65,13 +69,13 @@ Start Agent Farm on a remote machine and access it from your local workstation w
|
|
|
65
69
|
|
|
66
70
|
```bash
|
|
67
71
|
# On your local machine - one command does everything:
|
|
68
|
-
af start --remote user@remote-host
|
|
72
|
+
af dash start --remote user@remote-host
|
|
69
73
|
|
|
70
74
|
# Or with explicit project path:
|
|
71
|
-
af start --remote user@remote-host:/path/to/project
|
|
75
|
+
af dash start --remote user@remote-host:/path/to/project
|
|
72
76
|
|
|
73
77
|
# With custom port:
|
|
74
|
-
af start --remote user@remote-host --port 4300
|
|
78
|
+
af dash start --remote user@remote-host --port 4300
|
|
75
79
|
```
|
|
76
80
|
|
|
77
81
|
This single command:
|
|
@@ -112,26 +116,23 @@ export PATH="$HOME/.local/bin:$PATH"
|
|
|
112
116
|
|
|
113
117
|
```bash
|
|
114
118
|
# DEPRECATED: Exposes dashboard without authentication
|
|
115
|
-
af start --allow-insecure-remote
|
|
119
|
+
af dash start --allow-insecure-remote
|
|
116
120
|
```
|
|
117
121
|
|
|
118
122
|
The `--allow-insecure-remote` flag binds to `0.0.0.0` with no authentication. Use `--remote` instead for secure access via SSH.
|
|
119
123
|
|
|
120
|
-
|
|
124
|
+
#### af dash stop
|
|
121
125
|
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
Stop all agent farm processes.
|
|
126
|
+
Stop all agent farm processes for this project.
|
|
125
127
|
|
|
126
128
|
```bash
|
|
127
|
-
af stop
|
|
129
|
+
af dash stop
|
|
128
130
|
```
|
|
129
131
|
|
|
130
132
|
**Description:**
|
|
131
133
|
|
|
132
134
|
Stops all running agent-farm processes including:
|
|
133
|
-
-
|
|
134
|
-
- ttyd processes
|
|
135
|
+
- Terminal sessions (shellper processes)
|
|
135
136
|
- Dashboard servers
|
|
136
137
|
|
|
137
138
|
Does NOT clean up worktrees - use `af cleanup` for that.
|
|
@@ -306,16 +307,14 @@ af open src/auth/login.ts
|
|
|
306
307
|
|
|
307
308
|
---
|
|
308
309
|
|
|
309
|
-
### af
|
|
310
|
+
### af shell
|
|
310
311
|
|
|
311
312
|
Spawn a utility shell terminal.
|
|
312
313
|
|
|
313
314
|
```bash
|
|
314
|
-
af
|
|
315
|
+
af shell [options]
|
|
315
316
|
```
|
|
316
317
|
|
|
317
|
-
**Aliases:** `af shell`
|
|
318
|
-
|
|
319
318
|
**Options:**
|
|
320
319
|
- `-n, --name <name>` - Name for the shell terminal
|
|
321
320
|
|
|
@@ -330,10 +329,10 @@ Opens a general-purpose shell terminal in the dashboard. Useful for:
|
|
|
330
329
|
|
|
331
330
|
```bash
|
|
332
331
|
# Open utility shell
|
|
333
|
-
af
|
|
332
|
+
af shell
|
|
334
333
|
|
|
335
334
|
# Open with custom name
|
|
336
|
-
af
|
|
335
|
+
af shell -n "test-runner"
|
|
337
336
|
```
|
|
338
337
|
|
|
339
338
|
---
|
|
@@ -358,25 +357,6 @@ af rename 0042 "auth-rework"
|
|
|
358
357
|
|
|
359
358
|
---
|
|
360
359
|
|
|
361
|
-
### af tutorial
|
|
362
|
-
|
|
363
|
-
Interactive tutorial for new users.
|
|
364
|
-
|
|
365
|
-
```bash
|
|
366
|
-
af tutorial [options]
|
|
367
|
-
```
|
|
368
|
-
|
|
369
|
-
**Options:**
|
|
370
|
-
- `--reset` - Start tutorial fresh
|
|
371
|
-
- `--skip` - Skip current step
|
|
372
|
-
- `--status` - Show tutorial progress
|
|
373
|
-
|
|
374
|
-
**Description:**
|
|
375
|
-
|
|
376
|
-
Walks through the basics of using agent-farm with guided steps.
|
|
377
|
-
|
|
378
|
-
---
|
|
379
|
-
|
|
380
360
|
### af ports
|
|
381
361
|
|
|
382
362
|
Manage global port registry.
|
|
@@ -410,7 +390,7 @@ Removes entries for projects that no longer exist.
|
|
|
410
390
|
|
|
411
391
|
### af tower
|
|
412
392
|
|
|
413
|
-
Manage the tower dashboard.
|
|
393
|
+
Manage the cross-project tower dashboard. Tower shows all agent-farm instances across projects and provides cloud connectivity via codevos.ai.
|
|
414
394
|
|
|
415
395
|
#### af tower start
|
|
416
396
|
|
|
@@ -434,6 +414,43 @@ af tower stop [options]
|
|
|
434
414
|
**Options:**
|
|
435
415
|
- `-p, --port <port>` - Port to stop (default: 4100)
|
|
436
416
|
|
|
417
|
+
#### af tower register
|
|
418
|
+
|
|
419
|
+
Register this tower with codevos.ai for remote access.
|
|
420
|
+
|
|
421
|
+
```bash
|
|
422
|
+
af tower register [options]
|
|
423
|
+
```
|
|
424
|
+
|
|
425
|
+
**Options:**
|
|
426
|
+
- `--reauth` - Re-authenticate without changing tower name
|
|
427
|
+
- `-p, --port <port>` - Tower port to signal after registration (default: 4100)
|
|
428
|
+
|
|
429
|
+
#### af tower deregister
|
|
430
|
+
|
|
431
|
+
Remove this tower's registration from codevos.ai.
|
|
432
|
+
|
|
433
|
+
```bash
|
|
434
|
+
af tower deregister [options]
|
|
435
|
+
```
|
|
436
|
+
|
|
437
|
+
**Options:**
|
|
438
|
+
- `-p, --port <port>` - Tower port to signal after deregistration (default: 4100)
|
|
439
|
+
|
|
440
|
+
#### af tower status
|
|
441
|
+
|
|
442
|
+
Show tower status including cloud connection info.
|
|
443
|
+
|
|
444
|
+
```bash
|
|
445
|
+
af tower status [options]
|
|
446
|
+
```
|
|
447
|
+
|
|
448
|
+
**Options:**
|
|
449
|
+
- `-p, --port <port>` - Tower port (default: 4100)
|
|
450
|
+
|
|
451
|
+
**Environment Variables:**
|
|
452
|
+
- `CODEVOS_URL` - Override the codevos.ai server URL (default: `https://codevos.ai`). Useful for local development or staging.
|
|
453
|
+
|
|
437
454
|
---
|
|
438
455
|
|
|
439
456
|
### af db
|
|
@@ -495,7 +512,7 @@ af db stats [options]
|
|
|
495
512
|
|
|
496
513
|
## Configuration
|
|
497
514
|
|
|
498
|
-
Customize commands via `
|
|
515
|
+
Customize commands via `af-config.json` at the project root:
|
|
499
516
|
|
|
500
517
|
```json
|
|
501
518
|
{
|
|
@@ -522,7 +539,7 @@ af spawn -p 0042 --builder-cmd "claude --model haiku"
|
|
|
522
539
|
|------|-------------|
|
|
523
540
|
| `.agent-farm/state.json` | Project runtime state |
|
|
524
541
|
| `~/.agent-farm/ports.json` | Global port registry |
|
|
525
|
-
| `
|
|
542
|
+
| `af-config.json` | Agent Farm configuration (project root) |
|
|
526
543
|
|
|
527
544
|
---
|
|
528
545
|
|
|
@@ -95,7 +95,6 @@ Verifies that all required dependencies are installed and properly configured:
|
|
|
95
95
|
|
|
96
96
|
**Core Dependencies (required):**
|
|
97
97
|
- Node.js (>= 18.0.0)
|
|
98
|
-
- tmux (>= 3.0)
|
|
99
98
|
- ttyd (>= 1.7.0)
|
|
100
99
|
- git (>= 2.5.0)
|
|
101
100
|
- gh (GitHub CLI, authenticated)
|
|
@@ -123,7 +122,6 @@ Codev Doctor - Checking your environment
|
|
|
123
122
|
Core Dependencies (required for Agent Farm)
|
|
124
123
|
|
|
125
124
|
✓ Node.js 20.10.0
|
|
126
|
-
✓ tmux 3.4
|
|
127
125
|
✓ ttyd 1.7.4
|
|
128
126
|
✓ git 2.42.0
|
|
129
127
|
✓ gh authenticated
|