@cluesmith/codev 2.0.0-rc.6 → 2.0.0-rc.61
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-CXloFYpB.css +32 -0
- package/dashboard/dist/assets/index-Ca2fjOJf.js +131 -0
- package/dashboard/dist/assets/index-Ca2fjOJf.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 +94 -65
- package/dist/agent-farm/cli.js.map +1 -1
- package/dist/agent-farm/commands/architect.d.ts.map +1 -1
- package/dist/agent-farm/commands/architect.js +13 -6
- 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 +202 -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 +30 -3
- package/dist/agent-farm/commands/cleanup.js.map +1 -1
- package/dist/agent-farm/commands/consult.js +1 -1
- 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 +34 -70
- package/dist/agent-farm/commands/open.js.map +1 -1
- package/dist/agent-farm/commands/send.d.ts.map +1 -1
- package/dist/agent-farm/commands/send.js +55 -17
- 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 +61 -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 +503 -226
- package/dist/agent-farm/commands/spawn.js.map +1 -1
- package/dist/agent-farm/commands/start.d.ts +3 -0
- package/dist/agent-farm/commands/start.d.ts.map +1 -1
- package/dist/agent-farm/commands/start.js +58 -265
- 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 +61 -3
- 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 +116 -12
- package/dist/agent-farm/commands/stop.js.map +1 -1
- 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.map +1 -1
- package/dist/agent-farm/db/index.js +124 -0
- package/dist/agent-farm/db/index.js.map +1 -1
- package/dist/agent-farm/db/schema.d.ts +2 -2
- package/dist/agent-farm/db/schema.d.ts.map +1 -1
- package/dist/agent-farm/db/schema.js +26 -5
- package/dist/agent-farm/db/schema.js.map +1 -1
- package/dist/agent-farm/db/types.d.ts +3 -0
- package/dist/agent-farm/db/types.d.ts.map +1 -1
- package/dist/agent-farm/db/types.js +3 -0
- 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/tower-client.d.ts +157 -0
- package/dist/agent-farm/lib/tower-client.d.ts.map +1 -0
- package/dist/agent-farm/lib/tower-client.js +223 -0
- package/dist/agent-farm/lib/tower-client.js.map +1 -0
- package/dist/agent-farm/servers/tower-server.js +2340 -109
- package/dist/agent-farm/servers/tower-server.js.map +1 -1
- package/dist/agent-farm/state.d.ts +4 -10
- package/dist/agent-farm/state.d.ts.map +1 -1
- package/dist/agent-farm/state.js +30 -31
- package/dist/agent-farm/state.js.map +1 -1
- package/dist/agent-farm/types.d.ts +48 -1
- package/dist/agent-farm/types.d.ts.map +1 -1
- package/dist/agent-farm/utils/config.d.ts.map +1 -1
- package/dist/agent-farm/utils/config.js +13 -14
- 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 -16
- package/dist/agent-farm/utils/deps.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/port-registry.d.ts +0 -1
- package/dist/agent-farm/utils/port-registry.d.ts.map +1 -1
- package/dist/agent-farm/utils/port-registry.js +1 -1
- package/dist/agent-farm/utils/port-registry.js.map +1 -1
- package/dist/agent-farm/utils/server-utils.d.ts +4 -4
- package/dist/agent-farm/utils/server-utils.d.ts.map +1 -1
- package/dist/agent-farm/utils/server-utils.js +4 -15
- package/dist/agent-farm/utils/server-utils.js.map +1 -1
- 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/agent-farm/utils/terminal-ports.d.ts +1 -1
- package/dist/agent-farm/utils/terminal-ports.js +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +9 -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 +2 -0
- package/dist/commands/consult/index.d.ts.map +1 -1
- package/dist/commands/consult/index.js +103 -6
- package/dist/commands/consult/index.js.map +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +0 -15
- 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 +21 -43
- package/dist/commands/porch/index.d.ts.map +1 -1
- package/dist/commands/porch/index.js +418 -1123
- 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 +481 -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 +255 -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 +23 -112
- package/dist/commands/porch/state.d.ts.map +1 -1
- package/dist/commands/porch/state.js +81 -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 +60 -0
- package/dist/terminal/pty-manager.d.ts.map +1 -0
- package/dist/terminal/pty-manager.js +334 -0
- package/dist/terminal/pty-manager.js.map +1 -0
- package/dist/terminal/pty-session.d.ts +79 -0
- package/dist/terminal/pty-session.d.ts.map +1 -0
- package/dist/terminal/pty-session.js +215 -0
- package/dist/terminal/pty-session.js.map +1 -0
- package/dist/terminal/ring-buffer.d.ts +27 -0
- package/dist/terminal/ring-buffer.d.ts.map +1 -0
- package/dist/terminal/ring-buffer.js +74 -0
- package/dist/terminal/ring-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 +18 -5
- package/skeleton/.claude/skills/af/SKILL.md +74 -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 +3 -29
- package/skeleton/builders.md +1 -1
- package/skeleton/consult-types/impl-review.md +9 -0
- 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 +61 -0
- package/skeleton/protocols/bugfix/protocol.json +19 -2
- 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 +14 -8
- 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 +7 -25
- package/skeleton/protocols/{spider → spir}/prompts/specify.md +33 -61
- package/skeleton/protocols/spir/protocol.json +152 -0
- package/skeleton/protocols/{spider → spir}/protocol.md +35 -21
- package/skeleton/protocols/{spider → spir}/templates/plan.md +14 -0
- package/skeleton/protocols/{spider → spir}/templates/review.md +1 -1
- 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 +25 -43
- 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 +109 -218
- 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 +542 -27
- package/dist/agent-farm/commands/kickoff.d.ts +0 -19
- package/dist/agent-farm/commands/kickoff.d.ts.map +0 -1
- package/dist/agent-farm/commands/kickoff.js +0 -331
- 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/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/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,101 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "../../protocol-schema.json",
|
|
3
|
+
"name": "experiment",
|
|
4
|
+
"version": "1.0.0",
|
|
5
|
+
"description": "Disciplined experimentation with hypothesis testing",
|
|
6
|
+
"input": {
|
|
7
|
+
"type": "none",
|
|
8
|
+
"required": false,
|
|
9
|
+
"default_for": []
|
|
10
|
+
},
|
|
11
|
+
"hooks": {
|
|
12
|
+
"pre-spawn": {}
|
|
13
|
+
},
|
|
14
|
+
"phases": [
|
|
15
|
+
{
|
|
16
|
+
"id": "hypothesis",
|
|
17
|
+
"name": "Hypothesis",
|
|
18
|
+
"description": "Define the hypothesis and success criteria",
|
|
19
|
+
"type": "once",
|
|
20
|
+
"steps": [
|
|
21
|
+
"define_hypothesis",
|
|
22
|
+
"define_success_criteria",
|
|
23
|
+
"define_scope",
|
|
24
|
+
"create_experiment_doc"
|
|
25
|
+
],
|
|
26
|
+
"transition": {
|
|
27
|
+
"on_complete": "design"
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"id": "design",
|
|
32
|
+
"name": "Design",
|
|
33
|
+
"description": "Design the experiment approach",
|
|
34
|
+
"type": "once",
|
|
35
|
+
"steps": [
|
|
36
|
+
"choose_approach",
|
|
37
|
+
"identify_dependencies",
|
|
38
|
+
"plan_implementation",
|
|
39
|
+
"define_measurements"
|
|
40
|
+
],
|
|
41
|
+
"transition": {
|
|
42
|
+
"on_complete": "execute"
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"id": "execute",
|
|
47
|
+
"name": "Execute",
|
|
48
|
+
"description": "Run the experiment",
|
|
49
|
+
"type": "once",
|
|
50
|
+
"steps": [
|
|
51
|
+
"implement_prototype",
|
|
52
|
+
"gather_data",
|
|
53
|
+
"document_findings"
|
|
54
|
+
],
|
|
55
|
+
"transition": {
|
|
56
|
+
"on_complete": "analyze"
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"id": "analyze",
|
|
61
|
+
"name": "Analyze",
|
|
62
|
+
"description": "Analyze results and draw conclusions",
|
|
63
|
+
"type": "once",
|
|
64
|
+
"steps": [
|
|
65
|
+
"analyze_data",
|
|
66
|
+
"evaluate_hypothesis",
|
|
67
|
+
"document_conclusions",
|
|
68
|
+
"recommend_next_steps"
|
|
69
|
+
],
|
|
70
|
+
"gate": {
|
|
71
|
+
"name": "experiment-complete",
|
|
72
|
+
"description": "Experiment complete",
|
|
73
|
+
"requires": ["conclusions_documented"],
|
|
74
|
+
"next": null
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
],
|
|
78
|
+
"signals": {
|
|
79
|
+
"PHASE_COMPLETE": {
|
|
80
|
+
"description": "Signal current phase is complete",
|
|
81
|
+
"transitions_to": "next_phase"
|
|
82
|
+
},
|
|
83
|
+
"BLOCKED": {
|
|
84
|
+
"description": "Signal experiment is blocked",
|
|
85
|
+
"requires": "reason"
|
|
86
|
+
},
|
|
87
|
+
"HYPOTHESIS_REJECTED": {
|
|
88
|
+
"description": "Signal hypothesis was disproven",
|
|
89
|
+
"transitions_to": "analyze"
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
"defaults": {
|
|
93
|
+
"mode": "soft",
|
|
94
|
+
"consultation": {
|
|
95
|
+
"enabled": false,
|
|
96
|
+
"models": [],
|
|
97
|
+
"parallel": false
|
|
98
|
+
},
|
|
99
|
+
"checks": {}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
@@ -10,7 +10,7 @@ Disciplined experimentation: Each experiment gets its own directory with `notes.
|
|
|
10
10
|
|
|
11
11
|
**Use for**: Testing approaches, evaluating models, prototyping, proof-of-concept work, research spikes
|
|
12
12
|
|
|
13
|
-
**Skip for**: Production code (use
|
|
13
|
+
**Skip for**: Production code (use SPIR), simple one-off scripts, well-understood implementations (use TICK)
|
|
14
14
|
|
|
15
15
|
## Structure
|
|
16
16
|
|
|
@@ -141,7 +141,7 @@ What should be done based on findings?
|
|
|
141
141
|
|
|
142
142
|
## Integration with Other Protocols
|
|
143
143
|
|
|
144
|
-
### Experiment →
|
|
144
|
+
### Experiment → SPIR
|
|
145
145
|
When an experiment validates an approach for production use:
|
|
146
146
|
|
|
147
147
|
1. Create a specification referencing the experiment
|
|
@@ -225,5 +225,5 @@ Determine if Redis caching improves API response times for repeated queries.
|
|
|
225
225
|
- Memory usage: 50MB for 10k cached responses
|
|
226
226
|
|
|
227
227
|
## Next Steps
|
|
228
|
-
Create
|
|
228
|
+
Create SPIR spec for production caching implementation.
|
|
229
229
|
```
|
|
@@ -88,7 +88,7 @@ Based on these findings:
|
|
|
88
88
|
|
|
89
89
|
1. **Immediate**: What should happen right after this experiment?
|
|
90
90
|
2. **Follow-up experiments**: What new questions emerged?
|
|
91
|
-
3. **Production path**: If validated, what's needed for production? (
|
|
91
|
+
3. **Production path**: If validated, what's needed for production? (SPIR spec?)
|
|
92
92
|
|
|
93
93
|
## References
|
|
94
94
|
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# {{protocol_name}} Builder ({{mode}} mode)
|
|
2
|
+
|
|
3
|
+
You are executing the MAINTAIN protocol to clean up and synchronize the codebase.
|
|
4
|
+
|
|
5
|
+
{{#if mode_soft}}
|
|
6
|
+
## Mode: SOFT
|
|
7
|
+
You are running in SOFT mode. This means:
|
|
8
|
+
- You follow the MAINTAIN protocol yourself (no porch orchestration)
|
|
9
|
+
- The architect monitors your work and verifies you're adhering to the protocol
|
|
10
|
+
- Work through each phase methodically
|
|
11
|
+
{{/if}}
|
|
12
|
+
|
|
13
|
+
{{#if mode_strict}}
|
|
14
|
+
## Mode: STRICT
|
|
15
|
+
You are running in STRICT mode. This means:
|
|
16
|
+
- Porch orchestrates your work
|
|
17
|
+
- Run: `porch run {{project_id}}`
|
|
18
|
+
- Follow porch signals and gate approvals
|
|
19
|
+
|
|
20
|
+
### ABSOLUTE RESTRICTIONS (STRICT MODE)
|
|
21
|
+
- **NEVER edit `status.yaml` directly** — only porch commands may modify project state
|
|
22
|
+
- **NEVER call `porch approve` without explicit human approval** — only run it after the architect says to
|
|
23
|
+
- **NEVER skip the 3-way review** — always follow porch next → porch done cycle
|
|
24
|
+
{{/if}}
|
|
25
|
+
|
|
26
|
+
## Protocol
|
|
27
|
+
Follow the MAINTAIN protocol: `codev/protocols/maintain/protocol.md`
|
|
28
|
+
|
|
29
|
+
## MAINTAIN Overview
|
|
30
|
+
The MAINTAIN protocol handles codebase hygiene:
|
|
31
|
+
|
|
32
|
+
1. **Audit Phase**: Scan for dead code, unused dependencies, stale docs
|
|
33
|
+
2. **Clean Phase**: Remove identified cruft, verify build
|
|
34
|
+
3. **Sync Phase**: Update documentation (arch.md, lessons-learned.md, CLAUDE.md)
|
|
35
|
+
4. **Verify Phase**: Run full test suite, confirm health
|
|
36
|
+
|
|
37
|
+
## Key Rules
|
|
38
|
+
- Use soft deletion (move to `codev/maintain/.trash/`)
|
|
39
|
+
- Always verify build passes after removals
|
|
40
|
+
- Update documentation to match current architecture
|
|
41
|
+
- Don't remove anything actively used
|
|
42
|
+
|
|
43
|
+
## Getting Started
|
|
44
|
+
1. Read the MAINTAIN protocol document
|
|
45
|
+
2. Start with the Audit phase
|
|
46
|
+
3. Document all changes made
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
# AUDIT Phase Prompt
|
|
2
|
+
|
|
3
|
+
You are executing the **AUDIT** phase of the MAINTAIN protocol.
|
|
4
|
+
|
|
5
|
+
## Your Goal
|
|
6
|
+
|
|
7
|
+
Analyze the codebase to identify dead code, unused dependencies, and stale documentation.
|
|
8
|
+
|
|
9
|
+
## Context
|
|
10
|
+
|
|
11
|
+
- **Current State**: {{current_state}}
|
|
12
|
+
|
|
13
|
+
## Process
|
|
14
|
+
|
|
15
|
+
### 1. Determine Base Commit
|
|
16
|
+
|
|
17
|
+
Find the last maintenance run:
|
|
18
|
+
```bash
|
|
19
|
+
ls codev/maintain/
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
If previous runs exist, note the base commit to focus on changes since then.
|
|
23
|
+
|
|
24
|
+
### 2. Scan for Dead Code
|
|
25
|
+
|
|
26
|
+
Run static analysis tools:
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
# TypeScript/JavaScript
|
|
30
|
+
npx ts-prune 2>/dev/null || echo "ts-prune not available"
|
|
31
|
+
npx depcheck 2>/dev/null || echo "depcheck not available"
|
|
32
|
+
|
|
33
|
+
# Check for unused exports
|
|
34
|
+
grep -r "export " --include="*.ts" --include="*.tsx" | head -50
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### 3. Scan for Unused Dependencies
|
|
38
|
+
|
|
39
|
+
Check package.json for unused dependencies:
|
|
40
|
+
```bash
|
|
41
|
+
cat package.json | grep -A100 '"dependencies"' | head -50
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Cross-reference with actual imports in the codebase.
|
|
45
|
+
|
|
46
|
+
### 4. Scan for Stale Documentation
|
|
47
|
+
|
|
48
|
+
Check for references to deleted files/functions:
|
|
49
|
+
```bash
|
|
50
|
+
# Recent changes
|
|
51
|
+
git log --oneline -20
|
|
52
|
+
|
|
53
|
+
# Check if arch.md references exist
|
|
54
|
+
grep -E "src/|packages/" codev/resources/arch.md | head -20
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### 5. Create Audit Report
|
|
58
|
+
|
|
59
|
+
Create a maintenance run file: `codev/maintain/NNNN.md`
|
|
60
|
+
|
|
61
|
+
Document:
|
|
62
|
+
- Dead code identified (with file paths)
|
|
63
|
+
- Unused dependencies
|
|
64
|
+
- Stale documentation references
|
|
65
|
+
- Recommended actions
|
|
66
|
+
|
|
67
|
+
Use the template structure:
|
|
68
|
+
```markdown
|
|
69
|
+
# Maintenance Run NNNN
|
|
70
|
+
|
|
71
|
+
**Date**: YYYY-MM-DD
|
|
72
|
+
**Base Commit**: <commit-hash>
|
|
73
|
+
|
|
74
|
+
## Dead Code Identified
|
|
75
|
+
|
|
76
|
+
| File | Item | Reason |
|
|
77
|
+
|------|------|--------|
|
|
78
|
+
| path/to/file.ts | unusedFunction() | Not imported anywhere |
|
|
79
|
+
|
|
80
|
+
## Unused Dependencies
|
|
81
|
+
|
|
82
|
+
| Package | Reason |
|
|
83
|
+
|---------|--------|
|
|
84
|
+
| some-pkg | Not imported |
|
|
85
|
+
|
|
86
|
+
## Stale Documentation
|
|
87
|
+
|
|
88
|
+
| Document | Issue |
|
|
89
|
+
|----------|-------|
|
|
90
|
+
| arch.md | References deleted module |
|
|
91
|
+
|
|
92
|
+
## Recommended Actions
|
|
93
|
+
|
|
94
|
+
1. Remove X
|
|
95
|
+
2. Update Y
|
|
96
|
+
3. ...
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
## Signals
|
|
100
|
+
|
|
101
|
+
When audit report is complete:
|
|
102
|
+
|
|
103
|
+
```
|
|
104
|
+
<signal>PHASE_COMPLETE</signal>
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
If blocked:
|
|
108
|
+
|
|
109
|
+
```
|
|
110
|
+
<signal>BLOCKED:reason</signal>
|
|
111
|
+
```
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
# CLEAN Phase Prompt
|
|
2
|
+
|
|
3
|
+
You are executing the **CLEAN** phase of the MAINTAIN protocol.
|
|
4
|
+
|
|
5
|
+
## Your Goal
|
|
6
|
+
|
|
7
|
+
Remove the dead code and unused dependencies identified in the audit phase.
|
|
8
|
+
|
|
9
|
+
## Context
|
|
10
|
+
|
|
11
|
+
- **Current State**: {{current_state}}
|
|
12
|
+
|
|
13
|
+
## Prerequisites
|
|
14
|
+
|
|
15
|
+
Read the audit report from the previous phase:
|
|
16
|
+
```bash
|
|
17
|
+
ls -la codev/maintain/
|
|
18
|
+
cat codev/maintain/*.md | tail -100
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Process
|
|
22
|
+
|
|
23
|
+
### 1. Remove Dead Code
|
|
24
|
+
|
|
25
|
+
For each item identified in the audit:
|
|
26
|
+
|
|
27
|
+
1. Verify it's truly unused (double-check with grep)
|
|
28
|
+
2. Use `git rm` for tracked files
|
|
29
|
+
3. For untracked files, move to `.trash/` before deleting
|
|
30
|
+
|
|
31
|
+
**CRITICAL**: Use soft deletion first:
|
|
32
|
+
```bash
|
|
33
|
+
mkdir -p codev/maintain/.trash/$(date +%Y-%m-%d)
|
|
34
|
+
mv path/to/file codev/maintain/.trash/$(date +%Y-%m-%d)/
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### 2. Remove Unused Dependencies
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
# Remove from package.json
|
|
41
|
+
npm uninstall <package-name>
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### 3. Verify Build After Each Removal
|
|
45
|
+
|
|
46
|
+
After each significant removal:
|
|
47
|
+
```bash
|
|
48
|
+
npm run build
|
|
49
|
+
npm test -- --exclude='**/e2e/**'
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
If build fails, revert the change and investigate.
|
|
53
|
+
|
|
54
|
+
### 4. Commit Changes
|
|
55
|
+
|
|
56
|
+
Make atomic commits for each logical change:
|
|
57
|
+
```bash
|
|
58
|
+
git add <specific-files>
|
|
59
|
+
git commit -m "[Maintain] Remove unused X"
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
**NEVER use `git add -A` or `git add .`**
|
|
63
|
+
|
|
64
|
+
## Important Rules
|
|
65
|
+
|
|
66
|
+
1. **One removal at a time** - Don't batch unrelated changes
|
|
67
|
+
2. **Verify after each removal** - Build must pass
|
|
68
|
+
3. **Document what was removed** - Update the maintenance run file
|
|
69
|
+
4. **Soft delete first** - Move to .trash/ before permanent deletion
|
|
70
|
+
5. **Check for side effects** - Grep for references before removing
|
|
71
|
+
|
|
72
|
+
## Output
|
|
73
|
+
|
|
74
|
+
Update the maintenance run file with:
|
|
75
|
+
- What was removed
|
|
76
|
+
- Build/test status after removal
|
|
77
|
+
- Any issues encountered
|
|
78
|
+
|
|
79
|
+
## Signals
|
|
80
|
+
|
|
81
|
+
When all dead code is removed and build passes:
|
|
82
|
+
|
|
83
|
+
```
|
|
84
|
+
<signal>PHASE_COMPLETE</signal>
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
If blocked:
|
|
88
|
+
|
|
89
|
+
```
|
|
90
|
+
<signal>BLOCKED:reason</signal>
|
|
91
|
+
```
|
|
@@ -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
|
+
```
|