用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/flonat/claude-research --skill pipeline-manifest命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
Use when you need to audit a research project against the init-project-research template.
Use when you need to validate a paper's bibliography — cross-references \cite{} keys against .bib files or embedded \bibitem entries, finds missing/unused/typo'd keys, and checks every key against the Paperpile library via the local resolver. Deep verification mode spawns parallel agents for DOI/metadata validation at scale. Fix mode rekeys drifted keys to canonical and stages missing entries for Paperpile.
Use when you need to bootstrap a full research project with directory scaffold and Overleaf symlink.
基于 SOC 职业分类
正在显示 SKILL.md
| name | pipeline-manifest |
| description | Use when you need to map scripts to their inputs, outputs, and paper figures/tables. |
| allowed-tools | Read, Write, Edit, Glob, Grep, AskUserQuestion |
| argument-hint | ["project-path"] |
Build and maintain a pipeline.md that maps every script in a research project to its inputs, outputs, and the paper figures/tables it feeds. Optionally add structured headers to scripts that lack them.
/code-archaeology)/code-review instead (this skill maps structure, not quality)Ask the user which mode to run:
| Mode | What it does | Writes to |
|---|---|---|
| Scan (default) | Read-only. Scans scripts, builds pipeline.md | pipeline.md only |
| Add headers | Scan + insert structured headers into scripts that lack them | pipeline.md + script files |
In Add headers mode, show the proposed header for each script and get confirmation before writing. Never overwrite an existing structured header — only add to scripts that lack one.
Every research script should begin with a structured header block. The format adapts to the language:
# ============================================================================
# PURPOSE: [One sentence describing what this script does]
# INPUTS: [Comma-separated list of input files, relative to project root]
# OUTPUTS: [Comma-separated list of output files, relative to project root]
# DEPENDS: [Scripts that must run before this one, or "none"]
# PAPER: [Figure/table references this feeds, e.g. "Figure 2, Table 1", or "none"]
# ============================================================================
# ============================================================================
# PURPOSE: [One sentence describing what this script does]
# INPUTS: [Comma-separated list of input files, relative to project root]
# OUTPUTS: [Comma-separated list of output files, relative to project root]
# DEPENDS: [Scripts that must run before this one, or "none"]
# PAPER: [Figure/table references this feeds, e.g. "Figure 2, Table 1", or "none"]
# ============================================================================
* ============================================================================
* PURPOSE: [One sentence describing what this script does]
* INPUTS: [Comma-separated list of input files, relative to project root]
* OUTPUTS: [Comma-separated list of output files, relative to project root]
* DEPENDS: [Scripts that must run before this one, or "none"]
* PAPER: [Figure/table references this feeds, e.g. "Figure 2, Table 1", or "none"]
* ============================================================================
# ============================================================================
# PURPOSE: [One sentence describing what this script does]
# INPUTS: [Comma-separated list of input files, relative to project root]
# OUTPUTS: [Comma-separated list of output files, relative to project root]
# DEPENDS: [Scripts that must run before this one, or "none"]
# PAPER: [Figure/table references this feeds, e.g. "Figure 2, Table 1", or "none"]
# ============================================================================
| Field | What it contains | How to populate |
|---|---|---|
| PURPOSE | One sentence. What does this script do? | Read the script and summarise |
| INPUTS | Files this script reads. Paths relative to project root. | Grep for read, load, import, open, use patterns |
| OUTPUTS | Files this script writes. Paths relative to project root. | Grep for write, save, export, ggsave, savefig, sink patterns |
| DEPENDS | Other scripts that must run first (their outputs are this script's inputs). | Trace input files back to the scripts that produce them |
| PAPER | Which figures, tables, or sections in the paper use this script's output. | Match output filenames against \includegraphics, \input, \include in .tex files |
Scan the project for research scripts:
code/**/*.{py,R,r,do,jl,m}
src/**/*.{py,R,r,do,jl,m}
scripts/**/*.{py,R,r,do,jl,m}
Exclude:
__pycache__/, .venv/, renv/, node_modules/test_*.py, *_test.R)setup.py, conftest.py)Sort by filename (numerical prefixes like 01_, 02_ determine natural order).
For each script:
Check for existing header. Look for the PURPOSE: / INPUTS: / OUTPUTS: / DEPENDS: / PAPER: pattern in the first 20 lines.
If header exists: Parse it directly. Trust the header as ground truth.
If no header: Read the full script and infer:
pd.read_csv, read.csv, readRDS, load, use, open, import delimited, fread, arrow::read_parquet, readr::read_*)to_csv, write.csv, saveRDS, save, ggsave, plt.savefig, export, sink, write_parquet, fwrite, outsheet, estout)\includegraphics{...} and \input{...} in .tex filesFrom the extracted information, construct:
data/raw/.Scan all .tex files in paper/ for:
\includegraphics{path} — figures\input{path} — tables or sub-documents\include{path} — chaptersMatch these paths to script outputs. Build a reverse map: for each figure/table in the paper, which script(s) produce it?
Write pipeline.md to the project root using the format below.
For scripts missing structured headers:
# Pipeline Manifest
> Auto-generated by `/pipeline-manifest` on YYYY-MM-DD.
> Manually edit the PAPER column and any inferred values that are wrong.
> Re-run `/pipeline-manifest` to refresh after adding or modifying scripts.
## Pipeline Table
| # | Script | Purpose | Inputs | Outputs | Depends | Paper |
|---|--------|---------|--------|---------|---------|-------|
| 1 | `code/01_clean.R` | Clean raw survey data | `data/raw/survey.csv` | `data/processed/survey_clean.rds` | none | -- |
| 2 | `code/02_merge.R` | Merge survey with admin data | `data/processed/survey_clean.rds`, `data/raw/admin.csv` | `data/processed/merged.rds` | `01_clean.R` | -- |
| 3 | `code/03_analysis.R` | Run main regressions | `data/processed/merged.rds` | `results/main_results.rds`, `paper/figures/fig_coef.pdf` | `02_merge.R` | Figure 2 |
| 4 | `code/04_robustness.py` | Robustness checks | `data/processed/merged.rds` | `results/robustness.csv`, `paper/figures/fig_robust.pdf` | `02_merge.R` | Figure 3, Table A1 |
## Figure & Table Manifest
| Paper Reference | Producing Script | Output File |
|----------------|-----------------|-------------|
| Figure 2 | `code/03_analysis.R` | `paper/figures/fig_coef.pdf` |
| Figure 3 | `code/04_robustness.py` | `paper/figures/fig_robust.pdf` |
| Table A1 | `code/04_robustness.py` | `results/robustness.csv` |
## Dependency Graph
data/raw/survey.csv ─┐ ├─> 01_clean.R ─> data/processed/survey_clean.rds ─┐ data/raw/admin.csv ──┘ ├─> 02_merge.R ─> data/processed/merged.rds ─┬─> 03_analysis.R │ └─> 04_robustness.py
## Diagnostics
### Orphan Scripts
Scripts whose outputs are not consumed by any other script or the paper.
### Missing Inputs
Files referenced as inputs but not produced by any script and not found in `data/raw/`.
### Execution Order
Recommended order based on dependency resolution:
1. `code/01_clean.R`
2. `code/02_merge.R`
3. `code/03_analysis.R`
4. `code/04_robustness.py` (can run in parallel with step 3)
If pipeline.md already exists:
/code-review — Quality review for individual scripts (checks header presence in Category 2: Script Structure)/code-archaeology — For understanding unfamiliar code before building the manifest/pre-submission-report — Pipeline manifest helps verify the replication package is complete/init-project-research — New projects can run /pipeline-manifest once scripts exist