[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6NV1TDP09P2D8MXT2ER5NQB":3,"skill-same:01M6NV1TDP09P2D8MXT2ER5NQB":76},{"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":23,"publishedAt":44,"linkOnly":45,"markdownContent":46,"markdownBody":47,"frontMatter":48,"refName":52,"commitSha":53,"skillDirectory":54,"forksCount":55,"repositoryHtmlUrl":56,"repositoryHomepageUrl":57,"ownerHtmlUrl":58,"ownerBlogUrl":59,"ownerDescription":60,"updatedAt":61,"install":62,"resources":75},"01M6NV1TDP09P2D8MXT2ER5NQB","fan-out",null,"Parallel agent orchestration for OST exploration. Fan-out multiple solution explorations, fan-in results to compare and select winners.","haabe\u002Fmycelium","haabe","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F2988921?v=4","01M6NTRKFVVHQG4RF09EB5FRB4","Håvard Bartnes","01M6NTRKKSM94X8BRYCYE2D80Y",52,"MIT","https:\u002F\u002Fgithub.com\u002Fhaabe\u002Fmycelium\u002Fblob\u002Fmain\u002Fplugins\u002Fmycelium\u002Fskills\u002Ffan-out\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"fan out","install","for","standalone","compare","gates","mycelium","exploration","agent orchestration","use","canvas","select","parallel","ost","harness","framework","state","run","plugin","orchestration","2026-11-10 10:12:30",false,"---\nname: fan-out\ndescription: \"Parallel agent orchestration for OST exploration. Fan-out multiple solution explorations, fan-in results to compare and select winners.\"\nmetadata:\n  instruction_budget: \"22\"\n  framework_dependency: \"mycelium\"\n  framework_dependency_note: \"This skill is designed to run within the Mycelium framework (https:\u002F\u002Fgithub.com\u002Fhaabe\u002Fmycelium). Standalone use will skip the canvas state, theory gates, and harness behavior the skill assumes. Install: \u002Fplugin install mycelium@haabe-mycelium.\"\n---\n\n# Fan-Out \u002F Fan-In Orchestration\n\n## When to Use\n- OST has 2+ solutions for the same opportunity that need parallel exploration\n- Independent delivery work items that can be parallelized\n- Multiple research streams needed simultaneously\n\n## Workflow\n\n### 1. Prepare (Lead Agent)\n- Read .claude\u002Fcanvas\u002Fopportunities.yml\n- Identify solutions needing parallel work\n- For each: identify riskiest assumption, design test, and write its `runs_on` (disk | network | human, as in `\u002Fmycelium:assumption-test`)\n- Register each `human` test (survey, fake door, interviews, paid pilot) through `\u002Fmycelium:handoff`. No subagent runs it: a subagent can only simulate what people would do, and a simulated verdict is not a test result (v0.330.0)\n\n### 2. Fan-Out (Spawn Workers, disk and network tests only)\nFor each solution with a disk or network test:\n- Spawn subagent or Agent Team member\n- Provide: clear task, read-only canvas context, worktree isolation, and a turn cap where the runtime has one (`maxTurns` in an agent definition). A time bound in the brief is advice: Claude Code has no time limit for a subagent\n- Each worker runs independently and reports its evidence with its source, not only a verdict\n\n### 3. Fan-In (Collect Results)\n- Collect all worker results, and the `human` tests' verdicts once logged through `\u002Fmycelium:log-evidence`\n- Update ICE scores in canvas\n- Run `\u002Fmycelium:bias-check` on combined findings\n- Select winner(s) based on evidence\n- Log decision in .claude\u002Fharness\u002Fdecision-log.md\n\n### Leaf Bakeoff Mode\n\nWhen comparing competing OST leaves for the same opportunity (two or more leaves that each have an untested riskiest assumption; no ICE gap is consulted):\n- Each worker returns a structured **scorecard** (Four Risks + ICE from the leaf's record, the result of its disk or network test, segment fit); a leaf whose test is `human` gets its scorecard from the lead once the verdict is logged\n- Lead agent applies **winner selection rules**, which read the assumption-test verdicts: clear winner (one passes, the others fail), several pass in the same segment (tiebreaker), several pass in different segments (segment split, both advance), both fail (archive and re-evaluate). A leaf whose riskiest assumption failed is archived.\n- The ICE total only orders which assumption is tested first. It never decides when to compare or which leaf wins (until 0.320.0 a \"clear winner\" was a leaf more than 20% ahead on ICE).\n- Losers are archived to `.claude\u002Fcanvas\u002Farchived-solutions.yml` with full evidence snapshot\n\nSee `${CLAUDE_PLUGIN_ROOT}\u002Forchestration\u002Fleaf-bakeoff.md` for the complete bakeoff protocol.\n\n## Rules\n- Workers NEVER write to canvas (lead agent does). On Claude Code the guard-state gate refuses a subagent's write to `.claude\u002Fcanvas\u002F` or `.claude\u002Fdiamonds\u002F` (v0.330.0); the other rules below are the lead's discipline and no hook checks them\n- Workers NEVER progress diamonds\n- Workers NEVER run a `human` test\n- Lead agent ALWAYS runs bias check on combined results\n- Minimum 2 workers for meaningful comparison\n- Maximum 3 leaves per bakeoff (respects L3 WIP ceiling)\n- Inside an L3 (v0.301.0), the leaves are its set under the L2's target, and a clear winner is the candidate for its `front_runner`; recording it is the human's choice\n\nSee `${CLAUDE_PLUGIN_ROOT}\u002Forchestration\u002Fagent-teams.md` for full orchestration patterns.\n","# Fan-Out \u002F Fan-In Orchestration\n\n## When to Use\n- OST has 2+ solutions for the same opportunity that need parallel exploration\n- Independent delivery work items that can be parallelized\n- Multiple research streams needed simultaneously\n\n## Workflow\n\n### 1. Prepare (Lead Agent)\n- Read .claude\u002Fcanvas\u002Fopportunities.yml\n- Identify solutions needing parallel work\n- For each: identify riskiest assumption, design test, and write its `runs_on` (disk | network | human, as in `\u002Fmycelium:assumption-test`)\n- Register each `human` test (survey, fake door, interviews, paid pilot) through `\u002Fmycelium:handoff`. No subagent runs it: a subagent can only simulate what people would do, and a simulated verdict is not a test result (v0.330.0)\n\n### 2. Fan-Out (Spawn Workers, disk and network tests only)\nFor each solution with a disk or network test:\n- Spawn subagent or Agent Team member\n- Provide: clear task, read-only canvas context, worktree isolation, and a turn cap where the runtime has one (`maxTurns` in an agent definition). A time bound in the brief is advice: Claude Code has no time limit for a subagent\n- Each worker runs independently and reports its evidence with its source, not only a verdict\n\n### 3. Fan-In (Collect Results)\n- Collect all worker results, and the `human` tests' verdicts once logged through `\u002Fmycelium:log-evidence`\n- Update ICE scores in canvas\n- Run `\u002Fmycelium:bias-check` on combined findings\n- Select winner(s) based on evidence\n- Log decision in .claude\u002Fharness\u002Fdecision-log.md\n\n### Leaf Bakeoff Mode\n\nWhen comparing competing OST leaves for the same opportunity (two or more leaves that each have an untested riskiest assumption; no ICE gap is consulted):\n- Each worker returns a structured **scorecard** (Four Risks + ICE from the leaf's record, the result of its disk or network test, segment fit); a leaf whose test is `human` gets its scorecard from the lead once the verdict is logged\n- Lead agent applies **winner selection rules**, which read the assumption-test verdicts: clear winner (one passes, the others fail), several pass in the same segment (tiebreaker), several pass in different segments (segment split, both advance), both fail (archive and re-evaluate). A leaf whose riskiest assumption failed is archived.\n- The ICE total only orders which assumption is tested first. It never decides when to compare or which leaf wins (until 0.320.0 a \"clear winner\" was a leaf more than 20% ahead on ICE).\n- Losers are archived to `.claude\u002Fcanvas\u002Farchived-solutions.yml` with full evidence snapshot\n\nSee `${CLAUDE_PLUGIN_ROOT}\u002Forchestration\u002Fleaf-bakeoff.md` for the complete bakeoff protocol.\n\n## Rules\n- Workers NEVER write to canvas (lead agent does). On Claude Code the guard-state gate refuses a subagent's write to `.claude\u002Fcanvas\u002F` or `.claude\u002Fdiamonds\u002F` (v0.330.0); the other rules below are the lead's discipline and no hook checks them\n- Workers NEVER progress diamonds\n- Workers NEVER run a `human` test\n- Lead agent ALWAYS runs bias check on combined results\n- Minimum 2 workers for meaningful comparison\n- Maximum 3 leaves per bakeoff (respects L3 WIP ceiling)\n- Inside an L3 (v0.301.0), the leaves are its set under the L2's target, and a clear winner is the candidate for its `front_runner`; recording it is the human's choice\n\nSee `${CLAUDE_PLUGIN_ROOT}\u002Forchestration\u002Fagent-teams.md` for full orchestration patterns.\n",{"name":5,"metadata":49,"description":7},{"instruction_budget":50,"framework_dependency":30,"framework_dependency_note":51},"22","This skill is designed to run within the Mycelium framework (https:\u002F\u002Fgithub.com\u002Fhaabe\u002Fmycelium). Standalone use will skip the canvas state, theory gates, and harness behavior the skill assumes. Install: \u002Fplugin install mycelium@haabe-mycelium.","main","d44421b0667bb71ad515ae7576dfc0f47b00504f","plugins\u002Fmycelium\u002Fskills\u002Ffan-out",6,"https:\u002F\u002Fgithub.com\u002Fhaabe\u002Fmycelium","https:\u002F\u002Fgithub.com\u002Fhaabe\u002Fmycelium\u002Fblob\u002Fmain\u002Fdocs\u002Fget-started.md","https:\u002F\u002Fgithub.com\u002Fhaabe","https:\u002F\u002Feccera.com\u002F","Building platform tooling for AI-assisted product development.","2026-11-13 00:15:55",{"source":8,"skillName":5,"commands":63,"prompt":73,"zipAvailable":74},[64,67,70],{"tool":65,"command":66},"npx","npx skills add haabe\u002Fmycelium --skill fan-out",{"tool":68,"command":69},"bunx","bunx skills add haabe\u002Fmycelium --skill fan-out",{"tool":71,"command":72},"pnpm","pnpm dlx skills add haabe\u002Fmycelium --skill fan-out","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fhaabe\u002Fmycelium\u002Fblob\u002Fmain\u002Fplugins\u002Fmycelium\u002Fskills\u002Ffan-out\u002FSKILL.md",true,[],[77,89,102,113,119,126],{"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":44},"01M6NVR17TVR7WM0MJD1TPY0CW","good_skill","Valid frontmatter.","https:\u002F\u002Fgithub.com\u002Fhaabe\u002Fmycelium\u002Fblob\u002Fmain\u002Ftests\u002Fbash\u002Ffixtures\u002Fcheck_8\u002Fvalid\u002Fplugins\u002Fmycelium\u002Fskills\u002Fgood_skill\u002FSKILL.md",[83],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[85,86,87,88],"good skill","good","frontmatter","valid",{"skillNo":90,"name":91,"nameZh":6,"description":92,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":93,"categories":94,"keywords":96,"publishedAt":44},"01M6NVQPDAP1S4JQ5XFCT6P4PG","bad_skill","Has description but no name field.","https:\u002F\u002Fgithub.com\u002Fhaabe\u002Fmycelium\u002Fblob\u002Fmain\u002Ftests\u002Fbash\u002Ffixtures\u002Fcheck_8\u002Fmissing_name\u002Fplugins\u002Fmycelium\u002Fskills\u002Fbad_skill\u002FSKILL.md",[95],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[97,98,99,100,101],"bad skill","bad","name","but","no name",{"skillNo":103,"name":104,"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":105,"categories":106,"keywords":110,"publishedAt":44},"01M6NVQHEZAMP2JB45CA6Y3G1B","canvas-update","https:\u002F\u002Fgithub.com\u002Fhaabe\u002Fmycelium\u002Fblob\u002Fmain\u002Ftests\u002Fbash\u002Ffixtures\u002Fcheck_5\u002Fmissing_canvas_in_mapping\u002Fplugins\u002Fmycelium\u002Fskills\u002Fcanvas-update\u002FSKILL.md",[107],{"categoryNo":108,"categoryName":109,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000015","视觉设计",[34,111,112],"update","canvas update",{"skillNo":114,"name":104,"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":115,"categories":116,"keywords":118,"publishedAt":44},"01M6NVQDX6GEEHJ48WEPK0EG1Q","https:\u002F\u002Fgithub.com\u002Fhaabe\u002Fmycelium\u002Fblob\u002Fmain\u002Ftests\u002Fbash\u002Ffixtures\u002Fcheck_5\u002Fall_present\u002Fplugins\u002Fmycelium\u002Fskills\u002Fcanvas-update\u002FSKILL.md",[117],{"categoryNo":108,"categoryName":109,"taxonomyType":21,"taxonomyTypeDesc":22},[34,111,112],{"skillNo":120,"name":121,"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":122,"categories":123,"keywords":124,"publishedAt":44},"01M6NVQ5BH3VN7P9Q185Z2TMRN","ice-score","https:\u002F\u002Fgithub.com\u002Fhaabe\u002Fmycelium\u002Fblob\u002Fmain\u002Ftests\u002Fbash\u002Ffixtures\u002Fcheck_45\u002Fmissing_marker\u002Fplugins\u002Fmycelium\u002Fskills\u002Fice-score\u002FSKILL.md",[],[125],"ice score",{"skillNo":127,"name":128,"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":129,"categories":130,"keywords":131,"publishedAt":44},"01M6NVPTQY2QMDABA1GJW5H1EG","bvssh-check","https:\u002F\u002Fgithub.com\u002Fhaabe\u002Fmycelium\u002Fblob\u002Fmain\u002Ftests\u002Fbash\u002Ffixtures\u002Fcheck_45\u002Fmissing_marker\u002Fplugins\u002Fmycelium\u002Fskills\u002Fbvssh-check\u002FSKILL.md",[],[132,133],"bvssh check","check"]