@cluesmith/codev 2.0.2 → 2.0.6
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/dashboard/dist/assets/index-B-s8BA2l.js +135 -0
- package/dashboard/dist/assets/index-B-s8BA2l.js.map +1 -0
- package/dashboard/dist/assets/index-DB2AxRP7.css +32 -0
- package/dashboard/dist/index.html +2 -2
- package/dist/agent-farm/cli.d.ts.map +1 -1
- package/dist/agent-farm/cli.js +32 -14
- package/dist/agent-farm/cli.js.map +1 -1
- package/dist/agent-farm/commands/architect.d.ts +1 -1
- package/dist/agent-farm/commands/architect.js +3 -3
- package/dist/agent-farm/commands/architect.js.map +1 -1
- package/dist/agent-farm/commands/attach.d.ts +19 -0
- package/dist/agent-farm/commands/attach.d.ts.map +1 -1
- package/dist/agent-farm/commands/attach.js +172 -12
- package/dist/agent-farm/commands/attach.js.map +1 -1
- package/dist/agent-farm/commands/cleanup.js +6 -6
- package/dist/agent-farm/commands/cleanup.js.map +1 -1
- package/dist/agent-farm/commands/open.js +5 -5
- package/dist/agent-farm/commands/open.js.map +1 -1
- package/dist/agent-farm/commands/send.d.ts +22 -2
- package/dist/agent-farm/commands/send.d.ts.map +1 -1
- package/dist/agent-farm/commands/send.js +100 -181
- package/dist/agent-farm/commands/send.js.map +1 -1
- package/dist/agent-farm/commands/shell.js +5 -5
- package/dist/agent-farm/commands/shell.js.map +1 -1
- package/dist/agent-farm/commands/spawn-roles.d.ts +3 -9
- package/dist/agent-farm/commands/spawn-roles.d.ts.map +1 -1
- package/dist/agent-farm/commands/spawn-roles.js +14 -53
- package/dist/agent-farm/commands/spawn-roles.js.map +1 -1
- package/dist/agent-farm/commands/spawn-worktree.d.ts +11 -17
- package/dist/agent-farm/commands/spawn-worktree.d.ts.map +1 -1
- package/dist/agent-farm/commands/spawn-worktree.js +32 -13
- package/dist/agent-farm/commands/spawn-worktree.js.map +1 -1
- package/dist/agent-farm/commands/spawn.d.ts +8 -6
- package/dist/agent-farm/commands/spawn.d.ts.map +1 -1
- package/dist/agent-farm/commands/spawn.js +183 -69
- package/dist/agent-farm/commands/spawn.js.map +1 -1
- package/dist/agent-farm/commands/start.d.ts +4 -4
- package/dist/agent-farm/commands/start.js +16 -16
- package/dist/agent-farm/commands/start.js.map +1 -1
- package/dist/agent-farm/commands/status.d.ts +1 -1
- package/dist/agent-farm/commands/status.d.ts.map +1 -1
- package/dist/agent-farm/commands/status.js +15 -26
- package/dist/agent-farm/commands/status.js.map +1 -1
- package/dist/agent-farm/commands/stop.d.ts +4 -4
- package/dist/agent-farm/commands/stop.js +9 -9
- package/dist/agent-farm/commands/stop.js.map +1 -1
- package/dist/agent-farm/db/index.d.ts.map +1 -1
- package/dist/agent-farm/db/index.js +82 -7
- 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 +21 -4
- package/dist/agent-farm/db/schema.js.map +1 -1
- package/dist/agent-farm/lib/tower-client.d.ts +36 -26
- package/dist/agent-farm/lib/tower-client.d.ts.map +1 -1
- package/dist/agent-farm/lib/tower-client.js +50 -25
- package/dist/agent-farm/lib/tower-client.js.map +1 -1
- package/dist/agent-farm/lib/tunnel-client.d.ts +12 -2
- package/dist/agent-farm/lib/tunnel-client.d.ts.map +1 -1
- package/dist/agent-farm/lib/tunnel-client.js +59 -1
- package/dist/agent-farm/lib/tunnel-client.js.map +1 -1
- package/dist/agent-farm/servers/overview.d.ts +111 -0
- package/dist/agent-farm/servers/overview.d.ts.map +1 -0
- package/dist/agent-farm/servers/overview.js +385 -0
- package/dist/agent-farm/servers/overview.js.map +1 -0
- package/dist/agent-farm/servers/tower-instances.d.ts +18 -20
- package/dist/agent-farm/servers/tower-instances.d.ts.map +1 -1
- package/dist/agent-farm/servers/tower-instances.js +97 -100
- package/dist/agent-farm/servers/tower-instances.js.map +1 -1
- package/dist/agent-farm/servers/tower-messages.d.ts +87 -0
- package/dist/agent-farm/servers/tower-messages.d.ts.map +1 -0
- package/dist/agent-farm/servers/tower-messages.js +202 -0
- package/dist/agent-farm/servers/tower-messages.js.map +1 -0
- package/dist/agent-farm/servers/tower-routes.d.ts +1 -1
- package/dist/agent-farm/servers/tower-routes.d.ts.map +1 -1
- package/dist/agent-farm/servers/tower-routes.js +343 -174
- package/dist/agent-farm/servers/tower-routes.js.map +1 -1
- package/dist/agent-farm/servers/tower-server.js +50 -21
- package/dist/agent-farm/servers/tower-server.js.map +1 -1
- package/dist/agent-farm/servers/tower-terminals.d.ts +35 -31
- package/dist/agent-farm/servers/tower-terminals.d.ts.map +1 -1
- package/dist/agent-farm/servers/tower-terminals.js +208 -184
- package/dist/agent-farm/servers/tower-terminals.js.map +1 -1
- package/dist/agent-farm/servers/tower-tunnel.d.ts +2 -2
- package/dist/agent-farm/servers/tower-tunnel.d.ts.map +1 -1
- package/dist/agent-farm/servers/tower-tunnel.js +12 -12
- package/dist/agent-farm/servers/tower-tunnel.js.map +1 -1
- package/dist/agent-farm/servers/tower-types.d.ts +8 -12
- package/dist/agent-farm/servers/tower-types.d.ts.map +1 -1
- package/dist/agent-farm/servers/tower-utils.d.ts +9 -9
- package/dist/agent-farm/servers/tower-utils.d.ts.map +1 -1
- package/dist/agent-farm/servers/tower-utils.js +18 -18
- package/dist/agent-farm/servers/tower-utils.js.map +1 -1
- package/dist/agent-farm/servers/tower-websocket.d.ts +2 -2
- package/dist/agent-farm/servers/tower-websocket.d.ts.map +1 -1
- package/dist/agent-farm/servers/tower-websocket.js +39 -18
- package/dist/agent-farm/servers/tower-websocket.js.map +1 -1
- package/dist/agent-farm/types.d.ts +5 -6
- package/dist/agent-farm/types.d.ts.map +1 -1
- package/dist/agent-farm/utils/agent-names.d.ts +85 -0
- package/dist/agent-farm/utils/agent-names.d.ts.map +1 -0
- package/dist/agent-farm/utils/agent-names.js +140 -0
- package/dist/agent-farm/utils/agent-names.js.map +1 -0
- package/dist/agent-farm/utils/config.d.ts +1 -1
- package/dist/agent-farm/utils/config.d.ts.map +1 -1
- package/dist/agent-farm/utils/config.js +16 -16
- package/dist/agent-farm/utils/config.js.map +1 -1
- package/dist/agent-farm/utils/file-tabs.d.ts +3 -3
- package/dist/agent-farm/utils/file-tabs.d.ts.map +1 -1
- package/dist/agent-farm/utils/file-tabs.js +9 -9
- package/dist/agent-farm/utils/file-tabs.js.map +1 -1
- 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/message-format.d.ts +17 -0
- package/dist/agent-farm/utils/message-format.d.ts.map +1 -0
- package/dist/agent-farm/utils/message-format.js +41 -0
- package/dist/agent-farm/utils/message-format.js.map +1 -0
- package/dist/agent-farm/utils/notifications.d.ts +4 -4
- package/dist/agent-farm/utils/notifications.d.ts.map +1 -1
- package/dist/agent-farm/utils/notifications.js +18 -18
- package/dist/agent-farm/utils/notifications.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +26 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/adopt.d.ts +2 -2
- package/dist/commands/adopt.d.ts.map +1 -1
- package/dist/commands/adopt.js +13 -15
- package/dist/commands/adopt.js.map +1 -1
- package/dist/commands/consult/index.d.ts +26 -2
- package/dist/commands/consult/index.d.ts.map +1 -1
- package/dist/commands/consult/index.js +296 -83
- package/dist/commands/consult/index.js.map +1 -1
- package/dist/commands/consult/metrics.d.ts +90 -0
- package/dist/commands/consult/metrics.d.ts.map +1 -0
- package/dist/commands/consult/metrics.js +203 -0
- package/dist/commands/consult/metrics.js.map +1 -0
- package/dist/commands/consult/stats.d.ts +18 -0
- package/dist/commands/consult/stats.d.ts.map +1 -0
- package/dist/commands/consult/stats.js +150 -0
- package/dist/commands/consult/stats.js.map +1 -0
- package/dist/commands/consult/usage-extractor.d.ts +38 -0
- package/dist/commands/consult/usage-extractor.d.ts.map +1 -0
- package/dist/commands/consult/usage-extractor.js +99 -0
- package/dist/commands/consult/usage-extractor.js.map +1 -0
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +11 -9
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/import.js +4 -4
- package/dist/commands/import.js.map +1 -1
- package/dist/commands/init.d.ts +2 -2
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +13 -15
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/porch/index.d.ts +6 -6
- package/dist/commands/porch/index.d.ts.map +1 -1
- package/dist/commands/porch/index.js +37 -37
- package/dist/commands/porch/index.js.map +1 -1
- package/dist/commands/porch/next.d.ts +1 -1
- package/dist/commands/porch/next.d.ts.map +1 -1
- package/dist/commands/porch/next.js +86 -92
- package/dist/commands/porch/next.js.map +1 -1
- package/dist/commands/porch/notify.d.ts +11 -0
- package/dist/commands/porch/notify.d.ts.map +1 -0
- package/dist/commands/porch/notify.js +30 -0
- package/dist/commands/porch/notify.js.map +1 -0
- package/dist/commands/porch/plan.d.ts +1 -1
- package/dist/commands/porch/plan.d.ts.map +1 -1
- package/dist/commands/porch/plan.js +3 -3
- package/dist/commands/porch/plan.js.map +1 -1
- package/dist/commands/porch/prompts.d.ts +10 -1
- package/dist/commands/porch/prompts.d.ts.map +1 -1
- package/dist/commands/porch/prompts.js +59 -35
- package/dist/commands/porch/prompts.js.map +1 -1
- package/dist/commands/porch/protocol.d.ts +1 -1
- package/dist/commands/porch/protocol.d.ts.map +1 -1
- package/dist/commands/porch/protocol.js +8 -8
- package/dist/commands/porch/protocol.js.map +1 -1
- package/dist/commands/porch/state.d.ts +6 -6
- package/dist/commands/porch/state.d.ts.map +1 -1
- package/dist/commands/porch/state.js +14 -12
- package/dist/commands/porch/state.js.map +1 -1
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +10 -11
- package/dist/commands/update.js.map +1 -1
- package/dist/lib/github.d.ts +81 -0
- package/dist/lib/github.d.ts.map +1 -0
- package/dist/lib/github.js +141 -0
- package/dist/lib/github.js.map +1 -0
- package/dist/lib/scaffold.d.ts +13 -21
- package/dist/lib/scaffold.d.ts.map +1 -1
- package/dist/lib/scaffold.js +34 -57
- package/dist/lib/scaffold.js.map +1 -1
- package/dist/lib/skeleton.d.ts +7 -7
- package/dist/lib/skeleton.d.ts.map +1 -1
- package/dist/lib/skeleton.js +10 -10
- package/dist/lib/skeleton.js.map +1 -1
- package/dist/terminal/index.d.ts +14 -0
- package/dist/terminal/index.d.ts.map +1 -1
- package/dist/terminal/index.js +12 -0
- package/dist/terminal/index.js.map +1 -1
- package/dist/terminal/pty-manager.d.ts +1 -1
- package/dist/terminal/pty-manager.d.ts.map +1 -1
- package/dist/terminal/pty-manager.js +10 -7
- package/dist/terminal/pty-manager.js.map +1 -1
- package/dist/terminal/pty-session.js +3 -3
- package/dist/terminal/pty-session.js.map +1 -1
- package/dist/terminal/session-manager.d.ts +64 -0
- package/dist/terminal/session-manager.d.ts.map +1 -1
- package/dist/terminal/session-manager.js +299 -10
- package/dist/terminal/session-manager.js.map +1 -1
- package/dist/terminal/shellper-client.d.ts +2 -1
- package/dist/terminal/shellper-client.d.ts.map +1 -1
- package/dist/terminal/shellper-client.js +4 -2
- package/dist/terminal/shellper-client.js.map +1 -1
- package/dist/terminal/shellper-main.js +33 -4
- package/dist/terminal/shellper-main.js.map +1 -1
- package/dist/terminal/shellper-process.d.ts +24 -7
- package/dist/terminal/shellper-process.d.ts.map +1 -1
- package/dist/terminal/shellper-process.js +139 -36
- package/dist/terminal/shellper-process.js.map +1 -1
- package/dist/terminal/shellper-protocol.d.ts +1 -0
- package/dist/terminal/shellper-protocol.d.ts.map +1 -1
- package/dist/terminal/shellper-protocol.js.map +1 -1
- package/package.json +4 -1
- package/skeleton/.claude/skills/af/SKILL.md +7 -7
- package/skeleton/.claude/skills/consult/SKILL.md +1 -1
- package/skeleton/builders.md +2 -2
- package/skeleton/maintain/.gitkeep +1 -1
- package/skeleton/porch/prompts/specify.md +1 -1
- package/skeleton/protocols/bugfix/prompts/pr.md +15 -4
- package/skeleton/protocols/experiment/protocol.md +17 -17
- package/skeleton/protocols/maintain/prompts/audit.md +2 -2
- package/skeleton/protocols/maintain/prompts/sync.md +1 -1
- package/skeleton/protocols/maintain/prompts/verify.md +1 -1
- package/skeleton/protocols/maintain/protocol.md +8 -9
- package/skeleton/protocols/maintain/templates/maintenance-run.md +2 -2
- package/skeleton/protocols/spir/protocol.json +5 -5
- package/skeleton/protocols/spir/protocol.md +8 -8
- package/skeleton/protocols/tick/protocol.md +31 -31
- package/skeleton/resources/commands/agent-farm.md +14 -14
- package/skeleton/resources/commands/codev.md +0 -1
- package/skeleton/resources/commands/consult.md +3 -3
- package/skeleton/resources/spikes.md +3 -3
- package/skeleton/resources/workflow-reference.md +14 -14
- package/skeleton/roles/architect.md +25 -25
- package/skeleton/roles/builder.md +1 -1
- package/skeleton/roles/consultant.md +6 -0
- package/skeleton/templates/AGENTS.md +5 -5
- package/skeleton/templates/CLAUDE.md +5 -5
- package/skeleton/templates/lifecycle.md +9 -9
- package/templates/open.html +19 -16
- package/templates/tower.html +54 -94
- package/templates/vendor/marked.min.js +6 -0
- package/templates/vendor/prism-bash.min.js +1 -0
- package/templates/vendor/prism-css.min.js +1 -0
- package/templates/vendor/prism-javascript.min.js +1 -0
- package/templates/vendor/prism-json.min.js +1 -0
- package/templates/vendor/prism-markdown.min.js +1 -0
- package/templates/vendor/prism-markup.min.js +1 -0
- package/templates/vendor/prism-python.min.js +1 -0
- package/templates/vendor/prism-tomorrow.min.css +1 -0
- package/templates/vendor/prism-typescript.min.js +1 -0
- package/templates/vendor/prism-yaml.min.js +1 -0
- package/templates/vendor/prism.min.js +1 -0
- package/templates/vendor/purify.min.js +3 -0
- package/dashboard/dist/assets/index-4n9zpWLY.css +0 -32
- package/dashboard/dist/assets/index-b38SaXk5.js +0 -136
- package/dashboard/dist/assets/index-b38SaXk5.js.map +0 -1
- package/dist/agent-farm/hq-connector.d.ts +0 -19
- package/dist/agent-farm/hq-connector.d.ts.map +0 -1
- package/dist/agent-farm/hq-connector.js +0 -351
- package/dist/agent-farm/hq-connector.js.map +0 -1
- package/dist/agent-farm/utils/deps.d.ts +0 -51
- package/dist/agent-farm/utils/deps.d.ts.map +0 -1
- package/dist/agent-farm/utils/deps.js +0 -162
- package/dist/agent-farm/utils/deps.js.map +0 -1
- package/dist/agent-farm/utils/gate-status.d.ts +0 -16
- package/dist/agent-farm/utils/gate-status.d.ts.map +0 -1
- package/dist/agent-farm/utils/gate-status.js +0 -79
- package/dist/agent-farm/utils/gate-status.js.map +0 -1
- package/dist/agent-farm/utils/gate-watcher.d.ts +0 -38
- package/dist/agent-farm/utils/gate-watcher.d.ts.map +0 -1
- package/dist/agent-farm/utils/gate-watcher.js +0 -122
- package/dist/agent-farm/utils/gate-watcher.js.map +0 -1
- package/dist/agent-farm/utils/session.d.ts +0 -32
- package/dist/agent-farm/utils/session.d.ts.map +0 -1
- package/dist/agent-farm/utils/session.js +0 -57
- package/dist/agent-farm/utils/session.js.map +0 -1
- package/dist/lib/projectlist-parser.d.ts +0 -70
- package/dist/lib/projectlist-parser.d.ts.map +0 -1
- package/dist/lib/projectlist-parser.js +0 -200
- package/dist/lib/projectlist-parser.js.map +0 -1
- package/skeleton/templates/projectlist-archive.md +0 -21
- package/skeleton/templates/projectlist.md +0 -147
- package/templates/dashboard/css/dialogs.css +0 -149
- package/templates/dashboard/css/files.css +0 -558
- package/templates/dashboard/css/layout.css +0 -133
- package/templates/dashboard/css/projects.css +0 -501
- package/templates/dashboard/css/statusbar.css +0 -23
- package/templates/dashboard/css/tabs.css +0 -314
- package/templates/dashboard/css/utilities.css +0 -50
- package/templates/dashboard/css/variables.css +0 -45
- package/templates/dashboard/index.html +0 -149
- package/templates/dashboard/js/dialogs.js +0 -368
- package/templates/dashboard/js/files.js +0 -448
- package/templates/dashboard/js/main.js +0 -476
- package/templates/dashboard/js/projects.js +0 -544
- package/templates/dashboard/js/state.js +0 -91
- package/templates/dashboard/js/tabs.js +0 -518
- package/templates/dashboard/js/utils.js +0 -191
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cluesmith/codev",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.6",
|
|
4
4
|
"description": "Codev CLI - AI-assisted software development framework",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -36,10 +36,13 @@
|
|
|
36
36
|
"dependencies": {
|
|
37
37
|
"@anthropic-ai/claude-agent-sdk": "^0.2.41",
|
|
38
38
|
"@google/genai": "^1.0.0",
|
|
39
|
+
"@openai/codex-sdk": "^0.101.0",
|
|
40
|
+
"@types/http-proxy": "^1.17.17",
|
|
39
41
|
"better-sqlite3": "^12.5.0",
|
|
40
42
|
"chalk": "^5.3.0",
|
|
41
43
|
"commander": "^12.1.0",
|
|
42
44
|
"glob": "^11.0.0",
|
|
45
|
+
"http-proxy": "^1.18.1",
|
|
43
46
|
"js-yaml": "^4.1.0",
|
|
44
47
|
"node-pty": "^1.1.0",
|
|
45
48
|
"open": "^10.1.0",
|
|
@@ -28,13 +28,13 @@ af dash open # Open dashboard in browser
|
|
|
28
28
|
## Builder Management
|
|
29
29
|
|
|
30
30
|
```bash
|
|
31
|
-
af spawn -p
|
|
32
|
-
af spawn --soft -p
|
|
31
|
+
af spawn -p 3 # Spawn builder for spec (strict mode, default)
|
|
32
|
+
af spawn --soft -p 3 # Spawn builder (soft mode)
|
|
33
33
|
af spawn --issue 42 # Spawn builder for a bugfix
|
|
34
|
-
af spawn -p
|
|
34
|
+
af spawn -p 3 --resume # Resume builder in existing worktree
|
|
35
35
|
af status # Check all builder status
|
|
36
|
-
af cleanup --project
|
|
37
|
-
af cleanup --project
|
|
36
|
+
af cleanup --project 3 # Clean up builder worktree (safe)
|
|
37
|
+
af cleanup --project 3 -f # Force cleanup
|
|
38
38
|
```
|
|
39
39
|
|
|
40
40
|
### Resuming Builders
|
|
@@ -43,10 +43,10 @@ When a builder's Claude process dies but the worktree and porch state survive,
|
|
|
43
43
|
use `--resume` to restart it without recreating the worktree:
|
|
44
44
|
|
|
45
45
|
```bash
|
|
46
|
-
af spawn -p
|
|
46
|
+
af spawn -p 3 --resume
|
|
47
47
|
```
|
|
48
48
|
|
|
49
|
-
This reuses the existing `.builders/
|
|
49
|
+
This reuses the existing `.builders/3` worktree, creates a fresh terminal
|
|
50
50
|
session registered with the Tower (so it appears in the dashboard), and lets
|
|
51
51
|
porch pick up from whatever phase the builder was in. Works with all spawn
|
|
52
52
|
modes: `-p`, `--issue`, `--task`, `--protocol`, `--worktree`.
|
|
@@ -77,5 +77,5 @@ Roles are markdown files in `codev/roles/`. Create your own by adding `.md` file
|
|
|
77
77
|
|
|
78
78
|
- The `-m` flag is **required** — `consult pr 42` will fail without it
|
|
79
79
|
- PR numbers are GitHub PR numbers, not spec numbers
|
|
80
|
-
- Spec/plan numbers match the `
|
|
80
|
+
- Spec/plan numbers match the `42` prefix in filenames (pass just `42`, not `42`)
|
|
81
81
|
- General queries must be **quoted**: `consult -m gemini general "your question here"`
|
package/skeleton/builders.md
CHANGED
|
@@ -18,8 +18,8 @@ Track active builder agents here. Update manually or via `architect status`.
|
|
|
18
18
|
<!-- Add builders below as they are spawned -->
|
|
19
19
|
|
|
20
20
|
<!-- Example:
|
|
21
|
-
## Builder
|
|
22
|
-
- **Branch**: builder/
|
|
21
|
+
## Builder 3: Feature Name
|
|
22
|
+
- **Branch**: builder/3-feature-name
|
|
23
23
|
- **Port**: 7681
|
|
24
24
|
- **Status**: implementing
|
|
25
25
|
- **Phase**: 2/4
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
# Maintenance run files go here
|
|
2
|
-
# Files are numbered:
|
|
2
|
+
# Files are numbered: 1-maintenance.md, 2-maintenance.md, etc.
|
|
@@ -10,7 +10,7 @@ Write a detailed specification for the assigned project. The spec must be comple
|
|
|
10
10
|
|
|
11
11
|
Read these files to understand the task:
|
|
12
12
|
1. `codev/status/{project-id}-*.md` - Current project state and any notes
|
|
13
|
-
2.
|
|
13
|
+
2. The GitHub Issue for this project (if available)
|
|
14
14
|
3. Any existing context files mentioned in the project entry
|
|
15
15
|
|
|
16
16
|
## Output Requirements
|
|
@@ -54,21 +54,32 @@ consult --model claude pr <PR_NUMBER> &
|
|
|
54
54
|
|
|
55
55
|
All three should run in the background (`run_in_background: true`).
|
|
56
56
|
|
|
57
|
-
### 3. Address Feedback
|
|
57
|
+
### 3. Wait for Results and Address Feedback
|
|
58
58
|
|
|
59
|
-
|
|
59
|
+
**DO NOT proceed to step 4 until ALL THREE consultations have returned results.**
|
|
60
|
+
|
|
61
|
+
Wait for each background consultation to complete, then read the results:
|
|
62
|
+
- Use `TaskOutput` (with `block: true`) to retrieve each consultation result
|
|
63
|
+
- Record each model's verdict (APPROVE or REQUEST_CHANGES)
|
|
60
64
|
- Fix any issues identified by reviewers
|
|
61
65
|
- Push updates to the PR branch
|
|
62
66
|
- Re-run CMAP if substantial changes were made
|
|
63
67
|
|
|
68
|
+
You must have three concrete verdicts (e.g., "gemini: APPROVE, codex: APPROVE, claude: APPROVE") before continuing.
|
|
69
|
+
|
|
64
70
|
### 4. Notify Architect
|
|
65
71
|
|
|
66
|
-
|
|
72
|
+
**DO NOT send this notification until you have all three CMAP verdicts from step 3.**
|
|
73
|
+
|
|
74
|
+
Send a **single** notification that includes the PR link and each model's verdict:
|
|
67
75
|
|
|
68
76
|
```bash
|
|
69
|
-
af send architect "PR #<number> ready for review (fixes issue #{{issue.number}})"
|
|
77
|
+
af send architect "PR #<number> ready for review (fixes issue #{{issue.number}}). CMAP: gemini=<APPROVE|REQUEST_CHANGES>, codex=<APPROVE|REQUEST_CHANGES>, claude=<APPROVE|REQUEST_CHANGES>"
|
|
70
78
|
```
|
|
71
79
|
|
|
80
|
+
**This is the only notification you send.** After this, your work is done — the architect
|
|
81
|
+
takes it from here (reviews, merges, cleans up).
|
|
82
|
+
|
|
72
83
|
## Signals
|
|
73
84
|
|
|
74
85
|
When PR is created and reviews are complete:
|
|
@@ -16,13 +16,13 @@ Disciplined experimentation: Each experiment gets its own directory with `notes.
|
|
|
16
16
|
|
|
17
17
|
```
|
|
18
18
|
experiments/
|
|
19
|
-
├──
|
|
19
|
+
├── 1_descriptive_name/
|
|
20
20
|
│ ├── notes.md # Goal, code, results
|
|
21
21
|
│ ├── experiment.py # Your experiment code
|
|
22
22
|
│ └── data/
|
|
23
23
|
│ ├── input/ # Input data
|
|
24
24
|
│ └── output/ # Results, plots, etc.
|
|
25
|
-
└──
|
|
25
|
+
└── 2_another_experiment/
|
|
26
26
|
├── notes.md
|
|
27
27
|
└── ...
|
|
28
28
|
```
|
|
@@ -33,8 +33,8 @@ experiments/
|
|
|
33
33
|
|
|
34
34
|
```bash
|
|
35
35
|
# Create numbered directory
|
|
36
|
-
mkdir -p experiments/
|
|
37
|
-
cd experiments/
|
|
36
|
+
mkdir -p experiments/1_experiment_name
|
|
37
|
+
cd experiments/1_experiment_name
|
|
38
38
|
|
|
39
39
|
# Initialize notes.md from template
|
|
40
40
|
cp codev/protocols/experiment/templates/notes.md notes.md
|
|
@@ -81,8 +81,8 @@ Update `notes.md` with:
|
|
|
81
81
|
### 6. Commit
|
|
82
82
|
|
|
83
83
|
```bash
|
|
84
|
-
git add experiments/
|
|
85
|
-
git commit -m "[Experiment
|
|
84
|
+
git add experiments/1_experiment_name/
|
|
85
|
+
git commit -m "[Experiment 1] Brief description of findings"
|
|
86
86
|
```
|
|
87
87
|
|
|
88
88
|
## notes.md Template
|
|
@@ -152,8 +152,8 @@ Example spec reference:
|
|
|
152
152
|
```markdown
|
|
153
153
|
## Background
|
|
154
154
|
|
|
155
|
-
Experiment
|
|
156
|
-
See: experiments/
|
|
155
|
+
Experiment 5 validated that [approach] achieves [results].
|
|
156
|
+
See: experiments/5_validation_test/notes.md
|
|
157
157
|
```
|
|
158
158
|
|
|
159
159
|
### Experiment → TICK
|
|
@@ -164,22 +164,22 @@ For small, validated changes discovered during experimentation:
|
|
|
164
164
|
## Numbering Convention
|
|
165
165
|
|
|
166
166
|
Use four-digit sequential numbering (consistent with project list):
|
|
167
|
-
- `
|
|
167
|
+
- `1_`, `2_`, `3_`...
|
|
168
168
|
- Shared sequence across all experiments
|
|
169
169
|
- Descriptive name after the number (snake_case)
|
|
170
170
|
|
|
171
171
|
Examples:
|
|
172
|
-
- `
|
|
173
|
-
- `
|
|
174
|
-
- `
|
|
172
|
+
- `1_api_response_caching`
|
|
173
|
+
- `2_model_comparison`
|
|
174
|
+
- `3_performance_baseline`
|
|
175
175
|
|
|
176
176
|
## Git Workflow
|
|
177
177
|
|
|
178
178
|
### Commits
|
|
179
179
|
```
|
|
180
|
-
[Experiment
|
|
181
|
-
[Experiment
|
|
182
|
-
[Experiment
|
|
180
|
+
[Experiment 1] Initial setup and goal
|
|
181
|
+
[Experiment 1] Add baseline measurements
|
|
182
|
+
[Experiment 1] Complete - caching improves latency 40%
|
|
183
183
|
```
|
|
184
184
|
|
|
185
185
|
### When to Commit
|
|
@@ -196,7 +196,7 @@ Examples:
|
|
|
196
196
|
## Example Experiment
|
|
197
197
|
|
|
198
198
|
```
|
|
199
|
-
experiments/
|
|
199
|
+
experiments/1_caching_strategy/
|
|
200
200
|
├── notes.md
|
|
201
201
|
├── benchmark.py
|
|
202
202
|
├── cache_test.py
|
|
@@ -210,7 +210,7 @@ experiments/0001_caching_strategy/
|
|
|
210
210
|
|
|
211
211
|
**notes.md excerpt:**
|
|
212
212
|
```markdown
|
|
213
|
-
# Experiment
|
|
213
|
+
# Experiment 1: Caching Strategy Evaluation
|
|
214
214
|
|
|
215
215
|
**Status**: Complete
|
|
216
216
|
|
|
@@ -56,7 +56,7 @@ grep -E "src/|packages/" codev/resources/arch.md | head -20
|
|
|
56
56
|
|
|
57
57
|
### 5. Create Audit Report
|
|
58
58
|
|
|
59
|
-
Create a maintenance run file: `codev/maintain/
|
|
59
|
+
Create a maintenance run file: `codev/maintain/NNN.md`
|
|
60
60
|
|
|
61
61
|
Document:
|
|
62
62
|
- Dead code identified (with file paths)
|
|
@@ -66,7 +66,7 @@ Document:
|
|
|
66
66
|
|
|
67
67
|
Use the template structure:
|
|
68
68
|
```markdown
|
|
69
|
-
# Maintenance Run
|
|
69
|
+
# Maintenance Run NNN
|
|
70
70
|
|
|
71
71
|
**Date**: YYYY-MM-DD
|
|
72
72
|
**Base Commit**: <commit-hash>
|
|
@@ -63,7 +63,7 @@ Recommended focus areas for next run:
|
|
|
63
63
|
```bash
|
|
64
64
|
git push origin HEAD
|
|
65
65
|
|
|
66
|
-
gh pr create --title "[Maintain] Codebase maintenance run
|
|
66
|
+
gh pr create --title "[Maintain] Codebase maintenance run NNN" --body "$(cat <<'EOF'
|
|
67
67
|
## Summary
|
|
68
68
|
|
|
69
69
|
- Dead code removal
|
|
@@ -57,8 +57,8 @@ Each maintenance run creates a numbered file in `codev/maintain/`:
|
|
|
57
57
|
|
|
58
58
|
```
|
|
59
59
|
codev/maintain/
|
|
60
|
-
├──
|
|
61
|
-
├──
|
|
60
|
+
├── 1.md
|
|
61
|
+
├── 2.md
|
|
62
62
|
└── ...
|
|
63
63
|
```
|
|
64
64
|
|
|
@@ -111,8 +111,7 @@ ruff check --select F401 # Find unused imports
|
|
|
111
111
|
|
|
112
112
|
| Task | Parallelizable | Human Review? | Description |
|
|
113
113
|
|------|----------------|---------------|-------------|
|
|
114
|
-
| Update
|
|
115
|
-
| Archive terminal projects | Yes | No | Move completed/abandoned to terminal section |
|
|
114
|
+
| Update GitHub Issue statuses | Yes | No | Close completed issues, update labels |
|
|
116
115
|
|
|
117
116
|
### Framework Tasks
|
|
118
117
|
|
|
@@ -285,15 +284,15 @@ Extract actionable wisdom from review documents into `codev/resources/lessons-le
|
|
|
285
284
|
# Lessons Learned
|
|
286
285
|
|
|
287
286
|
## Testing
|
|
288
|
-
- [From
|
|
289
|
-
- [From
|
|
287
|
+
- [From 1] Always use XDG sandboxing in tests to avoid touching real $HOME
|
|
288
|
+
- [From 9] Verify dependencies actually export what you expect
|
|
290
289
|
|
|
291
290
|
## Architecture
|
|
292
|
-
- [From
|
|
293
|
-
- [From
|
|
291
|
+
- [From 8] Single source of truth beats distributed state
|
|
292
|
+
- [From 31] SQLite with WAL mode handles concurrency better than JSON files
|
|
294
293
|
|
|
295
294
|
## Process
|
|
296
|
-
- [From
|
|
295
|
+
- [From 1] Multi-agent consultation catches issues humans miss
|
|
297
296
|
```
|
|
298
297
|
|
|
299
298
|
### Sync CLAUDE.md ↔ AGENTS.md
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Maintenance Run
|
|
1
|
+
# Maintenance Run NNN
|
|
2
2
|
|
|
3
3
|
## Metadata
|
|
4
4
|
- **Date**: YYYY-MM-DD
|
|
@@ -30,7 +30,7 @@ git log --oneline <last-maint-commit>..HEAD
|
|
|
30
30
|
|
|
31
31
|
### Framework
|
|
32
32
|
- [ ] codev update
|
|
33
|
-
- [ ]
|
|
33
|
+
- [ ] GitHub Issue status updates (close completed, update labels)
|
|
34
34
|
|
|
35
35
|
## Findings
|
|
36
36
|
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"models": ["gemini", "codex", "claude"],
|
|
25
25
|
"parallel": true
|
|
26
26
|
},
|
|
27
|
-
"max_iterations":
|
|
27
|
+
"max_iterations": 1,
|
|
28
28
|
"on_complete": {
|
|
29
29
|
"commit": true,
|
|
30
30
|
"push": true
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
"models": ["gemini", "codex", "claude"],
|
|
47
47
|
"parallel": true
|
|
48
48
|
},
|
|
49
|
-
"max_iterations":
|
|
49
|
+
"max_iterations": 1,
|
|
50
50
|
"on_complete": {
|
|
51
51
|
"commit": true,
|
|
52
52
|
"push": true
|
|
@@ -73,7 +73,7 @@
|
|
|
73
73
|
"models": ["gemini", "codex", "claude"],
|
|
74
74
|
"parallel": true
|
|
75
75
|
},
|
|
76
|
-
"max_iterations":
|
|
76
|
+
"max_iterations": 1,
|
|
77
77
|
"on_complete": {
|
|
78
78
|
"commit": true,
|
|
79
79
|
"push": true
|
|
@@ -110,7 +110,7 @@
|
|
|
110
110
|
"models": ["gemini", "codex", "claude"],
|
|
111
111
|
"parallel": true
|
|
112
112
|
},
|
|
113
|
-
"max_iterations":
|
|
113
|
+
"max_iterations": 1,
|
|
114
114
|
"on_complete": {
|
|
115
115
|
"commit": true,
|
|
116
116
|
"push": true
|
|
@@ -147,7 +147,7 @@
|
|
|
147
147
|
},
|
|
148
148
|
"defaults": {
|
|
149
149
|
"mode": "strict",
|
|
150
|
-
"max_iterations":
|
|
150
|
+
"max_iterations": 1,
|
|
151
151
|
"verify": {
|
|
152
152
|
"models": ["gemini", "codex", "claude"],
|
|
153
153
|
"parallel": true
|
|
@@ -553,9 +553,9 @@ Execute for each phase in the plan. Each phase follows a build-verify cycle.
|
|
|
553
553
|
|
|
554
554
|
### Specifications and Plans
|
|
555
555
|
Format: `####-descriptive-name.md`
|
|
556
|
-
- Use sequential numbering (
|
|
556
|
+
- Use sequential numbering (1, 2, etc.)
|
|
557
557
|
- Same filename in both `specs/` and `plans/` directories
|
|
558
|
-
- Example: `
|
|
558
|
+
- Example: `1-user-authentication.md`
|
|
559
559
|
|
|
560
560
|
## Status Tracking
|
|
561
561
|
|
|
@@ -578,10 +578,10 @@ For specification/plan documents:
|
|
|
578
578
|
|
|
579
579
|
Examples:
|
|
580
580
|
```
|
|
581
|
-
[Spec
|
|
582
|
-
[Spec
|
|
583
|
-
[Spec
|
|
584
|
-
[Spec
|
|
581
|
+
[Spec 1] Initial specification draft
|
|
582
|
+
[Spec 1] Specification with multi-agent review
|
|
583
|
+
[Spec 1] Specification with user feedback
|
|
584
|
+
[Spec 1] Final approved specification
|
|
585
585
|
```
|
|
586
586
|
|
|
587
587
|
For implementation:
|
|
@@ -593,7 +593,7 @@ For implementation:
|
|
|
593
593
|
|
|
594
594
|
Example:
|
|
595
595
|
```
|
|
596
|
-
[Spec
|
|
596
|
+
[Spec 1][Phase: user-auth] feat: Add password hashing service
|
|
597
597
|
|
|
598
598
|
Implements bcrypt-based password hashing with configurable rounds
|
|
599
599
|
```
|
|
@@ -605,7 +605,7 @@ spir/####-<spec-name>/<phase-name>
|
|
|
605
605
|
|
|
606
606
|
Example:
|
|
607
607
|
```
|
|
608
|
-
spir/
|
|
608
|
+
spir/1-user-authentication/database-schema
|
|
609
609
|
```
|
|
610
610
|
|
|
611
611
|
|
|
@@ -50,7 +50,7 @@ TICK is an **amendment workflow** for existing SPIR specifications. Rather than
|
|
|
50
50
|
**Example**:
|
|
51
51
|
```
|
|
52
52
|
User: "Use TICK to add password reset to the auth system"
|
|
53
|
-
Agent finds: specs/
|
|
53
|
+
Agent finds: specs/2-user-authentication.md (status: integrated)
|
|
54
54
|
Agent determines: Next TICK is TICK-001 (first amendment)
|
|
55
55
|
```
|
|
56
56
|
|
|
@@ -58,7 +58,7 @@ Agent determines: Next TICK is TICK-001 (first amendment)
|
|
|
58
58
|
|
|
59
59
|
**Agent Actions**:
|
|
60
60
|
1. Analyze what needs to change in the spec
|
|
61
|
-
2. Update relevant sections of `specs
|
|
61
|
+
2. Update relevant sections of `specs/NNN-name.md`:
|
|
62
62
|
- Problem Statement (if scope expands)
|
|
63
63
|
- Success Criteria (if new criteria added)
|
|
64
64
|
- Solution Approaches (if design changes)
|
|
@@ -78,14 +78,14 @@ Agent determines: Next TICK is TICK-001 (first amendment)
|
|
|
78
78
|
**Plan Changes**:
|
|
79
79
|
- [Phase/steps]: [What was added/modified]
|
|
80
80
|
|
|
81
|
-
**Review**: See `reviews
|
|
81
|
+
**Review**: See `reviews/NNN-name-tick-001.md`
|
|
82
82
|
```
|
|
83
|
-
4. **COMMIT**: `[TICK
|
|
83
|
+
4. **COMMIT**: `[TICK NNN-NNN] Spec: [description]`
|
|
84
84
|
|
|
85
85
|
### Phase 3: Planning Amendment (Autonomous)
|
|
86
86
|
|
|
87
87
|
**Agent Actions**:
|
|
88
|
-
1. Update `plans
|
|
88
|
+
1. Update `plans/NNN-name.md` with new implementation steps
|
|
89
89
|
2. Add/modify phases as needed
|
|
90
90
|
3. Add entry to "Amendment History" section at bottom:
|
|
91
91
|
```markdown
|
|
@@ -95,9 +95,9 @@ Agent determines: Next TICK is TICK-001 (first amendment)
|
|
|
95
95
|
- [Phase added]: [Description]
|
|
96
96
|
- [Implementation steps]: [What was updated]
|
|
97
97
|
|
|
98
|
-
**Review**: See `reviews
|
|
98
|
+
**Review**: See `reviews/NNN-name-tick-001.md`
|
|
99
99
|
```
|
|
100
|
-
4. **COMMIT**: `[TICK
|
|
100
|
+
4. **COMMIT**: `[TICK NNN-NNN] Plan: [description]`
|
|
101
101
|
|
|
102
102
|
### Phase 4: Implementation (Autonomous)
|
|
103
103
|
|
|
@@ -105,12 +105,12 @@ Agent determines: Next TICK is TICK-001 (first amendment)
|
|
|
105
105
|
1. Execute implementation steps from the plan
|
|
106
106
|
2. Write code following fail-fast principles
|
|
107
107
|
3. Test functionality
|
|
108
|
-
4. **COMMIT**: `[TICK
|
|
108
|
+
4. **COMMIT**: `[TICK NNN-NNN] Impl: [description]`
|
|
109
109
|
|
|
110
110
|
### Phase 5: Review (User Checkpoint)
|
|
111
111
|
|
|
112
112
|
**Agent Actions**:
|
|
113
|
-
1. Create review document: `reviews
|
|
113
|
+
1. Create review document: `reviews/NNN-name-tick-NNN.md`
|
|
114
114
|
- What was amended and why
|
|
115
115
|
- Changes made to spec and plan
|
|
116
116
|
- Implementation challenges
|
|
@@ -120,7 +120,7 @@ Agent determines: Next TICK is TICK-001 (first amendment)
|
|
|
120
120
|
- Focus: Code quality, missed issues, improvements
|
|
121
121
|
- Update review with consultation feedback
|
|
122
122
|
3. **Update Architecture Documentation** (if applicable)
|
|
123
|
-
4. **COMMIT**: `[TICK
|
|
123
|
+
4. **COMMIT**: `[TICK NNN-NNN] Review: [description]`
|
|
124
124
|
5. **PRESENT TO USER**: Show summary with consultation insights
|
|
125
125
|
|
|
126
126
|
**User Actions**:
|
|
@@ -130,7 +130,7 @@ Agent determines: Next TICK is TICK-001 (first amendment)
|
|
|
130
130
|
|
|
131
131
|
**If Changes Requested**:
|
|
132
132
|
- Agent makes changes
|
|
133
|
-
- Commits: `[TICK
|
|
133
|
+
- Commits: `[TICK NNN-NNN] Fixes: [description]`
|
|
134
134
|
- Updates review document
|
|
135
135
|
- Repeats until user approval
|
|
136
136
|
|
|
@@ -140,9 +140,9 @@ TICK amendments modify existing files and create new review files:
|
|
|
140
140
|
|
|
141
141
|
| File Type | Pattern | Example |
|
|
142
142
|
|-----------|---------|---------|
|
|
143
|
-
| Spec (modified) | `specs
|
|
144
|
-
| Plan (modified) | `plans
|
|
145
|
-
| Review (new) | `reviews
|
|
143
|
+
| Spec (modified) | `specs/NNN-name.md` | `specs/2-user-authentication.md` |
|
|
144
|
+
| Plan (modified) | `plans/NNN-name.md` | `plans/2-user-authentication.md` |
|
|
145
|
+
| Review (new) | `reviews/NNN-name-tick-NNN.md` | `reviews/2-user-authentication-tick-001.md` |
|
|
146
146
|
|
|
147
147
|
**Note**: Spec and plan files are modified in-place. Only the review file is new.
|
|
148
148
|
|
|
@@ -151,16 +151,16 @@ TICK amendments modify existing files and create new review files:
|
|
|
151
151
|
**TICK commits reference the parent spec and TICK number**:
|
|
152
152
|
|
|
153
153
|
```
|
|
154
|
-
[TICK
|
|
155
|
-
[TICK
|
|
156
|
-
[TICK
|
|
157
|
-
[TICK
|
|
158
|
-
[TICK
|
|
154
|
+
[TICK 2-001] Spec: Add password reset feature
|
|
155
|
+
[TICK 2-001] Plan: Add password reset implementation
|
|
156
|
+
[TICK 2-001] Impl: Add password reset feature
|
|
157
|
+
[TICK 2-001] Review: Password reset implementation
|
|
158
|
+
[TICK 2-001] Fixes: Address review feedback
|
|
159
159
|
```
|
|
160
160
|
|
|
161
|
-
The format `[TICK
|
|
162
|
-
-
|
|
163
|
-
-
|
|
161
|
+
The format `[TICK <parent>-<tick>]` identifies:
|
|
162
|
+
- `<parent>`: Parent spec number (e.g., 2)
|
|
163
|
+
- `<tick>`: TICK amendment number (e.g., 001, 002, 003)
|
|
164
164
|
|
|
165
165
|
## Key Differences from SPIR
|
|
166
166
|
|
|
@@ -168,7 +168,7 @@ The format `[TICK ####-NNN]` identifies:
|
|
|
168
168
|
|--------|--------|------|
|
|
169
169
|
| Purpose | Create new features | Amend existing features |
|
|
170
170
|
| File creation | Creates new spec/plan/review | Modifies spec/plan, creates review |
|
|
171
|
-
| Sequential numbering | Gets new number (
|
|
171
|
+
| Sequential numbering | Gets new number (1, 2) | Uses parent's number (2-001) |
|
|
172
172
|
| Scope | Any size | < 300 lines typically |
|
|
173
173
|
| Prerequisites | None | Existing integrated spec required |
|
|
174
174
|
| User checkpoints | Multiple (spec, plan, phases) | Two (start, end) |
|
|
@@ -195,24 +195,24 @@ Is there an existing spec to amend?
|
|
|
195
195
|
**User**: "Add password reset to the user authentication system"
|
|
196
196
|
|
|
197
197
|
**Agent**:
|
|
198
|
-
1. **Identify**: Finds `specs/
|
|
198
|
+
1. **Identify**: Finds `specs/2-user-authentication.md` (integrated)
|
|
199
199
|
2. **Amend Spec** (30 seconds):
|
|
200
200
|
- Updates Success Criteria with password reset requirements
|
|
201
201
|
- Adds TICK-001 entry to Amendments section
|
|
202
|
-
- Commit: `[TICK
|
|
202
|
+
- Commit: `[TICK 2-001] Spec: Add password reset feature`
|
|
203
203
|
3. **Amend Plan** (30 seconds):
|
|
204
204
|
- Adds Phase 4: Password Reset Email Service
|
|
205
205
|
- Adds TICK-001 entry to Amendment History
|
|
206
|
-
- Commit: `[TICK
|
|
206
|
+
- Commit: `[TICK 2-001] Plan: Add password reset implementation`
|
|
207
207
|
4. **Implement** (2 minutes):
|
|
208
208
|
- Creates password reset endpoint
|
|
209
209
|
- Implements email service
|
|
210
210
|
- Tests functionality
|
|
211
|
-
- Commit: `[TICK
|
|
211
|
+
- Commit: `[TICK 2-001] Impl: Add password reset feature`
|
|
212
212
|
5. **Review** (1 minute):
|
|
213
|
-
- Creates `reviews/
|
|
213
|
+
- Creates `reviews/2-user-authentication-tick-001.md`
|
|
214
214
|
- Runs 3-way consultation (Gemini, Codex, Claude)
|
|
215
|
-
- Commit: `[TICK
|
|
215
|
+
- Commit: `[TICK 2-001] Review: Password reset implementation`
|
|
216
216
|
- Shows user the completed work
|
|
217
217
|
|
|
218
218
|
**Total Time**: ~4 minutes for simple amendment
|
|
@@ -243,8 +243,8 @@ Existing standalone TICK projects (created before this protocol change) are gran
|
|
|
243
243
|
**Optional Migration** (if desired):
|
|
244
244
|
1. Identify the "parent spec" the TICK logically extends
|
|
245
245
|
2. Move TICK content into an amendment entry in the parent spec
|
|
246
|
-
3. Archive the standalone files with a note: "Migrated to spec
|
|
247
|
-
4. Update
|
|
246
|
+
3. Archive the standalone files with a note: "Migrated to spec NNN as TICK-NNN"
|
|
247
|
+
4. Update the GitHub Issue to reflect the change
|
|
248
248
|
|
|
249
249
|
## Benefits
|
|
250
250
|
|