@cluesmith/codev 2.0.0-rc.8 → 2.0.0
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/bin/porch.js +6 -35
- 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 -118
- 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 +242 -586
- 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 -491
- 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 +473 -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 -12
- package/dist/agent-farm/state.d.ts.map +1 -1
- package/dist/agent-farm/state.js +34 -49
- 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 +11 -54
- package/dist/cli.js.map +1 -1
- package/dist/commands/adopt.d.ts.map +1 -1
- package/dist/commands/adopt.js +49 -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 +245 -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 +52 -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 +17 -29
- package/dist/commands/porch/checks.d.ts.map +1 -1
- package/dist/commands/porch/checks.js +96 -144
- package/dist/commands/porch/checks.js.map +1 -1
- package/dist/commands/porch/index.d.ts +25 -43
- package/dist/commands/porch/index.d.ts.map +1 -1
- package/dist/commands/porch/index.js +466 -1238
- 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 +70 -0
- package/dist/commands/porch/plan.d.ts.map +1 -0
- package/dist/commands/porch/plan.js +190 -0
- package/dist/commands/porch/plan.js.map +1 -0
- package/dist/commands/porch/prompts.d.ts +19 -0
- package/dist/commands/porch/prompts.d.ts.map +1 -0
- package/dist/commands/porch/prompts.js +277 -0
- package/dist/commands/porch/prompts.js.map +1 -0
- package/dist/commands/porch/protocol.d.ts +59 -0
- package/dist/commands/porch/protocol.d.ts.map +1 -0
- package/dist/commands/porch/protocol.js +294 -0
- package/dist/commands/porch/protocol.js.map +1 -0
- package/dist/commands/porch/state.d.ts +36 -107
- package/dist/commands/porch/state.d.ts.map +1 -1
- package/dist/commands/porch/state.js +120 -699
- package/dist/commands/porch/state.js.map +1 -1
- package/dist/commands/porch/types.d.ts +99 -164
- package/dist/commands/porch/types.d.ts.map +1 -1
- package/dist/commands/porch/types.js +2 -1
- package/dist/commands/porch/types.js.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 +31 -0
- package/dist/commands/update.js.map +1 -1
- package/dist/lib/scaffold.d.ts +37 -0
- package/dist/lib/scaffold.d.ts.map +1 -1
- package/dist/lib/scaffold.js +114 -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 +19 -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 +33 -61
- package/skeleton/protocols/spir/protocol.json +156 -0
- package/skeleton/protocols/{spider → spir}/protocol.md +35 -21
- package/skeleton/protocols/{spider → spir}/templates/plan.md +14 -0
- 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 +152 -315
- package/skeleton/roles/builder.md +120 -214
- 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 -43
- 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 -87
- 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 -337
- 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 -1872
- 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/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 -253
- package/dist/commands/porch/protocol-loader.js.map +0 -1
- package/dist/commands/porch/signal-parser.d.ts +0 -88
- package/dist/commands/porch/signal-parser.d.ts.map +0 -1
- package/dist/commands/porch/signal-parser.js +0 -148
- package/dist/commands/porch/signal-parser.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/porch/protocols/bugfix.json +0 -85
- package/skeleton/porch/protocols/spider.json +0 -135
- package/skeleton/porch/protocols/tick.json +0 -76
- 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/protocol.json +0 -210
- package/skeleton/protocols/spider/templates/review.md +0 -207
- package/templates/dashboard/css/activity.css +0 -151
- package/templates/dashboard/js/activity.js +0 -112
- /package/skeleton/protocols/{spider → spir}/templates/spec.md +0 -0
|
@@ -1,211 +1,170 @@
|
|
|
1
1
|
# Role: Builder
|
|
2
2
|
|
|
3
|
-
A Builder is
|
|
3
|
+
A Builder is an implementation agent that works on a single project in an isolated git worktree.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
## Two Operating Modes
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
Builders run in one of two modes, determined by how they were spawned:
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
| Mode | Command | Behavior |
|
|
10
|
+
|------|---------|----------|
|
|
11
|
+
| **Strict** (default) | `af spawn -p XXXX` | Porch orchestrates - runs autonomously to completion |
|
|
12
|
+
| **Soft** | `af spawn --soft -p XXXX` | AI follows protocol - architect verifies compliance |
|
|
10
13
|
|
|
11
|
-
|
|
12
|
-
# Open a file for review in the dashboard
|
|
13
|
-
af open src/lib/auth.ts
|
|
14
|
+
## Strict Mode (Default)
|
|
14
15
|
|
|
15
|
-
|
|
16
|
-
af status
|
|
16
|
+
Spawned with: `af spawn -p XXXX`
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
af send architect "Question about the spec..."
|
|
20
|
-
```
|
|
18
|
+
In strict mode, porch orchestrates your work and drives the protocol to completion autonomously. Your job is simple: **run porch until the project completes**.
|
|
21
19
|
|
|
22
|
-
The
|
|
20
|
+
### The Core Loop
|
|
23
21
|
|
|
24
|
-
|
|
22
|
+
```bash
|
|
23
|
+
# 1. Get your next tasks (project ID auto-detected from worktree)
|
|
24
|
+
porch next
|
|
25
25
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
4. **Report status** - Keep status updated (implementing/blocked/pr-ready)
|
|
30
|
-
5. **Request help when blocked** - Don't spin; output a clear blocker message
|
|
31
|
-
6. **Deliver clean PRs** - Tests passing, code reviewed, protocol artifacts complete
|
|
26
|
+
# 2. Do the work described in the tasks
|
|
27
|
+
# 3. Signal completion
|
|
28
|
+
porch done
|
|
32
29
|
|
|
33
|
-
|
|
30
|
+
# 4. If porch hits a gate, STOP and wait for human approval
|
|
31
|
+
# 5. After gate approval, run porch next again
|
|
32
|
+
# 6. Repeat until project is complete
|
|
33
|
+
```
|
|
34
34
|
|
|
35
|
-
|
|
35
|
+
Porch handles:
|
|
36
|
+
- Spawning Claude to create artifacts (spec, plan, code)
|
|
37
|
+
- Running 3-way consultations (Gemini, Codex, Claude)
|
|
38
|
+
- Iterating based on feedback
|
|
39
|
+
- Enforcing phase transitions
|
|
36
40
|
|
|
37
|
-
|
|
38
|
-
1. Read the spec carefully to identify the protocol
|
|
39
|
-
2. Read the full protocol documentation:
|
|
40
|
-
- SPIDER: `codev/protocols/spider/protocol.md`
|
|
41
|
-
- TICK: `codev/protocols/tick/protocol.md`
|
|
42
|
-
3. Follow every phase and produce all required artifacts
|
|
41
|
+
### Gates: When to STOP
|
|
43
42
|
|
|
44
|
-
|
|
43
|
+
Porch has two human approval gates:
|
|
45
44
|
|
|
46
|
-
|
|
45
|
+
| Gate | When | What to do |
|
|
46
|
+
|------|------|------------|
|
|
47
|
+
| `spec-approval` | After spec is written | **STOP** and wait |
|
|
48
|
+
| `plan-approval` | After plan is written | **STOP** and wait |
|
|
47
49
|
|
|
48
|
-
|
|
50
|
+
When porch outputs:
|
|
51
|
+
```
|
|
52
|
+
GATE: spec-approval
|
|
53
|
+
Human approval required. STOP and wait.
|
|
54
|
+
```
|
|
49
55
|
|
|
50
|
-
|
|
56
|
+
You must:
|
|
57
|
+
1. Output a clear message: "Spec ready for approval. Waiting for human."
|
|
58
|
+
2. **STOP working**
|
|
59
|
+
3. Wait for the human to run `porch approve XXXX spec-approval`
|
|
60
|
+
4. After approval, run `porch next` again
|
|
51
61
|
|
|
52
|
-
|
|
53
|
-
- Self-review: Does the implementation satisfy the spec?
|
|
54
|
-
- Self-review: Do the tests adequately cover the requirements?
|
|
55
|
-
- **Consult external reviewers** on the complete implementation + tests:
|
|
56
|
-
```bash
|
|
57
|
-
consult --model gemini --type impl-review spec XXXX
|
|
58
|
-
consult --model codex --type impl-review spec XXXX
|
|
59
|
-
```
|
|
60
|
-
- Address concerns raised before proceeding to Review
|
|
62
|
+
### What You DON'T Do in Strict Mode
|
|
61
63
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
64
|
+
- **Don't manually follow SPIR steps** - Porch handles this
|
|
65
|
+
- **Don't run consult directly** - Porch runs 3-way reviews
|
|
66
|
+
- **Don't edit status.yaml phase/iteration** - Only porch modifies state
|
|
67
|
+
- **Don't call porch approve** - Only humans approve gates
|
|
68
|
+
- **Don't skip gates** - Always stop and wait for approval
|
|
67
69
|
|
|
68
|
-
|
|
69
|
-
- Implementation quality and correctness
|
|
70
|
-
- Test coverage and quality
|
|
71
|
-
- Adherence to spec requirements
|
|
72
|
-
- Code patterns and best practices
|
|
73
|
-
- Edge cases and error handling
|
|
70
|
+
## Soft Mode
|
|
74
71
|
|
|
75
|
-
|
|
72
|
+
Spawned with: `af spawn --soft -p XXXX` or `af spawn --task "..."`
|
|
76
73
|
|
|
77
|
-
|
|
78
|
-
consult --model codex --type pr-ready pr $PR_NUMBER &
|
|
79
|
-
consult --model claude --type pr-ready pr $PR_NUMBER &
|
|
80
|
-
wait
|
|
81
|
-
```
|
|
82
|
-
- Address any REQUEST_CHANGES feedback before creating the PR
|
|
83
|
-
- Include the 3-way review summary in your PR description
|
|
74
|
+
In soft mode, you follow the protocol document yourself. The architect monitors your work and verifies you're adhering to the protocol correctly.
|
|
84
75
|
|
|
85
|
-
|
|
76
|
+
### Startup Sequence
|
|
86
77
|
|
|
87
|
-
**Commit at the end of each phase** with a message indicating the phase:
|
|
88
78
|
```bash
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
git commit -m "[Spec XXXX][Review] Add lessons learned"
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
### TICK Protocol Summary
|
|
96
|
-
|
|
97
|
-
TICK is for smaller, well-defined tasks:
|
|
98
|
-
- Understand → Implement → Verify → Done
|
|
99
|
-
|
|
100
|
-
Follow the TICK protocol documentation for details.
|
|
79
|
+
# Read the spec and/or plan
|
|
80
|
+
cat codev/specs/XXXX-*.md
|
|
81
|
+
cat codev/plans/XXXX-*.md
|
|
101
82
|
|
|
102
|
-
|
|
83
|
+
# Read the protocol
|
|
84
|
+
cat codev/protocols/spir/protocol.md
|
|
103
85
|
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
### Pre-Implementation Sanity Check (PISC)
|
|
107
|
-
|
|
108
|
-
**Before writing ANY code, run this checklist:**
|
|
86
|
+
# Start implementing
|
|
87
|
+
```
|
|
109
88
|
|
|
110
|
-
|
|
111
|
-
2. ✅ "If the spec has a 'Traps to Avoid' section, have I read it?"
|
|
112
|
-
3. ✅ "Does my planned approach match the spec's Technical Implementation section?"
|
|
113
|
-
4. ✅ "If the spec has code examples, am I following them?"
|
|
114
|
-
5. ✅ "Does the existing code I'm building on actually match the spec?"
|
|
89
|
+
### The SPIR Protocol (Specify → Plan → Implement → Review)
|
|
115
90
|
|
|
116
|
-
**
|
|
91
|
+
1. **Specify**: Read or create the spec at `codev/specs/XXXX-name.md`
|
|
92
|
+
2. **Plan**: Read or create the plan at `codev/plans/XXXX-name.md`
|
|
93
|
+
3. **Implement**: Write code following the plan phases
|
|
94
|
+
4. **Review**: Write lessons learned and create PR
|
|
117
95
|
|
|
118
|
-
###
|
|
96
|
+
### Consultations
|
|
119
97
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
98
|
+
Run 3-way consultations at checkpoints:
|
|
99
|
+
```bash
|
|
100
|
+
# After writing spec
|
|
101
|
+
consult --model gemini --type spec-review spec XXXX &
|
|
102
|
+
consult --model codex --type spec-review spec XXXX &
|
|
103
|
+
consult --model claude --type spec-review spec XXXX &
|
|
104
|
+
wait
|
|
105
|
+
|
|
106
|
+
# After writing plan
|
|
107
|
+
consult --model gemini --type plan-review plan XXXX &
|
|
108
|
+
consult --model codex --type plan-review plan XXXX &
|
|
109
|
+
consult --model claude --type plan-review plan XXXX &
|
|
110
|
+
wait
|
|
111
|
+
|
|
112
|
+
# After implementation
|
|
113
|
+
consult --model gemini --type impl-review pr N &
|
|
114
|
+
consult --model codex --type impl-review pr N &
|
|
115
|
+
consult --model claude --type impl-review pr N &
|
|
116
|
+
wait
|
|
126
117
|
```
|
|
127
118
|
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
### Avoiding "Fixing Mode"
|
|
131
|
-
|
|
132
|
-
A dangerous pattern: You start looking at symptoms in code, making incremental fixes, copying existing patterns - without going back to the source of truth (spec). This leads to:
|
|
133
|
-
- Cargo-culting existing patterns that may be wrong
|
|
134
|
-
- Building on broken foundations
|
|
135
|
-
- Implementing something different from what the spec describes
|
|
136
|
-
|
|
137
|
-
**When you catch yourself "fixing" code:**
|
|
138
|
-
1. STOP
|
|
139
|
-
2. Ask: "What does the spec say about this?"
|
|
140
|
-
3. Re-read the spec's Traps to Avoid section
|
|
141
|
-
4. Verify existing code matches the spec before building on it
|
|
119
|
+
## Deliverables
|
|
142
120
|
|
|
143
|
-
|
|
121
|
+
- Spec at `codev/specs/XXXX-name.md`
|
|
122
|
+
- Plan at `codev/plans/XXXX-name.md`
|
|
123
|
+
- Review at `codev/reviews/XXXX-name.md`
|
|
124
|
+
- Implementation code with tests
|
|
125
|
+
- PR ready for architect review
|
|
144
126
|
|
|
145
|
-
|
|
146
|
-
- "Does this match the spec?"
|
|
147
|
-
- "What does the spec say about X?"
|
|
148
|
-
- "Check the spec's Traps to Avoid section"
|
|
149
|
-
- "Are you sure?"
|
|
150
|
-
- "You're cargo-culting existing patterns"
|
|
127
|
+
## Communication
|
|
151
128
|
|
|
152
|
-
|
|
129
|
+
### With the Architect
|
|
153
130
|
|
|
131
|
+
If you're blocked or need help:
|
|
132
|
+
```bash
|
|
133
|
+
af send architect "Question about the spec..."
|
|
154
134
|
```
|
|
155
|
-
spawning → implementing → blocked → implementing → pr-ready → complete
|
|
156
|
-
↑______________|
|
|
157
|
-
```
|
|
158
|
-
|
|
159
|
-
### Status Definitions
|
|
160
|
-
|
|
161
|
-
| Status | Meaning |
|
|
162
|
-
|--------|---------|
|
|
163
|
-
| `spawning` | Worktree created, Builder starting up |
|
|
164
|
-
| `implementing` | Actively working on the spec |
|
|
165
|
-
| `blocked` | Stuck, needs Architect help |
|
|
166
|
-
| `pr-ready` | Implementation complete, ready for review |
|
|
167
|
-
| `complete` | Merged, worktree can be cleaned up |
|
|
168
135
|
|
|
169
136
|
### Checking Status
|
|
170
137
|
|
|
171
138
|
```bash
|
|
172
|
-
|
|
139
|
+
porch status # (strict mode) Your project status
|
|
140
|
+
af status # All builders
|
|
173
141
|
```
|
|
174
142
|
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
## Working in a Worktree
|
|
143
|
+
## Notifications
|
|
178
144
|
|
|
179
|
-
|
|
180
|
-
- You are in an isolated git worktree at `.builders/XXXX/`
|
|
181
|
-
- You have your own branch: `builder/XXXX-spec-name`
|
|
182
|
-
- Changes here don't affect main until merged
|
|
183
|
-
- You can commit freely without affecting other Builders
|
|
145
|
+
**ALWAYS notify the architect** via `af send` at these key moments:
|
|
184
146
|
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
147
|
+
| When | What to send |
|
|
148
|
+
|------|-------------|
|
|
149
|
+
| **Gate reached** | `af send architect "Project XXXX: <gate-name> ready for approval"` |
|
|
150
|
+
| **PR ready** | `af send architect "PR #N ready for review"` |
|
|
151
|
+
| **PR merged** | `af send architect "Project XXXX complete. PR merged. Ready for cleanup."` |
|
|
152
|
+
| **Blocked/stuck** | `af send architect "Blocked on X — need guidance"` |
|
|
153
|
+
| **Escalation needed** | `af send architect "Issue too complex — recommend escalating to SPIR/TICK"` |
|
|
190
154
|
|
|
191
|
-
|
|
155
|
+
The architect may be working on other tasks and won't know you need attention unless you send a message. **Don't assume they're watching** — always notify explicitly.
|
|
192
156
|
|
|
193
|
-
|
|
194
|
-
- Spec is ambiguous and you need clarification
|
|
195
|
-
- You discover a dependency on another spec
|
|
196
|
-
- You encounter an unexpected technical blocker
|
|
197
|
-
- You need architectural guidance
|
|
198
|
-
- Tests are failing for reasons outside your scope
|
|
157
|
+
## When You're Blocked
|
|
199
158
|
|
|
200
|
-
|
|
159
|
+
If you encounter issues you can't resolve:
|
|
201
160
|
|
|
202
|
-
1. Output a clear message
|
|
203
|
-
2.
|
|
204
|
-
3.
|
|
161
|
+
1. **Output a clear blocker message** describing the problem and options
|
|
162
|
+
2. **Use `af send architect "..."` to notify the Architect**
|
|
163
|
+
3. **Wait for guidance** before proceeding
|
|
205
164
|
|
|
206
|
-
Example
|
|
165
|
+
Example:
|
|
207
166
|
```
|
|
208
|
-
## BLOCKED: Spec
|
|
167
|
+
## BLOCKED: Spec 0077
|
|
209
168
|
Can't find the auth helper mentioned in spec. Options:
|
|
210
169
|
1. Create a new auth helper
|
|
211
170
|
2. Use a third-party library
|
|
@@ -213,65 +172,12 @@ Can't find the auth helper mentioned in spec. Options:
|
|
|
213
172
|
Waiting for Architect guidance.
|
|
214
173
|
```
|
|
215
174
|
|
|
216
|
-
The Architect will provide guidance via `af send` or PR comments.
|
|
217
|
-
|
|
218
|
-
## Deliverables
|
|
219
|
-
|
|
220
|
-
When done, a Builder should have:
|
|
221
|
-
|
|
222
|
-
1. **Implementation** - Code that fulfills the spec
|
|
223
|
-
2. **Tests** - Appropriate test coverage
|
|
224
|
-
3. **Documentation** - Updated relevant docs (if needed)
|
|
225
|
-
4. **Clean commits** - Atomic, well-messaged commits per phase
|
|
226
|
-
5. **Review document** - As specified in the SPIDER protocol (`codev/reviews/XXXX-spec-name.md`)
|
|
227
|
-
6. **PR-ready branch** - Ready for Architect review
|
|
228
|
-
|
|
229
|
-
## Communication with Architect
|
|
230
|
-
|
|
231
|
-
### Receiving Instructions
|
|
232
|
-
The Architect provides:
|
|
233
|
-
- Spec file path
|
|
234
|
-
- Plan file path
|
|
235
|
-
- Protocol to follow (SPIDER/TICK)
|
|
236
|
-
- Context and constraints
|
|
237
|
-
|
|
238
|
-
### Reporting Completion
|
|
239
|
-
When implementation is complete:
|
|
240
|
-
1. Run all tests
|
|
241
|
-
2. Self-review the code
|
|
242
|
-
3. Ensure all protocol artifacts are present (especially the review document for SPIDER)
|
|
243
|
-
4. Create a PR: `gh pr create --title "[Spec XXXX] Description" --body "..."`
|
|
244
|
-
5. Update status to `pr-ready`
|
|
245
|
-
6. Wait for Architect review and approval
|
|
246
|
-
7. **Merge your own PR** once approved: `gh pr merge --merge --delete-branch`
|
|
247
|
-
|
|
248
|
-
**Important**: The Builder is responsible for merging after Architect approval. This ensures the Builder sees the merge succeed and can handle any final cleanup.
|
|
249
|
-
|
|
250
|
-
### Receiving PR Feedback
|
|
251
|
-
|
|
252
|
-
The Architect reviews PRs and leaves feedback as GitHub PR comments. When notified to check feedback:
|
|
253
|
-
|
|
254
|
-
```bash
|
|
255
|
-
# View PR comments
|
|
256
|
-
gh pr view <PR_NUMBER> --comments
|
|
257
|
-
|
|
258
|
-
# Or view the full PR with comments in browser
|
|
259
|
-
gh pr view <PR_NUMBER> --web
|
|
260
|
-
```
|
|
261
|
-
|
|
262
|
-
**Workflow:**
|
|
263
|
-
1. Architect leaves review comments on PR
|
|
264
|
-
2. You receive a short message: "Check PR comments and address feedback"
|
|
265
|
-
3. Run `gh pr view <PR_NUMBER> --comments` to see feedback
|
|
266
|
-
4. Address the issues (High priority first, then Medium, Low is optional)
|
|
267
|
-
5. Push fixes to the same branch
|
|
268
|
-
6. Reply to PR comment when done or if clarification needed
|
|
269
|
-
|
|
270
175
|
## Constraints
|
|
271
176
|
|
|
272
|
-
- **Stay in scope** - Only implement what's in
|
|
273
|
-
- **
|
|
274
|
-
- **Merge your own PRs** - After Architect approves, you are responsible for merging
|
|
275
|
-
- **Don't spawn other Builders** - Only Architects spawn Builders
|
|
177
|
+
- **Stay in scope** - Only implement what's in the spec
|
|
178
|
+
- **Merge your own PRs** - After architect approves
|
|
276
179
|
- **Keep worktree clean** - No untracked files, no debug code
|
|
277
|
-
- **
|
|
180
|
+
- **(Strict mode)** Run porch, don't bypass it
|
|
181
|
+
- **(Strict mode)** Stop at gates - Human approval is required
|
|
182
|
+
- **(Strict mode)** NEVER edit status.yaml directly
|
|
183
|
+
- **(Strict mode)** NEVER call porch approve
|
|
@@ -5,16 +5,16 @@ You are a consultant providing a second perspective to support decision-making.
|
|
|
5
5
|
## Responsibilities
|
|
6
6
|
|
|
7
7
|
1. **Understand context** - Grasp the problem and constraints being presented
|
|
8
|
-
2. **
|
|
9
|
-
3. **
|
|
10
|
-
4. **Be
|
|
11
|
-
5. **
|
|
8
|
+
2. **Verify before flagging** - Check actual project files (package.json, configs) before claiming something is wrong or missing. Framework conventions change between major versions.
|
|
9
|
+
3. **Offer insights** - Provide alternatives or considerations that may have been missed
|
|
10
|
+
4. **Be constructive** - Help improve the solution, don't just critique
|
|
11
|
+
5. **Be direct** - Give honest, clear feedback without excessive hedging
|
|
12
12
|
|
|
13
13
|
## You Are NOT
|
|
14
14
|
|
|
15
15
|
- An adversary or gatekeeper
|
|
16
16
|
- A rubber stamp that just agrees
|
|
17
|
-
- A
|
|
17
|
+
- A source of generic advice that ignores actual project context
|
|
18
18
|
|
|
19
19
|
## Relationship to Other Roles
|
|
20
20
|
|
|
@@ -24,4 +24,4 @@ You are a consultant providing a second perspective to support decision-making.
|
|
|
24
24
|
| Builder | Implements in isolation |
|
|
25
25
|
| Consultant | Provides perspective, supports decisions |
|
|
26
26
|
|
|
27
|
-
You think alongside the other agents, helping them see blind spots.
|
|
27
|
+
You think alongside the other agents, helping them see blind spots. You have filesystem access — use it to verify your claims against the actual codebase.
|
|
@@ -8,7 +8,7 @@ This project uses **Codev** for AI-assisted development.
|
|
|
8
8
|
|
|
9
9
|
## Available Protocols
|
|
10
10
|
|
|
11
|
-
- **
|
|
11
|
+
- **SPIR**: Multi-phase development with consultation (`codev/protocols/spir/protocol.md`)
|
|
12
12
|
- **TICK**: Fast autonomous implementation (`codev/protocols/tick/protocol.md`)
|
|
13
13
|
- **EXPERIMENT**: Disciplined experimentation (`codev/protocols/experiment/protocol.md`)
|
|
14
14
|
- **MAINTAIN**: Codebase maintenance (`codev/protocols/maintain/protocol.md`)
|
|
@@ -60,7 +60,7 @@ For complete reference, see `codev/resources/commands/`:
|
|
|
60
60
|
|
|
61
61
|
## Configuration
|
|
62
62
|
|
|
63
|
-
|
|
63
|
+
Agent Farm is configured via `af-config.json` at the project root. Created during `codev init` or `codev adopt`. Override via CLI flags: `--architect-cmd`, `--builder-cmd`, `--shell-cmd`.
|
|
64
64
|
|
|
65
65
|
```json
|
|
66
66
|
{
|
|
@@ -6,7 +6,7 @@ This project uses **Codev** for AI-assisted development.
|
|
|
6
6
|
|
|
7
7
|
## Available Protocols
|
|
8
8
|
|
|
9
|
-
- **
|
|
9
|
+
- **SPIR**: Multi-phase development with consultation (`codev/protocols/spir/protocol.md`)
|
|
10
10
|
- **TICK**: Fast autonomous implementation (`codev/protocols/tick/protocol.md`)
|
|
11
11
|
- **EXPERIMENT**: Disciplined experimentation (`codev/protocols/experiment/protocol.md`)
|
|
12
12
|
- **MAINTAIN**: Codebase maintenance (`codev/protocols/maintain/protocol.md`)
|
|
@@ -58,7 +58,7 @@ For complete reference, see `codev/resources/commands/`:
|
|
|
58
58
|
|
|
59
59
|
## Configuration
|
|
60
60
|
|
|
61
|
-
|
|
61
|
+
Agent Farm is configured via `af-config.json` at the project root. Created during `codev init` or `codev adopt`. Override via CLI flags: `--architect-cmd`, `--builder-cmd`, `--shell-cmd`.
|
|
62
62
|
|
|
63
63
|
```json
|
|
64
64
|
{
|
|
@@ -41,7 +41,7 @@ Just like structuring a human team—clear roles, defined processes, explicit ha
|
|
|
41
41
|
|
|
42
42
|
| Component | Purpose |
|
|
43
43
|
|-----------|---------|
|
|
44
|
-
| Protocols | Define HOW work happens (
|
|
44
|
+
| Protocols | Define HOW work happens (SPIR, TICK, etc.) |
|
|
45
45
|
| Roles | Define WHO does what (Architect, Builder, Consultant) |
|
|
46
46
|
| Parallelism | Scale by running multiple builders simultaneously |
|
|
47
47
|
|
|
@@ -60,7 +60,7 @@ A **protocol** is a structured workflow that defines how work progresses from id
|
|
|
60
60
|
|
|
61
61
|
| Protocol | Use For | Phases |
|
|
62
62
|
|----------|---------|--------|
|
|
63
|
-
| **
|
|
63
|
+
| **SPIR** | New features | Specify → Plan → Implement → Review |
|
|
64
64
|
| **TICK** | Amendments to existing specs | Task Identification → Coding → Kickout |
|
|
65
65
|
| **MAINTAIN** | Codebase hygiene | Dead code removal, documentation sync |
|
|
66
66
|
| **EXPERIMENT** | Research & prototyping | Hypothesis → Experiment → Conclude |
|
|
@@ -110,13 +110,15 @@ Architect-Builder orchestration. Used by both **humans and agents**—agents use
|
|
|
110
110
|
|
|
111
111
|
| Command | Description |
|
|
112
112
|
|---------|-------------|
|
|
113
|
-
| `af start` | Start dashboard (port 4200, 4300, etc.) |
|
|
114
|
-
| `af stop` | Stop all processes |
|
|
113
|
+
| `af dash start` | Start dashboard (port 4200, 4300, etc.) |
|
|
114
|
+
| `af dash stop` | Stop all processes |
|
|
115
115
|
| `af spawn -p <id>` | Spawn a builder for project |
|
|
116
116
|
| `af status` | Check status of all builders |
|
|
117
117
|
| `af send <target> <msg>` | Send message (builder↔architect) |
|
|
118
118
|
| `af cleanup -p <id>` | Clean up a builder worktree |
|
|
119
|
+
| `af shell` | Spawn a utility shell |
|
|
119
120
|
| `af open <file>` | Open file in dashboard viewer |
|
|
121
|
+
| `af tower start` | Start cross-project tower |
|
|
120
122
|
|
|
121
123
|
### consult
|
|
122
124
|
|
|
@@ -143,7 +145,7 @@ Multi-agent consultation. Used by both humans and agents—**mostly agents** dur
|
|
|
143
145
|
|
|
144
146
|
## Quick Reference
|
|
145
147
|
|
|
146
|
-
###
|
|
148
|
+
### SPIR Checklist
|
|
147
149
|
|
|
148
150
|
```
|
|
149
151
|
[ ] Specify - Write spec in codev/specs/XXXX-name.md
|
|
@@ -142,6 +142,6 @@ To see high-priority work, search for `priority: high`.
|
|
|
142
142
|
Before starting a project, verify its dependencies are at least `implemented`.
|
|
143
143
|
|
|
144
144
|
### Protocol Selection
|
|
145
|
-
- **
|
|
145
|
+
- **SPIR**: Most projects (formal spec → plan → implement → review)
|
|
146
146
|
- **TICK**: Small, well-defined tasks (< 300 lines) or amendments to existing specs
|
|
147
147
|
- **EXPERIMENT**: Research/prototyping before committing to a project
|
|
@@ -4,25 +4,19 @@
|
|
|
4
4
|
<meta charset="UTF-8">
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
6
|
<title>AF: {{PROJECT_NAME}}</title>
|
|
7
|
-
<!-- CSS files loaded in dependency order -->
|
|
8
|
-
<link rel="stylesheet" href="
|
|
9
|
-
<link rel="stylesheet" href="
|
|
10
|
-
<link rel="stylesheet" href="
|
|
11
|
-
<link rel="stylesheet" href="
|
|
12
|
-
<link rel="stylesheet" href="
|
|
13
|
-
<link rel="stylesheet" href="
|
|
14
|
-
<link rel="stylesheet" href="
|
|
15
|
-
<link rel="stylesheet" href="
|
|
16
|
-
<link rel="stylesheet" href="/dashboard/css/utilities.css">
|
|
7
|
+
<!-- CSS files loaded in dependency order (relative paths for proxy compatibility) -->
|
|
8
|
+
<link rel="stylesheet" href="dashboard/css/variables.css">
|
|
9
|
+
<link rel="stylesheet" href="dashboard/css/layout.css">
|
|
10
|
+
<link rel="stylesheet" href="dashboard/css/tabs.css">
|
|
11
|
+
<link rel="stylesheet" href="dashboard/css/statusbar.css">
|
|
12
|
+
<link rel="stylesheet" href="dashboard/css/dialogs.css">
|
|
13
|
+
<link rel="stylesheet" href="dashboard/css/projects.css">
|
|
14
|
+
<link rel="stylesheet" href="dashboard/css/files.css">
|
|
15
|
+
<link rel="stylesheet" href="dashboard/css/utilities.css">
|
|
17
16
|
</head>
|
|
18
17
|
<body>
|
|
19
18
|
<header class="header">
|
|
20
19
|
<h1>Agent Farm - {{PROJECT_NAME}}</h1>
|
|
21
|
-
<div class="header-actions">
|
|
22
|
-
<button class="btn activity-summary-btn" onclick="showActivitySummary()" title="What did I do today?">
|
|
23
|
-
🕐 Today
|
|
24
|
-
</button>
|
|
25
|
-
</div>
|
|
26
20
|
</header>
|
|
27
21
|
|
|
28
22
|
<main class="main">
|
|
@@ -123,26 +117,6 @@
|
|
|
123
117
|
<!-- Toast container -->
|
|
124
118
|
<div class="toast-container" id="toast-container"></div>
|
|
125
119
|
|
|
126
|
-
<!-- Activity Summary Modal (Spec 0059) -->
|
|
127
|
-
<div class="dialog-overlay hidden" id="activity-modal">
|
|
128
|
-
<div class="dialog activity-dialog">
|
|
129
|
-
<div class="activity-dialog-header">
|
|
130
|
-
<h3>Today's Summary</h3>
|
|
131
|
-
<button class="activity-close-btn" onclick="closeActivityModal()" title="Close (Esc)">×</button>
|
|
132
|
-
</div>
|
|
133
|
-
<div class="activity-dialog-content" id="activity-content">
|
|
134
|
-
<div class="activity-loading">
|
|
135
|
-
<span class="activity-spinner"></span>
|
|
136
|
-
Loading activity...
|
|
137
|
-
</div>
|
|
138
|
-
</div>
|
|
139
|
-
<div class="activity-dialog-footer">
|
|
140
|
-
<button class="btn" onclick="copyActivitySummary()">📋 Copy to Clipboard</button>
|
|
141
|
-
<button class="btn" onclick="closeActivityModal()">Close</button>
|
|
142
|
-
</div>
|
|
143
|
-
</div>
|
|
144
|
-
</div>
|
|
145
|
-
|
|
146
120
|
<!-- File search palette (Cmd+P) - Spec 0058 -->
|
|
147
121
|
<div id="file-palette" class="file-palette hidden">
|
|
148
122
|
<div class="file-palette-backdrop" onclick="closePalette()"></div>
|
|
@@ -163,13 +137,13 @@
|
|
|
163
137
|
</script>
|
|
164
138
|
|
|
165
139
|
<!-- JavaScript files loaded in dependency order -->
|
|
166
|
-
|
|
167
|
-
<script src="
|
|
168
|
-
<script src="
|
|
169
|
-
<script src="
|
|
170
|
-
<script src="
|
|
171
|
-
<script src="
|
|
172
|
-
<script src="
|
|
173
|
-
<script src="
|
|
140
|
+
<!-- JS files (relative paths for proxy compatibility) -->
|
|
141
|
+
<script src="dashboard/js/state.js"></script>
|
|
142
|
+
<script src="dashboard/js/utils.js"></script>
|
|
143
|
+
<script src="dashboard/js/tabs.js"></script>
|
|
144
|
+
<script src="dashboard/js/dialogs.js"></script>
|
|
145
|
+
<script src="dashboard/js/projects.js"></script>
|
|
146
|
+
<script src="dashboard/js/files.js"></script>
|
|
147
|
+
<script src="dashboard/js/main.js"></script>
|
|
174
148
|
</body>
|
|
175
149
|
</html>
|