codebyplan 1.13.53 → 1.13.55

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.
Files changed (84) hide show
  1. package/dist/cli.js +1364 -352
  2. package/package.json +1 -1
  3. package/templates/agents/cbp-database-agent.md +1 -1
  4. package/templates/agents/cbp-e2e-maestro.md +1 -1
  5. package/templates/agents/cbp-e2e-playwright.md +24 -16
  6. package/templates/agents/cbp-e2e-tauri.md +1 -1
  7. package/templates/agents/cbp-e2e-vscode.md +1 -1
  8. package/templates/agents/cbp-e2e-xcuitest.md +1 -1
  9. package/templates/agents/cbp-improve-claude.md +2 -2
  10. package/templates/agents/{cbp-round-executor.md → cbp-round-builder.md} +23 -23
  11. package/templates/agents/{cbp-task-planner.md → cbp-round-planner.md} +26 -25
  12. package/templates/agents/cbp-security-agent.md +1 -1
  13. package/templates/agents/cbp-stripe-agent.md +2 -2
  14. package/templates/agents/cbp-testing-qa-agent.md +11 -11
  15. package/templates/agents/cbp-verify-reviewer.md +236 -0
  16. package/templates/context/architecture-map.md +4 -4
  17. package/templates/context/mcp-docs.md +57 -11
  18. package/templates/context/testing/e2e.md +9 -9
  19. package/templates/github-workflows/ci.yml +58 -0
  20. package/templates/hooks/cbp-skill-context-guard.sh +1 -1
  21. package/templates/hooks/cbp-test-hooks.sh +9 -9
  22. package/templates/hooks/validate-structure-lengths.sh +1 -1
  23. package/templates/hooks/validate-structure-patterns.sh +1 -1
  24. package/templates/rules/README.md +1 -2
  25. package/templates/rules/agent-claim-verification.md +1 -1
  26. package/templates/rules/context-file-loading.md +10 -10
  27. package/templates/rules/development-workflow.md +73 -0
  28. package/templates/rules/e2e-mandatory.md +8 -8
  29. package/templates/rules/execution-proof.md +70 -0
  30. package/templates/rules/model-invocation-convention.md +2 -2
  31. package/templates/rules/parallel-waves.md +11 -11
  32. package/templates/rules/spawn-failure-is-gate-failure.md +76 -0
  33. package/templates/rules/task-routing-recommendation.md +1 -1
  34. package/templates/rules/todo-backend.md +3 -3
  35. package/templates/rules/two-tier-ci.md +63 -0
  36. package/templates/settings.project.base.json +8 -10
  37. package/templates/skills/cbp-build-cc-mode/SKILL.md +1 -1
  38. package/templates/skills/cbp-build-cc-settings/reference/cbp-permission-policy.md +7 -7
  39. package/templates/skills/cbp-build-cc-skill/SKILL.md +1 -1
  40. package/templates/skills/cbp-build-cc-skill/reference/cbp-quality.md +2 -2
  41. package/templates/skills/cbp-build-cc-skill/reference/fork-eligibility.md +11 -14
  42. package/templates/skills/cbp-checkpoint-check/SKILL.md +2 -2
  43. package/templates/skills/cbp-checkpoint-create/SKILL.md +16 -1
  44. package/templates/skills/cbp-checkpoint-update/SKILL.md +3 -3
  45. package/templates/skills/cbp-clear-continue/SKILL.md +2 -2
  46. package/templates/skills/cbp-clear-prep/SKILL.md +3 -3
  47. package/templates/skills/{cbp-task-complete → cbp-finalize}/SKILL.md +25 -29
  48. package/templates/skills/{cbp-task-complete → cbp-finalize}/reference/checkpoint-done-branching.md +1 -1
  49. package/templates/skills/{cbp-task-complete → cbp-finalize}/reference/next-step-heuristic.md +1 -1
  50. package/templates/skills/cbp-frontend-design/SKILL.md +1 -1
  51. package/templates/skills/cbp-frontend-ui/SKILL.md +7 -7
  52. package/templates/skills/cbp-git-commit/SKILL.md +3 -3
  53. package/templates/skills/cbp-merge-main/SKILL.md +4 -4
  54. package/templates/skills/{cbp-round-execute → cbp-round-build}/SKILL.md +93 -75
  55. package/templates/skills/cbp-round-complete/SKILL.md +15 -14
  56. package/templates/skills/cbp-round-plan/SKILL.md +344 -0
  57. package/templates/skills/cbp-session-end/SKILL.md +1 -1
  58. package/templates/skills/cbp-ship-main/SKILL.md +3 -2
  59. package/templates/skills/cbp-standalone-task-check/SKILL.md +10 -9
  60. package/templates/skills/cbp-standalone-task-complete/SKILL.md +12 -13
  61. package/templates/skills/cbp-standalone-task-create/SKILL.md +16 -9
  62. package/templates/skills/cbp-standalone-task-start/SKILL.md +9 -5
  63. package/templates/skills/cbp-standalone-task-testing/SKILL.md +5 -5
  64. package/templates/skills/cbp-task-create/SKILL.md +6 -7
  65. package/templates/skills/cbp-task-start/SKILL.md +8 -8
  66. package/templates/skills/cbp-todo/SKILL.md +6 -8
  67. package/templates/skills/cbp-verify/SKILL.md +146 -0
  68. package/templates/skills/cbp-verify/reference/deterministic-gates.md +114 -0
  69. package/templates/skills/{cbp-round-end → cbp-verify}/reference/findings-presentation.md +16 -12
  70. package/templates/skills/cbp-verify/reference/round-scope.md +62 -0
  71. package/templates/skills/cbp-verify/reference/task-scope.md +71 -0
  72. package/templates/agents/cbp-improve-round.md +0 -283
  73. package/templates/agents/cbp-task-check.md +0 -217
  74. package/templates/skills/cbp-round-check/SKILL.md +0 -134
  75. package/templates/skills/cbp-round-end/SKILL.md +0 -173
  76. package/templates/skills/cbp-round-end/reference/inline-fallback.md +0 -35
  77. package/templates/skills/cbp-round-execute/reference/inline-fallback.md +0 -55
  78. package/templates/skills/cbp-round-input/SKILL.md +0 -197
  79. package/templates/skills/cbp-round-start/SKILL.md +0 -261
  80. package/templates/skills/cbp-round-update/SKILL.md +0 -120
  81. package/templates/skills/cbp-ship/templates/workflow-eas-submit.yml +0 -53
  82. package/templates/skills/cbp-ship/templates/workflow-vsce-publish.yml +0 -31
  83. package/templates/skills/cbp-task-check/SKILL.md +0 -172
  84. package/templates/skills/cbp-task-testing/SKILL.md +0 -279
