`petrova.irina.trigger` gets `AT3`, matching `petrova.sweeps.trigger`'s own precedent
Date: 2026-09-15 Status: closed Supersedes: none Superseded-by: none — current
Context
Section titled “Context”The IRINA dashboard trend page gained a manual trigger button (two,
actually — a preview one and an apply:true one), backed by a new tool,
petrova.irina.trigger (host/src/tools/irina-trigger.ts), which fires
workflow_dispatch on irina-cycle.yml — the exact same shape as the
already-ratified petrova.sweeps.trigger
(docs/decisions/2026-09-12-seam-class-taxonomy.md, which assigns it
AT3 and is the taxonomy’s own worked example for that tier). Shipped
mutating: true but deliberately unstamped — no seamTier set —
because the taxonomy’s own AT3 paragraph, as literally written, says “No
verb in the current registry is AT3 by this definition except
petrova.sweeps.trigger,” so citing that paragraph for a second verb
would fail host/tests/registry.test.ts’s co-occurrence check (it
requires the tier and the verb’s own name in the same paragraph, not
just an applicable definition). This doc is that missing citation,
proposed the same way IR-002 step 4’s population act was: for
countersign, not self-assigned.
Decision
Section titled “Decision”petrova.irina.trigger is AT3. Same reasoning sweeps.trigger
already established: it fires a real side effect outside version control
at write time (a GitHub Actions run), the AT3 definition’s own bar.
With apply: true, the dispatched run can additionally go on to open a
real PR against hermes (gated by the WIP cap and IR-004’s own
ratification, unaffected by this doc) — a strictly bigger blast radius
than sweeps.trigger’s own CI-run-only effect, so AT3 is the floor
here, not an overreach.
What this does NOT do
Section titled “What this does NOT do”- Does not change
sweeps.trigger’s own tier or citation. - Does not authorize anything beyond what IR-004 already ratified for
apply: truespecifically — this doc only assigns the calling tool’s tier, not a new write-path scope.
Consequences
Section titled “Consequences”Once ratified, the mechanical follow-up is stamping
host/src/registry.ts’s petrova.irina.trigger entry with
seamTier: "AT3" and authorizingDecision pointing here —
host/tests/registry.test.ts’s existing co-occurrence check proves the
citation holds, same as every other stamped verb.
References
Section titled “References”host/src/tools/irina-trigger.ts,host/src/tools/sweeps.tsdocs/decisions/2026-09-12-seam-class-taxonomy.md(AT3definition,sweeps.trigger’s own worked example)docs/decisions/2026-09-14-ir-002-step4-remaining-seam-tiers.md(same propose-then-stamp pattern)
Sign-off
Section titled “Sign-off”- Subagent: claude-sonnet-5
- Human: alex@devarno.com
Countersigned by human:alex@devarno.com on 2026-09-15 — commit 6a036b12
(this file’s creation commit) is authored by the human directly, per
docs/decisions/2026-09-05-proxy-countersign-retired.md’s post-retirement
definition. Line added retroactively by the agent as scribe.