harness-curatelisted
Install: claude install-skill junyeong-ai/harnex
# harness-curate
The promotion-and-retirement loop `.claude/rules/governance.md` describes,
executed. That rule owns the rubric and the thresholds; this skill drives the
commands and lands the results, and never restates a bar the rule already sets.
## 1. Surface
Deterministic, and none of it invents text:
```
harnex lifecycle candidates # groups past the thresholds, and the ledger they came from
harnex lifecycle observations [--tag <topic>] # every wording by tag, widest breadth first
harnex telemetry report # per-Kind counts; never a retirement verdict
harnex lifecycle retire # Stale / NoConsumers / Silent verdicts
```
Read `observations_read` before the candidates. Zero is an unwritten ledger:
the emit half of this loop never fired and this pass has read nothing, so say
that and go find where the observations went — a wrapup that recorded them
somewhere the loop does not reach is the usual answer. `groups_considered` and
`groups_resolved` split the rest between what the thresholds saw and what an
earlier pass already closed, and `decisions_read` says whether the ledger
behind that second number was found at all — zero there, on a corpus this loop
has run on before, means the pass is about to resurface everything the operator
already settled.
No candidates over a written ledger is the exact-wording bar holding, not
yet a finished pass. The thresholds count recurrence per wording, and one
claim recorded in two wordings is two groups under the bar — so