Agent skill
section-mapper
Map papers from the core set to each outline subsection and write `outline/mapping.tsv` with coverage tracking. **Trigger**: section mapper, mapping.tsv, coverage, paper-to-section mapping, 论文映射, 覆盖率. **Use when**: structure 阶段(C2),已有 `papers/core_set.csv` + `outline/outline.yml`,需要确保每小节有足够支持论文再进入 evidence/writing。 **Skip if**: 还没有 outline(先跑 `outline-builder`)或 core set 还没收敛。 **Network**: none. **Guardrail**: 覆盖率可审计(避免所有小节重复用同几篇);为弱覆盖小节留下明确补救方向(扩 query / 合并小节)。
Install this agent skill to your Project
npx add-skill https://github.com/WILLOSCAR/research-units-pipeline-skills/tree/main/.codex/skills/section-mapper
SKILL.md
Section Mapper
Create a paper→subsection map that supports evidence building and later synthesis.
Good mapping is diverse (avoids reusing the same paper everywhere) and explainable (short semantic “why”, not just keyword overlap).
When to use
- You have
outline/outline.ymland apapers/core_set.csvand need coverage per subsection. - You want to identify weak-signal subsections early (so you can adjust scope or add papers).
Inputs
papers/core_set.csvoutline/outline.yml
Outputs
outline/mapping.tsvoutline/mapping_report.md(diagnostics: reuse hotspots, weak-signal subsections)
Freeze marker (explicit)
To prevent accidental overwrites after you refine mapping rationales:
- Create
outline/mapping.refined.ok.
If you rerun the script without this marker, it will back up the previous mapping to a timestamped file:
outline/mapping.tsv.bak.<timestamp>
Workflow (heuristic)
- Start from the outline subsections (each subsection should be “mappable”).
- For each subsection, pick enough papers to support evidence-first writing (A150++ default: 28; smaller runs: ~12–20; lightweight: ~3–6) that are:
- representative (canonical / frequently-cited)
- complementary (different design choices, different eval setups)
- not overly reused elsewhere unless truly foundational
- Fill
whywith a short semantic rationale (one line is enough), e.g.:- mechanism: “decouples planner/executor; tool calling API”
- evaluation: “interactive web tasks; strong tool error analysis”
- safety: “agentic jailbreak surface; mitigation study”
- After initial mapping, scan for:
- subsections with <3 papers → either broaden, merge, or expand retrieval
- a few papers mapped everywhere → diversify; reserve “foundational” papers for only the truly relevant parts
Quality checklist
-
outline/mapping.tsvexists and is non-empty. - Most subsections have ≥3 mapped papers (or a clear exception noted in
why). -
whyis semantic (not justmatched_terms=...). - No single paper dominates unrelated subsections.
Helper script (optional)
Quick Start
python .codex/skills/section-mapper/scripts/run.py --helppython .codex/skills/section-mapper/scripts/run.py --workspace <workspace_dir> --per-subsection 28
All Options
--per-subsection <n>: target mapped papers per subsection--diversity-penalty <float>: penalize repeated reuse of the same paper across many subsections--soft-limit <n>/--hard-limit <n>: caps for per-paper reuse (0 = auto)
Examples
- Higher diversity (reduce over-reuse):
python .codex/skills/section-mapper/scripts/run.py --workspace <ws> --per-subsection 4 --diversity-penalty 0.25
- Tighter reuse caps:
python .codex/skills/section-mapper/scripts/run.py --workspace <ws> --per-subsection 3 --soft-limit 6 --hard-limit 10
Notes
- Writes
outline/mapping_report.mddiagnostics. - In
pipeline.py --strict, mapping may be blocked until genericwhyrationales are replaced with semantic ones.
Troubleshooting
Common Issues
Issue: outline/mapping.tsv is empty or low-coverage
Symptom:
- Mapping has few rows, or many subsections have <3 papers.
Causes:
- Core set is too small or outline is too fine-grained.
Solutions:
- Increase core set size (rerun
dedupe-rankwith larger--core-size). - Merge weak-signal subsections or broaden the scope/queries.
Issue: Mapping over-reuses the same papers
Symptom:
- Quality gate reports repeated papers across many unrelated subsections.
Causes:
- Diversity penalty too low; limited core set.
Solutions:
- Raise
--diversity-penaltyand/or set tighter--soft-limit/--hard-limit. - Manually diversify mappings for unrelated sections.
Recovery Checklist
- Each subsection has ≥3 mapped papers (target).
-
whycolumn contains semantic rationale (not just token overlap).
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
thesis-compile-review
对中文毕业论文进行编译、warning 分级、模板模式检查、数据与引用复查,并把问题回写成可继续迭代的 review checklist。 **Trigger**: 毕业论文编译检查, thesis compile review, warning 分级, 终稿复查, main.pdf 检查. **Use when**: 论文已经回写到 TeX 交付层,需要确认是否真正达到“可提交”的质量,而不是只做到能编译。 **Skip if**: 还处于中间层重构阶段,`chapters/*.tex` 尚未形成稳定交付稿。 **Network**: none. **Guardrail**: 不在这里重构章节主线;如果发现结构问题,明确回退到上游修复。
front-matter-writer
Write the survey's front matter files (Abstract, Introduction, Related Work, Discussion, Conclusion) in paper voice, with high citation density and a single evidence-policy paragraph. **Trigger**: front matter writer, introduction writer, related work writer, abstract writer, discussion writer, conclusion writer, 引言, 相关工作, 摘要, 讨论, 结论. **Use when**: you are in C5 (prose allowed) and need the paper-like shell to stop the draft reading like stitched subsections. **Skip if**: `Approve C2` is missing in `DECISIONS.md`, or `citations/ref.bib` is missing. **Network**: none. **Guardrail**: no invented facts/citations; no pipeline jargon in final prose; no repeated evidence disclaimers; only use keys present in `citations/ref.bib`.
thesis-question-list
维护中文毕业论文的 `codex_md/question_list.md`:把本轮问题、边界、优先级、协作方案和验收口径结构化,作为整条 thesis pipeline 的控制面。 **Trigger**: 毕业论文问题清单, thesis question list, 论文修改清单, 本轮目标, 结构问题梳理, review问题整理. **Use when**: 你已经有一批材料或上一轮 review 结果,需要明确这一轮到底修什么、不修什么,并给后续重构与编译复查提供统一入口。 **Skip if**: 当前只是在做一次性局部措辞修改,且没有形成新一轮结构/证据/编译问题。 **Network**: none. **Guardrail**: 不在这里写正文;不把问题单写成长篇散文;每条问题必须可执行、可验收。
novelty-matrix
Create a novelty/prior-work matrix comparing the submission’s contributions against related work (overlaps vs deltas). **Trigger**: novelty matrix, prior-work matrix, overlap/delta, 相关工作对比, 新颖性矩阵. **Use when**: peer review 中评估 novelty/positioning,需要把贡献与相关工作逐项对齐并写出差异点证据。 **Skip if**: 缺少 claims(先跑 `claims-extractor`)或你不打算做新颖性定位分析。 **Network**: none (retrieval of additional related work is out-of-scope unless provided). **Guardrail**: 明确 overlap 与 delta;尽量给出可追溯证据来源(来自稿件/引用/作者陈述)。
protocol-writer
Write a systematic review protocol into `output/PROTOCOL.md` (databases, queries, inclusion/exclusion, time window, extraction fields). **Trigger**: protocol, PRISMA, systematic review, inclusion/exclusion, 检索式, 纳入排除. **Use when**: systematic review pipeline 的起点(C1),需要先锁定 protocol 再开始 screening/extraction。 **Skip if**: 不是做 systematic review(或 protocol 已经锁定且不允许修改)。 **Network**: none. **Guardrail**: protocol 必须包含可执行的检索与筛选规则;需要 HUMAN 签字后才能进入 screening。
rubric-writer
Write a rubric-based peer review report (`output/REVIEW.md`) using extracted claims and evidence gaps (novelty/soundness/clarity/impact). **Trigger**: rubric review, referee report, peer review write-up, 审稿报告, REVIEW.md. **Use when**: peer-review pipeline 的最后阶段(C3),已有 `output/CLAIMS.md` + `output/MISSING_EVIDENCE.md`(以及可选 novelty matrix)。 **Skip if**: 上游产物未就绪(claims/evidence gaps 缺失)或你不打算输出完整审稿报告。 **Network**: none. **Guardrail**: 给可执行建议(actionable feedback),并覆盖 novelty/soundness/clarity/impact;避免泛泛而谈。
Didn't find tool you were looking for?