← Back to list
name: pipeline-router
description: |
Select the most appropriate pipeline for a user goal, lock it in
Issue:

pipeline-router
by WILLOSCAR
Research pipelines as semantic execution units: each skill declares inputs/outputs, acceptance criteria, and guardrails. Evidence-first methodology prevents hollow writing through structured intermediate artifacts.
⭐ 83🍴 10📅 Jan 24, 2026
SKILL.md
name: pipeline-router
description: |
Select the most appropriate pipeline for a user goal, lock it in PIPELINE.lock.md, and route checkpoint questions into DECISIONS.md.
Trigger: pipeline router, choose pipeline, workflow selection, PIPELINE.lock.md, 选择流程.
Use when: 用户目标/交付物不清晰,需要在 snapshot/survey/tutorial/systematic-review/peer-review 中选一个并设置最小 HITL 问题集。
Skip if: pipeline 已锁定(PIPELINE.lock.md 存在)且所需问题已回答/签字完成。
Network: none.
Guardrail: 尽量一次性提问;信息不足就写 DECISIONS.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 - “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.
Score
Total Score
70/100
Based on repository quality metrics
✓SKILL.md
SKILL.mdファイルが含まれている
+20
○LICENSE
ライセンスが設定されている
0/10
✓説明文
100文字以上の説明がある
+10
○人気
GitHub Stars 100以上
0/15
✓最近の活動
1ヶ月以内に更新
+10
✓フォーク
10回以上フォークされている
+5
✓Issue管理
オープンIssueが50未満
+5
✓言語
プログラミング言語が設定されている
+5
✓タグ
1つ以上のタグが設定されている
+5
Reviews
💬
Reviews coming soon

