baldart 4.93.0 → 4.95.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 +23 -0
- package/VERSION +1 -1
- package/framework/.claude/agents/REGISTRY.md +3 -3
- package/framework/.claude/agents/api-perf-cost-auditor.md +1 -1
- package/framework/.claude/agents/codebase-architect.md +57 -109
- package/framework/.claude/agents/hybrid-ml-architect.md +1 -1
- package/framework/.claude/agents/legal-counsel-gdpr.md +1 -1
- package/framework/.claude/agents/plan-auditor.md +1 -1
- package/framework/.claude/agents/prd-card-writer.md +108 -1
- package/framework/.claude/agents/security-reviewer.md +1 -1
- package/framework/.claude/commands/codexreview.md +1 -1
- package/framework/.claude/skills/bug/CHANGELOG.md +4 -0
- package/framework/.claude/skills/bug/SKILL.md +6 -4
- package/framework/.claude/skills/context-primer/CHANGELOG.md +10 -0
- package/framework/.claude/skills/context-primer/SKILL.md +26 -60
- package/framework/.claude/skills/ds-handoff/CHANGELOG.md +4 -0
- package/framework/.claude/skills/ds-handoff/SKILL.md +3 -2
- package/framework/.claude/skills/e2e-review/CHANGELOG.md +4 -0
- package/framework/.claude/skills/e2e-review/SKILL.md +6 -4
- package/framework/.claude/skills/new/CHANGELOG.md +4 -0
- package/framework/.claude/skills/new/SKILL.md +1 -1
- package/framework/.claude/skills/new/references/completeness.md +9 -0
- package/framework/.claude/skills/new/references/final-review.md +2 -1
- package/framework/.claude/skills/new/references/implement.md +1 -1
- package/framework/.claude/skills/new2/CHANGELOG.md +4 -0
- package/framework/.claude/skills/new2/SKILL.md +1 -1
- package/framework/.claude/skills/prd/CHANGELOG.md +15 -0
- package/framework/.claude/skills/prd/SKILL.md +1 -1
- package/framework/.claude/skills/prd/assets/card-template.yml +13 -1
- package/framework/.claude/skills/prd/references/audit-phase.md +42 -51
- package/framework/.claude/skills/prd/references/discovery-phase.md +7 -3
- package/framework/.claude/skills/prd/references/validation-phase.md +2 -1
- package/framework/.claude/skills/prd-add/CHANGELOG.md +4 -0
- package/framework/.claude/skills/prd-add/SKILL.md +3 -2
- package/framework/.claude/skills/ui-design/CHANGELOG.md +4 -0
- package/framework/.claude/skills/ui-design/SKILL.md +2 -2
- package/framework/.claude/workflows/new-card-review.js +1 -1
- package/framework/.claude/workflows/new-final-review.js +1 -1
- package/framework/.claude/workflows/new2.js +6 -2
- package/framework/agents/analysis-profiles.md +286 -0
- package/framework/agents/card-schema.md +60 -1
- package/framework/agents/index.md +2 -1
- package/framework/agents/skills-mapping.md +4 -0
- package/framework/scripts/validate-card-baseline.js +62 -4
- package/framework/templates/primitives/AGENTS.CHANGELOG.md +10 -0
- package/framework/templates/primitives/AGENTS.md +8 -3
- package/framework/templates/primitives/CLAUDE.CHANGELOG.md +6 -0
- package/framework/templates/primitives/CLAUDE.md +5 -2
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: cont
|
|
3
3
|
effort: medium
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.1.0
|
|
5
5
|
description: >
|
|
6
6
|
Load codebase context silently before starting work, optimized for LLM
|
|
7
7
|
comprehension using research-backed structured formatting.
|
|
@@ -56,72 +56,38 @@ precedence caveats: `framework/agents/effort-protocol.md`.
|
|
|
56
56
|
|
|
57
57
|
Default to `query` if ambiguous.
|
|
58
58
|
|
|
59
|
+
2b. **Map the task type to an analysis profile** (the mapping SSOT is
|
|
60
|
+
`framework/agents/analysis-profiles.md` § 3 — do not restate search strategy here):
|
|
61
|
+
|
|
62
|
+
| Task type | PROFILE |
|
|
63
|
+
|-----------|---------|
|
|
64
|
+
| `bug-fix` | `bug` |
|
|
65
|
+
| `refactor` | `impact` |
|
|
66
|
+
| `new-feature`, `query`, `doc-update` | `discovery` (pass the task type through — the profile has per-task-type deltas) |
|
|
67
|
+
| any type + UI/component/token keywords when `features.has_design_system: true` | `ui` |
|
|
68
|
+
|
|
59
69
|
3. Launch `codebase-architect` agent with this prompt template:
|
|
60
70
|
|
|
61
71
|
```
|
|
62
72
|
Load context about: {keywords}
|
|
63
73
|
Task type: {task_type}
|
|
64
74
|
|
|
75
|
+
PROFILE={profile} — resolve your analysis profile per `agents/analysis-profiles.md`
|
|
76
|
+
(Grep `### PROFILE: {profile}`, Read ONLY that section + the shared blocks it cites).
|
|
77
|
+
It defines your retrieval plan, what to skip, and your output blocks. Your system
|
|
78
|
+
prompt's Investigation Protocol is the engine; the profile scopes it.
|
|
79
|
+
|
|
65
80
|
OUTPUT=terse — you are a silent loader's machine consumer, not a human Q&A. Return the
|
|
66
|
-
structured contract (
|
|
67
|
-
with no narrative prose; the loader condenses this into the XML
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
also consult `${paths.wiki_dir}/index.md` and any must-include docs listed in
|
|
77
|
-
`.baldart/overlays/context-primer.md` (verify wiki claims against canonical docs).
|
|
78
|
-
|
|
79
|
-
2. Targeted searches:
|
|
80
|
-
a. Agent memory: grep MEMORY.md index for topic match, read ONLY
|
|
81
|
-
matching files (skip files >20KB unless filename matches keywords).
|
|
82
|
-
b. Backlog (when `features.has_backlog: true`): grep `${paths.backlog_dir}/*.yml` for card titles matching keywords.
|
|
83
|
-
Read only the matching cards, not all cards.
|
|
84
|
-
c. Git: `git log --oneline -10 --grep="{keywords}"` (10 results max).
|
|
85
|
-
|
|
86
|
-
3. Broader search (when steps 1-2 are thin):
|
|
87
|
-
a. Search for 2-3 specific identifiers from steps 1-2, routing by query shape
|
|
88
|
-
per `framework/agents/code-search-protocol.md` (symbols → LSP when
|
|
89
|
-
`has_lsp_layer`) and `framework/agents/code-graph-protocol.md` (structural /
|
|
90
|
-
relational → Graphify when `has_code_graph`); grep is the fallback for textual
|
|
91
|
-
patterns. Follow those modules' tier order, budgets, and anti-flail rule —
|
|
92
|
-
don't restate them here.
|
|
93
|
-
a-bis. **UI / component keywords when `has_design_system: true`**: route via the
|
|
94
|
-
design-system layer, NOT source scans — read `${paths.design_system}/INDEX.md`
|
|
95
|
-
(thin router) then the **frontmatter HEAD** of the matched
|
|
96
|
-
`components/<Name>.md` (props/variants/token_bindings; schema
|
|
97
|
-
`framework/agents/component-manifest-schema.md`). Read a spec's prose / the
|
|
98
|
-
source only to verify a runtime-sensitive claim. This is the cheap on-demand
|
|
99
|
-
path that replaces reading a monolithic INDEX or component sources.
|
|
100
|
-
b. Read key file headers (first 50 lines) to identify structure.
|
|
101
|
-
DO NOT read `${paths.prd_dir}/` or `${paths.references_dir}/` files in full —
|
|
102
|
-
route via the registry and read only the specific section you need.
|
|
103
|
-
|
|
104
|
-
4. Targeted verification (ALL cases):
|
|
105
|
-
- Verify ONLY runtime-sensitive claims (auth patterns, API contracts,
|
|
106
|
-
current schema) against actual code.
|
|
107
|
-
- Files <200 lines: read in full.
|
|
108
|
-
- Files 200-500 lines: read first 50 lines + specific section.
|
|
109
|
-
- Files >500 lines: grep for key exports/functions, read only those.
|
|
110
|
-
- NEVER read agent memory files >20KB in full.
|
|
111
|
-
|
|
112
|
-
TASK-ADAPTIVE RULES:
|
|
113
|
-
- "query": canonical docs + memory only. Skip source code unless code-specific.
|
|
114
|
-
- "bug-fix": canonical docs + recent git changes + error-related code. Skip arch docs.
|
|
115
|
-
- "new-feature": canonical docs + patterns in same domain + ADRs. Skip unrelated areas.
|
|
116
|
-
- "refactor": canonical docs + affected files + dependency refs. Skip design rationale.
|
|
117
|
-
- "doc-update": SSOT registry. Skip source code.
|
|
118
|
-
|
|
119
|
-
WIKI OVERLAY ROUTING:
|
|
120
|
-
- If the topic is about synthesized knowledge, dashboards, reading guides, or
|
|
121
|
-
recurring documentation questions, prefer the derived wiki overlay as a
|
|
122
|
-
compression layer.
|
|
123
|
-
- Always verify wiki claims against canonical repo docs before using them as
|
|
124
|
-
working truth.
|
|
81
|
+
structured contract (the profile's blocks + canonical evidence + `path:line — symbol`
|
|
82
|
+
rows + `totals:`) with no narrative prose; the loader condenses this into the XML
|
|
83
|
+
context block.
|
|
84
|
+
|
|
85
|
+
TOKEN BUDGET: stay under 15K tokens total (this caps the profile default).
|
|
86
|
+
|
|
87
|
+
SKILL-SPECIFIC INPUTS (on top of the profile plan):
|
|
88
|
+
- Must-include canonical docs listed in `.baldart/overlays/context-primer.md` (if the
|
|
89
|
+
overlay is present) — read their matched sections.
|
|
90
|
+
- Recency signal: `git log --oneline -10 --grep="{keywords}"` (10 results max).
|
|
125
91
|
|
|
126
92
|
Return output in this EXACT XML format (30-50 lines max):
|
|
127
93
|
|
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
Formato: [Keep a Changelog](https://keepachangelog.com/) · [SemVer](https://semver.org/).
|
|
4
4
|
|
|
5
|
+
## 1.2.0 — 2026-07-02
|
|
6
|
+
|
|
7
|
+
- **Analysis-profile contract (framework v4.94.0)**: the standalone screen-resolution probe passes `PROFILE=ui` to `codebase-architect` per `framework/agents/analysis-profiles.md`. The Step 3 field-extraction retrieval order is unchanged.
|
|
8
|
+
|
|
5
9
|
## 1.1.0 — 2026-07-01
|
|
6
10
|
|
|
7
11
|
- **Decision & preference pass (Step 5.5)** — nuovo `references/decision-pass.md`.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ds-handoff
|
|
3
3
|
effort: medium
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.2.0
|
|
5
5
|
description: >
|
|
6
6
|
Produce a FIELD-LEVEL, 1:1, interaction-complete handoff brief for Claude Design
|
|
7
7
|
— every screen's real fields (label, control type, required, validation, default,
|
|
@@ -89,7 +89,8 @@ Each step is a delegation. Read the cited SSOT; do not paraphrase it.
|
|
|
89
89
|
`mockup_analysis` from the `/prd` state file `## UI Design` (reuse the caller's
|
|
90
90
|
collection — do NOT re-derive). *Standalone* → derive screens from the arg;
|
|
91
91
|
on ambiguity, ONE `AskUserQuestion` listing route/page candidates from a
|
|
92
|
-
`codebase-architect` probe
|
|
92
|
+
`codebase-architect` probe (pass `PROFILE=ui` — `agents/analysis-profiles.md`).
|
|
93
|
+
Never proceed on silence.
|
|
93
94
|
|
|
94
95
|
2. **Identify backing entities per screen.** Name the entity/entities each screen
|
|
95
96
|
reads or writes. A screen may legitimately have **zero** entities (pure
|
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
Formato: [Keep a Changelog](https://keepachangelog.com/) · [SemVer](https://semver.org/).
|
|
4
4
|
|
|
5
|
+
## 1.3.0 — 2026-07-02
|
|
6
|
+
|
|
7
|
+
- **Analysis-profile contract (framework v4.94.0)**: the two `codebase-architect` reverse-dependency lookups (routes importing a changed component; primitives used by a route in compliance-only mode) pass `PROFILE=impact` per `framework/agents/analysis-profiles.md`.
|
|
8
|
+
|
|
5
9
|
## 1.2.1 — 2026-07-02
|
|
6
10
|
|
|
7
11
|
- Phase 3.8: la lane visual del route non renderizzabile con mockup code-form viene
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: e2e-review
|
|
3
3
|
effort: medium
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.3.0
|
|
5
5
|
description: >
|
|
6
6
|
Deterministic, BLOCKING end-to-end review run after a feature is implemented.
|
|
7
7
|
Combines functional E2E (Playwright spec written by `coder`, executed via
|
|
@@ -140,8 +140,9 @@ system constraints into a machine-readable verification plan.
|
|
|
140
140
|
route, SvelteKit `routes/...` → route). If the framework is unknown,
|
|
141
141
|
ask the user.
|
|
142
142
|
- For each changed component under `${paths.components_primitives}`,
|
|
143
|
-
identify the routes that import it via the `codebase-architect` agent
|
|
144
|
-
|
|
143
|
+
identify the routes that import it via the `codebase-architect` agent —
|
|
144
|
+
pass `PROFILE=impact` (reverse-dependency lookup per
|
|
145
|
+
`agents/analysis-profiles.md`; fallback to grep when LSP is unavailable).
|
|
145
146
|
3. **Synthesize verification plan** as Gherkin scenarios. Format:
|
|
146
147
|
|
|
147
148
|
```gherkin
|
|
@@ -260,7 +261,8 @@ If no mockup image is available BUT `features.has_design_system: true`:
|
|
|
260
261
|
specs (cascade detailed in
|
|
261
262
|
[`framework/agents/design-system-protocol.md`](../../../agents/design-system-protocol.md)).
|
|
262
263
|
- Identify which primitives the route uses via the `codebase-architect`
|
|
263
|
-
agent (or grep on imports under
|
|
264
|
+
agent with `PROFILE=impact` (or grep on imports under
|
|
265
|
+
`${paths.components_primitives}`).
|
|
264
266
|
- Record `mockup_source.level = "compliance-only"` and the list of components
|
|
265
267
|
in scope.
|
|
266
268
|
|
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
Formato: [Keep a Changelog](https://keepachangelog.com/) · [SemVer](https://semver.org/).
|
|
4
4
|
|
|
5
|
+
## 1.4.0 — 2026-07-02
|
|
6
|
+
|
|
7
|
+
- **Analysis-profile contract (framework v4.94.0)**: `implement.md` Phase 1 step 3 now passes a deterministic `PROFILE=` token to the `codebase-architect` spawn — `ui` when the card has a non-empty `links.design`/`links.design_src` (the same mockup bit as step 6a), else `feature`. Contract SSOT: `framework/agents/analysis-profiles.md`; guarded by the `check-new-parity.mjs` tripwire.
|
|
8
|
+
|
|
5
9
|
## 1.3.0 — 2026-07-02
|
|
6
10
|
|
|
7
11
|
- **Hot-file economy (T2.A)**: il briefing "Codebase Context" passa il baseline
|
|
@@ -54,6 +54,15 @@ Before triggering any review, you MUST verify that the coder agent implemented *
|
|
|
54
54
|
index of WHERE to look; you still verify independently (do NOT trust its `status` alone), just
|
|
55
55
|
without pulling entire files inline.
|
|
56
56
|
|
|
57
|
+
**4b. Per-AC executable oracles (`ac_verification` — EXECUTE, don't judge).** When the card
|
|
58
|
+
carries an `ac_verification` map (card-schema.md § "Acceptance-criteria grammar (EARS) +
|
|
59
|
+
per-AC oracles"), an AC whose oracle is NOT `manual:` is verified by **running the command**
|
|
60
|
+
— the exit status is the PRIMARY evidence for that row (`Done` on expected exit, `Missing/
|
|
61
|
+
Partial` otherwise, with the command + exit code in the Evidence column). Reading-based
|
|
62
|
+
judgment then covers only `manual:` oracles, oracle-less ACs, and the non-AC requirement
|
|
63
|
+
rows. A failing oracle is never argued around: either the implementation is incomplete
|
|
64
|
+
(gap-fixer path) or the oracle itself is stale — surface which, never silently reclassify.
|
|
65
|
+
|
|
57
66
|
**Verification depth per requirement type:**
|
|
58
67
|
- **"Create endpoint/route"** → verify: route file exists, handler has correct HTTP method,
|
|
59
68
|
request validation present, response shape matches requirement, auth middleware applied.
|
|
@@ -211,7 +211,8 @@ that is a **gate violation**: log it as
|
|
|
211
211
|
Log `f.2-arch: reused N per-card baselines (no re-spawn)` in the tracker. This avoids the N+1
|
|
212
212
|
architect invocations the per-card persistence was designed to prevent.
|
|
213
213
|
- **Any missing** (a card was added late, or a baseline was purged) → invoke **codebase-architect**
|
|
214
|
-
ONCE over the batch scope
|
|
214
|
+
ONCE over the batch scope — pass `PROFILE=baseline OUTPUT=terse` (`agents/analysis-profiles.md`) —
|
|
215
|
+
to map existing architecture, critical patterns, and high-risk code
|
|
215
216
|
paths for regression. Persist its output to `/tmp/arch-baseline-batch-<FIRST-CARD-ID>.md` and set
|
|
216
217
|
`${ARCH_BASELINE_PATHS}` to that single path. Log `f.2-arch: re-spawned (missing baselines: <list>)`. Do NOT spawn
|
|
217
218
|
the architect more than once for the batch — it is the single grounding context for all
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
- If `DONE` (or the user chose "proceed anyway") → continue.
|
|
11
11
|
2b. **Claim** — only now set the card status to `IN_PROGRESS` (in the backlog YAML / tracker) and assign yourself. This is a state write, not a visibility emission — do not also spend a TaskUpdate / Progress-Bar turn (§ "State surface — the tracker only").
|
|
12
12
|
2c. **Trivial-card classification (BLOCKING gate for steps 3–4)** — evaluate `IS_TRIVIAL(card)` per § "Trivial-card fast-lane". Note: condition 3 (non-source diff) cannot be fully evaluated until the coder has produced the diff, so at this point compute the **provisional** trivial flag from conditions 1+2 only (`review_profile == skip` AND no Step-A trigger sourced from the card YAML text + `files_likely_touched` extensions — if EVERY path in `files_likely_touched` is non-source, condition 3 is provisionally satisfied). If provisionally trivial → **SKIP steps 3, 3a, and 4** (architecture grounding); log `trivial: architecture grounding skipped (review_profile=skip + non-source files_likely_touched + 0 triggers)` and jump to Phase 2. Re-confirm `IS_TRIVIAL` on the ACTUAL committed diff at the review gates (Phase 2.55/3.5/3.7); if the coder unexpectedly touched a source file, the guard flips the card back onto the normal review path there. If NOT provisionally trivial → run steps 3, 3a, 4 as normal.
|
|
13
|
-
3. **(skip when provisionally trivial — see 2c)** Invoke the **codebase-architect** agent (MUST per AGENTS.md) to understand the relevant codebase area, existing patterns, and architecture before any implementation. When `features.has_lsp_layer: true`, the architect uses LSP find-references for identifier-shaped lookups — this needs NO handoff from the orchestrator: the architect reads `features.has_lsp_layer` from `baldart.config.yml` directly (the flag is ambient) per `agents/code-search-protocol.md`. Likewise, when `features.has_code_graph: true`, the architect uses the Graphify code graph for structural/relational lookups (ambient flag) per `agents/code-graph-protocol.md`. The orchestrator does NOT propagate either flag. (Earlier doc versions numbered this step 4; the step that read project-status BEFORE the architect was removed because it persisted pre-analysis context — see step 3a.) **Pass `OUTPUT=terse` in the architect prompt (since v4.49.0)** — this is grounding for the coder/reviewer, not an explanation, so the architect returns its structured contract (reuse table + canonical evidence + `path:line — symbol` rows + `totals:`) without narrative prose. The verbatim baseline persisted at step 5b keeps all the substance a lean `/codexreview` needs (paths, signatures, patterns, high-risk paths) while staying small in the orchestrator's context and on disk. **Baseline content contract (MANDATORY — since v4.56.0):** the architect prompt is grounding INPUT only — pass the card scope, `files_likely_touched`, and the question to map. NEVER put line-level fix directives ("remove lines 90-91", "Fix: use X"), the words "implement/fix/apply", or acceptance-criteria framed as a task into the architect prompt. The architect produces a read-only MAP (file/symbol locations, patterns, type signatures, integration points, high-risk paths); it does NOT implement and has no `Task`/Agent tool to delegate (see `codebase-architect.md` § Role boundary). The coder is a separate spawn the orchestrator owns.
|
|
13
|
+
3. **(skip when provisionally trivial — see 2c)** Invoke the **codebase-architect** agent (MUST per AGENTS.md) to understand the relevant codebase area, existing patterns, and architecture before any implementation. When `features.has_lsp_layer: true`, the architect uses LSP find-references for identifier-shaped lookups — this needs NO handoff from the orchestrator: the architect reads `features.has_lsp_layer` from `baldart.config.yml` directly (the flag is ambient) per `agents/code-search-protocol.md`. Likewise, when `features.has_code_graph: true`, the architect uses the Graphify code graph for structural/relational lookups (ambient flag) per `agents/code-graph-protocol.md`. The orchestrator does NOT propagate either flag. (Earlier doc versions numbered this step 4; the step that read project-status BEFORE the architect was removed because it persisted pre-analysis context — see step 3a.) **Pass `OUTPUT=terse` in the architect prompt (since v4.49.0)** — this is grounding for the coder/reviewer, not an explanation, so the architect returns its structured contract (reuse table + canonical evidence + `path:line — symbol` rows + `totals:`) without narrative prose. **Pass the analysis profile too (since v4.94.0)**: `PROFILE=ui` when the card has a non-empty `links.design` OR `links.design_src` (the same mockup bit that drives step 6a), else `PROFILE=feature` — contract and per-profile scoping in `agents/analysis-profiles.md` (its § 3 caller routing table is normative). The profile is deterministic from the card YAML; never leave the architect to infer it. The verbatim baseline persisted at step 5b keeps all the substance a lean `/codexreview` needs (paths, signatures, patterns, high-risk paths) while staying small in the orchestrator's context and on disk. **Baseline content contract (MANDATORY — since v4.56.0):** the architect prompt is grounding INPUT only — pass the card scope, `files_likely_touched`, and the question to map. NEVER put line-level fix directives ("remove lines 90-91", "Fix: use X"), the words "implement/fix/apply", or acceptance-criteria framed as a task into the architect prompt. The architect produces a read-only MAP (file/symbol locations, patterns, type signatures, integration points, high-risk paths); it does NOT implement and has no `Task`/Agent tool to delegate (see `codebase-architect.md` § Role boundary). The coder is a separate spawn the orchestrator owns.
|
|
14
14
|
3a. Update `${paths.references_dir}/project-status.md` Active Code Context (skip when the file does not exist in the project) — do this AFTER the codebase-architect run (step 3) so the "Active Code Context" reflects the architect's findings (which files are actually in scope), not just the card YAML's `files_likely_touched`. Writing it before the architect run would persist pre-analysis claims that downstream agents (e.g. a parallel card) would then read as truth.
|
|
15
15
|
4. **Plan-auditor grounding check** — but first, a **provenance skip (since v4.7.0 — mirror of Step 3d)**: the `/prd` Step 6.6 holistic audit already ran a per-card grounding pass when the card was authored. Re-grounding here is only worth a plan-auditor spawn if something changed since. **This skip is the NORMAL path for a card implemented right after `/prd`, not an occasional optimization** — `/prd` now guarantees the `metadata.holistic_audit` stamp lands on every audited card (deterministic backstop at `validation-phase.md` Step 7 item 5b, since the v4.88.2 provenance-reliability fix), so P1 below holds whenever the batch is freshly authored. Skip the plan-auditor when **BOTH** hold:
|
|
16
16
|
- **P1 — provenance present**: the card has `metadata.holistic_audit` with non-empty `audited_at`, `audited_commit`, `audited_set`.
|
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
Formato: [Keep a Changelog](https://keepachangelog.com/) · [SemVer](https://semver.org/).
|
|
4
4
|
|
|
5
|
+
## 1.3.0 — 2026-07-02
|
|
6
|
+
|
|
7
|
+
- **Analysis-profile contract (framework v4.94.0)**: the B7 per-card architect spawn in `new2.js` passes `PROFILE=${hasMockup ? 'ui' : 'feature'}` (deterministic from the pre-flight cardGraph bit) mirroring `/new` implement.md step 3; the SSOT is `framework/agents/analysis-profiles.md`. Tripwire rule added to `check-new-parity.mjs`.
|
|
8
|
+
|
|
5
9
|
## 1.2.1 — 2026-07-02
|
|
6
10
|
|
|
7
11
|
Review avversariale post-release (3 lenti indipendenti, finding verificati):
|
|
@@ -2,6 +2,21 @@
|
|
|
2
2
|
|
|
3
3
|
Formato: [Keep a Changelog](https://keepachangelog.com/) · [SemVer](https://semver.org/).
|
|
4
4
|
|
|
5
|
+
## 1.3.0 — 2026-07-02
|
|
6
|
+
|
|
7
|
+
- **Analysis-profile contract (framework v4.94.0)**: the discovery-loop targeted architect question now passes `PROFILE=discovery`, and the Step 2 ISA scan passes `PROFILE=impact` (structural tier primary) — per `framework/agents/analysis-profiles.md`. Prompt semantics otherwise unchanged.
|
|
8
|
+
|
|
9
|
+
## 1.3.0 — 2026-07-02
|
|
10
|
+
|
|
11
|
+
**Applier economico + pacchetto EARS+verify** — i due interventi strutturali dal forensics (48% del costo nelle fasi meccaniche; gate-prosa aggirabili):
|
|
12
|
+
|
|
13
|
+
- **`MODE: apply-findings` su `prd-card-writer`** (un agente + token, pattern analysis-profiles — mai un twin): l'apply dei finding di audit esce dall'orchestratore (che non edita più YAML). L'applier riceve tutto BY PATH, applica solo campi `[Target:]`, grounding obbligatorio (path/comandi verificati, mai inventati), marca `[MANUAL]` senza decidere, ESEGUE validator `--prd` + stamper, ritorna compact. `audit-phase.md` Step 6.9 = delega thin + drift guard `git diff --stat` + fallback inline visibile. Field-mapping/severity/audit-trail SPOSTATE nel corpo agente. Testato con spawn reale su fixture.
|
|
14
|
+
- **Grammatica EARS sugli AC child/standalone** (SSOT: `card-schema.md` § "Acceptance-criteria grammar"): 5 pattern (`THE SYSTEM SHALL` / `WHEN` / `WHILE` / `WHERE` / `IF…THEN`) + `SHALL CONTINUE TO`; keyword inglesi, corpo nella lingua del progetto; ban-list verbi vaghi. BLOCKER nel validator `--prd` — le card legacy non sono mai retro-bloccate (il baseline check di `/new` non applica EARS). AC-EPIC esenti.
|
|
15
|
+
- **`ac_verification`** (mappa opzionale `AC-N → oracolo eseguibile` o `manual:`): authoring groundato (comando scritto solo se verificato esistente — classe Field Grounding Rule), consumo in `/new` Phase 2.5 che ESEGUE gli oracoli non-manual (exit status = evidenza primaria; `qa-sentinel` deliberatamente NON è il consumer — AC verification fuori dal suo contratto). Enforcement WARN-first (hard-gate solo dopo telemetria). Cross-check drift con `validation_commands`.
|
|
16
|
+
- Validator: canale warnings separato (mai exit 1 da un WARN); fixtures EARS nel self-test CI (`check-card-baseline.js` Check D).
|
|
17
|
+
|
|
18
|
+
Codex parity: portable (token in prosa agente → transpile TOML; script zero-dep; prosa condivisa).
|
|
19
|
+
|
|
5
20
|
## 1.2.0 — 2026-07-02
|
|
6
21
|
|
|
7
22
|
**Gate-hygiene wave** — dai driver misurati sul forensics di una sessione /prd reale (61.6M token; 48% del costo in fasi meccaniche a piena finestra; una famiglia di card spedita con zero audit-trail; ~20 righe di progress bar × 30+ messaggi):
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: prd
|
|
3
3
|
effort: high
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.3.0
|
|
5
5
|
description: "Structured PRD creation skill. Use when the user says /prd, 'crea un prd', 'nuova funzionalita', 'pianifica feature', or wants to plan a new feature end-to-end. Also handles /prd-add, 'aggiungi requisito', 'serve anche', 'manca un endpoint' for change requests on active PRD sessions — runs ICIAS impact analysis to determine which phases need SKIP/PATCH/REDO. Produces PRD + UI design + backlog cards, all validated and committed. Multi-turn conversation: asks questions, waits for answers, iterates through discovery, design, spec writing, card creation, and validation phases."
|
|
6
6
|
---
|
|
7
7
|
|
|
@@ -85,8 +85,12 @@ existing_patterns:
|
|
|
85
85
|
anti_patterns:
|
|
86
86
|
- "DO NOT {{specific prohibited action — be concrete, not generic}}"
|
|
87
87
|
|
|
88
|
+
# EARS grammar (card-schema.md § "Acceptance-criteria grammar"): the clause matches one of
|
|
89
|
+
# THE SYSTEM SHALL … / WHEN … THE SYSTEM SHALL … / WHILE … / WHERE … / IF … THEN THE SYSTEM SHALL …
|
|
90
|
+
# Body in the project language, EARS keywords in English. No vague verbs (banned by the validator).
|
|
88
91
|
acceptance_criteria:
|
|
89
|
-
- "[ ] [AC-1] {{
|
|
92
|
+
- "[ ] [AC-1] WHEN {{trigger}} THE SYSTEM SHALL {{observable behavior}}"
|
|
93
|
+
- "[ ] [AC-2] IF {{error condition}} THEN THE SYSTEM SHALL {{recovery behavior}}"
|
|
90
94
|
|
|
91
95
|
# --- Validation Commands (OPTIONAL — include for cards with testable outputs) ---
|
|
92
96
|
# Executable commands the agent runs for self-verification after implementation.
|
|
@@ -98,6 +102,14 @@ validation_commands:
|
|
|
98
102
|
expect: "exit 0"
|
|
99
103
|
- cmd: "{{verification command, e.g. grep -c 'pattern' src/file.tsx}}"
|
|
100
104
|
expect: "{{expected: 'exit 0', '>= N', 'contains X', '== N'}}"
|
|
105
|
+
|
|
106
|
+
# --- Per-AC oracles (OPTIONAL map — card-schema.md § ac_verification) ---
|
|
107
|
+
# One entry per AC: an EXECUTABLE command verified to exist (npm script / toolchain command /
|
|
108
|
+
# existing test file) — never invented — or an explicit "manual: <what a human checks>".
|
|
109
|
+
# /new Phase 2.5 EXECUTES non-manual oracles; exit status is the primary AC evidence.
|
|
110
|
+
ac_verification:
|
|
111
|
+
AC-1: "{{command verified to exist, e.g. npm run test -- --grep '{{feature}}'}}"
|
|
112
|
+
AC-2: "manual: {{what a human checks}}"
|
|
101
113
|
note: "{{what this verifies — maps to AC-N}}"
|
|
102
114
|
|
|
103
115
|
definition_of_done:
|
|
@@ -165,7 +165,7 @@ INVEST criteria violations:
|
|
|
165
165
|
- Valuable: card does not deliver user-visible or system-critical value
|
|
166
166
|
- Estimable: scope unclear, cannot estimate effort
|
|
167
167
|
- Small: card too large for one dev session
|
|
168
|
-
- Testable: acceptance criteria not binary pass/fail
|
|
168
|
+
- Testable: acceptance criteria not binary pass/fail (the EARS grammar in card-schema.md § "Acceptance-criteria grammar" is the norm — a clause outside the 5 EARS patterns is a finding)
|
|
169
169
|
|
|
170
170
|
Requirements smell detection:
|
|
171
171
|
- Ambiguous pronouns without clear antecedent
|
|
@@ -199,7 +199,7 @@ Card structure:
|
|
|
199
199
|
files_likely_touched — flag any unowned consumer (the "hidden-still-shown-in-the-other-mode" class).
|
|
200
200
|
- areas field incomplete
|
|
201
201
|
- git_strategy set to TBD
|
|
202
|
-
- acceptance_criteria not binary testable
|
|
202
|
+
- acceptance_criteria not EARS-conformant (5 patterns, card-schema.md) or not binary testable
|
|
203
203
|
- definition_of_done missing items
|
|
204
204
|
- existing_patterns with stale line_range or missing anchor_text
|
|
205
205
|
- validation_commands missing for cards with testable outputs
|
|
@@ -337,48 +337,42 @@ Present the consolidated report to the user.
|
|
|
337
337
|
|
|
338
338
|
Use `SendMessage` with `type: "shutdown_request"` to shut down all teammates, then `TeamDelete`.
|
|
339
339
|
|
|
340
|
-
## Step 6.9 — Apply Findings to Cards
|
|
341
|
-
|
|
342
|
-
**Goal**:
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
- **
|
|
370
|
-
|
|
371
|
-
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
```yaml
|
|
378
|
-
## Applied by quality audit — YYYY-MM-DD
|
|
379
|
-
Applied N findings to structured fields (H high, M medium).
|
|
380
|
-
Manual review needed: [list [MANUAL] items, or "none"].
|
|
381
|
-
```
|
|
340
|
+
## Step 6.9 — Apply Findings to Cards (DELEGATED — the orchestrator does not edit YAML)
|
|
341
|
+
|
|
342
|
+
**Goal**: transform each card from "audited" to "implementation-ready". The mechanical apply
|
|
343
|
+
is DELEGATED to `prd-card-writer` in **MODE: apply-findings** — its § "MODE: apply-findings"
|
|
344
|
+
is the SSOT for the field mapping, severity policy, audit trail, self-validation and stamp
|
|
345
|
+
execution; do NOT restate or re-execute them here. (Measured driver: the inline apply ran
|
|
346
|
+
~48 Edits at full context window — the mechanical phases were 48% of a real run's cost.)
|
|
347
|
+
|
|
348
|
+
1. Capture the three run-level stamp values ONCE (snippet in § "Holistic-audit provenance
|
|
349
|
+
stamp" below) and read `$REPORT_FILE` **as a path only** from the session tracker
|
|
350
|
+
(pattern: `/tmp/check-audit-report-<CARD-ID-SLUG>-<SESSION-ID>.md`) — do not load it.
|
|
351
|
+
2. Spawn ONE `prd-card-writer` subagent — Claude: Task tool, `subagent_type: prd-card-writer`,
|
|
352
|
+
`model: sonnet` override, `mode: "bypassPermissions"`; Codex: spawn by name from
|
|
353
|
+
`.codex/agents/` (inherits the session model). THIN prompt, paths only:
|
|
354
|
+
|
|
355
|
+
```
|
|
356
|
+
MODE: apply-findings
|
|
357
|
+
REPORT_FILE: <path>
|
|
358
|
+
CARD_PATHS: <newline-separated card paths>
|
|
359
|
+
AUDITED_AT: <ts> AUDITED_COMMIT: <sha-or-empty> AUDITED_SET: <ID1,ID2,...>
|
|
360
|
+
VALIDATOR: .framework/framework/scripts/validate-card-baseline.js
|
|
361
|
+
STAMPER: .framework/framework/scripts/stamp-holistic-audit.js
|
|
362
|
+
```
|
|
363
|
+
(Resolve the two script paths for this install — same base as the validation-phase 0-i
|
|
364
|
+
gate.)
|
|
365
|
+
3. Consume the COMPACT return (`APPLY-FINDINGS DONE` block):
|
|
366
|
+
- any card `validator: FAIL` → HALT and surface the validator output verbatim;
|
|
367
|
+
- route each `[MANUAL]` item to `AskUserQuestion` (they legally survive to
|
|
368
|
+
validation-phase Step 7 item 1);
|
|
369
|
+
- **drift guard (zero-cost)**: run `git diff --stat -- "${paths.backlog_dir}"` — the
|
|
370
|
+
touched files MUST be ⊆ CARD_PATHS; anything else → HALT (the applier edited outside
|
|
371
|
+
its mandate). Never re-read the card bodies to "double-check" — the validator already
|
|
372
|
+
did.
|
|
373
|
+
4. **Fallback (delegate-or-else-inline, visible never silent)**: if the spawn is impossible
|
|
374
|
+
in this install, apply inline following the agent's § "MODE: apply-findings" and log
|
|
375
|
+
"apply-findings: INLINE FALLBACK (<reason>)" in the audit log.
|
|
382
376
|
|
|
383
377
|
### Holistic-audit provenance stamp (since v4.3.0) — consumed by `/new` Step 3d
|
|
384
378
|
|
|
@@ -420,13 +414,10 @@ Hand-edit the YAML only when the script is genuinely unreachable in this install
|
|
|
420
414
|
|
|
421
415
|
### Per-card workflow
|
|
422
416
|
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
4. Write the `metadata.holistic_audit` provenance block (see "Holistic-audit provenance stamp" above) — **by EXECUTING `stamp-holistic-audit.js` once for the whole card set** (after the last card's field edits), not by hand-editing YAML. **MANDATORY when the audit ran** (see the Fail-safe contract above) — this is what lets `/new`/`new2` skip the per-card plan-auditor when the card is implemented right after `/prd`; `validation-phase.md` Step 7 item 5b deterministically backstops it, but do not rely on the backstop.
|
|
428
|
-
5. Write updated card YAML.
|
|
429
|
-
6. Re-read to verify edits landed correctly.
|
|
417
|
+
The per-card loop (read findings → edit targeted fields → audit trail → validate → stamp)
|
|
418
|
+
is OWNED by `prd-card-writer` § "MODE: apply-findings" (Step 6.9). The stamper runs ONCE for
|
|
419
|
+
the whole card set inside the applier; `validation-phase.md` Step 7 item 5b remains the
|
|
420
|
+
deterministic backstop.
|
|
430
421
|
|
|
431
422
|
**Note**: No separate commit here — the validation-phase.md Step 7 handles committing all PRD artifacts together.
|
|
432
423
|
|
|
@@ -698,7 +698,9 @@ section of the state file. Mark dimension as covered.
|
|
|
698
698
|
If more specific detail is needed beyond what context-primer provided,
|
|
699
699
|
invoke `codebase-architect` agent (foreground) with a targeted question:
|
|
700
700
|
```
|
|
701
|
-
OUTPUT=terse — machine consumer (discovery dimension resolution),
|
|
701
|
+
PROFILE=discovery OUTPUT=terse — machine consumer (discovery dimension resolution),
|
|
702
|
+
not human Q&A. Resolve your analysis profile per `agents/analysis-profiles.md`
|
|
703
|
+
(Grep "### PROFILE: discovery", read only that section).
|
|
702
704
|
For feature `<slug>`: regarding the dimension `<dimension>`, does the codebase
|
|
703
705
|
already answer this? Specifically check: existing collections, routes, components,
|
|
704
706
|
permissions, and patterns. Report what you find with file references — structured
|
|
@@ -780,8 +782,10 @@ Instead, run the ISA scan and present findings for validation.
|
|
|
780
782
|
1. Invoke `codebase-architect` agent with this specific prompt:
|
|
781
783
|
|
|
782
784
|
```
|
|
783
|
-
OUTPUT=terse — machine consumer (ISA table builder), not human Q&A:
|
|
784
|
-
rows only, no narrative overview.
|
|
785
|
+
PROFILE=impact OUTPUT=terse — machine consumer (ISA table builder), not human Q&A:
|
|
786
|
+
per-touchpoint rows only, no narrative overview. Resolve your analysis profile per
|
|
787
|
+
`agents/analysis-profiles.md` (Grep "### PROFILE: impact", read only that section —
|
|
788
|
+
the structural tier is your primary source when its flag is on).
|
|
785
789
|
For feature `<slug>`: perform an Integration Surface Analysis (ISA).
|
|
786
790
|
Find ALL existing code that should reference, link to, or interact with this
|
|
787
791
|
new feature. Scan these categories systematically:
|
|
@@ -21,6 +21,7 @@ Mark task 5 as `in_progress`.
|
|
|
21
21
|
- **`review_profile` enum + epic `skip`** — `skip|light|balanced|deep`; missing/empty = blocker (the card-writer must compute it via `prd-card-writer.md § Rule C`); epics MUST be `skip`;
|
|
22
22
|
- **conditional `requirements` presence (PO1)** — a child/standalone card with non-empty `acceptance_criteria` + `scope` MUST carry `requirements` (a fresh `/prd` card without them shifts a measured ~3–4M-token back-fill into `/new`'s orchestrator — see `card-schema.md` § "Authoring completeness invariants");
|
|
23
23
|
- **unresolved `[NEEDS CLARIFICATION: …]` markers** — a card carrying a planning ambiguity is NOT implementable. Resolve each marker (with the user via `AskUserQuestion` when it needs a human answer, or from Discovery/PRD material when it does not), edit the card, re-run;
|
|
24
|
+
- **EARS grammar on child/standalone AC** (5 patterns + vague-verb ban-list — `card-schema.md` § "Acceptance-criteria grammar") = BLOCKER; `ac_verification` coverage = WARN-only;
|
|
24
25
|
- the universal field-state matrix + remaining enums (`card-schema.md`).
|
|
25
26
|
|
|
26
27
|
**Why executed and not recited:** the prose version of this gate has already failed silently on a real run (a whole card family shipped with zero audit trail). A recited check degrades under context pressure; an executed one cannot.
|
|
@@ -77,7 +78,7 @@ Mark task 5 as `in_progress`.
|
|
|
77
78
|
Then execute the audit protocol described within, using the card IDs from Step 5.
|
|
78
79
|
The protocol auto-detects which agents to include (security and performance
|
|
79
80
|
are signal-triggered, no manual profile selection needed).
|
|
80
|
-
**I/O contract:** `audit-phase.md` may edit card YAML files (
|
|
81
|
+
**I/O contract:** `audit-phase.md` may edit card YAML files (its Step 6.9 apply runs via the `prd-card-writer` MODE: apply-findings subagent). The list of all card paths modified by the audit (including those edited in Step 6.9) is the complete set that Step 7 item 6 must stage. The glob `FEAT-XXXX-*.yml (all cards from Step 5)` in item 6 covers this; note it explicitly so that context compaction does not cause a model to stage only the pre-audit originals.
|
|
81
82
|
3. Wait for audit report and card edits.
|
|
82
83
|
|
|
83
84
|
**Gate:** all HIGH/MEDIUM findings resolved, no open `[MANUAL]` items that require external human input beyond this orchestrator. (Items that the orchestrator can resolve autonomously are resolved before this gate; items that need a human decision were already routed to `AskUserQuestion` inside `audit-phase.md`. Items that survive to Step 7 item 1 are those that received a human answer but required card re-edits — these are explicitly handled there.)
|
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
Formato: [Keep a Changelog](https://keepachangelog.com/) · [SemVer](https://semver.org/).
|
|
4
4
|
|
|
5
|
+
## 1.1.0 — 2026-07-02
|
|
6
|
+
|
|
7
|
+
- **Analysis-profile contract (framework v4.94.0)**: PATCH-mode re-discovery passes `PROFILE=impact` to `codebase-architect` (blast-radius scoping per `framework/agents/analysis-profiles.md`).
|
|
8
|
+
|
|
5
9
|
## 1.0.0 — 2026-07-01
|
|
6
10
|
|
|
7
11
|
- Baseline: versioning per-skill introdotto al framework v4.82.0.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: prd-add
|
|
3
3
|
effort: medium
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.1.0
|
|
5
5
|
description: "Change Request skill for active PRD sessions. Use when the user says /prd-add, 'aggiungi requisito', 'serve anche', 'manca un endpoint', or describes a new requirement that impacts an existing PRD. Also auto-triggered by /prd during discovery when the user's answer reveals a new sub-feature not covered by the original scope. Runs ICIAS impact analysis (semantic scan + structural propagation + scoring) to determine which PRD phases need SKIP/PATCH/REDO, then executes only affected phases."
|
|
6
6
|
---
|
|
7
7
|
|
|
@@ -241,7 +241,8 @@ Execute ONLY phases with PATCH or REDO verdict, in original phase order.
|
|
|
241
241
|
|
|
242
242
|
### For Discovery dimensions (PATCH/REDO)
|
|
243
243
|
|
|
244
|
-
- **PATCH**: Run `codebase-architect` on affected dimensions only
|
|
244
|
+
- **PATCH**: Run `codebase-architect` on affected dimensions only — pass
|
|
245
|
+
`PROFILE=impact` (blast-radius scoping per `agents/analysis-profiles.md`).
|
|
245
246
|
Update state file checklist entries. No user questions unless ambiguous.
|
|
246
247
|
- **REDO**: Full re-discovery for that dimension (same as /prd Step 2 loop
|
|
247
248
|
but scoped to affected dimensions only). May require user questions.
|
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
Formato: [Keep a Changelog](https://keepachangelog.com/) · [SemVer](https://semver.org/).
|
|
4
4
|
|
|
5
|
+
## 1.1.0 — 2026-07-02
|
|
6
|
+
|
|
7
|
+
- **Analysis-profile contract (framework v4.94.0)**: Step B adjacent-UI analysis passes `PROFILE=ui OUTPUT=terse` to `codebase-architect` (registry-cascade-first per `framework/agents/analysis-profiles.md`).
|
|
8
|
+
|
|
5
9
|
## 1.0.0 — 2026-07-01
|
|
6
10
|
|
|
7
11
|
- Baseline: versioning per-skill introdotto al framework v4.82.0.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ui-design
|
|
3
3
|
effort: medium
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.1.0
|
|
5
5
|
description: "UI design workflow. Generates context-aware mockups with GAN-inspired generator/evaluator separation, visual verification via Playwright, and structured sprint contracts. Use when: (1) designing new pages or components, (2) the /prd skill reaches its UI design phase (Step 3), (3) redesigning existing pages, (4) creating design options for user review, (5) any task involving 'design UI', 'mockup', 'opzioni di design', 'progetta interfaccia', '3 opzioni', 'design page', 'UI design'. Not for: bug fixes, small tweaks, copy-only changes, or implementing an already-chosen design."
|
|
6
6
|
---
|
|
7
7
|
|
|
@@ -120,7 +120,7 @@ Read [references/generation.md](references/generation.md) § Context Capture.
|
|
|
120
120
|
render harness over full-page Playwright — `baldart render build && /ds-render`
|
|
121
121
|
gives per-primitive PNGs of the REAL registry components (Storybook-backed). Use
|
|
122
122
|
full-page Playwright for page-level context. No Storybook → fall back to Playwright.
|
|
123
|
-
3. Invoke `codebase-architect` to analyze adjacent UI components, layout patterns, and design tokens. Report file paths and
|
|
123
|
+
3. Invoke `codebase-architect` with `PROFILE=ui OUTPUT=terse` (profile contract: `agents/analysis-profiles.md` — registry-cascade-first, component reuse table, token findings) to analyze adjacent UI components, layout patterns, and design tokens. Report file paths and structure.
|
|
124
124
|
|
|
125
125
|
### Step C — Generate 3 Options (GENERATOR)
|
|
126
126
|
|
|
@@ -274,7 +274,7 @@ if (baselinePaths.length) {
|
|
|
274
274
|
log(`Baseline: reusing ${baselinePaths.length} per-card baseline file(s).`)
|
|
275
275
|
} else {
|
|
276
276
|
const arch = await agent(
|
|
277
|
-
`You are grounding a post-implementation code review. Map the EXISTING architecture, critical patterns, and high-risk code paths relevant to this wave's changed files, so downstream reviewers can spot regressions.\n\n${waveBrief}\n\nReturn a concise baseline (key modules, their contracts, the regression-prone seams touched by this diff). Do not review the changes yet.`,
|
|
277
|
+
`PROFILE=baseline — resolve your analysis profile per agents/analysis-profiles.md (Grep "### PROFILE: baseline", Read only that section; v4.94.0). You are grounding a post-implementation code review. Map the EXISTING architecture, critical patterns, and high-risk code paths relevant to this wave's changed files, so downstream reviewers can spot regressions.\n\n${waveBrief}\n\nReturn a concise baseline (key modules, their contracts, the regression-prone seams touched by this diff). Do not review the changes yet.`,
|
|
278
278
|
{ label: 'arch-baseline', phase: 'Baseline', agentType: 'codebase-architect',
|
|
279
279
|
schema: { type: 'object', required: ['baseline'], additionalProperties: false, properties: { baseline: { type: 'string' } } } }
|
|
280
280
|
)
|
|
@@ -265,7 +265,7 @@ if (baselinePaths.length) {
|
|
|
265
265
|
log(`Baseline: reusing ${baselinePaths.length} per-card baseline file(s).`)
|
|
266
266
|
} else {
|
|
267
267
|
const arch = await agent(
|
|
268
|
-
`You are grounding a post-implementation code review. Map the EXISTING architecture, critical patterns, and high-risk code paths relevant to this batch's changed files, so downstream reviewers can spot regressions.\n\n${scopeBrief}\n\nReturn a concise baseline (the key modules, their contracts, and the regression-prone seams touched by this diff). Do not review the changes yet.`,
|
|
268
|
+
`PROFILE=baseline — resolve your analysis profile per agents/analysis-profiles.md (Grep "### PROFILE: baseline", Read only that section; v4.94.0). You are grounding a post-implementation code review. Map the EXISTING architecture, critical patterns, and high-risk code paths relevant to this batch's changed files, so downstream reviewers can spot regressions.\n\n${scopeBrief}\n\nReturn a concise baseline (the key modules, their contracts, and the regression-prone seams touched by this diff). Do not review the changes yet.`,
|
|
269
269
|
{ label: 'arch-baseline', phase: 'Baseline', agentType: 'codebase-architect',
|
|
270
270
|
schema: { type: 'object', required: ['baseline'], additionalProperties: false, properties: { baseline: { type: 'string' } } } }
|
|
271
271
|
)
|