Skip to content

3.4.0 — a guard asks whether what a stamp attests is TRUE - #212

Merged
TinDang97 merged 1 commit into
mainfrom
release/3.4.0
Sep 3, 2026
Merged

3.4.0 — a guard asks whether what a stamp attests is TRUE#212
TinDang97 merged 1 commit into
mainfrom
release/3.4.0

Conversation

@TinDang97

Copy link
Copy Markdown
Collaborator

Cuts 3.4.0. Two merged-but-unreleased PRs ship here: 3.3.0 was tagged before #210 landed, so this carries both #210 and #211.

What ships

#210 — the front door teaches a walk that runs. The documentation described a method the engine did not implement, and nothing could see the gap: every guard checked nouns the engine EXPOSES rather than capabilities the prose PROMISES. GETTING-STARTED.md is now executed by the suite, the roster names agents that exist, and init seeds selectable personas.

#211 — a guard asks whether what a stamp attests is TRUE. Every integrity guard asked whether a record was shaped right; none asked whether the thing it recorded had happened. A gate HARD-STOP walked to done. A red Task closed on another node's receipt through a slug collision. brief resolved no lens at all — not one seeded persona had ever reached a worker — and said nothing about the omission. And a scaffold new wrote could not survive the guards new recommended next.

Version surface

All eight declarations: five manifests (package.json, package-lock.json ×2, pyproject.toml, __init__.py, plugin.json), the ENGINE = "add/3.4.0" stamp, and the three shipped skill trees. Plus the dogfood bundle's own engine:/tooling_engine: in .add/index.md, which rides every bump.

ENGINE_MD5 re-aimed 9a800083 → 7932ec06. cli.py untouched, so ENGINE_PKG_MD5 stands.

One fix that is not in either PR

run learned to sniff the report path last turn, which left the shipped skill teaching the doubled --junitxml in four places — one of them a sentence explaining that the repetition was deliberate. Both spellings still work, which is why nothing failed.

test_receipt_idiom_truth could not catch it. It scopes itself to report-READING examples, decided by whether the engine-side flag is present, so dropping that flag makes an example invisible to the guard rather than wrong. That is the same guard-class hole this release exists to close, one turn later and self-inflicted.

The new guard binds the taught line to BEAT_NEXT["build"] — the string a user is actually shown at the end of a build — and was mutation-tested: reintroducing the doubling in verify.md turns it red, restoring turns it green.

Two smaller notes from that fix:

  • My first cut of the guard counted --junitxml anywhere on a line and flagged my own corrected line for naming the override flag in a trailing comment. Narrowed to the argument text before #; a comment is not something a reader copies.
  • The new prose collided with test_receipt_artifact.py, which parses --junitxml <token> and read my explanatory words (before, <path>) as documented receipt paths. I reworded the prose rather than touch that guard — it protects a real property.

SKILL.md holds at exactly 176/176 lines, funded by compression, no pin bump.

Verification

1111 passed, 7 skipped across both test roots (add-method/tests/ and add-method/tooling/), the full CI shape.

Tag and publish to npm + PyPI follow once this is green and merged.

…true

Two merged-but-unreleased PRs ship here. 3.3.0 was tagged before #210 landed,
so this release carries both it and #211.

#210 — the documentation described a method the engine did not implement, and
nothing could see the gap: every guard checked nouns the engine EXPOSES rather
than capabilities the prose PROMISES. GETTING-STARTED.md is now executed by the
suite, the roster names agents that exist, and `init` seeds selectable personas.

#211 — every integrity guard asked whether a record was SHAPED right; none asked
whether the thing it recorded had happened. A `gate HARD-STOP` walked to `done`.
A red Task closed on another node's receipt through a slug collision. `brief`
resolved no lens at all and said nothing about it. And a scaffold `new` wrote
could not survive the guards `new` recommended next.

Version bumped across all eight declarations — five manifests, the ENGINE stamp,
and the three shipped skill trees — plus the dogfood bundle's own engine stamp.
ENGINE_MD5 re-aimed 9a800083 -> 7932ec06; cli.py untouched, so ENGINE_PKG_MD5
stands.

Also fixed here, self-inflicted last turn: `run` learned to sniff the report
path, which left the shipped skill teaching the doubled `--junitxml` in four
places, one with a sentence explaining that the repetition was deliberate.
`test_receipt_idiom_truth` could not catch it — it decides which examples to
check by whether the engine-side flag is present, so removing that flag makes an
example invisible rather than wrong. The new guard binds the taught line to
`BEAT_NEXT["build"]`, the string a user is actually shown, and was mutation
-tested: reintroducing the doubling turns it red.

Suite: 1111 passed, 7 skipped across both test roots.

author: Tin Dang
@TinDang97
TinDang97 merged commit 8f7fe66 into main Sep 3, 2026
8 checks passed
@TinDang97
TinDang97 deleted the release/3.4.0 branch September 3, 2026 06:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant