[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-minimax-binder-replay":3,"mdc--zhejwn-key":31,"related-org-minimax-binder-replay":802,"related-repo-minimax-binder-replay":1005},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":12,"stars":20,"repoUrl":21,"updatedAt":22,"license":23,"forks":24,"topics":25,"repo":26,"sourceUrl":29,"mdContent":30},"binder-replay","replay binder design campaigns","当需要回放已记录的 binder 设计 campaign、重现每一步\"当时知道什么、决定了什么\"时使用；对应 openbinder replay（--fixture\u002F--events\u002F--source）。典型触发语：\"帮我回放一下 IL-7Ra 的 binder campaign\"\"回放那个失败的 campaign\"\"看看当时每一步都知道了什么\"。同义场景：campaign replay、事件流回放、replay report、gap 分析、时间线重建。",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},"minimax","MiniMax","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fminimax.jpg","MiniMax-AI",[13,17],{"name":14,"slug":15,"type":16},"Automation","automation","tag",{"name":18,"slug":19,"type":16},"Data Analysis","data-analysis",5,"https:\u002F\u002Fgithub.com\u002FMiniMax-AI\u002FMiniMax-Code-Plugins","2026-08-27T13:32:33.346398",null,2,[],{"repoUrl":21,"stars":20,"forks":24,"topics":27,"description":28},[],"Community registry and contribution toolkit for MiniMax Code plugins.","https:\u002F\u002Fgithub.com\u002FMiniMax-AI\u002FMiniMax-Code-Plugins\u002Ftree\u002FHEAD\u002Fplugins\u002FHylouis233\u002Fopen-protein-binder-design\u002Fskills\u002Fbinder-replay","---\nname: binder-replay\ndescription: >-\n  当需要回放已记录的 binder 设计 campaign、重现每一步\"当时知道什么、决定了什么\"时使用；对应 openbinder replay（--fixture\u002F--events\u002F--source）。典型触发语：\"帮我回放一下 IL-7Ra 的 binder campaign\"\"回放那个失败的 campaign\"\"看看当时每一步都知道了什么\"。同义场景：campaign replay、事件流回放、replay report、gap 分析、时间线重建。\nargument-hint: '[--fixture synthetic-success|synthetic-failure|--events \u003Cjsonl> --campaign \u003Cid>|--source \u003Csource_id> --target \u003Ctarget>]'\nmetadata:\n  domains: [protein-binder, campaign-replay, provenance]\n  last_reviewed: '2026-08-20'\n---\n\n# binder-replay：campaign 事件流回放\n\n## 目的\n\n回放把公开的 campaign 过程记录（per-design provenance）归一化成统一事件流，重建 campaign 状态与逐步时间线：每一步当时掌握了什么证据、做了什么决定、哪里是缺口。成功**和**失败的 campaign 都回放——失败 campaign 的 gap 往往比成功的时间线更有信息量。全程不执行任何蛋白模型、不调任何 LLM。\n\n## 前置检查\n\n1. 确认输入三选一：\n   - `--fixture {synthetic-success, synthetic-failure}`：内置合成 fixture，完全离线；\n   - `--events \u003Ccampaign-events.jsonl> --campaign \u003Ccampaign_id>`：自带事件流，离线；\n   - `--source anthropic-claude-binder-v1 --target \u003Ctarget> [--campaign \u003Cid>]`：从已登记源按下载策略逐条拉取 per-design `provenance.json`，**需要网络**。\n2. `--source` 模式额外检查：源已 lock；未知 target\u002Fcampaign 会 exit 2 并列出 API 实际提供的可选项——把列表原样给用户，不猜。\n3. 产物落盘：`output\u002Fbinder-replay\u002F\u003Cslug>\u002F\u003Ctimestamp>\u002F`；同一源多 campaign 时每个 campaign 一个子目录。\n\n## 1 · 执行回放\n\n```bash\n# 离线 fixture\nopenbinder replay --fixture synthetic-failure --out output\u002Fbinder-replay\u002F\u003Cslug>\u002F\u003Ctimestamp>\u002F\n# 自带事件流\nopenbinder replay --events events.jsonl --campaign \u003Ccampaign_id> --out \u003Cdir>\n# 真实源（网络，策略门控）\nopenbinder replay --source anthropic-claude-binder-v1 --target \u003Ctarget> --out \u003Cdir>\n```\n\n产物（`replay-report.md` + `replay-state.json` + provenance 记录）：\n\n- 报告四节：Summary \u002F Timeline \u002F Decisions \u002F **Gaps**；\n- `--source` 模式的报告追加 `## Source availability` 一节，如实列出 design_summary \u002F wetlab_labels \u002F docs \u002F manifests 四类表的可用状态；\n- 每次运行登记 provenance（campaign、status、gaps 数）。\n\n## 2 · gap 语义（报告的核心纪律）\n\n- 以下情况一律记为 gap：**跳过的规范阶段、不归属于任何阶段的事件、未 finalize 的事件流**；\n- gap 是\"记录里没有什么\"，**永不插值、永不脑补**——不把相邻步骤的内容缝进缺口；\n- 声明了但缺失的字段以 `None` + `missing_fields` 呈现；CLI 会打印缺失计数，转述时不得抹掉。\n\n## 3 · 确定性\n\n- 报告与状态文件**逐字节确定**：相同输入重跑产出 byte-identical  artifact；报告不含任何墙钟时间（`ts` 只存在于 `.openscience\u002Fprovenance.jsonl`）；\n- 因此 replay 产物可以直接进证据胶囊与对比报告，diff 即审计（证据胶囊来自 openscience 插件；未安装时产物照常落盘保存即可，不影响 replay 本身）。\n\n## 4 · 失败语义\n\n- 未知 campaign \u002F 缺文件 \u002F 未知 target：exit 2，错误信息列出实际可选项；\n- 下载被策略拦截（`blocked`）：exit 2 + 结构化原因，是纪律生效；\n- 源不可达（`unavailable`）：exit 2，是 source gap，**不等于 campaign 不存在**；\n- 回放本身不需要审批：五个人工 stage gate 不含 replay，事件回放永不阻塞等待批准。\n\n## 输出模板\n\n```markdown\n## 回放结果：\u003Ccampaign_id>\n\n- 状态：\u003Cstatus>；事件数 \u002F 设计数\n- 产物：replay-report.md \u002F replay-state.json 路径\n- 时间线要点：\u003C3-6 条关键步骤与决定>\n- Gaps：\u003C逐条列出；无则写\"无已知缺口\">\n- Source availability（--source 时）：\u003C四类表状态>\n- provenance：已登记（tool=openbinder:replay）\n```\n\n## 本技能不做什么\n\n- 不执行蛋白模型：回放的是**记录**，candidate 生成与打分永远不在本仓库重跑。\n- 不调 LLM：replay 引擎是纯规则重建；要模型决策请用 binder-agent-eval。\n- 不填补 gap：缺口如实报告，\"没记录\"永远不写成\"没发生\"或\"失败了\"。\n- 不承诺复现：没有重跑蛋白模型，generation campaign 永远不能叫 reproduced（docs\u002Fscope.md §8）。\n\n## 收尾与下一步\n\n- 向用户报告 campaign 状态、时间线要点与全部 gap；有 missing_fields 时明确计数。\n- 下一步通常是 binder-ranking-audit（审计该 campaign 的排序）或 binder-agent-eval（在相同阶段输入上评测模型决策）。\n",{"data":32,"body":40},{"name":4,"description":6,"argument-hint":33,"metadata":34},"[--fixture synthetic-success|synthetic-failure|--events \u003Cjsonl> --campaign \u003Cid>|--source \u003Csource_id> --target \u003Ctarget>]",{"domains":35,"last_reviewed":39},[36,37,38],"protein-binder","campaign-replay","provenance","2026-08-20",{"type":41,"children":42},"root",[43,52,58,72,77,164,170,428,449,487,493,539,545,581,587,632,637,743,748,778,783,796],{"type":44,"tag":45,"props":46,"children":48},"element","h1",{"id":47},"binder-replaycampaign-事件流回放",[49],{"type":50,"value":51},"text","binder-replay：campaign 事件流回放",{"type":44,"tag":53,"props":54,"children":56},"h2",{"id":55},"目的",[57],{"type":50,"value":55},{"type":44,"tag":59,"props":60,"children":61},"p",{},[62,64,70],{"type":50,"value":63},"回放把公开的 campaign 过程记录（per-design provenance）归一化成统一事件流，重建 campaign 状态与逐步时间线：每一步当时掌握了什么证据、做了什么决定、哪里是缺口。成功",{"type":44,"tag":65,"props":66,"children":67},"strong",{},[68],{"type":50,"value":69},"和",{"type":50,"value":71},"失败的 campaign 都回放——失败 campaign 的 gap 往往比成功的时间线更有信息量。全程不执行任何蛋白模型、不调任何 LLM。",{"type":44,"tag":53,"props":73,"children":75},{"id":74},"前置检查",[76],{"type":50,"value":74},{"type":44,"tag":78,"props":79,"children":80},"ol",{},[81,140,151],{"type":44,"tag":82,"props":83,"children":84},"li",{},[85,87],{"type":50,"value":86},"确认输入三选一：\n",{"type":44,"tag":88,"props":89,"children":90},"ul",{},[91,103,114],{"type":44,"tag":82,"props":92,"children":93},{},[94,101],{"type":44,"tag":95,"props":96,"children":98},"code",{"className":97},[],[99],{"type":50,"value":100},"--fixture {synthetic-success, synthetic-failure}",{"type":50,"value":102},"：内置合成 fixture，完全离线；",{"type":44,"tag":82,"props":104,"children":105},{},[106,112],{"type":44,"tag":95,"props":107,"children":109},{"className":108},[],[110],{"type":50,"value":111},"--events \u003Ccampaign-events.jsonl> --campaign \u003Ccampaign_id>",{"type":50,"value":113},"：自带事件流，离线；",{"type":44,"tag":82,"props":115,"children":116},{},[117,123,125,131,133,138],{"type":44,"tag":95,"props":118,"children":120},{"className":119},[],[121],{"type":50,"value":122},"--source anthropic-claude-binder-v1 --target \u003Ctarget> [--campaign \u003Cid>]",{"type":50,"value":124},"：从已登记源按下载策略逐条拉取 per-design ",{"type":44,"tag":95,"props":126,"children":128},{"className":127},[],[129],{"type":50,"value":130},"provenance.json",{"type":50,"value":132},"，",{"type":44,"tag":65,"props":134,"children":135},{},[136],{"type":50,"value":137},"需要网络",{"type":50,"value":139},"。",{"type":44,"tag":82,"props":141,"children":142},{},[143,149],{"type":44,"tag":95,"props":144,"children":146},{"className":145},[],[147],{"type":50,"value":148},"--source",{"type":50,"value":150}," 模式额外检查：源已 lock；未知 target\u002Fcampaign 会 exit 2 并列出 API 实际提供的可选项——把列表原样给用户，不猜。",{"type":44,"tag":82,"props":152,"children":153},{},[154,156,162],{"type":50,"value":155},"产物落盘：",{"type":44,"tag":95,"props":157,"children":159},{"className":158},[],[160],{"type":50,"value":161},"output\u002Fbinder-replay\u002F\u003Cslug>\u002F\u003Ctimestamp>\u002F",{"type":50,"value":163},"；同一源多 campaign 时每个 campaign 一个子目录。",{"type":44,"tag":53,"props":165,"children":167},{"id":166},"_1-执行回放",[168],{"type":50,"value":169},"1 · 执行回放",{"type":44,"tag":171,"props":172,"children":177},"pre",{"className":173,"code":174,"language":175,"meta":176,"style":176},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# 离线 fixture\nopenbinder replay --fixture synthetic-failure --out output\u002Fbinder-replay\u002F\u003Cslug>\u002F\u003Ctimestamp>\u002F\n# 自带事件流\nopenbinder replay --events events.jsonl --campaign \u003Ccampaign_id> --out \u003Cdir>\n# 真实源（网络，策略门控）\nopenbinder replay --source anthropic-claude-binder-v1 --target \u003Ctarget> --out \u003Cdir>\n","bash","",[178],{"type":44,"tag":95,"props":179,"children":180},{"__ignoreMap":176},[181,193,277,286,355,363],{"type":44,"tag":182,"props":183,"children":186},"span",{"class":184,"line":185},"line",1,[187],{"type":44,"tag":182,"props":188,"children":190},{"style":189},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[191],{"type":50,"value":192},"# 离线 fixture\n",{"type":44,"tag":182,"props":194,"children":195},{"class":184,"line":24},[196,202,208,213,218,223,228,234,239,245,250,255,259,264,268,272],{"type":44,"tag":182,"props":197,"children":199},{"style":198},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[200],{"type":50,"value":201},"openbinder",{"type":44,"tag":182,"props":203,"children":205},{"style":204},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[206],{"type":50,"value":207}," replay",{"type":44,"tag":182,"props":209,"children":210},{"style":204},[211],{"type":50,"value":212}," --fixture",{"type":44,"tag":182,"props":214,"children":215},{"style":204},[216],{"type":50,"value":217}," synthetic-failure",{"type":44,"tag":182,"props":219,"children":220},{"style":204},[221],{"type":50,"value":222}," --out",{"type":44,"tag":182,"props":224,"children":225},{"style":204},[226],{"type":50,"value":227}," output\u002Fbinder-replay\u002F",{"type":44,"tag":182,"props":229,"children":231},{"style":230},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[232],{"type":50,"value":233},"\u003C",{"type":44,"tag":182,"props":235,"children":236},{"style":204},[237],{"type":50,"value":238},"slu",{"type":44,"tag":182,"props":240,"children":242},{"style":241},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[243],{"type":50,"value":244},"g",{"type":44,"tag":182,"props":246,"children":247},{"style":230},[248],{"type":50,"value":249},">",{"type":44,"tag":182,"props":251,"children":252},{"style":204},[253],{"type":50,"value":254},"\u002F",{"type":44,"tag":182,"props":256,"children":257},{"style":230},[258],{"type":50,"value":233},{"type":44,"tag":182,"props":260,"children":261},{"style":204},[262],{"type":50,"value":263},"timestam",{"type":44,"tag":182,"props":265,"children":266},{"style":241},[267],{"type":50,"value":59},{"type":44,"tag":182,"props":269,"children":270},{"style":230},[271],{"type":50,"value":249},{"type":44,"tag":182,"props":273,"children":274},{"style":204},[275],{"type":50,"value":276},"\u002F\n",{"type":44,"tag":182,"props":278,"children":280},{"class":184,"line":279},3,[281],{"type":44,"tag":182,"props":282,"children":283},{"style":189},[284],{"type":50,"value":285},"# 自带事件流\n",{"type":44,"tag":182,"props":287,"children":289},{"class":184,"line":288},4,[290,294,298,303,308,313,318,323,328,332,336,340,345,350],{"type":44,"tag":182,"props":291,"children":292},{"style":198},[293],{"type":50,"value":201},{"type":44,"tag":182,"props":295,"children":296},{"style":204},[297],{"type":50,"value":207},{"type":44,"tag":182,"props":299,"children":300},{"style":204},[301],{"type":50,"value":302}," --events",{"type":44,"tag":182,"props":304,"children":305},{"style":204},[306],{"type":50,"value":307}," events.jsonl",{"type":44,"tag":182,"props":309,"children":310},{"style":204},[311],{"type":50,"value":312}," --campaign",{"type":44,"tag":182,"props":314,"children":315},{"style":230},[316],{"type":50,"value":317}," \u003C",{"type":44,"tag":182,"props":319,"children":320},{"style":204},[321],{"type":50,"value":322},"campaign_i",{"type":44,"tag":182,"props":324,"children":325},{"style":241},[326],{"type":50,"value":327},"d",{"type":44,"tag":182,"props":329,"children":330},{"style":230},[331],{"type":50,"value":249},{"type":44,"tag":182,"props":333,"children":334},{"style":204},[335],{"type":50,"value":222},{"type":44,"tag":182,"props":337,"children":338},{"style":230},[339],{"type":50,"value":317},{"type":44,"tag":182,"props":341,"children":342},{"style":204},[343],{"type":50,"value":344},"di",{"type":44,"tag":182,"props":346,"children":347},{"style":241},[348],{"type":50,"value":349},"r",{"type":44,"tag":182,"props":351,"children":352},{"style":230},[353],{"type":50,"value":354},">\n",{"type":44,"tag":182,"props":356,"children":357},{"class":184,"line":20},[358],{"type":44,"tag":182,"props":359,"children":360},{"style":189},[361],{"type":50,"value":362},"# 真实源（网络，策略门控）\n",{"type":44,"tag":182,"props":364,"children":366},{"class":184,"line":365},6,[367,371,375,380,385,390,394,399,404,408,412,416,420,424],{"type":44,"tag":182,"props":368,"children":369},{"style":198},[370],{"type":50,"value":201},{"type":44,"tag":182,"props":372,"children":373},{"style":204},[374],{"type":50,"value":207},{"type":44,"tag":182,"props":376,"children":377},{"style":204},[378],{"type":50,"value":379}," --source",{"type":44,"tag":182,"props":381,"children":382},{"style":204},[383],{"type":50,"value":384}," anthropic-claude-binder-v1",{"type":44,"tag":182,"props":386,"children":387},{"style":204},[388],{"type":50,"value":389}," --target",{"type":44,"tag":182,"props":391,"children":392},{"style":230},[393],{"type":50,"value":317},{"type":44,"tag":182,"props":395,"children":396},{"style":204},[397],{"type":50,"value":398},"targe",{"type":44,"tag":182,"props":400,"children":401},{"style":241},[402],{"type":50,"value":403},"t",{"type":44,"tag":182,"props":405,"children":406},{"style":230},[407],{"type":50,"value":249},{"type":44,"tag":182,"props":409,"children":410},{"style":204},[411],{"type":50,"value":222},{"type":44,"tag":182,"props":413,"children":414},{"style":230},[415],{"type":50,"value":317},{"type":44,"tag":182,"props":417,"children":418},{"style":204},[419],{"type":50,"value":344},{"type":44,"tag":182,"props":421,"children":422},{"style":241},[423],{"type":50,"value":349},{"type":44,"tag":182,"props":425,"children":426},{"style":230},[427],{"type":50,"value":354},{"type":44,"tag":59,"props":429,"children":430},{},[431,433,439,441,447],{"type":50,"value":432},"产物（",{"type":44,"tag":95,"props":434,"children":436},{"className":435},[],[437],{"type":50,"value":438},"replay-report.md",{"type":50,"value":440}," + ",{"type":44,"tag":95,"props":442,"children":444},{"className":443},[],[445],{"type":50,"value":446},"replay-state.json",{"type":50,"value":448}," + provenance 记录）：",{"type":44,"tag":88,"props":450,"children":451},{},[452,464,482],{"type":44,"tag":82,"props":453,"children":454},{},[455,457,462],{"type":50,"value":456},"报告四节：Summary \u002F Timeline \u002F Decisions \u002F ",{"type":44,"tag":65,"props":458,"children":459},{},[460],{"type":50,"value":461},"Gaps",{"type":50,"value":463},"；",{"type":44,"tag":82,"props":465,"children":466},{},[467,472,474,480],{"type":44,"tag":95,"props":468,"children":470},{"className":469},[],[471],{"type":50,"value":148},{"type":50,"value":473}," 模式的报告追加 ",{"type":44,"tag":95,"props":475,"children":477},{"className":476},[],[478],{"type":50,"value":479},"## Source availability",{"type":50,"value":481}," 一节，如实列出 design_summary \u002F wetlab_labels \u002F docs \u002F manifests 四类表的可用状态；",{"type":44,"tag":82,"props":483,"children":484},{},[485],{"type":50,"value":486},"每次运行登记 provenance（campaign、status、gaps 数）。",{"type":44,"tag":53,"props":488,"children":490},{"id":489},"_2-gap-语义报告的核心纪律",[491],{"type":50,"value":492},"2 · gap 语义（报告的核心纪律）",{"type":44,"tag":88,"props":494,"children":495},{},[496,507,519],{"type":44,"tag":82,"props":497,"children":498},{},[499,501,506],{"type":50,"value":500},"以下情况一律记为 gap：",{"type":44,"tag":65,"props":502,"children":503},{},[504],{"type":50,"value":505},"跳过的规范阶段、不归属于任何阶段的事件、未 finalize 的事件流",{"type":50,"value":463},{"type":44,"tag":82,"props":508,"children":509},{},[510,512,517],{"type":50,"value":511},"gap 是\"记录里没有什么\"，",{"type":44,"tag":65,"props":513,"children":514},{},[515],{"type":50,"value":516},"永不插值、永不脑补",{"type":50,"value":518},"——不把相邻步骤的内容缝进缺口；",{"type":44,"tag":82,"props":520,"children":521},{},[522,524,530,531,537],{"type":50,"value":523},"声明了但缺失的字段以 ",{"type":44,"tag":95,"props":525,"children":527},{"className":526},[],[528],{"type":50,"value":529},"None",{"type":50,"value":440},{"type":44,"tag":95,"props":532,"children":534},{"className":533},[],[535],{"type":50,"value":536},"missing_fields",{"type":50,"value":538}," 呈现；CLI 会打印缺失计数，转述时不得抹掉。",{"type":44,"tag":53,"props":540,"children":542},{"id":541},"_3-确定性",[543],{"type":50,"value":544},"3 · 确定性",{"type":44,"tag":88,"props":546,"children":547},{},[548,576],{"type":44,"tag":82,"props":549,"children":550},{},[551,553,558,560,566,568,574],{"type":50,"value":552},"报告与状态文件",{"type":44,"tag":65,"props":554,"children":555},{},[556],{"type":50,"value":557},"逐字节确定",{"type":50,"value":559},"：相同输入重跑产出 byte-identical  artifact；报告不含任何墙钟时间（",{"type":44,"tag":95,"props":561,"children":563},{"className":562},[],[564],{"type":50,"value":565},"ts",{"type":50,"value":567}," 只存在于 ",{"type":44,"tag":95,"props":569,"children":571},{"className":570},[],[572],{"type":50,"value":573},".openscience\u002Fprovenance.jsonl",{"type":50,"value":575},"）；",{"type":44,"tag":82,"props":577,"children":578},{},[579],{"type":50,"value":580},"因此 replay 产物可以直接进证据胶囊与对比报告，diff 即审计（证据胶囊来自 openscience 插件；未安装时产物照常落盘保存即可，不影响 replay 本身）。",{"type":44,"tag":53,"props":582,"children":584},{"id":583},"_4-失败语义",[585],{"type":50,"value":586},"4 · 失败语义",{"type":44,"tag":88,"props":588,"children":589},{},[590,595,608,627],{"type":44,"tag":82,"props":591,"children":592},{},[593],{"type":50,"value":594},"未知 campaign \u002F 缺文件 \u002F 未知 target：exit 2，错误信息列出实际可选项；",{"type":44,"tag":82,"props":596,"children":597},{},[598,600,606],{"type":50,"value":599},"下载被策略拦截（",{"type":44,"tag":95,"props":601,"children":603},{"className":602},[],[604],{"type":50,"value":605},"blocked",{"type":50,"value":607},"）：exit 2 + 结构化原因，是纪律生效；",{"type":44,"tag":82,"props":609,"children":610},{},[611,613,619,621,626],{"type":50,"value":612},"源不可达（",{"type":44,"tag":95,"props":614,"children":616},{"className":615},[],[617],{"type":50,"value":618},"unavailable",{"type":50,"value":620},"）：exit 2，是 source gap，",{"type":44,"tag":65,"props":622,"children":623},{},[624],{"type":50,"value":625},"不等于 campaign 不存在",{"type":50,"value":463},{"type":44,"tag":82,"props":628,"children":629},{},[630],{"type":50,"value":631},"回放本身不需要审批：五个人工 stage gate 不含 replay，事件回放永不阻塞等待批准。",{"type":44,"tag":53,"props":633,"children":635},{"id":634},"输出模板",[636],{"type":50,"value":634},{"type":44,"tag":171,"props":638,"children":642},{"className":639,"code":640,"language":641,"meta":176,"style":176},"language-markdown shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","## 回放结果：\u003Ccampaign_id>\n\n- 状态：\u003Cstatus>；事件数 \u002F 设计数\n- 产物：replay-report.md \u002F replay-state.json 路径\n- 时间线要点：\u003C3-6 条关键步骤与决定>\n- Gaps：\u003C逐条列出；无则写\"无已知缺口\">\n- Source availability（--source 时）：\u003C四类表状态>\n- provenance：已登记（tool=openbinder:replay）\n","markdown",[643],{"type":44,"tag":95,"props":644,"children":645},{"__ignoreMap":176},[646,659,668,681,693,705,717,730],{"type":44,"tag":182,"props":647,"children":648},{"class":184,"line":185},[649,654],{"type":44,"tag":182,"props":650,"children":651},{"style":230},[652],{"type":50,"value":653},"## ",{"type":44,"tag":182,"props":655,"children":656},{"style":198},[657],{"type":50,"value":658},"回放结果：\u003Ccampaign_id>\n",{"type":44,"tag":182,"props":660,"children":661},{"class":184,"line":24},[662],{"type":44,"tag":182,"props":663,"children":665},{"emptyLinePlaceholder":664},true,[666],{"type":50,"value":667},"\n",{"type":44,"tag":182,"props":669,"children":670},{"class":184,"line":279},[671,676],{"type":44,"tag":182,"props":672,"children":673},{"style":230},[674],{"type":50,"value":675},"-",{"type":44,"tag":182,"props":677,"children":678},{"style":241},[679],{"type":50,"value":680}," 状态：\u003Cstatus>；事件数 \u002F 设计数\n",{"type":44,"tag":182,"props":682,"children":683},{"class":184,"line":288},[684,688],{"type":44,"tag":182,"props":685,"children":686},{"style":230},[687],{"type":50,"value":675},{"type":44,"tag":182,"props":689,"children":690},{"style":241},[691],{"type":50,"value":692}," 产物：replay-report.md \u002F replay-state.json 路径\n",{"type":44,"tag":182,"props":694,"children":695},{"class":184,"line":20},[696,700],{"type":44,"tag":182,"props":697,"children":698},{"style":230},[699],{"type":50,"value":675},{"type":44,"tag":182,"props":701,"children":702},{"style":241},[703],{"type":50,"value":704}," 时间线要点：\u003C3-6 条关键步骤与决定>\n",{"type":44,"tag":182,"props":706,"children":707},{"class":184,"line":365},[708,712],{"type":44,"tag":182,"props":709,"children":710},{"style":230},[711],{"type":50,"value":675},{"type":44,"tag":182,"props":713,"children":714},{"style":241},[715],{"type":50,"value":716}," Gaps：\u003C逐条列出；无则写\"无已知缺口\">\n",{"type":44,"tag":182,"props":718,"children":720},{"class":184,"line":719},7,[721,725],{"type":44,"tag":182,"props":722,"children":723},{"style":230},[724],{"type":50,"value":675},{"type":44,"tag":182,"props":726,"children":727},{"style":241},[728],{"type":50,"value":729}," Source availability（--source 时）：\u003C四类表状态>\n",{"type":44,"tag":182,"props":731,"children":733},{"class":184,"line":732},8,[734,738],{"type":44,"tag":182,"props":735,"children":736},{"style":230},[737],{"type":50,"value":675},{"type":44,"tag":182,"props":739,"children":740},{"style":241},[741],{"type":50,"value":742}," provenance：已登记（tool=openbinder:replay）\n",{"type":44,"tag":53,"props":744,"children":746},{"id":745},"本技能不做什么",[747],{"type":50,"value":745},{"type":44,"tag":88,"props":749,"children":750},{},[751,763,768,773],{"type":44,"tag":82,"props":752,"children":753},{},[754,756,761],{"type":50,"value":755},"不执行蛋白模型：回放的是",{"type":44,"tag":65,"props":757,"children":758},{},[759],{"type":50,"value":760},"记录",{"type":50,"value":762},"，candidate 生成与打分永远不在本仓库重跑。",{"type":44,"tag":82,"props":764,"children":765},{},[766],{"type":50,"value":767},"不调 LLM：replay 引擎是纯规则重建；要模型决策请用 binder-agent-eval。",{"type":44,"tag":82,"props":769,"children":770},{},[771],{"type":50,"value":772},"不填补 gap：缺口如实报告，\"没记录\"永远不写成\"没发生\"或\"失败了\"。",{"type":44,"tag":82,"props":774,"children":775},{},[776],{"type":50,"value":777},"不承诺复现：没有重跑蛋白模型，generation campaign 永远不能叫 reproduced（docs\u002Fscope.md §8）。",{"type":44,"tag":53,"props":779,"children":781},{"id":780},"收尾与下一步",[782],{"type":50,"value":780},{"type":44,"tag":88,"props":784,"children":785},{},[786,791],{"type":44,"tag":82,"props":787,"children":788},{},[789],{"type":50,"value":790},"向用户报告 campaign 状态、时间线要点与全部 gap；有 missing_fields 时明确计数。",{"type":44,"tag":82,"props":792,"children":793},{},[794],{"type":50,"value":795},"下一步通常是 binder-ranking-audit（审计该 campaign 的排序）或 binder-agent-eval（在相同阶段输入上评测模型决策）。",{"type":44,"tag":797,"props":798,"children":799},"style",{},[800],{"type":50,"value":801},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":803,"total":1004},[804,828,844,863,878,898,916,934,949,965,984,994],{"slug":805,"name":805,"fn":806,"description":807,"org":808,"tags":809,"stars":825,"repoUrl":826,"updatedAt":827},"android-native-dev","develop Android native applications","Android native application development and UI design guide. Covers Material Design 3, Kotlin\u002FCompose development, project configuration, accessibility, and build troubleshooting. Read this before Android native application development.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[810,813,816,819,822],{"name":811,"slug":812,"type":16},"Accessibility","accessibility",{"name":814,"slug":815,"type":16},"Android","android",{"name":817,"slug":818,"type":16},"Kotlin","kotlin",{"name":820,"slug":821,"type":16},"Mobile","mobile",{"name":823,"slug":824,"type":16},"UI Components","ui-components",13030,"https:\u002F\u002Fgithub.com\u002FMiniMax-AI\u002Fskills","2026-07-13T06:16:54.247834",{"slug":829,"name":829,"fn":830,"description":831,"org":832,"tags":833,"stars":825,"repoUrl":826,"updatedAt":843},"buddy-sings","generate singing performances for AI companions","Use when user wants their Claude Code pet (\u002Fbuddy) to sing a song. Triggers on any request that combines the concept of their Claude Code buddy, pet, or companion with singing or music. Supports multilingual triggers — match equivalent phrases in any language.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[834,837,840],{"name":835,"slug":836,"type":16},"Agents","agents",{"name":838,"slug":839,"type":16},"Audio","audio",{"name":841,"slug":842,"type":16},"Creative","creative","2026-07-13T06:16:35.130644",{"slug":845,"name":845,"fn":846,"description":847,"org":848,"tags":849,"stars":825,"repoUrl":826,"updatedAt":862},"color-font-skill","select color palettes and font pairings","Choose presentation-ready color palettes and font pairings for PPT\u002Fdesign tasks. Use when users ask for visual theme choices, brand-safe palettes, or font recommendations. Triggers include: 配色, 色板, 字体, color palette, font, PPT配色, 字体搭配.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[850,853,856,859],{"name":851,"slug":852,"type":16},"Design","design",{"name":854,"slug":855,"type":16},"Presentations","presentations",{"name":857,"slug":858,"type":16},"Themes","themes",{"name":860,"slug":861,"type":16},"Typography","typography","2026-07-13T06:17:02.785587",{"slug":864,"name":864,"fn":865,"description":866,"org":867,"tags":868,"stars":825,"repoUrl":826,"updatedAt":877},"design-style-skill","select visual design systems for presentations","Select a consistent visual design system for PPT slides using radius\u002Fspacing style recipes. Use when users ask for overall style direction or component styling consistency. Includes Sharp\u002FSoft\u002FRounded\u002FPill recipes, component mappings, typography\u002Fspacing rules, and mixing guidance. Triggers: 风格, style, radius, spacing, 圆角, 间距, PPT风格, 视觉风格, design style, component style.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[869,870,873,876],{"name":851,"slug":852,"type":16},{"name":871,"slug":872,"type":16},"Design System","design-system",{"name":874,"slug":875,"type":16},"PowerPoint","powerpoint",{"name":854,"slug":855,"type":16},"2026-07-13T06:17:10.398389",{"slug":879,"name":879,"fn":880,"description":881,"org":882,"tags":883,"stars":825,"repoUrl":826,"updatedAt":897},"flutter-dev","build cross-platform apps with Flutter","Flutter cross-platform development guide covering widget patterns, Riverpod\u002FBloc state management, GoRouter navigation, performance optimization, and platform-specific implementations. Includes const optimization, responsive layouts, testing strategies, and DevTools profiling.\nUse when: building Flutter apps, implementing state management (Riverpod\u002FBloc), setting up GoRouter navigation, creating custom widgets, optimizing performance, writing widget tests, cross-platform development.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[884,887,890,891,894],{"name":885,"slug":886,"type":16},"Dart","dart",{"name":888,"slug":889,"type":16},"Flutter","flutter",{"name":820,"slug":821,"type":16},{"name":892,"slug":893,"type":16},"Performance","performance",{"name":895,"slug":896,"type":16},"State Management","state-management","2026-07-13T06:16:36.626679",{"slug":899,"name":899,"fn":900,"description":901,"org":902,"tags":903,"stars":825,"repoUrl":826,"updatedAt":915},"frontend-dev","build visually striking frontend web pages","Full-stack frontend development combining premium UI design, cinematic animations,\nAI-generated media assets, persuasive copywriting, and visual art. Builds complete,\nvisually striking web pages with real media, advanced motion, and compelling copy.\nUse when: building landing pages, marketing sites, product pages, dashboards,\ngenerating media assets (image\u002Fvideo\u002Faudio\u002Fmusic), writing conversion copy,\ncreating generative art, or implementing cinematic scroll animations.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[904,907,908,909,912],{"name":905,"slug":906,"type":16},"Animation","animation",{"name":841,"slug":842,"type":16},{"name":851,"slug":852,"type":16},{"name":910,"slug":911,"type":16},"Frontend","frontend",{"name":913,"slug":914,"type":16},"Web Development","web-development","2026-07-13T06:16:39.108827",{"slug":917,"name":917,"fn":918,"description":919,"org":920,"tags":921,"stars":825,"repoUrl":826,"updatedAt":933},"fullstack-dev","build full-stack web applications","Full-stack backend architecture and frontend-backend integration guide.\nTRIGGER when: building a full-stack app, creating REST API with frontend, scaffolding backend service,\nbuilding todo app, building CRUD app, building real-time app, building chat app,\nExpress + React, Next.js API, Node.js backend, Python backend, Go backend,\ndesigning service layers, implementing error handling, managing config\u002Fauth,\nsetting up API clients, implementing auth flows, handling file uploads,\nadding real-time features (SSE\u002FWebSocket), hardening for production.\nDO NOT TRIGGER when: pure frontend UI work, pure CSS\u002Fstyling, database schema only.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[922,925,926,929,932],{"name":923,"slug":924,"type":16},"Backend","backend",{"name":910,"slug":911,"type":16},{"name":927,"slug":928,"type":16},"Full-stack","full-stack",{"name":930,"slug":931,"type":16},"REST API","rest-api",{"name":913,"slug":914,"type":16},"2026-07-13T06:16:43.219005",{"slug":935,"name":935,"fn":936,"description":937,"org":938,"tags":939,"stars":825,"repoUrl":826,"updatedAt":948},"gif-sticker-maker","create animated GIF stickers from photos","Convert photos (people, pets, objects, logos) into 4 animated GIF stickers with captions.\nUse when: user wants to create cartoon stickers, GIF expressions, emoji packs, animated avatars,\nor convert photos to Funko Pop \u002F Pop Mart blind box style animations.\nTriggers: sticker, GIF, cartoon, emoji, expression pack, avatar animation.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[940,941,942,945],{"name":905,"slug":906,"type":16},{"name":841,"slug":842,"type":16},{"name":943,"slug":944,"type":16},"Images","images",{"name":946,"slug":947,"type":16},"Media","media","2026-07-13T06:16:51.74461",{"slug":950,"name":950,"fn":951,"description":952,"org":953,"tags":954,"stars":825,"repoUrl":826,"updatedAt":964},"ios-application-dev","develop iOS applications with SwiftUI and UIKit","iOS application development guide covering UIKit, SnapKit, and SwiftUI. Includes touch targets, safe areas, navigation patterns, Dynamic Type, Dark Mode, accessibility, collection views, common UI components, and SwiftUI design guidelines. For detailed references on specific topics, see the reference files.\nUse when: developing iOS apps, implementing UI, reviewing iOS code, working with UIKit\u002FSnapKit\u002FSwiftUI layouts, building iPhone interfaces, Swift mobile development, Apple HIG compliance, iOS accessibility implementation.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[955,956,959,960,963],{"name":811,"slug":812,"type":16},{"name":957,"slug":958,"type":16},"iOS","ios",{"name":820,"slug":821,"type":16},{"name":961,"slug":962,"type":16},"SwiftUI","swiftui",{"name":823,"slug":824,"type":16},"2026-07-13T06:16:55.686092",{"slug":966,"name":966,"fn":967,"description":968,"org":969,"tags":970,"stars":825,"repoUrl":826,"updatedAt":983},"minimax-docx","create and edit DOCX documents","Professional DOCX document creation, editing, and formatting using OpenXML SDK (.NET). Three pipelines: (A) create new documents from scratch, (B) fill\u002Fedit content in existing documents, (C) apply template formatting with XSD validation gate-check. MUST use this skill whenever the user wants to produce, modify, or format a Word document — including when they say \"write a report\", \"draft a proposal\", \"make a contract\", \"fill in this form\", \"reformat to match this template\", or any task whose final output is a .docx file. Even if the user doesn't mention \"docx\" explicitly, if the task implies a printable\u002Fformal document, use this skill.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[971,974,977,980],{"name":972,"slug":973,"type":16},"Documents","documents",{"name":975,"slug":976,"type":16},"DOCX","docx",{"name":978,"slug":979,"type":16},"Office","office",{"name":981,"slug":982,"type":16},"Templates","templates","2026-07-13T06:16:40.461868",{"slug":985,"name":985,"fn":986,"description":987,"org":988,"tags":989,"stars":825,"repoUrl":826,"updatedAt":993},"minimax-music-gen","generate music and audio tracks","Use when user wants to generate music, songs, or audio tracks. Triggers on any request involving music creation, song writing, lyrics generation, audio production, or covers. Also triggers when user provides lyrics and wants them turned into a song, or describes a mood\u002Fscene and wants background music. Supports multilingual triggers — match equivalent phrases in any language. Do NOT use for music playback of existing files, music theory questions, or music recommendation without generation.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[990,991,992],{"name":838,"slug":839,"type":16},{"name":841,"slug":842,"type":16},{"name":946,"slug":947,"type":16},"2026-07-13T06:16:50.381758",{"slug":995,"name":995,"fn":996,"description":997,"org":998,"tags":999,"stars":825,"repoUrl":826,"updatedAt":1003},"minimax-music-playlist","generate personalized music playlists","Generate personalized music playlists by analyzing the user's music taste and generation feedback history. Triggers on any request involving playlist generation, music taste profiling, or personalized music recommendations. Supports multilingual triggers — match equivalent phrases in any language.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1000,1001,1002],{"name":838,"slug":839,"type":16},{"name":841,"slug":842,"type":16},{"name":946,"slug":947,"type":16},"2026-07-13T06:16:57.002997",141,{"items":1006,"total":1097},[1007,1023,1040,1051,1062,1073,1078],{"slug":1008,"name":1008,"fn":1009,"description":1010,"org":1011,"tags":1012,"stars":20,"repoUrl":21,"updatedAt":1022},"article2tasks","convert articles into Dida365 tasks","将技术周报（批量）或单篇文章整理为滴答清单待办事项，自动分类到已有清单并打标签，全程通过 MCP 写入，跨平台无需任何本地脚本。当用户提供周报内容、文章链接，或提及「周报」「文章汇总」「添加到滴答」时，使用此技能。",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1013,1016,1019],{"name":1014,"slug":1015,"type":16},"Content Creation","content-creation",{"name":1017,"slug":1018,"type":16},"MCP","mcp",{"name":1020,"slug":1021,"type":16},"Task Management","task-management","2026-08-18T03:49:38.751656",{"slug":1024,"name":1024,"fn":1025,"description":1026,"org":1027,"tags":1028,"stars":20,"repoUrl":21,"updatedAt":1039},"binder-agent-eval","evaluate LLM agent decision quality","当需要在相同的阶段输入上评测 LLM agent 的结构化决策、或对比多个 provider 的决策质量时使用；对应 openbinder evaluate-agent（--provider\u002F--compare\u002F--case）与 openbinder provider doctor。典型触发语：\"用 mock provider 跑一遍 decision case 评测\"\"对比一下几个 provider 在同一批 case 上的表现\"\"先 doctor 一下 minimax 配置通不通\"。同义场景：agent 评测、decision evaluation、visible\u002Fhidden 分层、泄露检查、provider 对比、冻结决策。",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1029,1030,1033,1036],{"name":835,"slug":836,"type":16},{"name":1031,"slug":1032,"type":16},"Benchmarking","benchmarking",{"name":1034,"slug":1035,"type":16},"Evals","evals",{"name":1037,"slug":1038,"type":16},"LLM","llm","2026-08-27T13:32:30.156635",{"slug":1041,"name":1041,"fn":1042,"description":1043,"org":1044,"tags":1045,"stars":20,"repoUrl":21,"updatedAt":1050},"binder-handoff","export and validate binder task packages","当需要把 binder 设计算力任务打包交给外部平台（Claude Science 或自有服务器）、或校验\u002F导入外部返回的结果包时使用；对应 openbinder handoff export\u002Fvalidate\u002Fimport。典型触发语：\"把这个 target 打包成 handoff 任务包\"\"校验一下对方返回的 result package\"\"把外部算回来的结果导入进来\"。同义场景：external handoff、任务包导出、结果包校验、回传包导入、RUNBOOK。",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1046,1047],{"name":14,"slug":15,"type":16},{"name":1048,"slug":1049,"type":16},"Data Engineering","data-engineering","2026-08-27T13:32:32.957864",{"slug":1052,"name":1052,"fn":1053,"description":1054,"org":1055,"tags":1056,"stars":20,"repoUrl":21,"updatedAt":1061},"binder-protocol","compile and validate binder design protocols","当需要把 binder 设计协议草稿编译成结构化 protocol.yaml、校验协议、或按阶段切出 stage slice 时使用；对应 openbinder protocol validate\u002Fcompile\u002Fshow 三个子命令。典型触发语：\"把这份 protocol 草稿编译一下\"\"校验这个 protocol.yaml\"\"把 cofold_scoring 阶段的切片拿出来\"。同义场景：协议编译、protocol compiler、十阶段、stage slice、阶段上下文、protocol validate。",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1057,1058],{"name":14,"slug":15,"type":16},{"name":1059,"slug":1060,"type":16},"YAML","yaml","2026-08-27T13:32:33.760978",{"slug":1063,"name":1063,"fn":1064,"description":1065,"org":1066,"tags":1067,"stars":20,"repoUrl":21,"updatedAt":1072},"binder-ranking-audit","audit binder campaign ranking results","当需要重算并审计 binder campaign 的候选排序、核对 recorded 与 recomputed 是否一致时使用；对应 openbinder audit-ranking（--fixture\u002F--source）。典型触发语：\"审计一下这个 campaign 的排序\"\"recorded 和 recomputed 对得上吗\"\"重算 top-N 命中率和 Spearman\"。同义场景：ranking audit、排序审计、ensemble 重算、hit rate、缺失数据处理、missing data 报告。",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1068,1069],{"name":18,"slug":19,"type":16},{"name":1070,"slug":1071,"type":16},"QA","qa","2026-08-27T13:32:34.155444",{"slug":4,"name":4,"fn":5,"description":6,"org":1074,"tags":1075,"stars":20,"repoUrl":21,"updatedAt":22},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1076,1077],{"name":14,"slug":15,"type":16},{"name":18,"slug":19,"type":16},{"slug":1079,"name":1079,"fn":1080,"description":1081,"org":1082,"tags":1083,"stars":20,"repoUrl":21,"updatedAt":1096},"binder-report","generate final reports from agent artifacts","当需要把 output\u002F 下已产生的 replay、agent 评测、ranking 审计产物汇总成最终报告束时使用；收集既有 artifact、按六类证据分级标注、生成 limitations 并提交 stage-gate 审批。典型触发语：\"把这些产物汇总成最终报告\"\"出一份 binder 最终报告和 limitations\"\"把 replay\u002F评测\u002F审计结果打包成报告束\"。同义场景：最终报告、报告束、evidence grading、limitations、claim check、收尾报告。",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1084,1087,1090,1093],{"name":1085,"slug":1086,"type":16},"Documentation","documentation",{"name":1088,"slug":1089,"type":16},"Operations","operations",{"name":1091,"slug":1092,"type":16},"Reporting","reporting",{"name":1094,"slug":1095,"type":16},"Summarization","summarization","2026-08-27T13:32:26.101404",93]