baldart 5.3.0 → 5.3.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,46 @@ 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.3.2] - 2026-07-03
9
+
10
+ **AGENTS.md primitive 1.7.4 — commit-format MUST scoped to card-bound work.**
11
+ The commit rule was unconditional ("MUST use commit format `[FEAT-XXXX]
12
+ description`"), so a Codex session doing card-less chore work on a consumer
13
+ (mayo) fabricated the missing datum: it grabbed the last card ID committed in
14
+ `git log` (assuming correlation) and typed the commit `feat`. Same failure
15
+ family as 5.3.1/1.7.3 — an unscoped constraint pushes the model to invent data
16
+ to satisfy it — and it contradicted § Change Tiers ("Light work → no backlog
17
+ card").
18
+
19
+ - **Primitive `AGENTS.md` 1.7.4**: the card reference is scoped to commits that
20
+ implement THAT card (picked, `IN_PROGRESS`, branch carries its ID); card-less
21
+ work uses plain `<type>: description`; copying a card ID from `git log` / the
22
+ previous commit "for consistency" is explicitly forbidden; the type must
23
+ describe THIS change's nature (`chore:` for a chore — never `feat` unless the
24
+ commit adds a feature), never inherited from neighboring commits.
25
+ - Codex parity: portable (the primitive is the cross-tool SSOT).
26
+
27
+ ## [5.3.1] - 2026-07-03
28
+
29
+ **AGENTS.md primitive 1.7.3 — anti-fabricated-policy guard on the grounding spawn.**
30
+ A live Codex session on an up-to-date consumer (mayo) reconstructed the
31
+ `codebase-architect PROFILE=ui` mandate correctly and then self-exempted by
32
+ inventing a runtime constraint ("subagent tool disponibile ma policy runtime lo
33
+ vieta senza delega esplicita") that exists nowhere — the only real Codex limit
34
+ is `agents.max_depth: 1`, which forbids *nested* spawns from inside a subagent,
35
+ never the top-level session. Recurrence of the 1.7.0/v4.98.0 misreading class:
36
+ the AGENTS.md delegation rules inverted into "spawn only on explicit user
37
+ delegation".
38
+
39
+ - **Primitive `AGENTS.md` 1.7.3**: the grounding MUST now states in place that
40
+ **the mandate IS the delegation** — claiming a runtime policy requires prior
41
+ user delegation is named as non-compliant, and the degrade precondition is
42
+ tightened to "Task tool absent AND no
43
+ `.codex/agents/codebase-architect.toml`". Declaring the tool available and
44
+ degrading anyway is a protocol violation, not a fallback.
45
+ - Codex parity: portable (the primitive is the cross-tool SSOT; the guard's
46
+ Codex branch cites the real `max_depth` semantics from `CODEX-AGENTS.md`).
47
+
8
48
  ## [5.3.0] - 2026-07-03
9
49
 
10
50
  **Haiku banned fleet-wide + FEAT-0067 post-mortem fixes.** The FEAT-0067 audit
package/VERSION CHANGED
@@ -1 +1 @@
1
- 5.3.0
1
+ 5.3.2
@@ -4,6 +4,37 @@ 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.4 — 2026-07-03
8
+
9
+ - **Commit-format MUST scoped to card-bound work — no borrowed card IDs, no inherited
10
+ types.** The rule was unconditional ("MUST use commit format `[FEAT-XXXX] description`"),
11
+ so a Codex session doing card-less chore work fabricated the missing datum: it grabbed the
12
+ last card ID from `git log` (assuming correlation) and typed the commit `feat`. Same
13
+ failure family as 1.7.3 (an unscoped constraint → the model invents data to satisfy it),
14
+ and it contradicted § Change Tiers, which already says Light work carries "no backlog
15
+ card". The MUST now scopes the card reference to commits that implement THAT card (picked,
16
+ `IN_PROGRESS`, branch carries its ID), mandates plain `<type>: description` for card-less
17
+ work, explicitly forbids copying a card ID from `git log` / the previous commit "for
18
+ consistency", and requires the type to describe THIS change's nature (`chore:` for a
19
+ chore — never `feat` unless the commit adds a feature), never inherited from neighboring
20
+ commits. Portable (Claude + Codex).
21
+
22
+ ## 1.7.3 — 2026-07-03
23
+
24
+ - **Anti-fabricated-policy guard: no runtime policy gates the `codebase-architect` spawn.**
25
+ A live Codex session (mayo, UP-TO-DATE install with 1.7.2) correctly reconstructed the
26
+ mandate ("Grounding obbligatorio via codebase-architect PROFILE=ui") and then self-exempted
27
+ by inventing a constraint — "subagent tool disponibile ma policy runtime lo vieta senza
28
+ delega esplicita" — a policy that exists nowhere (framework or Codex runtime; the only real
29
+ Codex limit is `agents.max_depth: 1`, which forbids *nested* spawns from inside a subagent,
30
+ never the top-level session). Same misreading class as 1.7.0's Claude/Codex asymmetry: the
31
+ AGENTS.md *delegation* rules ("MUST delegate Heavy implementation…") inverted into "I may
32
+ only spawn when the user explicitly delegates". The MUST now states in place that **the
33
+ mandate IS the delegation**, names the fabricated-policy claim as non-compliant, and
34
+ tightens the degrade precondition to "Task tool absent AND no
35
+ `.codex/agents/codebase-architect.toml`" — declaring the tool available and degrading anyway
36
+ is a protocol violation, not a fallback. Portable (Claude + Codex).
37
+
7
38
  ## 1.7.2 — 2026-07-02
8
39
 
9
40
  - **Negative guard: the understanding step is `codebase-architect`, NOT a generic search
@@ -1,4 +1,4 @@
1
- <!-- baldart-primitive: name=AGENTS primitive_version=1.7.2
1
+ <!-- baldart-primitive: name=AGENTS primitive_version=1.7.4
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,
@@ -43,7 +43,15 @@ mechanics — this file remains the single source of truth for the protocol.
43
43
  matching profile) — **NOT the generic built-in search / `general-purpose` agent**, which
44
44
  lacks the profile engine, Reuse Analysis, Canonical Evidence, and the Return Contract; that
45
45
  is the agent to invoke, not a generic explorer.
46
- Only if NEITHER invocation mechanism exists, degrade explicitly to inline retrieval
46
+ **No runtime policy gates this spawn this mandate IS the delegation.** Never claim the
47
+ spawn requires "explicit user delegation" or that a "runtime policy forbids it": no such
48
+ rule exists on Claude Code or Codex (Codex's `agents.max_depth: 1` only forbids a
49
+ *subagent* spawning further agents — it never applies to the top-level session, which is
50
+ where this rule fires). If the invocation mechanism is reachable, invoking it is the only
51
+ compliant move; declaring the tool available and then degrading anyway is a protocol
52
+ violation, not a fallback.
53
+ Only if NEITHER invocation mechanism exists (Task tool absent AND no
54
+ `.codex/agents/codebase-architect.toml`), degrade explicitly to inline retrieval
47
55
  (code-graph → LSP → Grep) and SAY SO.
48
56
  - MUST have any **Heavy** plan (see § Change Tiers) reviewed BEFORE presenting it for
49
57
  approval — run `plan-auditor` + `doc-reviewer` (in parallel), incorporate their feedback,
@@ -67,7 +75,14 @@ mechanics — this file remains the single source of truth for the protocol.
67
75
  data-model update, new external dependency without docs, API-contract change without an
68
76
  API-reference update.
69
77
  - MUST keep docs and code in sync — a code change without the matching doc update is invalid.
70
- - MUST use commit format `{{ git.commit_format }}`; small, traceable commits.
78
+ - MUST use commit format `{{ git.commit_format }}` for **card-bound work only** — a commit
79
+ references a card ONLY when it implements THAT card (the card is in scope: picked,
80
+ `IN_PROGRESS`, branch carries its ID). Work with no card in scope (chore / fix / docs /
81
+ maintenance outside the backlog) gets **NO card reference** — NEVER copy a card ID from
82
+ `git log` or the previous commit "for consistency"; use plain `<type>: description`
83
+ instead. The type/verb MUST describe THIS change's nature (a chore is `chore:`, a fix is
84
+ `fix:` — never `feat` unless the commit adds a feature), never inherited from neighboring
85
+ commits. Small, traceable commits.
71
86
  - MUST NOT commit with failing lint/type checks. Full build only before opening a PR.
72
87
  - MUST pre-sync (`git fetch`, clean status, confirm branch, `--ff-only`) and NEVER push
73
88
  directly to `{{ git.protected_branch }}` — the protected branch reaches its state only
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "baldart",
3
- "version": "5.3.0",
3
+ "version": "5.3.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"