codebyplan 1.13.60 → 1.13.62
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/dist/ci.js +518 -0
- package/dist/cli.js +427 -359
- package/package.json +12 -2
- package/templates/agents/cbp-e2e-maestro.md +1 -1
- package/templates/agents/cbp-e2e-playwright.md +1 -1
- package/templates/agents/cbp-e2e-tauri.md +1 -1
- package/templates/agents/cbp-e2e-vscode.md +1 -1
- package/templates/agents/cbp-e2e-xcuitest.md +1 -1
- package/templates/rules/effort-and-ultracode.md +70 -0
- package/templates/rules/model-invocation-convention.md +1 -0
- package/templates/rules/workflow-orchestration.md +59 -0
- package/templates/skills/cbp-build-cc-agent/SKILL.md +1 -0
- package/templates/skills/cbp-build-cc-claude-file/SKILL.md +1 -0
- package/templates/skills/cbp-build-cc-mode/SKILL.md +25 -17
- package/templates/skills/cbp-build-cc-rule/SKILL.md +1 -0
- package/templates/skills/cbp-build-cc-settings/SKILL.md +1 -0
- package/templates/skills/cbp-build-cc-settings/reference/settings-fields.md +1 -1
- package/templates/skills/cbp-build-cc-skill/SKILL.md +2 -1
- package/templates/skills/cbp-build-cc-skill/reference/frontmatter-fields.md +1 -1
- package/templates/skills/cbp-build-cc-skill/scripts/validate-skill.sh +12 -9
- package/templates/skills/cbp-checkpoint-check/SKILL.md +5 -0
- package/templates/skills/cbp-checkpoint-complete/SKILL.md +1 -0
- package/templates/skills/cbp-checkpoint-create/SKILL.md +1 -0
- package/templates/skills/cbp-checkpoint-end/SKILL.md +5 -0
- package/templates/skills/cbp-checkpoint-plan/SKILL.md +5 -0
- package/templates/skills/cbp-checkpoint-start/SKILL.md +1 -0
- package/templates/skills/cbp-checkpoint-update/SKILL.md +2 -1
- package/templates/skills/cbp-clear-continue/SKILL.md +2 -1
- package/templates/skills/cbp-clear-prep/SKILL.md +2 -1
- package/templates/skills/cbp-finalize/SKILL.md +1 -0
- package/templates/skills/cbp-frontend-design/SKILL.md +1 -0
- package/templates/skills/cbp-frontend-ui/SKILL.md +2 -1
- package/templates/skills/cbp-frontend-ux/SKILL.md +2 -1
- package/templates/skills/cbp-git-branch-feat-create/SKILL.md +1 -0
- package/templates/skills/cbp-git-commit/SKILL.md +1 -0
- package/templates/skills/cbp-map-architecture/SKILL.md +5 -0
- package/templates/skills/cbp-merge-main/SKILL.md +1 -0
- package/templates/skills/cbp-refresh-arch-map/SKILL.md +1 -0
- package/templates/skills/cbp-round-build/SKILL.md +5 -0
- package/templates/skills/cbp-round-complete/SKILL.md +1 -0
- package/templates/skills/cbp-round-plan/SKILL.md +5 -0
- package/templates/skills/cbp-session-end/SKILL.md +2 -1
- package/templates/skills/cbp-session-start/SKILL.md +1 -0
- package/templates/skills/cbp-setup-cd/SKILL.md +2 -1
- package/templates/skills/cbp-setup-ci/SKILL.md +2 -1
- package/templates/skills/cbp-setup-e2e/SKILL.md +2 -1
- package/templates/skills/cbp-setup-eslint/SKILL.md +2 -1
- package/templates/skills/cbp-ship/SKILL.md +5 -0
- package/templates/skills/cbp-ship-configure/SKILL.md +2 -1
- package/templates/skills/cbp-ship-main/SKILL.md +1 -0
- package/templates/skills/cbp-standalone-task-check/SKILL.md +1 -0
- package/templates/skills/cbp-standalone-task-complete/SKILL.md +1 -0
- package/templates/skills/cbp-standalone-task-create/SKILL.md +2 -1
- package/templates/skills/cbp-standalone-task-start/SKILL.md +2 -1
- package/templates/skills/cbp-standalone-task-testing/SKILL.md +2 -1
- package/templates/skills/cbp-stripe/SKILL.md +2 -1
- package/templates/skills/cbp-supabase-branch-check/SKILL.md +2 -1
- package/templates/skills/cbp-supabase-migrate/SKILL.md +1 -0
- package/templates/skills/cbp-supabase-setup/SKILL.md +2 -1
- package/templates/skills/cbp-task-create/SKILL.md +2 -1
- package/templates/skills/cbp-task-start/SKILL.md +1 -0
- package/templates/skills/cbp-todo/SKILL.md +2 -1
- package/templates/skills/cbp-verify/SKILL.md +5 -0
- package/templates/skills/supabase/SKILL.md +2 -0
- package/templates/skills/supabase-postgres-best-practices/SKILL.md +2 -0
package/package.json
CHANGED
|
@@ -1,18 +1,28 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "codebyplan",
|
|
3
|
-
"version": "1.13.
|
|
3
|
+
"version": "1.13.62",
|
|
4
4
|
"description": "CLI for CodeByPlan — AI-powered development planning and tracking",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
7
7
|
"codebyplan": "dist/cli.js"
|
|
8
8
|
},
|
|
9
|
+
"exports": {
|
|
10
|
+
".": null,
|
|
11
|
+
"./ci": {
|
|
12
|
+
"types": "./dist/ci-public.d.ts",
|
|
13
|
+
"default": "./dist/ci.js"
|
|
14
|
+
}
|
|
15
|
+
},
|
|
9
16
|
"files": [
|
|
10
17
|
"dist/cli.js",
|
|
18
|
+
"dist/ci.js",
|
|
19
|
+
"dist/**/*.d.ts",
|
|
20
|
+
"dist/**/*.d.ts.map",
|
|
11
21
|
"templates/",
|
|
12
22
|
"README.md"
|
|
13
23
|
],
|
|
14
24
|
"scripts": {
|
|
15
|
-
"build": "tsc --project tsconfig.build.json",
|
|
25
|
+
"build": "tsc --project tsconfig.build.json && node esbuild.npm.mjs",
|
|
16
26
|
"build:npm": "node esbuild.npm.mjs",
|
|
17
27
|
"prepare": "node -e \"const v=process.env.CI;process.exit(v&&v!=='false'&&v!=='0'?0:1)\" || node esbuild.npm.mjs",
|
|
18
28
|
"lint": "eslint",
|
|
@@ -3,7 +3,7 @@ name: cbp-e2e-maestro
|
|
|
3
3
|
description: Maestro E2E flow authoring + execution for Expo/React Native mobile apps (android + ios). Spawned by /cbp-round-build Step 5 and /cbp-checkpoint-check Step 5b when framework is 'maestro'.
|
|
4
4
|
tools: Read, Write, Edit, Glob, Grep, Bash, AskUserQuestion, mcp__codebyplan__get_repos
|
|
5
5
|
model: sonnet
|
|
6
|
-
effort:
|
|
6
|
+
effort: high
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# Maestro E2E Agent
|
|
@@ -3,7 +3,7 @@ name: cbp-e2e-playwright
|
|
|
3
3
|
description: Playwright E2E test authoring + execution for web app routes. Spawned by /cbp-round-build Step 5 and /cbp-checkpoint-check Step 5b when framework is 'playwright'.
|
|
4
4
|
tools: Read, Write, Edit, Glob, Grep, Bash, AskUserQuestion, mcp__codebyplan__get_repos
|
|
5
5
|
model: sonnet
|
|
6
|
-
effort:
|
|
6
|
+
effort: high
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# Playwright E2E Agent
|
|
@@ -3,7 +3,7 @@ name: cbp-e2e-tauri
|
|
|
3
3
|
description: WebDriverIO + tauri-driver E2E test authoring + execution for Tauri desktop apps. Spawned by /cbp-round-build Step 5 and /cbp-checkpoint-check Step 5b when framework is 'webdriverio'.
|
|
4
4
|
tools: Read, Write, Edit, Glob, Grep, Bash, AskUserQuestion, mcp__codebyplan__get_repos
|
|
5
5
|
model: sonnet
|
|
6
|
-
effort:
|
|
6
|
+
effort: high
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# Tauri E2E Agent
|
|
@@ -3,7 +3,7 @@ name: cbp-e2e-vscode
|
|
|
3
3
|
description: VS Code extension E2E test authoring + execution using @vscode/test-cli and @vscode/test-electron. Spawned by /cbp-round-build Step 5 and /cbp-checkpoint-check Step 5b when framework is 'vscode-test'.
|
|
4
4
|
tools: Read, Write, Edit, Glob, Grep, Bash, AskUserQuestion, mcp__codebyplan__get_repos
|
|
5
5
|
model: sonnet
|
|
6
|
-
effort:
|
|
6
|
+
effort: high
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# VS Code Extension E2E Agent
|
|
@@ -3,7 +3,7 @@ name: cbp-e2e-xcuitest
|
|
|
3
3
|
description: XCUITest native iOS E2E test authoring + execution for Expo apps targeting system dialogs, HealthKit, watchOS, or other areas Maestro cannot reach. Spawned by /cbp-round-build Step 5 and /cbp-checkpoint-check Step 5b when framework is 'xcuitest'.
|
|
4
4
|
tools: Read, Write, Edit, Glob, Grep, Bash, AskUserQuestion, mcp__codebyplan__get_repos
|
|
5
5
|
model: sonnet
|
|
6
|
-
effort:
|
|
6
|
+
effort: high
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# XCUITest E2E Agent
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Effort ladder (low..max), per-model support, frontmatter usage, and the session-only ultracode mode.
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Effort and Ultracode
|
|
6
|
+
|
|
7
|
+
On-demand reference for effort levels and the ultracode mode in Claude Code.
|
|
8
|
+
|
|
9
|
+
## Effort Ladder
|
|
10
|
+
|
|
11
|
+
| Level | Gloss |
|
|
12
|
+
|-------|-------|
|
|
13
|
+
| `low` | Latency-sensitive, trivial tasks — minimal reasoning |
|
|
14
|
+
| `medium` | Standard tasks — moderate reasoning |
|
|
15
|
+
| `high` | Default for most models — solid reasoning budget |
|
|
16
|
+
| `xhigh` | Extended reasoning — slower, better for complex multi-step work |
|
|
17
|
+
| `max` | Deepest reasoning available — session-only, can overthink simple tasks |
|
|
18
|
+
|
|
19
|
+
## Per-Model Support
|
|
20
|
+
|
|
21
|
+
| Model | Supported levels | Default effort |
|
|
22
|
+
|-------|-----------------|----------------|
|
|
23
|
+
| Opus 4.8, Fable 5 | `low` `medium` `high` `xhigh` `max` | `high` |
|
|
24
|
+
| Opus 4.7 | `low` `medium` `high` `xhigh` `max` | `xhigh` |
|
|
25
|
+
| Opus 4.6, Sonnet 4.6 | `low` `medium` `high` `max` (`xhigh` → falls back to `high`) | `high` |
|
|
26
|
+
|
|
27
|
+
## Precedence (highest → lowest)
|
|
28
|
+
|
|
29
|
+
1. `CLAUDE_CODE_EFFORT_LEVEL` env var
|
|
30
|
+
2. Frontmatter `effort:` (while a skill/agent is active)
|
|
31
|
+
3. `effortLevel` in `settings.json`
|
|
32
|
+
4. Model default
|
|
33
|
+
|
|
34
|
+
## Frontmatter Usage
|
|
35
|
+
|
|
36
|
+
Skills set `model: inherit` + `effort: <level>`. Subagents pin `model: <id>` + `effort: <level>`.
|
|
37
|
+
Both override the session level only while active.
|
|
38
|
+
|
|
39
|
+
`effort: ultracode` is **invalid** in frontmatter — `validate-skill.sh` errors on it. Use
|
|
40
|
+
`effort: max` for the heaviest per-skill reasoning budget; enable ultracode session-wide with
|
|
41
|
+
`/effort ultracode`.
|
|
42
|
+
|
|
43
|
+
## settings.json `effortLevel`
|
|
44
|
+
|
|
45
|
+
Accepts `low | medium | high | xhigh` **only**. `max` and `ultracode` are session-only and
|
|
46
|
+
rejected by the settings validator.
|
|
47
|
+
|
|
48
|
+
This repo's default is `xhigh` (`.claude/settings.json`). You **cannot** default ultracode
|
|
49
|
+
in settings.json — enable it per-session instead.
|
|
50
|
+
|
|
51
|
+
## Ultracode Mode
|
|
52
|
+
|
|
53
|
+
ultracode = `xhigh` reasoning + automatic Workflow orchestration for substantive tasks.
|
|
54
|
+
It is a **session-only** Claude Code mode, NOT a frontmatter `effort` value, NOT `effortLevel`,
|
|
55
|
+
NOT `--effort`, NOT `CLAUDE_CODE_EFFORT_LEVEL`.
|
|
56
|
+
|
|
57
|
+
**Enable via:**
|
|
58
|
+
- `/effort ultracode` (in-session slash command)
|
|
59
|
+
- `claude --settings '{"ultracode": true}'`
|
|
60
|
+
- An Agent SDK control request
|
|
61
|
+
|
|
62
|
+
Applies to the current session only — resets on a new session.
|
|
63
|
+
|
|
64
|
+
**When to enable:** heavy multi-step checkpoints where deterministic multi-agent fan-out
|
|
65
|
+
helps. See `rules/workflow-orchestration.md` for full orchestration guidance.
|
|
66
|
+
|
|
67
|
+
## Related
|
|
68
|
+
|
|
69
|
+
- `rules/model-invocation-convention.md` — model pinning in skill/agent frontmatter
|
|
70
|
+
- `rules/workflow-orchestration.md` — Workflow tool pattern, opt-in gate, and when to use it instead of ad-hoc Task/Agent spawns
|
|
@@ -38,3 +38,4 @@ See `.claude/skills/cbp-build-cc-settings/reference/cbp-permission-policy.md` fo
|
|
|
38
38
|
|
|
39
39
|
- `rules/scope-vocabulary.md` — scope marker conventions for managed vs user-created files
|
|
40
40
|
- `cbp-build-cc-settings/reference/cbp-permission-policy.md` — allow/ask tiers
|
|
41
|
+
- `rules/effort-and-ultracode.md` — effort ladder, per-model support, and the session-only ultracode mode
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Workflow tool — deterministic JS multi-agent orchestration for heavy fan-out. What it is, when to reach for it, the opt-in gate, and how it relates to ad-hoc Task/Agent spawning.
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Workflow Orchestration
|
|
6
|
+
|
|
7
|
+
On-demand reference for the `Workflow` tool — the structured alternative to ad-hoc `Task`/`Agent`
|
|
8
|
+
spawning when a step fans out across many independent units of work.
|
|
9
|
+
|
|
10
|
+
## What It Is
|
|
11
|
+
|
|
12
|
+
`Workflow` runs a deterministic JavaScript orchestration script that spawns and coordinates
|
|
13
|
+
subagents. The control flow (loops, conditionals, fan-out) lives in the script, not in model
|
|
14
|
+
judgement. Core primitives:
|
|
15
|
+
|
|
16
|
+
- `agent(prompt, opts)` — spawn a subagent; with a `schema` it returns a validated structured
|
|
17
|
+
object instead of raw text.
|
|
18
|
+
- `parallel(thunks)` — run tasks concurrently to a **barrier** (awaits all before returning).
|
|
19
|
+
- `pipeline(items, ...stages)` — stream each item through stages with **no barrier** between them
|
|
20
|
+
(the default for multi-stage work — wall-clock is the slowest single chain, not sum-of-stages).
|
|
21
|
+
- `phase(title)` / `log(message)` — progress grouping and narration.
|
|
22
|
+
|
|
23
|
+
Built in: per-agent structured-output validation, a concurrency cap, a shared token budget,
|
|
24
|
+
loop-until-done / loop-until-dry accumulation, and resume from a prior run.
|
|
25
|
+
|
|
26
|
+
## When To Reach For It
|
|
27
|
+
|
|
28
|
+
- **Many independent items** — a per-module sweep, a per-file migration, a per-surface deploy.
|
|
29
|
+
- **Parallel waves with a barrier** — wave A must fully complete before wave B starts.
|
|
30
|
+
- **Adversarial / multi-vote verification** — N independent reviewers vote to confirm a finding.
|
|
31
|
+
- **Scale beyond one context** — coverage a single conversation cannot hold.
|
|
32
|
+
|
|
33
|
+
Contrast: a single one-off subagent stays on the plain `Task`/`Agent` tool. Workflow's setup
|
|
34
|
+
overhead only pays off at fan-out scale.
|
|
35
|
+
|
|
36
|
+
## Opt-In Gate
|
|
37
|
+
|
|
38
|
+
`Workflow` is **not** invoked by default. Reach for it only when one holds:
|
|
39
|
+
|
|
40
|
+
- **ultracode** mode is active in the session (`/effort ultracode`) — under ultracode Claude
|
|
41
|
+
auto-reaches for Workflow on substantive fan-out tasks; **or**
|
|
42
|
+
- the **user explicitly opts in** ("use a workflow", "fan out agents", "orchestrate this"); **or**
|
|
43
|
+
- a skill or command's own instructions tell you to author one.
|
|
44
|
+
|
|
45
|
+
Outside those, do NOT call `Workflow` — use the existing `Task`/`Agent` spawn, or describe what a
|
|
46
|
+
workflow could do and ask first. The tool can spawn dozens of agents and is token-heavy — the scale
|
|
47
|
+
must be requested, not inferred.
|
|
48
|
+
|
|
49
|
+
## Relationship to Task/Agent Spawning
|
|
50
|
+
|
|
51
|
+
`Task`/`Agent` spawning is the **default** for subagent work and is unchanged everywhere it is used.
|
|
52
|
+
`Workflow` is the **structured alternative** for heavy fan-out — additive, not a replacement. A
|
|
53
|
+
common shape is **hybrid**: scout inline first to discover the work-list, then author a `Workflow`
|
|
54
|
+
that pipelines over it.
|
|
55
|
+
|
|
56
|
+
## Related
|
|
57
|
+
|
|
58
|
+
- `rules/effort-and-ultracode.md` — effort ladder, per-model support, and the session-only ultracode mode that auto-enables this orchestration path
|
|
59
|
+
- `rules/model-invocation-convention.md` — model pinning in skill/agent frontmatter
|
|
@@ -3,6 +3,7 @@ name: cbp-build-cc-agent
|
|
|
3
3
|
description: Build a Claude Code subagent at .claude/agents/{name}.md (flat form, per the official sub-agents spec) following the official sub-agents spec (frontmatter, tools, model, hooks, skills preload, permission modes, isolation).
|
|
4
4
|
argument-hint: "[agent-name] [--scope=project|user] [--isolation=worktree]"
|
|
5
5
|
allowed-tools: Read, Write, Edit, Glob, Grep, Bash(mkdir *), Bash(chmod *)
|
|
6
|
+
model: inherit
|
|
6
7
|
effort: xhigh
|
|
7
8
|
---
|
|
8
9
|
|
|
@@ -3,6 +3,7 @@ name: cbp-build-cc-claude-file
|
|
|
3
3
|
description: Create or update a CLAUDE.md file at any scope (managed, project, user, local) following the official memory spec — imports (@path), nested discovery, AGENTS.md bridge, comment stripping, and claudeMdExcludes.
|
|
4
4
|
argument-hint: "[action] [--scope=managed|project|user|local]"
|
|
5
5
|
allowed-tools: Read, Write, Edit, Glob, Grep
|
|
6
|
+
model: inherit
|
|
6
7
|
effort: xhigh
|
|
7
8
|
---
|
|
8
9
|
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: cbp-build-cc-mode
|
|
3
|
-
description: Audit + apply the CHK-
|
|
3
|
+
description: Audit + apply the CHK-229 model/effort convention across every authoring skill and agent under `packages/codebyplan-package/templates/`. Skills set `model: inherit` + `effort:`; agents pin `model:` + `effort:`. Bare invocation audits and reports frontmatter gaps; with a path argument, edits the target file's frontmatter to the convention-decided values.
|
|
4
4
|
argument-hint: "[path-to-agent-or-skill]"
|
|
5
5
|
allowed-tools: Read, Write, Edit, Glob, Grep
|
|
6
|
+
model: inherit
|
|
6
7
|
effort: xhigh
|
|
7
8
|
---
|
|
8
9
|
|
|
@@ -12,8 +13,8 @@ Audit or apply the canonical model/effort frontmatter convention across every au
|
|
|
12
13
|
|
|
13
14
|
The convention splits by surface:
|
|
14
15
|
|
|
15
|
-
- **Skills
|
|
16
|
-
- **Agents pin `model:` explicitly.** A spawned/forked subagent
|
|
16
|
+
- **Skills set `model: inherit` AND `effort:`.** The `model: inherit` value signals explicitly that the skill inherits the user's active session model — it is the standard value. A non-inherit model or an absent model field is a gap. A justified explicit pin (e.g. `model: sonnet`) is permitted when documented here as an exception.
|
|
17
|
+
- **Agents pin `model:` explicitly.** A spawned/forked subagent must not silently inherit the parent's model or context tier — every agent states its model so each subagent's cost/quality is auditable. Agents set both `model:` and `effort:`. `model: inherit` is NOT permitted for agents.
|
|
17
18
|
|
|
18
19
|
## When to Use
|
|
19
20
|
|
|
@@ -23,33 +24,40 @@ The convention splits by surface:
|
|
|
23
24
|
|
|
24
25
|
## Decision Matrix
|
|
25
26
|
|
|
26
|
-
### Skills — `
|
|
27
|
+
### Skills — `model: inherit` + `effort:`
|
|
27
28
|
|
|
28
|
-
|
|
29
|
+
Set `model: inherit` (the standard value) and `effort:` per the skill's nature. Default `effort: xhigh`; tiers:
|
|
29
30
|
|
|
30
|
-
| effort | use for | examples
|
|
31
|
-
| -------- | ------------------------------------------------------ |
|
|
32
|
-
| `xhigh` | deep authoring / planning / orchestration (most skills) | build-cc-*, checkpoint-check/end/plan,
|
|
33
|
-
| `high` |
|
|
34
|
-
| `medium` | moderate, scoped sync work |
|
|
35
|
-
| `low` | pure mechanical / dispatch / templated work | checkpoint-complete,
|
|
31
|
+
| effort | use for | examples |
|
|
32
|
+
| -------- | ------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
33
|
+
| `xhigh` | deep authoring / planning / orchestration (most skills) | build-cc-*, checkpoint-check/end/plan, finalize, frontend-design, map-architecture, round-build/plan, ship, standalone-task-complete, supabase-migrate, task-start, verify |
|
|
34
|
+
| `high` | lighter orchestration, review, setup, targeted flows | checkpoint-create/start, frontend-ui/ux, merge-main, refresh-arch-map, session-end, setup-cd/ci/e2e/eslint, ship-configure/main, standalone-task-check/create/start/testing, stripe, supabase-branch-check/setup, task-create |
|
|
35
|
+
| `medium` | moderate, scoped sync work | checkpoint-update, clear-prep, todo |
|
|
36
|
+
| `low` | pure mechanical / dispatch / templated work | checkpoint-complete, clear-continue, git-commit, git-branch-feat-create, round-complete, session-start |
|
|
36
37
|
|
|
37
|
-
A skill
|
|
38
|
+
A skill with an absent `model:` field or a non-`inherit` model value is a **gap** — add `model: inherit` or document the exception here before applying a different pin.
|
|
39
|
+
|
|
40
|
+
> **Note on effort tiers**: `max` is the highest frontmatter effort tier. `ultracode` is a SESSION-ONLY runtime mode (`/effort ultracode`) — it is NOT a valid frontmatter value and `validate-skill.sh` rejects `effort: ultracode` with an explicit error.
|
|
38
41
|
|
|
39
42
|
### Agents — `model:` + `effort:`
|
|
40
43
|
|
|
41
|
-
Default `model: sonnet` + `effort: xhigh`.
|
|
44
|
+
Default `model: sonnet` + `effort: xhigh`. Ten of the 17 authoring agents take the default (`cbp-cc-executor`, `cbp-database-agent`, `cbp-improve-claude`, `cbp-research`, `cbp-round-builder`, `cbp-round-planner`, `cbp-security-agent`, `cbp-stripe-agent`, `cbp-testing-qa-agent`, `cbp-verify-reviewer`). The other seven are exceptions:
|
|
42
45
|
|
|
43
46
|
| agent | model | effort | reason |
|
|
44
47
|
| -------------------- | ------ | ------ | ----------------------------------------------------------------------------------- |
|
|
45
48
|
| cbp-mechanical-edits | haiku | low | Mechanical rename/substitution/frontmatter-edit subagent; no judgment, pure dispatch |
|
|
46
49
|
| cbp-map-architecture | sonnet | high | Read-only module analyzer; bounded structured-map generation, lighter than xhigh |
|
|
50
|
+
| cbp-e2e-maestro | sonnet | high | E2E specialist: bounded test-execution scope; sonnet+high calibrated in CHK-229 |
|
|
51
|
+
| cbp-e2e-playwright | sonnet | high | E2E specialist: bounded test-execution scope; sonnet+high calibrated in CHK-229 |
|
|
52
|
+
| cbp-e2e-tauri | sonnet | high | E2E specialist: bounded test-execution scope; sonnet+high calibrated in CHK-229 |
|
|
53
|
+
| cbp-e2e-vscode | sonnet | high | E2E specialist: bounded test-execution scope; sonnet+high calibrated in CHK-229 |
|
|
54
|
+
| cbp-e2e-xcuitest | sonnet | high | E2E specialist: bounded test-execution scope; sonnet+high calibrated in CHK-229 |
|
|
47
55
|
|
|
48
56
|
`model: inherit` is NOT permitted for agents — pin an explicit alias (`sonnet` / `haiku`) or a full ID.
|
|
49
57
|
|
|
50
58
|
## Precedence Rule
|
|
51
59
|
|
|
52
|
-
A skill's `effort:` applies to the inline-running turn (the orchestrator turn that invokes the skill); the skill runs on that turn's inherited model. An agent's `model:` / `effort:` apply to the spawned/forked subagent context. For `context: fork` skills, the agent named in `agent:` governs the forked subagent (per the official Claude Code spec) — so a forked skill's model comes from that agent, not from the skill.
|
|
60
|
+
A skill's `effort:` applies to the inline-running turn (the orchestrator turn that invokes the skill); the skill runs on that turn's inherited model (declared via `model: inherit`). An agent's `model:` / `effort:` apply to the spawned/forked subagent context. For `context: fork` skills, the agent named in `agent:` governs the forked subagent (per the official Claude Code spec) — so a forked skill's model comes from that agent, not from the skill.
|
|
53
61
|
|
|
54
62
|
## Audit Mode
|
|
55
63
|
|
|
@@ -70,10 +78,10 @@ Invoked with a path argument (the target `SKILL.md` or agent `.md`). Procedure:
|
|
|
70
78
|
1. Read the file. Identify the name from the `name:` frontmatter (or the path basename).
|
|
71
79
|
2. Look up the target from the convention above.
|
|
72
80
|
3. Use Edit to set the frontmatter to the target, preserving every other field and the entire body:
|
|
73
|
-
- **Skill**:
|
|
81
|
+
- **Skill**: SET `model: inherit` if absent (or correct a non-inherit pin); set/keep a valid `effort:` (default `xhigh`).
|
|
74
82
|
- **Agent**: set `model:` and `effort:` to the table values.
|
|
75
|
-
4. If the name is NOT covered, surface via AskUserQuestion: current state, propose the default (skill →
|
|
83
|
+
4. If the name is NOT covered, surface via AskUserQuestion: current state, propose the default (skill → `model: inherit` + `xhigh`; agent → `sonnet` + `xhigh`), and ask whether to (a) record an exception entry here first, or (b) apply the default.
|
|
76
84
|
|
|
77
85
|
## Self-Conformance
|
|
78
86
|
|
|
79
|
-
This skill is itself a skill: its frontmatter
|
|
87
|
+
This skill is itself a skill: its frontmatter declares `model: inherit` + `effort: xhigh`. The first audit run after editing this file MUST emit `ok` for `packages/codebyplan-package/templates/skills/cbp-build-cc-mode/SKILL.md` — if it doesn't, the convention is out of sync with reality and must be reconciled before any further apply.
|
|
@@ -3,6 +3,7 @@ name: cbp-build-cc-rule
|
|
|
3
3
|
description: Build a path-scoped rule file at .claude/rules/{name}.md following the official memory/rules spec (paths globs, always-loaded vs on-demand, symlinks) plus CBP conventions (scope field for structural classification — required only on user-created rules (validate-structure-scope.sh), narrow-paths discipline; hook warns at 100 lines, blocks at 200).
|
|
4
4
|
argument-hint: '[name] [--scope=project|user] [--paths="glob,glob"]'
|
|
5
5
|
allowed-tools: Read, Write, Edit, Glob, Grep
|
|
6
|
+
model: inherit
|
|
6
7
|
effort: xhigh
|
|
7
8
|
---
|
|
8
9
|
|
|
@@ -3,6 +3,7 @@ name: cbp-build-cc-settings
|
|
|
3
3
|
description: Create or update Claude Code settings.json / settings.local.json / managed-settings.json following the official settings spec — scopes, permissions, hooks, sandbox, attribution, plugins, env vars, JSON schema validation.
|
|
4
4
|
argument-hint: "[action] [--scope=user|project|local|managed]"
|
|
5
5
|
allowed-tools: Read, Write, Edit, Glob, Grep, Bash(jq *)
|
|
6
|
+
model: inherit
|
|
6
7
|
effort: xhigh
|
|
7
8
|
---
|
|
8
9
|
|
|
@@ -54,7 +54,7 @@ Source: official Claude Code settings spec. Grouped by category. All fields are
|
|
|
54
54
|
| `model` | Override default model |
|
|
55
55
|
| `modelOverrides` | Map model IDs (e.g. Bedrock profile ARNs) |
|
|
56
56
|
| `availableModels` | Restrict which models `/model` exposes |
|
|
57
|
-
| `effortLevel` | Persist effort across sessions |
|
|
57
|
+
| `effortLevel` | Persist effort across sessions. Valid values: `low \| medium \| high \| xhigh` only — `max` and `ultracode` are session-only and rejected here. See `rules/effort-and-ultracode.md`. |
|
|
58
58
|
| `alwaysThinkingEnabled` | Extended thinking on by default |
|
|
59
59
|
| `showThinkingSummaries` | Show thinking summaries |
|
|
60
60
|
|
|
@@ -3,6 +3,7 @@ name: cbp-build-cc-skill
|
|
|
3
3
|
description: Build a Claude Code skill at .claude/skills/{name}/SKILL.md following the official skills spec — frontmatter, supporting files (templates, examples, reference, scripts), invocation control, argument substitution, dynamic context, fork-to-subagent, allowed-tools.
|
|
4
4
|
argument-hint: "[skill-name] [--scope=project|user] [--fork] [--disable-model-invocation]"
|
|
5
5
|
allowed-tools: Read, Write, Edit, Glob, Grep, Bash(mkdir *), Bash(chmod *)
|
|
6
|
+
model: inherit
|
|
6
7
|
effort: xhigh
|
|
7
8
|
---
|
|
8
9
|
|
|
@@ -97,7 +98,7 @@ Key fields by use case:
|
|
|
97
98
|
| Hide from `/` menu | `user-invocable: false` |
|
|
98
99
|
| Pre-approve tools | `allowed-tools: Bash(git add *) Bash(git commit *)` |
|
|
99
100
|
| Accept arguments | `argument-hint: [file] [mode]`, optionally `arguments: [file mode]` for named `$file`/`$mode` |
|
|
100
|
-
| Set effort (
|
|
101
|
+
| Set model + effort | `model: inherit` (the standard value — explicitly signals session-model inheritance) and `effort: xhigh` (default for plugin skills; lower tiers `high`/`medium`/`low` per [/cbp-build-cc-mode](../build-cc-mode/SKILL.md)). A non-`inherit` model pin forces a model the user didn't choose and can carry the session's 1M `[1m]` tier onto the skill (→ "usage credits required for 1M context"), so pin only as a deliberate, documented exception |
|
|
101
102
|
| Path-scoped auto-load | `paths: ["src/api/**/*.ts"]` |
|
|
102
103
|
| Fork to subagent | `context: fork`, `agent: Explore` |
|
|
103
104
|
|
|
@@ -12,7 +12,7 @@ Source: official Claude Code skills spec. All fields are optional; `description`
|
|
|
12
12
|
| `disable-model-invocation` | `true` → only user can invoke (via `/name`). Upstream skills that auto-trigger this skill MUST emit a `Next: /name` directive instead — model invocation is blocked by the runtime; see SKILL.md Step 4 "Convention: User-only / permission-gated finalizer" |
|
|
13
13
|
| `user-invocable` | `false` → hidden from `/` menu, Claude-only |
|
|
14
14
|
| `allowed-tools` | Pre-approve tools while the skill is active |
|
|
15
|
-
| `model` |
|
|
15
|
+
| `model` | Model for this skill's turn. **CBP skills set `model: inherit`** (the standard value — explicitly signals session-model inheritance). A non-`inherit` pin (e.g. `sonnet`) forces that model and can carry the session's 1M `[1m]` context tier onto the skill, triggering "usage credits required for 1M context"; use only as a deliberate, documented exception — see [/cbp-build-cc-mode](../../build-cc-mode/SKILL.md) |
|
|
16
16
|
| `effort` | Override effort level (`low`/`medium`/`high`/`xhigh`/`max`). **Plugin skills authored in CBP MUST set this explicitly** (no commented-out placeholder); defaults to `xhigh`. See [/cbp-build-cc-mode](../../build-cc-mode/SKILL.md) for the matrix |
|
|
17
17
|
| `context` | `fork` → run in a subagent |
|
|
18
18
|
| `agent` | Subagent type when `context: fork` — built-in or custom |
|
|
@@ -57,19 +57,22 @@ if grep -qE '^scope:\s*' <<< "$fm"; then
|
|
|
57
57
|
fi
|
|
58
58
|
fi
|
|
59
59
|
|
|
60
|
-
# Model — skills MUST
|
|
61
|
-
#
|
|
62
|
-
#
|
|
63
|
-
#
|
|
64
|
-
|
|
65
|
-
if
|
|
66
|
-
|
|
67
|
-
|
|
60
|
+
# Model — skills MUST declare 'model: inherit' to signal session-model inheritance
|
|
61
|
+
# explicitly. Absent = warning (should be added); non-enum value = error.
|
|
62
|
+
# Valid values: inherit | sonnet | opus | haiku | fable | opusplan | claude-<id> | <id>[1m]
|
|
63
|
+
# Agents pin explicit model values (validate-agent.sh); skills use 'inherit'.
|
|
64
|
+
model_val=$(grep -E '^model:' <<< "$fm" | head -1 | sed -E 's/^model:[[:space:]]*//; s/[[:space:]]*$//' || true)
|
|
65
|
+
if [ -z "$model_val" ]; then
|
|
66
|
+
echo " WARN: model: absent — add 'model: inherit' (skills must declare session-model inheritance)" >&2
|
|
67
|
+
elif ! [[ "$model_val" =~ ^(inherit|sonnet|opus|haiku|fable|opusplan|claude-[a-z0-9][a-z0-9.-]*|.*\[1m\])$ ]]; then
|
|
68
|
+
err "model: invalid value '$model_val' (valid values: inherit | sonnet | opus | haiku | fable | opusplan | claude-<id> | <id>[1m])"
|
|
68
69
|
fi
|
|
69
70
|
|
|
70
71
|
# Effort (if present)
|
|
71
72
|
effort=$(grep -E '^effort:' <<< "$fm" | head -1 | sed -E 's/^effort:[[:space:]]*//; s/[[:space:]]*$//; s/^"(.*)"$/\1/' || true)
|
|
72
|
-
if [
|
|
73
|
+
if [ "$effort" = "ultracode" ]; then
|
|
74
|
+
err "effort: ultracode is a session-only mode, not a frontmatter effort — use max + /effort ultracode"
|
|
75
|
+
elif [ -n "$effort" ] && [[ ! "$effort" =~ ^(low|medium|high|xhigh|max)$ ]]; then
|
|
73
76
|
err "effort invalid: '$effort'"
|
|
74
77
|
fi
|
|
75
78
|
|
|
@@ -3,6 +3,7 @@ scope: org-shared
|
|
|
3
3
|
name: cbp-checkpoint-check
|
|
4
4
|
description: Full re-evaluation of a checkpoint with before/after comparison
|
|
5
5
|
argument-hint: [CHK-NNN]
|
|
6
|
+
model: inherit
|
|
6
7
|
effort: xhigh
|
|
7
8
|
---
|
|
8
9
|
|
|
@@ -133,6 +134,10 @@ Aggregate the files touched across all tasks (reusing Step 4's deduplicated tabl
|
|
|
133
134
|
|
|
134
135
|
See `cbp-verify` reference `findings-presentation.md` "Infra Issue Absorption Contract — Infra-Class Issue Catalog" row "Checkpoint-level e2e failure" for the routing rationale.
|
|
135
136
|
|
|
137
|
+
#### Orchestration (optional)
|
|
138
|
+
|
|
139
|
+
Step 5b's parallel whole-checkpoint `cbp-e2e-*` specialist dispatch MAY be authored as a `Workflow(...)` script instead of ad-hoc `Task`/`Agent` spawning — for deterministic fan-out across eligible frameworks and schema-validated aggregation. This is opt-in (ultracode session or explicit user request); the dispatch flow above stays the DEFAULT and is unchanged. See `rules/workflow-orchestration.md`.
|
|
140
|
+
|
|
136
141
|
### Step 6: User Discussion
|
|
137
142
|
|
|
138
143
|
Present findings and discuss with user:
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
name: cbp-checkpoint-create
|
|
3
3
|
description: Mechanical checkpoint creation — capture the user's description, infer title + goal, dedup against existing modules, create the checkpoint row + feat branch, then hand off to /cbp-checkpoint-plan for deep planning. Creates ZERO tasks.
|
|
4
4
|
argument-hint: [checkpoint description]
|
|
5
|
+
model: inherit
|
|
5
6
|
effort: high
|
|
6
7
|
---
|
|
7
8
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: cbp-checkpoint-end
|
|
3
3
|
description: Single point for all shipment — branch promotion to main via /cbp-ship-main, runtime deploy via /cbp-ship, branch cleanup, summary. Standalone tasks bypass shipment entirely.
|
|
4
|
+
model: inherit
|
|
4
5
|
effort: xhigh
|
|
5
6
|
---
|
|
6
7
|
|
|
@@ -161,6 +162,10 @@ If `/cbp-ship` reports `aborted_at` (user aborted) or any surface failed verific
|
|
|
161
162
|
|
|
162
163
|
If the repo has zero configured surfaces (very early-stage), `/cbp-ship` exits with `## No deployable surfaces configured` — that's a success state, continue to cleanup.
|
|
163
164
|
|
|
165
|
+
#### Orchestration (optional)
|
|
166
|
+
|
|
167
|
+
The multi-step shipment coordinated here (Step 5 `/cbp-ship-main` → Step 7 `/cbp-ship` → screenshot upload) MAY be expressed as a `Workflow(...)` pipeline instead of ad-hoc sequential invocation. This is opt-in (ultracode session or explicit user request); the sequential flow above stays the DEFAULT and is unchanged. See `rules/workflow-orchestration.md`.
|
|
168
|
+
|
|
164
169
|
### Step 7.5: Upload E2E Screenshots to DB (best-effort)
|
|
165
170
|
|
|
166
171
|
After `/cbp-ship` completes successfully, upload the checkpoint's new/changed committed E2E screenshots to the CodeByPlan DB so they can be reviewed per-checkpoint in the web UI (CHK-171). This step is **best-effort and non-blocking** — a failure here MUST NOT halt shipment or cleanup.
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
name: cbp-checkpoint-plan
|
|
3
3
|
description: Deep inline planning for a checkpoint — assess, gap-analyse, decide dependencies, compare alternatives, optionally e2e-probe a suspected-broken area, then create tasks as vertical slices. Runs after /cbp-checkpoint-create (mechanical) and before /cbp-checkpoint-start (activate + claim). Does NOT activate or claim.
|
|
4
4
|
argument-hint: [checkpoint-number]
|
|
5
|
+
model: inherit
|
|
5
6
|
effort: xhigh
|
|
6
7
|
---
|
|
7
8
|
|
|
@@ -49,6 +50,10 @@ Iterate ALL `ideas[]` (not just the first). For each:
|
|
|
49
50
|
|
|
50
51
|
Write each idea's analysis into `ideas[N].assessment` (Claude-authored; never touch `description`, which is the user's words).
|
|
51
52
|
|
|
53
|
+
#### Orchestration (optional)
|
|
54
|
+
|
|
55
|
+
Step 2's `cbp-research` and any e2e-probe subagent spawns MAY be authored as a `Workflow(...)` script instead of ad-hoc `Task` spawning — useful when multiple ideas each warrant an independent research/assessment pass. This is opt-in (ultracode session or explicit user request); the single-spawn flow above stays the DEFAULT and is unchanged. See `rules/workflow-orchestration.md`.
|
|
56
|
+
|
|
52
57
|
### Step 3: Gap Analysis
|
|
53
58
|
|
|
54
59
|
Find what the raw request misses — this is the core anti-"half-ass" step. Load `reference/gap-analysis-playbook.md` and run its two passes:
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
name: cbp-checkpoint-start
|
|
3
3
|
description: Activate a planned checkpoint and claim it for the current user/worktree, then route into task work. Runs after /cbp-checkpoint-plan (which produces tasks but never activates). Refuses to start an unplanned checkpoint.
|
|
4
4
|
argument-hint: [checkpoint-number]
|
|
5
|
+
model: inherit
|
|
5
6
|
effort: high
|
|
6
7
|
---
|
|
7
8
|
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
scope: org-shared
|
|
3
3
|
name: cbp-clear-continue
|
|
4
4
|
description: Resume work after /clear by reading .codebyplan/clear/handoff.md and re-invoking the previously-blocked heavy skill. Reports a friendly error if no handoff file exists.
|
|
5
|
-
|
|
5
|
+
model: inherit
|
|
6
|
+
effort: low
|
|
6
7
|
---
|
|
7
8
|
|
|
8
9
|
# cbp-clear-continue
|
|
@@ -3,7 +3,8 @@ scope: org-shared
|
|
|
3
3
|
name: cbp-clear-prep
|
|
4
4
|
description: Capture a clear-context handoff when the context window is too large to run a heavy skill. Reads active task/round state, writes .codebyplan/clear/handoff.md, then instructs the user to run /clear and /cbp-clear-continue to resume.
|
|
5
5
|
argument-hint: "[blocked-skill]"
|
|
6
|
-
|
|
6
|
+
model: inherit
|
|
7
|
+
effort: medium
|
|
7
8
|
---
|
|
8
9
|
|
|
9
10
|
# cbp-clear-prep
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: cbp-frontend-design
|
|
3
3
|
description: Up-front design playbook loaded BEFORE writing UI / styling code. Detects the stack, loads the matching reference file, commits to an aesthetic direction, and prevents generic AI-slop output. Modelled on Anthropic's frontend-design skill, adapted for CBP repos with existing design systems.
|
|
4
|
+
model: inherit
|
|
4
5
|
effort: xhigh
|
|
5
6
|
---
|
|
6
7
|
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: cbp-frontend-ui
|
|
3
3
|
description: Visual quality self-review pass invoked twice per round — once by round-executor Step 3.8 (phase 'style_only', no screenshots) for token/spacing/typography/color/cohesion, once by /cbp-round-build Step 5b (phase 'screenshot_review', with e2e screenshots) for rendered-output review and baseline regressions. Default phase 'full' runs everything for back-compat.
|
|
4
|
-
|
|
4
|
+
model: inherit
|
|
5
|
+
effort: high
|
|
5
6
|
---
|
|
6
7
|
|
|
7
8
|
# Frontend UI (Post-Implementation Visual Self-Review)
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: cbp-frontend-ux
|
|
3
3
|
description: Interaction-quality self-review pass loaded by round-executor AFTER UI code is written. Catches navigation flow issues, missing feedback states, cognitive-load problems, form usability gaps, and accessibility violations. Auto-applies in-scope mechanical UX fixes within the round's files_changed. Replaces the post-implementation ux-agent spawn with an inline skill invocation.
|
|
4
|
-
|
|
4
|
+
model: inherit
|
|
5
|
+
effort: high
|
|
5
6
|
---
|
|
6
7
|
|
|
7
8
|
# Frontend UX (Post-Implementation Interaction Self-Review)
|