Audit whether every automation artifact is actually reached — hooks whose declared event does not match their wiring, orphaned skills/agents/commands/tests, artifacts that exist but nothing ever causes to run, and artifacts that work only because of local state a fresh clone lacks. Use for "is this hook even firing", "did my skill ever run", "find orphaned automation", "why did nothing happen", "this lint has never caught anything", or as part of /opus-pocus. Read-only; reports per-artifact d...
Scanned 9/6/2026
Install to Claude Code
npx -y skills add Totes-MickGOATs/opus-pocus --skill priori-incantato --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Priori Incantato?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/totes-mickgoats-priori-incantato)More formats (shields.io, HTML) on the badges page.
---
name: priori-incantato
description: Audit whether every automation artifact is actually reached — hooks whose declared event does not match their wiring, orphaned skills/agents/commands/tests, artifacts that exist but nothing ever causes to run, and artifacts that work only because of local state a fresh clone lacks. Use for "is this hook even firing", "did my skill ever run", "find orphaned automation", "why did nothing happen", "this lint has never caught anything", or as part of /opus-pocus. Read-only; reports per-artifact declared-vs-actual wiring with a verdict. NOT for whether a check reports honestly once it does run (→ nihil-revelio). NOT for whether a guard blocks too much (→ alohomora).
---
# 🐉 Priori Incantato
> *"Every artifact swears it works. Ask it when it last ran."*
An artifact nothing invokes is not a feature, it is invisible debt — and it costs more than
absence, because the roster claims coverage the repo does not have. The failure is quiet by
construction: a hook wired to the wrong event returns success and its payload is dropped, a
skill whose disambiguation lives somewhere the router never reads is simply never chosen, and
neither state produces an error anywhere. This pass asks one question of every artifact:
*what causes you to run?*
## What to scan
- Hook scripts and the config that wires them (`.claude/settings*.json` and equivalents) — the
**pair**, never one side alone
- Skills, agents, commands, output styles, and their routing-visible surfaces
- Repo-local test suites and lints, and whatever is supposed to invoke them
- The version-control index — the ground truth for what a fresh clone actually receives
## Anti-patterns to find
1. **Declared-vs-wired event mismatch.** A hook emits one event name in its payload while the
config fires it on a different event. The handler runs, the payload is discarded silently,
and both sides look healthy in isolation. Only comparing the pair reveals it.
2. **Orphans.** A skill, agent, command, hook, lint or test that nothing invokes — no config
entry, no caller, no documented route. Count them honestly and separate the ones this change
created from the ones that predate it.
3. **Availability mistaken for discoverability.** The artifact exists, is wired, and still never
runs, because nothing *causes* it to be reached: a router that reads only a description field
while the disambiguation lives in the body; an advisory that fires after the decision it was
meant to inform; a skill whose triggers no real user phrasing matches.
4. **Fresh-clone unreachability.** The artifact works only because of local state — an
unversioned file, a locally-set executable bit, an absolute path, a machine-specific tool.
Verify as a fresh clone sees it: query the VCS index, never a filesystem existence test on
the machine that authored it.
5. **Wired to a dead event.** The trigger existed once. The event was renamed, the tool it
matched was removed, or the workflow that called it was retired — and the artifact still sits
there declaring a route to nowhere.
6. **The finish-the-sentence test fails.** The author cannot complete *"this will next run
when ___"* with an observable event. If the sentence cannot be finished, the artifact is not
wired; it is merely present.
## Fix prescriptions
| Finding class | Fix |
|---|---|
| Event mismatch | Reconcile the pair — fix whichever side is wrong — then add a conformance test asserting the declared event equals the wired event, so the two cannot drift apart again |
| Orphan | Wire it or delete it; nothing else is a resolution. Report the count against its denominator and mark which orphans predate this change — an orphan you did not create is repo backlog, not your remainder |
| Availability ≠ discoverability | Move what routing needs onto the router-visible surface (the description, the trigger list, the config), and place an advisory before the decision it informs, not after |
| Fresh-clone unreachable | Commit the artifact, commit its mode bit, replace absolute paths with repo-relative resolution, and verify from the index rather than from disk |
| Dead event | Re-point to a live event or retire the artifact; leaving it is a claim of coverage that does not exist |
| Unfinishable sentence | Write the trigger down explicitly in the artifact, then add a mechanical wiring check that runs on change, so the roster cannot silently drift back |
## Bounds
- Scope: automation artifacts and the config that wires them, plus the version-control index. Not application source, not another installed plugin's artifacts.
- Cap: the census covers everything (it is a table); cap detailed findings at 15, dropped-payload and dead-event cases first.
- Done when every artifact has been paired with its wiring once. Orphans that predate this change are repo backlog, reported as a count.
- Quote once, at read time; mark anything you cannot re-confirm `UNVERIFIED` rather than re-reading to check yourself.
- See `skills/opus-pocus/references/casting-safety.md` for the full rules.
## Report format
Per artifact: `path` · declared trigger · actual wiring · verdict — **reached** / **dropped**
(runs, but its output is discarded) / **orphan** (nothing invokes it) / **unknown** (could not
determine, which is not a pass). Then the census against its denominator: N artifacts examined,
M reached, and how many orphans predate this change versus were created by it. `SCANNED NOTHING`
if no automation layer was found — never "clean".
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!