
result-to-claim
Use when experiments complete to judge what claims the results support, what they don't, and what evidence is still missing. Codex MCP evaluates results against intended claims and routes to next action (pivot, supplement, or confirm). Use after experiments finish — before writing the paper or running ablations.
- Installs
- 511
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/wanshuiyin/auto-claude-code-research-in-sleep --skill result-to-claim- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads result-to-claim automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Result-to-Claim Gate
Before each reviewer slot, follow Selectable Reviewers: resolve invocation →
.aris/reviewer.json→ Claude Code default (Codex MCP) withreviewer_route.pythrough the canonical helper resolver, preserving this slot's tier, fresh contexts, source/image inputs and deterministic gates. Codex examples/pins below apply only tobackend=codex; other routes use their own first-call/reply contract. Save the route and actual returned identity; unavailable selections areREVIEW_UNAVAILABLE. Classify acceptance from actual families/completion/scope. Forward invocation reviewer/model/effort overrides to reviewer-bearing children. Generation workers are unchanged.
🔒 Do not wrap this skill in
/loop,/schedule, orCronCreate. It is verdict-bearing — it judges whether results support a claim. Re-running that verdict on a wall-clock timer adds no new signal (the verdict changes only when the results change, not when the clock ticks). What you actually want to schedule is the external wait that precedes it — experiments done → then run this gate once. Seeshared-references/external-cadence.md.
Experiments produce numbers; this gate decides what those numbers mean. Collect results from available sources, get a Codex judgment, then auto-route based on the verdict.
Context: $ARGUMENTS
When to Use
- After a set of experiments completes (main results, not just sanity checks)
- Before committing to claims in a paper or review response
- When results are ambiguous and you need an objective second opinion
Workflow
Step 1: Collect Results
Gather experiment data from whatever sources are available in the project:
- W&B (preferred):
wandb.Api().run("<entity>/<project>/<run_id>").history()— metrics, training curves, comparisons - EXPERIMENT_LOG.md: full results table with baselines and verdicts
- EXPERIMENT_TRACKER.md: check which experiments are DONE vs still running
- Log files:
ssh server "tail -100 /path/to/training.log"if no other source idea-stage/docs/research_contract.md(legacy fallback:docs/research_contract.md): intended claims and experiment design
Assemble the key information:
- What experiments were run (method, dataset, config)
- Main metrics and baseline comparisons (deltas)
- The intended claim these experiments were designed to test
- Any known confounds or caveats
Step 1.5: Deterministic evidence pre-check (before spending a Codex call)
For every claim that cites a specific number + a source file, verify the evidence
exists mechanically — no model call — to catch hallucinated evidence before
the jury runs (see shared-references/evidence-precheck.md).
1. Build the claims list. From the cited numbers and their result files, write
[{"id", "value", "source"}, ...] to .aris/claims.json (source is the result
file/glob relative to the project root; value is the cited number or string).
2. Run the pre-check — this is a real step, not a suggestion. Execute the block below (resolver per integration-contract §2, Policy B: warn-and-skip if the helper is unresolved — never block the audit):
# Policy B = warn-and-skip: nothing here may abort the audit. cd is non-fatal, the
# helper run is explicitly non-blocking, no pipefail-fragile pipe.
cd "$(git rev-parse --show-toplevel 2>/dev/null || pwd)" 2>/dev/null || true
if [ -z "${ARIS_REPO:-}" ] && [ -f .aris/installed-skills.txt ]; then
ARIS_REPO=$(awk -F'\t' '$1=="repo_root"{print $2; exit}' .aris/installed-skills.txt 2>/dev/null) || true
fi
if [ -z "${ARIS_REPO:-}" ] && [ -f "$HOME/.aris/repo" ]; then
ARIS_REPO=$(cat "$HOME/.aris/repo" 2>/dev/null) || true
fi
EVIDENCE_CHECK=".aris/tools/evidence_check.py"
[ -f "$EVIDENCE_CHECK" ] || EVIDENCE_CHECK="tools/evidence_check.py"
[ -f "$EVIDENCE_CHECK" ] || { [ -n "${ARIS_REPO:-}" ] && EVIDENCE_CHECK="$ARIS_REPO/tools/evidence_check.py"; }
[ -f "$EVIDENCE_CHECK" ] || EVIDENCE_CHECK=""
mkdir -p .aris
if [ -n "$EVIDENCE_CHECK" ]; then
# NB: evidence_check exits 1 when it FINDS hallucinated evidence (value_not_found /
# path_missing) — that is the useful signal, NOT a failure. So judge success by
# whether valid JSON was produced, never by exit code. `|| true` keeps set -e calm.
python3 "$EVIDENCE_CHECK" . --batch .aris/claims.json > .aris/evidence_precheck.json 2>.aris/evidence_precheck.err || true
if [ -s .aris/evidence_precheck.json ] && python3 -c "import json,sys;json.load(open('.aris/evidence_precheck.json'))" 2>/dev/null; then
cat .aris/evidence_precheck.json
else
echo "WARN: evidence_check produced no valid output (see .aris/evidence_precheck.err);" >&2
echo " pre-check skipped (Policy B); the Codex jury still runs." >&2
fi
else
echo "WARN: evidence_check.py not resolved at .aris/tools/, tools/, \$ARIS_REPO/tools/, or via ~/.aris/repo." >&2
echo " Pre-check skipped (Policy B); the Codex jury still runs. Fix: rerun" >&2
echo " bash tools/install_aris.sh, export ARIS_REPO, or copy the helper to tools/." >&2
fi
The output is {"results": [{id, value, source, status, ...}], "summary": {status: n}}
with status ∈ {verified, value_not_found, path_missing, unparseable}.
3. Act on the statuses. Any claim returned value_not_found or path_missing is
hallucinated evidence — mark it claim_supported: no with
integrity_status: evidence_not_found immediately; do NOT spend a Codex call defending a
number that isn't in the data. unparseable claims (no usable value/source) just go to
the jury normally.
4. Carry the per-claim status into Step 2. Feed a small
evidence pre-check: <id> → verified | value_not_found | path_missing | unparseable
table (from .aris/evidence_precheck.json) into the Step-2 Codex prompt so the jury knows
which claims have real evidence to read. If the pre-check was skipped (helper unresolved),
say so in that slot rather than omitting it.
verified here means only that the cited evidence exists — whether it
supports the claim is still the Codex jury's call in Step 2 (a deterministic
gate DRIVES, it does not ACQUIT).
Step 2: Codex Judgment
Send the collected results to Codex for objective evaluation. Include ONLY claims that passed the Step 1.5 pre-check — claims already terminally rejected (evidence_not_found) keep their deterministic verdict and are NOT re-litigated here:
Resolve this reviewer slot first; the following is the
backend=codexexample.
mcp__codex__codex:
model: gpt-6-astra
config: {"model_reasoning_effort": "ultra"}
prompt: |
RESULT-TO-CLAIM EVALUATION
I need you to judge whether experimental results support the intended claim.
Intended claim: [the claim these experiments test]
Experiments run:
[list experiments with method, dataset, metrics]
Results:
[paste key numbers, comparison deltas, significance]
Evidence pre-check (deterministic, from Step 1.5):
[per-claim: <id> → verified | value_not_found | path_missing.
A value_not_found/path_missing means the cited number is NOT in its result
file — treat that claim as having no evidence; do not defend it. `verified`
means the number exists in the file — YOU still judge whether it supports
the claim.]
Baselines:
[baseline numbers and sources — reproduced or from paper]
Known caveats:
[any confounding factors, limited datasets, missing comparisons]
Please evaluate:
1. claim_supported: yes | partial | no
2. what_results_support: what the data actually shows
3. what_results_dont_support: where the data falls short of the claim
4. missing_evidence: specific evidence gaps
5. suggested_claim_revision: if the claim should be strengthened, weakened, or reframed
6. next_experiments_needed: specific experiments to fill gaps (if any)
7. confidence: high | medium | low
Be honest. Do not inflate claims beyond what the data supports.
A single positive result on one dataset does not support a general claim.
Step 3: Parse and Normalize
Extract structured fields from Codex response:
- claim_supported: yes | partial | no
- what_results_support: "..."
- what_results_dont_support: "..."
- missing_evidence: "..."
- suggested_claim_revision: "..."
- next_experiments_needed: "..."
- confidence: high | medium | low
Step 3.5: Check Experiment Integrity (if audit exists)
Skip this step if EXPERIMENT_AUDIT.json does not exist.
if EXPERIMENT_AUDIT.json exists:
read integrity_status from file
attach to verdict output:
integrity_status: pass | warn | fail
if integrity_status == "fail":
append to verdict: "[INTEGRITY CONCERN] — audit found issues, see EXPERIMENT_AUDIT.md"
downgrade confidence to "low" regardless of Codex judgment
if integrity_status == "warn":
append to verdict: "[INTEGRITY: WARN] — audit flagged potential issues"
else:
integrity_status = "unavailable"
verdict is labeled "provisional — no integrity audit run"
(this does NOT block anything — pipeline continues normally)
See shared-references/experiment-integrity.md for the full integrity protocol.
Step 4: Route Based on Verdict
no — Claim not supported
- Record postmortem in findings.md (Research Findings section):
- What was tested, what failed, hypotheses for why
- Constraints for future attempts (what NOT to try again)
- Update CLAUDE.md Pipeline Status
- Decide whether to pivot to next idea from IDEA_CANDIDATES.md or try an alternative approach
partial — Claim partially supported
- Update the working claim to reflect what IS supported
- Record the gap in findings.md
- Design and run supplementary experiments to fill evidence gaps
- Re-run result-to-claim after supplementary experiments complete
- Multiple rounds of
partialon the same claim → record analysis in findings.md, consider whether to narrow the claim scope or switch ideas
yes — Claim supported
- Record confirmed claim in project notes
- If ablation studies are incomplete → trigger
/ablation-planner - If all evidence is in → ready for paper writing
Step 5: Update Research Wiki (if active)
Skip this step entirely if research-wiki/ does not exist.
If research-wiki/ exists, resolve $WIKI_SCRIPT per the canonical
chain documented in
shared-references/wiki-helper-resolution.md
(Variant B — warn-and-skip for caller skills). The verdict / idea-outcome
page edits below run on raw markdown and don't need the helper, but edges,
query-pack rebuild, and the log line do. This skill never edits a claim's
status field and never creates a claim node — claims are born (and their
proof status set) by /proof-checker; here we only attach experiment edges.
cd "$(git rev-parse --show-toplevel 2>/dev/null || pwd)" || exit 1
ARIS_REPO="${ARIS_REPO:-$(awk -F'\t' '$1=="repo_root"{print $2; exit}' .aris/installed-skills.txt 2>/dev/null)}"
if [ -z "${ARIS_REPO:-}" ] && [ -f "$HOME/.aris/repo" ]; then
ARIS_REPO=$(cat "$HOME/.aris/repo" 2>/dev/null) || true
fi
WIKI_SCRIPT=".aris/tools/research_wiki.py"
[ -f "$WIKI_SCRIPT" ] || WIKI_SCRIPT="tools/research_wiki.py"
[ -f "$WIKI_SCRIPT" ] || { [ -n "${ARIS_REPO:-}" ] && WIKI_SCRIPT="$ARIS_REPO/tools/research_wiki.py"; }
[ -f "$WIKI_SCRIPT" ] || {
echo "WARN: research_wiki.py not found; verdict will be reported but wiki edges/query-pack/log will be skipped. Fix: bash tools/install_aris.sh or smart_update.sh (refreshes ~/.aris/repo), export ARIS_REPO, or cp <ARIS-repo>/tools/research_wiki.py tools/." >&2
WIKI_SCRIPT=""
}
if research-wiki/ exists:
# 1. Create/refresh the experiment node FIRST (verdict OWNER → --update-on-exist so
# a re-judge overwrites the stale verdict). The supports/invalidates edges in #2
# point FROM exp:<id>, and add_edge does NOT verify node existence — so GATE those
# edges on the experiment node having been born (EXP_NODE_OK), else they'd dangle
# (the exact bug this closes). On failure: warn, skip the wiki edges, still report.
EXP_NODE_OK=0
if [ -n "$WIKI_SCRIPT" ]; then
if python3 "$WIKI_SCRIPT" add_experiment research-wiki/ \
--slug "<exp_id>" --idea "idea:<active_idea>" \
--verdict "<yes|partial|no>" --confidence "<high|medium|low>" \
--date "<date>" --hardware "<hw>" --duration "<dur>" \
--metrics "<key metrics>" --reasoning "<one-line why this verdict>" \
--provenance "<EXPERIMENT_AUDIT.md / run dir>" --update-on-exist; then
EXP_NODE_OK=1 # page written + idea--tested_by-->exp edge + index/query_pack rebuilt
else
echo "WARN: add_experiment failed for <exp_id>; skipping wiki edges (verdict still reported)." >&2
fi
fi
# 2. Record empirical support as EDGES ONLY — and ONLY when the exp node was born
# ([ "$EXP_NODE_OK" = 1 ]), so no edge dangles off a missing node. Never edit the
# claim page's `status`: that is the PROOF axis (verified / refuted / unproven /
# sound-modulo-imports / drafted / retracted), owned by /proof-checker (the claim
# birth point) — "supported"/"invalidated" are NOT valid claim statuses. The claim
# target should ALREADY be born by /proof-checker; add_edge does not verify it.
for each claim resolved by this verdict (only if [ "$EXP_NODE_OK" = 1 ]):
if verdict == "yes":
python3 "$WIKI_SCRIPT" add_edge research-wiki/ --from "exp:<id>" --to "claim:<cid>" --type supports --evidence "<metric>"
elif verdict == "partial":
python3 "$WIKI_SCRIPT" add_edge research-wiki/ --from "exp:<id>" --to "claim:<cid>" --type supports --evidence "partial: <metric>"
else:
python3 "$WIKI_SCRIPT" add_edge research-wiki/ --from "exp:<id>" --to "claim:<cid>" --type invalidates --evidence "<why>"
# 3. Update idea outcome (raw markdown, helper-free)
Update research-wiki/ideas/<idea_id>.md:
- outcome: positive | mixed | negative
- If negative: fill "Failure / Risk Notes" and "Lessons Learned"
- If positive: fill "Actual Outcome" and "Reusable Components"
# 4. Rebuild + log (only if $WIKI_SCRIPT resolved)
[ -n "$WIKI_SCRIPT" ] && python3 "$WIKI_SCRIPT" rebuild_query_pack research-wiki/
[ -n "$WIKI_SCRIPT" ] && python3 "$WIKI_SCRIPT" log research-wiki/ "result-to-claim: exp:<id> verdict=<verdict> for idea:<idea_id>"
# 5. Re-ideation suggestion
Count failed/partial ideas since last /idea-creator run.
If >= 3: print "💡 3+ ideas tested since last ideation. Consider re-running /idea-creator — the wiki now knows what doesn't work."
Rules
- Codex is the judge, not CC. CC collects evidence and routes; Codex evaluates. This prevents post-hoc rationalization.
- Do not inflate claims beyond what the data supports. If Codex says "partial", do not round up to "yes".
- A single positive result on one dataset does not support a general claim. Be honest about scope.
- If
confidenceis low, treat the judgment as inconclusive and add experiments rather than committing to a claim. - Fail closed if the reviewer is unavailable. If the Codex call fails, first walk the capability fallback chain in
shared-references/reviewer-routing.md(gpt-6-astra+ultra→gpt-6-astra+xhigh, then the model capability fallbacks withgpt-6.1-sol+xhighfirst, capability errors only). If no allowed pair succeeds: writeCLAIMS_FROM_RESULTS.mdcontaining ONLY the first lineverdict: REVIEW_UNAVAILABLE(a machine-checkable gate for pipeline callers), record the same in findings.md, and STOP — CC never substitutes its own claim judgment (a loop can drive, never acquit;acceptance-gate.md). Downstream steps (wikiadd_experimentedges, ablation-planner, paper claims) must not consume a run without a Codex verdict. Exception: the deterministic evidence pre-check (Step 1.5) may still terminally mark a claimclaim_supported: nofor hallucinated evidence — a deterministic rejection needs no reviewer; only SUPPORTIVE or ambiguous outcomes require one. - Always record the verdict and reasoning in findings.md, regardless of outcome.
Review Tracing
After each mcp__codex__codex or mcp__codex__codex-reply reviewer call, save the trace following shared-references/review-tracing.md (Policy C — forensic; never silently skip). Use save_trace.sh (resolved per the chain in shared-references/integration-contract.md §2) or write files directly to .aris/traces/<skill>/<date>_run<NN>/. Respect the --- trace: parameter (default: full).
FAQ
What does the result-to-claim skill do?
Use when experiments complete to judge what claims the results support, what they don't, and what evidence is still missing. Codex MCP evaluates results against intended claims and routes to next action (pivot, supplement, or confirm). Use after experiments finish — before writing the paper or running ablations.
How do I install result-to-claim?
Run npx skills add https://github.com/wanshuiyin/auto-claude-code-research-in-sleep --skill result-to-claim in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/result-to-claim/ (personal) or .claude/skills/result-to-claim/ (project).
Which AI agents can use result-to-claim?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is result-to-claim safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains result-to-claim?
It is published by wanshuiyin in wanshuiyin/auto-claude-code-research-in-sleep. It has 511 recorded installs.
More from wanshuiyin/auto-claude-code-research-in-sleep
paper-figure
wanshuiyin/auto-claude-code-research-in-sleep
Generate publication-quality figures and tables from experiment results. Use when user says "画图", "作图", "generate figures", "paper figures", or needs plots for a paper.
semantic-scholar
wanshuiyin/auto-claude-code-research-in-sleep
Search published venue papers (IEEE, ACM, Springer, etc.) via Semantic Scholar API. Complements /arxiv (preprints) with citation counts, venue metadata, and TLDR. Use when user says "search semantic scholar", "find IEEE papers", "find journal papers", "venue papers", "citation search", or wants published literature beyond arXiv preprints.
research-lit
wanshuiyin/auto-claude-code-research-in-sleep
Search and analyze research papers, find related work, summarize key ideas. Use when user says "find papers", "related work", "literature review", "what does this paper say", or needs to understand academic papers.
idea-discovery
wanshuiyin/auto-claude-code-research-in-sleep
Workflow 1: Full idea discovery pipeline to go from a broad research direction to validated, pilot-tested ideas. Use when user says "找idea全流程", "idea discovery pipeline", "从零开始找方向", or wants the complete idea exploration workflow.
idea-creator
wanshuiyin/auto-claude-code-research-in-sleep
Generate and rank research ideas given a broad direction. Use when user says "找idea", "brainstorm ideas", "generate research ideas", "what can we work on", or wants to explore a research area for publishable directions.
arxiv
wanshuiyin/auto-claude-code-research-in-sleep
Search, download, and summarize academic papers from arXiv. Use when user says "search arxiv", "download paper", "fetch arxiv", "arxiv search", "get paper pdf", or wants to find and save papers from arXiv to the local paper library.
Popular ai & agents skills
google-agents-cli-publish
google/agents-cli
This skill should be used when the user wants to "publish an agent", "publish my ADK agent", "register an agent with Gemini", "publish to Gemini" (formerly Gemini Enterprise), or needs guidance on the agents-cli publish gemini command. Also use when the user wants to "manage agents in Agent Registry", "list/update/delete registered agents", or "register an MCP server". Covers ADK vs A2A registration modes, programmatic and interactive usage, flag reference, auto-detection from deployment metadata, Agent Registry fleet management, and troubleshooting. Part of the agents-cli skills suite. Do NOT use for deployment (use google-agents-cli-deploy).
google-agents-cli-eval
google/agents-cli
This skill should be used when the user wants to "run an evaluation", "evaluate my agent", "evaluate my ADK agent", "write an eval dataset", "analyze eval failures", "compare eval results", "optimize agent", or needs guidance on the Gemini platform eval methodology and the Quality Flywheel. Covers eval metrics, dataset schema, LLM-as-judge scoring, and common failure causes. Applies to any agents-cli project, whatever framework the agent is written in. Do NOT use for agent API code patterns (ADK: use google-agents-cli-adk-code), deployment (use google-agents-cli-deploy), or project scaffolding (use google-agents-cli-scaffold).
skill-creator
anthropics/skills
Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, edit, or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy.
codex-pet
prime-skills/runcomfy-agent-skills
Codex Pet generator on RunComfy. Build a Codex-compatible Codex Pet spritesheet.webp + pet.json from a single reference image, drop it into ${CODEXHOME:-$HOME/.codex}/pets/ / and Codex picks it up as a custom Codex Pet next to the 8 built-ins. This skill produces the exact Codex Pet atlas Codex expects (1536x1872 PNG/WebP, 8 cols x 9 rows, 192x208 cells, 9 animation states — idle, running-right, running-left, waving, jumping, failed, waiting, running, review). Calls OpenAI GPT Image 2 edit ONCE via the local RunComfy CLI as runcomfy run openai/gpt-image-2/edit to produce a canonical Codex Pet pose, then assembles all 9 animation rows programmatically with ImageMagick micro-transforms — no Codex Pro, no $imagegen, no OPENAIAPIKEY required, only RUNCOMFYTOKEN. Triggers on "codex pet", "create codex pet", "make codex pet", "hatch codex pet", "/hatch image", "desktop pet codex", "codex pets", "spritesheet.webp", or any explicit ask to build a custom pet for OpenAI Codex.
full-output-enforcement
leonxlnx/taste-skill
Overrides default LLM truncation behavior. Enforces complete code generation, bans placeholder patterns, and handles token-limit splits cleanly. Apply to any task requiring exhaustive, unabridged output.
executing-plans
obra/superpowers
Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available