[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CDDYQA7774WS0JPW1T7DSS":3,"skill-same:01M6CDDYQA7774WS0JPW1T7DSS":62},{"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":31,"linkOnly":32,"markdownContent":33,"markdownBody":34,"frontMatter":35,"refName":38,"commitSha":39,"skillDirectory":40,"forksCount":41,"repositoryHtmlUrl":42,"repositoryHomepageUrl":43,"ownerHtmlUrl":44,"ownerBlogUrl":45,"ownerDescription":46,"updatedAt":47,"install":48,"resources":61},"01M6CDDYQA7774WS0JPW1T7DSS","best-of-n",null,"Generate a small set of independent candidate solutions in worktrees, judge them against one explicit rubric, and apply the winner only after PASS verification.","codewhale-hq\u002FCodewhale","codewhale-hq","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F326694313?v=4","01M6CDD9D70AD3631SMRJ7REW4","Codewhale","01M6CDD9H0VAXYCB2NGGPZC16K",41176,"MIT","https:\u002F\u002Fgithub.com\u002Fcodewhale-hq\u002FCodewhale\u002Fblob\u002Fmain\u002Fcrates\u002Fskills\u002Fassets\u002Fskills\u002Fbest-of-n\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30],"best of n","generate","verification","SET","rubric","only","worktrees","compare","judge","candidate","apply","solutions","2026-11-10 10:12:30",false,"---\nname: best-of-n\ndescription: Generate a small set of independent candidate solutions in worktrees, judge them against one explicit rubric, and apply the winner only after PASS verification.\nmetadata:\n  short-description: Compare independent candidates\n---\n\n# Best of N\n\nUse this skill when a consequential design, implementation, explanation, or\ndebugging task has several plausible solutions and comparison is worth the\nextra model work. It is the preferred ensemble pattern for high-stakes or\nambiguous approaches. Do not use it for a tiny change or when\nthe user has already chosen the approach.\n\n## Set The Tournament\n\n1. Define one task, one evidence packet, and one explicit scoring rubric before\n   launching candidates. Include correctness, fit to the request, simplicity,\n   risk, and verification.\n2. Choose `N` from 2 to 4 for a quick comparison (default 3). For an explicit\n   experimental search, use the Workflow search option: 2–16 live candidates,\n   with larger validated populations queued at the Workflow host's\n   concurrency gate rather than launched at once.\n3. Give every candidate the same task and rubric. Add only a candidate number;\n   do not steer candidates toward different conclusions unless diversity is an\n   explicit part of the request.\n4. Prefer a session goal (`create_goal` or active `\u002Fgoal`) when the tournament\n   spans more than one parent turn.\n\n## Generate Independently\n\nStart the candidates as parallel background `agent` workers and return agent_ids\nimmediately so the parent stays free. For proposals, reviews, or research, keep\nthem read-only:\n\n```json\n{\n  \"action\": \"start\",\n  \"name\": \"candidate_1\",\n  \"prompt\": \"Produce candidate 1 for the task below. Return the proposal, evidence, risks, and rubric self-score. Do not edit files.\\n\\n\u003CTASK AND RUBRIC>\",\n  \"type\": \"general\",\n  \"model_strength\": \"same\",\n  \"write_authority\": \"read_only\"\n}\n```\n\nLaunch the remaining candidates with the same contract, then use `agent` wait\nor completion events to collect every result. Do not show one candidate another\ncandidate's answer before generation finishes.\n\nWhen candidates must implement code, give each one:\n\n- `type: \"implement\"`\n- `worktree: true`\n- `write_authority: \"worktree_write\"`\n- the same bounded `write_roots` or `exact_files`\n\nNever run parallel writers in the parent checkout. Each candidate must return\nthe structured candidate contract (candidate id, hypothesis, paths, commands,\nself-verdict, risks, and artifact references). A self-verdict is evidence to\ninspect, not a hard-gate result.\n\nOptional diversity: pin different `model` \u002F Fleet `fleet_profile` values when\nthe project has multiple capable routes; otherwise keep model strength `same`.\n\n## Judge Once\n\nUse one read-only reviewer worker, or the parent when the result is small, to\nscore all candidates against the original rubric. The judge must:\n\n- cite evidence from each candidate rather than vote by style;\n- reject candidates that violate authority, scope, or verification gates;\n- treat candidate-reported commands and PASS claims as untrusted until replay;\n- name the winner and the decisive reasons;\n- identify useful pieces worth combining, if any;\n- say when the candidates are tied or all fail.\n\nDo not ask candidates to vote for themselves. Do not silently merge incompatible\napproaches into a new unreviewed solution.\n\n## Integrate Only After PASS\n\nFor proposal-only work, return the winning answer with a compact score summary.\nFor code work:\n\n1. Freeze the baseline, evaluator, hard gates, score rule, and authority before\n   a larger search admits candidates. Any evaluator change starts a revision.\n2. After a worker loses write authority, apply its patch to a clean baseline\n   and let the runtime—not that worker—run hard gates and scoring.\n3. Inspect the winning worktree diff and independently replay it on the clean\n   baseline. A different read-only model may look for gaming, but deterministic\n   tests remain the authority.\n4. Present the verified winner for review. Applying or merging is a separate,\n   explicit user action; `NONE` is valid when every candidate fails.\n5. Preserve losing and failed candidate receipts as useful negative results.\n\nThe checked-in `operate_best_of_n.workflow.js` recipe supports\n`strategy: \"search\"` for structured 2–16 candidate generation and review. It\ndoes **not** yet turn prompt-listed commands into hidden runtime gates. Do not\nadvertise those gates until a runtime evaluator host consumes a frozen search\nspec.\n\nStop early when one candidate reveals a hard constraint that invalidates the\ntournament. Report the negative result rather than spending the remaining\nbudget to manufacture variety.\n","# Best of N\n\nUse this skill when a consequential design, implementation, explanation, or\ndebugging task has several plausible solutions and comparison is worth the\nextra model work. It is the preferred ensemble pattern for high-stakes or\nambiguous approaches. Do not use it for a tiny change or when\nthe user has already chosen the approach.\n\n## Set The Tournament\n\n1. Define one task, one evidence packet, and one explicit scoring rubric before\n   launching candidates. Include correctness, fit to the request, simplicity,\n   risk, and verification.\n2. Choose `N` from 2 to 4 for a quick comparison (default 3). For an explicit\n   experimental search, use the Workflow search option: 2–16 live candidates,\n   with larger validated populations queued at the Workflow host's\n   concurrency gate rather than launched at once.\n3. Give every candidate the same task and rubric. Add only a candidate number;\n   do not steer candidates toward different conclusions unless diversity is an\n   explicit part of the request.\n4. Prefer a session goal (`create_goal` or active `\u002Fgoal`) when the tournament\n   spans more than one parent turn.\n\n## Generate Independently\n\nStart the candidates as parallel background `agent` workers and return agent_ids\nimmediately so the parent stays free. For proposals, reviews, or research, keep\nthem read-only:\n\n```json\n{\n  \"action\": \"start\",\n  \"name\": \"candidate_1\",\n  \"prompt\": \"Produce candidate 1 for the task below. Return the proposal, evidence, risks, and rubric self-score. Do not edit files.\\n\\n\u003CTASK AND RUBRIC>\",\n  \"type\": \"general\",\n  \"model_strength\": \"same\",\n  \"write_authority\": \"read_only\"\n}\n```\n\nLaunch the remaining candidates with the same contract, then use `agent` wait\nor completion events to collect every result. Do not show one candidate another\ncandidate's answer before generation finishes.\n\nWhen candidates must implement code, give each one:\n\n- `type: \"implement\"`\n- `worktree: true`\n- `write_authority: \"worktree_write\"`\n- the same bounded `write_roots` or `exact_files`\n\nNever run parallel writers in the parent checkout. Each candidate must return\nthe structured candidate contract (candidate id, hypothesis, paths, commands,\nself-verdict, risks, and artifact references). A self-verdict is evidence to\ninspect, not a hard-gate result.\n\nOptional diversity: pin different `model` \u002F Fleet `fleet_profile` values when\nthe project has multiple capable routes; otherwise keep model strength `same`.\n\n## Judge Once\n\nUse one read-only reviewer worker, or the parent when the result is small, to\nscore all candidates against the original rubric. The judge must:\n\n- cite evidence from each candidate rather than vote by style;\n- reject candidates that violate authority, scope, or verification gates;\n- treat candidate-reported commands and PASS claims as untrusted until replay;\n- name the winner and the decisive reasons;\n- identify useful pieces worth combining, if any;\n- say when the candidates are tied or all fail.\n\nDo not ask candidates to vote for themselves. Do not silently merge incompatible\napproaches into a new unreviewed solution.\n\n## Integrate Only After PASS\n\nFor proposal-only work, return the winning answer with a compact score summary.\nFor code work:\n\n1. Freeze the baseline, evaluator, hard gates, score rule, and authority before\n   a larger search admits candidates. Any evaluator change starts a revision.\n2. After a worker loses write authority, apply its patch to a clean baseline\n   and let the runtime—not that worker—run hard gates and scoring.\n3. Inspect the winning worktree diff and independently replay it on the clean\n   baseline. A different read-only model may look for gaming, but deterministic\n   tests remain the authority.\n4. Present the verified winner for review. Applying or merging is a separate,\n   explicit user action; `NONE` is valid when every candidate fails.\n5. Preserve losing and failed candidate receipts as useful negative results.\n\nThe checked-in `operate_best_of_n.workflow.js` recipe supports\n`strategy: \"search\"` for structured 2–16 candidate generation and review. It\ndoes **not** yet turn prompt-listed commands into hidden runtime gates. Do not\nadvertise those gates until a runtime evaluator host consumes a frozen search\nspec.\n\nStop early when one candidate reveals a hard constraint that invalidates the\ntournament. Report the negative result rather than spending the remaining\nbudget to manufacture variety.\n",{"name":5,"metadata":36,"description":7},{"short-description":37},"Compare independent candidates","main","61e914bfdde385343e409ff1119ad49d753823e0","crates\u002Fskills\u002Fassets\u002Fskills\u002Fbest-of-n",3571,"https:\u002F\u002Fgithub.com\u002Fcodewhale-hq\u002FCodewhale","https:\u002F\u002Fcodewhale.net\u002F","https:\u002F\u002Fgithub.com\u002Fcodewhale-hq","https:\u002F\u002Fcodewhale.net","Open-source coding agent for your terminal. Works with the model provider you choose.","2026-11-12 02:35:28",{"source":8,"skillName":5,"commands":49,"prompt":59,"zipAvailable":60},[50,53,56],{"tool":51,"command":52},"npx","npx skills add codewhale-hq\u002FCodewhale --skill best-of-n",{"tool":54,"command":55},"bunx","bunx skills add codewhale-hq\u002FCodewhale --skill best-of-n",{"tool":57,"command":58},"pnpm","pnpm dlx skills add codewhale-hq\u002FCodewhale --skill best-of-n","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fcodewhale-hq\u002FCodewhale\u002Fblob\u002Fmain\u002Fcrates\u002Fskills\u002Fassets\u002Fskills\u002Fbest-of-n\u002FSKILL.md",true,[],[63,90,119,139,152,159],{"skillNo":64,"name":65,"nameZh":6,"description":66,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":67,"categories":68,"keywords":69,"publishedAt":31},"01M6CDJRMPR8FX1WVFP94PGDMD","gh-find-prs","Survey the open Codewhale PR and issue queue read-only: fetch each item, check it against current code, and produce one coverage and disposition matrix with cited evidence and credit owed.","https:\u002F\u002Fgithub.com\u002Fcodewhale-hq\u002FCodewhale\u002Fblob\u002Fmain\u002Fdocs\u002Fskills\u002Fgh-find-prs\u002FSKILL.md",[],[70,71,72,73,74,75,76,77,78,79,80,81,82,83,24,84,85,86,87,88,89],"find","gh find prs","gh","prs","produce","with","read-only","matrix","codewhale","queue","issue","read","check","code","open","survey","pr","evidence","fetch","coverage",{"skillNo":91,"name":92,"nameZh":6,"description":93,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":94,"categories":95,"keywords":101,"publishedAt":31},"01M6CDJP0ZYMQNA6AN028X7A96","gh-file-issue","Use when filing a new Codewhale GitHub issue: turn a bug or idea into a well-formed, actionable issue with repro, acceptance criteria, labels, and milestone.","https:\u002F\u002Fgithub.com\u002Fcodewhale-hq\u002FCodewhale\u002Fblob\u002Fmain\u002Fdocs\u002Fskills\u002Fgh-file-issue\u002FSKILL.md",[96],{"categoryNo":97,"categoryName":98,"taxonomyType":99,"taxonomyTypeDesc":100},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[102,72,103,104,80,105,106,107,108,109,110,111,112,78,113,114,115,75,116,117,118],"file issue","file","gh file issue","milestone","idea","filing","when","new","labels","acceptance","actionable","bug","github issue","github","acceptance criteria","repro","use",{"skillNo":120,"name":121,"nameZh":6,"description":122,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":123,"categories":124,"keywords":126,"publishedAt":31},"01M6CDJJZB0G4XHWWBD12S990C","gh-close-issues","Close resolved Codewhale issues only after verifying the landed behavior: Refs #N per landing, Fixes #N only when the reporter's scenario was reproduced, closure at the release step or on the reporter's confirmation, always with a crediting comment.","https:\u002F\u002Fgithub.com\u002Fcodewhale-hq\u002FCodewhale\u002Fblob\u002Fmain\u002Fdocs\u002Fskills\u002Fgh-close-issues\u002FSKILL.md",[125],{"categoryNo":97,"categoryName":98,"taxonomyType":99,"taxonomyTypeDesc":100},[127,128,129,72,130,131,132,133,75,108,134,135,78,136,137,24,138],"gh close issues","close","issues","at","release","reporter","scenario","closure","fixes","behavior","confirmation","landing",{"skillNo":140,"name":141,"nameZh":6,"description":142,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":143,"categories":144,"keywords":146,"publishedAt":31},"01M6CDJGR688JJVTG0A1ETBJGQ","gh-assign-issues","Use to assign GitHub issues to a milestone and\u002For owners in bulk, verifying each.","https:\u002F\u002Fgithub.com\u002Fcodewhale-hq\u002FCodewhale\u002Fblob\u002Fmain\u002Fdocs\u002Fskills\u002Fgh-assign-issues\u002FSKILL.md",[145],{"categoryNo":97,"categoryName":98,"taxonomyType":99,"taxonomyTypeDesc":100},[147,72,129,148,118,115,105,149,150,151],"gh assign issues","assign","bulk","github issues","owners",{"skillNo":153,"name":154,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":155,"categories":156,"keywords":158,"publishedAt":31},"01M6CDJEBMKBAGTBG18N5YJNSE","feedback","https:\u002F\u002Fgithub.com\u002Fcodewhale-hq\u002FCodewhale\u002Fblob\u002Fmain\u002Fdocs\u002Fskills\u002Ffeedback\u002FSKILL.md",[157],{"categoryNo":97,"categoryName":98,"taxonomyType":99,"taxonomyTypeDesc":100},[154],{"skillNo":160,"name":161,"nameZh":6,"description":162,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":163,"categories":164,"keywords":166,"publishedAt":31},"01M6CDJBRQ86PP9XNXQMRB1CGX","cw-slice","Use before writing code for any Codewhale feature, upgrade, or refactor: find the existing owner of the behavior, bound the change to one reviewable slice, and fix the evidence bar before you start.","https:\u002F\u002Fgithub.com\u002Fcodewhale-hq\u002FCodewhale\u002Fblob\u002Fmain\u002Fdocs\u002Fskills\u002Fcw-slice\u002FSKILL.md",[165],{"categoryNo":97,"categoryName":98,"taxonomyType":99,"taxonomyTypeDesc":100},[167,168,169,170,171,172,173,174,175,78,176,136,70,177,83,118,178,179,87],"slice","cw slice","start","bar","you","Existing","upgrade","for","feature","refactor","change","writing","fix"]