From 234108cbb58d4fd69476cdbf990140e45d255722 Mon Sep 17 00:00:00 2001 From: JohnnyT Date: Sat, 22 Aug 2026 05:59:51 -0600 Subject: [PATCH] Wires gate attestation to mix gate.verify Adds "attest": ["mix", "gate.verify"] to the gate block in .claude/wurk.json. The task itself ships with the statifier dependency (pinned to main), so no local copy of the task or its tests is carried here - per the upstream ruling on st-hcgl, repos adopt the dep-provided task rather than vendoring it. With this wired, unattended commits get a real attestation (full gate, scope all, no profile) instead of degrading to the exit code of the run. Verified locally: mix gate.verify runs the full gate and attests green. Also updates .claude/wurk/commit.md, whose "attestation is not wired up yet" section this change resolves. No gate stage was added and .quality.exs is untouched; this repo's deliberately smaller gate is unchanged. Refs: sp-7cu --- .claude/wurk.json | 1 + .claude/wurk/commit.md | 18 +++++++++--------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/.claude/wurk.json b/.claude/wurk.json index 90b4ac3..dc2eff1 100644 --- a/.claude/wurk.json +++ b/.claude/wurk.json @@ -27,6 +27,7 @@ "full": ["mix", "quality"], "loop": ["mix", "quality", "--profile", "loop"], "report": ["mix", "quality", "--report", "-"], + "attest": ["mix", "gate.verify"], "build_paths": ["lib/", "test/", "config/", "mix.exs", "mix.lock"], "also_gated_paths": [], "moving_files": [".quality.exs", "coveralls.json"], diff --git a/.claude/wurk/commit.md b/.claude/wurk/commit.md index 091eb74..e399bd7 100644 --- a/.claude/wurk/commit.md +++ b/.claude/wurk/commit.md @@ -63,12 +63,12 @@ reason to move it. Report the finding and stop. `.quality.exs` carries its reasoning in comments; a change that moves a value without moving its reason is incomplete regardless of who asked. -## Gate attestation is not wired up yet - -The manifest declares no `gate.attest` command, so an unattended -(`/wurk:commit --auto`) run records `attested: false` and refuses to advance. -That is the known state, not a fault to work around: bead `sp-7cu` adopts -`mix gate.verify` (the family's one adoptable verifier - it adds no gate -stage) and wires `gate.attest` to it. Until that lands, review the full gate -output directly in interactive runs, and treat an `--auto` refusal on -attestation as expected - report it, do not fake an attestation. +## Gate attestation: dep-provided mix gate.verify + +The manifest wires `gate.attest` to `mix gate.verify` (bead `sp-7cu`). The +task ships with the statifier dependency - this repo carries no local copy +of it, on purpose, per the upstream ruling on st-hcgl. It adds no gate stage +and does not touch `.quality.exs`; it runs the gate with a machine-readable +report and attests only a full run (status ok, scope all, no profile, no +run-narrowing skip). An `--auto` run that reports `attested: false` is the +check working - report it, do not fake an attestation.