论文审查
- 作者仓库星标 80
- 作者更新于 实时读取
- 作者仓库 blatant-why
- 领域
- 通用
- 兼容 Agent
-
- Claude Code
- Cursor
- Cline
- Codex
- Windsurf
- Gemini CLI
- +20
- 信任分
- 92 / 100 · 已通过审计
- 作者 / 版本 / 许可
- @001TMF · v1.0 · 未声明 license
- Token 消耗评级
- 中等消耗
- 接入复杂程度
- 需简单配置
- 是否需要外部 API Key
- 不需要
- 兼容的系统
- 未声明(默认跨平台)
- 底层运行要求
- Python
- 文件与系统权限
-
- 只读
- 允许写入 / 修改
- Shell 执行
- 网络行为
- 仅限本地
- 安装命令数
- 26 条
档案由构建时根据 SKILL.md 与安装命令自动衍生,可能与作者实际意图存在差异。
需要注意: 未限定 allowed-tools,默认拥有全部工具权限。
---
name: by-hypothesis-debate
description: Picking the wrong design strategy on a novel target wastes a GPU day. This skill forces an expli…
category: 通用
runtime: Python
---
# by-hypothesis-debate 输出预览
## PART A: 任务判断
- 适用问题:通用任务拆解、检查和交付。
- 输入要求:目标材料、限制条件、期望输出和验收方式。
- 证据边界:围绕“When to Use This Skill / Quick Start / Inputs”读取原文规则,不把推断写成作者承诺。
## PART B: 执行结果
- **01** 任务判断:确认你的需求是否属于通用任务拆解、检查和交付,并标出输入、限制和预期结果。
- **02** 执行计划:优先按“When to Use This Skill / Quick Start / Inputs”拆成步骤,说明每一步会读取什么、修改什么、产出什么。
- **03** 交付结果:给出可复制的命令、文件改动、检查清单或内容草稿,并说明如何继续迭代。
- **04** 风险边界:结合 读取文件、写入/修改文件、执行终端命令、主要在本地完成、通常不需要额外 API Key 给出执行前确认项。
## Running Rules
- 读取文件、写入/修改文件、执行终端命令;主要在本地完成;通常不需要额外 API Key。
- 先小样例验证,再放大到真实任务。
- 交付时同时给结果、检查口径和下一步迭代建议。 原文出现了 `/by` 这类斜杠命令;如果你的 Agent 支持命令触发,优先用命令开场,再补充目标和边界。
告诉 Agent 目标文件或材料、期望结果、不可改范围、是否允许联网或执行命令。本 Skill 的权限画像是:读取文件、写入/修改文件、执行终端命令。
先用一个小任务确认它会围绕“When to Use This Skill / Quick Start / Inputs”工作;涉及文件或命令时,先看 diff、日志、预览或测试结果。
检查最终产物是否包含明确结果、必要证据和下一步动作;如果输出泛泛而谈,就补充输入、边界和验收标准后重跑。
---
name: by-hypothesis-debate
description: Picking the wrong design strategy on a novel target wastes a GPU day. This skill forces an expli…
category: 通用
source: 001TMF/blatant-why
---
# by-hypothesis-debate
## 什么时候使用
- by-hypothesis-debate 是一个通用扩展技能,按 SKILL 适合处理通用任务拆解、检查、交付和复盘,核心价值是把输入、判断、执行、验证和交付边界固定下来,避免 Agent 泛泛回答。 把任务拆成可执行、可检查、可继续迭…
- 面向通用任务拆解、检查和交付,优先处理能明确输入、步骤和验收标准的工作。
## 需要提供什么
- 目标材料、目录范围、期望结果和不可改动内容。
- 是否允许联网、执行命令、读写文件或调用外部服务。
## 执行规则
- 围绕「When to Use This Skill / Quick Start / Inputs」组织步骤,不把推断写成作者事实。
- 读取文件、写入/修改文件、执行终端命令;主要在本地完成;通常不需要额外 API Key。
- 先跑小样例,确认结果可检查后再扩大任务范围。
## 输出要求
- 给出最终产物、关键证据、验证方式和下一步动作。
- 信息不足时标记 unknown,不编造命令、平台或依赖。 作者原文负责流程事实;仓库文件负责来源和命令;流狐只补充适用场景、限制和质量判断。
skill "by-hypothesis-debate" {
输入层 -> 用户目标 + 目标文件 + 禁止范围 + 验收标准
上下文层 -> When to Use This Skill / Quick Start / Inputs
规则层 -> SKILL.md 触发条件 / 执行顺序 / 输出格式
运行层 -> Python | 读取文件、写入/修改文件、执行终端命令 | 主要在本地完成
安全层 -> 通常不需要额外 API Key + 小任务验证 + diff / 日志复核
输出层 -> 可复制结果 + 检查清单 + 下一步迭代
} BY Hypothesis-Debate Skill
Picking the wrong design strategy on a novel target wastes a GPU day. This skill forces an explicit, structured debate before any compute is spent: three hypothesis agents propose competing strategies in parallel, then a reflection agent ranks them against a fixed rubric. The winner becomes the campaign config.
The pattern is borrowed from adversarial ML and red-team review — it works because three independently-constrained agents will surface failure modes that a single planner misses, and the reflection step exposes hidden assumptions that would otherwise propagate into the campaign plan.
When to Use This Skill
✅ Use this skill when:
- Starting a campaign against a novel target (0–1 PDB structures, no SAbDab antibodies, <10 papers)
- Research findings have
CONTRADICTEDconfidence (sources disagree on epitope, modality, or scaffold) - Multiple viable modalities are on the table (VHH vs scFv vs de novo binder) and the user has not pinned one
- The user explicitly says "compare approaches", "explore options", "which strategy would you pick"
- Target difficulty is rated
novelorexploratorybyby-research - A previous campaign against the same target failed with hit rate < 5% (this skill helps replan, not retry)
❌ Do NOT use this skill when:
- Target is well-studied with a clear precedent (e.g., TNF-alpha, PD-L1, HER2) → use
by-campaign-managerdirectly - The user has already specified modality, scaffolds, and tier — debating wastes turns
- Running a preview / feasibility campaign — overhead of 3-agent debate is not worth it for 5–10 designs
- Iterating on a previously-approved campaign (round 2, 3, … reuse the prior strategy)
- The campaign is gated on lab submission — debate occurs upstream of
/by:approve-lab, not after
Quick Start
Invoke from the orchestrator (main session) after by-research has written
research.md and recommended_hotspots.json to the campaign directory:
python3 scripts/orchestrate_debate.py \
--research-dir campaigns/IL23R/campaign_20260520_001/research \
--campaign-config campaigns/IL23R/campaign_20260520_001/campaign_config.yaml \
--output-dir campaigns/IL23R/campaign_20260520_001/debate
Expected runtime: 4–8 minutes (3 hypothesis agents run in parallel ~3 min each,
reflection agent runs sequentially ~2 min). Expected output: debate/proposals/
with three strategy_proposal.json files, debate/ranking.json, and an
updated campaign_config.yaml reflecting the winning strategy.
Inputs
Required:
- Research report directory — must contain
research.md,recommended_hotspots.json,design_recommendation.json, andvalidated_findings.jsonfromby-research(8-phase pipeline) - Campaign config skeleton — a YAML file with
target,pdb_id,computeblock, butmodality,scaffolds,tierare TBD
Alternative inputs:
campaign_context.json— if present (from/by:plan-campaign), the user's preferences seed the agents but do NOT override the debate. Agents see the preference as a prior, not a constraintprevious_debate.json— if rerunning after a failed campaign, prior debate gives historical signal to the reflection agent
Optional:
- Debate budget — number of hypothesis agents (default 3; 2 acceptable for tight token budgets, 4–5 for high-stakes campaigns)
- Reflection temperature — default 0.2 for ranking stability; raise to 0.5 for genuinely novel targets to encourage challenging the rubric
- Tie-break mode —
merge(default),aggressive_wins,user_decides
See references/agent-profiles.md for full input specifications including agent-specific directive templates.
Outputs
All outputs land under <campaign_dir>/debate/:
| File | Description | Written By |
|---|---|---|
proposals/conservative.json |
Strategy proposal from Conservative agent | hypothesis agent 1 |
proposals/aggressive.json |
Strategy proposal from Aggressive agent | hypothesis agent 2 |
proposals/diverse.json |
Strategy proposal from Diverse agent | hypothesis agent 3 |
ranking.json |
Reflection agent's scoring, winner, and rationale | reflection agent |
debate_log.jsonl |
Append-only audit trail of every agent dispatch | orchestrator |
campaign_config.yaml |
Updated config — modality, scaffolds, tier filled in from winner | orchestrator |
decision_summary.md |
Human-readable recap (target, candidates, choice, why) | reflection agent |
strategy_proposal.json Schema
Every hypothesis agent writes one of these. Validation: scripts/validate_proposal.py.
{
"agent": "conservative",
"version": "1.0",
"target": "IL23R",
"modality": "VHH",
"protocol": "nanobody-anything",
"scaffolds": ["caplacizumab", "ozoralizumab"],
"tier": "standard",
"num_designs_per_scaffold": 5000,
"compute_provider": "local",
"epitope": {
"pdb_id": "6WDQ",
"target_chain": "A",
"residues": [78, 79, 80, 112, 113, 114, 115],
"range_notation": "A78-A80,A112-A115"
},
"rationale": "Well-validated VHH scaffolds + low-novelty epitope reduces risk. Expected hit rate 20-40% based on prior IL-family campaigns.",
"expected_hit_rate": "20-40%",
"expected_wall_time_hours": 8,
"key_risks": [
"VHH may sterically clash with N-glycan at N91",
"ipSAE may underestimate cytokine-receptor interface quality"
],
"mitigation": "Run Protenix 5-seed ensemble validation on top 10 designs",
"confidence": 0.78,
"research_source_ids": ["src_001", "src_003", "src_007"]
}
ranking.json Schema
The reflection agent writes one per debate.
{
"version": "1.0",
"target": "IL23R",
"ranked_at": "2026-05-20T14:32:00Z",
"candidates": [
{
"agent": "conservative",
"scientific_rigor": 0.85,
"feasibility": 0.90,
"innovation": 0.40,
"risk_adjusted_confidence": 0.72,
"composite_score": 0.7625,
"rank": 1
},
{
"agent": "diverse",
"scientific_rigor": 0.70,
"feasibility": 0.75,
"innovation": 0.70,
"risk_adjusted_confidence": 0.65,
"composite_score": 0.7100,
"rank": 2
},
{
"agent": "aggressive",
"scientific_rigor": 0.55,
"feasibility": 0.50,
"innovation": 0.95,
"risk_adjusted_confidence": 0.45,
"composite_score": 0.6125,
"rank": 3
}
],
"winner": "conservative",
"tie_break_applied": false,
"rationale": "Conservative strategy wins on feasibility (0.90) and rigor (0.85); Diverse came close but lower research-source coverage.",
"dissenting_notes": "Aggressive proposal flagged a real concern about VHH glycan clash — fold this into the conservative plan's mitigation.",
"merged_recommendations": [
"Add 'cross_check_glycan' flag from aggressive proposal to winning config",
"Reserve 1500 designs from diverse proposal for alt-epitope exploration in run_002"
]
}
For the full schema with field-by-field type constraints, see references/ranking-rubric.md.
Clarification Questions
⚠️ CRITICAL: ASK THIS FIRST — confirm research is complete before debating.
Research output present? (ASK THIS FIRST)
- Does
<campaign_dir>/research/research.mdexist? If not → runby-researchfirst; debate is pointless without target context - Are there
recommended_hotspots.jsonANDdesign_recommendation.json? If not → debate has no input - If
validated_findings.jsonshows zero HIGH confidence findings → tell user; the debate will likely produce low-confidence proposals
- Does
Has the user pinned a modality?
- If
campaign_context.jsonspecifiesmodality→ seed the agents but allow them to challenge it - If user said "use VHH" in conversation → still run debate; agents may surface a reason VHH is wrong here
- If user said "VHH only, do not consider alternatives" → SKIP debate, go straight to
by-campaign-manager
- If
What is the compute budget?
- Local GPU available? → all proposals can use
compute_provider: local - HPC (RunPod) only? → agents must size designs against HPC time budget
- Tamarind only? → agents must consider per-design cost in feasibility scoring
- Local GPU available? → all proposals can use
How novel is the target really?
- 0 PDB, 0 SAbDab, <5 papers → use full 3-agent debate, raise reflection temperature
- 0 PDB, 0 SAbDab, but has homologs with known binders → run debate; the Conservative agent will lean on homologs
- Has PDB but no antibodies → likely doesn't need debate; consider skipping
Tie-break preference?
- Default
merge— winner gets best ideas folded in from runners-up aggressive_wins— when user explicitly wants the highest-novelty option to break tiesuser_decides— escalate to user when top 2 scores differ by < 5%
- Default
Is this a replan after failure?
- If yes, point to
campaigns/<target>/.../previous_debate.json. Reflection agent will downrank strategies similar to the failed one - Add the failure mode (e.g., "all designs had ipSAE < 0.4") to the orchestration prompt so agents avoid it
- If yes, point to
What is the primary goal of this campaign?
- Hit rate → favors Conservative (well-trodden paths)
- Diversity → favors Diverse (broad epitope/scaffold coverage)
- Novelty / first-in-class → favors Aggressive (high-novelty hypotheses)
- Balanced → reflection rubric weights all four dimensions equally
For decision detail and example transcripts, see references/agent-profiles.md §2.
Standard Workflow
🚨 MANDATORY: USE scripts/orchestrate_debate.py — DO NOT INLINE THE TASK() CALLS 🚨
The orchestrator script wraps Task() dispatch, agent prompt construction, JSON
validation, and writes the debate log. Inlining the calls breaks the audit trail
and skips proposal schema validation.
Step 1: Verify Research Inputs
ls <campaign_dir>/research/
# Must show: research.md, recommended_hotspots.json,
# design_recommendation.json, validated_findings.json
✅ VERIFICATION: All four files exist and validated_findings.json has at
least 1 finding with confidence HIGH or MEDIUM.
❌ DON'T: Start the debate if research is incomplete — agents will hallucinate.
Step 2: Run the Orchestrator
python3 scripts/orchestrate_debate.py \
--research-dir <campaign_dir>/research \
--campaign-config <campaign_dir>/campaign_config.yaml \
--output-dir <campaign_dir>/debate \
--num-agents 3 \
--tie-break merge
Expected stdout:
✓ Loaded research from <campaign_dir>/research
✓ Spawned conservative agent (task_id=tsk_001)
✓ Spawned aggressive agent (task_id=tsk_002)
✓ Spawned diverse agent (task_id=tsk_003)
✓ Collected 3/3 proposals
✓ Validated all proposals against schema
✓ Spawned reflection agent (task_id=tsk_004)
✓ Ranking complete: winner=conservative, composite=0.7625
✓ Updated campaign_config.yaml
✓ Debate completed: 7 minutes 12 seconds
Step 3: Validate Proposals (Automatic)
The orchestrator calls scripts/validate_proposal.py on each proposal before
passing to the reflection agent. If a proposal fails validation, it is dropped
and reported. The reflection agent never sees malformed proposals.
Step 4: Review the Decision
Read <campaign_dir>/debate/decision_summary.md. Present the winner to the
user with the dissenting notes from runners-up.
Step 5: Hand Off to by-campaign-manager
Once the user approves the winner, the updated campaign_config.yaml flows
directly into by-campaign-manager for execution. No re-planning needed.
Script Failure Hierarchy
- Fix and Retry (90%) — Missing Python package, stale research files → fix the underlying issue, re-run
orchestrate_debate.py - Modify Script (5%) — Need to add an agent persona (e.g.,
safety-engineer) → editscripts/orchestrate_debate.py, keep the rubric file in sync - Use as Reference (4%) — Want a one-off debate with custom prompts → read the script, run the
Task()calls manually, write proposals by hand - Write from Scratch (1%) — Only if the entire campaign workflow is being replaced. Document the deviation in the campaign log
⚠️ CRITICAL — DO NOT:
- ❌ Skip JSON validation → malformed proposals corrupt the ranking
- ❌ Run agents sequentially → wastes wall-clock time; they must be parallel
- ❌ Edit a proposal after it's written → breaks the audit trail (write a follow-up note in
debate_log.jsonl) - ❌ Let the reflection agent score its own writeups (no recursion)
When Scripts Fail
| Failure | Diagnosis | Action |
|---|---|---|
FileNotFoundError: research.md |
Research not run yet | Run by-research first; do not bypass |
ValidationError: missing field 'modality' |
Hypothesis agent skipped a field | Re-spawn that one agent with a more explicit directive (see references/agent-profiles.md) |
| Reflection agent crashes / returns malformed JSON | Token limit, prompt confusion | Apply references/fallback-decisions.md §3 |
| All 3 proposals score < 0.5 composite | Research is too thin OR target is too hard | Apply references/fallback-decisions.md §2 |
| Top 2 scores within 5% | Genuine tie | Tie-break protocol (next section) |
| Agent returns identical proposals | Same prompt, no diversity injection | Check agent-profiles.md directive distinctness; raise temperature |
Decision Points
Tie-Break Protocol (top 2 scores within 5%)
When the composite scores of the top two proposals differ by less than 0.05, the orchestrator applies the configured tie-break mode:
| Mode | Behavior |
|---|---|
merge (default) |
Winner is the higher-ranked, but merged_recommendations lifts the runner-up's strongest single recommendation into the winner's config |
aggressive_wins |
When tied, prefer the higher-innovation proposal (forces exploration on novel targets) |
user_decides |
Orchestrator pauses, presents both summaries to the user via decision_summary.md, awaits explicit pick |
risk_adjusted |
Prefer the proposal with higher risk_adjusted_confidence (favors low-variance outcomes) |
If three proposals are all within 5% of each other (rare, ~3% of debates), the orchestrator escalates regardless of mode — see references/fallback-decisions.md §1.
Conservative vs Aggressive vs Diverse — When Each Wins
| Scenario | Likely Winner | Why |
|---|---|---|
| Well-studied target snuck through research filter | Conservative | High rigor + feasibility scores overwhelm Innovation |
| Truly novel target, well-funded campaign | Aggressive | Innovation weight matters; user explicitly wants first-in-class |
| Multi-modality decision (VHH vs scFv) without clear winner | Diverse | Proposes parallel-coverage panel across modalities |
| Replan after failure | Conservative or Diverse | Aggressive's prior strategy already failed — reflection downranks it |
| Target with known liability surface | Diverse | Spreads designs across non-liability epitopes |
When the Debate Itself Is Wrong
If the winning proposal contradicts the validated_findings.json HIGH-confidence
findings (e.g., proposes a modality the research explicitly ruled out), the
reflection agent must flag this and the orchestrator must escalate to the
user. Never silently override the research.
Worked Examples
Example 1: Novel Target — IL23R Cytokine Receptor
Setup:
- 1 PDB (6WDQ), no SAbDab entries, 12 PubMed papers, all signaling-focused
- User asked: "design something against IL23R"
- Research confidence: 3 HIGH (interface residues from 6WDQ), 0 CONTRADICTED
Debate inputs: validated_findings.json flags N91 N-glycan adjacent to the
proposed epitope. design_recommendation.json defaults to VHH.
Conservative proposal:
- Modality: VHH, scaffolds: caplacizumab + ozoralizumab, tier: standard, 5000/scaffold
- Composite score: 0.7625 (rigor 0.85, feasibility 0.90, innovation 0.40, risk 0.72)
Aggressive proposal:
- Modality: de novo binder via PXDesign, custom hotspot ring around N91 (avoid glycan)
- Composite score: 0.6125 (rigor 0.55 — relies on AlphaFold-only model, feasibility 0.50, innovation 0.95, risk 0.45)
Diverse proposal:
- Two sub-runs: 3000 VHH + 1500 de novo binder, different epitope faces
- Composite score: 0.7100 (rigor 0.70, feasibility 0.75, innovation 0.70, risk 0.65)
Winner: Conservative. Tie-break not applied (delta 0.0525 > 0.05).
Merged recommendation from runner-up (Diverse): Reserve 1500 designs from the standard budget for an alt-epitope run_002 if run_001 hit rate < 20%.
Dissent kept: Aggressive's glycan flag rolled into the Conservative
mitigation plan as cross_check_glycan_clash: true.
Example 2: Multi-Modality Decision — Disordered Target
Setup:
- Intrinsically disordered protein, no PDB structure, 4 NMR papers
- User asked: "compare approaches" (explicit debate trigger)
- Research recommended both VHH and de novo binder, with caveats on both
Conservative proposal:
- VHH using AntiFold against a representative AlphaFold conformer
- Composite: 0.5450 (rigor 0.60, feasibility 0.55, innovation 0.40, risk 0.55) — low rigor; AF model unreliable for IDPs
Aggressive proposal:
- De novo cyclic peptide via PXDesign with conformational ensemble input
- Composite: 0.5800 (rigor 0.50, feasibility 0.55, innovation 0.90, risk 0.40) — high innovation but high variance
Diverse proposal:
- 1500 VHH + 1500 de novo cyclic peptide + 500 linear-binder controls
- Composite: 0.6300 (rigor 0.65, feasibility 0.65, innovation 0.65, risk 0.60)
Tie-break check: Top two (Diverse 0.6300, Aggressive 0.5800) differ by 0.05 exactly. Tie-break threshold is strict less-than-0.05, so NOT applied. Diverse wins outright.
Winner: Diverse — appropriate for a truly novel modality decision. The campaign config is split into three sub-runs with separate logs.
Reflection notes: "All three proposals scored < 0.7. Confidence is low. Run preview tier first (5–10 designs per sub-run), escalate to standard only after validation."
Common Issues
| Issue | Cause | Solution | Details |
|---|---|---|---|
| All 3 proposals look the same | Agent directives not differentiated enough; same temperature | Read references/agent-profiles.md §1; ensure each agent has its "what to ignore" list | Diversity is engineered, not emergent |
| Reflection agent always picks Conservative | Rubric weights tilted toward feasibility | Adjust weights in references/ranking-rubric.md; consider aggressive_wins tie-break |
Default rubric favors low-variance |
| Proposal has missing fields | Agent ran out of tokens or got distracted | Re-spawn with shorter directive; check validate_proposal.py output |
See references/agent-profiles.md §3 |
| Composite scores all > 0.9 | Reflection agent is being too generous | Lower reflection temperature to 0.1; force per-axis justification | Calibration drift |
| Composite scores all < 0.4 | Research is too thin OR target is genuinely intractable | Run by-research UltraDeep; if still poor, abort campaign |
references/fallback-decisions.md §2 |
| Aggressive proposal recommends a tool not installed | Agent didn't check environment | Pre-load .by/environment.json into the orchestration prompt |
Always pass compute config |
| Reflection agent crashes mid-rank | Token overflow on long proposals | Truncate rationale field to 500 tokens before reflection |
references/fallback-decisions.md §3 |
| Three-way tie within 5% | Genuine ambiguity OR weak research | Escalate to user via user_decides mode |
references/fallback-decisions.md §1 |
Winner contradicts validated_findings.json HIGH finding |
Reflection rubric not weighting research alignment enough | Flag to user — do NOT auto-execute | references/ranking-rubric.md §5 |
| Debate produces same winner across 3 reruns | Determinism in agent dispatch | This is fine — stability is a feature when the answer is clear | Only an "issue" if you wanted exploration |
orchestrate_debate.py crashes on import |
Missing dependency (PyYAML, jsonschema) | pip install pyyaml jsonschema |
Script handles ImportError gracefully |
validate_proposal.py rejects valid-looking JSON |
Schema version mismatch | Confirm "version": "1.0" field on proposal |
Future-proofing |
Best Practices
- 🚨 CRITICAL: Always run
by-researchto completion before debating. Debate without research is fanfic - 🚨 CRITICAL: Never let the orchestrator skip the reflection agent. Three proposals without ranking is worse than one proposal
- ✅ REQUIRED: Run hypothesis agents in parallel, never sequentially. Sequential dispatch leaks information from agent 1 into agent 3
- ✅ REQUIRED: Validate every proposal against the schema before reflection. Malformed JSON breaks the ranking
- ✅ Log every dispatch to
debate_log.jsonl. The audit trail is how you debug post-hoc when a campaign goes sideways - ✅ Use
mergetie-break by default — runners-up almost always have one or two ideas worth keeping - ✅ Re-run the debate after a failed campaign. Pass the failure mode in the orchestration prompt; reflection downranks repeats
- ✅ Keep the Aggressive agent honest — its proposals are the highest-variance, so the reflection rubric must penalize unjustified novelty
- ✨ Optional: Raise reflection temperature to 0.4–0.5 for truly novel targets; default 0.2 favors well-established choices
- ❌ DON'T: Inline
Task()calls in the main session. Always go throughorchestrate_debate.pyfor the audit trail - ❌ DON'T: Let the user veto the debate output without recording the override in
decision_summary.md. Decisions outside the rubric should be traceable
Suggested Next Steps
After the debate produces a winning strategy:
- Run
by-campaign-manager— the updatedcampaign_config.yamlis now ready for sizing, tier confirmation, and launch. The debate'smerged_recommendationsflow into the campaign plan - Run
by-design-workflowif the user wants full orchestration through to design + screening - Run
by-hypothesis-debateagain (with--reuse-research) only if the user wants to revisit the decision; debates are not free, so this is a deliberate choice - Run
by-failure-diagnosisif a downstream campaign using this debate's winner fails — pass the debate output in so the diagnosis knows what was rejected and why
Chaining rationale: debate writes the strategy; campaign-manager executes it. Keeping these separate means the debate output is reusable (you can switch the executor — local vs HPC — without rerunning the debate).
Related Skills
Upstream (run before):
by-research— produces the research artifacts the debate consumesby-epitope-analysis— deeper epitope characterization if the research left gaps
Downstream (run after):
by-campaign-manager— executes the winning strategyby-design-workflow— end-to-end orchestration including this debateby-failure-diagnosis— diagnoses why a debate-selected strategy failed
Alternative / Complementary:
by-campaign-optimizer— active-learning loop that adjusts strategy within a campaign (not before)by-knowledge— queried by hypothesis agents for prior campaign evidence
References
Detailed Documentation
- references/agent-profiles.md — Full directive templates for Conservative, Aggressive, and Diverse hypothesis agents. Includes what each agent is told to weight, what to ignore, and the exact system-prompt skeleton
- references/ranking-rubric.md — Scoring formulas, weight configuration, calibration examples, and how the reflection agent justifies each axis score
- references/fallback-decisions.md — Decision trees for three failure modes: three-way ties, universally low scores, and reflection agent crashes
- references/example_debate_output.json — Complete fixture of a debate against IL23R: 3 proposals + ranking, suitable for testing and onboarding
Scripts
scripts/orchestrate_debate.py— CLI orchestrator: reads research + campaign config, spawns 3 hypothesis tasks in parallel, collects proposals, invokes reflection, writes the winner intocampaign_config.yamlscripts/validate_proposal.py— CLI validator: checks a proposal JSON against the schema documented in this SKILL.md. Exits non-zero on schema violation with a precise error message
Official Documentation
- Anthropic Claude Code Task() API — for the agent dispatch pattern
templates/CLAUDE.md— overall BY orchestration guide (agent delegation protocol, model resolution)
Related Methodologies
- Adversarial debate as decision procedure: Irving, Christiano, Amodei (2018) AI safety via debate
- Red-team review for protein design strategy selection (internal BY practice; not yet published)
License: All scripts in this skill are LGPL-compatible and permit commercial use. No proprietary algorithms or datasets are embedded.
先判断是否适合
作者设计意图
作者的方法与取舍
边界和复核