@cluesmith/codev 3.2.4 → 3.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dashboard-dist/assets/index-BZRTEMtH.css +32 -0
- package/dashboard-dist/assets/{index-BZ1x7x1X.js → index-JCbkpAcV.js} +33 -33
- package/dashboard-dist/assets/index-JCbkpAcV.js.map +1 -0
- package/dashboard-dist/index.html +2 -2
- package/dist/agent-farm/cli.d.ts.map +1 -1
- package/dist/agent-farm/cli.js +142 -0
- package/dist/agent-farm/cli.js.map +1 -1
- package/dist/agent-farm/commands/cleanup.d.ts.map +1 -1
- package/dist/agent-farm/commands/cleanup.js +16 -0
- package/dist/agent-farm/commands/cleanup.js.map +1 -1
- package/dist/agent-farm/commands/inbox.d.ts +42 -0
- package/dist/agent-farm/commands/inbox.d.ts.map +1 -0
- package/dist/agent-farm/commands/inbox.js +129 -0
- package/dist/agent-farm/commands/inbox.js.map +1 -0
- package/dist/agent-farm/commands/interrupt.d.ts +20 -0
- package/dist/agent-farm/commands/interrupt.d.ts.map +1 -0
- package/dist/agent-farm/commands/interrupt.js +65 -0
- package/dist/agent-farm/commands/interrupt.js.map +1 -0
- package/dist/agent-farm/commands/reset/constants.d.ts +52 -0
- package/dist/agent-farm/commands/reset/constants.d.ts.map +1 -0
- package/dist/agent-farm/commands/reset/constants.js +52 -0
- package/dist/agent-farm/commands/reset/constants.js.map +1 -0
- package/dist/agent-farm/commands/reset/context.d.ts +230 -0
- package/dist/agent-farm/commands/reset/context.d.ts.map +1 -0
- package/dist/agent-farm/commands/reset/context.js +428 -0
- package/dist/agent-farm/commands/reset/context.js.map +1 -0
- package/dist/agent-farm/commands/reset/index.d.ts +192 -0
- package/dist/agent-farm/commands/reset/index.d.ts.map +1 -0
- package/dist/agent-farm/commands/reset/index.js +488 -0
- package/dist/agent-farm/commands/reset/index.js.map +1 -0
- package/dist/agent-farm/commands/reset/receipt.d.ts +97 -0
- package/dist/agent-farm/commands/reset/receipt.d.ts.map +1 -0
- package/dist/agent-farm/commands/reset/receipt.js +149 -0
- package/dist/agent-farm/commands/reset/receipt.js.map +1 -0
- package/dist/agent-farm/commands/reset/reorient.d.ts +117 -0
- package/dist/agent-farm/commands/reset/reorient.d.ts.map +1 -0
- package/dist/agent-farm/commands/reset/reorient.js +313 -0
- package/dist/agent-farm/commands/reset/reorient.js.map +1 -0
- package/dist/agent-farm/commands/reset.d.ts +19 -0
- package/dist/agent-farm/commands/reset.d.ts.map +1 -0
- package/dist/agent-farm/commands/reset.js +292 -0
- package/dist/agent-farm/commands/reset.js.map +1 -0
- package/dist/agent-farm/commands/send.d.ts.map +1 -1
- package/dist/agent-farm/commands/send.js +49 -8
- package/dist/agent-farm/commands/send.js.map +1 -1
- package/dist/agent-farm/commands/spawn-worktree.d.ts +105 -6
- package/dist/agent-farm/commands/spawn-worktree.d.ts.map +1 -1
- package/dist/agent-farm/commands/spawn-worktree.js +289 -66
- package/dist/agent-farm/commands/spawn-worktree.js.map +1 -1
- package/dist/agent-farm/commands/spawn.d.ts.map +1 -1
- package/dist/agent-farm/commands/spawn.js +13 -1
- package/dist/agent-farm/commands/spawn.js.map +1 -1
- package/dist/agent-farm/commands/status.d.ts.map +1 -1
- package/dist/agent-farm/commands/status.js +80 -8
- package/dist/agent-farm/commands/status.js.map +1 -1
- package/dist/agent-farm/db/index.d.ts +1 -1
- package/dist/agent-farm/db/index.d.ts.map +1 -1
- package/dist/agent-farm/db/index.js +80 -1
- package/dist/agent-farm/db/index.js.map +1 -1
- package/dist/agent-farm/db/mailbox.d.ts +222 -0
- package/dist/agent-farm/db/mailbox.d.ts.map +1 -0
- package/dist/agent-farm/db/mailbox.js +304 -0
- package/dist/agent-farm/db/mailbox.js.map +1 -0
- 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 +35 -0
- package/dist/agent-farm/db/schema.js.map +1 -1
- package/dist/agent-farm/db/types.d.ts +45 -0
- package/dist/agent-farm/db/types.d.ts.map +1 -1
- package/dist/agent-farm/db/types.js.map +1 -1
- package/dist/agent-farm/lib/builder-lookup.d.ts +1 -1
- package/dist/agent-farm/lib/builder-lookup.js +2 -2
- package/dist/agent-farm/lib/builder-lookup.js.map +1 -1
- package/dist/agent-farm/lib/reconnect-backoff.d.ts +54 -0
- package/dist/agent-farm/lib/reconnect-backoff.d.ts.map +1 -0
- package/dist/agent-farm/lib/reconnect-backoff.js +47 -0
- package/dist/agent-farm/lib/reconnect-backoff.js.map +1 -0
- package/dist/agent-farm/lib/tower-client.d.ts +16 -6
- package/dist/agent-farm/lib/tower-client.d.ts.map +1 -1
- package/dist/agent-farm/lib/tower-client.js +37 -6
- package/dist/agent-farm/lib/tower-client.js.map +1 -1
- package/dist/agent-farm/lib/tunnel-client.d.ts +69 -1
- package/dist/agent-farm/lib/tunnel-client.d.ts.map +1 -1
- package/dist/agent-farm/lib/tunnel-client.js +218 -27
- package/dist/agent-farm/lib/tunnel-client.js.map +1 -1
- package/dist/agent-farm/servers/cron-delivery.d.ts +72 -0
- package/dist/agent-farm/servers/cron-delivery.d.ts.map +1 -0
- package/dist/agent-farm/servers/cron-delivery.js +80 -0
- package/dist/agent-farm/servers/cron-delivery.js.map +1 -0
- package/dist/agent-farm/servers/delayed-send.d.ts +85 -0
- package/dist/agent-farm/servers/delayed-send.d.ts.map +1 -0
- package/dist/agent-farm/servers/delayed-send.js +165 -0
- package/dist/agent-farm/servers/delayed-send.js.map +1 -0
- package/dist/agent-farm/servers/gate-profiles.d.ts +67 -0
- package/dist/agent-farm/servers/gate-profiles.d.ts.map +1 -0
- package/dist/agent-farm/servers/gate-profiles.js +113 -0
- package/dist/agent-farm/servers/gate-profiles.js.map +1 -0
- package/dist/agent-farm/servers/mailbox-delivery.d.ts +370 -0
- package/dist/agent-farm/servers/mailbox-delivery.d.ts.map +1 -0
- package/dist/agent-farm/servers/mailbox-delivery.js +617 -0
- package/dist/agent-farm/servers/mailbox-delivery.js.map +1 -0
- package/dist/agent-farm/servers/mailbox-wiring.d.ts +125 -0
- package/dist/agent-farm/servers/mailbox-wiring.d.ts.map +1 -0
- package/dist/agent-farm/servers/mailbox-wiring.js +425 -0
- package/dist/agent-farm/servers/mailbox-wiring.js.map +1 -0
- package/dist/agent-farm/servers/message-write.d.ts +53 -1
- package/dist/agent-farm/servers/message-write.d.ts.map +1 -1
- package/dist/agent-farm/servers/message-write.js +63 -0
- package/dist/agent-farm/servers/message-write.js.map +1 -1
- package/dist/agent-farm/servers/overview.d.ts.map +1 -1
- package/dist/agent-farm/servers/overview.js +23 -4
- package/dist/agent-farm/servers/overview.js.map +1 -1
- package/dist/agent-farm/servers/render-gate.d.ts +141 -0
- package/dist/agent-farm/servers/render-gate.d.ts.map +1 -0
- package/dist/agent-farm/servers/render-gate.js +251 -0
- package/dist/agent-farm/servers/render-gate.js.map +1 -0
- package/dist/agent-farm/servers/session-submit.d.ts +90 -0
- package/dist/agent-farm/servers/session-submit.d.ts.map +1 -0
- package/dist/agent-farm/servers/session-submit.js +127 -0
- package/dist/agent-farm/servers/session-submit.js.map +1 -0
- package/dist/agent-farm/servers/tower-cron.d.ts +10 -7
- package/dist/agent-farm/servers/tower-cron.d.ts.map +1 -1
- package/dist/agent-farm/servers/tower-cron.js +58 -53
- package/dist/agent-farm/servers/tower-cron.js.map +1 -1
- package/dist/agent-farm/servers/tower-instances.d.ts +14 -2
- package/dist/agent-farm/servers/tower-instances.d.ts.map +1 -1
- package/dist/agent-farm/servers/tower-instances.js +78 -16
- package/dist/agent-farm/servers/tower-instances.js.map +1 -1
- package/dist/agent-farm/servers/tower-messages.d.ts +38 -1
- package/dist/agent-farm/servers/tower-messages.d.ts.map +1 -1
- package/dist/agent-farm/servers/tower-messages.js +106 -1
- package/dist/agent-farm/servers/tower-messages.js.map +1 -1
- package/dist/agent-farm/servers/tower-routes.d.ts +16 -4
- package/dist/agent-farm/servers/tower-routes.d.ts.map +1 -1
- package/dist/agent-farm/servers/tower-routes.js +670 -105
- package/dist/agent-farm/servers/tower-routes.js.map +1 -1
- package/dist/agent-farm/servers/tower-server.js +163 -31
- package/dist/agent-farm/servers/tower-server.js.map +1 -1
- package/dist/agent-farm/servers/tower-terminals.d.ts +17 -2
- package/dist/agent-farm/servers/tower-terminals.d.ts.map +1 -1
- package/dist/agent-farm/servers/tower-terminals.js +104 -122
- package/dist/agent-farm/servers/tower-terminals.js.map +1 -1
- package/dist/agent-farm/servers/tower-tunnel.d.ts.map +1 -1
- package/dist/agent-farm/servers/tower-tunnel.js +63 -4
- package/dist/agent-farm/servers/tower-tunnel.js.map +1 -1
- package/dist/agent-farm/servers/tower-types.d.ts +2 -1
- package/dist/agent-farm/servers/tower-types.d.ts.map +1 -1
- package/dist/agent-farm/servers/tower-utils.d.ts +64 -1
- package/dist/agent-farm/servers/tower-utils.d.ts.map +1 -1
- package/dist/agent-farm/servers/tower-utils.js +168 -1
- package/dist/agent-farm/servers/tower-utils.js.map +1 -1
- package/dist/agent-farm/servers/tower-websocket.d.ts.map +1 -1
- package/dist/agent-farm/servers/tower-websocket.js +6 -21
- package/dist/agent-farm/servers/tower-websocket.js.map +1 -1
- package/dist/agent-farm/servers/write-queue.d.ts +35 -0
- package/dist/agent-farm/servers/write-queue.d.ts.map +1 -0
- package/dist/agent-farm/servers/write-queue.js +56 -0
- package/dist/agent-farm/servers/write-queue.js.map +1 -0
- package/dist/agent-farm/types.d.ts +39 -0
- package/dist/agent-farm/types.d.ts.map +1 -1
- package/dist/agent-farm/utils/agent-names.d.ts +2 -2
- package/dist/agent-farm/utils/agent-names.d.ts.map +1 -1
- package/dist/agent-farm/utils/agent-names.js +3 -3
- package/dist/agent-farm/utils/agent-names.js.map +1 -1
- package/dist/agent-farm/utils/architect-name.d.ts +2 -2
- package/dist/agent-farm/utils/architect-name.d.ts.map +1 -1
- package/dist/agent-farm/utils/architect-name.js +3 -3
- package/dist/agent-farm/utils/architect-name.js.map +1 -1
- package/dist/agent-farm/utils/config.d.ts +13 -0
- package/dist/agent-farm/utils/config.d.ts.map +1 -1
- package/dist/agent-farm/utils/config.js +33 -1
- package/dist/agent-farm/utils/config.js.map +1 -1
- package/dist/agent-farm/utils/harness.d.ts +103 -7
- package/dist/agent-farm/utils/harness.d.ts.map +1 -1
- package/dist/agent-farm/utils/harness.js +126 -19
- package/dist/agent-farm/utils/harness.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +6 -32
- package/dist/cli.js.map +1 -1
- package/dist/commands/consult/cli-options.d.ts +34 -0
- package/dist/commands/consult/cli-options.d.ts.map +1 -0
- package/dist/commands/consult/cli-options.js +67 -0
- package/dist/commands/consult/cli-options.js.map +1 -0
- package/dist/commands/consult/index.d.ts +56 -2
- package/dist/commands/consult/index.d.ts.map +1 -1
- package/dist/commands/consult/index.js +272 -28
- package/dist/commands/consult/index.js.map +1 -1
- package/dist/commands/consult/metrics.d.ts +42 -0
- package/dist/commands/consult/metrics.d.ts.map +1 -1
- package/dist/commands/consult/metrics.js +129 -9
- package/dist/commands/consult/metrics.js.map +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +71 -19
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/porch/checks.d.ts +23 -0
- package/dist/commands/porch/checks.d.ts.map +1 -1
- package/dist/commands/porch/checks.js +60 -0
- package/dist/commands/porch/checks.js.map +1 -1
- package/dist/commands/porch/config.d.ts +20 -0
- package/dist/commands/porch/config.d.ts.map +1 -1
- package/dist/commands/porch/config.js +20 -0
- package/dist/commands/porch/config.js.map +1 -1
- package/dist/commands/porch/index.js +21 -28
- package/dist/commands/porch/index.js.map +1 -1
- package/dist/commands/porch/next.d.ts.map +1 -1
- package/dist/commands/porch/next.js +2 -41
- package/dist/commands/porch/next.js.map +1 -1
- package/dist/lib/config.d.ts +69 -3
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +67 -3
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/consult-lanes.d.ts +149 -0
- package/dist/lib/consult-lanes.d.ts.map +1 -0
- package/dist/lib/consult-lanes.js +360 -0
- package/dist/lib/consult-lanes.js.map +1 -0
- package/dist/lib/github.js +1 -1
- package/dist/lib/github.js.map +1 -1
- package/dist/lib/prompt-behavior-metrics.d.ts +67 -0
- package/dist/lib/prompt-behavior-metrics.d.ts.map +1 -0
- package/dist/lib/prompt-behavior-metrics.js +290 -0
- package/dist/lib/prompt-behavior-metrics.js.map +1 -0
- package/dist/lib/skeleton.d.ts +22 -1
- package/dist/lib/skeleton.d.ts.map +1 -1
- package/dist/lib/skeleton.js +120 -0
- package/dist/lib/skeleton.js.map +1 -1
- package/dist/lib/test-env.d.ts +74 -0
- package/dist/lib/test-env.d.ts.map +1 -0
- package/dist/lib/test-env.js +92 -0
- package/dist/lib/test-env.js.map +1 -0
- package/dist/terminal/pty-manager.d.ts +2 -0
- package/dist/terminal/pty-manager.d.ts.map +1 -1
- package/dist/terminal/pty-manager.js +16 -6
- package/dist/terminal/pty-manager.js.map +1 -1
- package/dist/terminal/pty-session.d.ts +131 -0
- package/dist/terminal/pty-session.d.ts.map +1 -1
- package/dist/terminal/pty-session.js +232 -39
- package/dist/terminal/pty-session.js.map +1 -1
- package/dist/terminal/ring-buffer.d.ts +39 -6
- package/dist/terminal/ring-buffer.d.ts.map +1 -1
- package/dist/terminal/ring-buffer.js +74 -6
- package/dist/terminal/ring-buffer.js.map +1 -1
- package/dist/terminal/session-manager.d.ts +53 -0
- package/dist/terminal/session-manager.d.ts.map +1 -1
- package/dist/terminal/session-manager.js +94 -9
- package/dist/terminal/session-manager.js.map +1 -1
- package/dist/terminal/session-screen.d.ts +91 -0
- package/dist/terminal/session-screen.d.ts.map +1 -0
- package/dist/terminal/session-screen.js +135 -0
- package/dist/terminal/session-screen.js.map +1 -0
- package/dist/terminal/shellper-main.js +2 -1
- package/dist/terminal/shellper-main.js.map +1 -1
- package/dist/terminal/shellper-process.d.ts +1 -1
- package/dist/terminal/shellper-process.d.ts.map +1 -1
- package/dist/terminal/shellper-process.js +17 -8
- package/dist/terminal/shellper-process.js.map +1 -1
- package/dist/terminal/shellper-replay-buffer.d.ts +69 -7
- package/dist/terminal/shellper-replay-buffer.d.ts.map +1 -1
- package/dist/terminal/shellper-replay-buffer.js +167 -31
- package/dist/terminal/shellper-replay-buffer.js.map +1 -1
- package/package.json +8 -6
- package/skeleton/.claude/skills/afx/SKILL.md +14 -1
- package/skeleton/.claude/skills/arch-init/SKILL.md +22 -9
- package/skeleton/.claude/skills/arch-save/SKILL.md +183 -0
- package/skeleton/.claude/skills/codev/SKILL.md +31 -0
- package/skeleton/.claude/skills/runnable-worktrees/SKILL.md +119 -0
- package/skeleton/.codex/skills/afx/SKILL.md +14 -1
- package/skeleton/.codex/skills/arch-init/SKILL.md +22 -9
- package/skeleton/.codex/skills/arch-save/SKILL.md +183 -0
- package/skeleton/.codex/skills/codev/SKILL.md +31 -0
- package/skeleton/.codex/skills/runnable-worktrees/SKILL.md +119 -0
- package/skeleton/protocols/air/builder-prompt.md +28 -47
- package/skeleton/protocols/air/consult-types/impl-review.md +17 -34
- package/skeleton/protocols/air/consult-types/pr-review.md +14 -37
- package/skeleton/protocols/air/prompts/implement.md +20 -73
- package/skeleton/protocols/air/prompts/pr.md +22 -54
- package/skeleton/protocols/air/protocol.md +40 -71
- package/skeleton/protocols/aspir/builder-prompt.md +29 -66
- package/skeleton/protocols/aspir/consult-types/impl-review.md +17 -44
- package/skeleton/protocols/aspir/consult-types/phase-review.md +17 -44
- package/skeleton/protocols/aspir/consult-types/plan-review.md +14 -38
- package/skeleton/protocols/aspir/consult-types/pr-review.md +13 -39
- package/skeleton/protocols/aspir/consult-types/spec-review.md +13 -33
- package/skeleton/protocols/aspir/prompts/implement.md +27 -196
- package/skeleton/protocols/aspir/prompts/plan.md +21 -85
- package/skeleton/protocols/aspir/prompts/review.md +29 -228
- package/skeleton/protocols/aspir/prompts/specify.md +25 -111
- package/skeleton/protocols/aspir/protocol.json +10 -0
- package/skeleton/protocols/aspir/protocol.md +36 -82
- package/skeleton/protocols/bugfix/builder-prompt.md +23 -45
- package/skeleton/protocols/bugfix/consult-types/impl-review.md +21 -45
- package/skeleton/protocols/bugfix/consult-types/pr-review.md +18 -52
- package/skeleton/protocols/bugfix/prompts/fix.md +16 -61
- package/skeleton/protocols/bugfix/prompts/investigate.md +18 -62
- package/skeleton/protocols/bugfix/prompts/pr.md +22 -57
- package/skeleton/protocols/bugfix/protocol.md +44 -50
- package/skeleton/protocols/experiment/builder-prompt.md +25 -58
- package/skeleton/protocols/experiment/protocol.md +22 -188
- package/skeleton/protocols/experiment/templates/notes.md +11 -71
- package/skeleton/protocols/maintain/builder-prompt.md +24 -45
- package/skeleton/protocols/maintain/consult-types/impl-review.md +17 -44
- package/skeleton/protocols/maintain/consult-types/pr-review.md +13 -39
- package/skeleton/protocols/maintain/prompts/maintain.md +1 -1
- package/skeleton/protocols/maintain/protocol.md +32 -266
- package/skeleton/protocols/maintain/templates/maintenance-run.md +11 -0
- package/skeleton/protocols/pir/builder-prompt.md +30 -64
- package/skeleton/protocols/pir/consult-types/impl-review.md +17 -50
- package/skeleton/protocols/pir/consult-types/pr-review.md +11 -40
- package/skeleton/protocols/pir/prompts/implement.md +1 -2
- package/skeleton/protocols/pir/prompts/plan.md +0 -3
- package/skeleton/protocols/pir/prompts/review.md +1 -1
- package/skeleton/protocols/pir/protocol.md +54 -177
- package/skeleton/protocols/research/builder-prompt.md +27 -58
- package/skeleton/protocols/research/protocol.md +28 -153
- package/skeleton/protocols/spike/builder-prompt.md +30 -48
- package/skeleton/protocols/spike/protocol.md +24 -107
- package/skeleton/protocols/spike/templates/findings.md +9 -39
- package/skeleton/protocols/spir/builder-prompt.md +33 -62
- package/skeleton/protocols/spir/consult-types/impl-review.md +17 -44
- package/skeleton/protocols/spir/consult-types/phase-review.md +17 -44
- package/skeleton/protocols/spir/consult-types/plan-review.md +14 -38
- package/skeleton/protocols/spir/consult-types/pr-review.md +13 -39
- package/skeleton/protocols/spir/consult-types/spec-review.md +13 -33
- package/skeleton/protocols/spir/prompts/implement.md +26 -195
- package/skeleton/protocols/spir/prompts/plan.md +20 -84
- package/skeleton/protocols/spir/prompts/review.md +28 -227
- package/skeleton/protocols/spir/prompts/specify.md +24 -110
- package/skeleton/protocols/spir/protocol.json +10 -0
- package/skeleton/protocols/spir/protocol.md +84 -633
- package/skeleton/protocols/spir/templates/plan.md +28 -147
- package/skeleton/protocols/spir/templates/review.md +21 -80
- package/skeleton/protocols/spir/templates/spec.md +24 -118
- package/skeleton/resources/commands/agent-farm.md +259 -0
- package/skeleton/resources/commands/consult.md +236 -8
- package/skeleton/resources/commands/overview.md +1 -0
- package/skeleton/roles/architect.md +67 -317
- package/skeleton/roles/builder.md +77 -191
- package/skeleton/templates/AGENTS.md +2 -0
- package/skeleton/templates/CLAUDE.md +2 -0
- package/templates/tower.html +39 -2
- package/dashboard-dist/assets/index-BZ1x7x1X.js.map +0 -1
- package/dashboard-dist/assets/index-DB1KBSNE.css +0 -32
- package/dist/agent-farm/servers/send-buffer.d.ts +0 -59
- package/dist/agent-farm/servers/send-buffer.d.ts.map +0 -1
- package/dist/agent-farm/servers/send-buffer.js +0 -116
- package/dist/agent-farm/servers/send-buffer.js.map +0 -1
- package/skeleton/porch/prompts/defend.md +0 -108
- package/skeleton/porch/prompts/diagnose.md +0 -70
- package/skeleton/porch/prompts/evaluate.md +0 -132
- package/skeleton/porch/prompts/fix.md +0 -59
- package/skeleton/porch/prompts/implement.md +0 -88
- package/skeleton/porch/prompts/plan.md +0 -74
- package/skeleton/porch/prompts/pr.md +0 -84
- package/skeleton/porch/prompts/review.md +0 -249
- package/skeleton/porch/prompts/specify.md +0 -53
- package/skeleton/porch/prompts/test.md +0 -63
- package/skeleton/protocols/aspir/templates/plan.md +0 -184
- package/skeleton/protocols/aspir/templates/review.md +0 -120
- package/skeleton/protocols/aspir/templates/spec.md +0 -154
|
@@ -1,43 +1,32 @@
|
|
|
1
1
|
# Implementation Review Prompt
|
|
2
2
|
|
|
3
3
|
## Context
|
|
4
|
-
You are reviewing implementation work for a small feature built under the AIR protocol. The builder implemented directly from a GitHub issue — there is no spec or plan document. Your job is to verify the implementation matches the issue requirements and follows good practices.
|
|
5
4
|
|
|
6
|
-
|
|
5
|
+
You are reviewing implementation work built under the AIR protocol — a small feature implemented directly from a GitHub issue, with no spec or plan document. Verify it matches the issue and follows good practice; review against the issue, not against artifacts AIR does not produce.
|
|
7
6
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
## Verify before flagging
|
|
8
|
+
|
|
9
|
+
Before requesting changes for missing configuration, wrong patterns, or framework issues, confirm the claim against the project rather than your training data:
|
|
10
|
+
|
|
11
|
+
- Check `package.json` for the actual dependency versions — framework conventions change between major versions.
|
|
12
|
+
- Read the actual config files (or confirm their deliberate absence) before flagging a missing config.
|
|
12
13
|
|
|
13
14
|
## Baked Decisions
|
|
14
15
|
|
|
15
16
|
If the issue body includes content under a "Baked Decisions" heading, the architect has marked those choices as fixed. Do not autonomously challenge them: do not propose alternative languages, frameworks, deployment shapes, or dependencies that contradict a baked decision. You may `COMMENT` with concerns about a baked decision (the architect decides whether to rescind it); reserve `REQUEST_CHANGES` for the case where the implementation **fails to honor** a stated baked decision — that is a real defect.
|
|
16
17
|
|
|
17
|
-
If the baked decisions themselves
|
|
18
|
+
If the baked decisions themselves contradict each other, do not pick one — `REQUEST_CHANGES` and ask the architect to clarify before proceeding.
|
|
18
19
|
|
|
19
20
|
## Focus Areas
|
|
20
21
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
2. **Code Quality**
|
|
26
|
-
- Is the code readable and maintainable?
|
|
27
|
-
- Are there obvious bugs or issues?
|
|
28
|
-
- Are error cases handled appropriately?
|
|
29
|
-
|
|
30
|
-
3. **Test Coverage**
|
|
31
|
-
- Are the tests adequate?
|
|
32
|
-
- Do tests cover the main paths AND edge cases?
|
|
33
|
-
|
|
34
|
-
4. **Scope**
|
|
35
|
-
- Is the change under 300 LOC? If not, should this be escalated to ASPIR?
|
|
36
|
-
- Does the implementation stay focused on the issue, or does it include unrelated changes?
|
|
22
|
+
- **Issue Adherence** — the implementation fulfills the issue's requirements and acceptance criteria.
|
|
23
|
+
- **Code Quality** — readable and maintainable; no obvious bugs; error cases handled.
|
|
24
|
+
- **Test Coverage** — tests are adequate and cover main paths and edge cases.
|
|
25
|
+
- **Scope** — the change stays focused on the issue and under ~300 LOC; if larger, it should escalate to ASPIR.
|
|
37
26
|
|
|
38
27
|
## Verdict Format
|
|
39
28
|
|
|
40
|
-
|
|
29
|
+
Provide your verdict in exactly this format — `consult` parses it:
|
|
41
30
|
|
|
42
31
|
```
|
|
43
32
|
---
|
|
@@ -51,14 +40,8 @@ KEY_ISSUES:
|
|
|
51
40
|
...
|
|
52
41
|
```
|
|
53
42
|
|
|
54
|
-
|
|
55
|
-
- `
|
|
56
|
-
- `
|
|
57
|
-
- `COMMENT`: Minor suggestions, can proceed but note feedback
|
|
58
|
-
|
|
59
|
-
## Notes
|
|
43
|
+
- `APPROVE`: implementation looks good, ready for PR.
|
|
44
|
+
- `REQUEST_CHANGES`: issues that must be fixed.
|
|
45
|
+
- `COMMENT`: minor suggestions; can proceed but note the feedback.
|
|
60
46
|
|
|
61
|
-
|
|
62
|
-
- Focus on "does this feature work correctly" not "is this architecturally perfect"
|
|
63
|
-
- If referencing line numbers, use `file:line` format
|
|
64
|
-
- The builder needs actionable feedback
|
|
47
|
+
AIR has no spec or plan — review against the GitHub issue, and judge "does this feature work correctly", not "is this architecturally perfect".
|
|
@@ -1,48 +1,30 @@
|
|
|
1
1
|
# PR Ready Review Prompt
|
|
2
2
|
|
|
3
3
|
## Context
|
|
4
|
-
|
|
4
|
+
|
|
5
|
+
You are reviewing a pull request created under the AIR protocol — a small feature implemented directly from a GitHub issue, with no spec, plan, or review file. The review is embedded in the PR body.
|
|
5
6
|
|
|
6
7
|
## Baked Decisions
|
|
7
8
|
|
|
8
9
|
If the issue body includes content under a "Baked Decisions" heading, the architect has marked those choices as fixed. Do not autonomously challenge them: do not propose alternative languages, frameworks, deployment shapes, or dependencies that contradict a baked decision. You may `COMMENT` with concerns about a baked decision (the architect decides whether to rescind it); reserve `REQUEST_CHANGES` for the case where the code **fails to honor** a stated baked decision — that is a real defect.
|
|
9
10
|
|
|
10
|
-
If the baked decisions themselves
|
|
11
|
+
If the baked decisions themselves contradict each other, do not pick one — `REQUEST_CHANGES` and ask the architect to clarify before proceeding.
|
|
11
12
|
|
|
12
13
|
## Focus Areas
|
|
13
14
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
2. **Test Status**
|
|
20
|
-
- Do all tests pass?
|
|
21
|
-
- Is test coverage adequate for the changes?
|
|
22
|
-
- Are there any skipped or flaky tests?
|
|
23
|
-
|
|
24
|
-
3. **Code Cleanliness**
|
|
25
|
-
- Is there any debug code left in?
|
|
26
|
-
- Are there any TODO comments that should be resolved?
|
|
27
|
-
- Is the code properly formatted?
|
|
28
|
-
|
|
29
|
-
4. **Scope**
|
|
30
|
-
- Is the change under 300 LOC?
|
|
31
|
-
- Does the implementation stay focused on the issue?
|
|
32
|
-
- Are there unrelated changes bundled in?
|
|
33
|
-
|
|
34
|
-
5. **PR Quality**
|
|
35
|
-
- Does the PR link to the issue?
|
|
36
|
-
- Is the PR body review section informative?
|
|
37
|
-
- Is the branch up to date with its base (the integration branch the PR targets)?
|
|
15
|
+
- **Completeness** — the issue's requirements are implemented and the PR body's review section (summary, key decisions, test plan) is filled out.
|
|
16
|
+
- **Test Status** — all tests pass, coverage is adequate, and any skipped/flaky tests are accounted for.
|
|
17
|
+
- **Code Cleanliness** — no debug code, no stray `TODO`, code properly formatted.
|
|
18
|
+
- **Scope** — the change stays under ~300 LOC and focused on the issue, with no unrelated changes bundled in.
|
|
19
|
+
- **PR Quality** — the PR links to the issue, the body's review section is informative, and the branch is up to date with its base (the integration branch the PR targets).
|
|
38
20
|
|
|
39
21
|
## Scope
|
|
40
22
|
|
|
41
|
-
|
|
23
|
+
Do not flag the syntax of `git diff` examples that appear in review-file prose (e.g. `git diff ci..HEAD` inside a "Files Changed" caption) — quoted diff syntax is documentation, not a command. Apply two-dot/three-dot scrutiny only to diffs you compute yourself.
|
|
42
24
|
|
|
43
25
|
## Verdict Format
|
|
44
26
|
|
|
45
|
-
|
|
27
|
+
Provide your verdict in exactly this format — `consult` parses it:
|
|
46
28
|
|
|
47
29
|
```
|
|
48
30
|
---
|
|
@@ -56,13 +38,8 @@ KEY_ISSUES:
|
|
|
56
38
|
...
|
|
57
39
|
```
|
|
58
40
|
|
|
59
|
-
|
|
60
|
-
- `
|
|
61
|
-
- `
|
|
62
|
-
- `COMMENT`: Minor items, can proceed but note feedback
|
|
63
|
-
|
|
64
|
-
## Notes
|
|
41
|
+
- `APPROVE`: ready for architect review.
|
|
42
|
+
- `REQUEST_CHANGES`: issues to fix before review.
|
|
43
|
+
- `COMMENT`: minor items; can proceed but note the feedback.
|
|
65
44
|
|
|
66
|
-
|
|
67
|
-
- Focus on "is this ready for someone else to review" not "is this perfect"
|
|
68
|
-
- Any issues found here are cheaper to fix than during integration review
|
|
45
|
+
AIR has no spec, plan, or review files — review the PR body and the code diff.
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
You are executing the **IMPLEMENT** phase of the AIR protocol.
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## Goal
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
Implement the feature described in the issue, with tests, as a focused change under ~300 LOC. AIR produces no `codev/specs/` or `codev/plans/` artifacts.
|
|
8
8
|
|
|
9
9
|
## Baked Decisions
|
|
10
10
|
|
|
@@ -17,79 +17,26 @@ If two baked decisions contradict each other, do not pick one — pause, flag th
|
|
|
17
17
|
- **Issue**: #{{issue.number}} — {{issue.title}}
|
|
18
18
|
- **Current State**: {{current_state}}
|
|
19
19
|
|
|
20
|
-
##
|
|
20
|
+
## What must be true when you finish
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
- **The feature matches the issue.** You have read it fully — desired behavior, acceptance criteria, any examples — and implemented exactly what it describes: no refactoring of surrounding code, no features beyond the issue, no unrelated bug fixes (file separate issues for those). Self-documenting code, no debug or commented-out code, existing project conventions.
|
|
23
|
+
- **Tests exist.** They cover the happy path and the key edge cases, and are deterministic. (Purely declarative changes — config only — may not need them; say so.)
|
|
24
|
+
- **Build and tests pass.** Confirm the real project commands (check `package.json` if unsure) and run them; fix failures before signaling.
|
|
25
|
+
- **The change stays within AIR scope.** If it grows past ~300 LOC or turns architectural, signal `TOO_COMPLEX` rather than pressing on.
|
|
23
26
|
|
|
24
|
-
|
|
25
|
-
- What is the desired behavior?
|
|
26
|
-
- What are the acceptance criteria?
|
|
27
|
-
- Are there examples or mockups?
|
|
28
|
-
- What files/modules are likely affected?
|
|
29
|
-
|
|
30
|
-
### 2. Implement the Feature
|
|
31
|
-
|
|
32
|
-
Apply a focused implementation:
|
|
33
|
-
- Implement what the issue describes — no more, no less
|
|
34
|
-
- Do NOT refactor surrounding code
|
|
35
|
-
- Do NOT add features beyond what's described in the issue
|
|
36
|
-
- Do NOT fix unrelated bugs you happen to notice (file separate issues)
|
|
37
|
-
|
|
38
|
-
**Code Quality**:
|
|
39
|
-
- Self-documenting code (clear names, obvious structure)
|
|
40
|
-
- No commented-out code or debug prints
|
|
41
|
-
- Follow existing project conventions
|
|
42
|
-
|
|
43
|
-
### 3. Add Tests
|
|
44
|
-
|
|
45
|
-
Write tests that:
|
|
46
|
-
- Cover the main happy path
|
|
47
|
-
- Cover key edge cases
|
|
48
|
-
- Are deterministic (not flaky)
|
|
49
|
-
|
|
50
|
-
Place tests following project conventions (`__tests__/`, `*.test.ts`, etc.).
|
|
51
|
-
|
|
52
|
-
### 4. Verify the Build
|
|
53
|
-
|
|
54
|
-
Run build and tests:
|
|
55
|
-
|
|
56
|
-
```bash
|
|
57
|
-
npm run build # Must pass
|
|
58
|
-
npm test # Must pass
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
Fix any failures before proceeding. If build/test commands don't exist, check `package.json`.
|
|
62
|
-
|
|
63
|
-
### 5. Commit
|
|
64
|
-
|
|
65
|
-
Stage and commit your changes:
|
|
66
|
-
- Use explicit file paths (never `git add -A` or `git add .`)
|
|
67
|
-
- Commit message: `[Air #{{issue.number}}] feat: <brief description>`
|
|
27
|
+
Commit with an explicit staged path and the message `[Air #{{issue.number}}] feat: <brief description>`.
|
|
68
28
|
|
|
69
29
|
## Signals
|
|
70
30
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
If you're blocked (missing context, unclear requirements, etc.):
|
|
84
|
-
|
|
85
|
-
```
|
|
86
|
-
<signal>BLOCKED:reason goes here</signal>
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
## Important Notes
|
|
90
|
-
|
|
91
|
-
1. **Stay focused** — Implement what the issue describes, nothing else
|
|
92
|
-
2. **Tests are expected** — Add tests unless the change is purely declarative (e.g., config only)
|
|
93
|
-
3. **Build AND tests must pass** — Don't signal complete until both pass
|
|
94
|
-
4. **Stay under 300 LOC** — If the feature grows beyond this, signal `TOO_COMPLEX`
|
|
95
|
-
5. **No spec/plan artifacts** — AIR does not create files in `codev/specs/` or `codev/plans/`
|
|
31
|
+
- Implementation and tests complete and passing:
|
|
32
|
+
```
|
|
33
|
+
<signal>PHASE_COMPLETE</signal>
|
|
34
|
+
```
|
|
35
|
+
- Too complex for AIR (> ~300 LOC or architectural):
|
|
36
|
+
```
|
|
37
|
+
<signal>TOO_COMPLEX</signal>
|
|
38
|
+
```
|
|
39
|
+
- Blocked (missing context, unclear requirements):
|
|
40
|
+
```
|
|
41
|
+
<signal>BLOCKED:reason goes here</signal>
|
|
42
|
+
```
|
|
@@ -2,32 +2,20 @@
|
|
|
2
2
|
|
|
3
3
|
You are executing the **PR** phase of the AIR protocol.
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## Goal
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
Open the PR with the review embedded in its body, optionally run CMAP, and notify the architect.
|
|
8
8
|
|
|
9
9
|
## Context
|
|
10
10
|
|
|
11
11
|
- **Issue**: #{{issue.number}} — {{issue.title}}
|
|
12
12
|
- **Current State**: {{current_state}}
|
|
13
13
|
|
|
14
|
-
##
|
|
14
|
+
## Create the PR
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
**The PR body IS the review for AIR** — do not create a file in `codev/reviews/`. Include a summary, the key decisions, and a test plan in the body itself.
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
**PR body requirements**: The PR body MUST include `Closes #<N>` (where `<N>` is
|
|
21
|
-
the driving issue number) so GitHub auto-closes the issue on merge. If the PR
|
|
22
|
-
closes multiple issues (e.g. duplicates consolidated), include one `Closes #<N>`
|
|
23
|
-
per issue. Without this, GitHub will not auto-close the issue.
|
|
24
|
-
|
|
25
|
-
**Exception**: if this PR only partially addresses the issue, use `Refs #<N>`
|
|
26
|
-
or `Part of #<N>` instead of `Closes` — the issue stays open until a
|
|
27
|
-
follow-up PR closes it.
|
|
28
|
-
|
|
29
|
-
**Note**: substitute the real issue number for `<N>` — do not leave the
|
|
30
|
-
placeholder or any `{{...}}` template tag in the committed PR body.
|
|
18
|
+
The body must carry `Closes #<N>` for the driving issue — one per issue if several — so GitHub auto-closes it on merge. **Exception:** a partial fix uses `Refs #<N>` or `Part of #<N>` instead. Substitute the real number for `<N>`; leave no `{{...}}` tag or `<N>` placeholder in the committed body.
|
|
31
19
|
|
|
32
20
|
```bash
|
|
33
21
|
gh pr create --title "[Air #<N>] feat: <brief description>" --body "$(cat <<'EOF'
|
|
@@ -35,15 +23,15 @@ gh pr create --title "[Air #<N>] feat: <brief description>" --body "$(cat <<'EOF
|
|
|
35
23
|
|
|
36
24
|
<1-2 sentence description of the feature>
|
|
37
25
|
|
|
38
|
-
Closes #<N> <!-- Substitute <N>
|
|
26
|
+
Closes #<N> <!-- Substitute <N>; use "Refs #<N>" for a partial fix -->
|
|
39
27
|
|
|
40
28
|
## What Changed
|
|
41
29
|
|
|
42
|
-
<
|
|
30
|
+
<the implementation approach>
|
|
43
31
|
|
|
44
32
|
## Key Decisions
|
|
45
33
|
|
|
46
|
-
<
|
|
34
|
+
<notable decisions, or "None — straightforward implementation">
|
|
47
35
|
|
|
48
36
|
## Test Plan
|
|
49
37
|
|
|
@@ -53,16 +41,14 @@ Closes #<N> <!-- Substitute <N> with the real issue number -->
|
|
|
53
41
|
|
|
54
42
|
## Review Notes
|
|
55
43
|
|
|
56
|
-
<
|
|
44
|
+
<anything the reviewer should focus on, or "Standard implementation — no special concerns">
|
|
57
45
|
EOF
|
|
58
46
|
)"
|
|
59
47
|
```
|
|
60
48
|
|
|
61
|
-
|
|
49
|
+
## Optional CMAP review
|
|
62
50
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
If the implementation is non-trivial, run 3-way consultation:
|
|
51
|
+
CMAP is your judgement call for AIR. Skip it for simple changes (config, small UI); run it for features touching core logic or several modules:
|
|
66
52
|
|
|
67
53
|
```bash
|
|
68
54
|
consult -m gemini --protocol air --type pr &
|
|
@@ -70,41 +56,23 @@ consult -m codex --protocol air --type pr &
|
|
|
70
56
|
consult -m claude --protocol air --type pr &
|
|
71
57
|
```
|
|
72
58
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
**This is optional** — use your judgement. For simple features (config changes, small UI additions), you may skip consultation. For features touching core logic or multiple modules, run it.
|
|
59
|
+
If you run it, wait for all three, record each verdict, fix real issues, and push.
|
|
76
60
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
If you ran CMAP:
|
|
80
|
-
- Wait for all consultations to complete
|
|
81
|
-
- Record each model's verdict
|
|
82
|
-
- Fix any issues identified
|
|
83
|
-
- Push updates to the PR branch
|
|
84
|
-
|
|
85
|
-
### 4. Notify Architect
|
|
86
|
-
|
|
87
|
-
Send notification with PR link:
|
|
61
|
+
## Notify the architect
|
|
88
62
|
|
|
89
63
|
```bash
|
|
90
64
|
afx send architect "PR #<number> ready for review (implements issue #{{issue.number}})"
|
|
91
65
|
```
|
|
92
66
|
|
|
93
|
-
If
|
|
94
|
-
```bash
|
|
95
|
-
afx send architect "PR #<number> ready for review (implements issue #{{issue.number}}). CMAP: gemini=<verdict>, codex=<verdict>, claude=<verdict>"
|
|
96
|
-
```
|
|
67
|
+
If you ran CMAP, include the verdicts: `CMAP: gemini=<verdict>, codex=<verdict>, claude=<verdict>`.
|
|
97
68
|
|
|
98
69
|
## Signals
|
|
99
70
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
```
|
|
109
|
-
<signal>BLOCKED:reason goes here</signal>
|
|
110
|
-
```
|
|
71
|
+
- PR created and ready for review:
|
|
72
|
+
```
|
|
73
|
+
<signal>PHASE_COMPLETE</signal>
|
|
74
|
+
```
|
|
75
|
+
- Blocked:
|
|
76
|
+
```
|
|
77
|
+
<signal>BLOCKED:reason goes here</signal>
|
|
78
|
+
```
|
|
@@ -1,91 +1,60 @@
|
|
|
1
1
|
# AIR Protocol
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
> Two phases: Implement → Review. No spec/plan artifacts.
|
|
3
|
+
**A**utonomous **I**mplement → **R**eview. The lightest protocol that still produces a reviewed
|
|
4
|
+
PR: no spec, no plan, no artifact files. The GitHub issue *is* the specification, and the review
|
|
5
|
+
lives in the PR body.
|
|
7
6
|
|
|
8
|
-
|
|
7
|
+
Use AIR when a small feature (roughly <300 LOC) is fully described by its issue and needs no
|
|
8
|
+
architectural decision, no new abstraction, and no significant refactor. If the issue leaves the
|
|
9
|
+
approach genuinely open, the cost of a spec is lower than the cost of building the wrong thing —
|
|
10
|
+
use SPIR or ASPIR. For a defect rather than a feature, use BUGFIX.
|
|
9
11
|
|
|
10
|
-
|
|
12
|
+
## The state machine
|
|
11
13
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|--------|--------|-----|------------|
|
|
16
|
-
| **Use case** | Bug fixes | Small features | New features |
|
|
17
|
-
| **Input** | GitHub Issue | GitHub Issue | GitHub Issue → Spec |
|
|
18
|
-
| **Phases** | Investigate → Fix → PR | Implement → PR | Specify → Plan → Implement → Review |
|
|
19
|
-
| **Artifacts** | None | None | Spec, plan, review files |
|
|
20
|
-
| **Review location** | PR body | PR body | `codev/reviews/` file |
|
|
21
|
-
| **Consultation** | PR phase only | Optional (builder decides) | Every phase (3-way) |
|
|
22
|
-
| **Human gates** | None (PR gate) | None (PR gate) | Spec + Plan + PR gates (SPIR) |
|
|
23
|
-
| **LOC limit** | < 300 | < 300 | No limit |
|
|
24
|
-
|
|
25
|
-
### When to Use AIR
|
|
26
|
-
|
|
27
|
-
- Small features (< 300 LOC)
|
|
28
|
-
- Requirements are clear from the GitHub issue
|
|
29
|
-
- No architectural decisions needed
|
|
30
|
-
- No new abstractions or significant refactoring required
|
|
31
|
-
- Would be overkill for full SPIR/ASPIR ceremony
|
|
32
|
-
|
|
33
|
-
### When NOT to Use AIR
|
|
34
|
-
|
|
35
|
-
- Bug fixes → use **BUGFIX**
|
|
36
|
-
- Features needing spec discussion → use **SPIR** or **ASPIR**
|
|
37
|
-
- Architectural changes → use **SPIR**
|
|
38
|
-
- Complex features with multiple phases → use **SPIR** or **ASPIR**
|
|
39
|
-
|
|
40
|
-
## Baked Decisions (Optional)
|
|
14
|
+
```json
|
|
15
|
+
{{> protocols/air/protocol.json}}
|
|
16
|
+
```
|
|
41
17
|
|
|
42
|
-
|
|
18
|
+
## Artifacts
|
|
43
19
|
|
|
44
|
-
|
|
20
|
+
**None on disk.** The issue carries the requirements; the review goes in the PR body. That is
|
|
21
|
+
the whole economy of AIR — a `codev/reviews/` file for a 200-line change costs more to maintain
|
|
22
|
+
than it ever repays.
|
|
45
23
|
|
|
46
|
-
|
|
24
|
+
## Consultation
|
|
47
25
|
|
|
48
|
-
|
|
26
|
+
At the builder's discretion, unlike SPIR's mandatory 3-way at every phase. Reach for it when the
|
|
27
|
+
change touches shared code or you are unsure the approach is right; skip it when the issue is
|
|
28
|
+
unambiguous and the diff is small.
|
|
49
29
|
|
|
50
|
-
|
|
51
|
-
2. Implement the feature (< 300 LOC)
|
|
52
|
-
3. Write tests
|
|
53
|
-
4. Verify build and tests pass
|
|
54
|
-
5. Commit with descriptive message
|
|
30
|
+
## Gate
|
|
55
31
|
|
|
56
|
-
|
|
32
|
+
The `pr` gate is human. There are no pre-implementation gates — which is precisely why AIR is
|
|
33
|
+
only appropriate when the issue has already settled the questions a spec would ask.
|
|
57
34
|
|
|
58
|
-
|
|
35
|
+
## Baked Decisions
|
|
59
36
|
|
|
60
|
-
|
|
37
|
+
An issue may carry a `## Baked Decisions` section pinning architectural choices the architect
|
|
38
|
+
does not want re-litigated — typically **language**, **framework**, deployment shape, key
|
|
39
|
+
**dependencies**, or decisions deferred to a later spec.
|
|
61
40
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
41
|
+
Every item in it is fixed. Copy the section verbatim into the spec's Constraints and do not
|
|
42
|
+
re-open it in the spec, plan, or review; CMAP reviewers will not propose alternatives unless the
|
|
43
|
+
spec fails to honour one. If two items contradict each other, do not choose — surface the
|
|
44
|
+
contradiction and wait.
|
|
66
45
|
|
|
67
|
-
|
|
46
|
+
**Absence is the no-op default**: an issue with no such section is an invitation to explore
|
|
47
|
+
freely, not an omission to be filled in.
|
|
68
48
|
|
|
69
|
-
|
|
49
|
+
The architect can **amend or rescind** a baked decision at any time by updating the issue and
|
|
50
|
+
respawning, or by sending the builder a direct instruction via `afx send`.
|
|
70
51
|
|
|
71
|
-
|
|
72
|
-
# Spawn a builder using AIR
|
|
73
|
-
afx spawn 42 --protocol air
|
|
52
|
+
## Escalation
|
|
74
53
|
|
|
75
|
-
|
|
76
|
-
|
|
54
|
+
If implementation reveals that the change is not small, or that it needs a decision the issue
|
|
55
|
+
does not make, **stop and say so** rather than growing an AIR project into an unplanned SPIR.
|
|
56
|
+
Escalating early is cheap; discovering it at PR review is not.
|
|
77
57
|
|
|
78
|
-
##
|
|
58
|
+
## Branch naming
|
|
79
59
|
|
|
80
|
-
|
|
81
|
-
codev-skeleton/protocols/air/
|
|
82
|
-
├── protocol.json # Protocol definition
|
|
83
|
-
├── protocol.md # This file
|
|
84
|
-
├── builder-prompt.md # Builder instructions (Handlebars template)
|
|
85
|
-
├── prompts/
|
|
86
|
-
│ ├── implement.md # Implement phase prompt
|
|
87
|
-
│ └── pr.md # PR phase prompt
|
|
88
|
-
└── consult-types/
|
|
89
|
-
├── impl-review.md # Implementation consultation guide
|
|
90
|
-
└── pr-review.md # PR consultation guide
|
|
91
|
-
```
|
|
60
|
+
`builder/air-<issue>-<short-description>`
|