[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M7ERNSEBPMC9ZNPPRFSNFP8J":3,"skill-same:01M7ERNSEBPMC9ZNPPRFSNFP8J":51},{"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":19,"linkOnly":20,"markdownContent":21,"markdownBody":22,"frontMatter":23,"refName":24,"commitSha":25,"skillDirectory":26,"forksCount":14,"repositoryHtmlUrl":27,"repositoryHomepageUrl":6,"ownerHtmlUrl":28,"ownerBlogUrl":29,"ownerDescription":6,"updatedAt":30,"install":31,"resources":44},"01M7ERNSEBPMC9ZNPPRFSNFP8J","skill-validate",null,"Use when a SKILL.md is about to ship or was just edited, when a skill is reviewed or audited, when a skill seems ignored, skipped or misread by agents, or when the user says \"validate this skill\", \"lint the skill\", \"check my skill\", \"is this skill any good\".","jeancarlos\u002Fcode-jig","jeancarlos","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F713484?v=4","01M7ERGYQQEYJTXG5GXDY9SZVZ","Jean Souza","01M7ERGYRCBCN8GKJFCGEKQ2M1",0,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fjeancarlos\u002Fcode-jig\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fgolden\u002Fenterprise\u002Fskills\u002Fskill-validate\u002FSKILL.md",[],[],"2026-11-15 14:19:17",false,"---\nname: skill-validate\ndescription: Use when a SKILL.md is about to ship or was just edited, when a skill is reviewed or audited, when a skill seems ignored, skipped or misread by agents, or when the user says \"validate this skill\", \"lint the skill\", \"check my skill\", \"is this skill any good\".\n---\n\n# Validate a skill\n\nThree passes. A script decides everything a pattern can decide; a reviewer from another model family decides the rest, in a fresh context, because the author of a skill already knows what it meant to say.\n\n## Pass 1: mechanical\n\n```sh\nharness lint-skill path\u002Fto\u002Fskill-dir\n```\n\n`FAIL` breaks loading or a hard rule and exits 1. `WARN` is a judgement call. Run pass 2 whatever pass 1 says: its FAILs go in the report with everything else.\n\n## Pass 2: judgement\n\nThis skill asks for a subagent: call `spawn_agent` with `agent_type` `reviewer` and a message holding the full SKILL.md text and this rubric, then wait for it. Do not fork this conversation into it, and do not judge the rubric yourself instead.\n\n| # | Rule |\n|---|---|\n| 1 | The description states triggering conditions only. A description that summarises the workflow becomes a shortcut agents take instead of reading the body. |\n| 2 | Every rule the skill enforces is reachable from the body, not only from the description. |\n| 3 | Guidance matches the failure: a rule broken under pressure needs a prohibition and the excuses it answers; wrong-shaped output needs a recipe naming the parts in order; an omitted element needs a slot in a template. |\n| 4 | No clause that reopens a rule (\"unless it matters\", \"where appropriate\"). |\n| 5 | No narrative: no session logs, dated stories, \"we found this once\". |\n| 6 | Reference an agent can act on, not the author's reasoning. |\n| 7 | One worked example, not the same pattern repeated per language. |\n| 8 | Flowcharts only for non-obvious decisions; tables and lists carry reference. |\n| 9 | Words a searching agent would type appear early: error strings, symptoms, tool and command names. |\n| 10 | Heavy reference and scripts sit in their own files, named from SKILL.md. |\n\nRequire one line per rule, `N | PASS or FAIL | shortest quote that decides it | one-line fix`, then `VERDICT: ship` or `VERDICT: fix N, N`. Prose instead of rows means the contract was not stated firmly enough: restate it and spawn again.\n\n## Pass 3: Codex runs it\n\nA skill that reads well can still name tools Codex does not have, or never trigger. After pass 2 says `VERDICT: ship` and the skill is installed (`harness install`); when pass 2 says fix, skip pass 3 and report it as skipped because pass 2 failed:\n\n```sh\nharness skill-check path\u002Fto\u002Fskill-dir --review --live\n```\n\nIt needs an `evals.toml` next to SKILL.md with at least one `[[case]]` (`prompt`, and any of `commands`, `output`, `spawns`, `fixture`, `commits`, `sandbox`). It runs a Codex review on the `review` tier, then each case through `codex exec`, and writes `.skill-check` when everything passes. In the codex-harness repository that stamp is required in the same commit as the skill.\n\n## Report\n\nMerge all three passes into one table: every FAIL and WARN, every rubric row, the Codex review verdict and each live case. Validation edits nothing in the skill; the only file it writes is the `.skill-check` stamp from pass 3. When the user asks for the fixes, apply them and run all three passes again.\n\n## Common mistakes\n\n| Mistake | Instead |\n|---|---|\n| Judging in the context that wrote the skill | Pass 2 runs in a fresh `reviewer`. |\n| Treating every WARN as a defect | A reference skill may be long; the word count prompts a split, it does not demand one. |\n| Accepting \"looks good\" | The contract is rows with quotes. No quote means it was not read. |\n| Skipping pass 2 | No pattern can see a description that summarises the workflow, the defect that costs the most. |\n","# Validate a skill\n\nThree passes. A script decides everything a pattern can decide; a reviewer from another model family decides the rest, in a fresh context, because the author of a skill already knows what it meant to say.\n\n## Pass 1: mechanical\n\n```sh\nharness lint-skill path\u002Fto\u002Fskill-dir\n```\n\n`FAIL` breaks loading or a hard rule and exits 1. `WARN` is a judgement call. Run pass 2 whatever pass 1 says: its FAILs go in the report with everything else.\n\n## Pass 2: judgement\n\nThis skill asks for a subagent: call `spawn_agent` with `agent_type` `reviewer` and a message holding the full SKILL.md text and this rubric, then wait for it. Do not fork this conversation into it, and do not judge the rubric yourself instead.\n\n| # | Rule |\n|---|---|\n| 1 | The description states triggering conditions only. A description that summarises the workflow becomes a shortcut agents take instead of reading the body. |\n| 2 | Every rule the skill enforces is reachable from the body, not only from the description. |\n| 3 | Guidance matches the failure: a rule broken under pressure needs a prohibition and the excuses it answers; wrong-shaped output needs a recipe naming the parts in order; an omitted element needs a slot in a template. |\n| 4 | No clause that reopens a rule (\"unless it matters\", \"where appropriate\"). |\n| 5 | No narrative: no session logs, dated stories, \"we found this once\". |\n| 6 | Reference an agent can act on, not the author's reasoning. |\n| 7 | One worked example, not the same pattern repeated per language. |\n| 8 | Flowcharts only for non-obvious decisions; tables and lists carry reference. |\n| 9 | Words a searching agent would type appear early: error strings, symptoms, tool and command names. |\n| 10 | Heavy reference and scripts sit in their own files, named from SKILL.md. |\n\nRequire one line per rule, `N | PASS or FAIL | shortest quote that decides it | one-line fix`, then `VERDICT: ship` or `VERDICT: fix N, N`. Prose instead of rows means the contract was not stated firmly enough: restate it and spawn again.\n\n## Pass 3: Codex runs it\n\nA skill that reads well can still name tools Codex does not have, or never trigger. After pass 2 says `VERDICT: ship` and the skill is installed (`harness install`); when pass 2 says fix, skip pass 3 and report it as skipped because pass 2 failed:\n\n```sh\nharness skill-check path\u002Fto\u002Fskill-dir --review --live\n```\n\nIt needs an `evals.toml` next to SKILL.md with at least one `[[case]]` (`prompt`, and any of `commands`, `output`, `spawns`, `fixture`, `commits`, `sandbox`). It runs a Codex review on the `review` tier, then each case through `codex exec`, and writes `.skill-check` when everything passes. In the codex-harness repository that stamp is required in the same commit as the skill.\n\n## Report\n\nMerge all three passes into one table: every FAIL and WARN, every rubric row, the Codex review verdict and each live case. Validation edits nothing in the skill; the only file it writes is the `.skill-check` stamp from pass 3. When the user asks for the fixes, apply them and run all three passes again.\n\n## Common mistakes\n\n| Mistake | Instead |\n|---|---|\n| Judging in the context that wrote the skill | Pass 2 runs in a fresh `reviewer`. |\n| Treating every WARN as a defect | A reference skill may be long; the word count prompts a split, it does not demand one. |\n| Accepting \"looks good\" | The contract is rows with quotes. No quote means it was not read. |\n| Skipping pass 2 | No pattern can see a description that summarises the workflow, the defect that costs the most. |\n",{"name":5,"description":7},"main","a2dc094fb6f0ff71b419eb83322592dc2205a886","tests\u002Ffixtures\u002Fgolden\u002Fenterprise\u002Fskills\u002Fskill-validate","https:\u002F\u002Fgithub.com\u002Fjeancarlos\u002Fcode-jig","https:\u002F\u002Fgithub.com\u002Fjeancarlos","jeansouza.dev","2026-11-14 06:47:58",{"source":8,"skillName":5,"commands":32,"prompt":42,"zipAvailable":43},[33,36,39],{"tool":34,"command":35},"npx","npx skills add jeancarlos\u002Fcode-jig --skill skill-validate",{"tool":37,"command":38},"bunx","bunx skills add jeancarlos\u002Fcode-jig --skill skill-validate",{"tool":40,"command":41},"pnpm","pnpm dlx skills add jeancarlos\u002Fcode-jig --skill skill-validate","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fjeancarlos\u002Fcode-jig\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fgolden\u002Fenterprise\u002Fskills\u002Fskill-validate\u002FSKILL.md",true,[45],{"path":46,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":49,"sourceHtmlUrl":50},".codex-harness","OTHER","其他",6,"https:\u002F\u002Fgithub.com\u002Fjeancarlos\u002Fcode-jig\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fgolden\u002Fenterprise\u002Fskills\u002Fskill-validate\u002F.codex-harness",[52,59,64,71,78,85],{"skillNo":53,"name":54,"nameZh":6,"description":55,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":56,"categories":57,"keywords":58,"publishedAt":19},"01M7ERQ66VWCGCJ3QC69ESMMK4","web-consensus","Use when a question has to be settled against the live web rather than from memory - researching a topic, proving or disproving a claim, checking whether something is still true, a sourced second opinion on a factual question - or when the user says \"research\", \"prove it\", \"with sources\", \"check if this is true\", \"still accurate?\".","https:\u002F\u002Fgithub.com\u002Fjeancarlos\u002Fcode-jig\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fgolden\u002Fpersonal\u002Fskills\u002Fweb-consensus\u002FSKILL.md",[],[],{"skillNo":60,"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":61,"categories":62,"keywords":63,"publishedAt":19},"01M7ERQ34BFPG2AZKND979D6MM","https:\u002F\u002Fgithub.com\u002Fjeancarlos\u002Fcode-jig\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fgolden\u002Fpersonal\u002Fskills\u002Fskill-validate\u002FSKILL.md",[],[],{"skillNo":65,"name":66,"nameZh":6,"description":67,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":68,"categories":69,"keywords":70,"publishedAt":19},"01M7ERPZ4AKH7RW86WJAV07N05","regression-tests","Use when fixing a bug, changing behaviour or adding a feature in code that has tests, or when the user asks whether a change is covered by tests, wants regression tests, or wants coverage of the changed lines.","https:\u002F\u002Fgithub.com\u002Fjeancarlos\u002Fcode-jig\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fgolden\u002Fpersonal\u002Fskills\u002Fregression-tests\u002FSKILL.md",[],[],{"skillNo":72,"name":73,"nameZh":6,"description":74,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":75,"categories":76,"keywords":77,"publishedAt":19},"01M7ERPW6EKD7SA8CMTBFQB7D4","redacao","Use when writing, rewriting or editing a technical article or blog post in Portuguese, or when the user says \"escreve um artigo\", \"reescreve o post\", \"redação\", \"pauta\", \"revisa o texto\", \"tira a cara de IA\".","https:\u002F\u002Fgithub.com\u002Fjeancarlos\u002Fcode-jig\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fgolden\u002Fpersonal\u002Fskills\u002Fredacao\u002FSKILL.md",[],[],{"skillNo":79,"name":80,"nameZh":6,"description":81,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":82,"categories":83,"keywords":84,"publishedAt":19},"01M7ERPRV0XHDWATDY4M9XMF5C","improve","Use when the user asks to improve the harness, its rules, Guardian policy, skills or knowledge from experience on this machine, or says \"remember this for next time\", \"make this a rule\", \"teach the harness\".","https:\u002F\u002Fgithub.com\u002Fjeancarlos\u002Fcode-jig\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fgolden\u002Fpersonal\u002Fskills\u002Fimprove\u002FSKILL.md",[],[],{"skillNo":86,"name":87,"nameZh":6,"description":88,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":89,"categories":90,"keywords":91,"publishedAt":19},"01M7ERPNXES66J7MJSP8W8A61X","hld-trace","Use when the user asks whether the code follows the high-level design (HLD), which requirements have tests, which are untested, or wants tests linked to requirement or work item IDs.","https:\u002F\u002Fgithub.com\u002Fjeancarlos\u002Fcode-jig\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fgolden\u002Fpersonal\u002Fskills\u002Fhld-trace\u002FSKILL.md",[],[]]