@@ -537,18 +537,18 @@ if [ ! -f "$GUARD_HOOK" ]; then
537
537
  test_result "cbp-skill-context-guard.sh present" "passed" "missing"
538
538
  else
539
539
 
540
- # Case 1: over-threshold + cbp-round-execute (heavy) → permissionDecision=deny
540
+ # Case 1: over-threshold + cbp-round-build (heavy) → permissionDecision=deny
541
541
  STDIN=$(jq -n \
542
542
  --arg t "$FIXTURES_GUARD/over-threshold.jsonl" \
543
- --arg s "cbp-round-execute" \
543
+ --arg s "cbp-round-build" \
544
544
  '{transcript_path:$t,tool_input:{skill:$s}}')
545
545
  OUTPUT=$(echo "$STDIN" | CBP_CONTEXT_WARN_TOKENS=200000 bash "$GUARD_HOOK" 2>/dev/null)
546
546
  EXIT_CODE=$?
547
547
  if [ "$EXIT_CODE" = "0" ] \
548
548
  && echo "$OUTPUT" | jq -e '.hookSpecificOutput.permissionDecision == "deny"' >/dev/null 2>&1; then
549
- test_result "cbp-skill-context-guard.sh over-threshold + cbp-round-execute → deny" "passed" "passed"
549
+ test_result "cbp-skill-context-guard.sh over-threshold + cbp-round-build → deny" "passed" "passed"
550
550
  else
551
- test_result "cbp-skill-context-guard.sh over-threshold + cbp-round-execute → deny" "passed" "failed (exit=$EXIT_CODE output=$(echo "$OUTPUT" | head -c 80))"
551
+ test_result "cbp-skill-context-guard.sh over-threshold + cbp-round-build → deny" "passed" "failed (exit=$EXIT_CODE output=$(echo "$OUTPUT" | head -c 80))"
552
552
  fi
553
553
 
554
554
  # Case 2: over-threshold + cbp-clear-prep (exempt) → empty stdout, exit 0
@@ -577,17 +577,17 @@ else
577
577
  test_result "cbp-skill-context-guard.sh over-threshold + cbp-clear-continue (exempt) → empty stdout" "passed" "failed (exit=$EXIT_CODE)"
578
578
  fi
579
579
 
580
- # Case 4: under-threshold + cbp-round-execute → empty stdout, exit 0
580
+ # Case 4: under-threshold + cbp-round-build → empty stdout, exit 0
581
581
  STDIN=$(jq -n \
582
582
  --arg t "$FIXTURES_GUARD/under-threshold.jsonl" \
583
- --arg s "cbp-round-execute" \
583
+ --arg s "cbp-round-build" \
584
584
  '{transcript_path:$t,tool_input:{skill:$s}}')
585
585
  OUTPUT=$(echo "$STDIN" | CBP_CONTEXT_WARN_TOKENS=200000 bash "$GUARD_HOOK" 2>/dev/null)
586
586
  EXIT_CODE=$?
587
587
  if [ "$EXIT_CODE" = "0" ] && [ -z "$OUTPUT" ]; then
588
- test_result "cbp-skill-context-guard.sh under-threshold + cbp-round-execute → empty stdout" "passed" "passed"
588
+ test_result "cbp-skill-context-guard.sh under-threshold + cbp-round-build → empty stdout" "passed" "passed"
589
589
  else
590
- test_result "cbp-skill-context-guard.sh under-threshold + cbp-round-execute → empty stdout" "passed" "failed (exit=$EXIT_CODE)"
590
+ test_result "cbp-skill-context-guard.sh under-threshold + cbp-round-build → empty stdout" "passed" "failed (exit=$EXIT_CODE)"
591
591
  fi
592
592
 
593
593
  # Case 5: empty skill_name → empty stdout, exit 0
@@ -603,7 +603,7 @@ else
603
603
  fi
604
604
 
605
605
  # Case 6: missing transcript_path → empty stdout, exit 0 (fast-path)
606
- STDIN=$(jq -n --arg s "cbp-round-execute" '{tool_input:{skill:$s}}')
606
+ STDIN=$(jq -n --arg s "cbp-round-build" '{tool_input:{skill:$s}}')
607
607
  OUTPUT=$(echo "$STDIN" | CBP_CONTEXT_WARN_TOKENS=200000 bash "$GUARD_HOOK" 2>/dev/null)
608
608
  EXIT_CODE=$?
609
609
  if [ "$EXIT_CODE" = "0" ] && [ -z "$OUTPUT" ]; then
