[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M7EB44VCMMXYSRE5W92FEFE1":3,"skill-same:01M7EB44VCMMXYSRE5W92FEFE1":44},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":18,"linkOnly":19,"markdownContent":20,"markdownBody":21,"frontMatter":22,"refName":23,"commitSha":24,"skillDirectory":25,"forksCount":26,"repositoryHtmlUrl":27,"repositoryHomepageUrl":6,"ownerHtmlUrl":28,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":29,"install":30,"resources":43},"01M7EB44VCMMXYSRE5W92FEFE1","review-change",null,"Review a change in this repository against its invariants, specifications, tests, and documentation contract.","BiscuitBin\u002Fknarr","BiscuitBin","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F345587809?v=4","01M7EB2YJH5XDMD513JY25JRH2","01M7EB2YKMFCPW7ATTQ8TWB2WD",1,"Apache-2.0","https:\u002F\u002Fgithub.com\u002FBiscuitBin\u002Fknarr\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Freview-change\u002FSKILL.md",[],[],"2026-11-15 14:19:17",false,"---\nname: review-change\ndescription: Review a change in this repository against its invariants, specifications, tests, and documentation contract.\n---\n\n# Review a change\n\n1. Read `AGENTS.md` and the specification module under `docs\u002Fspecs\u002F` the change touches. Review the whole diff, not the summary of it.\n2. Check the invariants in `AGENTS.md` one at a time. Specs decide behaviour; effects behind sans-IO boundaries; FFI only in named `*_ffi.erl` modules; every process supervised; the controller writes only the annotations it owns, never replica counts, never the pod template, never a pod past `deletionTimestamp`.\n3. Check the change against the specification it implements. A rule, guard or threshold decided in code rather than in `docs\u002Fspecs\u002F` is a finding even when the behaviour looks right.\n4. Check the test evidence. A test that only asserts a function was called is not evidence; a test that supplies observations and a clock to the decision logic and asserts the decision it produced is. An adapter without a test that proves its HTTP or Kubernetes behaviour is a finding.\n5. Check the boundaries. Nothing in the decision logic may read a clock, the network or the environment on its own, and no test may replace an injected effect with a global.\n6. Check documentation ownership. A durable fact belongs on the page that owns its topic in `docs\u002Fmanifest.yml`, added there rather than restated.\n7. Check scope. Unrelated refactors, new dependencies, moved pins and speculative abstractions are findings in themselves.\n8. Report findings by severity with `file:line`, what breaks, and the smallest fix. Run `just check` before concluding.\n","# Review a change\n\n1. Read `AGENTS.md` and the specification module under `docs\u002Fspecs\u002F` the change touches. Review the whole diff, not the summary of it.\n2. Check the invariants in `AGENTS.md` one at a time. Specs decide behaviour; effects behind sans-IO boundaries; FFI only in named `*_ffi.erl` modules; every process supervised; the controller writes only the annotations it owns, never replica counts, never the pod template, never a pod past `deletionTimestamp`.\n3. Check the change against the specification it implements. A rule, guard or threshold decided in code rather than in `docs\u002Fspecs\u002F` is a finding even when the behaviour looks right.\n4. Check the test evidence. A test that only asserts a function was called is not evidence; a test that supplies observations and a clock to the decision logic and asserts the decision it produced is. An adapter without a test that proves its HTTP or Kubernetes behaviour is a finding.\n5. Check the boundaries. Nothing in the decision logic may read a clock, the network or the environment on its own, and no test may replace an injected effect with a global.\n6. Check documentation ownership. A durable fact belongs on the page that owns its topic in `docs\u002Fmanifest.yml`, added there rather than restated.\n7. Check scope. Unrelated refactors, new dependencies, moved pins and speculative abstractions are findings in themselves.\n8. Report findings by severity with `file:line`, what breaks, and the smallest fix. Run `just check` before concluding.\n",{"name":5,"description":7},"main","d7cf7b41416446f1924f144702b74c385471561d",".agents\u002Fskills\u002Freview-change",0,"https:\u002F\u002Fgithub.com\u002FBiscuitBin\u002Fknarr","https:\u002F\u002Fgithub.com\u002FBiscuitBin","2026-11-15 07:44:15",{"source":8,"skillName":5,"commands":31,"prompt":41,"zipAvailable":42},[32,35,38],{"tool":33,"command":34},"npx","npx skills add BiscuitBin\u002Fknarr --skill review-change",{"tool":36,"command":37},"bunx","bunx skills add BiscuitBin\u002Fknarr --skill review-change",{"tool":39,"command":40},"pnpm","pnpm dlx skills add BiscuitBin\u002Fknarr --skill review-change","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FBiscuitBin\u002Fknarr\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Freview-change\u002FSKILL.md",true,[],[45,52,59,66,73,80],{"skillNo":46,"name":47,"nameZh":6,"description":48,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":49,"categories":50,"keywords":51,"publishedAt":18},"01M7EB5YS84RAQZ13PDA1E6GD9","witness","Independently witness that an Allium loop's convergence claim is true and was reached honestly. Use when the user wants to verify a loop's self-report, confirm tests really pass and no generated test was weakened, produce a convergence certificate or witness record, gate CI on a trustworthy signal, or check that an autonomous run did not cheat its way to green.","https:\u002F\u002Fgithub.com\u002FBiscuitBin\u002Fknarr\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fwitness\u002FSKILL.md",[],[],{"skillNo":53,"name":54,"nameZh":6,"description":55,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":56,"categories":57,"keywords":58,"publishedAt":18},"01M7EB5SXJ8DKATBNY3GJM3HE9","weed","Weed the Allium garden. Find where Allium specifications and implementation code have diverged, and help resolve the divergences. Use when the user wants to check spec-code alignment, compare specs against implementation, audit for spec drift or violations, sync specs with code or code with specs, or verify whether the implementation matches what the spec says.","https:\u002F\u002Fgithub.com\u002FBiscuitBin\u002Fknarr\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fweed\u002FSKILL.md",[],[],{"skillNo":60,"name":61,"nameZh":6,"description":62,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":63,"categories":64,"keywords":65,"publishedAt":18},"01M7EB5N58XB3XF5TNMHBDK0R7","tend","Tend the Allium garden. Use when the user wants to write, edit, update, add to, improve, clarify, refine, restructure, fix or migrate Allium specs. Covers adding entities, rules, triggers, surfaces and contracts, fixing syntax or validation errors, renaming or refactoring within specs, migrating specs to a new language version, and translating requirements into well-formed specifications. Pushes back on vague requirements.","https:\u002F\u002Fgithub.com\u002FBiscuitBin\u002Fknarr\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Ftend\u002FSKILL.md",[],[],{"skillNo":67,"name":68,"nameZh":6,"description":69,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":70,"categories":71,"keywords":72,"publishedAt":18},"01M7EB5KEEA1DJ28P9QH4E8JSN","spec-change","Change an Allium specification and carry the change through the tests and the implementation.","https:\u002F\u002Fgithub.com\u002FBiscuitBin\u002Fknarr\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fspec-change\u002FSKILL.md",[],[],{"skillNo":74,"name":75,"nameZh":6,"description":76,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":77,"categories":78,"keywords":79,"publishedAt":18},"01M7EB5HPV64VRKGVKQ6B4WF8G","review-docs","Add or revise a handbook page so it satisfies the documentation contract and stays reachable.","https:\u002F\u002Fgithub.com\u002FBiscuitBin\u002Fknarr\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Freview-docs\u002FSKILL.md",[],[],{"skillNo":81,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":82,"categories":83,"keywords":84,"publishedAt":18},"01M7EB5FMQ5JXFDKEE6VMHK781","https:\u002F\u002Fgithub.com\u002FBiscuitBin\u002Fknarr\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Freview-change\u002FSKILL.md",[],[]]