rings
Installation
SKILL.md
Rings
Read-only. Writes nothing, ever.
Arguments
| Argument | Value | Default |
|---|---|---|
[dir] |
absolute path to the ring directory | the ring directory known from context; if unknown, ask |
--claims |
print only the claims table + collisions, skip the tree | off |
--verbose |
full claims table (every claim, not only collisions), exact ring.py commands run |
off |
Steps
python3 ${CLAUDE_PLUGIN_ROOT}/scripts/ring.py scan <dir>— covers<dir>root and<dir>/done/. Exit 1 only means some ring carries an anomaly; keep going, anomalies are surfaced, not fatal. Read each ring'sanomalies[]. Ifscanreturns[], this does not mean the folder is virgin — see the blind-spot sentence under Output; still run steps 2-4, the footer'smeasured:line covers all three commands regardless.- Skip if
--claims.python3 ${CLAUDE_PLUGIN_ROOT}/scripts/ring.py graph <dir>— a Mermaidflowchart TD. Node label =slug<br/>(vehicle · carrier)when the ring'scarrierfield is non-null,slug<br/>(vehicle)when it is absent or—(v0.1.0 files, or nobody holds the token). Color:activegreen,parkedgold,donegray,rootblue. Achildren:slug with no matching file, or aparent:with no matching file, renders as a dashed phantom node — this is expected forinline/subagentrings, which have no file.donerings stay on the tree, never pruned. python3 ${CLAUDE_PLUGIN_ROOT}/scripts/ring.py collide <dir>— everycreate:/writes:claim of everyactive/parkedring (root +done/), paired up where one includes the other.relation: lineageis a legal parent→child delegation (§4.2), not a problem. Onlyrelation: nonepairs are real collisions.- Compose the anomaly list from step 1's
anomalies[]fields plus step 3'snone-relation pairs. List them flat. Never fix them — this skill only reads.