baldart 4.34.0 → 4.34.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,23 @@ 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.34.2] - 2026-06-13
9
+
10
+ **`/new` workflow-delegation gates hardened to BINARY/imperative — close the "ran inline by judgment" escape hatch.** A real `/new` run (mayo, single-card CHORE-0007, BALDART 4.34.1 with both workflows linked + the `Workflow` tool available) ran **both** review-delegation gates inline instead of delegating: the orchestrator invented escape criteria absent from the gate ("single-card → marginal context-economy benefit", "memory note on workflow degeneration") and mis-cited the `feedback_dynamic_workflows_fit` guidance, which actually names the Final Review fan-out as the canonical workflow fit. The degeneration reports it conflated concern the `new2`/`new2-resolve` whole-batch host — a different workflow. Net effect: the run validated only the inline fallback and gave **zero** signal on the `new-card-review` (v4.34.0) path. Both gates were already worded as `IF tool+script → delegate / ELSE inline`, but the prose left enough softness for the model to insert discretion. **PATCH** (gate-prose hardening; no behavior change to the install layout or the workflows themselves — the delegated path was always the intended one).
11
+
12
+ ### Changed
13
+
14
+ - **`framework/.claude/skills/new/references/review-cycle.md`** — Phase 2.5x branch reframed as a "MECHANICAL, BINARY decision" with an explicit **no-discretion** rule: the soft factors (N=1, small diff, marginal benefit, "a workflow once degenerated", "inline is safer") are named and declared **NOT inputs to the gate**; the `new2` degeneration conflation is corrected inline; running inline while the conditions held is now defined as a **gate violation** with a mandated telemetry log line.
15
+ - **`framework/.claude/skills/new/references/final-review.md`** — Step F.1.5 branch given the same imperative treatment (MUST-delegate, no-discretion rule, `new2`-conflation correction, gate-violation log line).
16
+
17
+ ## [4.34.1] - 2026-06-12
18
+
19
+ **`reference-integrity` CI gate: recognize the plumbing carve-out.** v4.33.2 introduced a legitimate `subagent_type: general-purpose` dispatch for the mechanical file-revert agent (the REGISTRY.md plumbing carve-out — mechanical git/file ops, never code authoring), but the CI `reference-integrity` gate's R11 anti-fallback rule banned `general-purpose` **unconditionally**, so `main` went red on the v4.33.2 / v4.34.0 tags (the npm publish workflow is independent and succeeded — both versions are live). The gate now allows `subagent_type: general-purpose` **only** on a dispatch line explicitly marked `plumbing carve-out`; every other `general-purpose` dispatch stays banned (R11 intact, intentionally narrow so it can't be abused as a generic fallback). **PATCH** (CI gate fix; no behavior change to `/new`).
20
+
21
+ ### Changed
22
+
23
+ - **`scripts/check-reference-integrity.js`** — Check A allows `subagent_type: general-purpose` when the dispatch line carries the literal `plumbing carve-out` marker; otherwise the R11 ban stands (with an error message pointing to the marker + REGISTRY.md).
24
+
8
25
  ## [4.34.0] - 2026-06-12
9
26
 
10
27
  **`/new` per-card review cluster extracted into the `new-card-review` dynamic workflow — kills the dominant context-cost driver on long epics.** On a long epic (10-12 cards) `/new` accumulated context monotonically: every card ran the full review fan-out (Simplify ×3 + Codex/code-review + qa + the verify/FP pass) *inside the orchestrator*, and each step re-paid the whole growing prefix (cumulative `cache_read`). The driver is **turn-count × prefix**, not subagent output volume. Following the validated `new-final-review` pattern (read-only fan-out hosted in a workflow whose context is discarded), the review cluster now runs OUTSIDE the orchestrator and returns only a compact result.
package/VERSION CHANGED
@@ -1 +1 @@
1
- 4.34.0
1
+ 4.34.2
@@ -54,11 +54,22 @@ diff and emits findings, it touches no git state and asks the user nothing. That
54
54
  makes it a clean fit for a **dynamic workflow**, which runs the fan-out as a
55
55
  deterministic script outside this orchestrator's context window.
56
56
 
