codebyplan 1.13.61 → 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/cli.js +33 -5
- package/package.json +1 -1
- 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/dist/cli.js
CHANGED
|
@@ -48,7 +48,7 @@ var VERSION, PACKAGE_NAME;
|
|
|
48
48
|
var init_version = __esm({
|
|
49
49
|
"src/lib/version.ts"() {
|
|
50
50
|
"use strict";
|
|
51
|
-
VERSION = "1.13.
|
|
51
|
+
VERSION = "1.13.62";
|
|
52
52
|
PACKAGE_NAME = "codebyplan";
|
|
53
53
|
}
|
|
54
54
|
});
|
|
@@ -38478,6 +38478,25 @@ function emitTable(result) {
|
|
|
38478
38478
|
lines.push("");
|
|
38479
38479
|
process.stdout.write(lines.join("\n") + "\n");
|
|
38480
38480
|
}
|
|
38481
|
+
function emitFailureDiagnostics(result) {
|
|
38482
|
+
for (const r of result.results) {
|
|
38483
|
+
if (r.status !== "fail" || !r.executed) {
|
|
38484
|
+
continue;
|
|
38485
|
+
}
|
|
38486
|
+
const combined = [r.stdout, r.stderr].filter(Boolean).join("\n").trimEnd();
|
|
38487
|
+
if (combined.length === 0) {
|
|
38488
|
+
continue;
|
|
38489
|
+
}
|
|
38490
|
+
process.stderr.write(
|
|
38491
|
+
`
|
|
38492
|
+
--- check: ${r.check} FAILED (captured output) ---
|
|
38493
|
+
`
|
|
38494
|
+
);
|
|
38495
|
+
process.stderr.write(combined + "\n");
|
|
38496
|
+
process.stderr.write(`--- end: ${r.check} ---
|
|
38497
|
+
`);
|
|
38498
|
+
}
|
|
38499
|
+
}
|
|
38481
38500
|
function runCheckCommand(args) {
|
|
38482
38501
|
const parsed = parseCheckArgs(args);
|
|
38483
38502
|
if (parsed === null) {
|
|
@@ -38497,6 +38516,7 @@ function runCheckCommand(args) {
|
|
|
38497
38516
|
} else {
|
|
38498
38517
|
emitTable(result);
|
|
38499
38518
|
}
|
|
38519
|
+
emitFailureDiagnostics(result);
|
|
38500
38520
|
if (result.any_failed) {
|
|
38501
38521
|
process.exitCode = 1;
|
|
38502
38522
|
}
|
|
@@ -41095,15 +41115,17 @@ function auditSkill(filePath) {
|
|
|
41095
41115
|
const model = fm.model ?? null;
|
|
41096
41116
|
const effort = fm.effort ?? null;
|
|
41097
41117
|
const gaps = [];
|
|
41098
|
-
if (model
|
|
41099
|
-
gaps.push("model:
|
|
41118
|
+
if (model === null) {
|
|
41119
|
+
gaps.push("model: absent (expected 'inherit')");
|
|
41120
|
+
} else if (model !== "inherit") {
|
|
41121
|
+
gaps.push(`model: expected 'inherit', got '${model}'`);
|
|
41100
41122
|
}
|
|
41101
41123
|
if (!effort) {
|
|
41102
41124
|
gaps.push("effort: absent (default xhigh required)");
|
|
41103
41125
|
} else if (!VALID_EFFORT_VALUES.has(effort)) {
|
|
41104
41126
|
gaps.push(`effort: invalid value '${effort}'`);
|
|
41105
41127
|
}
|
|
41106
|
-
const expectedStr = `effort:${effort && VALID_EFFORT_VALUES.has(effort) ? effort : "xhigh"}`;
|
|
41128
|
+
const expectedStr = `model:inherit/effort:${effort && VALID_EFFORT_VALUES.has(effort) ? effort : "xhigh"}`;
|
|
41107
41129
|
const status = gaps.length === 0 ? "ok" : "gap";
|
|
41108
41130
|
return {
|
|
41109
41131
|
path: filePath,
|
|
@@ -41145,7 +41167,13 @@ var init_claude_mode_audit = __esm({
|
|
|
41145
41167
|
"cbp-mechanical-edits": { model: "haiku", effort: "low" },
|
|
41146
41168
|
// Read-only module analyzer: bounded structured-map generation, deliberately
|
|
41147
41169
|
// lighter than the xhigh default. Documented in cbp-build-cc-mode's matrix.
|
|
41148
|
-
"cbp-map-architecture": { model: "sonnet", effort: "high" }
|
|
41170
|
+
"cbp-map-architecture": { model: "sonnet", effort: "high" },
|
|
41171
|
+
// E2E specialist: bounded test-execution scope; sonnet+high calibrated in CHK-229.
|
|
41172
|
+
"cbp-e2e-maestro": { model: "sonnet", effort: "high" },
|
|
41173
|
+
"cbp-e2e-playwright": { model: "sonnet", effort: "high" },
|
|
41174
|
+
"cbp-e2e-tauri": { model: "sonnet", effort: "high" },
|
|
41175
|
+
"cbp-e2e-vscode": { model: "sonnet", effort: "high" },
|
|
41176
|
+
"cbp-e2e-xcuitest": { model: "sonnet", effort: "high" }
|
|
41149
41177
|
};
|
|
41150
41178
|
AGENT_DEFAULT = { model: "sonnet", effort: "xhigh" };
|
|
41151
41179
|
VALID_EFFORT_VALUES = /* @__PURE__ */ new Set(["low", "medium", "high", "xhigh", "max"]);
|
package/package.json
CHANGED
|
@@ -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)
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: cbp-map-architecture
|
|
3
|
+
model: inherit
|
|
3
4
|
effort: xhigh
|
|
4
5
|
description: Orchestrate architecture map generation for one or all modules. Spawns the cbp-map-architecture agent per module, writes per-module .md files to .claude/architecture/, regenerates INDEX.md and graph.md, and stamps each module via the CLI. Idempotent — safe to re-run.
|
|
5
6
|
argument-hint: '[--module <path>] [--deep <path,...>]'
|
|
@@ -66,6 +67,10 @@ For each module in `targets[]`:
|
|
|
66
67
|
Modules may be spawned concurrently (parallel Task calls) when there are multiple targets
|
|
67
68
|
with no inter-module dependency. The agent is read-only and safe to parallelize.
|
|
68
69
|
|
|
70
|
+
#### Orchestration (optional)
|
|
71
|
+
|
|
72
|
+
Step B's per-module `cbp-map-architecture` fan-out MAY be authored as a `Workflow(...)` script instead of ad-hoc parallel `Task` calls — for deterministic per-module fan-out and schema-validated map outputs. This is opt-in (ultracode session or explicit user request); the parallel `Task` flow above stays the DEFAULT and is unchanged. See `rules/workflow-orchestration.md`.
|
|
73
|
+
|
|
69
74
|
### Step C: Regenerate INDEX.md and graph.md
|
|
70
75
|
|
|
71
76
|
After all per-module map files are written:
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: cbp-refresh-arch-map
|
|
3
|
+
model: inherit
|
|
3
4
|
effort: high
|
|
4
5
|
description: Drift-scoped refresh of the .claude/architecture/ map — re-runs the cbp-map-architecture agent for ONLY the modules whose stamped git SHA has changed, regenerates INDEX.md + graph.md, and re-stamps. Idempotent; no-op when no module has drifted.
|
|
5
6
|
argument-hint: '[--module <path>]'
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
name: cbp-round-build
|
|
3
3
|
description: Execute the approved plan from /cbp-round-plan — runs per-wave builders, inline testing-qa per wave, and auto-triggers /cbp-verify
|
|
4
4
|
triggers: [cbp-verify]
|
|
5
|
+
model: inherit
|
|
5
6
|
effort: xhigh
|
|
6
7
|
---
|
|
7
8
|
|
|
@@ -197,6 +198,10 @@ Input contracts: `cbp-testing-qa-agent` receives `executor_output`, `testing_pro
|
|
|
197
198
|
|
|
198
199
|
**Independence**: neither agent reads the other's output. Baseline-regression findings surface as a BLOCKING gate at `/cbp-verify` (an explicit accept-or-fix user decision; baselines are NEVER auto-accepted). Per-wave spawns MAY run in parallel with the next wave's builder when dependency order allows. The `cbp-e2e-*` specialists are parallel siblings of `cbp-testing-qa-agent` — they do not share state.
|
|
199
200
|
|
|
201
|
+
#### Orchestration (optional)
|
|
202
|
+
|
|
203
|
+
Under heavy fan-out, Step 5's per-wave builders and their parallel `cbp-testing-qa-agent` + `cbp-e2e-*` siblings MAY be authored as a `Workflow(...)` script instead of ad-hoc `Task`/`Agent` spawning — for deterministic fan-out, wave barriers, and schema-validated outputs. This is opt-in (ultracode session or explicit user request); the spawn flow above stays the DEFAULT and is unchanged. See `rules/workflow-orchestration.md`.
|
|
204
|
+
|
|
200
205
|
### Step 5b: Post-E2E Screenshot Review (cbp-frontend-ui Phase 6.5)
|
|
201
206
|
|
|
202
207
|
Aggregate screenshots across ALL specialists that ran: `screenshots = Object.values(round.context.e2e_outputs ?? {}).flatMap(o => o.screenshots ?? [])`. When the aggregated list is non-empty, invoke the `cbp-frontend-ui` skill with `phase: 'screenshot_review'` (input: `files_changed`, `e2e_screenshots: <aggregated screenshots>`, `context: { checkpoint_goal, round_requirements }`). Under this phase the skill runs only Phase 6.5 (Rendered-Output Visual Review) + 7 + 8 — Phases 1-6 (style) already ran inline at builder Step 3.8 with `phase: 'style_only'`.
|
|
@@ -3,6 +3,7 @@ name: cbp-round-plan
|
|
|
3
3
|
description: Plan a round — round-1 planning AND round-2+ deep-analysis of unapproved work, then spawn cbp-round-planner and auto-trigger /cbp-round-build
|
|
4
4
|
triggers: [cbp-round-build]
|
|
5
5
|
argument-hint: [chk-task-round | task-round | requirements-text] # e.g. `108-1-2`, `45-2`, or free-text
|
|
6
|
+
model: inherit
|
|
6
7
|
effort: xhigh
|
|
7
8
|
---
|
|
8
9
|
|
|
@@ -260,6 +261,10 @@ input:
|
|
|
260
261
|
|
|
261
262
|
Wait for planner output. **If the spawn fails, STOP per "Planner Spawn Failure Is A Gate Failure" above** — do not self-certify a plan inline.
|
|
262
263
|
|
|
264
|
+
#### Orchestration (optional)
|
|
265
|
+
|
|
266
|
+
When a plan warrants independent perspectives, Step 7's `cbp-round-planner` spawn MAY be expressed as a `Workflow(...)` script — e.g. a judge-panel of independent plans, scored and synthesized — instead of a single ad-hoc spawn. 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`.
|
|
267
|
+
|
|
263
268
|
### Step 8: Present Plan
|
|
264
269
|
|
|
265
270
|
Present the plan to user:
|
|
@@ -3,7 +3,8 @@ scope: org-shared
|
|
|
3
3
|
name: cbp-setup-cd
|
|
4
4
|
description: Detect configured CD surfaces, write/update .codebyplan/cd.json via `codebyplan cd init`, scaffold publish.yml and release-desktop.yml GitHub Actions workflows, and walk through environment/approval/OIDC setup. Interactive, idempotent.
|
|
5
5
|
argument-hint: "[--force]"
|
|
6
|
-
|
|
6
|
+
model: inherit
|
|
7
|
+
effort: high
|
|
7
8
|
allowed-tools: Read, Write, Edit, Bash(cat *), Bash(jq *), Bash(test *), Bash(ls *), Bash(diff *), Bash(codebyplan cd *), Bash(npx codebyplan cd *), AskUserQuestion
|
|
8
9
|
---
|
|
9
10
|
|
|
@@ -3,7 +3,8 @@ scope: org-shared
|
|
|
3
3
|
name: cbp-setup-ci
|
|
4
4
|
description: Detect CI platforms, write/update .codebyplan/ci.json, scaffold the GitHub Actions CI workflow, and enforce the required CI status check on the main branch. Interactive, idempotent.
|
|
5
5
|
argument-hint: "[--force]"
|
|
6
|
-
|
|
6
|
+
model: inherit
|
|
7
|
+
effort: high
|
|
7
8
|
allowed-tools: Read, Write, Edit, Bash(cat *), Bash(jq *), Bash(test *), Bash(ls *), Bash(codebyplan ci *), Bash(npx codebyplan ci *), Bash(gh api *), Bash(gh auth *), AskUserQuestion
|
|
8
9
|
---
|
|
9
10
|
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
name: cbp-setup-e2e
|
|
3
3
|
description: Detect installed E2E frameworks, ask which to enable, record credentials source (gitignored env-file path + var names only, never secrets), and write/refresh .codebyplan/e2e.json. Interactive, idempotent.
|
|
4
4
|
argument-hint: "[--force]"
|
|
5
|
-
|
|
5
|
+
model: inherit
|
|
6
|
+
effort: high
|
|
6
7
|
allowed-tools: Read, Write, Edit, Bash(cat *), Bash(jq *), Bash(which *), Bash(test *), Bash(mkdir *), Bash(cp *), Bash(echo *), Bash(date *), Bash(mv *), Bash(git check-ignore *), AskUserQuestion, mcp__codebyplan__get_repos
|
|
7
8
|
---
|
|
8
9
|
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
name: cbp-setup-eslint
|
|
3
3
|
description: Detect each app's tech stack, resolve matching DB ESLint presets, confirm which to enable per app, run `codebyplan eslint init` to generate eslint.config.mjs, and write/refresh .codebyplan/eslint.json. Interactive, idempotent.
|
|
4
4
|
argument-hint: "[--force]"
|
|
5
|
-
|
|
5
|
+
model: inherit
|
|
6
|
+
effort: high
|
|
6
7
|
allowed-tools: Read, Write, Edit, Bash(cat *), Bash(jq *), Bash(test *), Bash(ls *), Bash(mkdir *), Bash(cp *), Bash(echo *), Bash(mv *), Bash(npx codebyplan eslint *), AskUserQuestion, mcp__codebyplan__get_repos, mcp__codebyplan__get_eslint_presets
|
|
7
8
|
---
|
|
8
9
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: cbp-ship
|
|
3
3
|
description: Orchestrate runtime deployment for a checkpoint — Vercel web, EAS mobile (Expo Go dev build / TestFlight preview), Tauri desktop, npm package publish, VS Code extension, Railway backend, Supabase migrations. Detects configured surfaces, walks the user through what to deploy, executes per-surface deploy steps, verifies each landed.
|
|
4
|
+
model: inherit
|
|
4
5
|
effort: xhigh
|
|
5
6
|
---
|
|
6
7
|
|
|
@@ -202,6 +203,10 @@ If a surface fails:
|
|
|
202
203
|
|
|
203
204
|
EXCEPTION: `supabase` migration push failure halts the rest. Schema mismatch downstream is worse than partial shipment.
|
|
204
205
|
|
|
206
|
+
#### Orchestration (optional)
|
|
207
|
+
|
|
208
|
+
Step 5's per-surface deploys — the independent tails after the mandatory `supabase`-first step — MAY be authored as a `Workflow(...)` script for deterministic parallel fan-out instead of ad-hoc sequencing. This is opt-in (ultracode session or explicit user request); the sequential flow above (including the `supabase`-first ordering) stays the DEFAULT and is unchanged. See `rules/workflow-orchestration.md`.
|
|
209
|
+
|
|
205
210
|
### Step 6 — Verify each surface landed
|
|
206
211
|
|
|
207
212
|
After each surface deploys, run its verification:
|
|
@@ -3,7 +3,8 @@ name: cbp-ship-configure
|
|
|
3
3
|
description: Configure shipment for one or more surfaces in the current repo — Vercel link, EAS project + eas.json scaffold, Apple credentials probe, npm publish auth check (including `codebyplan` asset-publish automation via the publish-on-main workflow), Railway project link, Supabase access token verify; Supabase GitHub branching integration via /cbp-supabase-setup. Interactive step-by-step; never stores credentials in the repo.
|
|
4
4
|
argument-hint: [--surface=<id>]
|
|
5
5
|
allowed-tools: Read, Write, Edit, Bash(which *), Bash(vercel *), Bash(eas *), Bash(npm *), Bash(railway *), Bash(jq *), Bash(mkdir *), Bash(cp *), Bash(echo *), Skill(cbp-supabase-setup)
|
|
6
|
-
|
|
6
|
+
model: inherit
|
|
7
|
+
effort: high
|
|
7
8
|
---
|
|
8
9
|
|
|
9
10
|
# Ship Configure Command
|
|
@@ -3,7 +3,8 @@ scope: repo-only:codebyplan
|
|
|
3
3
|
name: cbp-standalone-task-start
|
|
4
4
|
description: Start a standalone task, load context from DB
|
|
5
5
|
argument-hint: [task] # e.g. `45` (standalone TASK-45)
|
|
6
|
-
|
|
6
|
+
model: inherit
|
|
7
|
+
effort: high
|
|
7
8
|
---
|
|
8
9
|
|
|
9
10
|
# Standalone Task Start Command
|
|
@@ -4,7 +4,8 @@ name: cbp-standalone-task-testing
|
|
|
4
4
|
description: Run comprehensive task-level testing after /cbp-standalone-task-check passes
|
|
5
5
|
argument-hint: [task] # e.g. `45` (standalone TASK-45)
|
|
6
6
|
triggers: [cbp-standalone-task-complete]
|
|
7
|
-
|
|
7
|
+
model: inherit
|
|
8
|
+
effort: high
|
|
8
9
|
---
|
|
9
10
|
|
|
10
11
|
# Standalone Task Testing Command
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
scope: org-shared
|
|
3
3
|
name: cbp-stripe
|
|
4
4
|
description: "Stripe integration guidance — load when implementing or reviewing payments, Checkout, subscriptions/billing, webhooks, Connect, Tax, or Treasury. Encodes the API-selection routing table, the no-payment_method_types rule, restricted-key security, and Stripe SDK conventions."
|
|
5
|
-
|
|
5
|
+
model: inherit
|
|
6
|
+
effort: high
|
|
6
7
|
---
|
|
7
8
|
|
|
8
9
|
# Stripe Integration (CBP)
|
|
@@ -3,7 +3,8 @@ name: cbp-supabase-branch-check
|
|
|
3
3
|
description: Gate skill called by /cbp-ship-main (pre-merge) to verify the Supabase preview branch health check is green before allowing a PR to be merged; skips when no DB-path changes are detected.
|
|
4
4
|
argument-hint: "[--mode pre_pr_create|pre_merge] [--target integration|production]"
|
|
5
5
|
allowed-tools: Bash(git *), Bash(gh *), Bash(jq *), Bash(supabase *), Bash(sleep *), Bash(echo *), Read, mcp__supabase__list_branches, mcp__supabase__get_logs
|
|
6
|
-
|
|
6
|
+
model: inherit
|
|
7
|
+
effort: high
|
|
7
8
|
---
|
|
8
9
|
|
|
9
10
|
# Supabase Branch Check
|
|
@@ -3,6 +3,7 @@ name: cbp-supabase-migrate
|
|
|
3
3
|
description: Scaffold or adopt a Supabase migration for the current PR branch, apply to the branch's preview DB, run advisor checks, regenerate TypeScript types. Includes a fresh-branch dry-run pre-flight that uses one persistent dry-run ephemeral branch per feature branch.
|
|
4
4
|
argument-hint: "[--new <name> | <path-to-sql>]"
|
|
5
5
|
allowed-tools: Read, Edit, Write, Bash(codebyplan supabase *), Bash(npx codebyplan supabase *), Bash(npx codebyplan checkpoint update *), Bash(npx codebyplan task update *), Bash(git *), Bash(supabase *), Bash(jq *), Bash(date *), Bash(which *), Bash(cp *), Bash(mv *), Bash(test *), Bash(ls *), mcp__supabase__apply_migration, mcp__supabase__list_migrations, mcp__supabase__get_advisors, mcp__supabase__generate_typescript_types, mcp__supabase__reset_branch, mcp__supabase__list_branches, mcp__supabase__create_branch, mcp__supabase__get_cost, mcp__supabase__confirm_cost, mcp__codebyplan__update_checkpoint, mcp__codebyplan__update_task
|
|
6
|
+
model: inherit
|
|
6
7
|
effort: xhigh
|
|
7
8
|
---
|
|
8
9
|
|
|
@@ -3,7 +3,8 @@ name: cbp-supabase-setup
|
|
|
3
3
|
description: Enable Supabase GitHub branching integration — GitHub app authorization, required-status-check enforcement on main + integration branch, persistent branch creation, and idempotency marker in .codebyplan/shipment.json.
|
|
4
4
|
argument-hint: "[--force]"
|
|
5
5
|
allowed-tools: Read, Edit, Bash(supabase *), Bash(jq *), Bash(mv *), Bash(date *), Bash(test *), Bash(which *)
|
|
6
|
-
|
|
6
|
+
model: inherit
|
|
7
|
+
effort: high
|
|
7
8
|
---
|
|
8
9
|
|
|
9
10
|
# Supabase Branching Setup
|
|
@@ -3,6 +3,7 @@ name: cbp-verify
|
|
|
3
3
|
description: Unified verify stage — deterministic gates, real-execution proof, and a fresh-context diff review at round or task scope. Auto-triggered by cbp-round-build; escalates to task scope on the last clean round.
|
|
4
4
|
argument-hint: [chk-task[-round] | task[-round]]
|
|
5
5
|
triggers: [cbp-round-plan, cbp-round-complete, cbp-finalize]
|
|
6
|
+
model: inherit
|
|
6
7
|
effort: xhigh
|
|
7
8
|
---
|
|
8
9
|
|
|
@@ -98,6 +99,10 @@ Triage the returned findings: in-scope mechanical fixes the orchestrator applies
|
|
|
98
99
|
(`Edit`/`Write`); blocking out-of-scope findings → `/cbp-round-plan` fix round. A baseline
|
|
99
100
|
regression is a **blocking user-accept gate** — never auto-accepted.
|
|
100
101
|
|
|
102
|
+
#### Orchestration (optional)
|
|
103
|
+
|
|
104
|
+
When a finding warrants adversarial confirmation, Phase 4's `cbp-verify-reviewer` spawn MAY be expressed as a `Workflow(...)` script — e.g. N independent multi-vote reviewers — instead of a single ad-hoc spawn. 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`.
|
|
105
|
+
|
|
101
106
|
### PHASE 5 — VERDICT + ROUTE (single directive, never an A/B/C menu)
|
|
102
107
|
|
|
103
108
|
Combine Phase 2 + 3 + 4. Route on one directive (`feedback-close-out-routing.md`):
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: supabase
|
|
3
3
|
description: "Use when doing ANY task involving Supabase. Triggers: Supabase products (Database, Auth, Edge Functions, Realtime, Storage, Vectors, Cron, Queues); client libraries and SSR integrations (supabase-js, @supabase/ssr) in Next.js, React, SvelteKit, Astro, Remix; auth issues (login, logout, sessions, JWT, cookies, getSession, getUser, getClaims, RLS); Supabase CLI or MCP server; schema changes, migrations, security audits, Postgres extensions (pg_graphql, pg_cron, pg_vector)."
|
|
4
|
+
model: inherit
|
|
5
|
+
effort: medium
|
|
4
6
|
metadata:
|
|
5
7
|
author: supabase
|
|
6
8
|
version: "0.1.2"
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
name: supabase-postgres-best-practices
|
|
3
3
|
description: Postgres performance optimization and best practices from Supabase. Use this skill when writing, reviewing, or optimizing Postgres queries, schema designs, or database configurations.
|
|
4
4
|
license: MIT
|
|
5
|
+
model: inherit
|
|
6
|
+
effort: low
|
|
5
7
|
metadata:
|
|
6
8
|
author: supabase
|
|
7
9
|
version: "1.1.1"
|