Phase 6 / child B: SOUL.md verification checklist #45

Closed
opened 2026-09-17 14:50:27 +00:00 by Mark · 1 comment
Owner

Parent-Issue: #42

Produce a small checklist that captures the on-disk invariant for the triage-aware-runner profile. The checklist should verify:

  • profile.yaml description line — first 57 chars triggers-style, identifies the lane
  • SOUL.md stance shape (not enumeration) — describes lifecycle shape, hard rules, identity; no verb tables
  • run.sh parses Repo+Issue from card body — required to proceed
  • no think-tell verb in the lane's verb set — Terminal verbs: complete, reassign, block, archive; no think/narrate/explain
  • exits one verb — exactly one terminal verb per pass

Target file: a checklist doc alongside the profile (e.g., profiles/triage-runner/VERIFICATION.md or similar).

Out of scope: modifying any of the verified files; this is purely an invariant-capture checklist.

**Parent-Issue:** #42 Produce a small checklist that captures the on-disk invariant for the triage-aware-runner profile. The checklist should verify: - profile.yaml description line — first 57 chars triggers-style, identifies the lane - SOUL.md stance shape (not enumeration) — describes lifecycle shape, hard rules, identity; no verb tables - run.sh parses Repo+Issue from card body — required to proceed - no think-tell verb in the lane's verb set — Terminal verbs: complete, reassign, block, archive; no think/narrate/explain - exits one verb — exactly one terminal verb per pass Target file: a checklist doc alongside the profile (e.g., profiles/triage-runner/VERIFICATION.md or similar). Out of scope: modifying any of the verified files; this is purely an invariant-capture checklist.
Author
Owner

Phase 6 / child B: SOUL.md verification checklist

Checklist drafted as VERIFICATION.md and placed alongside the profile at ~/.hermes/profiles/triage-runner/VERIFICATION.md. Five invariants captured, each with Check, Pass condition, Fail signal.

Summary

  1. profile.yaml description line — first 57 chars triggers-style, identifies the lane.
  2. SOUL.md stance shape (not enumeration) — describes lifecycle shape, hard rules, identity; no verb tables or decision trees.
  3. run.sh parses Repo+Issue from card body — required to proceed; missing fields → kanban_block(reason="missing-routing-fields: …") and exit.
  4. No think-tell verb in the lane's verb set — terminal verbs are exactly: complete, reassign, block, archive. No think/narrate/explain/plan/poll/review.
  5. Exactly one terminal verb per pass — SOUL states single-verb-per-pass; run.sh has at most one disposition call per execution path.

Note on current state

Items 1, 2, 3, 5 hold for the on-disk profile today:

  • profile.yaml description opens "Triage-aware execution lane. Reads triage-" (lane-named, trigger-style).
  • SOUL.md sections are stance-shaped (Who you are, How you decide, The substrate, What you don't do, Terminal verbs you speak, Identity).
  • scripts/run.sh extracts **Repo:** / **Issue:** from the card body and blocks on missing fields.
  • SOUL.md ends each section with "Each pass ends with exactly one of these."

Item 4 is partially held: the on-disk SOUL lists three terminal verbs (complete, reassign, block); the spec in this checklist adds archive as a fourth. The checklist records the spec; updating the SOUL to include archive is a separate change (out of scope for this task).

Run it

The checklist ends with a ## How to run this checklist section containing shell snippets a reviewer can paste to confirm each invariant on disk.

Full text lives at ~/.hermes/profiles/triage-runner/VERIFICATION.md.

## Phase 6 / child B: SOUL.md verification checklist Checklist drafted as `VERIFICATION.md` and placed alongside the profile at `~/.hermes/profiles/triage-runner/VERIFICATION.md`. Five invariants captured, each with **Check**, **Pass condition**, **Fail signal**. ### Summary 1. **profile.yaml description line** — first 57 chars triggers-style, identifies the lane. 2. **SOUL.md stance shape (not enumeration)** — describes lifecycle shape, hard rules, identity; no verb tables or decision trees. 3. **run.sh parses Repo+Issue from card body** — required to proceed; missing fields → `kanban_block(reason="missing-routing-fields: …")` and exit. 4. **No think-tell verb in the lane's verb set** — terminal verbs are exactly: `complete`, `reassign`, `block`, `archive`. No `think`/`narrate`/`explain`/`plan`/`poll`/`review`. 5. **Exactly one terminal verb per pass** — SOUL states single-verb-per-pass; `run.sh` has at most one disposition call per execution path. ### Note on current state Items 1, 2, 3, 5 hold for the on-disk profile today: - `profile.yaml` description opens `"Triage-aware execution lane. Reads triage-"` (lane-named, trigger-style). - SOUL.md sections are stance-shaped (`Who you are`, `How you decide`, `The substrate`, `What you don't do`, `Terminal verbs you speak`, `Identity`). - `scripts/run.sh` extracts `**Repo:**` / `**Issue:**` from the card body and blocks on missing fields. - SOUL.md ends each section with "Each pass ends with exactly one of these." Item 4 is **partially held**: the on-disk SOUL lists three terminal verbs (`complete`, `reassign`, `block`); the spec in this checklist adds `archive` as a fourth. The checklist records the spec; updating the SOUL to include `archive` is a separate change (out of scope for this task). ### Run it The checklist ends with a `## How to run this checklist` section containing shell snippets a reviewer can paste to confirm each invariant on disk. Full text lives at `~/.hermes/profiles/triage-runner/VERIFICATION.md`.
Mark closed this issue 2026-09-17 14:59:44 +00:00
Sign in to join this conversation.
No description provided.