baldart 4.98.1 → 4.98.2

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 CHANGED
@@ -5,6 +5,15 @@ 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
+ ## [4.98.2] - 2026-07-02
9
+
10
+ **Negative guard: the codebase-understanding step is `codebase-architect`, not the generic built-in search agent.** A third live session — a data-wiring task (replace a hardcoded `"unità"` label with the real unit-of-measure in an order-wizard `ProductRow`) — delegated the code-path trace to the built-in `Explore` agent instead of `codebase-architect`, bypassing the profile engine, Reuse Analysis, Canonical Evidence, and the Return Contract. Diagnosed carefully (and deliberately *not* over-fitted): this was **not** a `PROFILE=ui` miss — the task's substance is data/logic wiring (product → UoM → loader → label), whose fitting profile is `feature`, not `ui`; the profile axis was left untouched. The real deviation was on the **agent-selection** axis, and it matches the recurring v4.97.1 shape: a positive mandate ("invoke `codebase-architect`") with no explicit "and NOT the generic explorer" guard (the existing `AGENTS.md` "never auto-route to a generic agent" rule is scoped to the *failure-fallback* case, not the initial choice).
11
+
12
+ - `AGENTS.md` primitive `1.7.1 → 1.7.2` (§ Non-negotiables): the understanding step goes through `codebase-architect` with the matching profile — **not the generic built-in search / `general-purpose` agent** (runtime-generic phrasing for cross-tool parity).
13
+ - `CLAUDE.md` primitive `1.4.1 → 1.4.2` (§ Subagents): names the Claude-native built-in explicitly — use `subagent_type: codebase-architect` + `PROFILE`, **not `Explore` / `general-purpose`**; `Explore` stays fine for a throwaway file-location grep, never for grounding.
14
+
15
+ **PATCH** — one-clause guard, no new surface, no config key, no install-layout change. The `ui`-vs-`feature` profile refinement (a UI-*framed* but data-*substance* task should route `feature`/`impact`, not `ui`) was **considered and deferred** to avoid churn on the just-stabilized v4.98.0/1 rule. **Codex parity: portable** — AGENTS.md carries the runtime-generic guard, CLAUDE.md names the built-in. **Not a `baldart.config.yml` key** → the schema-change propagation rule does NOT apply.
16
+
8
17
  ## [4.98.1] - 2026-07-02
9
18
 
10
19
  **UI *verification* also routes `PROFILE=ui`, not just UI *change* — closing the one gap v4.98.0 missed.** A live post-update session confirmed v4.98.0 works where it matters: on the actual change ("migriamo") Claude correctly spawned `codebase-architect (PROFILE=ui)`. The only borderline case was the *preceding* verification ("mi verifichi che /products/new su desktop e tablet sia già sul nuovo page layout") — answered with an inline Grep. Root cause was in the v4.98.0 wording itself: the UI grounding mandate was scoped entirely to the verb "change/build", so a literal reader treated a read-only UI verification as outside it. Fixed by broadening "any UI **change**" to "any UI **work** — a change OR a verification/question whose correct answer needs design-system-spec or responsive/state grounding" across the same three surfaces:
package/VERSION CHANGED
@@ -1 +1 @@
1
- 4.98.1
1
+ 4.98.2
@@ -4,6 +4,21 @@ Formato: [Keep a Changelog](https://keepachangelog.com/) · [SemVer](https://sem
4
4
  Questo è il changelog INTERNO dello skeleton spedito (`primitive_version`), separato dal
5
5
  file `AGENTS.md` generato nel consumer e indipendente dal `VERSION` del framework.
6
6
 
7
+ ## 1.7.2 — 2026-07-02
8
+
9
+ - **Negative guard: the understanding step is `codebase-architect`, NOT a generic search
10
+ agent.** A live session on a data-wiring task (replace a hardcoded `"unità"` with the real
11
+ unit-of-measure in an order-wizard row) delegated the code-path trace to the generic
12
+ built-in `Explore` agent instead of `codebase-architect` — bypassing the profile engine,
13
+ Reuse Analysis, Canonical Evidence, and the Return Contract. Root cause is the recurring
14
+ v4.97.1 shape: a positive mandate ("invoke `codebase-architect`") with no explicit "and NOT
15
+ the generic explorer" guard (the existing "never auto-route to a generic agent" rule is
16
+ scoped to the *fallback* case, not the initial choice). The § Non-negotiables MUST now
17
+ states the understanding step goes through `codebase-architect` with the matching profile —
18
+ **not the generic built-in search / `general-purpose` agent**. Portable (Claude + Codex);
19
+ the profile axis was deliberately left untouched (this task's fitting profile is `feature`,
20
+ a data-wiring trace — not `ui`).
21
+
7
22
  ## 1.7.1 — 2026-07-02
