$npx -y skills add WILLOSCAR/research-units-pipeline-skills --skill anchor-sheetExtract per-subsection “anchor facts” (NO PROSE) from evidence packs so the writer is forced to include concrete numbers/benchmarks/limitations instead of generic summaries. Trigger: anchor sheet, anchor facts, numeric anchors, evidence hooks, 写作锚点, 数字锚点, 证据钩子. Use when:
| 1 | # Anchor Sheet (evidence → write hooks) [NO PROSE] |
| 2 | |
| 3 | Purpose: make “what to actually say” explicit: |
| 4 | - select quantitative snippets (numbers/percentages) |
| 5 | - select evaluation anchors (benchmarks/datasets/metrics) |
| 6 | - select limitations/failure hooks |
| 7 | |
| 8 | This prevents the writer from producing paragraph-shaped but **content-poor** prose. |
| 9 | |
| 10 | ## Inputs |
| 11 | |
| 12 | - `outline/evidence_drafts.jsonl` |
| 13 | - `citations/ref.bib` |
| 14 | |
| 15 | ## Outputs |
| 16 | |
| 17 | - `outline/anchor_sheet.jsonl` |
| 18 | |
| 19 | ## Output format (`outline/anchor_sheet.jsonl`) |
| 20 | |
| 21 | JSONL (one object per H3 subsection). |
| 22 | |
| 23 | Required fields: |
| 24 | - `sub_id`, `title` |
| 25 | - `anchors` (list; each anchor has `hook_type`, `text`, `citations`, and optional `paper_id/evidence_id/pointer`) |
| 26 | |
| 27 | ## Workflow |
| 28 | |
| 29 | 1. Read `outline/evidence_drafts.jsonl`. |
| 30 | 2. Prefer anchors that contain: |
| 31 | - a number (%, counts, scores) |
| 32 | - an explicit benchmark/dataset/metric name |
| 33 | - an explicit limitation/failure statement |
| 34 | 3. Filter anchors to only citation keys present in `citations/ref.bib`. |
| 35 | 4. Write `outline/anchor_sheet.jsonl`. |
| 36 | |
| 37 | ## Quality checklist |
| 38 | |
| 39 | - [ ] Every H3 has >=10 cite-backed anchors (A150++ hard target). |
| 40 | - [ ] At least 1 anchor contains digits when the evidence pack contains digits. |
| 41 | - [ ] No placeholders (`TODO`/`…`/`(placeholder)`). |
| 42 | |
| 43 | ## Consumption policy (for C5 writers) |
| 44 | |
| 45 | Anchors are intended to prevent “long but empty” prose. Treat them as **must-use hooks**, not optional ideas. |
| 46 | |
| 47 | Recommended minimums per H3 (A150++): |
| 48 | - >=3 protocol anchors (benchmark/dataset/metric/budget/tool access) |
| 49 | - >=3 limitation/failure hooks (concrete, not generic “future work”) |
| 50 | - If digits exist in the evidence pack: include >=1 cited numeric anchor (digit + citation in the same paragraph) |
| 51 | |
| 52 | Note: |
| 53 | - Anchor text is trimmed for readability and **does not** include ellipsis markers (to reduce accidental leakage into prose). |
| 54 | |
| 55 | ## Script |
| 56 | |
| 57 | ### Quick Start |
| 58 | |
| 59 | - `uv run python .codex/skills/anchor-sheet/scripts/run.py --help` |
| 60 | - `uv run python .codex/skills/anchor-sheet/scripts/run.py --workspace <workspace>` |
| 61 | |
| 62 | ### All Options |
| 63 | |
| 64 | - `--workspace <dir>` |
| 65 | - `--unit-id <U###>` |
| 66 | - `--inputs <semicolon-separated>` |
| 67 | - `--outputs <semicolon-separated>` |
| 68 | - `--checkpoint <C#>` |
| 69 | |
| 70 | ### Examples |
| 71 | |
| 72 | - Default IO: |
| 73 | - `uv run python .codex/skills/anchor-sheet/scripts/run.py --workspace <workspace>` |
| 74 | - Explicit IO: |
| 75 | - `uv run python .codex/skills/anchor-sheet/scripts/run.py --workspace <workspace> --inputs "outline/evidence_drafts.jsonl;citations/ref.bib" --outputs "outline/anchor_sheet.jsonl"` |
| 76 | |
| 77 | ### Refinement marker (recommended; prevents churn) |
| 78 | |
| 79 | When you are satisfied with anchor facts (and they are actually subsection-specific), create: |
| 80 | - `outline/anchor_sheet.refined.ok` |
| 81 | |
| 82 | This is an explicit "I reviewed/refined this" signal: |
| 83 | - prevents scripts from regenerating and undoing your work |
| 84 | - (in strict runs) can be used as a completion signal before writing |