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.
|
|
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
|
|
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
|