From shadowrepo
Detect drift between code and existing ShadowRepo specs. Compares git changes against spec anchors to find content changes, orphaned anchors, and uncovered new files. Use when: "check for drift", "is shadowrepo up to date", "what specs are stale".
How this skill is triggered — by the user, by Claude, or both
Slash command
/shadowrepo:checkThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Detect drift between current code and existing specs. Read-only — does not modify `.shadowrepo/`.
Detect drift between current code and existing specs. Read-only — does not modify .shadowrepo/.
stdlib/data-model.md — understand Spec and Anchor typesstdlib/git-operations.md — how to get changed files.shadowrepo/ exists with specs.json and features.json
/shadowrepo build first.".git/ exists)
Read .shadowrepo/meta.json to get last_commit_hash.
last_commit_hash exists: use it as the since_refHEAD~20 as fallback, warn userFollow stdlib/git-operations.md to get:
git diff --name-only --diff-filter=ACMR {since_ref}git diff --name-only --diff-filter=D {since_ref}git diff --name-only -M --diff-filter=R {since_ref}Filter results through stdlib/file-discovery.md — only care about source files.
Read .shadowrepo/specs.json. Build a lookup:
file field, map to the spec(s) that anchor to itFor each changed file:
Look up all specs anchored to this file
Read the current file content
For each anchored spec, evaluate: does the spec's described logic still hold?
summary, detail, and evidencecontent_changed — the code changed in a way that may invalidate the specanchor_orphaned — the file was deletedanchor_missing — the file was renamed (anchor path is stale)Assign severity:
For added files (not in any spec anchor):
new_file_gaps — these are uncovered new codeConstruct the result per contracts/check-result.md. Do NOT write to .shadowrepo/ — check is read-only.
Lifecycle:
/shadowrepo check): the result lives in conversation context only. Output the report (Step 6) and discard./shadowrepo update): the result is held in conversation context as an intermediate value. Update's Step 3 reads it directly — no file I/O needed.Output to user:
ShadowRepo Check — {since_ref_short}..HEAD
Files changed: {modified} modified, {added} added, {deleted} deleted
Specs affected: {count} ({high} high, {medium} medium, {low} low)
New gaps: {new_file_count} uncovered new files
Drifts:
[{severity}] {spec_id} — {summary}
[{severity}] {spec_id} — {summary}
...
Run `/shadowrepo update` to resolve these drifts.
If no drifts found:
ShadowRepo Check — {since_ref_short}..HEAD
No drift detected. ShadowRepo is up to date.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
Applies a firm's KYC/AML rules grid to parsed onboarding records: assigns risk rating, checks required documents, outputs rule outcomes with citations, and routes for escalation.
Generates daily or weekly digests of activity from connected sources (chat, email, docs, tasks, CRM), highlighting action items, decisions, mentions, and project updates.
npx claudepluginhub waynewangyuxuan/shadowrepo-extension-package --plugin shadowrepo