/exp-eval
Convert completed experiment results into wiki knowledge updates.
Review LLM acts as an impartial judge (following cross-model-review), independently evaluating how experimental results affect the linked idea's hypothesis.
Four verdict paths: supported → idea validated / partially_supported → supplementary experiments /
not_supported → idea failed / inconclusive → debug.
Auto-updates the linked idea's status, failure_reason, and graph edges.
Inputs
experiment: slug from wiki/experiments/ (status must be completed)
--auto (optional): automatic mode — do not pause for user confirmation before wiki updates (used when called by /research)
Outputs
wiki/ideas/{linked-idea}.md — updated status, failure_reason, date_resolved
wiki/experiments/{slug}.md — ## Idea updates section filled in (records the linked idea's status transition; replaces the legacy ## Claim updates heading)
wiki/graph/edges.jsonl — new supports / invalidates edges added (experiment → idea)
wiki/graph/context_brief.md — rebuilt
wiki/graph/open_questions.md — rebuilt
wiki/log.md — appended log entry
- VERDICT_REPORT (printed to terminal) — verdict result, wiki change summary, next step suggestions
Wiki Interaction
Reads
wiki/experiments/{slug}.md — experiment results: outcome, key_result, metrics, full Results section, linked_idea
wiki/ideas/{linked-idea}.md — linked idea current state: status, ## Hypothesis, ## Risks
wiki/experiments/*.md — sibling experiments with the same linked_idea (aggregate assessment)
wiki/graph/context_brief.md — global context
.claude/skills/shared-references/cross-model-review.md — reviewer independence principle
Writes
wiki/ideas/{linked-idea}.md — update status, failure_reason, date_resolved
wiki/experiments/{slug}.md — fill in ## Idea updates section
wiki/graph/edges.jsonl — add supports / invalidates edges (experiment → idea)
wiki/graph/context_brief.md — rebuild
wiki/graph/open_questions.md — rebuild
wiki/log.md — append operation log
Graph edges created
supports: experiment → idea (experiment supports the idea's hypothesis) — verdict = supported or partially_supported
invalidates: experiment → idea (experiment refutes the idea's hypothesis) — verdict = not_supported
Workflow
Precondition:
- Confirm working directory is the wiki project root (directory containing
wiki/, raw/, tools/)
- Confirm experiment status ==
completed (incomplete experiments cannot be evaluated)
Step 1: Load Context
Read experiment page wiki/experiments/{slug}.md:
outcome (succeeded/failed/inconclusive)
key_result
linked_idea slug (mandatory; refuse to proceed if missing)
metrics and full ## Results section
hypothesis
Read linked idea wiki/ideas/{linked-idea}.md:
- Current
status
## Hypothesis, ## Approach sketch, ## Risks, ## Novelty argument
Load sibling experiments (same linked_idea):
- Glob
wiki/experiments/*.md, filter linked_idea == this idea
- Summarize their outcomes (the verdict considers the whole evidence portfolio, not just this one experiment)
Read global context: wiki/graph/context_brief.md
Read cross-model-review.md: confirm Review LLM independence principle
Step 2: Review LLM Verdict (Cross-Model Verdict)
Follow cross-model-review.md: do not send Claude's pre-judgment to Review LLM.
mcp__llm-review__chat:
system: "You are an impartial scientific judge evaluating whether experimental
results support or refute a research hypothesis. Be rigorous and objective.
Consider: statistical significance, effect size, experimental validity,
potential confounds, and whether the results generalize beyond the
specific setup tested."
message: |
## Idea Hypothesis Under Test
Title: {idea title}
Hypothesis: {idea ## Hypothesis section}
Novelty argument: {idea ## Novelty argument section}
Current status: {idea status}
## Experiment
Title: {experiment title}
Hypothesis: {experiment hypothesis}
Setup: {model, dataset, hardware, framework}
Metrics: {metrics list}
## Results
{full Results section from experiment page}
## Key Finding
{key_result}
## Sibling Experiments on This Idea
{summary of other experiments' outcomes that share the same linked_idea, if any}
## Your Task
Provide your verdict:
1. **Verdict**: One of: supported / partially_supported / not_supported / inconclusive
2. **Evidence strength**: weak / moderate / strong
3. **Idea status recommendation**: keep current / advance to validated / mark failed
4. **Key reasoning**: 2-3 sentences explaining your verdict
5. **Concerns**: Any methodological concerns or limitations
6. **Suggested next steps**: What would strengthen or clarify this result?
Record Review LLM's verdict.
Step 3: Claude Synthesis
Form Claude's independent verdict (after reading Review LLM's verdict, Claude also analyzes independently):
- Based on experimental results, the idea's hypothesis, and aggregate evidence from sibling experiments
- Form Claude's own verdict and idea-status recommendation
Synthesize both verdicts (follow cross-model-review.md composing rules):
- Both agree (same verdict): use that verdict, high certainty
- Both disagree:
- Explicitly flag the disagreement
- Take the more conservative verdict (supported > partially_supported > not_supported)
- Detail the disagreement reason in the report
- Fatal findings take priority: if either party finds a methodological issue (data leakage, unfair comparison), that finding takes precedence
Determine final verdict: verdict + evidence_strength + idea_status_change
Step 4: Update Wiki Based on Verdict
If --auto is not set: display verdict and planned changes first, wait for user confirmation.
Path A: SUPPORTED (experiment supports the idea's hypothesis)
Update idea:
Add graph edge:
python3 tools/research_wiki.py add-edge wiki/ \
--from "experiments/{slug}" --to "ideas/{linked-idea}" \
--type supports --evidence "{key_result}"
Suggest next steps: /paper-plan {linked-idea} or continue ablation/robustness experiments
Path B: PARTIALLY_SUPPORTED (partial support)
Update idea:
- Lifecycle stays at the current state (
in_progress or tested)
Add graph edge:
python3 tools/research_wiki.py add-edge wiki/ \
--from "experiments/{slug}" --to "ideas/{linked-idea}" \
--type supports --evidence "Partially supported: {limitation}"
Suggest supplementary experiments:
- Specify what evidence is missing
- Suggest using
/exp-design --linked-idea {linked-idea} to design supplementary experiments
- If Review LLM-flagged concerns are addressable by experiment, suggest concrete experiment direction
Path C: NOT_SUPPORTED (experiment refutes the idea's hypothesis)
Update idea:
Add graph edge:
python3 tools/research_wiki.py add-edge wiki/ \
--from "experiments/{slug}" --to "ideas/{linked-idea}" \
--type invalidates --evidence "{failure_reason}"
Suggest next steps:
- Analyze the failure reason
- Consider pivoting (new idea addressing the same gap while avoiding the known failure)
- Suggest
/ideate to generate alternatives
Path D: INCONCLUSIVE (results are uncertain)
Do not modify idea status: insufficient evidence to make a judgment
Update experiment page: outcome is already inconclusive (set by /exp-run)
Suggest debugging:
- Data issue? Implementation bug? Wrong metric?
- Too much variance? More seeds needed?
- Experiment setup not aligned with the idea's hypothesis?
Idea status unchanged: keep current status
All Paths (common steps)
Fill in the ## Idea updates section of the experiment page (records changes to the linked idea, not a separate claim entity):
## Idea updates
- **Verdict**: {supported/partially_supported/not_supported/inconclusive}
- **Linked idea**: [[{linked-idea}]] status {old} → {new}
- **Judge agreement**: {Claude and Review LLM agreed / disagreed on ...}
- **Date**: YYYY-MM-DD
Update index.md (if idea status changed)
Rebuild derived data:
python3 tools/research_wiki.py rebuild-context-brief wiki/
python3 tools/research_wiki.py rebuild-open-questions wiki/
Append log:
python3 tools/research_wiki.py log wiki/ \
"exp-eval | {slug} → ideas/{linked-idea} | verdict: {verdict} | idea status: {old}→{new}"
Print VERDICT_REPORT to terminal:
# Verdict Report: {experiment title}
## Verdict: {SUPPORTED / PARTIALLY_SUPPORTED / NOT_SUPPORTED / INCONCLUSIVE}
## Judge Assessment
| | Claude | Review LLM | Final |
|---|-------|------|-------|
| Verdict | {verdict} | {verdict} | {verdict} |
| Idea status rec | {rec} | {rec} | {rec} |
| Evidence strength | {strength} | {strength} | {strength} |
## Key Reasoning
{2-3 sentences from Review LLM + Claude synthesis}
## Wiki Changes
| Entity | Field | Before | After |
|--------|-------|--------|-------|
| ideas/{slug} | status | {old} | {new} |
## Graph Edges Added
- experiments/{slug} → ideas/{linked-idea} (supports/invalidates)
## Concerns
{methodological concerns from Review LLM}
## Next Steps
- {path-specific suggestions}
## Wiki Growth
| Metric | Before | After | Delta |
|--------|--------|-------|-------|
| Ideas validated | {before} | {after} | +{delta} |
| Ideas failed | {before} | {after} | +{delta} |
| Edges | {before} | {after} | +{delta} |
| Maturity | {level} | {level} | {unchanged/upgraded} |
(Data from comparing `python3 tools/research_wiki.py maturity wiki/ --json` calls at the start of Step 1 and end of Step 4.)
Constraints
- Only process completed experiments: experiments with status != completed are refused; prompt user to use /exp-run first.
linked_idea is mandatory: refuse to evaluate any experiment whose linked_idea is empty (the new schema enforces this; if you encounter such a page it is a pre-refactor artifact and must be fixed manually).
- Reviewer independence: strictly follow cross-model-review.md — do not send Claude's pre-judgment to Review LLM.
failure_reason must be specific: the not_supported path's failure_reason cannot be vague (e.g. "experiment failed") — must state the concrete reason. transition --reason rejects an empty string.
- Idea lifecycle is forward-only:
proposed → in_progress → tested → validated/failed. Use tools/research_wiki.py transition (not direct frontmatter writes) so the lifecycle validator runs.
- Graph edges via tools/research_wiki.py: do not manually edit
edges.jsonl.
- Conservative principle: when Claude and Review LLM verdicts disagree, use the more conservative verdict.
- Assess using all sibling experiments: consider not just the current experiment but also other experiments sharing the same
linked_idea.
Error Handling
- Experiment not found: prompt user to check slug, list candidates in
wiki/experiments/ with status=completed.
- Experiment not completed: report status, suggest running
/exp-run {slug} or /exp-run {slug} --check.
linked_idea missing: refuse to proceed; instruct the user to run /edit to set the experiment's linked_idea.
- Linked idea page does not exist: report a dangling reference; refuse to update — recommend
/edit or /ideate to create the idea page first.
- Review LLM unavailable: fall back to Claude single-model verdict, note "single-model verdict, cross-model verification unavailable" in report, suggest user confirm later.
- Idea was modified by another experiment: re-read the latest state before applying transitions; do not overwrite a more advanced lifecycle state with a lower one.
- Results data missing: if the experiment page's Results section is empty, prompt user to run
/exp-run {slug} --check first.
Dependencies
Tools(via Bash)
python3 tools/research_wiki.py transition wiki/ideas/{slug}.md --to validated|failed [--reason "..."] — advance idea lifecycle
python3 tools/research_wiki.py add-edge wiki/ ... — add graph edge
python3 tools/research_wiki.py rebuild-context-brief wiki/ — rebuild query_pack
python3 tools/research_wiki.py rebuild-open-questions wiki/ — rebuild gap_map
python3 tools/research_wiki.py log wiki/ "<message>" — append log
MCP Servers
mcp__llm-review__chat — Step 2 Review LLM independent verdict
Claude Code Native
Read — read wiki pages
Glob — find sibling experiments sharing the same linked_idea
Edit — update wiki pages
Shared References
.claude/skills/shared-references/cross-model-review.md — Review LLM independence principle (required reading)
Called by
/research Stage 4 (verdict and iteration stage)
- User directly
1---2name: autosci-exp-eval3description: Experiment verdict gate — Review LLM independently judges results → 4 verdict paths → auto-update the linked idea's status / failure_reason and graph edges4---56# /exp-eval78> Convert completed experiment results into wiki knowledge updates.9> Review LLM acts as an impartial judge (following cross-model-review), independently evaluating how experimental results affect the linked idea's hypothesis.10> Four verdict paths: supported → idea validated / partially_supported → supplementary experiments /11> not_supported → idea failed / inconclusive → debug.12> Auto-updates the linked idea's `status`, `failure_reason`, and graph edges.1314## Inputs1516- `experiment`: slug from `wiki/experiments/` (status must be `completed`)17- `--auto` (optional): automatic mode — do not pause for user confirmation before wiki updates (used when called by /research)1819## Outputs2021- `wiki/ideas/{linked-idea}.md` — updated `status`, `failure_reason`, `date_resolved`22- `wiki/experiments/{slug}.md` — `## Idea updates` section filled in (records the linked idea's status transition; replaces the legacy `## Claim updates` heading)23- `wiki/graph/edges.jsonl` — new `supports` / `invalidates` edges added (experiment → idea)24- `wiki/graph/context_brief.md` — rebuilt25- `wiki/graph/open_questions.md` — rebuilt26- `wiki/log.md` — appended log entry27- **VERDICT_REPORT** (printed to terminal) — verdict result, wiki change summary, next step suggestions2829## Wiki Interaction3031### Reads32- `wiki/experiments/{slug}.md` — experiment results: `outcome`, `key_result`, `metrics`, full Results section, `linked_idea`33- `wiki/ideas/{linked-idea}.md` — linked idea current state: `status`, `## Hypothesis`, `## Risks`34- `wiki/experiments/*.md` — sibling experiments with the same `linked_idea` (aggregate assessment)35- `wiki/graph/context_brief.md` — global context36- `.claude/skills/shared-references/cross-model-review.md` — reviewer independence principle3738### Writes39- `wiki/ideas/{linked-idea}.md` — update `status`, `failure_reason`, `date_resolved`40- `wiki/experiments/{slug}.md` — fill in `## Idea updates` section41- `wiki/graph/edges.jsonl` — add `supports` / `invalidates` edges (experiment → idea)42- `wiki/graph/context_brief.md` — rebuild43- `wiki/graph/open_questions.md` — rebuild44- `wiki/log.md` — append operation log4546### Graph edges created47- `supports`: experiment → idea (experiment supports the idea's hypothesis) — verdict = supported or partially_supported48- `invalidates`: experiment → idea (experiment refutes the idea's hypothesis) — verdict = not_supported4950## Workflow5152**Precondition**:531. Confirm working directory is the wiki project root (directory containing `wiki/`, `raw/`, `tools/`)542. Confirm experiment status == `completed` (incomplete experiments cannot be evaluated)5556### Step 1: Load Context57581. **Read experiment page** `wiki/experiments/{slug}.md`:59 - `outcome` (succeeded/failed/inconclusive)60 - `key_result`61 - `linked_idea` slug (mandatory; refuse to proceed if missing)62 - `metrics` and full `## Results` section63 - `hypothesis`64652. **Read linked idea** `wiki/ideas/{linked-idea}.md`:66 - Current `status`67 - `## Hypothesis`, `## Approach sketch`, `## Risks`, `## Novelty argument`68693. **Load sibling experiments** (same `linked_idea`):70 - Glob `wiki/experiments/*.md`, filter `linked_idea == this idea`71 - Summarize their outcomes (the verdict considers the whole evidence portfolio, not just this one experiment)72734. **Read global context**: `wiki/graph/context_brief.md`74755. **Read cross-model-review.md**: confirm Review LLM independence principle7677### Step 2: Review LLM Verdict (Cross-Model Verdict)7879**Follow cross-model-review.md**: do not send Claude's pre-judgment to Review LLM.8081```82mcp__llm-review__chat:83 system: "You are an impartial scientific judge evaluating whether experimental84 results support or refute a research hypothesis. Be rigorous and objective.85 Consider: statistical significance, effect size, experimental validity,86 potential confounds, and whether the results generalize beyond the87 specific setup tested."88 message: |89 ## Idea Hypothesis Under Test90 Title: {idea title}91 Hypothesis: {idea ## Hypothesis section}92 Novelty argument: {idea ## Novelty argument section}93 Current status: {idea status}9495 ## Experiment96 Title: {experiment title}97 Hypothesis: {experiment hypothesis}98 Setup: {model, dataset, hardware, framework}99 Metrics: {metrics list}100101 ## Results102 {full Results section from experiment page}103104 ## Key Finding105 {key_result}106107 ## Sibling Experiments on This Idea108 {summary of other experiments' outcomes that share the same linked_idea, if any}109110 ## Your Task111 Provide your verdict:112 1. **Verdict**: One of: supported / partially_supported / not_supported / inconclusive113 2. **Evidence strength**: weak / moderate / strong114 3. **Idea status recommendation**: keep current / advance to validated / mark failed115 4. **Key reasoning**: 2-3 sentences explaining your verdict116 5. **Concerns**: Any methodological concerns or limitations117 6. **Suggested next steps**: What would strengthen or clarify this result?118```119120Record Review LLM's verdict.121122### Step 3: Claude Synthesis1231241. **Form Claude's independent verdict** (after reading Review LLM's verdict, Claude also analyzes independently):125 - Based on experimental results, the idea's hypothesis, and aggregate evidence from sibling experiments126 - Form Claude's own verdict and idea-status recommendation1271282. **Synthesize both verdicts** (follow cross-model-review.md composing rules):129 - **Both agree** (same verdict): use that verdict, high certainty130 - **Both disagree**:131 - Explicitly flag the disagreement132 - Take the more conservative verdict (supported > partially_supported > not_supported)133 - Detail the disagreement reason in the report134 - **Fatal findings take priority**: if either party finds a methodological issue (data leakage, unfair comparison), that finding takes precedence1351363. **Determine final verdict**: verdict + evidence_strength + idea_status_change137138### Step 4: Update Wiki Based on Verdict139140**If `--auto` is not set**: display verdict and planned changes first, wait for user confirmation.141142#### Path A: SUPPORTED (experiment supports the idea's hypothesis)1431441. **Update idea**:145 - If the idea covers a single hypothesis and this experiment is the main experiment block, transition the idea to `validated`:146 ```bash147 python3 tools/research_wiki.py transition wiki/ideas/{linked-idea}.md --to validated148 ```149 - Otherwise leave the idea in its current lifecycle state (`tested` if it had previously been; `in_progress` if not).1501512. **Add graph edge**:152 ```bash153 python3 tools/research_wiki.py add-edge wiki/ \154 --from "experiments/{slug}" --to "ideas/{linked-idea}" \155 --type supports --evidence "{key_result}"156 ```1571583. **Suggest next steps**: `/paper-plan {linked-idea}` or continue ablation/robustness experiments159160#### Path B: PARTIALLY_SUPPORTED (partial support)1611621. **Update idea**:163 - Lifecycle stays at the current state (`in_progress` or `tested`)1641652. **Add graph edge**:166 ```bash167 python3 tools/research_wiki.py add-edge wiki/ \168 --from "experiments/{slug}" --to "ideas/{linked-idea}" \169 --type supports --evidence "Partially supported: {limitation}"170 ```1711723. **Suggest supplementary experiments**:173 - Specify what evidence is missing174 - Suggest using `/exp-design --linked-idea {linked-idea}` to design supplementary experiments175 - If Review LLM-flagged concerns are addressable by experiment, suggest concrete experiment direction176177#### Path C: NOT_SUPPORTED (experiment refutes the idea's hypothesis)1781791. **Update idea**:180 - Transition to `failed`:181 ```bash182 python3 tools/research_wiki.py transition wiki/ideas/{linked-idea}.md --to failed --reason "<concrete reason>"183 ```184 `transition` requires a non-empty `--reason`; supply the synthesized failure reason here. The `transition` command writes `failure_reason` and `date_resolved` automatically.185 - Note: `failure_reason` is anti-repetition memory — it must state the concrete reason, not vague "did not work".1861872. **Add graph edge**:188 ```bash189 python3 tools/research_wiki.py add-edge wiki/ \190 --from "experiments/{slug}" --to "ideas/{linked-idea}" \191 --type invalidates --evidence "{failure_reason}"192 ```1931943. **Suggest next steps**:195 - Analyze the failure reason196 - Consider pivoting (new idea addressing the same gap while avoiding the known failure)197 - Suggest `/ideate` to generate alternatives198199#### Path D: INCONCLUSIVE (results are uncertain)2002011. **Do not modify idea status**: insufficient evidence to make a judgment2022032. **Update experiment page**: outcome is already inconclusive (set by /exp-run)2042053. **Suggest debugging**:206 - Data issue? Implementation bug? Wrong metric?207 - Too much variance? More seeds needed?208 - Experiment setup not aligned with the idea's hypothesis?2092104. **Idea status unchanged**: keep current status211212#### All Paths (common steps)2132141. **Fill in the `## Idea updates` section of the experiment page** (records changes to the linked idea, not a separate claim entity):215 ```markdown216 ## Idea updates217 - **Verdict**: {supported/partially_supported/not_supported/inconclusive}218 - **Linked idea**: [[{linked-idea}]] status {old} → {new}219 - **Judge agreement**: {Claude and Review LLM agreed / disagreed on ...}220 - **Date**: YYYY-MM-DD221 ```2222232. **Update index.md** (if idea status changed)2242253. **Rebuild derived data**:226 ```bash227 python3 tools/research_wiki.py rebuild-context-brief wiki/228 python3 tools/research_wiki.py rebuild-open-questions wiki/229 ```2302314. **Append log**:232 ```bash233 python3 tools/research_wiki.py log wiki/ \234 "exp-eval | {slug} → ideas/{linked-idea} | verdict: {verdict} | idea status: {old}→{new}"235 ```2362375. **Print VERDICT_REPORT to terminal**:238 ```markdown239 # Verdict Report: {experiment title}240241 ## Verdict: {SUPPORTED / PARTIALLY_SUPPORTED / NOT_SUPPORTED / INCONCLUSIVE}242243 ## Judge Assessment244 | | Claude | Review LLM | Final |245 |---|-------|------|-------|246 | Verdict | {verdict} | {verdict} | {verdict} |247 | Idea status rec | {rec} | {rec} | {rec} |248 | Evidence strength | {strength} | {strength} | {strength} |249250 ## Key Reasoning251 {2-3 sentences from Review LLM + Claude synthesis}252253 ## Wiki Changes254 | Entity | Field | Before | After |255 |--------|-------|--------|-------|256 | ideas/{slug} | status | {old} | {new} |257258 ## Graph Edges Added259 - experiments/{slug} → ideas/{linked-idea} (supports/invalidates)260261 ## Concerns262 {methodological concerns from Review LLM}263264 ## Next Steps265 - {path-specific suggestions}266267 ## Wiki Growth268 | Metric | Before | After | Delta |269 |--------|--------|-------|-------|270 | Ideas validated | {before} | {after} | +{delta} |271 | Ideas failed | {before} | {after} | +{delta} |272 | Edges | {before} | {after} | +{delta} |273 | Maturity | {level} | {level} | {unchanged/upgraded} |274 (Data from comparing `python3 tools/research_wiki.py maturity wiki/ --json` calls at the start of Step 1 and end of Step 4.)275 ```276277## Constraints278279- **Only process completed experiments**: experiments with status != completed are refused; prompt user to use /exp-run first.280- **`linked_idea` is mandatory**: refuse to evaluate any experiment whose `linked_idea` is empty (the new schema enforces this; if you encounter such a page it is a pre-refactor artifact and must be fixed manually).281- **Reviewer independence**: strictly follow cross-model-review.md — do not send Claude's pre-judgment to Review LLM.282- **`failure_reason` must be specific**: the not_supported path's `failure_reason` cannot be vague (e.g. "experiment failed") — must state the concrete reason. `transition --reason` rejects an empty string.283- **Idea lifecycle is forward-only**: `proposed → in_progress → tested → validated/failed`. Use `tools/research_wiki.py transition` (not direct frontmatter writes) so the lifecycle validator runs.284- **Graph edges via tools/research_wiki.py**: do not manually edit `edges.jsonl`.285- **Conservative principle**: when Claude and Review LLM verdicts disagree, use the more conservative verdict.286- **Assess using all sibling experiments**: consider not just the current experiment but also other experiments sharing the same `linked_idea`.287288## Error Handling289290- **Experiment not found**: prompt user to check slug, list candidates in `wiki/experiments/` with status=completed.291- **Experiment not completed**: report status, suggest running `/exp-run {slug}` or `/exp-run {slug} --check`.292- **`linked_idea` missing**: refuse to proceed; instruct the user to run `/edit` to set the experiment's `linked_idea`.293- **Linked idea page does not exist**: report a dangling reference; refuse to update — recommend `/edit` or `/ideate` to create the idea page first.294- **Review LLM unavailable**: fall back to Claude single-model verdict, note "single-model verdict, cross-model verification unavailable" in report, suggest user confirm later.295- **Idea was modified by another experiment**: re-read the latest state before applying transitions; do not overwrite a more advanced lifecycle state with a lower one.296- **Results data missing**: if the experiment page's Results section is empty, prompt user to run `/exp-run {slug} --check` first.297298## Dependencies299300### Tools(via Bash)301- `python3 tools/research_wiki.py transition wiki/ideas/{slug}.md --to validated|failed [--reason "..."]` — advance idea lifecycle302- `python3 tools/research_wiki.py add-edge wiki/ ...` — add graph edge303- `python3 tools/research_wiki.py rebuild-context-brief wiki/` — rebuild query_pack304- `python3 tools/research_wiki.py rebuild-open-questions wiki/` — rebuild gap_map305- `python3 tools/research_wiki.py log wiki/ "<message>"` — append log306307### MCP Servers308- `mcp__llm-review__chat` — Step 2 Review LLM independent verdict309310### Claude Code Native311- `Read` — read wiki pages312- `Glob` — find sibling experiments sharing the same `linked_idea`313- `Edit` — update wiki pages314315### Shared References316- `.claude/skills/shared-references/cross-model-review.md` — Review LLM independence principle (required reading)317318### Called by319- `/research` Stage 4 (verdict and iteration stage)320- User directly