[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71J55YA9A7M6QCE66TY8HR9":3,"skill-same:01M71J55YA9A7M6QCE66TY8HR9":70},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":37,"linkOnly":38,"markdownContent":39,"markdownBody":40,"frontMatter":41,"refName":45,"commitSha":46,"skillDirectory":47,"forksCount":13,"repositoryHtmlUrl":48,"repositoryHomepageUrl":6,"ownerHtmlUrl":49,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":50,"install":51,"resources":63},"01M71J55YA9A7M6QCE66TY8HR9","deps",null,"Enumerates automation PRs (renovate \u002F dependabot etc.) with the `deps.mjs` engine and makes fixed-vocabulary judgments based on semver classification (from PR title \u002F branch \u002F manifest diff; grouped PRs use the maximum bump), CI status, lockfile consistency, and peer \u002F engines changes. patch\u002Fminor + CI green + lockfile consistent → auto-merge candidate; major \u002F CI red \u002F pending \u002F peer \u002F engines → 要確認. Author judgment uses the same pattern as health area 15 (`*[bot]` \u002F `app\u002F*`; release-please is excluded — that's `\u002Frelease`'s responsibility). `--dry-run` judges only; `--auto` executes without confirmation. Merging follows the central autonomy policy's irreversible gate (`--auto` overrides the policy).","ozzy-labs\u002Fskills","ozzy-labs","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F246109093?v=4","01M6H0M2K2PZXHWNHJJTWY20FY","01M71J2B6FZ5KPEXPR5VS1TX7Z",0,"MIT","https:\u002F\u002Fgithub.com\u002Fozzy-labs\u002Fskills\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fdeps\u002FSKILL.md",[],[5,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36],"auto","please","title","dry","bot","candidate","patch","Bash","dependabot","confirmation","only","pr title","renovate","ci","bump","green","lockfile","branch","app","2026-11-10 10:12:30",false,"---\ndescription: Enumerates automation PRs (renovate \u002F dependabot etc.) with the `deps.mjs` engine and makes fixed-vocabulary judgments based on semver classification (from PR title \u002F branch \u002F manifest diff; grouped PRs use the maximum bump), CI status, lockfile consistency, and peer \u002F engines changes. patch\u002Fminor + CI green + lockfile consistent → auto-merge candidate; major \u002F CI red \u002F pending \u002F peer \u002F engines → 要確認. Author judgment uses the same pattern as health area 15 (`*[bot]` \u002F `app\u002F*`; release-please is excluded — that's `\u002Frelease`'s responsibility). `--dry-run` judges only; `--auto` executes without confirmation. Merging follows the central autonomy policy's irreversible gate (`--auto` overrides the policy).\nargument-hint: \"[--repo owner\u002Frepo] [--limit N] [--dry-run | --auto]\"\ndisable-model-invocation: true\nallowed-tools: Bash, Read, AskUserQuestion\n---\n\n# deps\n\nRead `.agents\u002Fskills\u002Fdeps\u002FSKILL.md` and follow its workflow steps.\n\n**Important:** All determinism (automation PR enumeration \u002F author determination \u002F semver classification \u002F CI judgment \u002F lockfile consistency \u002F peer & engines detection \u002F the fixed-vocabulary judgment table \u002F merge execution) is handled by the bundled **`deps.mjs` engine**. The SKILL confines itself to the judgment layer: \"call the engine, present its output as-is, and confirm merges via the policy gate.\" Claude does not merge based on its own judgment that it \"looks safe\" (the judgment is determined by the engine's fixed vocabulary).\n\n## Claude Code-specific additions\n\n### Running the engine\n\n```bash\nnode ~\u002F.claude\u002Fskills\u002Fdeps\u002Fdeps.mjs [--repo owner\u002Frepo] [--limit N] [--dry-run | --auto]\n```\n\nFor dogfooding (within this repo), it's `\u003Crepo>\u002F.claude\u002Fskills\u002Fdeps\u002Fdeps.mjs`. Output is formatted text (structured JSON with `--json`). Pass the user's input through as the arguments.\n\n- `--repo owner\u002Frepo`: if omitted, the engine extracts it from `git remote get-url origin`\n- `--limit N`: enumeration limit (default 50)\n- `--dry-run`: judge only. No merge, no confirmation\n- `--auto`: merge without confirmation (an explicit opt-out of the irreversible gate)\n- If `--dry-run` and `--auto` are both specified, the engine prioritizes `--dry-run` (to prevent accidental merges)\n\n### Merge confirmation (policy's `irreversible` gate = ask)\n\nWhen neither `--dry-run` nor `--auto` is specified (`plan` mode), the engine does not merge and instead returns a `merge_plan` (the scheduled `gh pr merge \u003CN> --squash`) and the auto-merge candidates. Since merging is an irreversible action, it follows the policy's gate. Look up the gate with `policy-read.mjs --action=merge --repo-root=\"$PWD\"` (user-scope: `~\u002F.claude\u002Fskills\u002Fpolicy\u002Fpolicy-read.mjs`; dogfood: `\u003Crepo>\u002F.claude\u002Fskills\u002Fpolicy\u002Fpolicy-read.mjs`).\n\n- gate=`ask` (zero-config default): confirm auto-merge candidates **one at a time** via AskUserQuestion (do not enumerate `Y\u002Fn` as text). Only approved PRs get `gh pr merge \u003CN> --squash` executed (the corresponding command from `merge_plan`). The `要確認` group is not merged; it is only presented with reasons\n- If loosened to gate=`batch-confirm`: present auto-merge candidates together once and confirm them all via AskUserQuestion → if approved, re-run `deps.mjs` with `--auto` appended to the same arguments\n- gate=`proceed`: re-run with `--auto` without confirmation\n\nWhen `--auto` is specified, **AskUserQuestion is not inserted** (an explicit opt-out of the irreversible gate). The engine merges serially, noting the result (`merge_results`) alongside each row.\n\n### Integration with scheduled execution\n\nLaunching in the form `\u002Fdeps --auto` from `schedule` (cron routine) or `\u002Floop` closes the loop of \"consume automation PRs every morning\" (ADR-0028 R5). Since AskUserQuestion cannot be inserted during scheduled execution, the engine's conservative judgment table (`要確認` when in doubt) and the policy gate become the sole boundary.\n\n### Completion report and next-action suggestions\n\nEnd once the triage table \u002F merged PRs \u002F `要確認` breakdown have been displayed. Do not suggest next actions.\n","# deps\n\nRead `.agents\u002Fskills\u002Fdeps\u002FSKILL.md` and follow its workflow steps.\n\n**Important:** All determinism (automation PR enumeration \u002F author determination \u002F semver classification \u002F CI judgment \u002F lockfile consistency \u002F peer & engines detection \u002F the fixed-vocabulary judgment table \u002F merge execution) is handled by the bundled **`deps.mjs` engine**. The SKILL confines itself to the judgment layer: \"call the engine, present its output as-is, and confirm merges via the policy gate.\" Claude does not merge based on its own judgment that it \"looks safe\" (the judgment is determined by the engine's fixed vocabulary).\n\n## Claude Code-specific additions\n\n### Running the engine\n\n```bash\nnode ~\u002F.claude\u002Fskills\u002Fdeps\u002Fdeps.mjs [--repo owner\u002Frepo] [--limit N] [--dry-run | --auto]\n```\n\nFor dogfooding (within this repo), it's `\u003Crepo>\u002F.claude\u002Fskills\u002Fdeps\u002Fdeps.mjs`. Output is formatted text (structured JSON with `--json`). Pass the user's input through as the arguments.\n\n- `--repo owner\u002Frepo`: if omitted, the engine extracts it from `git remote get-url origin`\n- `--limit N`: enumeration limit (default 50)\n- `--dry-run`: judge only. No merge, no confirmation\n- `--auto`: merge without confirmation (an explicit opt-out of the irreversible gate)\n- If `--dry-run` and `--auto` are both specified, the engine prioritizes `--dry-run` (to prevent accidental merges)\n\n### Merge confirmation (policy's `irreversible` gate = ask)\n\nWhen neither `--dry-run` nor `--auto` is specified (`plan` mode), the engine does not merge and instead returns a `merge_plan` (the scheduled `gh pr merge \u003CN> --squash`) and the auto-merge candidates. Since merging is an irreversible action, it follows the policy's gate. Look up the gate with `policy-read.mjs --action=merge --repo-root=\"$PWD\"` (user-scope: `~\u002F.claude\u002Fskills\u002Fpolicy\u002Fpolicy-read.mjs`; dogfood: `\u003Crepo>\u002F.claude\u002Fskills\u002Fpolicy\u002Fpolicy-read.mjs`).\n\n- gate=`ask` (zero-config default): confirm auto-merge candidates **one at a time** via AskUserQuestion (do not enumerate `Y\u002Fn` as text). Only approved PRs get `gh pr merge \u003CN> --squash` executed (the corresponding command from `merge_plan`). The `要確認` group is not merged; it is only presented with reasons\n- If loosened to gate=`batch-confirm`: present auto-merge candidates together once and confirm them all via AskUserQuestion → if approved, re-run `deps.mjs` with `--auto` appended to the same arguments\n- gate=`proceed`: re-run with `--auto` without confirmation\n\nWhen `--auto` is specified, **AskUserQuestion is not inserted** (an explicit opt-out of the irreversible gate). The engine merges serially, noting the result (`merge_results`) alongside each row.\n\n### Integration with scheduled execution\n\nLaunching in the form `\u002Fdeps --auto` from `schedule` (cron routine) or `\u002Floop` closes the loop of \"consume automation PRs every morning\" (ADR-0028 R5). Since AskUserQuestion cannot be inserted during scheduled execution, the engine's conservative judgment table (`要確認` when in doubt) and the policy gate become the sole boundary.\n\n### Completion report and next-action suggestions\n\nEnd once the triage table \u002F merged PRs \u002F `要確認` breakdown have been displayed. Do not suggest next actions.\n",{"description":7,"allowed-tools":42,"argument-hint":43,"disable-model-invocation":44},"Bash, Read, AskUserQuestion","[--repo owner\u002Frepo] [--limit N] [--dry-run | --auto]",true,"main","db212a47efe751fa1c42bd76e61dbfd8328e5b10",".claude\u002Fskills\u002Fdeps","https:\u002F\u002Fgithub.com\u002Fozzy-labs\u002Fskills","https:\u002F\u002Fgithub.com\u002Fozzy-labs","2026-07-13 06:49:42",{"source":8,"skillName":5,"commands":52,"prompt":62,"zipAvailable":44},[53,56,59],{"tool":54,"command":55},"npx","npx skills add ozzy-labs\u002Fskills --skill deps",{"tool":57,"command":58},"bunx","bunx skills add ozzy-labs\u002Fskills --skill deps",{"tool":60,"command":61},"pnpm","pnpm dlx skills add ozzy-labs\u002Fskills --skill deps","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fozzy-labs\u002Fskills\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fdeps\u002FSKILL.md",[64],{"path":65,"resourceType":66,"resourceTypeDesc":67,"sizeBytes":68,"sourceHtmlUrl":69},"deps.mjs","SCRIPT","脚本",30641,"https:\u002F\u002Fgithub.com\u002Fozzy-labs\u002Fskills\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fdeps\u002Fdeps.mjs",[71,93,119,140,172,194],{"skillNo":72,"name":73,"nameZh":6,"description":74,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":75,"categories":76,"keywords":77,"publishedAt":37},"01M71J6R63H4E6ZE6KMDM4CT85","verify","An integrated skill that runs the combined validation of build \u002F typecheck \u002F test \u002F lint in one shot. The `verify.mjs` engine auto-discovers validation commands via a discovery chain (AGENTS.md's 「検証」 section → package.json scripts → justfile\u002FMakefile\u002Flefthook → language heuristics), executes them serially with their source attached, and returns a result summary. If a higher-priority stage produces a hit, only that stage is executed (no crossing stages).","https:\u002F\u002Fgithub.com\u002Fozzy-labs\u002Fskills\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fverify\u002FSKILL.md",[],[73,78,79,80,81,82,83,84,28,18,85,86,25,87,88,21,89,90,91,92],"combined","heuristics","chain","repo","discovery","section","lefthook","package","stage","one","lint","engine","with","test","typecheck",{"skillNo":94,"name":95,"nameZh":6,"description":96,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":97,"categories":98,"keywords":99,"publishedAt":37},"01M71J6JW7SAY9PDKAWHG3SJCR","usage-guard","Monitors Claude Code's Usage Limit (5-hour = Current \u002F weekly = Weekly), pauses work when it exceeds 95%, and automatically resumes once the reset restores headroom. Bundles an engine form that a caller such as drive Reads at a checkpoint, and a standalone form, `\u002Fusage-guard \"\u003Ccontinuation command>\"`, that guards arbitrary work. Claude-only (depends on the OAuth usage-rate endpoint + ScheduleWakeup).","https:\u002F\u002Fgithub.com\u002Fozzy-labs\u002Fskills\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fusage-guard\u002FSKILL.md",[],[100,101,102,103,104,28,105,106,107,108,109,110,111,112,113,114,115,116,117,118],"usage","usage guard","guard","weekly","standalone","guards","when","code","reset","work","command","at","rate","status","endpoint","as","continuation","form","limit",{"skillNo":120,"name":121,"nameZh":6,"description":122,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":123,"categories":124,"keywords":125,"publishedAt":37},"01M71J6FRG119REA1G0S99Q4GZ","topics","Selects GitHub topic candidates by having the `topics.mjs` engine perform constraint validation, popularity measurement, broad+narrow \u002F singular-plural comparison, and hardcoded ozzy-labs conventions, then applies them via `gh repo edit --add-topic` following the policy's `externally-visible` gate (default batch-confirm). Scope is limited to use within ozzy-labs.","https:\u002F\u002Fgithub.com\u002Fozzy-labs\u002Fskills\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Ftopics\u002FSKILL.md",[],[121,126,127,81,128,129,130,131,132,133,134,25,135,23,136,21,89,137,138,139],"measurement","scope","policy","default","true","gh","plural","use","comparison","apply","batch","candidates","github","via",{"skillNo":141,"name":142,"nameZh":6,"description":143,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":144,"categories":145,"keywords":156,"publishedAt":37},"01M71J6DC27P4FDSP10SDT2PSN","skill-observability","Defines the skill observability event contract (event.schema.json) and emit substrate (obs-emit.mjs). The SSOT for the measurement layer of the skill improvement loop. Referenced by other skills and hooks.","https:\u002F\u002Fgithub.com\u002Fozzy-labs\u002Fskills\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fskill-observability\u002FSKILL.md",[146,151],{"categoryNo":147,"categoryName":148,"taxonomyType":149,"taxonomyTypeDesc":150},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",{"categoryNo":152,"categoryName":153,"taxonomyType":154,"taxonomyTypeDesc":155},"01JBSEEDCAT000000000000037","律师与法务","PROFESSION","适用职业",[157,158,126,159,160,161,162,163,164,165,166,167,168,169,170,171],"observability","skill observability","improvement","skill improvement","for","event","hooks","contract","schema","loop","false","substrate","json","improvement loop","layer",{"skillNo":173,"name":174,"nameZh":6,"description":175,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":176,"categories":177,"keywords":179,"publishedAt":37},"01M71J6AYECH1J94RAZ49QZ19Y","skill-metrics","Aggregates the local observability event log (~\u002F.agents\u002Fobservability\u002Fevents.jsonl) and presents, read-only, per-skill invocation counts and notable events (fallback \u002F HITL rejection \u002F loop cap reached \u002F abort). Fires on \"show me the skill metrics,\" \"aggregate the observability results,\" \"which skills get used the most?\" Does not send anything.","https:\u002F\u002Fgithub.com\u002Fozzy-labs\u002Fskills\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fskill-metrics\u002FSKILL.md",[178],{"categoryNo":147,"categoryName":148,"taxonomyType":149,"taxonomyTypeDesc":150},[180,181,157,182,183,184,185,186,162,187,188,189,190,130,28,166,191,25,192,193],"skill metrics","metrics","event log","which","show","get","read-only","iso","aggregates","send","local","show me","log","jsonl",{"skillNo":195,"name":196,"nameZh":6,"description":197,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":198,"categories":199,"keywords":200,"publishedAt":37},"01M71J68TD0QFATGW3BBZVCWA2","ship","Runs verification, commit, and PR creation all at once. An integrated pipeline that runs verify (build + type + test + lint) → commit → PR creation in sequence against the changes.","https:\u002F\u002Fgithub.com\u002Fozzy-labs\u002Fskills\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fship\u002FSKILL.md",[],[196,201,202,91,203,204,73,205,206,207,111,208,209,210,130,211,25,212,88],"type","verification","changes","pr","creation","build","pipeline","read","sequence","grep","pr creation","commit"]