pipeline-router
SKILL.md
Pipeline Router
“Routing” usually means two different things:
- Pipeline selection + lock: choose a single pipeline and write
PIPELINE.lock.md. - Checkpoint routing: keep the run auditable by drafting/updating checkpoint blocks in
DECISIONS.md(and, forC0, seedingqueries.mdfromGOAL.md).
This skill supports both, but keeps the semantic choice LLM-first and the repetitive checkpoint scaffolding scriptable.
Inputs
Workspace context (when available):
GOAL.mdSTATUS.mdDECISIONS.mdPIPELINE.lock.md
Optional template:
assets/pipeline-selection-form.md
Outputs
PIPELINE.lock.md(Mode A; selection + lock)- Updates to
DECISIONS.md(all modes; checkpoint blocks + approvals checklist) queries.md(best-effort forC0; seeded fromGOAL.md)- Optional: updates to
STATUS.md
Decision tree (selection)
User goal → choose:
- “survey / 综述 / 调研” →
pipelines/arxiv-survey.pipeline.md - “survey + PDF / LaTeX / 可编译” →
pipelines/arxiv-survey-latex.pipeline.md - “tutorial / 教程” →
pipelines/tutorial.pipeline.md - “systematic review / PRISMA / 系统综述” →
pipelines/systematic-review.pipeline.md - “peer review / 审稿” →
pipelines/peer-review.pipeline.md - “idea / ideation / brainstorm / 找 idea / 选题 / 点子” →
pipelines/idea-finder.pipeline.md - “snapshot / 速览” →
pipelines/lit-snapshot.pipeline.md
Workflow
Mode A — selection + lock (LLM-first)
- Read the goal from
GOAL.md(or the user message). - If key details are missing, use
assets/pipeline-selection-form.mdto draft a concise question list intoDECISIONS.mdand stop. - Select exactly one pipeline under
pipelines/*.pipeline.md. - Write
PIPELINE.lock.mdwith:pipeline: <path>units_template: <path from pipeline front matter>locked_at: <YYYY-MM-DD>
- Update
STATUS.md(“Current pipeline” + checkpoint).
Mode B — checkpoint blocks (script helper)
Use the helper to keep DECISIONS.md in sync with checkpoints:
- Kickoff questions + seed queries (C0):
python .codex/skills/pipeline-router/scripts/run.py --workspace <ws> --checkpoint C0
- Scope/outline approval summary (C2):
python .codex/skills/pipeline-router/scripts/run.py --workspace <ws> --checkpoint C2
- Other checkpoints:
python .codex/skills/pipeline-router/scripts/run.py --workspace <ws> --checkpoint C1
Quality checklist
-
DECISIONS.mdhas a checkpoint block for the activeC*. - Approvals checklist exists and includes
Approve C*checkboxes. - If selection was needed,
PIPELINE.lock.mdpoints to exactly one pipeline file. - If the run is retrieval-based,
queries.mdis non-empty afterC0seeding.
Side effects
- Allowed: create/update
PIPELINE.lock.md; editSTATUS.md; append/updateDECISIONS.md; seedqueries.md. - Not allowed: modify files under
.codex/skills/assets/templates.
Script
Quick Start
python .codex/skills/pipeline-router/scripts/run.py --helppython .codex/skills/pipeline-router/scripts/run.py --workspace <workspace_dir> --checkpoint C0
All Options
--checkpoint <C0|C1|C2|...>: which checkpoint block to draft/update (unknown checkpoints get a generic template)
Examples
- Kickoff questions + seed queries:
python .codex/skills/pipeline-router/scripts/run.py --workspace <ws> --checkpoint C0
- Generic protocol approval block (systematic review C1):
python .codex/skills/pipeline-router/scripts/run.py --workspace <ws> --checkpoint C1
- Scope/outline approval summary:
python .codex/skills/pipeline-router/scripts/run.py --workspace <ws> --checkpoint C2
Notes
python scripts/pipeline.py kickoff|initwritesPIPELINE.lock.mdand then (best-effort) runs this script forC0.- The script reads
PIPELINE.lock.md(if present) to display the pipeline in the kickoff block; it does not choose the pipeline.
Troubleshooting
Issue: PIPELINE.lock.md points to one pipeline but UNITS.csv looks like another
Cause:
- Workspace was initialized from one pipeline and later re-pointed without updating
UNITS.csv.
Fix:
- Re-run
python scripts/pipeline.py init --workspace <ws> --pipeline <name> --overwrite-units, or copy the correcttemplates/UNITS.*.csvintoUNITS.csv.
Weekly Installs
26
Repository
willoscar/resea…e-skillsGitHub Stars
301
First Seen
Jan 23, 2026
Security Audits
Installed on
claude-code22
gemini-cli21
cursor19
opencode19
codex19
antigravity16