57
- **Branch (decide once, here):**
57
+ **Branch (decide once, here).** This is a **MECHANICAL, BINARY decision** — check the two
58
+ conditions and act on the result. You have **NO discretion**: if both hold you **MUST** delegate.
59
+ A single-card (N=1) batch, a small diff, "the context-economy benefit is marginal here", "a workflow
60
+ once degenerated on this project", or "inline is safer / I want full control" are **NOT inputs to this
61
+ gate** and **MUST NOT** override it. (Any workflow-degeneration reports concern the `new2`/`new2-resolve`
62
+ whole-batch host — a *different* workflow; the canonical guidance is that this read-only F.2–F.4 fan-out
63
+ is **exactly** where a workflow fits.) Delegating IS the SSOT-sanctioned path — the workflow mirrors this
64
+ prose; the inline branch below exists **only** for installs where the `Workflow` tool is genuinely
65
+ absent, never as a judgment-call alternative. If you run inline while the delegation conditions were met,
66
+ that is a **gate violation**: log it as
67
+ `f.final: GATE VIOLATION — ran inline despite Workflow available + new-final-review.js linked`.
58
68
 
59
69
  - **IF** the `Workflow` tool is available to you **AND** the script
60
70
  `.claude/workflows/new-final-review.js` is present (linked by the framework on
61
- Claude-enabled installs) → **delegate F.2–F.4** to it:
71
+ Claude-enabled installs) → you **MUST delegate F.2–F.4** to it (not optional — see the
72
+ no-discretion rule above):
62
73
 
63
74
  ```
64
75
  Workflow({ name: 'new-final-review', args: {
@@ -12,13 +12,26 @@ state outside the worktree and asks the user nothing on the happy path. That mak
12
12
  biggest source of prefix growth on long epics). E2E (Phase 2.6, human-gated + nests a skill) and the
13
13
  doc-review (Phase 3, write-mode, must see the FINAL code) stay in the skill.
14
14
 
15
- **Branch (decide once, here — at the top of the review cluster, AFTER Phase 2.5b AC-Closure):**
15
+ **Branch (decide once, here — at the top of the review cluster, AFTER Phase 2.5b AC-Closure).**
16
+ This is a **MECHANICAL, BINARY decision** — evaluate the three conditions below and act on the result.
17
+ You have **NO discretion**: if the delegation conditions hold you **MUST** delegate. The factors that
18
+ feel like reasons to "just run it inline" — a single-card batch, a small/well-scoped diff, "the
19
+ context-economy benefit is marginal here", "a workflow once degenerated on this project", "inline is
20
+ safer / I have full control" — are **NOT inputs to this gate** and **MUST NOT** override it. (Those
21
+ degeneration reports concern the `new2`/`new2-resolve` whole-batch host, a *different* workflow; the
22
+ canonical guidance is that this read-then-fix fan-out is exactly where a workflow fits.) Delegating IS
23
+ the SSOT-sanctioned path: the workflow mirrors this prose, and the inline fallback exists **only** for
24
+ installs where the `Workflow` tool is genuinely absent — not as a judgment-call alternative. If you ever
25
+ run inline while the delegation conditions were met, that is a **gate violation**: log it explicitly as
26
+ `review-cluster: GATE VIOLATION — ran inline despite Workflow available + new-card-review.js linked + non-trivial`
27
+ so it surfaces in telemetry.
16
28
 
17
29
  - **IF `IS_TRIVIAL`** (§ "Trivial-card fast-lane", re-confirmed on the committed diff) → do NOT delegate.
18
30
  Follow the trivial fast-lane in Phase 2.55 below (inline mechanical gates → Phase 3 doc → commit).
19
31
 
20
32
  - **ELSE IF** the `Workflow` tool is available **AND** `.claude/workflows/new-card-review.js` is present
21
- (linked by the framework on Claude-enabled installs) → **delegate the cluster** to it. First build the
33
+ (linked by the framework on Claude-enabled installs) → you **MUST delegate the cluster** to it (this
34
+ branch is not optional — see the no-discretion rule above). First build the
22
35
  inputs (reusing the existing deterministic logic — do NOT re-implement it):
23
36
  - `qaTier` ← the **Phase 3.5 profile selection** (step 19-21b below: `review_profile` floor →
24
37
  `skip`/`light` ⇒ `qaTier:"light"` (qa-sentinel deferred to Final), `deep` **or any Phase 3.7 Step-A
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "baldart",
3
- "version": "4.34.0",
3
+ "version": "4.34.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"