[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6JVTMDPQJCA31212WK9CDP2":3,"skill-same:01M6JVTMDPQJCA31212WK9CDP2":58},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":30,"linkOnly":31,"markdownContent":32,"markdownBody":33,"frontMatter":34,"refName":35,"commitSha":36,"skillDirectory":37,"forksCount":38,"repositoryHtmlUrl":39,"repositoryHomepageUrl":40,"ownerHtmlUrl":41,"ownerBlogUrl":42,"ownerDescription":6,"updatedAt":43,"install":44,"resources":57},"01M6JVTMDPQJCA31212WK9CDP2","noslop-commit-gate",null,"Run the noslop pre-commit quality gate, interpret failures, and enforce content-aware protection rules before every commit.","45ck\u002Fskill-harness","45ck","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F98618920?v=4","01M6JVMEERB77XKFGN2RT770BP","Calvin","01M6JVMEK42E6WBBD4R3QE9Y4P",15,"MIT","https:\u002F\u002Fgithub.com\u002F45ck\u002Fskill-harness\u002Fblob\u002Fmain\u002Fpacks\u002Fnoslop-skills\u002Fskills\u002Fnoslop-commit-gate\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29],"commit","gate","noslop commit gate","quality gate","run","content","pre-commit","quality","Rules","protection","enforce","2026-11-10 10:12:30",false,"---\nname: \"noslop-commit-gate\"\ndescription: \"Run the noslop pre-commit quality gate, interpret failures, and enforce content-aware protection rules before every commit.\"\n---\n\nUse this skill before every `git commit` in a noslop-protected repository.\n\nGate command:\n\n```sh\nnoslop check --tier=fast\n```\n\nRun this before staging the final commit. The pre-commit hook runs it automatically, but running it manually first surfaces failures early.\n\nIf the gate fails:\n\n- read the failure output and fix the reported issue (lint error, format violation, spell error)\n- never use `git commit --no-verify` — the Claude Code guardrails block this for AI agents and it defeats the purpose of the gate\n- never disable lint rules to make the gate pass; fix the underlying issue\n- after fixing, re-run `noslop check --tier=fast` to confirm the gate is green before committing\n\nContent-aware config protection — Tier 1:\n\nThe pre-commit hook checks quality gate config files for weakening patterns. Strengthening changes pass through automatically.\n\n| Config | Blocked (weakening) | Allowed (strengthening) |\n|---|---|---|\n| `eslint.config.mjs` | Adding `'off'` rules, `eslint-disable`, net removal of `'error'` rules | New rules, tighter limits |\n| `vitest.config.ts` | Lowering coverage thresholds, removing thresholds | Raising thresholds |\n| `tsconfig*.json` | Adding `strict: false`, net removal of strict flags | New strict flags |\n| `.dependency-cruiser.cjs` | Net removal of `name:` rules, severity downgrade to warn\u002Finfo\u002Foff | New forbidden rules |\n| `knip.json` | Expanding `ignore`\u002F`ignoreDependencies`, `ignoreExportsUsedInFile` | New entry points |\n\nEnforcement file protection — Tier 2a:\n\nFiles in `.githooks\u002F`, `.claude\u002Fhooks\u002F`, and `AGENTS.md` are the enforcement mechanism itself. The hook only blocks:\n\n- removal of quality commands (`npm run ci`, `npm run test`, `noslop check`, etc.)\n- net removal of `exit 1` lines\n- net removal of `set -e` lines\n\nAdditive changes (new jobs, new checks, new schedules) pass through.\n\nCI and config file protection — Tier 2b:\n\nFiles in `.github\u002Fworkflows\u002F` and `.claude\u002Fsettings.json` are fully checked:\n\n- removal of quality commands\n- addition of bypass patterns (`continue-on-error: true`, `--no-verify`, `[skip ci]`, `SKIP_CI`, `skip-checks`)\n- net removal of `exit 1`\n\nLines containing `deny`, `block`, or `\"Bash` are excluded from bypass detection to avoid false positives on enforcement logic.\n\nAvoid:\n\n- using `--no-verify` under any circumstance\n- adding `eslint-disable` comments to silence lint failures\n- downgrading config severity to pass the gate\n- editing `.githooks\u002F`, `.claude\u002F`, or `.github\u002Fworkflows\u002F` to remove gate commands\n","Use this skill before every `git commit` in a noslop-protected repository.\n\nGate command:\n\n```sh\nnoslop check --tier=fast\n```\n\nRun this before staging the final commit. The pre-commit hook runs it automatically, but running it manually first surfaces failures early.\n\nIf the gate fails:\n\n- read the failure output and fix the reported issue (lint error, format violation, spell error)\n- never use `git commit --no-verify` — the Claude Code guardrails block this for AI agents and it defeats the purpose of the gate\n- never disable lint rules to make the gate pass; fix the underlying issue\n- after fixing, re-run `noslop check --tier=fast` to confirm the gate is green before committing\n\nContent-aware config protection — Tier 1:\n\nThe pre-commit hook checks quality gate config files for weakening patterns. Strengthening changes pass through automatically.\n\n| Config | Blocked (weakening) | Allowed (strengthening) |\n|---|---|---|\n| `eslint.config.mjs` | Adding `'off'` rules, `eslint-disable`, net removal of `'error'` rules | New rules, tighter limits |\n| `vitest.config.ts` | Lowering coverage thresholds, removing thresholds | Raising thresholds |\n| `tsconfig*.json` | Adding `strict: false`, net removal of strict flags | New strict flags |\n| `.dependency-cruiser.cjs` | Net removal of `name:` rules, severity downgrade to warn\u002Finfo\u002Foff | New forbidden rules |\n| `knip.json` | Expanding `ignore`\u002F`ignoreDependencies`, `ignoreExportsUsedInFile` | New entry points |\n\nEnforcement file protection — Tier 2a:\n\nFiles in `.githooks\u002F`, `.claude\u002Fhooks\u002F`, and `AGENTS.md` are the enforcement mechanism itself. The hook only blocks:\n\n- removal of quality commands (`npm run ci`, `npm run test`, `noslop check`, etc.)\n- net removal of `exit 1` lines\n- net removal of `set -e` lines\n\nAdditive changes (new jobs, new checks, new schedules) pass through.\n\nCI and config file protection — Tier 2b:\n\nFiles in `.github\u002Fworkflows\u002F` and `.claude\u002Fsettings.json` are fully checked:\n\n- removal of quality commands\n- addition of bypass patterns (`continue-on-error: true`, `--no-verify`, `[skip ci]`, `SKIP_CI`, `skip-checks`)\n- net removal of `exit 1`\n\nLines containing `deny`, `block`, or `\"Bash` are excluded from bypass detection to avoid false positives on enforcement logic.\n\nAvoid:\n\n- using `--no-verify` under any circumstance\n- adding `eslint-disable` comments to silence lint failures\n- downgrading config severity to pass the gate\n- editing `.githooks\u002F`, `.claude\u002F`, or `.github\u002Fworkflows\u002F` to remove gate commands\n",{"name":5,"description":7},"main","31fedf0ad5fb02ca599add38ef92ce9ebfdaf785","packs\u002Fnoslop-skills\u002Fskills\u002Fnoslop-commit-gate",1,"https:\u002F\u002Fgithub.com\u002F45ck\u002Fskill-harness","https:\u002F\u002Fgithub.com\u002F45ck\u002Fskill-harness\u002Freleases\u002Ftag\u002Fv0.1.0","https:\u002F\u002Fgithub.com\u002F45ck","calvinkennedy.com","2026-06-23 16:42:42",{"source":8,"skillName":5,"commands":45,"prompt":55,"zipAvailable":56},[46,49,52],{"tool":47,"command":48},"npx","npx skills add 45ck\u002Fskill-harness --skill noslop-commit-gate",{"tool":50,"command":51},"bunx","bunx skills add 45ck\u002Fskill-harness --skill noslop-commit-gate",{"tool":53,"command":54},"pnpm","pnpm dlx skills add 45ck\u002Fskill-harness --skill noslop-commit-gate","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002F45ck\u002Fskill-harness\u002Fblob\u002Fmain\u002Fpacks\u002Fnoslop-skills\u002Fskills\u002Fnoslop-commit-gate\u002FSKILL.md",true,[],[59,77,87,110,123,144],{"skillNo":60,"name":61,"nameZh":6,"description":62,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":63,"categories":64,"keywords":70,"publishedAt":30},"01M6JVWQZDB2JC8FC6Q2KKH0HV","risky-skill","Synthetic risky skill for intake scanner coverage.","https:\u002F\u002Fgithub.com\u002F45ck\u002Fskill-harness\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fexternal-skill-intake\u002Frisky-script-pack\u002Fskills\u002Frisky-skill\u002FSKILL.md",[65],{"categoryNo":66,"categoryName":67,"taxonomyType":68,"taxonomyTypeDesc":69},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[71,72,73,74,75,76],"risky skill","for","synthetic","scanner","coverage","intake",{"skillNo":78,"name":79,"nameZh":6,"description":80,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":81,"categories":82,"keywords":84,"publishedAt":30},"01M6JVWKG4SGT1M3TVDDDS4PDD","fixture-skill","Synthetic skill for intake scanner coverage.","https:\u002F\u002Fgithub.com\u002F45ck\u002Fskill-harness\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fexternal-skill-intake\u002Fclean-cross-host-pack\u002Fskills\u002Ffixture-skill\u002FSKILL.md",[83],{"categoryNo":66,"categoryName":67,"taxonomyType":68,"taxonomyTypeDesc":69},[85,86,73,76,75,74,72],"fixture skill","fixture",{"skillNo":88,"name":89,"nameZh":6,"description":90,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":91,"categories":92,"keywords":94,"publishedAt":30},"01M6JVWE7C4FKEF3PGZVZ31FFG","third-party-skill-intake","Review third-party skill repos for format fit, provenance, and first-party adoption paths without treating them as direct harness dependencies.","https:\u002F\u002Fgithub.com\u002F45ck\u002Fskill-harness\u002Fblob\u002Fmain\u002Fplugins\u002Fskill-harness-helpers\u002Fskills\u002Fthird-party-skill-intake\u002FSKILL.md",[93],{"categoryNo":66,"categoryName":67,"taxonomyType":68,"taxonomyTypeDesc":69},[76,95,96,97,98,99,100,101,102,103,104,105,106,72,107,108,109],"party","third party skill intake","paths","adoption","first","provenance","format","direct","dependencies","third-party","as","fit","harness","review","repos",{"skillNo":111,"name":112,"nameZh":6,"description":113,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":114,"categories":115,"keywords":117,"publishedAt":30},"01M6JVW8YAFFNP0Q1XWXE1WH6G","loop","Handle \u002Floop-style requests for finding, adapting, drafting, and preparing bounded agent loops without treating external loop catalogs as authorization.","https:\u002F\u002Fgithub.com\u002F45ck\u002Fskill-harness\u002Fblob\u002Fmain\u002Fplugins\u002Fskill-harness-helpers\u002Fskills\u002Floop\u002FSKILL.md",[116],{"categoryNo":66,"categoryName":67,"taxonomyType":68,"taxonomyTypeDesc":69},[112,118,119,105,120,121,122,72],"bounded","authorization","style","loops","requests",{"skillNo":124,"name":125,"nameZh":6,"description":126,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":127,"categories":128,"keywords":129,"publishedAt":30},"01M6JVW3EWZ6DES0NQP7YMBZQS","beads-task-shaping","Convert analysis output into actionable Beads-ready work items with clear scope, priority, and acceptance checks.","https:\u002F\u002Fgithub.com\u002F45ck\u002Fskill-harness\u002Fblob\u002Fmain\u002Fplugins\u002Fskill-harness-helpers\u002Fskills\u002Fbeads-task-shaping\u002FSKILL.md",[],[130,131,132,133,134,135,136,137,138,139,140,141,142,143],"beads task shaping","task","shaping","beads","scope","acceptance","analysis","convert","work","ready","clear","actionable","output","with",{"skillNo":145,"name":146,"nameZh":6,"description":147,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":148,"categories":149,"keywords":151,"publishedAt":30},"01M6JVVYNGXYZTFT7YRCE6MME6","agent-selection","Select the best workflow agent for a task based on task shape, deliverables, and dependency packs.","https:\u002F\u002Fgithub.com\u002F45ck\u002Fskill-harness\u002Fblob\u002Fmain\u002Fplugins\u002Fskill-harness-helpers\u002Fskills\u002Fagent-selection\u002FSKILL.md",[150],{"categoryNo":66,"categoryName":67,"taxonomyType":68,"taxonomyTypeDesc":69},[152,153,154,155,156,131,157,72,158],"agent selection","selection","select","dependency","shape","deliverables","workflow"]