[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M79D211YKX4ZR4ZXDQDCC6SW":3,"skill-same:01M79D211YKX4ZR4ZXDQDCC6SW":47},{"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":24,"commitSha":25,"skillDirectory":26,"forksCount":27,"repositoryHtmlUrl":28,"repositoryHomepageUrl":29,"ownerHtmlUrl":30,"ownerBlogUrl":29,"ownerDescription":31,"updatedAt":32,"install":33,"resources":46},"01M79D211YKX4ZR4ZXDQDCC6SW","best-of-n",null,"Sample several candidate answers in parallel, judge them against stated criteria, and present the winner with the runners-up kept one click away. Confirms the count and the criteria first because each candidate is a separate model call. Use when the user wants options rather than one answer. Triggers include \"give me N options\", \"give me 3 versions\", \"best of\", \"try a few versions\", \"sample and pick\", \"generate a few and choose\", \"which of these is best\", \"draft some variations\".","PersonalClaw\u002FPersonalClaw","PersonalClaw","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F306824595?v=4","01M79D0KNQCPQXVH30C5PREVCW","01M79D0KPT5XDNEAW87TEYQW3V",9,"MIT","https:\u002F\u002Fgithub.com\u002FPersonalClaw\u002FPersonalClaw\u002Fblob\u002Fmain\u002Fsrc\u002Fpersonalclaw\u002Fskills\u002Fbundled\u002Fbest-of-n\u002FSKILL.md",[],[],"2026-11-15 14:19:17",false,"---\nname: best-of-n\ndescription: Sample several candidate answers in parallel, judge them against stated criteria, and present the winner with the runners-up kept one click away. Confirms the count and the criteria first because each candidate is a separate model call. Use when the user wants options rather than one answer. Triggers include \"give me N options\", \"give me 3 versions\", \"best of\", \"try a few versions\", \"sample and pick\", \"generate a few and choose\", \"which of these is best\", \"draft some variations\".\ntriggers: best of, give me options, give me versions, versions and pick, few versions, sample and pick, generate a few, pick the best, which is best, draft variations, some variations, few options\n---\n\n## Activation Behavior\n\n**Explicit triggers** (the user has already asked for several candidates):\n\n- \"give me 3 versions and pick the best\", \"best of 5\", \"sample and pick\", \"generate a\n  few options and choose\"\n- Activate immediately, then run the confirmation gate below for the two things you\n  cannot guess: the count and the criteria.\n\n**Ambiguous triggers** (the user might want one good answer, not a slate):\n\n- \"try a few versions\", \"draft some variations\", \"which of these is best\", \"give me\n  options\"\n- Offer the choice BEFORE spending anything:\n  > Want me to sample a few candidates and judge them (each candidate is its own model\n  > call), or just write you one answer?\n- If they pick one answer: answer normally. No skill mode, no sampling.\n\n## The confirmation gate (never skip the cost line)\n\nBest-of-N costs **N model calls plus one judge pass per surviving candidate**. That is\nthe whole trade, so say it out loud and get both inputs:\n\n> Sampling 3 candidates — that's **3 model calls** (plus judging), not one. Judging on:\n> *specific, under 60 characters, no hype*. Want a different count (max 5) or different\n> criteria?\n\n- **N is capped at 5.** If the user asks for more, say the cap and sample 5.\n- **Criteria are what \"best\" means for this task.** If the user has not said, propose\n  criteria in the gate rather than inventing them silently — a slate judged on an\n  unstated bar is a coin flip with extra steps.\n- One round trip is enough. Do not interrogate; propose sensible defaults and let the\n  user correct them.\n\n## Running it\n\nCall the `best_of_n` tool once with `prompt` (the ask, identical for every candidate),\n`n`, and `criteria`. The tool fans the N calls out in parallel — one slate costs roughly\none call's wall time, N calls' spend — and returns JSON:\n\n```\n{\"winner\": \"...\", \"winner_idx\": 1, \"candidates\": [{\"idx\", \"temperature\", \"text\", \"error\"}],\n \"judgments\": [{\"idx\", \"score\", \"reason\"}], \"judged\": true, \"n\": 3, \"note\": \"\"}\n```\n\nDo NOT re-sample to \"double-check\", and do not run it twice for the same ask. The slate\nyou already have is the slate.\n\n## Presenting the result\n\nLead with the winner as a normal answer — the user asked for a good answer, not a\nreport. Then keep the slate one click away:\n\n```markdown\n\u003Cwinner text, presented as the answer>\n\n\u003Cdetails>\n\u003Csummary>Runners-up (2) — say \"use #2\" to switch\u003C\u002Fsummary>\n\n**#1** — score 3.5 · *reason from the judge*\n\n\u003Ccandidate text>\n\n**#3** — score 4.0 · *reason from the judge*\n\n\u003Ccandidate text>\n\n\u003C\u002Fdetails>\n```\n\nNumbering rules, because \"use #2\" has to actually work:\n\n- Number candidates **#1…#N in slate order**: `#k` is the candidate whose `idx` is\n  `k - 1`. Never renumber by score — the user's \"#2\" must mean the same candidate in\n  your list and in the tool result.\n- Mark the winner in the visible answer (e.g. \"picked #2 of 3\"), so the numbers the\n  user sees are the numbers they can choose from.\n- When the user says **\"use #2\"** (or \"go with the second one\"), reply with that\n  candidate's text **verbatim from the slate you already have**. Do not re-sample, do\n  not paraphrase, do not re-judge. If they then ask you to edit it, edit that text.\n\n## Degraded cases — report them, never paper over them\n\n- **`judged: false`** — the judge was unavailable. Say so: \"the judge wasn't available,\n  so this is the first candidate, unranked\" and still show the slate.\n- **Some candidates carry an `error`** — the slate is narrower than N. Say how many\n  returned (\"2 of 3 came back\") and judge only those. Never invent a missing candidate.\n- **`winner: null`** — every sample failed. Say that plainly and offer to answer\n  directly or retry. Do not present one of the errors as an answer.\n\n## When NOT to use this\n\n- Anything with one correct answer (a fact, a calculation, a file's contents). N samples\n  of a lookup is N× the cost for the same answer.\n- Long-running or tool-using work — this is one-shot text sampling, not delegation. Use\n  the delegation skill and subagents for work that needs tools.\n- Inside a loop over many items. One slate per user ask; a slate per item multiplies the\n  spend by N without anyone noticing.\n","## Activation Behavior\n\n**Explicit triggers** (the user has already asked for several candidates):\n\n- \"give me 3 versions and pick the best\", \"best of 5\", \"sample and pick\", \"generate a\n  few options and choose\"\n- Activate immediately, then run the confirmation gate below for the two things you\n  cannot guess: the count and the criteria.\n\n**Ambiguous triggers** (the user might want one good answer, not a slate):\n\n- \"try a few versions\", \"draft some variations\", \"which of these is best\", \"give me\n  options\"\n- Offer the choice BEFORE spending anything:\n  > Want me to sample a few candidates and judge them (each candidate is its own model\n  > call), or just write you one answer?\n- If they pick one answer: answer normally. No skill mode, no sampling.\n\n## The confirmation gate (never skip the cost line)\n\nBest-of-N costs **N model calls plus one judge pass per surviving candidate**. That is\nthe whole trade, so say it out loud and get both inputs:\n\n> Sampling 3 candidates — that's **3 model calls** (plus judging), not one. Judging on:\n> *specific, under 60 characters, no hype*. Want a different count (max 5) or different\n> criteria?\n\n- **N is capped at 5.** If the user asks for more, say the cap and sample 5.\n- **Criteria are what \"best\" means for this task.** If the user has not said, propose\n  criteria in the gate rather than inventing them silently — a slate judged on an\n  unstated bar is a coin flip with extra steps.\n- One round trip is enough. Do not interrogate; propose sensible defaults and let the\n  user correct them.\n\n## Running it\n\nCall the `best_of_n` tool once with `prompt` (the ask, identical for every candidate),\n`n`, and `criteria`. The tool fans the N calls out in parallel — one slate costs roughly\none call's wall time, N calls' spend — and returns JSON:\n\n```\n{\"winner\": \"...\", \"winner_idx\": 1, \"candidates\": [{\"idx\", \"temperature\", \"text\", \"error\"}],\n \"judgments\": [{\"idx\", \"score\", \"reason\"}], \"judged\": true, \"n\": 3, \"note\": \"\"}\n```\n\nDo NOT re-sample to \"double-check\", and do not run it twice for the same ask. The slate\nyou already have is the slate.\n\n## Presenting the result\n\nLead with the winner as a normal answer — the user asked for a good answer, not a\nreport. Then keep the slate one click away:\n\n```markdown\n\u003Cwinner text, presented as the answer>\n\n\u003Cdetails>\n\u003Csummary>Runners-up (2) — say \"use #2\" to switch\u003C\u002Fsummary>\n\n**#1** — score 3.5 · *reason from the judge*\n\n\u003Ccandidate text>\n\n**#3** — score 4.0 · *reason from the judge*\n\n\u003Ccandidate text>\n\n\u003C\u002Fdetails>\n```\n\nNumbering rules, because \"use #2\" has to actually work:\n\n- Number candidates **#1…#N in slate order**: `#k` is the candidate whose `idx` is\n  `k - 1`. Never renumber by score — the user's \"#2\" must mean the same candidate in\n  your list and in the tool result.\n- Mark the winner in the visible answer (e.g. \"picked #2 of 3\"), so the numbers the\n  user sees are the numbers they can choose from.\n- When the user says **\"use #2\"** (or \"go with the second one\"), reply with that\n  candidate's text **verbatim from the slate you already have**. Do not re-sample, do\n  not paraphrase, do not re-judge. If they then ask you to edit it, edit that text.\n\n## Degraded cases — report them, never paper over them\n\n- **`judged: false`** — the judge was unavailable. Say so: \"the judge wasn't available,\n  so this is the first candidate, unranked\" and still show the slate.\n- **Some candidates carry an `error`** — the slate is narrower than N. Say how many\n  returned (\"2 of 3 came back\") and judge only those. Never invent a missing candidate.\n- **`winner: null`** — every sample failed. Say that plainly and offer to answer\n  directly or retry. Do not present one of the errors as an answer.\n\n## When NOT to use this\n\n- Anything with one correct answer (a fact, a calculation, a file's contents). N samples\n  of a lookup is N× the cost for the same answer.\n- Long-running or tool-using work — this is one-shot text sampling, not delegation. Use\n  the delegation skill and subagents for work that needs tools.\n- Inside a loop over many items. One slate per user ask; a slate per item multiplies the\n  spend by N without anyone noticing.\n",{"name":5,"triggers":23,"description":7},"best of, give me options, give me versions, versions and pick, few versions, sample and pick, generate a few, pick the best, which is best, draft variations, some variations, few options","main","cfba933d376f99978247a7d18b592232c649e87a","src\u002Fpersonalclaw\u002Fskills\u002Fbundled\u002Fbest-of-n",6,"https:\u002F\u002Fgithub.com\u002FPersonalClaw\u002FPersonalClaw","https:\u002F\u002Fpersonalclaw.dev","https:\u002F\u002Fgithub.com\u002FPersonalClaw","Self-hosted personal AI agent — an agentic OS for one person: chat, goal loops, memory, knowledge, automation, apps. Local-first, zero telemetry, MIT.","2026-11-15 04:04:52",{"source":8,"skillName":5,"commands":34,"prompt":44,"zipAvailable":45},[35,38,41],{"tool":36,"command":37},"npx","npx skills add PersonalClaw\u002FPersonalClaw --skill best-of-n",{"tool":39,"command":40},"bunx","bunx skills add PersonalClaw\u002FPersonalClaw --skill best-of-n",{"tool":42,"command":43},"pnpm","pnpm dlx skills add PersonalClaw\u002FPersonalClaw --skill best-of-n","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FPersonalClaw\u002FPersonalClaw\u002Fblob\u002Fmain\u002Fsrc\u002Fpersonalclaw\u002Fskills\u002Fbundled\u002Fbest-of-n\u002FSKILL.md",true,[],[48,55,62,69,76,83],{"skillNo":49,"name":50,"nameZh":6,"description":51,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":52,"categories":53,"keywords":54,"publishedAt":18},"01M79D5S4EBPTFGMRDY7AM7ERD","ledger-read","Read a ledger CSV","https:\u002F\u002Fgithub.com\u002FPersonalClaw\u002FPersonalClaw\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fexternal_formats_golden\u002Fskill-md\u002Fskills\u002Fledger-read\u002FSKILL.md",[],[],{"skillNo":56,"name":57,"nameZh":6,"description":58,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":59,"categories":60,"keywords":61,"publishedAt":18},"01M79D5QFEBGM2PTM21WVTA90K","budget-coach","Weekly spend review","https:\u002F\u002Fgithub.com\u002FPersonalClaw\u002FPersonalClaw\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fexternal_formats_golden\u002Fskill-md\u002Fskills\u002Fbudget-coach\u002FSKILL.md",[],[],{"skillNo":63,"name":64,"nameZh":6,"description":65,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":66,"categories":67,"keywords":68,"publishedAt":18},"01M79D5MTEV62YBKTNY874Y9C4","yt-transcript","Fetch the transcript of a YouTube video and summarise it with timestamps. Use when the user shares a youtube.com or youtu.be link and asks what it says.","https:\u002F\u002Fgithub.com\u002FPersonalClaw\u002FPersonalClaw\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fagent_tool_skills\u002Fyt-transcript\u002FSKILL.md",[],[],{"skillNo":70,"name":71,"nameZh":6,"description":72,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":73,"categories":74,"keywords":75,"publishedAt":18},"01M79D5JG2M47DS0X3GRZ94PXY","incident-writeup","Turn my incident notes, Slack excerpts and graphs into a blameless postmortem in Cartwheel's format. Use after an on-call incident once the mitigation is in.","https:\u002F\u002Fgithub.com\u002FPersonalClaw\u002FPersonalClaw\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fagent_tool_skills\u002Fincident-writeup\u002FSKILL.md",[],[],{"skillNo":77,"name":78,"nameZh":6,"description":79,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":80,"categories":81,"keywords":82,"publishedAt":18},"01M79D5DX9SWDFDAFW3AD5FATT","feedsmith-release","Cut a feedsmith release - bump the version, move the Unreleased changelog section, tag, and draft the GitHub release notes. Use when I say \"release feedsmith\" or \"cut 0.x\".","https:\u002F\u002Fgithub.com\u002FPersonalClaw\u002FPersonalClaw\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fagent_tool_skills\u002Ffeedsmith-release\u002FSKILL.md",[],[],{"skillNo":84,"name":85,"nameZh":6,"description":86,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":87,"categories":88,"keywords":89,"publishedAt":18},"01M79D59Z7A0FEZSB5AEQYHNSR","feedsmith-bench","Benchmark feedsmith fetch against a real OPML, cold and warm, and compare with main. Use before merging anything that touches fetch.py or store.py.","https:\u002F\u002Fgithub.com\u002FPersonalClaw\u002FPersonalClaw\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fagent_tool_homes\u002Fnoor\u002F.codex\u002Fskills\u002Ffeedsmith-bench\u002FSKILL.md",[],[]]