8
23
 
9
24
  - **UI *verification* also routes `PROFILE=ui`, not just UI *change*** (follow-up to 1.7.0).
@@ -1,4 +1,4 @@
1
- <!-- baldart-primitive: name=AGENTS primitive_version=1.7.1
1
+ <!-- baldart-primitive: name=AGENTS primitive_version=1.7.2
2
2
  This is the SHIPPED SKELETON. The writer (src/utils/root-primitives.js) strips
3
3
  this banner, resolves every {{ slot }} / {{> partial }} / {{#flag}} from
4
4
  baldart.config.yml (+ package.json/README), merges .baldart/overlays/AGENTS.md,
@@ -39,7 +39,10 @@ mechanics — this file remains the single source of truth for the protocol.
39
39
  **Trivial** one-liner (a typo, an obvious self-contained fix) or a **bare symbol-presence
40
40
  check** (does file X import Y — a pure Grep, no correctness/responsive judgment) skips it;
41
41
  starting with an inline Grep is NOT a substitute when the task needs cross-file or
42
- design-system grounding.
42
+ design-system grounding. The understanding step goes through `codebase-architect` (with the
43
+ matching profile) — **NOT the generic built-in search / `general-purpose` agent**, which
44
+ lacks the profile engine, Reuse Analysis, Canonical Evidence, and the Return Contract; that
45
+ is the agent to invoke, not a generic explorer.
43
46
  Only if NEITHER invocation mechanism exists, degrade explicitly to inline retrieval
44
47
  (code-graph → LSP → Grep) and SAY SO.
45
48
  - MUST have any **Heavy** plan (see § Change Tiers) reviewed BEFORE presenting it for
@@ -4,6 +4,15 @@ Formato: [Keep a Changelog](https://keepachangelog.com/) · [SemVer](https://sem
4
4
  Changelog INTERNO dello stub spedito (`primitive_version`), separato dal `CLAUDE.md`
5
5
  generato nel consumer e indipendente dal `VERSION` del framework.
6
6
 
7
+ ## 1.4.2 — 2026-07-02
8
+
9
+ - **Name the built-in `Explore` guard for the understanding step**: § Subagents now says the
10
+ codebase-understanding step uses `subagent_type: codebase-architect` + the matching `PROFILE`,
11
+ **not the built-in `Explore` / `general-purpose` search agent** (those return raw excerpts;
12
+ only `codebase-architect` runs the profile engine / Reuse Analysis / Canonical Evidence /
13
+ Return Contract). `Explore` stays fine for a throwaway file-location grep. Mirrors AGENTS
14
+ primitive 1.7.2 (which phrases the guard runtime-generically for cross-tool parity).
15
+
7
16
  ## 1.4.1 — 2026-07-02
8
17
 
9
18
  - **UI verification also grounds via `PROFILE=ui`** (follow-up to 1.4.0): the Plan Mode
@@ -1,4 +1,4 @@
1
- <!-- baldart-primitive: name=CLAUDE primitive_version=1.4.1
1
+ <!-- baldart-primitive: name=CLAUDE primitive_version=1.4.2
2
2
  SHIPPED SKELETON. The writer strips this banner, resolves {{ slot }}/{{#flag}} from
3
3
  baldart.config.yml, merges .baldart/overlays/CLAUDE.md, stamps a baldart-generated
4
4
  marker, and writes the result to the repo root.
@@ -45,6 +45,11 @@ skips it. For a Heavy task:
45
45
 
46
46
  - Spawn subagents via the Task tool (`subagent_type: <name>`); the roster + routing is
47
47
  `.claude/agents/REGISTRY.md`.
48
+ - For the **codebase-understanding step** (`AGENTS.md` § Non-negotiables) use
49
+ `subagent_type: codebase-architect` with the matching `PROFILE` — **not the built-in
50
+ `Explore` / `general-purpose` search agent**. Those return raw excerpts; only
51
+ `codebase-architect` runs the profile engine, Reuse Analysis, Canonical Evidence, and the
52
+ Return Contract. `Explore` is fine for a throwaway file-location grep, never for grounding.
48
53
  {{#output_style}}
49
54
  - Output style: `{{ output_style }}` is active (select via `/config` → Output Style).
50
55
  {{/output_style}}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "baldart",
3
- "version": "4.98.1",
3
+ "version": "4.98.2",
4
4
  "description": "Claude Agent Framework - Reusable framework for coordinating AI agents and humans in software projects",
5
5
  "bin": {
6
6
  "baldart": "./bin/baldart.js"