@cluesmith/codev 2.0.0-rc.3 → 2.0.0-rc.32
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/porch.js +6 -35
- package/dashboard/dist/assets/index-CXwnJkPh.css +32 -0
- package/dashboard/dist/assets/index-D429K6qO.js +120 -0
- package/dashboard/dist/assets/index-D429K6qO.js.map +1 -0
- package/dashboard/dist/index.html +13 -0
- package/dist/agent-farm/cli.d.ts.map +1 -1
- package/dist/agent-farm/cli.js +74 -64
- 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 +0 -2
- 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 +179 -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/{util.d.ts → shell.d.ts} +5 -5
- package/dist/agent-farm/commands/shell.d.ts.map +1 -0
- package/dist/agent-farm/commands/{util.js → shell.js} +23 -36
- 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 +455 -217
- package/dist/agent-farm/commands/spawn.js.map +1 -1
- package/dist/agent-farm/commands/start.d.ts.map +1 -1
- package/dist/agent-farm/commands/start.js +21 -74
- package/dist/agent-farm/commands/start.js.map +1 -1
- package/dist/agent-farm/commands/stop.d.ts.map +1 -1
- package/dist/agent-farm/commands/stop.js +79 -10
- package/dist/agent-farm/commands/stop.js.map +1 -1
- package/dist/agent-farm/commands/tower.d.ts.map +1 -1
- package/dist/agent-farm/commands/tower.js +2 -1
- 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 +15 -0
- package/dist/agent-farm/db/index.js.map +1 -1
- package/dist/agent-farm/db/schema.d.ts +1 -1
- package/dist/agent-farm/db/schema.d.ts.map +1 -1
- package/dist/agent-farm/db/schema.js +6 -3
- 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 -2
- package/dist/agent-farm/hq-connector.js +2 -2
- package/dist/agent-farm/servers/dashboard-server.js +408 -127
- package/dist/agent-farm/servers/dashboard-server.js.map +1 -1
- package/dist/agent-farm/servers/tower-server.js +353 -16
- 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 -0
- 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 +1 -0
- 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/server-utils.d.ts +2 -1
- package/dist/agent-farm/utils/server-utils.d.ts.map +1 -1
- package/dist/agent-farm/utils/server-utils.js +11 -1
- 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 +5 -54
- package/dist/cli.js.map +1 -1
- package/dist/commands/adopt.d.ts.map +1 -1
- package/dist/commands/adopt.js +20 -4
- package/dist/commands/adopt.js.map +1 -1
- package/dist/commands/consult/index.d.ts.map +1 -1
- package/dist/commands/consult/index.js +63 -3
- 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 +18 -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 +16 -29
- package/dist/commands/porch/checks.d.ts.map +1 -1
- package/dist/commands/porch/checks.js +90 -144
- package/dist/commands/porch/checks.js.map +1 -1
- package/dist/commands/porch/claude.d.ts +27 -0
- package/dist/commands/porch/claude.d.ts.map +1 -0
- package/dist/commands/porch/claude.js +107 -0
- package/dist/commands/porch/claude.js.map +1 -0
- 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 +469 -753
- package/dist/commands/porch/index.js.map +1 -1
- 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 +250 -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 +260 -0
- package/dist/commands/porch/protocol.js.map +1 -0
- package/dist/commands/porch/run.d.ts +40 -0
- package/dist/commands/porch/run.d.ts.map +1 -0
- package/dist/commands/porch/run.js +893 -0
- package/dist/commands/porch/run.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 -685
- package/dist/commands/porch/state.js.map +1 -1
- package/dist/commands/porch/types.d.ts +72 -173
- 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/update.d.ts.map +1 -1
- package/dist/commands/update.js +12 -0
- package/dist/commands/update.js.map +1 -1
- package/dist/lib/scaffold.d.ts +24 -0
- package/dist/lib/scaffold.d.ts.map +1 -1
- package/dist/lib/scaffold.js +78 -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 -3
- package/skeleton/DEPENDENCIES.md +3 -29
- package/skeleton/builders.md +1 -1
- package/skeleton/protocol-schema.json +282 -0
- package/skeleton/protocols/bugfix/builder-prompt.md +49 -0
- package/skeleton/protocols/bugfix/protocol.json +14 -2
- package/skeleton/protocols/experiment/builder-prompt.md +47 -0
- package/skeleton/protocols/experiment/protocol.json +101 -0
- package/skeleton/protocols/maintain/builder-prompt.md +41 -0
- package/skeleton/protocols/maintain/protocol.json +114 -0
- package/skeleton/protocols/protocol-schema.json +53 -0
- package/skeleton/protocols/spider/builder-prompt.md +53 -0
- package/skeleton/protocols/spider/prompts/implement.md +208 -0
- package/skeleton/protocols/spider/prompts/plan.md +214 -0
- package/skeleton/protocols/spider/prompts/review.md +217 -0
- package/skeleton/protocols/spider/prompts/specify.md +192 -0
- package/skeleton/protocols/spider/protocol.json +96 -148
- package/skeleton/protocols/spider/protocol.md +26 -16
- package/skeleton/protocols/spider/templates/plan.md +14 -0
- package/skeleton/protocols/tick/builder-prompt.md +51 -0
- package/skeleton/protocols/tick/protocol.json +7 -2
- package/skeleton/resources/commands/agent-farm.md +23 -41
- package/skeleton/resources/commands/overview.md +5 -5
- package/skeleton/resources/workflow-reference.md +2 -2
- package/skeleton/roles/architect.md +152 -315
- package/skeleton/roles/builder.md +109 -218
- package/skeleton/templates/cheatsheet.md +4 -2
- 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 +3 -3
- 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/tower.html +474 -17
- 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 -323
- 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.map +0 -1
- package/dist/agent-farm/commands/util.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 -249
- 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/porch/protocols/bugfix.json +0 -85
- package/skeleton/porch/protocols/spider.json +0 -135
- package/skeleton/porch/protocols/tick.json +0 -76
- package/templates/dashboard/css/activity.css +0 -151
- package/templates/dashboard/js/activity.js +0 -112
|
@@ -1,147 +1,96 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "../../protocol-schema.json",
|
|
3
3
|
"name": "spider",
|
|
4
|
-
"
|
|
5
|
-
"
|
|
4
|
+
"alias": "spir",
|
|
5
|
+
"version": "2.2.0",
|
|
6
|
+
"description": "SPIR: Specify → Plan → Implement → Review with build-verify cycles",
|
|
7
|
+
"input": {
|
|
8
|
+
"type": "spec",
|
|
9
|
+
"required": false,
|
|
10
|
+
"default_for": ["--project", "-p"]
|
|
11
|
+
},
|
|
6
12
|
"phases": [
|
|
7
13
|
{
|
|
8
14
|
"id": "specify",
|
|
9
15
|
"name": "Specify",
|
|
10
|
-
"description": "
|
|
11
|
-
"type": "
|
|
12
|
-
"
|
|
13
|
-
"
|
|
14
|
-
"
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
"success_criteria",
|
|
18
|
-
"spec_draft",
|
|
19
|
-
"consultation_1",
|
|
20
|
-
"human_review",
|
|
21
|
-
"consultation_2",
|
|
22
|
-
"spec_final"
|
|
23
|
-
],
|
|
24
|
-
"consultation": {
|
|
25
|
-
"on": "review",
|
|
26
|
-
"models": ["gemini", "codex", "claude"],
|
|
16
|
+
"description": "Write specification with 3-way review",
|
|
17
|
+
"type": "build_verify",
|
|
18
|
+
"build": {
|
|
19
|
+
"prompt": "specify.md",
|
|
20
|
+
"artifact": "codev/specs/${PROJECT_ID}-*.md"
|
|
21
|
+
},
|
|
22
|
+
"verify": {
|
|
27
23
|
"type": "spec-review",
|
|
28
|
-
"
|
|
29
|
-
"
|
|
24
|
+
"models": ["gemini", "codex", "claude"],
|
|
25
|
+
"parallel": true
|
|
30
26
|
},
|
|
31
|
-
"
|
|
32
|
-
|
|
33
|
-
"
|
|
34
|
-
"
|
|
35
|
-
|
|
36
|
-
|
|
27
|
+
"max_iterations": 7,
|
|
28
|
+
"on_complete": {
|
|
29
|
+
"commit": true,
|
|
30
|
+
"push": true
|
|
31
|
+
},
|
|
32
|
+
"gate": "spec-approval",
|
|
33
|
+
"next": "plan"
|
|
37
34
|
},
|
|
38
35
|
{
|
|
39
36
|
"id": "plan",
|
|
40
37
|
"name": "Plan",
|
|
41
|
-
"description": "
|
|
42
|
-
"type": "
|
|
43
|
-
"
|
|
44
|
-
"
|
|
45
|
-
"
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
"consultation",
|
|
49
|
-
"human_review",
|
|
50
|
-
"plan_final"
|
|
51
|
-
],
|
|
52
|
-
"consultation": {
|
|
53
|
-
"on": "review",
|
|
54
|
-
"models": ["gemini", "codex", "claude"],
|
|
38
|
+
"description": "Write implementation plan with 3-way review",
|
|
39
|
+
"type": "build_verify",
|
|
40
|
+
"build": {
|
|
41
|
+
"prompt": "plan.md",
|
|
42
|
+
"artifact": "codev/plans/${PROJECT_ID}-*.md"
|
|
43
|
+
},
|
|
44
|
+
"verify": {
|
|
55
45
|
"type": "plan-review",
|
|
56
|
-
"
|
|
57
|
-
"
|
|
46
|
+
"models": ["gemini", "codex", "claude"],
|
|
47
|
+
"parallel": true
|
|
58
48
|
},
|
|
59
|
-
"
|
|
60
|
-
|
|
61
|
-
"
|
|
62
|
-
"
|
|
63
|
-
|
|
64
|
-
|
|
49
|
+
"max_iterations": 7,
|
|
50
|
+
"on_complete": {
|
|
51
|
+
"commit": true,
|
|
52
|
+
"push": true
|
|
53
|
+
},
|
|
54
|
+
"checks": {
|
|
55
|
+
"plan_exists": "test -f codev/plans/${PROJECT_ID}-*.md",
|
|
56
|
+
"has_phases_json": "grep -q '\"phases\":' codev/plans/${PROJECT_ID}-*.md",
|
|
57
|
+
"min_two_phases": "grep -o '\"id\": *\"[^\"]*\"' codev/plans/${PROJECT_ID}-*.md | wc -l | awk '$1 >= 2 {exit 0} {exit 1}'"
|
|
58
|
+
},
|
|
59
|
+
"gate": "plan-approval",
|
|
60
|
+
"next": "implement"
|
|
65
61
|
},
|
|
66
62
|
{
|
|
67
63
|
"id": "implement",
|
|
68
64
|
"name": "Implement",
|
|
69
|
-
"description": "
|
|
65
|
+
"description": "Implement code with 3-way review per plan phase",
|
|
70
66
|
"type": "per_plan_phase",
|
|
71
|
-
"
|
|
72
|
-
"
|
|
73
|
-
"
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
67
|
+
"build": {
|
|
68
|
+
"prompt": "implement.md",
|
|
69
|
+
"artifact": "src/**/*.{ts,tsx,js,jsx}"
|
|
70
|
+
},
|
|
71
|
+
"verify": {
|
|
72
|
+
"type": "impl-review",
|
|
73
|
+
"models": ["gemini", "codex", "claude"],
|
|
74
|
+
"parallel": true
|
|
75
|
+
},
|
|
76
|
+
"max_iterations": 7,
|
|
77
|
+
"on_complete": {
|
|
78
|
+
"commit": true,
|
|
79
|
+
"push": true
|
|
80
|
+
},
|
|
77
81
|
"checks": {
|
|
78
82
|
"build": {
|
|
79
83
|
"command": "npm run build",
|
|
80
84
|
"on_fail": "retry",
|
|
81
85
|
"max_retries": 2
|
|
82
86
|
},
|
|
83
|
-
"typecheck": {
|
|
84
|
-
"command": "npm run typecheck",
|
|
85
|
-
"on_fail": "retry",
|
|
86
|
-
"max_retries": 2
|
|
87
|
-
}
|
|
88
|
-
},
|
|
89
|
-
"transition": {
|
|
90
|
-
"on_complete": "defend",
|
|
91
|
-
"on_fail": "implement"
|
|
92
|
-
}
|
|
93
|
-
},
|
|
94
|
-
{
|
|
95
|
-
"id": "defend",
|
|
96
|
-
"name": "Defend",
|
|
97
|
-
"description": "Testing and verification",
|
|
98
|
-
"type": "per_plan_phase",
|
|
99
|
-
"steps": [
|
|
100
|
-
"write_tests",
|
|
101
|
-
"run_tests",
|
|
102
|
-
"fix_failures",
|
|
103
|
-
"commit"
|
|
104
|
-
],
|
|
105
|
-
"checks": {
|
|
106
87
|
"tests": {
|
|
107
|
-
"command": "npm test",
|
|
108
|
-
"
|
|
109
|
-
"max_retries": 1
|
|
110
|
-
},
|
|
111
|
-
"lint": {
|
|
112
|
-
"command": "npm run lint",
|
|
88
|
+
"command": "npm test -- --exclude='**/e2e/**'",
|
|
89
|
+
"description": "Unit tests only - e2e tests run in review phase",
|
|
113
90
|
"on_fail": "retry",
|
|
114
|
-
"max_retries":
|
|
91
|
+
"max_retries": 2
|
|
115
92
|
}
|
|
116
93
|
},
|
|
117
|
-
"consultation": {
|
|
118
|
-
"on": "complete",
|
|
119
|
-
"models": ["gemini", "codex", "claude"],
|
|
120
|
-
"type": "impl-review",
|
|
121
|
-
"parallel": true,
|
|
122
|
-
"max_rounds": 2
|
|
123
|
-
},
|
|
124
|
-
"transition": {
|
|
125
|
-
"on_complete": "evaluate",
|
|
126
|
-
"on_fail": "implement"
|
|
127
|
-
}
|
|
128
|
-
},
|
|
129
|
-
{
|
|
130
|
-
"id": "evaluate",
|
|
131
|
-
"name": "Evaluate",
|
|
132
|
-
"description": "Verify implementation against spec",
|
|
133
|
-
"type": "per_plan_phase",
|
|
134
|
-
"steps": [
|
|
135
|
-
"check_spec_compliance",
|
|
136
|
-
"check_success_criteria",
|
|
137
|
-
"document_deviations"
|
|
138
|
-
],
|
|
139
|
-
"gate": {
|
|
140
|
-
"name": "phase-complete",
|
|
141
|
-
"description": "Plan phase implementation is verified",
|
|
142
|
-
"requires": ["all_checks_pass", "spec_compliance"],
|
|
143
|
-
"next": "implement"
|
|
144
|
-
},
|
|
145
94
|
"transition": {
|
|
146
95
|
"on_complete": "implement",
|
|
147
96
|
"on_all_phases_complete": "review"
|
|
@@ -150,55 +99,54 @@
|
|
|
150
99
|
{
|
|
151
100
|
"id": "review",
|
|
152
101
|
"name": "Review",
|
|
153
|
-
"description": "Final review and
|
|
154
|
-
"type": "
|
|
155
|
-
"
|
|
156
|
-
"
|
|
157
|
-
"
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
],
|
|
161
|
-
"consultation": {
|
|
162
|
-
"on": "review",
|
|
163
|
-
"models": ["gemini", "codex", "claude"],
|
|
102
|
+
"description": "Final review and PR with 3-way review",
|
|
103
|
+
"type": "build_verify",
|
|
104
|
+
"build": {
|
|
105
|
+
"prompt": "review.md",
|
|
106
|
+
"artifact": "codev/reviews/${PROJECT_ID}-*.md"
|
|
107
|
+
},
|
|
108
|
+
"verify": {
|
|
164
109
|
"type": "pr-ready",
|
|
165
|
-
"
|
|
166
|
-
"
|
|
110
|
+
"models": ["gemini", "codex", "claude"],
|
|
111
|
+
"parallel": true
|
|
167
112
|
},
|
|
168
|
-
"
|
|
169
|
-
|
|
170
|
-
"
|
|
171
|
-
"
|
|
172
|
-
|
|
173
|
-
|
|
113
|
+
"max_iterations": 7,
|
|
114
|
+
"on_complete": {
|
|
115
|
+
"commit": true,
|
|
116
|
+
"push": true
|
|
117
|
+
},
|
|
118
|
+
"checks": {
|
|
119
|
+
"e2e_tests": {
|
|
120
|
+
"command": "npm run test:e2e 2>&1 || echo 'e2e tests skipped (not configured)'",
|
|
121
|
+
"description": "Full e2e test suite - only runs in review phase",
|
|
122
|
+
"optional": true
|
|
123
|
+
}
|
|
124
|
+
},
|
|
125
|
+
"gate": "pr-ready",
|
|
126
|
+
"next": null
|
|
174
127
|
}
|
|
175
128
|
],
|
|
176
129
|
"signals": {
|
|
177
130
|
"PHASE_COMPLETE": {
|
|
178
|
-
"description": "Signal current phase is complete",
|
|
179
|
-
"transitions_to": "
|
|
131
|
+
"description": "Signal current build phase is complete",
|
|
132
|
+
"transitions_to": "verify"
|
|
180
133
|
},
|
|
181
134
|
"BLOCKED": {
|
|
182
135
|
"description": "Signal implementation is blocked",
|
|
183
136
|
"requires": "reason"
|
|
184
|
-
},
|
|
185
|
-
"REVISION_NEEDED": {
|
|
186
|
-
"description": "Signal changes requested",
|
|
187
|
-
"transitions_to": "current_phase"
|
|
188
|
-
},
|
|
189
|
-
"APPROVED": {
|
|
190
|
-
"description": "Signal gate approval received"
|
|
191
137
|
}
|
|
192
138
|
},
|
|
139
|
+
"phase_completion": {
|
|
140
|
+
"build_succeeds": "npm run build 2>&1",
|
|
141
|
+
"tests_pass": "npm test 2>&1",
|
|
142
|
+
"commit_has_code": "git log -1 --name-only --pretty=format: | grep -qE '\\.(ts|tsx|js|jsx|py|go|rs)$'"
|
|
143
|
+
},
|
|
193
144
|
"defaults": {
|
|
194
|
-
"
|
|
195
|
-
|
|
145
|
+
"mode": "strict",
|
|
146
|
+
"max_iterations": 7,
|
|
147
|
+
"verify": {
|
|
196
148
|
"models": ["gemini", "codex", "claude"],
|
|
197
149
|
"parallel": true
|
|
198
|
-
},
|
|
199
|
-
"checks": {
|
|
200
|
-
"build": "npm run build",
|
|
201
|
-
"test": "npm test"
|
|
202
150
|
}
|
|
203
151
|
}
|
|
204
152
|
}
|
|
@@ -1,4 +1,10 @@
|
|
|
1
|
-
#
|
|
1
|
+
# SPIR Protocol (formerly SPIDER)
|
|
2
|
+
|
|
3
|
+
> **Also known as**: SPIDER (legacy name)
|
|
4
|
+
>
|
|
5
|
+
> **SPIR** = **S**pecify → **P**lan → **I**mplement → **R**eview
|
|
6
|
+
>
|
|
7
|
+
> Each phase has one build-verify cycle with 3-way consultation.
|
|
2
8
|
|
|
3
9
|
> **Quick Reference**: See `codev/resources/workflow-reference.md` for stage diagrams and common commands.
|
|
4
10
|
|
|
@@ -40,13 +46,21 @@ The user can specify different agents by saying: "use SPIDER with consultation f
|
|
|
40
46
|
- **Review**: After review document
|
|
41
47
|
|
|
42
48
|
## Overview
|
|
43
|
-
|
|
49
|
+
SPIR is a structured development protocol that emphasizes specification-driven development with iterative implementation and continuous review. It builds upon the DAPPER methodology with a focus on context-first development and multi-agent collaboration.
|
|
50
|
+
|
|
51
|
+
**The SPIR Model**:
|
|
52
|
+
- **S - Specify**: Write specification with 3-way review → Gate: `spec-approval`
|
|
53
|
+
- **P - Plan**: Write implementation plan with 3-way review → Gate: `plan-approval`
|
|
54
|
+
- **I - Implement**: Execute each plan phase with build-verify cycle (one cycle per phase)
|
|
55
|
+
- **R - Review**: Final review and PR preparation with 3-way review
|
|
56
|
+
|
|
57
|
+
Each phase follows a build-verify loop: build the artifact, then verify with 3-way consultation (Gemini, Codex, Claude).
|
|
44
58
|
|
|
45
59
|
**Core Principle**: Each feature is tracked through exactly THREE documents - a specification, a plan, and a review with lessons learned - all sharing the same filename and sequential identifier.
|
|
46
60
|
|
|
47
|
-
## When to Use
|
|
61
|
+
## When to Use SPIR
|
|
48
62
|
|
|
49
|
-
### Use
|
|
63
|
+
### Use SPIR for:
|
|
50
64
|
- New feature development
|
|
51
65
|
- Architecture changes
|
|
52
66
|
- Complex refactoring
|
|
@@ -54,7 +68,7 @@ SPIDER is a structured development protocol that emphasizes specification-driven
|
|
|
54
68
|
- API design and implementation
|
|
55
69
|
- Performance optimization initiatives
|
|
56
70
|
|
|
57
|
-
### Skip
|
|
71
|
+
### Skip SPIR for:
|
|
58
72
|
- Simple bug fixes (< 10 lines)
|
|
59
73
|
- Documentation updates
|
|
60
74
|
- Configuration changes
|
|
@@ -224,25 +238,21 @@ Each phase should be:
|
|
|
224
238
|
**Template**: `templates/plan.md`
|
|
225
239
|
**Review Required**: Yes - Technical lead approval AFTER consultations
|
|
226
240
|
|
|
227
|
-
###
|
|
228
|
-
|
|
229
|
-
Execute for each phase in the plan. This is a strict cycle that must be completed in order.
|
|
241
|
+
### I - Implement (Per Plan Phase)
|
|
230
242
|
|
|
231
|
-
|
|
243
|
+
Execute for each phase in the plan. Each phase follows a build-verify cycle.
|
|
232
244
|
|
|
233
245
|
**CRITICAL PRECONDITION**: Before starting any phase, verify the previous phase was committed to git. No phase can begin without the prior phase's commit.
|
|
234
246
|
|
|
235
|
-
**
|
|
236
|
-
1. **
|
|
237
|
-
2. **
|
|
238
|
-
3. **
|
|
247
|
+
**Build-Verify Cycle Per Phase**:
|
|
248
|
+
1. **Build** - Implement code and tests for this phase
|
|
249
|
+
2. **Verify** - 3-way consultation (Gemini, Codex, Claude)
|
|
250
|
+
3. **Iterate** - Address feedback until verification passes
|
|
239
251
|
4. **Commit** - Single atomic commit for the phase (MANDATORY before next phase)
|
|
240
252
|
5. **Proceed** - Move to next phase only after commit
|
|
241
253
|
|
|
242
254
|
**Handling Failures**:
|
|
243
|
-
- If
|
|
244
|
-
- If **Evaluation** reveals unmet criteria → return to **Implement**
|
|
245
|
-
- If user requests changes → return to **Implement**
|
|
255
|
+
- If verification reveals gaps → iterate and fix
|
|
246
256
|
- If fundamental plan flaws found → mark phase as `blocked` and revise plan
|
|
247
257
|
|
|
248
258
|
**Commit Requirements**:
|
|
@@ -17,6 +17,20 @@
|
|
|
17
17
|
- [ ] Zero critical security issues
|
|
18
18
|
- [ ] Documentation complete
|
|
19
19
|
|
|
20
|
+
## Phases (Machine Readable)
|
|
21
|
+
|
|
22
|
+
<!-- REQUIRED: porch uses this JSON to track phase progress. Update this when adding/removing phases. -->
|
|
23
|
+
|
|
24
|
+
```json
|
|
25
|
+
{
|
|
26
|
+
"phases": [
|
|
27
|
+
{"id": "phase_1", "title": "Phase 1 Title Here"},
|
|
28
|
+
{"id": "phase_2", "title": "Phase 2 Title Here"},
|
|
29
|
+
{"id": "phase_3", "title": "Phase 3 Title Here"}
|
|
30
|
+
]
|
|
31
|
+
}
|
|
32
|
+
```
|
|
33
|
+
|
|
20
34
|
## Phase Breakdown
|
|
21
35
|
|
|
22
36
|
### Phase 1: [Descriptive Name]
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# {{protocol_name}} Builder ({{mode}} mode)
|
|
2
|
+
|
|
3
|
+
You are implementing {{input_description}}.
|
|
4
|
+
|
|
5
|
+
{{#if mode_soft}}
|
|
6
|
+
## Mode: SOFT
|
|
7
|
+
You are running in SOFT mode. This means:
|
|
8
|
+
- You follow the TICK protocol yourself (no porch orchestration)
|
|
9
|
+
- The architect monitors your work and verifies you're adhering to the protocol
|
|
10
|
+
- Run consultations manually when the protocol calls for them
|
|
11
|
+
- You have flexibility in execution, but must stay compliant with the protocol
|
|
12
|
+
{{/if}}
|
|
13
|
+
|
|
14
|
+
{{#if mode_strict}}
|
|
15
|
+
## Mode: STRICT
|
|
16
|
+
You are running in STRICT mode. This means:
|
|
17
|
+
- Porch orchestrates your work
|
|
18
|
+
- Run: `porch run {{project_id}}`
|
|
19
|
+
- Follow porch signals and gate approvals
|
|
20
|
+
{{/if}}
|
|
21
|
+
|
|
22
|
+
## Protocol
|
|
23
|
+
Follow the TICK protocol: `codev/protocols/tick/protocol.md`
|
|
24
|
+
|
|
25
|
+
TICK is for amendments to existing SPIDER specifications. You will:
|
|
26
|
+
1. Identify the target spec to amend
|
|
27
|
+
2. Update the spec with the amendment
|
|
28
|
+
3. Update the plan
|
|
29
|
+
4. Implement the changes
|
|
30
|
+
5. Defend with tests
|
|
31
|
+
6. Create review
|
|
32
|
+
|
|
33
|
+
{{#if spec}}
|
|
34
|
+
## Target Spec
|
|
35
|
+
The spec to amend is at: `{{spec.path}}`
|
|
36
|
+
{{/if}}
|
|
37
|
+
|
|
38
|
+
{{#if plan}}
|
|
39
|
+
## Target Plan
|
|
40
|
+
The plan to amend is at: `{{plan.path}}`
|
|
41
|
+
{{/if}}
|
|
42
|
+
|
|
43
|
+
{{#if task}}
|
|
44
|
+
## Amendment Description
|
|
45
|
+
{{task_text}}
|
|
46
|
+
{{/if}}
|
|
47
|
+
|
|
48
|
+
## Getting Started
|
|
49
|
+
1. Read the TICK protocol thoroughly
|
|
50
|
+
2. Identify what needs to change in the existing spec
|
|
51
|
+
3. Follow the amendment workflow
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "../../protocol-schema.json",
|
|
3
3
|
"name": "tick",
|
|
4
|
-
"version": "1.
|
|
5
|
-
"description": "Amendment workflow for existing
|
|
4
|
+
"version": "1.1.0",
|
|
5
|
+
"description": "Amendment workflow for existing SPIR specifications",
|
|
6
|
+
"input": {
|
|
7
|
+
"type": "spec",
|
|
8
|
+
"required": false
|
|
9
|
+
},
|
|
6
10
|
"phases": [
|
|
7
11
|
{
|
|
8
12
|
"id": "identify",
|
|
@@ -138,6 +142,7 @@
|
|
|
138
142
|
}
|
|
139
143
|
},
|
|
140
144
|
"defaults": {
|
|
145
|
+
"mode": "soft",
|
|
141
146
|
"consultation": {
|
|
142
147
|
"enabled": true,
|
|
143
148
|
"models": ["gemini", "codex"],
|
|
@@ -18,12 +18,16 @@ af <command> [options]
|
|
|
18
18
|
|
|
19
19
|
## Commands
|
|
20
20
|
|
|
21
|
-
### af
|
|
21
|
+
### af dash
|
|
22
|
+
|
|
23
|
+
Project dashboard commands - start/stop the architect dashboard for this project.
|
|
24
|
+
|
|
25
|
+
#### af dash start
|
|
22
26
|
|
|
23
27
|
Start the architect dashboard.
|
|
24
28
|
|
|
25
29
|
```bash
|
|
26
|
-
af start [options]
|
|
30
|
+
af dash start [options]
|
|
27
31
|
```
|
|
28
32
|
|
|
29
33
|
**Options:**
|
|
@@ -47,16 +51,16 @@ The dashboard is accessible via browser at `http://localhost:<port>`.
|
|
|
47
51
|
|
|
48
52
|
```bash
|
|
49
53
|
# Start with defaults
|
|
50
|
-
af start
|
|
54
|
+
af dash start
|
|
51
55
|
|
|
52
56
|
# Start with custom port
|
|
53
|
-
af start -p 4300
|
|
57
|
+
af dash start -p 4300
|
|
54
58
|
|
|
55
59
|
# Start with specific command
|
|
56
|
-
af start -c "claude --model opus"
|
|
60
|
+
af dash start -c "claude --model opus"
|
|
57
61
|
|
|
58
62
|
# Start on remote machine
|
|
59
|
-
af start --remote user@host
|
|
63
|
+
af dash start --remote user@host
|
|
60
64
|
```
|
|
61
65
|
|
|
62
66
|
#### Remote Access
|
|
@@ -65,13 +69,13 @@ Start Agent Farm on a remote machine and access it from your local workstation w
|
|
|
65
69
|
|
|
66
70
|
```bash
|
|
67
71
|
# On your local machine - one command does everything:
|
|
68
|
-
af start --remote user@remote-host
|
|
72
|
+
af dash start --remote user@remote-host
|
|
69
73
|
|
|
70
74
|
# Or with explicit project path:
|
|
71
|
-
af start --remote user@remote-host:/path/to/project
|
|
75
|
+
af dash start --remote user@remote-host:/path/to/project
|
|
72
76
|
|
|
73
77
|
# With custom port:
|
|
74
|
-
af start --remote user@remote-host --port 4300
|
|
78
|
+
af dash start --remote user@remote-host --port 4300
|
|
75
79
|
```
|
|
76
80
|
|
|
77
81
|
This single command:
|
|
@@ -112,19 +116,17 @@ export PATH="$HOME/.local/bin:$PATH"
|
|
|
112
116
|
|
|
113
117
|
```bash
|
|
114
118
|
# DEPRECATED: Exposes dashboard without authentication
|
|
115
|
-
af start --allow-insecure-remote
|
|
119
|
+
af dash start --allow-insecure-remote
|
|
116
120
|
```
|
|
117
121
|
|
|
118
122
|
The `--allow-insecure-remote` flag binds to `0.0.0.0` with no authentication. Use `--remote` instead for secure access via SSH.
|
|
119
123
|
|
|
120
|
-
|
|
124
|
+
#### af dash stop
|
|
121
125
|
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
Stop all agent farm processes.
|
|
126
|
+
Stop all agent farm processes for this project.
|
|
125
127
|
|
|
126
128
|
```bash
|
|
127
|
-
af stop
|
|
129
|
+
af dash stop
|
|
128
130
|
```
|
|
129
131
|
|
|
130
132
|
**Description:**
|
|
@@ -306,16 +308,14 @@ af open src/auth/login.ts
|
|
|
306
308
|
|
|
307
309
|
---
|
|
308
310
|
|
|
309
|
-
### af
|
|
311
|
+
### af shell
|
|
310
312
|
|
|
311
313
|
Spawn a utility shell terminal.
|
|
312
314
|
|
|
313
315
|
```bash
|
|
314
|
-
af
|
|
316
|
+
af shell [options]
|
|
315
317
|
```
|
|
316
318
|
|
|
317
|
-
**Aliases:** `af shell`
|
|
318
|
-
|
|
319
319
|
**Options:**
|
|
320
320
|
- `-n, --name <name>` - Name for the shell terminal
|
|
321
321
|
|
|
@@ -330,10 +330,10 @@ Opens a general-purpose shell terminal in the dashboard. Useful for:
|
|
|
330
330
|
|
|
331
331
|
```bash
|
|
332
332
|
# Open utility shell
|
|
333
|
-
af
|
|
333
|
+
af shell
|
|
334
334
|
|
|
335
335
|
# Open with custom name
|
|
336
|
-
af
|
|
336
|
+
af shell -n "test-runner"
|
|
337
337
|
```
|
|
338
338
|
|
|
339
339
|
---
|
|
@@ -358,25 +358,6 @@ af rename 0042 "auth-rework"
|
|
|
358
358
|
|
|
359
359
|
---
|
|
360
360
|
|
|
361
|
-
### af tutorial
|
|
362
|
-
|
|
363
|
-
Interactive tutorial for new users.
|
|
364
|
-
|
|
365
|
-
```bash
|
|
366
|
-
af tutorial [options]
|
|
367
|
-
```
|
|
368
|
-
|
|
369
|
-
**Options:**
|
|
370
|
-
- `--reset` - Start tutorial fresh
|
|
371
|
-
- `--skip` - Skip current step
|
|
372
|
-
- `--status` - Show tutorial progress
|
|
373
|
-
|
|
374
|
-
**Description:**
|
|
375
|
-
|
|
376
|
-
Walks through the basics of using agent-farm with guided steps.
|
|
377
|
-
|
|
378
|
-
---
|
|
379
|
-
|
|
380
361
|
### af ports
|
|
381
362
|
|
|
382
363
|
Manage global port registry.
|
|
@@ -410,7 +391,7 @@ Removes entries for projects that no longer exist.
|
|
|
410
391
|
|
|
411
392
|
### af tower
|
|
412
393
|
|
|
413
|
-
Manage the tower dashboard.
|
|
394
|
+
Manage the cross-project tower dashboard. Tower shows all agent-farm instances across projects.
|
|
414
395
|
|
|
415
396
|
#### af tower start
|
|
416
397
|
|
|
@@ -422,6 +403,7 @@ af tower start [options]
|
|
|
422
403
|
|
|
423
404
|
**Options:**
|
|
424
405
|
- `-p, --port <port>` - Port to run on (default: 4100)
|
|
406
|
+
- `-w, --web` - Enable web access mode (requires CODEV_WEB_KEY)
|
|
425
407
|
|
|
426
408
|
#### af tower stop
|
|
427
409
|
|
|
@@ -21,7 +21,7 @@ codev adopt
|
|
|
21
21
|
codev doctor
|
|
22
22
|
|
|
23
23
|
# Start the architect dashboard
|
|
24
|
-
af start
|
|
24
|
+
af dash start
|
|
25
25
|
|
|
26
26
|
# Consult an AI model about a spec
|
|
27
27
|
consult -m gemini spec 42
|
|
@@ -46,7 +46,6 @@ This installs all three commands globally: `codev`, `af`, and `consult`.
|
|
|
46
46
|
| `codev doctor` | Check system dependencies |
|
|
47
47
|
| `codev update` | Update codev templates and protocols |
|
|
48
48
|
| `codev import <source>` | AI-assisted protocol import from other projects |
|
|
49
|
-
| `codev tower` | Cross-project dashboard |
|
|
50
49
|
|
|
51
50
|
See [codev.md](codev.md) for full documentation.
|
|
52
51
|
|
|
@@ -54,14 +53,15 @@ See [codev.md](codev.md) for full documentation.
|
|
|
54
53
|
|
|
55
54
|
| Command | Description |
|
|
56
55
|
|---------|-------------|
|
|
57
|
-
| `af start` | Start the architect dashboard |
|
|
58
|
-
| `af stop` | Stop all agent farm processes |
|
|
56
|
+
| `af dash start` | Start the architect dashboard |
|
|
57
|
+
| `af dash stop` | Stop all agent farm processes |
|
|
59
58
|
| `af spawn` | Spawn a new builder |
|
|
60
59
|
| `af status` | Show status of all agents |
|
|
61
60
|
| `af cleanup` | Clean up a builder worktree |
|
|
62
61
|
| `af send` | Send instructions to a builder |
|
|
63
62
|
| `af open` | Open file annotation viewer |
|
|
64
|
-
| `af
|
|
63
|
+
| `af shell` | Spawn a utility shell |
|
|
64
|
+
| `af tower` | Cross-project dashboard |
|
|
65
65
|
|
|
66
66
|
See [agent-farm.md](agent-farm.md) for full documentation.
|
|
67
67
|
|
|
@@ -77,7 +77,7 @@ AI agents must stop and wait for human action at these gates.
|
|
|
77
77
|
|
|
78
78
|
```bash
|
|
79
79
|
# Start the dashboard
|
|
80
|
-
af start
|
|
80
|
+
af dash start
|
|
81
81
|
|
|
82
82
|
# Spawn a builder for a project
|
|
83
83
|
af spawn -p 0044
|
|
@@ -95,7 +95,7 @@ af open codev/specs/0044-name.md
|
|
|
95
95
|
af cleanup -p 0044
|
|
96
96
|
|
|
97
97
|
# Stop everything
|
|
98
|
-
af stop
|
|
98
|
+
af dash stop
|
|
99
99
|
```
|
|
100
100
|
|
|
101
101
|
### Builder Commands
|