@cluesmith/codev 2.0.0-rc.7 → 2.0.0-rc.71
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-C7FtNK6Y.css +32 -0
- package/dashboard/dist/assets/index-CDAINZKT.js +131 -0
- package/dashboard/dist/assets/index-CDAINZKT.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 +173 -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 +60 -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.d.ts.map +1 -1
- package/dist/agent-farm/commands/spawn.js +597 -281
- 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 +329 -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 +246 -18
- 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/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-server.js +2653 -185
- package/dist/agent-farm/servers/tower-server.js.map +1 -1
- 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 +41 -2
- 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 +463 -1116
- 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/shepherd-client.d.ts +66 -0
- package/dist/terminal/shepherd-client.d.ts.map +1 -0
- package/dist/terminal/shepherd-client.js +234 -0
- package/dist/terminal/shepherd-client.js.map +1 -0
- package/dist/terminal/shepherd-main.d.ts +19 -0
- package/dist/terminal/shepherd-main.d.ts.map +1 -0
- package/dist/terminal/shepherd-main.js +153 -0
- package/dist/terminal/shepherd-main.js.map +1 -0
- package/dist/terminal/shepherd-process.d.ts +75 -0
- package/dist/terminal/shepherd-process.d.ts.map +1 -0
- package/dist/terminal/shepherd-process.js +279 -0
- package/dist/terminal/shepherd-process.js.map +1 -0
- package/dist/terminal/shepherd-protocol.d.ts +115 -0
- package/dist/terminal/shepherd-protocol.d.ts.map +1 -0
- package/dist/terminal/shepherd-protocol.js +214 -0
- package/dist/terminal/shepherd-protocol.js.map +1 -0
- package/dist/terminal/shepherd-replay-buffer.d.ts +38 -0
- package/dist/terminal/shepherd-replay-buffer.d.ts.map +1 -0
- package/dist/terminal/shepherd-replay-buffer.js +94 -0
- package/dist/terminal/shepherd-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 +54 -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 +59 -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 +110 -218
- 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 +642 -36
- 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
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
# SYNC Phase Prompt
|
|
2
|
+
|
|
3
|
+
You are executing the **SYNC** phase of the MAINTAIN protocol.
|
|
4
|
+
|
|
5
|
+
## Your Goal
|
|
6
|
+
|
|
7
|
+
Update documentation to match the current state of the codebase.
|
|
8
|
+
|
|
9
|
+
## Context
|
|
10
|
+
|
|
11
|
+
- **Current State**: {{current_state}}
|
|
12
|
+
|
|
13
|
+
## Process
|
|
14
|
+
|
|
15
|
+
### 1. Update arch.md
|
|
16
|
+
|
|
17
|
+
Read the current architecture doc and compare with actual codebase:
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
cat codev/resources/arch.md
|
|
21
|
+
ls -la packages/ src/ 2>/dev/null
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
Update:
|
|
25
|
+
- Directory structure (if changed)
|
|
26
|
+
- Component descriptions
|
|
27
|
+
- Key files and their purposes
|
|
28
|
+
- Remove references to deleted code
|
|
29
|
+
- Add new utilities/components
|
|
30
|
+
|
|
31
|
+
**arch.md must explain HOW things work, not just WHAT they are.**
|
|
32
|
+
|
|
33
|
+
### 2. Generate/Update lessons-learned.md
|
|
34
|
+
|
|
35
|
+
Scan review documents for lessons:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
ls codev/reviews/
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Extract actionable lessons:
|
|
42
|
+
- Testing practices
|
|
43
|
+
- Architecture decisions
|
|
44
|
+
- Process improvements
|
|
45
|
+
- Patterns to follow/avoid
|
|
46
|
+
|
|
47
|
+
Format:
|
|
48
|
+
```markdown
|
|
49
|
+
## [Topic]
|
|
50
|
+
- [From NNNN] Lesson description
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### 3. Sync CLAUDE.md with AGENTS.md
|
|
54
|
+
|
|
55
|
+
Compare the two files:
|
|
56
|
+
```bash
|
|
57
|
+
diff CLAUDE.md AGENTS.md | head -50
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
They must be identical. Update the stale one to match.
|
|
61
|
+
|
|
62
|
+
### 4. Prune Documentation
|
|
63
|
+
|
|
64
|
+
Check document sizes:
|
|
65
|
+
```bash
|
|
66
|
+
wc -l CLAUDE.md AGENTS.md README.md
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
Target ~400 lines for CLAUDE.md/README.md (guideline, not mandate).
|
|
70
|
+
|
|
71
|
+
For any content removed, document:
|
|
72
|
+
- WHAT was removed
|
|
73
|
+
- WHY it was removed (OBSOLETE, DUPLICATIVE, MOVED, VERBOSE)
|
|
74
|
+
- WHERE it moved (if applicable)
|
|
75
|
+
|
|
76
|
+
### 5. Commit Documentation Changes
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
git add codev/resources/arch.md codev/resources/lessons-learned.md
|
|
80
|
+
git commit -m "[Maintain] Update arch.md and lessons-learned.md"
|
|
81
|
+
|
|
82
|
+
git add CLAUDE.md AGENTS.md
|
|
83
|
+
git commit -m "[Maintain] Sync CLAUDE.md with AGENTS.md"
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
## Important Rules
|
|
87
|
+
|
|
88
|
+
1. **Never invent structure** - Only document what exists
|
|
89
|
+
2. **Verify file paths** - Check that referenced files exist
|
|
90
|
+
3. **Keep it current** - Remove obsolete references
|
|
91
|
+
4. **Preserve important content** - Don't delete patterns/best practices
|
|
92
|
+
5. **Document deletions** - Every removal needs justification
|
|
93
|
+
|
|
94
|
+
## Output
|
|
95
|
+
|
|
96
|
+
Update the maintenance run file with:
|
|
97
|
+
- Documents updated
|
|
98
|
+
- What was added/removed/changed
|
|
99
|
+
- Any issues encountered
|
|
100
|
+
|
|
101
|
+
## Signals
|
|
102
|
+
|
|
103
|
+
When documentation is synchronized:
|
|
104
|
+
|
|
105
|
+
```
|
|
106
|
+
<signal>PHASE_COMPLETE</signal>
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
If blocked:
|
|
110
|
+
|
|
111
|
+
```
|
|
112
|
+
<signal>BLOCKED:reason</signal>
|
|
113
|
+
```
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
# VERIFY Phase Prompt
|
|
2
|
+
|
|
3
|
+
You are executing the **VERIFY** phase of the MAINTAIN protocol.
|
|
4
|
+
|
|
5
|
+
## Your Goal
|
|
6
|
+
|
|
7
|
+
Run final validation and prepare for PR creation.
|
|
8
|
+
|
|
9
|
+
## Context
|
|
10
|
+
|
|
11
|
+
- **Current State**: {{current_state}}
|
|
12
|
+
|
|
13
|
+
## Process
|
|
14
|
+
|
|
15
|
+
### 1. Run Full Test Suite
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
npm run build
|
|
19
|
+
npm test
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
Both must pass. If either fails, go back and fix the issue.
|
|
23
|
+
|
|
24
|
+
### 2. Run Linting
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
npm run lint 2>/dev/null || echo "No lint script"
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Fix any linting errors.
|
|
31
|
+
|
|
32
|
+
### 3. Verify Documentation Links
|
|
33
|
+
|
|
34
|
+
Check that documentation references resolve:
|
|
35
|
+
```bash
|
|
36
|
+
# Check arch.md file references
|
|
37
|
+
grep -oE 'src/[^ ]+|packages/[^ ]+' codev/resources/arch.md | while read f; do
|
|
38
|
+
[ -e "$f" ] || echo "Missing: $f"
|
|
39
|
+
done
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### 4. Update Maintenance Run Summary
|
|
43
|
+
|
|
44
|
+
Finalize the maintenance run file with:
|
|
45
|
+
|
|
46
|
+
```markdown
|
|
47
|
+
## Summary
|
|
48
|
+
|
|
49
|
+
- **Dead code removed**: X files, Y functions
|
|
50
|
+
- **Dependencies removed**: Z packages
|
|
51
|
+
- **Documentation updated**: arch.md, lessons-learned.md
|
|
52
|
+
- **All tests passing**: Yes/No
|
|
53
|
+
- **Build status**: Success/Failure
|
|
54
|
+
|
|
55
|
+
## Next Maintenance
|
|
56
|
+
|
|
57
|
+
Recommended focus areas for next run:
|
|
58
|
+
- ...
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### 5. Create PR
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
git push origin HEAD
|
|
65
|
+
|
|
66
|
+
gh pr create --title "[Maintain] Codebase maintenance run NNNN" --body "$(cat <<'EOF'
|
|
67
|
+
## Summary
|
|
68
|
+
|
|
69
|
+
- Dead code removal
|
|
70
|
+
- Documentation sync
|
|
71
|
+
- Dependency cleanup
|
|
72
|
+
|
|
73
|
+
## Changes
|
|
74
|
+
|
|
75
|
+
[List key changes]
|
|
76
|
+
|
|
77
|
+
## Verification
|
|
78
|
+
|
|
79
|
+
- [x] Build passes
|
|
80
|
+
- [x] Tests pass
|
|
81
|
+
- [x] Documentation updated
|
|
82
|
+
EOF
|
|
83
|
+
)"
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
## Validation Checklist
|
|
87
|
+
|
|
88
|
+
Before signaling complete:
|
|
89
|
+
|
|
90
|
+
- [ ] All tests pass
|
|
91
|
+
- [ ] Build succeeds
|
|
92
|
+
- [ ] No import/module errors
|
|
93
|
+
- [ ] Documentation links resolve
|
|
94
|
+
- [ ] Linter passes (if configured)
|
|
95
|
+
- [ ] Maintenance run file is complete
|
|
96
|
+
- [ ] PR is created
|
|
97
|
+
|
|
98
|
+
## Signals
|
|
99
|
+
|
|
100
|
+
When validation passes and PR is ready:
|
|
101
|
+
|
|
102
|
+
```
|
|
103
|
+
<signal>PHASE_COMPLETE</signal>
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
If blocked:
|
|
107
|
+
|
|
108
|
+
```
|
|
109
|
+
<signal>BLOCKED:reason</signal>
|
|
110
|
+
```
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "../../protocol-schema.json",
|
|
3
|
+
"name": "maintain",
|
|
4
|
+
"alias": "maint",
|
|
5
|
+
"version": "2.0.0",
|
|
6
|
+
"description": "Codebase maintenance - dead code removal, doc sync, hygiene with 3-way review",
|
|
7
|
+
"input": {
|
|
8
|
+
"type": "protocol",
|
|
9
|
+
"required": false,
|
|
10
|
+
"default_for": ["--protocol maintain"]
|
|
11
|
+
},
|
|
12
|
+
"phases": [
|
|
13
|
+
{
|
|
14
|
+
"id": "audit",
|
|
15
|
+
"name": "Audit",
|
|
16
|
+
"description": "Analyze codebase for dead code, unused dependencies, stale docs",
|
|
17
|
+
"type": "build_verify",
|
|
18
|
+
"build": {
|
|
19
|
+
"prompt": "audit.md",
|
|
20
|
+
"artifact": "codev/maintain/*.md"
|
|
21
|
+
},
|
|
22
|
+
"verify": {
|
|
23
|
+
"type": "impl-review",
|
|
24
|
+
"models": ["gemini", "codex", "claude"],
|
|
25
|
+
"parallel": true
|
|
26
|
+
},
|
|
27
|
+
"max_iterations": 3,
|
|
28
|
+
"on_complete": {
|
|
29
|
+
"commit": true,
|
|
30
|
+
"push": true
|
|
31
|
+
},
|
|
32
|
+
"next": "clean"
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"id": "clean",
|
|
36
|
+
"name": "Clean",
|
|
37
|
+
"description": "Remove identified dead code and unused dependencies",
|
|
38
|
+
"type": "build_verify",
|
|
39
|
+
"build": {
|
|
40
|
+
"prompt": "clean.md",
|
|
41
|
+
"artifact": "src/**/*.{ts,tsx,js,jsx}"
|
|
42
|
+
},
|
|
43
|
+
"verify": {
|
|
44
|
+
"type": "impl-review",
|
|
45
|
+
"models": ["gemini", "codex", "claude"],
|
|
46
|
+
"parallel": true
|
|
47
|
+
},
|
|
48
|
+
"max_iterations": 5,
|
|
49
|
+
"on_complete": {
|
|
50
|
+
"commit": true,
|
|
51
|
+
"push": true
|
|
52
|
+
},
|
|
53
|
+
"checks": {
|
|
54
|
+
"build": {
|
|
55
|
+
"command": "npm run build",
|
|
56
|
+
"on_fail": "retry",
|
|
57
|
+
"max_retries": 2
|
|
58
|
+
},
|
|
59
|
+
"tests": {
|
|
60
|
+
"command": "npm test -- --exclude='**/e2e/**'",
|
|
61
|
+
"on_fail": "retry",
|
|
62
|
+
"max_retries": 2
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
"next": "sync"
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
"id": "sync",
|
|
69
|
+
"name": "Sync Documentation",
|
|
70
|
+
"description": "Update documentation to match current codebase",
|
|
71
|
+
"type": "build_verify",
|
|
72
|
+
"build": {
|
|
73
|
+
"prompt": "sync.md",
|
|
74
|
+
"artifact": "codev/resources/*.md"
|
|
75
|
+
},
|
|
76
|
+
"verify": {
|
|
77
|
+
"type": "impl-review",
|
|
78
|
+
"models": ["gemini", "codex", "claude"],
|
|
79
|
+
"parallel": true
|
|
80
|
+
},
|
|
81
|
+
"max_iterations": 5,
|
|
82
|
+
"on_complete": {
|
|
83
|
+
"commit": true,
|
|
84
|
+
"push": true
|
|
85
|
+
},
|
|
86
|
+
"next": "verify"
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
"id": "verify",
|
|
90
|
+
"name": "Verify",
|
|
91
|
+
"description": "Final validation and PR creation",
|
|
92
|
+
"type": "build_verify",
|
|
93
|
+
"build": {
|
|
94
|
+
"prompt": "verify.md",
|
|
95
|
+
"artifact": "codev/maintain/*.md"
|
|
96
|
+
},
|
|
97
|
+
"verify": {
|
|
98
|
+
"type": "pr-ready",
|
|
99
|
+
"models": ["gemini", "codex", "claude"],
|
|
100
|
+
"parallel": true
|
|
101
|
+
},
|
|
102
|
+
"max_iterations": 3,
|
|
103
|
+
"on_complete": {
|
|
104
|
+
"commit": true,
|
|
105
|
+
"push": true
|
|
106
|
+
},
|
|
107
|
+
"checks": {
|
|
108
|
+
"build": {
|
|
109
|
+
"command": "npm run build",
|
|
110
|
+
"on_fail": "retry",
|
|
111
|
+
"max_retries": 2
|
|
112
|
+
},
|
|
113
|
+
"tests": {
|
|
114
|
+
"command": "npm test",
|
|
115
|
+
"on_fail": "retry",
|
|
116
|
+
"max_retries": 2
|
|
117
|
+
}
|
|
118
|
+
},
|
|
119
|
+
"gate": "maintain-complete",
|
|
120
|
+
"next": null
|
|
121
|
+
}
|
|
122
|
+
],
|
|
123
|
+
"signals": {
|
|
124
|
+
"PHASE_COMPLETE": {
|
|
125
|
+
"description": "Signal current phase is complete",
|
|
126
|
+
"transitions_to": "verify"
|
|
127
|
+
},
|
|
128
|
+
"BLOCKED": {
|
|
129
|
+
"description": "Signal maintenance is blocked",
|
|
130
|
+
"requires": "reason"
|
|
131
|
+
}
|
|
132
|
+
},
|
|
133
|
+
"defaults": {
|
|
134
|
+
"mode": "strict",
|
|
135
|
+
"max_iterations": 5,
|
|
136
|
+
"verify": {
|
|
137
|
+
"models": ["gemini", "codex", "claude"],
|
|
138
|
+
"parallel": true
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
## Overview
|
|
4
4
|
|
|
5
|
-
MAINTAIN is a periodic maintenance protocol for keeping codebases healthy.
|
|
5
|
+
MAINTAIN is a periodic maintenance protocol for keeping codebases healthy. It runs as a **strict porch protocol** with sequential phases and 3-way consultation (Gemini, Codex, Claude) at each phase.
|
|
6
6
|
|
|
7
7
|
**Core Principle**: Regular maintenance prevents technical debt accumulation.
|
|
8
8
|
|
|
@@ -22,20 +22,26 @@ Any builder can update these files during development, but MAINTAIN ensures they
|
|
|
22
22
|
|
|
23
23
|
## Execution Model
|
|
24
24
|
|
|
25
|
-
MAINTAIN is
|
|
25
|
+
MAINTAIN is orchestrated by porch with 4 sequential phases:
|
|
26
26
|
|
|
27
27
|
```
|
|
28
|
-
Architect: "Time for maintenance"
|
|
29
|
-
↓
|
|
30
28
|
af spawn --protocol maintain
|
|
31
29
|
↓
|
|
32
|
-
|
|
33
|
-
↓
|
|
30
|
+
1. AUDIT: Scan for dead code, unused deps, stale docs
|
|
31
|
+
↓ (3-way review)
|
|
32
|
+
2. CLEAN: Remove identified cruft
|
|
33
|
+
↓ (3-way review + build/test checks)
|
|
34
|
+
3. SYNC: Update documentation
|
|
35
|
+
↓ (3-way review)
|
|
36
|
+
4. VERIFY: Final validation + PR
|
|
37
|
+
↓ (3-way review)
|
|
34
38
|
PR with maintenance changes
|
|
35
39
|
↓
|
|
36
|
-
Architect reviews →
|
|
40
|
+
Architect reviews → Merge
|
|
37
41
|
```
|
|
38
42
|
|
|
43
|
+
Each phase goes through build-verify cycles with 3-way consultation before proceeding.
|
|
44
|
+
|
|
39
45
|
## Prerequisites
|
|
40
46
|
|
|
41
47
|
Before starting MAINTAIN:
|
|
@@ -180,8 +186,8 @@ Scan the actual codebase and update `codev/resources/arch.md`:
|
|
|
180
186
|
- **Location**: path/to/component
|
|
181
187
|
- **How It Works**:
|
|
182
188
|
- Step-by-step explanation of the mechanism
|
|
183
|
-
- Key technologies used (e.g., "uses
|
|
184
|
-
- Runtime behavior (e.g., "spawns a
|
|
189
|
+
- Key technologies used (e.g., "uses shepherd processes for terminal persistence")
|
|
190
|
+
- Runtime behavior (e.g., "spawns a shepherd process per builder terminal")
|
|
185
191
|
- State management (e.g., "state stored in SQLite at .agent-farm/state.db")
|
|
186
192
|
- **Key Files**:
|
|
187
193
|
- `file.ts` - does X
|
|
@@ -216,7 +222,7 @@ For each major component, arch.md MUST explain the implementation mechanism, not
|
|
|
216
222
|
|
|
217
223
|
| Bad (just WHAT) | Good (includes HOW) |
|
|
218
224
|
|-----------------|---------------------|
|
|
219
|
-
| "Agent Farm manages builders" | "Agent Farm spawns builders in isolated git worktrees. Each builder runs in a
|
|
225
|
+
| "Agent Farm manages builders" | "Agent Farm spawns builders in isolated git worktrees. Each builder runs in a shepherd-backed terminal session. The Tower dashboard exposes terminals via WebSocket. State is persisted in SQLite." |
|
|
220
226
|
| "Consult tool queries AI models" | "Consult shells out to external CLIs (gemini-cli, codex, claude). It writes the consultant role to a temp file, sets environment variables, and streams stdout/stderr back to the user." |
|
|
221
227
|
|
|
222
228
|
This level of detail enables rapid onboarding and debugging.
|
|
@@ -473,7 +479,7 @@ MAINTAIN is an **operational protocol**, not a feature development protocol:
|
|
|
473
479
|
| Review | No |
|
|
474
480
|
| 3-Way Consultation | **Yes** (before creating PR) |
|
|
475
481
|
|
|
476
|
-
**Exception**: If MAINTAIN reveals need for architectural changes, those should follow
|
|
482
|
+
**Exception**: If MAINTAIN reveals need for architectural changes, those should follow SPIR.
|
|
477
483
|
|
|
478
484
|
---
|
|
479
485
|
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"properties": {
|
|
9
9
|
"name": {
|
|
10
10
|
"type": "string",
|
|
11
|
-
"description": "Protocol identifier (e.g., '
|
|
11
|
+
"description": "Protocol identifier (e.g., 'spir', 'tick', 'bugfix')"
|
|
12
12
|
},
|
|
13
13
|
"version": {
|
|
14
14
|
"type": "string",
|
|
@@ -27,6 +27,12 @@
|
|
|
27
27
|
},
|
|
28
28
|
"minItems": 1
|
|
29
29
|
},
|
|
30
|
+
"input": {
|
|
31
|
+
"$ref": "#/definitions/protocolInput"
|
|
32
|
+
},
|
|
33
|
+
"hooks": {
|
|
34
|
+
"$ref": "#/definitions/protocolHooks"
|
|
35
|
+
},
|
|
30
36
|
"signals": {
|
|
31
37
|
"type": "object",
|
|
32
38
|
"description": "Signal definitions for state transitions",
|
|
@@ -38,6 +44,11 @@
|
|
|
38
44
|
"type": "object",
|
|
39
45
|
"description": "Default configuration for the protocol",
|
|
40
46
|
"properties": {
|
|
47
|
+
"mode": {
|
|
48
|
+
"type": "string",
|
|
49
|
+
"enum": ["strict", "soft"],
|
|
50
|
+
"description": "Default orchestration mode for the protocol"
|
|
51
|
+
},
|
|
41
52
|
"consultation": {
|
|
42
53
|
"$ref": "#/definitions/consultationDefaults"
|
|
43
54
|
},
|
|
@@ -232,6 +243,48 @@
|
|
|
232
243
|
"type": "string"
|
|
233
244
|
}
|
|
234
245
|
}
|
|
246
|
+
},
|
|
247
|
+
"protocolInput": {
|
|
248
|
+
"type": "object",
|
|
249
|
+
"description": "Protocol input configuration - defines what input types a protocol accepts",
|
|
250
|
+
"properties": {
|
|
251
|
+
"type": {
|
|
252
|
+
"type": "string",
|
|
253
|
+
"enum": ["spec", "github-issue", "task", "protocol", "shell", "worktree"],
|
|
254
|
+
"description": "Primary input type for this protocol"
|
|
255
|
+
},
|
|
256
|
+
"required": {
|
|
257
|
+
"type": "boolean",
|
|
258
|
+
"description": "Whether an input of this type is required"
|
|
259
|
+
},
|
|
260
|
+
"default_for": {
|
|
261
|
+
"type": "array",
|
|
262
|
+
"items": {
|
|
263
|
+
"type": "string"
|
|
264
|
+
},
|
|
265
|
+
"description": "CLI flags this protocol is the default for (e.g., ['--issue', '-i'])"
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
},
|
|
269
|
+
"protocolHooks": {
|
|
270
|
+
"type": "object",
|
|
271
|
+
"description": "Hooks triggered at various points in the spawn lifecycle",
|
|
272
|
+
"properties": {
|
|
273
|
+
"pre-spawn": {
|
|
274
|
+
"type": "object",
|
|
275
|
+
"description": "Hooks executed before spawning the builder",
|
|
276
|
+
"properties": {
|
|
277
|
+
"collision-check": {
|
|
278
|
+
"type": "boolean",
|
|
279
|
+
"description": "Check for worktree/PR collisions before spawning"
|
|
280
|
+
},
|
|
281
|
+
"comment-on-issue": {
|
|
282
|
+
"type": "string",
|
|
283
|
+
"description": "Comment to post on GitHub issue when spawning"
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
}
|
|
235
288
|
}
|
|
236
289
|
}
|
|
237
290
|
}
|
|
@@ -0,0 +1,59 @@
|
|
|
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 protocol document 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
|
+
- Do not deviate from the porch-driven workflow
|
|
21
|
+
|
|
22
|
+
### ABSOLUTE RESTRICTIONS (STRICT MODE)
|
|
23
|
+
- **NEVER edit `status.yaml` directly** — only porch commands may modify project state
|
|
24
|
+
- **NEVER call `porch approve` without explicit human approval** — only run it after the architect says to
|
|
25
|
+
- **NEVER skip the 3-way review** — always follow porch next → porch done cycle
|
|
26
|
+
- **NEVER advance plan phases manually** — porch handles phase transitions after unanimous review approval
|
|
27
|
+
{{/if}}
|
|
28
|
+
|
|
29
|
+
## Protocol
|
|
30
|
+
Follow the SPIR protocol: `codev/protocols/spir/protocol.md`
|
|
31
|
+
Read and internalize the protocol before starting any work.
|
|
32
|
+
|
|
33
|
+
{{#if spec}}
|
|
34
|
+
## Spec
|
|
35
|
+
Read the specification at: `{{spec.path}}`
|
|
36
|
+
{{/if}}
|
|
37
|
+
|
|
38
|
+
{{#if plan}}
|
|
39
|
+
## Plan
|
|
40
|
+
Follow the implementation plan at: `{{plan.path}}`
|
|
41
|
+
{{/if}}
|
|
42
|
+
|
|
43
|
+
{{#if issue}}
|
|
44
|
+
## Issue #{{issue.number}}
|
|
45
|
+
**Title**: {{issue.title}}
|
|
46
|
+
|
|
47
|
+
**Description**:
|
|
48
|
+
{{issue.body}}
|
|
49
|
+
{{/if}}
|
|
50
|
+
|
|
51
|
+
{{#if task}}
|
|
52
|
+
## Task
|
|
53
|
+
{{task_text}}
|
|
54
|
+
{{/if}}
|
|
55
|
+
|
|
56
|
+
## Getting Started
|
|
57
|
+
1. Read the protocol document thoroughly
|
|
58
|
+
2. Review the spec and plan (if available)
|
|
59
|
+
3. Begin implementation following the protocol phases
|