baldart 5.0.0 → 5.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +119 -0
- package/README.md +3 -3
- package/VERSION +1 -1
- package/framework/.claude/agents/CHANGELOG.md +68 -0
- package/framework/.claude/agents/REGISTRY.md +3 -3
- package/framework/.claude/agents/coder.md +4 -5
- package/framework/.claude/agents/doc-reviewer.md +3 -2
- package/framework/.claude/agents/prd-card-writer.md +1 -1
- package/framework/.claude/agents/qa-sentinel.md +4 -4
- package/framework/.claude/agents/senior-researcher.md +166 -151
- package/framework/.claude/commands/codexreview.md +26 -4
- package/framework/.claude/skills/new/CHANGELOG.md +28 -0
- package/framework/.claude/skills/new/SKILL.md +1 -1
- package/framework/.claude/skills/new/references/implement.md +8 -4
- package/framework/.claude/skills/new/references/review-cycle.md +8 -5
- package/framework/.claude/skills/new/scripts/build-review-bundle.mjs +13 -5
- package/framework/.claude/skills/new/scripts/doc-invariants.mjs +6 -3
- package/framework/.claude/skills/new2/CHANGELOG.md +9 -0
- package/framework/.claude/skills/new2/SKILL.md +1 -1
- package/framework/.claude/skills/prd/CHANGELOG.md +16 -0
- package/framework/.claude/skills/prd/SKILL.md +1 -1
- package/framework/.claude/skills/prd/references/discovery-phase.md +5 -1
- package/framework/.claude/skills/prd/references/research-phase.md +32 -12
- package/framework/.claude/skills/research/CHANGELOG.md +9 -0
- package/framework/.claude/skills/research/SKILL.md +94 -0
- package/framework/.claude/skills/research/assets/report-compare.template.md +50 -0
- package/framework/.claude/skills/research/assets/report-decision.template.md +42 -0
- package/framework/.claude/skills/research/assets/report-deep.template.md +61 -0
- package/framework/.claude/skills/research/assets/report-regulatory.template.md +44 -0
- package/framework/.claude/skills/research/references/playbook.md +112 -0
- package/framework/.claude/skills/research/scripts/rebuild-research-index.mjs +77 -0
- package/framework/.claude/workflows/new-card-review.js +16 -2
- package/framework/.claude/workflows/new2-resolve.js +1 -1
- package/framework/.claude/workflows/new2.js +1 -1
- package/framework/agents/coding-standards.md +2 -2
- package/framework/agents/doc-audit-protocol.md +9 -4
- package/framework/agents/index.md +2 -0
- package/framework/agents/research-protocol.md +228 -0
- package/framework/agents/skills-mapping.md +17 -0
- package/framework/docs/PROJECT-CONFIGURATION.md +23 -0
- package/framework/docs/UPGRADE-3.12-UI-COHERENCE.md +1 -1
- package/framework/templates/baldart.config.template.yml +6 -0
- package/framework/templates/research-index.template.md +13 -0
- package/framework/templates/research-sources.CHANGELOG.md +14 -0
- package/framework/templates/research-sources.template.md +31 -0
- package/package.json +1 -1
- package/src/commands/configure.js +26 -0
- package/src/commands/doctor.js +82 -0
- package/src/commands/update.js +48 -1
- package/src/utils/research-library.js +92 -0
- package/src/utils/symlinks.js +3 -0
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,125 @@ All notable changes to BALDART will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [5.1.0] - 2026-07-03
|
|
9
|
+
|
|
10
|
+
**The research layer.** Research becomes a first-class, reusable asset: the
|
|
11
|
+
`senior-researcher` agent is restructured to the v5.0 authoring contract with
|
|
12
|
+
**research profiles**, every report lands in a consumer-owned, indexed
|
|
13
|
+
**research library**, and the **source matrix** that routes each research
|
|
14
|
+
nature to the right sources is versioned and grows project after project.
|
|
15
|
+
Design refined by an adversarial refutation pass (13 findings integrated —
|
|
16
|
+
ID-race BLOCKER, /prd poll determinism, lifecycle circularity, opt-out
|
|
17
|
+
resurrection, auto-commit scoping).
|
|
18
|
+
|
|
19
|
+
- **NEW protocol module `framework/agents/research-protocol.md`** (`SECTION=`
|
|
20
|
+
dispatch): `profiles` (`PROFILE=<decision|deep|compare|regulatory>` output
|
|
21
|
+
contracts; absent → `deep` = legacy semantics; deep's dzhng-style iterative
|
|
22
|
+
loop + STORM perspectives + CoVe citation spot-check are opt-in via
|
|
23
|
+
`DEPTH=<1..3>`, default 1 = today's cost), `library` (layout, tag-rich report
|
|
24
|
+
frontmatter as source of truth, INDEX.md as regenerable view, `RES-<date>-
|
|
25
|
+
<slug>` ids — no max+1 race, archive-not-delete), `reuse` (pre-flight
|
|
26
|
+
`FULL_REUSE`/`DELTA`/`NEW` + per-category TTLs + anti-false-reuse guard +
|
|
27
|
+
the always-write-a-file polling contract), `sources` (matrix schema,
|
|
28
|
+
SOURCES.md → framework-template resolution — the default matrix lives in ONE
|
|
29
|
+
file, and the `SOURCE_MATRIX_CANDIDATE` growth loop emitting a ready-to-paste
|
|
30
|
+
maintainer prompt).
|
|
31
|
+
- **`senior-researcher` v2.0.0** (agents CHANGELOG + heading map): description
|
|
32
|
+
4-examples → 2 lines; `version:`/`effort:` frontmatter; `model: sonnet` KEPT
|
|
33
|
+
and the REGISTRY model-tier row corrected (it claimed "always opus",
|
|
34
|
+
contradicting the frontmatter since day one); NEW Profile Dispatch / Research
|
|
35
|
+
Library (total delivery-path chain: prompt → library → `paths.docs_dir`) /
|
|
36
|
+
Source Matrix sections; Operating Protocol cites incl. `SECTION=
|
|
37
|
+
injection-guard` — the agent reads more untrusted web content than any other
|
|
38
|
+
and previously had NO injection guard; FIRST MESSAGE TEMPLATE scoped to
|
|
39
|
+
interactive direct invocation.
|
|
40
|
+
- **NEW skill `/research` (42nd)**: THIN interactive orchestrator — scoping
|
|
41
|
+
(max 3 questions) → profile+nature routing → library reuse check BEFORE
|
|
42
|
+
paying for research → `senior-researcher` launch (parallel fan-out on
|
|
43
|
+
Claude; sequential by-name on Codex per `runtime-portability-protocol.md`)
|
|
44
|
+
→ filing + INDEX ownership → matrix growth loop (apply locally to
|
|
45
|
+
`SOURCES.md` `## Local additions` and/or print the upstream BALDART prompt).
|
|
46
|
+
Ships per-profile report templates (`assets/`) + deterministic
|
|
47
|
+
`scripts/rebuild-research-index.mjs` (INDEX regenerated from frontmatter).
|
|
48
|
+
- **NEW config key `paths.research_dir`** (default `docs/research`, proposed on
|
|
49
|
+
FIRST encounter only — an explicitly emptied key is a respected opt-out,
|
|
50
|
+
never re-proposed, never resurrected). Schema-change propagation:
|
|
51
|
+
template + `configure` (detect probe + prompt + post-write library creation)
|
|
52
|
+
+ `update` (new-key detector already covers `paths.*`; post-pull seed
|
|
53
|
+
backfill into an EXISTING dir only; auto-commit scoped to UNTRACKED seeds —
|
|
54
|
+
never sweeps a consumer-edited SOURCES.md/INDEX.md) + `doctor`
|
|
55
|
+
(`create-research-dir` / `backfill-research-seeds` autoOk actions — seeds are
|
|
56
|
+
generic, unlike the i18n registry; `research-sources-advisory` when the
|
|
57
|
+
framework matrix version moves ahead, never overwrites) +
|
|
58
|
+
`PROJECT-CONFIGURATION.md` (§ 4.2.2 lifecycle + opt-out) + this CHANGELOG.
|
|
59
|
+
New shared helper `src/utils/research-library.js` (idempotent, silent,
|
|
60
|
+
returns `created[]`).
|
|
61
|
+
- **Versioned source matrix**: `framework/templates/research-sources.template.md`
|
|
62
|
+
(`matrix_version: 1.0.0` + sibling `research-sources.CHANGELOG.md`) seeds the
|
|
63
|
+
consumer-owned `SOURCES.md`; 5-nature default matrix (scientific / dev /
|
|
64
|
+
regulatory / ux / market × primary / secondary / avoid / notes). Growth loop:
|
|
65
|
+
agent emits run-evidence-only candidates + the copy-paste BALDART prompt.
|
|
66
|
+
- **`/prd` 1.4.0**: Step 2.5 spawns with `PROFILE=decision`
|
|
67
|
+
(`PROFILE=regulatory` on signal S2) — resolving the two-conflicting-SSOTs
|
|
68
|
+
bug where the prompt asked for a light per-topic format while the agent's
|
|
69
|
+
contract mandated the full §0–§11 report; /prd now PRE-ALLOCATES the output
|
|
70
|
+
path (library when configured, legacy `prd_dir` fallback otherwise) and the
|
|
71
|
+
agent always writes a file there (`FULL_REUSE` → pointer stub) so the
|
|
72
|
+
10-minute exit-check poll stays deterministic. Discovery-phase background
|
|
73
|
+
launch updated in the same change (parallel location). `hybrid-ml-architect`
|
|
74
|
+
deliberately NOT touched (vertical, on-request) — protected by the defaults.
|
|
75
|
+
- Inventories: 42 skills / 33 domain modules (README count was already stale
|
|
76
|
+
at 28); REGISTRY Agent Map + decision tree + model-tier rows updated.
|
|
77
|
+
- OSS recon (inspiration only, zero dependencies adopted): GPT Researcher
|
|
78
|
+
(planner/executor, local-first hybrid research), dzhng/deep-research
|
|
79
|
+
(breadth/depth loop), STORM (multi-perspective questioning),
|
|
80
|
+
open_deep_research (scoping phase), Karpathy markdown-first KB (INDEX as the
|
|
81
|
+
single map, archive-not-delete).
|
|
82
|
+
- Codex parity: **portable** — skill = same SKILL.md bundle (two symlinks),
|
|
83
|
+
agent = transpiled `.codex/agents/*.toml` from the same markdown, module +
|
|
84
|
+
templates = plain markdown; the only Claude-only mechanic (parallel
|
|
85
|
+
subagent fan-out in `/research`) has an explicit sequential-by-name Codex
|
|
86
|
+
branch citing `runtime-portability-protocol.md`.
|
|
87
|
+
|
|
88
|
+
## [5.0.1] - 2026-07-03
|
|
89
|
+
|
|
90
|
+
**Adversarial-verification fixes on the 5.0.0 wave.** A full release verification
|
|
91
|
+
(distribution machine dogfooded end-to-end on 4 configs — all green; normative-loss audit
|
|
92
|
+
over 4 core agents; pipeline-coherence audit) found the headline mechanisms inert on the
|
|
93
|
+
happy path plus a handful of slot-boundary and consistency defects. All fixed; no gate
|
|
94
|
+
removed, no H2 moved (consumer overlays unaffected), no `baldart.config.yml` change.
|
|
95
|
+
|
|
96
|
+
- **FIXED (HIGH) — `/new` step 11b clean branch now proceeds to 11c**: previously only the
|
|
97
|
+
violation branch reached the review-bundle/doc-invariants build, leaving the v5.0.0
|
|
98
|
+
anti-re-read + PASS-fast machinery unused on every clean card (`implement.md`).
|
|
99
|
+
- **FIXED (HIGH) — `/codexreview` consumes the full lean contract**: Step -0.5 now parses +
|
|
100
|
+
forwards `review_bundle_path` (anti-re-read phrase in every Step-2 prompt) and
|
|
101
|
+
`specialist_dispatch` (orchestrated-mode suppression, `dispatch_deferred:<agent>`) — both
|
|
102
|
+
were produced by `codex-gate.md` but dead-wired on the `/new`→`/codexreview` hop. Optional
|
|
103
|
+
keys: pre-5.0 contracts keep working unchanged.
|
|
104
|
+
- **FIXED (HIGH) — coder slot boundaries**: `vercel-react-best-practices` un-slotted (no
|
|
105
|
+
config flag can express React-non-Next → structural normative loss); the NEVER-ad-hoc
|
|
106
|
+
browser-scripts rule hoisted out of `{{#e2e_playwright}}` (universal pre-5.0). Agents
|
|
107
|
+
CHANGELOG: coder/doc-reviewer/qa-sentinel v2.0.1.
|
|
108
|
+
- **FIXED (MEDIUM)** — doc-reviewer per-card cited exceptions (`topological-generation`,
|
|
109
|
+
`schema-drift`) restored + `doc-audit-protocol.md` Contract no longer contradicts the agent
|
|
110
|
+
core; qa-sentinel bundle `gate_logs` demoted to context-only (own-tier gates always re-run);
|
|
111
|
+
`build-review-bundle.mjs` diff scoped to `--may-edit` (multi-card batches no longer leak
|
|
112
|
+
prior cards into card N's bundle/docinv; `new2.js` implement brief mirrors the scoping);
|
|
113
|
+
`new-card-review.js` + the 2.5x delegation thread `reviewBundlePath` into every brief;
|
|
114
|
+
Phase 2.55 pre-5.0 fallback uses `git diff "$TRUNK...HEAD"` (bare `git diff` post-commit is
|
|
115
|
+
vacuous); cap-and-handoff checkpoint-missing branch defined; `/ui-implement`-delegated cards
|
|
116
|
+
explicitly run 7c–11c; PASS-fast Own-Doc Closure claim corrected; "rule 8" pointers
|
|
117
|
+
re-anchored to the renumbered Post-Intervention Coherence rule 7 (prd-card-writer, upgrade
|
|
118
|
+
doc, new2-resolve comment).
|
|
119
|
+
- **FIXED (LOW)** — `doc-invariants.mjs` evaluates `documentation_impact` and `canonical_docs`
|
|
120
|
+
independently; deferral KEEP list re-includes `balanced`; stale `coding-standards.md`
|
|
121
|
+
cross-refs to the removed coder H2 updated; `${paths.references_dir}` literals in
|
|
122
|
+
`doc-audit-protocol.md`.
|
|
123
|
+
- Skills: `new` 2.0.1, `new2` 1.4.1 (per-skill CHANGELOGs). Codex parity: portable — prose +
|
|
124
|
+
pure-Node scripts, no Claude-only primitive added; the `/codexreview` contract keys are
|
|
125
|
+
optional and ignored by pre-5.0 readers.
|
|
126
|
+
|
|
8
127
|
## [5.0.0] - 2026-07-03
|
|
9
128
|
|
|
10
129
|
**The agent-spine major.** Measured driver (1,934 subagent runs / 191 sessions on the
|
package/README.md
CHANGED
|
@@ -83,7 +83,7 @@ No additional activation steps needed — once installed, Claude Code (and Codex
|
|
|
83
83
|
### Core Protocol
|
|
84
84
|
|
|
85
85
|
- **AGENTS.md**: Mandatory coordination rules (MUST/SHOULD/OPTIONAL)
|
|
86
|
-
- **agents/**:
|
|
86
|
+
- **agents/**: 33 domain modules (architecture, workflows, testing, security, card-schema, i18n-protocol, return-contract-protocol, runtime-portability-protocol, component-manifest-schema, research-protocol, etc.)
|
|
87
87
|
- **Routing**: If you touch X, read Y - minimize context loading
|
|
88
88
|
|
|
89
89
|
### AI Agents (32 specialized agents)
|
|
@@ -213,7 +213,7 @@ Skills always-ask when required keys are missing — never silently default.
|
|
|
213
213
|
never overwrites your file. Full guide:
|
|
214
214
|
[`framework/docs/PROJECT-CONFIGURATION.md`](framework/docs/PROJECT-CONFIGURATION.md).
|
|
215
215
|
|
|
216
|
-
### Skills (
|
|
216
|
+
### Skills (42 portable skills)
|
|
217
217
|
|
|
218
218
|
Skills live under `.claude/skills/` and are auto-discovered by Claude Code. Every
|
|
219
219
|
skill is **versioned** (`version:` in frontmatter) and ships a per-skill
|
|
@@ -224,7 +224,7 @@ Bundled skills:
|
|
|
224
224
|
- **Code quality**: `skill-creator`, `find-skills`, `webapp-testing`, `playwright-skill`, `lsp-bootstrap` (v3.10.0), `graphify-bootstrap` (v4.21.0 — code knowledge graph), `graph-align` (v4.21.0 — doc↔graph alignment), `toolchain-bootstrap` (v4.41.0 — curated dev toolchain), `e2e-review` (v3.18.0)
|
|
225
225
|
- **Design**: `frontend-design`, `ui-design`, `ui-implement` (v4.82.0 — implement an approved mockup end-to-end + self-verify fidelity; the mockup→code playbook SSOT, delegated from `/new`), `motion-design`, `gamification-design`, `design-system-init` (v3.11.0 — bulk registry bootstrap/upgrade), `ds-new` (v4.69.0 — single-element guided creation: one component or token, reuse-first → optional scaffold → document + register + govern + verify; the on-the-fly twin of `design-system-init`), `ds-edit` (v4.70.0 — deliberate edit of one existing element: resync / extend-variant / breaking / re-govern; regenerates the spec preserving agentic fields + prose, same canonical template), `ds-render` (v4.76.0 — render primitives in isolation to PNG via Storybook+Playwright), `design-sync` (v4.76.0 — mirror the registry to its Claude Design satellite), `ds-handoff` (v4.79.0 — field-level 1:1 Claude Design handoff brief: grounds every screen's fields in the real data schemas + coverage-gates before emitting; the SSOT for the Claude Design prompt, delegated from `/prd`)
|
|
226
226
|
- **Product**: `seo-audit`, `copywriting`, `api-design-principles`
|
|
227
|
-
- **Knowledge**: `doc-writing-for-rag`, `capture` (LLM wiki overlay)
|
|
227
|
+
- **Knowledge**: `doc-writing-for-rag`, `capture` (LLM wiki overlay), `research` (v5.1.0 — routed research over the reusable research library: profile + source-matrix routing, reuse pre-flight, `senior-researcher` fan-out, matrix growth loop)
|
|
228
228
|
- **Internationalization**: `i18n` (v4.52.0 — audit the context registry + context-aware translation into native locale files), `i18n-adopt` (v4.52.0 — one-shot migration that externalizes all hardcoded strings on an existing codebase); both gated on `features.has_i18n`
|
|
229
229
|
- **Integration**: `kie-ai`, `remotion-best-practices`
|
|
230
230
|
- **Framework**: `baldart-push` (upstream contribution), `baldart-update` (v3.21.0 — agent-driven framework update), `overlay` (v3.19.0 — guided overlay author)
|
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
5.
|
|
1
|
+
5.1.0
|
|
@@ -7,6 +7,74 @@ per-item agent merge, the doctor probes, and the discovery hooks — like
|
|
|
7
7
|
|
|
8
8
|
Formato: [Keep a Changelog](https://keepachangelog.com/) · per-agent SemVer.
|
|
9
9
|
|
|
10
|
+
## [senior-researcher v2.0.0] — 2026-07-03 (framework v5.1.0)
|
|
11
|
+
|
|
12
|
+
The research-layer restructuring (profiles + library + source matrix). Pre-5.1
|
|
13
|
+
monolith is implicitly `1.x`. Every normative rule survives — inline as a
|
|
14
|
+
1-line binding rule, in the new `agents/research-protocol.md` (SECTION=
|
|
15
|
+
profiles|library|reuse|sources), or in `agent-operating-protocol.md`.
|
|
16
|
+
|
|
17
|
+
- `version:`/`effort:` frontmatter added; `description` trimmed to 2 lines
|
|
18
|
+
(the 4 inline examples — ~450 words — were paid by the ORCHESTRATOR's
|
|
19
|
+
context every session).
|
|
20
|
+
- **`model: sonnet` KEPT** (maintainer decision); the REGISTRY model-tier row
|
|
21
|
+
is corrected (it claimed "opus — always opus", contradicting the frontmatter
|
|
22
|
+
since the initial commit) — override to opus stays at the orchestrator's
|
|
23
|
+
discretion for `PROFILE=deep`.
|
|
24
|
+
- NEW `## Profile Dispatch`: `PROFILE=<decision|deep|compare|regulatory>`
|
|
25
|
+
spawn token per `research-protocol.md SECTION=profiles`; absent → `deep`
|
|
26
|
+
(legacy semantics). The deep iterative loop is opt-in via `DEPTH=<1..3>`
|
|
27
|
+
(default 1 = today's cost) so legacy no-token spawns are unaffected.
|
|
28
|
+
- NEW `## Research Library`: reuse pre-flight (`REUSE: FULL_REUSE|DELTA|NEW`,
|
|
29
|
+
anti-false-reuse guard), total delivery-path resolution (prompt path →
|
|
30
|
+
`${paths.research_dir}` → `${paths.docs_dir}`), frontmatter-as-source-of-
|
|
31
|
+
truth filing.
|
|
32
|
+
- NEW `## Source Matrix`: SOURCES.md resolution + `SOURCE_MATRIX_CANDIDATE`
|
|
33
|
+
growth-loop block (run-local evidence only).
|
|
34
|
+
- NEW `## Operating Protocol` cites: `SECTION=injection-guard` (this agent
|
|
35
|
+
reads more untrusted web content than any other — it previously had NO
|
|
36
|
+
injection guard), `SECTION=tool-budget` (saturation stop), `SECTION=memory`.
|
|
37
|
+
- Return Contract updated: + `REUSE:` line; on an orchestrator-preallocated
|
|
38
|
+
path a file is ALWAYS written (FULL_REUSE → pointer stub) so file-exists
|
|
39
|
+
polling never times out.
|
|
40
|
+
- FIRST MESSAGE TEMPLATE scoped to interactive direct invocation only
|
|
41
|
+
(`BACKGROUND_RUN=true` OR any orchestrator `PROFILE=` token skips it).
|
|
42
|
+
|
|
43
|
+
**Heading map (old → new) for consumer overlays**:
|
|
44
|
+
|
|
45
|
+
| Old H2 (pre-5.1) | Now |
|
|
46
|
+
|---|---|
|
|
47
|
+
| `## CRITICAL CONSTRAINT: AI-READABLE + LIMITED CONTEXT` | constraints folded into `## AUDIENCE` + `## OUTPUT — PROFILE=deep` (AI-readable block) |
|
|
48
|
+
| `## OUTPUT (DELIVERABLE)` | `## OUTPUT — PROFILE=deep (§0–§11, VERBATIM contract)` |
|
|
49
|
+
| `## NON-NEGOTIABLE QUALITY BAR` | same name, `(every profile)` suffix; evidence labels + insufficient-evidence rules folded in |
|
|
50
|
+
| `## WORKFLOW (MANDATORY — FOLLOW IN ORDER)` | same name — steps renumbered 1–8 (new step 2 = library pre-flight) |
|
|
51
|
+
| `## SEARCH LOG (REQUIRED IN §11 APPENDIX)` | `## SEARCH LOG (deep profile, §11)` |
|
|
52
|
+
| `## EVIDENCE STRENGTH LABELS` / `## WHAT TO DO WHEN EVIDENCE IS INSUFFICIENT` | folded into `## NON-NEGOTIABLE QUALITY BAR (every profile)` |
|
|
53
|
+
| `## UPDATE AGENT MEMORY` + `# Persistent Agent Memory` boilerplate tail | compressed under `# Persistent Agent Memory` + module `SECTION=memory` |
|
|
54
|
+
|
|
55
|
+
## [coder v2.0.1] · [doc-reviewer v2.0.1] · [qa-sentinel v2.0.1] — 2026-07-03 (framework v5.0.1)
|
|
56
|
+
|
|
57
|
+
Adversarial-verification fixes on the 3-layer restructuring (no H2 moved — overlays unaffected):
|
|
58
|
+
|
|
59
|
+
- **coder**: `vercel-react-best-practices` un-slotted (it applies to ANY React stack, and no
|
|
60
|
+
config flag can express "React non-Next" — a structural normative loss for those consumers;
|
|
61
|
+
"skill absent → skip silently"). The NEVER-ad-hoc-browser-scripts rule hoisted OUT of
|
|
62
|
+
`{{#e2e_playwright}}` as an unconditional line (it was universal pre-5.0; a Playwright
|
|
63
|
+
consumer with a stale `stack.testing.e2e` silently lost it); the `playwright-skill` link
|
|
64
|
+
itself stays slotted.
|
|
65
|
+
- **doc-reviewer**: two per-card cited exceptions restored from the audit module —
|
|
66
|
+
`SECTION=topological-generation` (multi-file doc passes generate leaf→root; was per-card in
|
|
67
|
+
v4.99.0 but unreachable behind the module's "per-card NEVER" contract) and
|
|
68
|
+
`SECTION=schema-drift` (changed field SET on a documented payload → `SCHEMA_DRIFT`/
|
|
69
|
+
`ORPHAN_FIELD`, diff-driven as in v4.99.0). `doc-audit-protocol.md` Contract reworded to
|
|
70
|
+
name the cited exceptions instead of contradicting the agent core.
|
|
71
|
+
- **qa-sentinel**: review-bundle `gate_logs` demoted to CONTEXT ONLY (`files_changed` stays
|
|
72
|
+
authoritative for scope) — own-tier gates are always re-executed, never cited from a stale
|
|
73
|
+
Phase-2 log; restored the v4.99.0 one-liners "never claim a gate ran when it did not" and
|
|
74
|
+
"never invent your own classification".
|
|
75
|
+
- (pointer-only, no version bump) **prd-card-writer**: "code-reviewer rule 8" re-anchored to
|
|
76
|
+
the renumbered rule 7 (Post-Intervention Coherence Check), by name.
|
|
77
|
+
|
|
10
78
|
## [coder v2.0.0] · [code-reviewer v2.0.0] · [doc-reviewer v2.0.0] · [plan-auditor v2.0.0] · [qa-sentinel v2.0.0] · [codebase-architect v2.0.0] · [ui-expert v2.0.0] · [skill-improver v2.0.0] — 2026-07-03 (framework v5.0.0)
|
|
11
79
|
|
|
12
80
|
**The 3-layer restructuring** (core inline + shared modules + install-time slots).
|
|
@@ -40,7 +40,7 @@ Quick-reference for all custom agents. Use this to route tasks to the right spec
|
|
|
40
40
|
| **prd-card-writer** | Product | Generate atomic backlog cards from approved PRD; `MODE: apply-findings` = fresh-context applier of audit findings to card YAML (spawned by /prd Step 6.9, sonnet override) | Card YAML, traceability, parallel groups | Yes | Backlog writing, dependency analysis |
|
|
41
41
|
| **onboarding-architect-lead** | Product | Design/improve user onboarding experiences | Activation flows, experiments | No | Onboarding research, metrics |
|
|
42
42
|
| **website-orchestrator** | Product | Coordinate multi-agent website development | Project orchestration | No | Phase management, quality gates |
|
|
43
|
-
| **senior-researcher** | Research |
|
|
43
|
+
| **senior-researcher** | Research | Evidence-based research reports; pass `PROFILE=<decision\|deep\|compare\|regulatory>` (agents/research-protocol.md); reports land in the research library (paths.research_dir) with a reuse pre-flight | Evidence-based analysis, research library | Yes | Web search, citations, library reuse |
|
|
44
44
|
| **marketing-conversion-strategist** | Marketing | Create high-converting copy and messaging | Positioning, CTAs, copy | No | Business interview, copywriting |
|
|
45
45
|
| **seo-analytics-strategist** | Marketing | Define SEO strategy, metadata, analytics | GA4/GTM, schema markup | No | Keyword research, event planning |
|
|
46
46
|
| **api-perf-cost-auditor** | DevOps | Analyze APIs for performance/cost bottlenecks | Backend optimization, scaling | No | Bottleneck detection, cost analysis |
|
|
@@ -127,7 +127,7 @@ Visual assets needed? --> visual-designer
|
|
|
127
127
|
Animation specs? --> motion-expert
|
|
128
128
|
ML/ranking/recommendation? --> hybrid-ml-architect
|
|
129
129
|
Gamification/retention? --> hyper-gamification-designer
|
|
130
|
-
Research a technical topic? --> senior-researcher
|
|
130
|
+
Research a technical topic? --> senior-researcher (pass PROFILE=; interactive channel: /research skill)
|
|
131
131
|
Marketing copy/positioning? --> marketing-conversion-strategist
|
|
132
132
|
SEO/analytics planning? --> seo-analytics-strategist
|
|
133
133
|
API performance audit? --> api-perf-cost-auditor
|
|
@@ -208,7 +208,7 @@ Use this table when spawning agents via the `Task` tool. The `model` field in ea
|
|
|
208
208
|
| **prd-card-writer** | opus | — (always opus, effort: high) | Card precision requires deep reasoning for 20+ fields, traceability, parallel groups |
|
|
209
209
|
| **ui-expert** | opus | — (always opus) | Design quality requires highest capability |
|
|
210
210
|
| **hybrid-ml-architect** | opus | — (always opus) | ML architecture is complex by nature |
|
|
211
|
-
| **senior-researcher** | opus | —
|
|
211
|
+
| **senior-researcher** | sonnet | opus at orchestrator's discretion for `PROFILE=deep` surveys | Web-native retrieval + synthesis — sonnet is sufficient and fast; depth comes from the profile loop (`DEPTH=`), not the model |
|
|
212
212
|
|
|
213
213
|
**Rules**: Never use haiku for any **named specialist agent** in the matrix above. Opus for code writing and creative/complex work. Sonnet for analysis, review, and documentation. `qa-sentinel` stays on sonnet even though it is a mechanical gate runner — its failure interpretation and SCOPED-vs-FULL tiering benefit from sonnet.
|
|
214
214
|
|
|
@@ -4,7 +4,7 @@ description: "Write, modify, or refactor production code. For features, bugs, an
|
|
|
4
4
|
model: opus
|
|
5
5
|
effort: high
|
|
6
6
|
color: red
|
|
7
|
-
version: 2.0.
|
|
7
|
+
version: 2.0.1
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
> **YOLO MODE**: All agents spawned via the Task tool MUST use `mode: "bypassPermissions"`. No exceptions.
|
|
@@ -219,17 +219,16 @@ Keep it simple. Write good code. Ask if unsure. Write it clean the first time.
|
|
|
219
219
|
|
|
220
220
|
You MUST use these skills when applicable:
|
|
221
221
|
|
|
222
|
-
{{#fw_nextjs}}
|
|
223
222
|
### `vercel-react-best-practices`
|
|
224
|
-
React
|
|
225
|
-
{{/fw_nextjs}}
|
|
223
|
+
React performance patterns (any React stack, Next.js included). When: writing React components, optimizing renders, async data, bundle size. Skill not installed (non-React stack / no plugin) → skip silently.
|
|
226
224
|
### `frontend-design`
|
|
227
225
|
Production-grade frontend code with high design quality. When: building new UI components or complex layouts.
|
|
228
226
|
{{#deploy_vercel}}
|
|
229
227
|
### `vercel:deploy`
|
|
230
228
|
Deploying to Vercel. When: the user requests deployment.
|
|
231
229
|
{{/deploy_vercel}}
|
|
230
|
+
**Browser testing (unconditional)**: NEVER ad-hoc browser scripts or one-off `run.js` drivers — always the project's E2E test runner.
|
|
232
231
|
{{#e2e_playwright}}
|
|
233
232
|
### `playwright-skill`
|
|
234
|
-
E2E browser testing via Playwright Test CLI (`.spec.ts` in `tests/e2e/`, run via `npm run test:e2e`). When: testing new UI features, user flows, form submissions
|
|
233
|
+
E2E browser testing via Playwright Test CLI (`.spec.ts` in `tests/e2e/`, run via `npm run test:e2e`). When: testing new UI features, user flows, form submissions — always `npx playwright test`.
|
|
235
234
|
{{/e2e_playwright}}
|
|
@@ -3,7 +3,7 @@ name: doc-reviewer
|
|
|
3
3
|
description: "Audit, review, and write project documentation. Use after feature implementation, bug-fix waves, or documentation cleanup. Owns documentation completeness and drift control."
|
|
4
4
|
model: sonnet
|
|
5
5
|
color: green
|
|
6
|
-
version: 2.0.
|
|
6
|
+
version: 2.0.1
|
|
7
7
|
---
|
|
8
8
|
> **YOLO MODE**: All agents spawned via the Task tool MUST use `mode: "bypassPermissions"`. No exceptions.
|
|
9
9
|
|
|
@@ -163,11 +163,12 @@ When a SSOT exists, update it before any derived doc:
|
|
|
163
163
|
- card DONE → `ssot-registry.md`
|
|
164
164
|
- architecture/provider/auth/schema/contract decision → ADR
|
|
165
165
|
- **changed validation constraint on a public contract** (`.max()`/`.min()`/length/regex/enum/default changed in a route handler, server action, or API schema) → the API reference **BODY** for that endpoint: verify the documented value EQUALS the code value — frontmatter freshness alone does not catch this. Mismatch = `API_BODY_CONSTRAINT_DRIFT`; you are the canonical writer, fix the body directly.
|
|
166
|
+
- **changed field SET on a documented payload** (field added/removed/renamed in a request/response schema whose endpoint doc exists) → update that doc's field table; a documented field gone from code = `SCHEMA_DRIFT`, a code field absent from the doc = `ORPHAN_FIELD`. Procedure: `agents/doc-audit-protocol.md SECTION=schema-drift` (per-card cited exception).
|
|
166
167
|
{{#has_wiki_overlay}}
|
|
167
168
|
- diff matches a synthesis page's `update_triggers` frontmatter (pages under `${paths.wiki_dir}/syntheses/`) → that synthesis page must be updated in the same change, or flagged `WIKI_SYNTH_STALE`. Pages without the field are exempt. See `agents/llm-wiki-methodology.md § Update triggers`.
|
|
168
169
|
{{/has_wiki_overlay}}
|
|
169
170
|
6. Check completeness of: data model docs, collection docs, API docs, UI docs, `product-scope.md` (business-scope changes only), `project-status.md`, ADRs when architecture changed, backlog notes, macro-feature SSOT cross-links.
|
|
170
|
-
7. **Write missing docs directly.** Prefer extending existing reference docs over new files unless the feature justifies a standalone doc. Type-specific checklists: `doc-reviewer-support/references/doc-checklists.md` **if it exists**, else the invariant table + the `doc-writing-for-rag` templates.
|
|
171
|
+
7. **Write missing docs directly.** Prefer extending existing reference docs over new files unless the feature justifies a standalone doc. Type-specific checklists: `doc-reviewer-support/references/doc-checklists.md` **if it exists**, else the invariant table + the `doc-writing-for-rag` templates. Writing/updating MORE than one doc file in this pass → generate in dependency order, leaf→root (schemas/data-model before endpoints before UI/index), so no doc cites a sibling not yet updated — full procedure: `agents/doc-audit-protocol.md SECTION=topological-generation` (per-card cited exception).
|
|
171
172
|
8. Update indexes when new docs are added.
|
|
172
173
|
9. {{#has_wiki_overlay}}Assess wiki-overlay sync need (deliverable section H): new cross-cutting concept, renamed canonical, deprecated doc — note the need, do not dispatch any sync agent here.{{/has_wiki_overlay}} Wiki assessment is a no-op when `features.has_wiki_overlay: false` — skip section H with a one-line note.
|
|
173
174
|
10. Report what was checked, added, fixed, and deferred — but see Own-Documentation Closure: an own-doc may NOT appear in the "deferred" bucket.
|
|
@@ -264,7 +264,7 @@ exception**: the LIGHT branch (b) above, a strictly UI-presentational card (`are
|
|
|
264
264
|
logic/ui split pair (e.g. a `…-submit-ui` card whose logic lives in its `…-submit-logic`
|
|
265
265
|
sibling): reviewing a pixels-only diff at Codex-`full` depth is waste, and the design-system
|
|
266
266
|
safety net still fires regardless of profile (a `light` card keeps its per-card code-review —
|
|
267
|
-
since v4.18.0 a per-card Codex finder + `code-reviewer` FP-gate — plus `code-reviewer` rule
|
|
267
|
+
since v4.18.0 a per-card Codex finder + `code-reviewer` FP-gate — plus `code-reviewer`'s Post-Intervention Coherence check (DS rule 7) /
|
|
268
268
|
the registry-first DS cascade, and is covered by the batch-wide Final FULL gate). Any
|
|
269
269
|
doubt — a hint of logic, state, data binding, a new/modified primitive, or `areas` beyond
|
|
270
270
|
`[ui]` — disqualifies branch (b): the card stays `balanced`. When in doubt between `balanced`
|
|
@@ -4,7 +4,7 @@ description: "RUN the mechanical quality gates on a change set and return a PASS
|
|
|
4
4
|
model: sonnet
|
|
5
5
|
color: pink
|
|
6
6
|
memory: project
|
|
7
|
-
version: 2.0.
|
|
7
|
+
version: 2.0.1
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
> **YOLO MODE**: All agents spawned via the Task tool MUST use `mode: "bypassPermissions"`. No exceptions.
|
|
@@ -23,10 +23,10 @@ Run mechanical quality gates fast, return a PASS/FAIL verdict, and get out of th
|
|
|
23
23
|
## Step 0: Always Start Here
|
|
24
24
|
|
|
25
25
|
0. **Resolve the working directory.** A `Worktree path` in your prompt → `cd` into it FIRST; all git/lint/test/build commands run there. Field present but empty → HALT: `QA DONE — <CARD-ID> / Verdict: FAIL / worktree path provided but empty`. No field → current directory.
|
|
26
|
-
1. `git diff --name-only HEAD` for the actual change set (you read uncommitted work pre-commit). When the briefing carries a review bundle, its `files_changed`
|
|
27
|
-
2. Read the authoritative `QA profile` from your prompt (`balanced` | `deep`) and map it via **Operating Modes**. The profile — NOT file count — selects the tier. Only allowed adjustment: `balanced → FULL` on risk drift (below). No profile in the prompt → default SCOPED and note it.
|
|
26
|
+
1. `git diff --name-only HEAD` for the actual change set (you read uncommitted work pre-commit). When the briefing carries a review bundle, its `files_changed` is authoritative for SCOPE — don't re-derive it. Its `gate_logs` are CONTEXT ONLY (Phase-2 logs, possibly stale after later mutations): the gates YOUR tier owns you always execute yourself, and you never cite a bundle log as if it were your own run.
|
|
27
|
+
2. Read the authoritative `QA profile` from your prompt (`balanced` | `deep`) and map it via **Operating Modes**. The profile — NOT file count — selects the tier. Only allowed adjustment: `balanced → FULL` on risk drift (below). No profile in the prompt → default SCOPED and note it — never invent your own classification.
|
|
28
28
|
|
|
29
|
-
Never fabricate test results. Never assume what changed — read the diff. Do NOT read changed files to "understand scope" — that's code-reviewer's job. The ONLY files you read are the backlog card YAML and the git diff output.
|
|
29
|
+
Never fabricate test results — and never claim a gate ran when it did not (a SKIP is reported as SKIP). Never assume what changed — read the diff. Do NOT read changed files to "understand scope" — that's code-reviewer's job. The ONLY files you read are the backlog card YAML and the git diff output.
|
|
30
30
|
|
|
31
31
|
## Gate Command Resolution
|
|
32
32
|
|