@@ -12,7 +12,7 @@ _get_limit() {
12
12
  # Documented exceptions — higher budget
13
13
  /docs/templates/*/task.md) echo "450 900"; return;;
14
14
  /.claude/docs/architecture/development.md) echo "1200 2000"; return;;
15
- /.claude/skills/cbp-round-start/SKILL.md) echo "600 1000"; return;;
15
+ /.claude/skills/cbp-round-plan/SKILL.md) echo "600 1000"; return;;
16
16
  /.claude/rules/development-workflow.md) echo "250 400"; return;;
17
17
  # Unlimited files
18
18
  /CHANGELOG.md|*/CHANGELOG.md|*/user-input.md|/.claude/docs/research/*) echo ""; return;;
@@ -39,7 +39,7 @@ if match_path '^/\.claude/docs/stack/' \
39
39
  fi
40
40
 
41
41
  # Notation consistency (warn-only): flag bare-colon command notation in .claude/ markdown
42
- # See: cbp-round-start Step 0 "CHK / TASK / ROUND Identifier Notation Vocabulary" — all command refs must use /cbp-* form
42
+ # See: cbp-round-plan Step 0 "CHK / TASK / ROUND Identifier Notation Vocabulary" — all command refs must use /cbp-* form
43
43
  if match_path '^/\.claude/(rules|skills|agents)/' && match_path '\.md$'; then
44
44
  CONTENT=$(read_input_content)
45
45
  [ -z "$CONTENT" ] && [ -f "$FILE_PATH" ] && CONTENT=$(cat "$FILE_PATH" 2>/dev/null || true)
@@ -34,7 +34,7 @@ The `install`/`update`/`uninstall` flow handles these files identically to how i
34
34
 
35
35
  ## Current status
36
36
 
37
- Nine rules are shipped:
37
+ Eight rules are shipped:
38
38
 
39
39
  | Rule file | Scope | Summary |
40
40
  |---|---|---|
@@ -45,7 +45,6 @@ Nine rules are shipped:
45
45
  | `agent-claim-verification.md` | `org-shared` | Verify an agent's claimed outcomes against ground truth (git, filesystem, tool results) before trusting them |
46
46
  | `e2e-mandatory.md` | `org-shared` | E2E is opt-out: an eligible framework whose source changed in a round must run its specialist or record a valid skip |
47
47
  | `parallel-waves.md` | `org-shared` | Wave-dispatch contract for parallel round execution — topological ordering and per-wave testing |
48
- | `task-routing-recommendation.md` | `repo-only:codebyplan` | Two-family command surface (checkpoint-bound vs standalone) and identifier-format routing — installed only in codebyplan-family repos |
49
48
  | `cbp-operating-gotchas.md` | `org-shared` | Cross-repo CBP-tooling traps (ship/timeout/MCP-replace/worktree/lint-baseline/approval-reconcile) + behavioral prefs, inherited once by all consumers |
50
49
 
51
50
  ## Contributing a rule
@@ -10,7 +10,7 @@ paths:
10
10
  <!-- Delivery: subagents receive this rule via the [[agent-claim-verification]] pointer in each
11
11
  agent's .md file. The `paths:` frontmatter surfaces it when an agent file is being *edited*,
12
12
  not when the agent is *running* — both mechanisms are intentional, so don't drop the pointer.
13
- Scope is agents-only by design (cbp-round-executor, cbp-research); skill files are out of
13
+ Scope is agents-only by design (cbp-round-builder, cbp-research); skill files are out of
14
14
  scope this round. -->
15
15
 
16
16
  Subagents routinely emit tool calls and explanatory text that depend on a named thing *existing* — a JSON config key, a schema field, an environment-variable name, an external API's request/response shape. When that name is recalled from memory instead of read from the source, it is often subtly wrong: a renamed field, a key that moved to a different file, an API shape from an older version. Those hallucinated names cost correction rounds.
@@ -12,20 +12,20 @@ paths:
12
12
 
13
13
  | Context File | Loaded By | Phase | Purpose |
14
14
  |--------------|-----------|-------|---------|
15
- | `context/testing/unit.md` | `cbp-round-executor` | Step 3.6 | Unit test patterns per framework |
15
+ | `context/testing/unit.md` | `cbp-round-builder` | Step 3.6 | Unit test patterns per framework |
16
16
  | `context/testing/e2e.md` | `cbp-e2e-playwright`, `cbp-e2e-maestro`, `cbp-e2e-tauri`, `cbp-e2e-vscode`, `cbp-e2e-xcuitest` | Entry | Shared contract: Input/Output, preflight, failure classification, dispatch routing |
17
17
  | `context/testing/e2e.md` | `cbp-testing-qa-agent` | Preflight | Env var list per framework |
18
18
  | `context/testing/e2e.md` | `cbp-checkpoint-plan` | Step 4 | Discovery probe dispatch contract |
19
- | `context/testing/e2e.md` | `cbp-round-execute` | Step 5 | E2E specialist dispatch routing |
19
+ | `context/testing/e2e.md` | `cbp-round-build` | Step 5 | E2E specialist dispatch routing |
20
20
  | `context/testing/e2e.md` | `cbp-checkpoint-check` | Step 5b | Whole-checkpoint e2e dispatch |
21
- | `context/testing/eslint.md` | `cbp-task-planner` | Phase 1.5 | ESLint Compliance Checklist |
22
- | `context/testing/eslint.md` | `cbp-improve-round` | Phase 1.5 | Config-file compliance audit |
23
- | `context/mcp-docs.md` | `cbp-task-planner` | Phase 2.6 | MCP library doc lookup contract — per-dependency consultation via DocsByPlan MCP tools (resolve_library_id → search_chunks/lookup_symbol → get_chunk) |
24
- | `context/mcp-docs.md` | `cbp-round-executor` | Step 3.4 | Library-specific reference — pre-write API verification via DocsByPlan MCP tools |
21
+ | `context/testing/eslint.md` | `cbp-round-planner` | Phase 1.5 | ESLint Compliance Checklist |
22
+ | `context/testing/eslint.md` | `cbp-verify-reviewer` | Config-File Mode | Config-file compliance audit |
23
+ | `context/mcp-docs.md` | `cbp-round-planner` | Phase 2.6 | MCP library doc lookup contract — per-dependency consultation via DocsByPlan MCP tools (resolve_library_id → search_chunks/lookup_symbol → get_chunk) |
24
+ | `context/mcp-docs.md` | `cbp-round-builder` | Step 3.4 | Library-specific reference — pre-write API verification via DocsByPlan MCP tools |
25
25
  | `context/architecture/arch-map-spec.md` | `cbp-map-architecture` | Entry | Canonical architecture-map artifact format — per-module frontmatter + sections, INDEX.md row format, dependency-graph format |
26
- | `context/architecture-map.md` | `cbp-task-planner` | Phase 3 | Architecture map consultation contract — when + how to read per-module maps before finalizing scope |
27
- | `context/architecture-map.md` | `cbp-round-executor` | Step 2.4 | Architecture map consultation contract — when + how to read per-module maps before editing files |
28
- | `rules/parallel-waves.md` | `cbp-task-planner` | Phase 5.6 | Wave schema, invariants (3..15 file-count), and the proximity-split algorithm (a `rules/` file, not `context/**`; listed here for consumer discoverability) |
26
+ | `context/architecture-map.md` | `cbp-round-planner` | Phase 3 | Architecture map consultation contract — when + how to read per-module maps before finalizing scope |
27
+ | `context/architecture-map.md` | `cbp-round-builder` | Step 2.4 | Architecture map consultation contract — when + how to read per-module maps before editing files |
28
+ | `rules/parallel-waves.md` | `cbp-round-planner` | Phase 5.6 | Wave schema, invariants (3..15 file-count), and the proximity-split algorithm (a `rules/` file, not `context/**`; listed here for consumer discoverability) |
29
29
 
30
30
  New context files MUST be added here in the same change that introduces the consumer — or the file is orphan infrastructure.
31
31
 
@@ -37,7 +37,7 @@ New context files MUST be added here in the same change that introduces the cons
37
37
 
38
38
  ## Why Fail Loudly
39
39
 
40
- Silent fallback hides drift. A rename or deletion of `context/testing/unit.md` would let `cbp-round-executor` keep writing tests from memory, drifting from the canonical recipe. A failed agent surfaces the drift on the first invocation; silent fallback lets it compound.
40
+ Silent fallback hides drift. A rename or deletion of `context/testing/unit.md` would let `cbp-round-builder` keep writing tests from memory, drifting from the canonical recipe. A failed agent surfaces the drift on the first invocation; silent fallback lets it compound.
41
41
 
42
42
  ## Path Convention
43
43
 
@@ -0,0 +1,73 @@
1
+ ---
2
+ description: The full CodeByPlan development loop — session, planning, the round build/verify cycle, and checkpoint ship — as a concise skill map.
3
+ paths:
4
+ - ".claude/skills/cbp-session-start/**"
5
+ - ".claude/skills/cbp-todo/**"
6
+ - ".claude/skills/cbp-round-plan/**"
7
+ - ".claude/skills/cbp-verify/**"
8
+ - ".claude/skills/cbp-finalize/**"
9
+ ---
10
+
11
+ # Development Workflow
12
+
13
+ The full pipeline, as a map (not a tutorial). Each arrow is an auto-trigger or a single `Next:`
14
+ directive — never an A/B/C menu (`feedback-close-out-routing.md`). Skill names below are the
15
+ canonical post-redesign names.
16
+
17
+ ## Session Frame
18
+
19
+ ```
20
+ /cbp-session-start → ... work ... → /cbp-session-end
21
+ ```
22
+
23
+ `/cbp-todo` answers "what do I work on next" inside a session.
24
+
25
+ ## Planning a Unit of Work
26
+
27
+ ```
28
+ checkpoint-bound: /cbp-checkpoint-create → /cbp-checkpoint-plan → /cbp-checkpoint-start
29
+ standalone: /cbp-standalone-task-create → /cbp-standalone-task-start
30
+ ```
31
+
32
+ `cbp-checkpoint-create` is mechanical (checkpoint row + feat branch, zero tasks);
33
+ `cbp-checkpoint-plan` does the deep planning (tasks as vertical slices); `cbp-checkpoint-start`
34
+ activates + claims. Standalone work skips checkpoint shipment entirely.
35
+
36
+ ## The Round Cycle (per task)
37
+
38
+ ```
39
+ /cbp-round-plan → /cbp-round-build → /cbp-verify (scope=round) → /cbp-round-complete
40
+ ↑ │
41
+ └──────────────── more work wanted on the task ───────────────────────┘
42
+ ```
43
+
44
+ - **`/cbp-round-plan`** — round planning entry (round-1 planning + the folded-in round-input
45
+ deep-analysis role). Spawns `cbp-round-planner`.
46
+ - **`/cbp-round-build`** — owns the plan-approval gate + per-wave execution. Spawns
47
+ `cbp-round-builder`; auto-triggers `/cbp-verify`.
48
+ - **`/cbp-verify` (round scope)** — unified verify stage: deterministic gates +
49
+ real-execution proof + fresh-context review (`cbp-verify-reviewer`). Any fail → `/cbp-round-plan`
50
+ fix round.
51
+ - **`/cbp-round-complete`** — the separate `ask`-tier, `disable-model-invocation` human git-add
52
+ finalizer. The user stages approved files; it reconciles + completes the round.
53
+
54
+ ## Closing the Task → Checkpoint
55
+
56
+ On the **last clean round** of a task, verify escalates to task scope and finalizes:
57
+
58
+ ```
59
+ /cbp-verify (scope=task) → /cbp-finalize → /cbp-checkpoint-check → /cbp-checkpoint-end
60
+ ```
61
+
62
+ - **`/cbp-verify` (scope=task)** — whole-repo `codebyplan check --scope task`, holistic reviewer,
63
+ one batched human walkthrough, writes `task.context.verify_verdict={verdict:'READY'}`.
64
+ - **`/cbp-finalize`** — task-level ship finalizer.
65
+ - **`/cbp-checkpoint-check`** then **`/cbp-checkpoint-end`** — checkpoint re-evaluation +
66
+ shipment (hardcore CI tier, `rules/two-tier-ci.md`).
67
+
68
+ ## Cross-References
69
+
70
+ - `rules/two-tier-ci.md` — soft (round/task) vs hardcore (checkpoint) gate strictness.
71
+ - `rules/execution-proof.md` — the committed-artifact obligation at every verify.
72
+ - `rules/spawn-failure-is-gate-failure.md` — agent spawn failure is a STOP, not a self-grade.
73
+ - `rules/task-routing-recommendation.md` — checkpoint-bound vs standalone command families.
@@ -14,7 +14,7 @@ A framework is **eligible** in a round when ALL hold:
14
14
  - The framework's `app` source path intersects the round's `files_changed` (repo root for
15
15
  single-app repos).
16
16
 
17
- When eligible, `/cbp-round-execute` Step 5 spawns the matching specialist in parallel with
17
+ When eligible, `/cbp-round-build` Step 5 spawns the matching specialist in parallel with
18
18
  `cbp-testing-qa-agent`; `/cbp-checkpoint-check` Step 5b does the same against the aggregated
19
19
  file union with `whole_checkpoint_mode: true`.
20
20
 
@@ -28,8 +28,8 @@ no hard-fail fires.
28
28
  ## `e2e_eligible_skipped` Hard-Fail
29
29
 
30
30
  If a framework was eligible this round but no specialist ran AND no valid skip reason is
31
- recorded, the round **hard-fails** and `/cbp-round-execute` Step 6 auto-triggers
32
- `/cbp-round-input`. Silent skips are bugs, not conveniences — this is the enforcement behind
31
+ recorded, the round **hard-fails** and `/cbp-round-build` Step 6 auto-triggers
32
+ `/cbp-round-plan`. Silent skips are bugs, not conveniences — this is the enforcement behind
33
33
  the opt-out contract.
34
34
 
35
35
  **Valid skip reasons** (must be recorded in `round.context.e2e_outputs[framework]` or the
@@ -54,8 +54,8 @@ check. Pre-flight (`context/testing/e2e.md` Step 6.5.1) is the only mechanism fo
54
54
  env-conditional skipping.
55
55
 
56
56
  A spec that ran with `passed === 0 && skipped > 0` for any path touching `files_changed` is a
57
- **hard fail**, not a pass — `cbp-task-check` (`agents/cbp-task-check.md`) refuses a READY
58
- verdict on a zero-assertion e2e run and routes to a fix round per this rule.
57
+ **hard fail**, not a pass — `cbp-verify-reviewer` (`agents/cbp-verify-reviewer.md`) refuses a
58
+ READY verdict on a zero-assertion e2e run and routes to a fix round per this rule.
59
59
 
60
60
  ## Committed-Screenshot Enforcement
61
61
 
@@ -64,7 +64,7 @@ path it touched is a defect — not a valid pass. Every framework must write at
64
64
  PNG to its committed dir (per the table in `context/testing/e2e.md` § Committed-Screenshot
65
65
  Mandate) and `git add` it before reporting `status: 'completed'`.
66
66
 
67
- `cbp-task-check` refuses a READY verdict when `e2e_gallery[]` is empty AND the round
67
+ `cbp-verify-reviewer` refuses a READY verdict when `e2e_gallery[]` is empty AND the round
68
68
  touched UI source paths for an eligible framework — sole exception: `vscode-test`-only
69
69
  rounds (SD-3, behavior-only extensions; see below). The fix path is the same as for a
70
70
  zero-assertion run: open a fix round that captures the missing committed screenshots.
@@ -77,7 +77,7 @@ has no visual output (behavior-only tests). Agents must still define the dir and
77
77
 
78
78
  - `context/testing/e2e.md` — Input/Output contract, pre-flight loop, failure classification,
79
79
  committed-screenshot mandate, auto-new/gated-changed model, and dispatch routing table.
80
- - `agents/cbp-task-check.md` — enforces the zero-assertion hard-fail and the empty
80
+ - `agents/cbp-verify-reviewer.md` — enforces the zero-assertion hard-fail and the empty
81
81
  `e2e_gallery[]` hard-fail at verdict time.
82
- - `skills/cbp-round-execute/SKILL.md` Step 5/6, `skills/cbp-checkpoint-check/SKILL.md` Step 5b
82
+ - `skills/cbp-round-build/SKILL.md` Step 5/6, `skills/cbp-checkpoint-check/SKILL.md` Step 5b
83
83
  — the config-driven dispatch and `e2e_eligible_skipped` gate implementations.
@@ -0,0 +1,70 @@
1
+ ---
2
+ description: Real execution proof is a non-skippable verify obligation — tiered by what the round touched, every tier producing a COMMITTED artifact, never prose.
3
+ paths:
4
+ - ".claude/skills/cbp-verify/**"
5
+ - ".claude/skills/cbp-round-build/**"
6
+ - ".claude/agents/cbp-verify-reviewer.md"
7
+ - ".claude/agents/cbp-e2e-playwright.md"
8
+ - ".claude/agents/cbp-e2e-maestro.md"
9
+ - ".claude/agents/cbp-e2e-tauri.md"
10
+ - ".claude/agents/cbp-e2e-vscode.md"
11
+ - ".claude/agents/cbp-e2e-xcuitest.md"
12
+ ---
13
+
14
+ # Execution Proof
15
+
16
+ "I verified the build" is not proof. Proof is a **committed artifact** that an auditor can
17
+ re-inspect after the session ends. `cbp-verify` Phase 3 produces it; a passing verdict without
18
+ it is invalid. The required artifact is **tiered by what the round's diff actually touched** —
19
+ the tier is chosen from `files_changed`, not from a `has_ui_work` guess.
20
+
21
+ ## Tiers
22
+
23
+ | Tier | Round touched | Proof obligation | Asserted by |
24
+ |------|---------------|------------------|-------------|
25
+ | **1** | A configured e2e framework's `app` source (`.codebyplan/e2e.json`) | `cbp-e2e-*` specialist runs the app and **commits screenshots** to the framework's committed dir | `codebyplan e2e verify-round` (non-empty gallery + non-zero assertions) |
26
+ | **2** | UI source, but NO e2e framework configured for that app | **MANDATORY** dev-server run + at least one committed route screenshot or HTTP response trace for each changed route | manifest `artifacts[]` + `git ls-files --error-unmatch` |
27
+ | **3** | Backend / API only (route handlers, server actions, endpoints) | Hit each changed endpoint; record an HTTP status trace (method, path, status, ms) committed to the round artifact dir | manifest `artifacts[]` |
28
+ | **4** | `claude_only` / docs / config only (no app surface) | Proof IS the build/test commands — `codebyplan check --scope round\|task` (+ `bash -n` for touched hooks); profile-valid, no screenshot | manifest `gates[]` |
29
+
30
+ A round can hit multiple tiers; satisfy each tier its diff touches.
31
+
32
+ ## Hard Rules
33
+
34
+ - **Empty proof on a UI-touching diff is a GATE FAILURE.** A round whose `files_changed`
35
+ includes UI source but whose manifest carries zero committed screenshots/traces fails verify —
36
+ route to a fix round that captures the missing artifact. (Mirrors `e2e-mandatory.md`
37
+ Committed-Screenshot Enforcement; sole exception: `vscode-test`-only behavior rounds.)
38
+ - **Screenshots must be committed, not `/tmp`.** Each artifact path is proven present with
39
+ `git ls-files --error-unmatch <path>` — an unstaged or `/tmp` file is not proof.
40
+ - **Prose is never proof.** A narrative claim with no artifact path does not satisfy any tier.
41
+
42
+ ## Manifest Schema
43
+
44
+ `cbp-verify` writes a `verify_manifest` into round/task context — the durable record of which
45
+ gates ran and what proof exists:
46
+
47
+ ```yaml
48
+ verify_manifest:
49
+ scope: round | task
50
+ gates: # deterministic gate results
51
+ - name: gate6 | lint | typecheck | tests | audit
52
+ exit_code: number
53
+ new_failures: string[] # post-baseline-diff; [] = pass
54
+ proof:
55
+ tier: 1 | 2 | 3 | 4
56
+ artifacts: # committed proof, one per affected surface
57
+ - kind: screenshot | http_trace | command_log
58
+ path: string # repo-relative; verified via git ls-files --error-unmatch
59
+ affected: string # route / endpoint / file this proves
60
+ e2e_verify_round: # present for Tier 1
61
+ pass: boolean
62
+ failed_checks: string[] # e2e_eligible_skipped | zero_assertion_run | empty_gallery
63
+ decided_at: ISO8601
64
+ ```
65
+
66
+ ## Cross-References
67
+
68
+ - `rules/e2e-mandatory.md` — Tier 1 opt-out contract + committed-screenshot mandate.
69
+ - `rules/two-tier-ci.md` — how proof feeds the soft (round/task) vs hardcore (checkpoint) tiers.
70
+ - `skills/cbp-verify/reference/deterministic-gates.md` — the gate command contracts + manifest write.
@@ -7,8 +7,8 @@ a skill is strictly user-only (i.e. it must never auto-trigger from another skil
7
7
 
8
8
  The absence of `disable-model-invocation` (or `disable-model-invocation: false`) is the normal
9
9
  state. It allows the skill to be auto-triggered via the Skill tool from within other skills —
10
- which is how the auto-trigger close-out flow works (e.g. `cbp-task-check` → `cbp-task-testing`,
11
- `cbp-task-testing` → `cbp-task-complete`).
10
+ which is how the auto-trigger close-out flow works (e.g. `cbp-round-build` → `cbp-verify`,
11
+ `cbp-verify` task scope → `cbp-finalize`).
12
12
 
13
13
  ## The sole exception: `cbp-round-complete`
14
14
 
@@ -1,24 +1,24 @@
1
1
  ---
2
2
  name: parallel-waves
3
- description: Wave schema, invariants, and proximity-split algorithm for cbp-task-planner Phase 5.6 wave decomposition.
3
+ description: Wave schema, invariants, and proximity-split algorithm for cbp-round-planner Phase 5.6 wave decomposition.
4
4
  paths:
5
- - .claude/agents/cbp-task-planner.md
5
+ - .claude/agents/cbp-round-planner.md
6
6
  ---
7
7
 
8
8
  # Parallel Waves
9
9
 
10
- Authoritative expansion of `cbp-task-planner` Phase 5.6. The planner reads this file at wave decomposition time.
10
+ Authoritative expansion of `cbp-round-planner` Phase 5.6. The planner reads this file at wave decomposition time.
11
11
 
12
12
  ## Wave Schema
13
13
 
14
- Each entry in `plan.waves[]` carries these fields (source: `.claude/agents/cbp-task-planner.md` Phase 5.6 "Output" block):
14
+ Each entry in `plan.waves[]` carries these fields (source: `.claude/agents/cbp-round-planner.md` Phase 5.6 "Output" block):
15
15
 
16
16
  ```yaml
17
17
  - name: string # short identifier, e.g. "web-ui", "backend", "db"
18
- agent_type: 'round-executor' | 'inline'
18
+ agent_type: 'round-builder' | 'inline'
19
19
  files: string[] # repo-relative paths owned by this wave
20
20
  depends_on: string[] # names of waves that must complete before this one starts
21
- skill_preloads: string[] # skills invoked by the executor before Step 3 (e.g. "frontend-design")
21
+ skill_preloads: string[] # skills invoked by the builder before Step 3 (e.g. "frontend-design")
22
22
  note: string # optional — required on continuation waves from an arbitrary-boundary split
23
23
  ```
24
24
 
@@ -31,9 +31,9 @@ Each entry in `plan.waves[]` carries these fields (source: `.claude/agents/cbp-t
31
31
  **(III) 3–15 files per wave** — every wave holds between 3 and 15 files (inclusive).
32
32
  - Below 3: merge into a sibling wave.
33
33
  - Above 15: apply the proximity-split algorithm below.
34
- - Sole exception — trivially small plans are exempt from the lower bound: a plan with fewer than 3 total files uses one single wave, and a single-app plan with ≤5 total files MAY skip decomposition entirely (one wave, or `waves[]` omitted — see `cbp-task-planner` Phase 5.6). Zero waves (omitted `waves[]`) trivially satisfies this invariant.
34
+ - Sole exception — trivially small plans are exempt from the lower bound: a plan with fewer than 3 total files uses one single wave, and a single-app plan with ≤5 total files MAY skip decomposition entirely (one wave, or `waves[]` omitted — see `cbp-round-planner` Phase 5.6). Zero waves (omitted `waves[]`) trivially satisfies this invariant.
35
35
 
36
- **(IV) UI skill preloads** — for each wave whose `files[]` contains UI-bearing paths (`*.tsx`, `*.jsx`, `*.scss`, etc.), add `"frontend-design"` to `skill_preloads[]` (source: `.claude/agents/cbp-task-planner.md` Phase 5.6 step "Populate `skill_preloads[]`").
36
+ **(IV) UI skill preloads** — for each wave whose `files[]` contains UI-bearing paths (`*.tsx`, `*.jsx`, `*.scss`, etc.), add `"frontend-design"` to `skill_preloads[]` (source: `.claude/agents/cbp-round-planner.md` Phase 5.6 step "Populate `skill_preloads[]`").
37
37
 
38
38
  ## Proximity-Split Algorithm
39
39
 
@@ -57,7 +57,7 @@ Invariants I (disjoint files), II (acyclic `depends_on` DAG), and III (3–15 fi
57
57
 
58
58
  ## Cross-References
59
59
 
60
- - `agents/cbp-task-planner.md` Phase 5.6 — consumer of this rule; steps 1–6 and the `validate-waves` verification call.
60
+ - `agents/cbp-round-planner.md` Phase 5.6 — consumer of this rule; steps 1–6 and the `validate-waves` verification call.
61
61
  - `packages/codebyplan-package/src/lib/validate-waves.ts` — deterministic enforcement of invariants I–III.
62
- - `agents/cbp-round-executor.md` Step 2.6 — wave-mode skill preloads.
63
- - `skills/cbp-round-execute/SKILL.md` Step 3 — per-wave executor dispatch.
62
+ - `agents/cbp-round-builder.md` Step 2.6 — wave-mode skill preloads.
63
+ - `skills/cbp-round-build/SKILL.md` Step 3 — per-wave builder dispatch.
@@ -0,0 +1,76 @@
1
+ ---
2
+ description: A subagent spawn failure is a HARD GATE FAILURE — STOP and retry, never walk the agent's steps inline and self-certify.
3
+ paths:
4
+ - ".claude/skills/cbp-verify/**"
5
+ - ".claude/skills/cbp-round-build/**"
6
+ - ".claude/skills/cbp-finalize/**"
7
+ - ".claude/agents/cbp-verify-reviewer.md"
8
+ - ".claude/agents/cbp-round-builder.md"
9
+ ---
10
+
11
+ # Spawn Failure Is Gate Failure
12
+
13
+ When a verify/execution stage delegates work to a subagent (e.g. `cbp-verify` spawning
14
+ `cbp-verify-reviewer`, `cbp-round-build` spawning `cbp-round-builder`), the agent is the
15
+ **fresh-context oracle**. If the agent cannot run, the orchestrator does NOT have an
16
+ equivalent signal — and it must NEVER manufacture one.
17
+
18
+ ## The Rule
19
+
20
+ A **spawn failure** — the agent could not run, or died on a terminal error before producing
21
+ its output contract — is a **HARD GATE FAILURE**. The orchestrator STOPS and surfaces a retry
22
+ directive. It does NOT walk the agent's phase checklist inline with its own tools and grade its
23
+ own work. Self-certification by the orchestrator that spawned the agent is precisely the
24
+ fresh-context blind spot the agent exists to remove; reproducing the agent's steps inline
25
+ re-introduces it.
26
+
27
+ Spawn-failure classes (non-exhaustive): provider 5xx, rate-limit / monthly-cap / billing block,
28
+ context overflow at spawn, the agent process dying before emitting its output contract.
29
+
30
+ **Retry directive shape** (surface verbatim, then STOP):
31
+
32
+ ```
33
+ ## Verify blocked — reviewer could not spawn
34
+
35
+ The fresh-context reviewer (<agent>) failed to spawn: <class> — <verbatim error>.
36
+ This is a hard gate failure, not a pass. Retry when capacity returns:
37
+ Next: /cbp-verify
38
+ ```
39
+
40
+ Record `<scope>.context.verify.spawn_failure = { agent, class, error_message, decided_at }` so
41
+ the retry is auditable and a verdict is never written on a missing review.
42
+
43
+ ## Spawn-Failed vs Spawn-Ran-And-Found-Problems
44
+
45
+ These are different outcomes with opposite routes — do not conflate them:
46
+
47
+ | Outcome | Meaning | Route |
48
+ |---------|---------|-------|
49
+ | **Spawn failed** | Agent never produced its output contract (terminal error). | HARD GATE FAILURE → STOP + retry directive. No verdict written. |
50
+ | **Spawn ran, found problems** | Agent returned findings / `NOT_READY`. | Normal flow → in-scope mechanical fix or `/cbp-round-plan` fix round. |
51
+
52
+ A returned `NOT_READY` is a *successful* review with a negative verdict — it is acted on, not
53
+ retried. Only the absence of a contract is a spawn failure.
54
+
55
+ ## Carve-Out: The `claude_only` Profile Is Not Inline Fallback
56
+
57
+ The `claude_only` profile (rounds with no app surface — `.claude/`-only edits, docs, config)
58
+ has **no agent to spawn by design**. Its proof IS the deterministic command set:
59
+ `codebyplan check --scope round|task` plus `bash -n <hook>` for any touched shell file. Running
60
+ those inline is a **first-class deterministic verification path**, not a banned inline fallback —
61
+ there was never a subagent to substitute for. This carve-out applies ONLY when the resolved
62
+ profile is `claude_only`; for every other profile an agent is expected, and its spawn failure is
63
+ a hard gate failure per above.
64
+
65
+ ## Why (Replaces Inline-Fallback Self-Certification)
66
+
67
+ The retired `inline-fallback.md` procedures let an orchestrator that just failed to spawn an
68
+ agent walk that agent's steps and pass its own work. That defeats the entire point of a
69
+ fresh-context review and silently downgraded quality under sustained outages. This rule replaces
70
+ those procedures: a missing review is a STOP, not a self-graded continue.
71
+
72
+ ## Cross-References
73
+
74
+ - `skills/cbp-verify/SKILL.md` Phase 4 — the reviewer spawn + this hard-fail.
75
+ - `agents/cbp-verify-reviewer.md` — the reviewer whose absence triggers this rule.
76
+ - `rules/execution-proof.md` — the proof obligation a passing verdict still requires.
@@ -12,7 +12,7 @@ CodeByPlan has two families of task commands since CHK-141:
12
12
 
13
13
  | Family | Commands | When to use |
14
14
  |--------|----------|-------------|
15
- | Checkpoint-bound | `/cbp-task-create`, `/cbp-task-start {chk}-{task}`, `/cbp-task-check`, `/cbp-task-testing`, `/cbp-task-complete` | Work that belongs to a CHK-NNN checkpoint |
15
+ | Checkpoint-bound | `/cbp-task-create`, `/cbp-task-start {chk}-{task}`, `/cbp-verify`, `/cbp-finalize` | Work that belongs to a CHK-NNN checkpoint |
16
16
  | Standalone | `/cbp-standalone-task-create`, `/cbp-standalone-task-start {task}`, `/cbp-standalone-task-check`, `/cbp-standalone-task-testing`, `/cbp-standalone-task-complete` | Independent work not tied to any checkpoint |
17
17
 
18
18
  ## Round Commands (Both Families)
@@ -62,8 +62,8 @@ The queue head (`get_todos` `rows[0]`) maps to one of these slash commands. The
62
62
 
63
63
  | State | Command | Required context |
64
64
  |-------|---------|------------------|
65
- | Round in progress | `/cbp-round-update` | `{checkpoint_id, task_id, round_id}` |
66
- | Round pending start | `/cbp-round-start` | `{checkpoint_id, task_id}` |
65
+ | Round in progress | `/cbp-verify` | `{checkpoint_id, task_id, round_id}` |
66
+ | Round pending start | `/cbp-round-plan` | `{checkpoint_id, task_id}` |
67
67
  | Task pending start | `/cbp-task-start` | `{checkpoint_id, task_id}` or `{task_id}` for standalone |
68
68
  | Checkpoint pending activation | `/cbp-checkpoint-update` | `{checkpoint_id}` |
69
69
  | Checkpoint done | `/cbp-checkpoint-check` | `{checkpoint_id}` |
@@ -118,4 +118,4 @@ CHK-111 shipped the original todos queue as Postgres triggers + a 583-LOC `regen
118
118
  4. Env vars (from `apps/todo-worker/.env.example`): `SUPABASE_URL`, `SUPABASE_SECRET_KEY` (an `sb_secret_...` key), `LOG_LEVEL`, `WORKER_POLL_MS`.
119
119
  5. Save the resulting `project_ref` to `.codebyplan.json` `shipment.surfaces.railway-todo-worker.project_ref`.
120
120
 
121
- Smoke after deploy: run `/cbp-task-complete` in any worktree → tail Railway logs → expect a `claim → apply` cycle within `WORKER_POLL_MS`.
121
+ Smoke after deploy: run `/cbp-finalize` in any worktree → tail Railway logs → expect a `claim → apply` cycle within `WORKER_POLL_MS`.
@@ -0,0 +1,63 @@
1
+ ---
2
+ description: Two CI tiers — soft (round/task → feat) is baseline-tolerant; hardcore (checkpoint → main) is whole-repo absolute green. Branch model is feat→main direct.
3
+ paths:
4
+ - ".claude/skills/cbp-verify/**"
5
+ - ".claude/skills/cbp-checkpoint-check/**"
6
+ - ".claude/skills/cbp-checkpoint-end/**"
7
+ - ".claude/skills/cbp-ship-main/**"
8
+ - ".codebyplan/ci.json"
9
+ ---
10
+
11
+ # Two Tier CI
12
+
13
+ CodeByPlan gates work at two strictness tiers. The tier is chosen by **what is being
14
+ promoted**, not by preference.
15
+
16
+ ## Soft Tier — round / task → feat branch
17
+
18
+ Runs at every `cbp-verify` (round scope) and the task-scope escalation. **Baseline-tolerant**:
19
+ pre-existing red is non-blocking; only NEW per-package failures fail.
20
+
21
+ - `codebyplan check --scope round|task` (NO `--no-baseline`). Each baselined check
22
+ (`lint` / `typecheck` / `tests` / `audit`) fails ONLY when its `new_failures[]` is non-empty
23
+ vs `.check-baseline.json`. `gate6` (sibling-identity parity) is **always hard** — never
24
+ baselined.
25
+ - `codebyplan e2e verify-round --round-id <id> --task-id <id>` per round (Tier-1 e2e proof).
26
+ - Fresh-context review via `cbp-verify-reviewer` (its spawn failure is a hard gate failure —
27
+ `rules/spawn-failure-is-gate-failure.md`).
28
+
29
+ The soft tier keeps the inner loop fast: a feat branch may carry the repo's known baseline red
30
+ forward without blocking, while guaranteeing the work being added is itself clean.
31
+
32
+ ## Hardcore Tier — checkpoint → main
33
+
34
+ Runs at checkpoint close (`cbp-checkpoint-check` / `cbp-checkpoint-end` / ship). **Zero baseline
35
+ forgiveness — whole-repo absolute green.**
36
+
37
+ - `codebyplan check --scope merged --no-baseline` = every failing package and every GHSA id
38
+ counts; any red fails. (`gate6` unchanged — still always hard.)
39
+ - Aggregate e2e proof across the whole checkpoint diff.
40
+ - Every required `main` branch-protection PR check is green (repo-specific — read the repo's
41
+ configured required checks, never assume a single hardcoded check name).
42
+
43
+ ## Critical Constraint — feat→main DIRECT, main-only
44
+
45
+ The branch model is **feat→main direct**; `.codebyplan/git.json` has `integration: null`,
46
+ `production: "main"`. There is **NO intermediate integration branch** — the "checkpoint branch"
47
+ IS the per-checkpoint feat branch. The hardcore tier runs against that feat branch's merged
48
+ state before it lands on main; do not assume a staging/integration hop exists.
49
+
50
+ ## Report-Only Rollout
51
+
52
+ The whole-repo hardcore CI **job** lands **report-only first** (`continue-on-error: true`) and is
53
+ flipped to a required check ONLY after the `apps/web` baseline is burned down. Until then,
54
+ `--scope merged --no-baseline` is advisory in CI — surfaced, not enforced — so a pre-existing
55
+ `apps/web` red does not block a merge while the baseline is still being paid down. Locally,
56
+ `cbp-verify` still runs and reports it.
57
+
58
+ ## Cross-References
59
+
60
+ - `rules/execution-proof.md` — the committed-artifact obligation feeding both tiers.
61
+ - `rules/spawn-failure-is-gate-failure.md` — fresh-context review is non-substitutable.
62
+ - `skills/cbp-verify/reference/deterministic-gates.md` — exact gate commands + JSON contracts.
63
+ - `.codebyplan/git.json` — authoritative branch model (`integration: null`, `production: main`).
@@ -56,9 +56,9 @@
56
56
  "Skill(cbp-checkpoint-check)",
57
57
  "Skill(cbp-checkpoint-complete)",
58
58
  "Skill(cbp-round-complete)",
59
- "Skill(cbp-round-execute)",
59
+ "Skill(cbp-round-build)",
60
60
  "Skill(cbp-session-end)",
61
- "Skill(cbp-task-complete)",
61
+ "Skill(cbp-finalize)",
62
62
  "Skill(cbp-standalone-task-create)",
63
63
  "Skill(cbp-standalone-task-start)",
64
64
  "Skill(cbp-standalone-task-complete)",
@@ -126,12 +126,7 @@
126
126
  "Skill(cbp-map-architecture)",
127
127
  "Skill(cbp-merge-main)",
128
128
  "Skill(cbp-refresh-arch-map)",
129
- "Skill(cbp-refresh-infra)",
130
- "Skill(cbp-round-check)",
131
- "Skill(cbp-round-end)",
132
- "Skill(cbp-round-input)",
133
- "Skill(cbp-round-start)",
134
- "Skill(cbp-round-update)",
129
+ "Skill(cbp-round-plan)",
135
130
  "Skill(cbp-session-start)",
136
131
  "Skill(cbp-setup-cd)",
137
132
  "Skill(cbp-setup-ci)",
@@ -144,11 +139,10 @@
144
139
  "Skill(cbp-supabase-branch-check)",
145
140
  "Skill(cbp-supabase-migrate)",
146
141
  "Skill(cbp-supabase-setup)",
147
- "Skill(cbp-task-check)",
148
142
  "Skill(cbp-task-create)",
149
143
  "Skill(cbp-task-start)",
150
- "Skill(cbp-task-testing)",
151
144
  "Skill(cbp-todo)",
145
+ "Skill(cbp-verify)",
152
146
  "Skill(supabase)",
153
147
  "Skill(supabase-postgres-best-practices)",
154
148
  "mcp__codebyplan__get_checkpoints",
@@ -214,6 +208,8 @@
214
208
  "Bash(npx codebyplan ports:*)",
215
209
  "Bash(codebyplan tech-stack:*)",
216
210
  "Bash(npx codebyplan tech-stack:*)",
211
+ "Bash(codebyplan docs:*)",
212
+ "Bash(npx codebyplan docs:*)",
217
213
  "Bash(codebyplan eslint:*)",
218
214
  "Bash(npx codebyplan eslint:*)",
219
215
  "Bash(codebyplan lsp:*)",
@@ -228,6 +224,8 @@
228
224
  "Bash(npx codebyplan checkpoint:*)",
229
225
  "Bash(codebyplan task:*)",
230
226
  "Bash(npx codebyplan task:*)",
227
+ "Bash(codebyplan standalone-task:*)",
228
+ "Bash(npx codebyplan standalone-task:*)",
231
229
  "Bash(codebyplan session:*)",
232
230
  "Bash(npx codebyplan session:*)",
233
231
  "Bash(codebyplan help:*)",