From xcheck
Run xcheck triage as a dialogue - present reported findings and record the human's accept/reject/defer decisions in the ledger. Use when the user invokes $xcheck-triage or /xcheck-triage, or says "triage" or "let's go through the findings". The agent is the pen; the human is the decider.
How this skill is triggered — by the user, by Claude, or both
Slash command
/xcheck:xcheck-triageThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
You are the **pen, not the decider** (XCHECK.md §3 Triage, Agent-as-pen rule). The human makes every decision; you present, record, and never fill gaps with your own judgment.
You are the pen, not the decider (XCHECK.md §3 Triage, Agent-as-pen rule). The human makes every decision; you present, record, and never fill gaps with your own judgment.
audit/XCHECK.md and audit/LEDGER.md must exist. Missing → stop, point to xcheck bootstrap.md.audit/XCHECK.md §2–§3 (triage write surface, agent-as-pen) and audit/LEDGER.md.reported rows — this is the triage queue, and the ONLY group triage transitions. Also note, for optional review (NOT triage rows): ⚠ needs-human rows, the deferred backlog, unresolved disputed rows.
Legal transitions by source status (§5) — never cross groups: a reported row → accepted/rejected/deferred only; a disputed row is resolved only to accepted (human sides with the finding) or withdrawn (human sides against), and only on an explicit dispute ruling; deferred rows and findings stopped at reopen_limit have NO triage transition — route them per §9, never assign a new status here. A batch statement ("all critical accepted") applies only to reported rows in that group, never to a disputed/deferred one.reported. You may give an opinion when asked, clearly labeled as opinion; the recorded status is only what the human states.audit/LEDGER.md only, and only the status column of affected rows, per stated decisions (§3 Triage write surface: status column only). A rejected CF also reverts every finding in its members: list to accepted. Do NOT write the next column or any other column — the next index is derived later by agent/orchestrator sessions, not by triage. Never touch finding files — agent sessions sync frontmatter later per §2 rule 3.xcheck-remediate when findings were accepted).audit/.lock serializes writing sessions (§4 rule 8) and is shared with the orchestrator (bin/xcheck), which acquires it atomically with open(O_CREAT|O_EXCL). Match that — never check-then-create (the gap between an existence check and a separate create lets two sessions both win):
audit/.lock in one exclusive step that FAILS if the file already exists — e.g. (set -C; printf '%s' '{"pid": <pid or 0>, "role": "<Role>", "started": "<ISO>", "host": "<host>"}' > audit/.lock), where set -C (noclobber) makes the redirect fail atomically when the file exists. Set pid to a real process id if obtainable, else 0. If acquisition fails, another writing session holds the lock — do not start; report the conflict to the human.audit/.lock and confirm its pid+started still match the lock you wrote — delete only then, and on every exit path including early stop. Never delete a lock you do not own.pid is not alive is stale — clear it with xcheck unlock, never silently steal it.npx claudepluginhub vsov/xcheckGuides collaborative design exploration before implementation: explores context, asks clarifying questions, proposes approaches, and writes a design doc for user approval.
Creates structured, bite-sized implementation plans from specs or requirements before writing code. Useful for breaking down multi-step tasks into testable steps with file structure and task boundaries.
Resolves in-progress git merge or rebase conflicts by analyzing history, understanding intent, and preserving both changes where possible. Runs automated checks after resolution.