research-pipeline
Full end-to-end research pipeline: from a broad research direction through idea discovery, experiments, and review all the way to a polished paper PDF. Use when user says "全流程", "full pipeline", "从找idea到投稿", "end-to-end research", or wants the complete autonomous research lifecycle.
By wanshuiyin · 460 installs
npx skills add wanshuiyin/auto-claude-code-research-in-sleep --skill research-pipeline
Source repository · Upstream listing
Full Research Pipeline: Idea → Experiments → Submission
⏱ External cadence: non judgmental heartbeat only. An overnight /loop /
CronCreate heartbeat may wake, detect a stalled phase (no progress, dead
process, blocked on a freed resource) and nudge it forward — it may NEVER
decide the work is good (paper good enough, proof holds, claim supported).
Every such verdict stays on its own skill's internal cadence and terminates in
the cross model jury. A heartbeat may say "keep going," never "good enough."
See
[ shared references/external cadence.md ](../shared references/external cadence.md)
(overnight pipeline rule + stall detection & forced structural pivot). At heartbeat
startup, touch the run state first each tick and register this run with the watchdog
loop type (so a silent death surfaces as STALE); unregister on completion. The
watchdog only detects — it never acquits. Each tick also record the new finding count
via the iteration log.py helper (resolve through the canonical
.aris/tools → tools → $ARIS REPO/tools → $ARIS REPO/tools via ~/.aris/repo
chain, integration contract §2; warn and skip if unresolved):
python3 "$ITER LOG" note <root <run id <phase <n . On the returned
pivot=structural (stale ≥ 2) the nudge must change a STRUCTURAL constraint and pick an
untried direction; on pivot=human (stale ≥ 4) flag for attention. Counting only —
never a quality verdict.
End to end autonomous research workflow for: $ARGUMENTS
Constants
AUTO PROCEED = true — When true , every selection checkpoint is informational: report the choice and continue in the same turn. When false , ask for explicit user confirmation and end the turn at the checkpoint.
ARXIV DOWNLOAD = false — When true , /research lit downloads the top relevant arXiv PDFs during literature survey. When false (default), only fetches metadata via arXiv API. Passed through to /idea discovery → /research lit .
HUMAN CHECKPOINT = false — When true , the auto review loops (Stage 3) pause after each round's review to let you see the score and provide custom modification instructions before fixes are implemented. When false (default), loops run fully autonomously. Passed through to /auto review loop .
REVIEWER DIFFICULTY = medium — How adversarial the reviewer is. medium (default): standard MCP review. hard : adds reviewer memory + debate protocol. nightmare : GPT reads repo directly via codex exec + memory + debate. Passed through to /auto review loop .
CODE REVIEW = true — GPT 6 Astra xhigh reviews experiment code before deployment. Catches logic bugs before wasting GPU hours. Set false to skip. Passed through to /experiment bridge .
BASE REPO = false — GitHub repo URL to use as base codebase. When set, /experiment bridge clones the repo first and implements experiments on top of it. When false (default), writes code from scratch or reuses existing project files. Passed through to /experiment bridge .
COMPACT = false — When true , generates compact summary files for short context models and session recovery. Passed through to /idea discovery and /experiment bridge .
AUTO WRITE = false — When true , automatically invoke Workflow 3 ( /paper writing ) after Stage 4. VENUE is needed only when Stage 5 begins — a missing venue defers paper writing; it never blocks Stages 1 4. When false (default), Stage 4 generates NARRATIVE REPORT.md and stops — user invokes /paper writing manually.
VENUE = (unset) — Target venue for paper writing; bound only when Stage 5 begins. Options: ICLR , NeurIPS , ICML , CVPR , ACL , AAAI , ACM , IEEE CONF , IEEE JOURNAL . No default: a missing venue defers paper writing — it never blocks Stages 1 4 and is never guessed.
RENDER HTML = true — When true (default), auto render NARRATIVE REPORT.md to HTML at Stage 4 completion via /render html . Uses no review (this is an internal handoff doc to /paper writing , not a reviewer facing final artifact — the upstream Stage 3 auto review loop already cross model reviewed the claims). Set false to skip, or pass — render html: false . Non blocking : if /render html fails or Codex MCP is unavailable, log the failure and continue — the HTML view is a nice to have, not a Stage 4 prerequisite.
RESUMABLE = true — When true (default), the pipeline records per stage state to .aris/runs/<run id .json so a crashed/interrupted run can resume via /research pipeline — resume <run id instead of restarting. Stage status splits done (executor finished writing) from accepted (the stage's cross model gate / deterministic verifier passed); resume re validates any done but unaccepted stage. See shared references/resumable runs.md .
💡 Override via argument, e.g., /research pipeline "topic" — AUTO PROCEED: false, human checkpoint: true, difficulty: nightmare, code review: false, base repo: https://github.com/org/project, auto write: true, venue: NeurIPS .
Checkpoint execution rule
Resolve AUTO PROCEED once from $ARGUMENTS before Stage 1 and pass that
resolved value to nested workflows.
AUTO PROCEED=true is non blocking. A checkpoint is a progress update,
not a question. State the result and the automatically selected next action,
then continue executing in the same turn . Do not ask for confirmation,
request user input, sleep, wait for silence, or end the turn at a checkpoint.
AUTO PROCEED=false is blocking. Present the options, ask the user, and
end the turn. Resume only after an explicit reply.
Never implement auto proceed as “ask, then continue if there is no response.”
Once a turn ends, silence cannot resume the pipeline. The user can still
interrupt a non blocking run at any time.
This rule governs only AUTO PROCEED controlled selection checkpoints. If the
user explicitly enables a Feishu interactive gate, that external approval
or reply is an intentional blocking exception; wait for that user controlled
gate rather than treating it as a silence timeout. Feishu off/push only modes
remain non blocking under AUTO PROCEED=true .
Overview
This skill chains the entire research lifecycle into a single pipeline:
It orchestrates up to four major workflows in sequence. Workflow 3 (paper writing) is optional and controlled by AUTO WRITE .
Resumable runs ( — resume <run id )
This pipeline is long and can fail mid run; it tracks per stage state via
run state.py so you can resume instead of restarting (see
[ shared references/resumable runs.md ](../shared references/resumable runs.md)).
Skip this whole section if RESUMABLE = false .
Resolve the helper via the canonical chain (integration contract §2):
.aris/tools/run state.py → tools/run state.py → $ARIS REPO/tools/run state.py
→ $ARIS REPO/tools/run state.py via ~/.aris/repo
(warn and skip if unresolved — never block the pipeline).
Phases , in order: idea discovery, experiment bridge, auto review loop, summary, paper writing .
At start: if — resume <run id was passed, run
run state.py resume <root <run id — it prints the first non accepted
phase; begin the pipeline at that stage (re run a running / failed stage;
re audit a done but unaccepted stage). Otherwise derive <run id from
the direction slug + date and run state.py start <root <run id phases
"idea discovery,experiment bridge,auto review loop,summary,paper writing" .
Per stage: set <run id <phase running on entry; set <run id <phase
done artifact <path once the stage's artifact is written.
Mark accepted ONLY after the stage's gate passes — never on the executor's
own say so ( run state.py accept requires a recorded verdict id + reviewer):
phase what sets accepted record as reviewer
idea discovery Gate 1 cross model jury / novelty check passed codex gpt 6 astra + thread id
experiment bridge experiments actually ran (jobs completed) — deterministic deterministic:experiment bridge
auto review loop the loop hit its positive STOP ( score =6 AND verdict∈{ready,almost} — codex's verdict) codex gpt 6 astra + final review trace id
summary NARRATIVE REPORT.md written (+ rendered if RENDER HTML ) — deterministic deterministic:summary
paper writing submission audits passed ( verify paper audits.sh exit 0) — deterministic deterministic:verify paper audits.sh
If AUTO WRITE = false (default), paper writing is not part of this run:
after summary is accepted, set <run id paper writing skipped so resume
reports COMPLETE instead of pointing forever at a pending stage. Record each
accept verdict id as a durable handle — the codex thread/trace id, or the
path/sha of the deterministic verifier's report (e.g. the verify paper audits.sh
output JSON) — not just the reviewer label.
A stage left done (gate failed/ambiguous, or the run crashed before the gate)
is re validated on the next resume — the acceptance obligation is never skipped.
Overnight heartbeat: stall detection → forced structural pivot
Only when an unattended heartbeat is driving this run (overnight /loop /
CronCreate ). Skip otherwise. Doctrine + rationale:
[ shared references/external cadence.md ](../shared references/external cadence.md)
→ "Stall detection & forced structural pivot". This is a Type A signal — it counts
findings and changes direction , never judges quality .
Resolve the helper via the canonical chain (integration contract §2), warn and skip
if unresolved (never block the run):
Then, each heartbeat tick , record how many concrete new findings the current
stage produced and read the returned pivot :
Act on pivot :
none — keep going.
structural (stale ≥ 2) — the next nudge must change a structural constraint
(frame / objective / data / representation), not a tactical parameter, and pick a
direction different from every one already tried. Record the chosen frame so future
ticks can avoid it: python3 "$ITER LOG" note "$ROOT" "$RUN ID" "$STAGE" 0 direction "<the new frame " .
human (stale ≥ 4) — stop nudging blindly; flag for human attention (escalate, do
not silently abandon).
The heartbeat may say "keep going / change direction," never "good enough" — every
quality verdict still terminates in the cross model jury ( acceptance gate.md ).
Pipeline
Stage 1: Idea Discovery (Workflow 1)
If RESEARCH BRIEF.md exists in the project root, it will be automatically loaded as detailed context (replaces one line prompt). See templates/RESEARCH BRIEF TEMPLATE.md .
Invoke the idea discovery pipeline:
This internally runs: /research lit → /idea creator → /novelty check → /research review
Output: idea stage/IDEA REPORT.md with ranked, validated, pilot tested ideas.
🚦 Gate 1 — Idea Selection:
After idea stage/IDEA REPORT.md is generated, present the top ideas.
If AUTO PROCEED=true (non blocking): report the selection and continue
immediately in the same turn. Do not phrase the update as a question:
If AUTO PROCEED=false (blocking): present the same ranking, ask
Recommended: Idea 1. Shall I proceed with implementation? , then end the turn.
The user may:
Approve the idea → proceed to Stage 2. /experiment bridge reads refine logs/EXPERIMENT PLAN.md already generated by /idea discovery .
Request changes (e.g., "combine Idea 1 and 3", "focus more on X") → update the idea prompt with user feedback, re run /idea discovery with refined constraints, and present again.
Reject all ideas → collect feedback on what's missing, re run Stage 1 with adjusted research direction. Repeat until the user commits to an idea.
Stop here → save current state to idea stage/IDEA REPORT.md for future reference.
⚠️ This gate waits for user confirmation when AUTO PROCEED=false. When true , it auto proceeds after presenting results