{ "listing": { "skills": [ { "path": "skills/configure/SKILL.md", "name": "configure", "description": "Set up dev-loop's capability-role tool profile — map `knowledge` (your domain wiki / MCP), `verify` (your project's test/build/lint/typecheck/QA command), `explore` (code search), `tacit` (past incidents), and `design` (Figma/visual spec) to the actual tools this environment has, then write ~/.claude/dev-loop/tools.json (global) or /.dev-loop/tools.json (per-repo). Use when asked to \"configure dev-loop\", \"set up tools\", \"map my wiki/test command\", or \"/dev-loop:configure\".", "files": { "skills/configure/SKILL.md": "f67ca0a65518a518befe26412e082318d590682976c487237a19ebf01a20e211" } }, { "path": "skills/graph-setup/SKILL.md", "name": "graph-setup", "description": "Onboard a workspace of git repos onto the graphify code graph — detect or (with consent) install graphify, record the workspace roots in tools.json, build absent graphs with graphify update after one batch confirmation, and install graphify's post-commit/post-checkout hooks plus dev-loop's post-merge hook per repo. Use when asked to \"set up the code graph\", \"onboard the workspace\", \"install graphify\", \"graph setup\", or \"/dev-loop:graph-setup\".", "files": { "skills/graph-setup/SKILL.md": "2531317e17a4e5d3fbbd4d5cf8cc558406dc5100bb6d29ed72774e8348e40735" } }, { "path": "skills/knowledge-flush/SKILL.md", "name": "knowledge-flush", "description": "Drain queued ★ Insight candidates (harvested from your sessions) into the wiki as a reviewed PR. For each candidate it researches and verifies the best-practice against real sources, checks existing wiki layers for duplicates and links, decides the target layer/category (or justifies a new one), runs wiki-ingest, then opens ONE PR per flush for you to review and merge/reject. Never auto-merges. Use when asked to \"flush knowledge\", \"process the insight queue\", \"ingest what I learned\", or \"/dev-loop:knowledge-flush\".", "files": { "skills/knowledge-flush/SKILL.md": "4db9851cae6bedad13ace67c1085417475944fb9114996ee7e741e154c285a3f" } }, { "path": "skills/loop-implement/SKILL.md", "name": "loop-implement", "description": "The single implementation loop. It plans via wiki-plan (step 2, required) into an ordered, wiki-navigated task list, then executes those tasks in order, each loading only its named wiki pages, writing tests first, getting an independent test-quality audit, and judging against done; on failure it reflects and retries (bounded). Use for a non-trivial task or feature. Skip typos, config values, and simple renames.", "files": { "skills/loop-implement/SKILL.md": "26dc1bdfc3d9ded1571cf2d61f347b3f67ca1e0f6def2b5258cdd1c6dd818445", "skills/loop-implement/scripts/gate-check.sh": "304de0ba2972bf441e150fd9ec633521f1530bcc965743c59fbb2db30184b5ac" } }, { "path": "skills/orchestrate/SKILL.md", "name": "orchestrate", "description": "Orchestrate one natural-language goal into parallel tmux Claude Code sessions. It decomposes the goal (with your approval), plans each task with wiki-plan, implements and reviews, runs an integration test, and merges after your confirmation. Use to build a goal across multiple sessions. For a single task, use loop-implement instead.", "files": { "skills/orchestrate/SKILL.md": "df6c890060fafd9285eb9d902ee1de8321b226d2ab36b8855943b0424a4da72e", "skills/orchestrate/scripts/ask-coordinator.sh": "e0b98bd001c6a2a7a40238ac39a734981bfcde874a410f4024b517894ee36688", "skills/orchestrate/scripts/collect-status.sh": "572de1831b6cff56a71270c1af45e70bc977568049684b87802312458b511604", "skills/orchestrate/scripts/escalation-dir.sh": "fbc1bae271841f74fee6f9df7f57f880f2708c97500e8bf53122cd77b740d683", "skills/orchestrate/scripts/graph-add.sh": "827df0a0208c4c47f48bb371b499b1430e0f927cb9e5ce7c76e2263b11075b8a", "skills/orchestrate/scripts/graph-drop.sh": "a3a3d4ea7a9c98ded7f0514f6d94a3e49c0fcf8c49b8ec5bf4d7376b5c1b8225", "skills/orchestrate/scripts/install-permission-rules.sh": "dd3fcf4793397b9d121bd4918d4385223d8a92b17a3402c2927150e26599893c", "skills/orchestrate/scripts/launch-session.sh": "3ab3b348205333ac06be5e78ae0f75250d81bc645bfea3fe54e1229285858838", "skills/orchestrate/scripts/orca-detect.sh": "6785f2f087eac559915f7e8cab09be471e52ec21af6a773717c36b8e142c6bb5", "skills/orchestrate/scripts/orca-spawn.sh": "b5016ba3575ceda9561cf474188b17e3a4cdcba20e3b6ebcdc78b7cbfe7d6fea", "skills/orchestrate/scripts/orca-wait.sh": "e5b3dce79e90e41aa4b05c5c37dd4963b98f7c1a22569ebc920ec803ba942c41", "skills/orchestrate/scripts/orca-worker-stalled.sh": "b24adbc86f225a5e2c6bb29a7a16522212e9bd08017e2a561861226af35b9915", "skills/orchestrate/scripts/orca-worker-start.sh": "a834231d4687a8a41aaa3a474ce143eee22e3bf5450b37e45d56446c4e3d5155", "skills/orchestrate/scripts/orca-worktree-alive.sh": "84cee5768a5047ed93d3f151a43bf079a4f401301c08ec08458a56f023924925", "skills/orchestrate/scripts/ready-set.sh": "d611c208961b30bd627b9fbc7f7c9c682f8e3ac8c65df2ff993126c156ff371e", "skills/orchestrate/scripts/resolve-escalation.sh": "8efb9ac6243fc47ec56d25df12edbb09d7fa8693042a4301f7f25b94631c2304", "skills/orchestrate/scripts/safe-cleanup.sh": "4c8afc98e774e0758ec11e7819094bc9111766b6f15dad56ea4ae8c92315cc50", "skills/orchestrate/scripts/send-prompt.sh": "f82b718d395ce674ada0fa0fa74d3c9ffb58408b228c53ee77fef8e2acc91436", "skills/orchestrate/scripts/setup-worktrees.sh": "929d2db1b772923239088c8c0cb44d083171609a259c602a11efad86e3b6aeaa", "skills/orchestrate/scripts/status-update.sh": "1a8d77482ff76b4ecb1c6b8121bcf60b01b9203ae46c230e22c02c556d1a3bbc", "skills/orchestrate/scripts/test-floor.sh": "dcb4ad1ec7ad8c5be41bdc14dfdc8ef7af2b0fadddb37ffc9d55516e49ab6574", "skills/orchestrate/scripts/tmux-worker-stalled.sh": "70f6b8bad019c55f41922b0e95dcf24339e5e501bfe2266c0f857dc800713691", "skills/orchestrate/scripts/token-report.sh": "13baef683ffe1ae7abcbf39b50c6f3e40d8e857e04c60c74ce3cd21d314ea309", "skills/orchestrate/scripts/watch-status.sh": "b8e0f8ed4ade7a2a5561de0681cae4f22f8aafe364ca3f6dc96905b45ebe607f", "skills/orchestrate/scripts/worker-guardrails.sh": "79c3bb176914d7f6780ea93ac8dbd554b97bee0f948fa2d1ded45eb78202295b", "skills/orchestrate/templates/brief.md": "512d24759ed40af4753a62d10c4e633a6a4d61c3877579d59cfc05bb9f8fa2c4", "skills/orchestrate/templates/review-report.md": "f66479ea17ef89c7c8293e3a23b9e3787ed4bbf6eb9f60676620c087575571cd", "skills/orchestrate/templates/session-prompt.md": "577a73fd7cba50d649e541ea7610313f44bc97827b38590f9ae315ceda00726c" } }, { "path": "skills/wiki-ingest/SKILL.md", "name": "wiki-ingest", "description": "Add one verified lesson or edge case to the bundled wiki. Route it to the right domain and category, merge into an existing page before creating a new one, and enforce sourcing and positive-guidance rules. Use when capturing a documented best practice or a production edge case.", "files": { "skills/wiki-ingest/SKILL.md": "5aa5b567cad30cd0d87c3e19c477614776bc8f30f6e8fd6e758abde375b429e8" } }, { "path": "skills/wiki-lint/SKILL.md", "name": "wiki-lint", "description": "Health-check the bundled wiki. Detect unsourced claims, bare prohibitions, broken links, index and page trigger mismatches, vague qualifiers, oversized pages, stale dates, and model-era re-verification candidates, then fix them; reports a numeric health score (0-100). Use to keep the wiki healthy before drift compounds. Check 18 lists zero-citation pages from the optional usage telemetry as a review queue. Check 19 reports near-duplicate trigger pairs from the optional vector index.", "files": { "skills/wiki-lint/SKILL.md": "3256aefdc795ee6a0f1f3a7af4c5a155235b1e1691ac0d5740ff3e882daa3ec3" } }, { "path": "skills/wiki-plan/SKILL.md", "name": "wiki-plan", "description": "The fixed planning methodology for a capable model. Make every design decision grounded in a bundled wiki page (recording a decision-to-page map), then decompose the work into ordered, self-contained tasks, each naming the exact wiki pages that govern it. Runs as loop-implement step 2.", "files": { "skills/wiki-plan/SKILL.md": "affe3391df70f69faf1bd2744f36787fd60969ad9c3f86e67b25f44fe30ba365", "skills/wiki-plan/scripts/emit-gaps.sh": "2c00a633ace18276eb12c9e4e00afb4f270babf509379c5c8fb69f27a91eb100", "skills/wiki-plan/scripts/plan-gate.sh": "a29dc4f5211de52c8e8bed2154ca805af0c15c391a16fd3551b0cef30c2d7315" } }, { "path": "skills/wiki-query/SKILL.md", "name": "wiki-query", "description": "Answer a development question from the wiki with citations, loading only the pages whose triggers match. If the answer required synthesis across multiple pages and the question is likely to recur, file the synthesis back as a new page so knowledge compounds.", "files": { "skills/wiki-query/SKILL.md": "4a3571eb354947e9296fd67b9b47b5265849f9e7676976d14bee15335587d64d" } } ], "hooks": [ { "path": "hooks/hooks.json", "sha256": "549e88d9e074afdd815fb7606d15057208b478e69d353fe59101998136b182fc", "event": "SessionStart", "matcher": "startup", "declaration": { "type": "command", "command": "bash ${CLAUDE_PLUGIN_ROOT}/hooks/preflight.sh" }, "executed": false }, { "path": "hooks/hooks.json", "sha256": "549e88d9e074afdd815fb7606d15057208b478e69d353fe59101998136b182fc", "event": "SessionStart", "matcher": "startup", "declaration": { "type": "command", "command": "bash ${CLAUDE_PLUGIN_ROOT}/hooks/insight-instruction.sh" }, "executed": false }, { "path": "hooks/hooks.json", "sha256": "549e88d9e074afdd815fb7606d15057208b478e69d353fe59101998136b182fc", "event": "SessionStart", "matcher": "startup", "declaration": { "type": "command", "command": "bash ${CLAUDE_PLUGIN_ROOT}/hooks/config-nudge.sh" }, "executed": false }, { "path": "hooks/hooks.json", "sha256": "549e88d9e074afdd815fb7606d15057208b478e69d353fe59101998136b182fc", "event": "SessionStart", "matcher": "startup", "declaration": { "type": "command", "command": "bash ${CLAUDE_PLUGIN_ROOT}/hooks/graph-nudge.sh" }, "executed": false }, { "path": "hooks/hooks.json", "sha256": "549e88d9e074afdd815fb7606d15057208b478e69d353fe59101998136b182fc", "event": "SessionStart", "matcher": "startup", "declaration": { "type": "command", "command": "bash ${CLAUDE_PLUGIN_ROOT}/hooks/wiki-index.sh" }, "executed": false }, { "path": "hooks/hooks.json", "sha256": "549e88d9e074afdd815fb7606d15057208b478e69d353fe59101998136b182fc", "event": "PreToolUse", "matcher": "Bash", "declaration": { "type": "command", "command": "bash ${CLAUDE_PLUGIN_ROOT}/hooks/pre-flush-pr-gate.sh" }, "executed": false }, { "path": "hooks/hooks.json", "sha256": "549e88d9e074afdd815fb7606d15057208b478e69d353fe59101998136b182fc", "event": "PreToolUse", "matcher": "Bash", "declaration": { "type": "command", "command": "bash ${CLAUDE_PLUGIN_ROOT}/hooks/orchestrate-ask-gate.sh" }, "executed": false }, { "path": "hooks/hooks.json", "sha256": "549e88d9e074afdd815fb7606d15057208b478e69d353fe59101998136b182fc", "event": "Stop", "matcher": null, "declaration": { "type": "command", "command": "bash ${CLAUDE_PLUGIN_ROOT}/hooks/loop-gate.sh" }, "executed": false }, { "path": "hooks/hooks.json", "sha256": "549e88d9e074afdd815fb7606d15057208b478e69d353fe59101998136b182fc", "event": "Stop", "matcher": null, "declaration": { "type": "command", "command": "bash ${CLAUDE_PLUGIN_ROOT}/hooks/harvest-insights.sh" }, "executed": false }, { "path": "hooks/hooks.json", "sha256": "549e88d9e074afdd815fb7606d15057208b478e69d353fe59101998136b182fc", "event": "Stop", "matcher": null, "declaration": { "type": "command", "command": "bash ${CLAUDE_PLUGIN_ROOT}/hooks/auto-flush.sh" }, "executed": false }, { "path": "hooks/hooks.json", "sha256": "549e88d9e074afdd815fb7606d15057208b478e69d353fe59101998136b182fc", "event": "StopFailure", "matcher": null, "declaration": { "type": "command", "command": "bash ${CLAUDE_PLUGIN_ROOT}/hooks/worker-blocked-signal.sh" }, "executed": false }, { "path": "hooks/hooks.json", "sha256": "549e88d9e074afdd815fb7606d15057208b478e69d353fe59101998136b182fc", "event": "Notification", "matcher": "permission_prompt|idle_prompt|elicitation_dialog|elicitation_url_dialog|agent_needs_input|worker_permission_prompt|quota_auto_resume_stale|quota_auto_resume_disabled|quota_auto_resume_fired", "declaration": { "type": "command", "command": "bash ${CLAUDE_PLUGIN_ROOT}/hooks/worker-blocked-signal.sh" }, "executed": false }, { "path": "hooks/hooks.json", "sha256": "549e88d9e074afdd815fb7606d15057208b478e69d353fe59101998136b182fc", "event": "UserPromptSubmit", "matcher": null, "declaration": { "type": "command", "command": "bash ${CLAUDE_PLUGIN_ROOT}/hooks/worker-blocked-signal.sh" }, "executed": false } ], "executions": [] } }