# Anchor Sheet

> Extract per-subsection “anchor facts” (NO PROSE) from evidence packs so the writer is forced to include concrete numbers/benchmarks/limitations instead of generic summaries.

- Skill: `willoscar/anchor-sheet` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds add willoscar/anchor-sheet`
- Raw SKILL.md: https://api.skillmd.com/api/skills/willoscar/anchor-sheet/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: WILLOSCAR (https://skillmd.com/u/willoscar)
- Updated: 2026-09-10
- Page: https://skillmd.com/skills/willoscar/anchor-sheet

---


# Anchor Sheet (evidence → write hooks) [NO PROSE]

## Triggers & routing

- **Trigger**: anchor sheet, anchor facts, numeric anchors, evidence hooks, 写作锚点, 数字锚点, 证据钩子.
- **Use when**: `outline/evidence_drafts.jsonl` exists and you want stronger, evidence-anchored writing in `sections/*.md`.


Purpose: make “what to actually say” explicit:
- select quantitative snippets (numbers/percentages)
- select evaluation anchors (benchmarks/datasets/metrics)
- select limitations/failure hooks

This prevents the writer from producing paragraph-shaped but **content-poor** prose.

## Inputs

- `outline/evidence_drafts.jsonl`
- `citations/ref.bib`

## Outputs

- `outline/anchor_sheet.jsonl`

## Output format (`outline/anchor_sheet.jsonl`)

JSONL (one object per H3 subsection).

Required fields:
- `sub_id`, `title`
- `anchors` (list; each anchor has `hook_type`, `text`, `citations`, and optional `paper_id/evidence_id/pointer`)

## Workflow

1. Read `outline/evidence_drafts.jsonl`.
2. Prefer anchors that contain:
   - a number (%, counts, scores)
   - an explicit benchmark/dataset/metric name
   - an explicit limitation/failure statement
3. Filter anchors to only citation keys present in `citations/ref.bib`.
4. Write `outline/anchor_sheet.jsonl`.

## Quality checklist

- [ ] Every H3 has >=10 cite-backed anchors (A150++ hard target).
- [ ] At least 1 anchor contains digits when the evidence pack contains digits.
- [ ] No placeholders (`TODO`/`…`/`(placeholder)`).

## Consumption policy (for C5 writers)

Anchors are intended to prevent “long but empty” prose. Treat them as **must-use hooks**, not optional ideas.

Recommended minimums per H3 (A150++):
- >=3 protocol anchors (benchmark/dataset/metric/budget/tool access)
- >=3 limitation/failure hooks (concrete, not generic “future work”)
- If digits exist in the evidence pack: include >=1 cited numeric anchor (digit + citation in the same paragraph)

Note:
- Anchor text is trimmed for readability and **does not** include ellipsis markers (to reduce accidental leakage into prose).

## Script

### Quick Start

- `uv run python .codex/skills/anchor-sheet/scripts/run.py --help`
- `uv run python .codex/skills/anchor-sheet/scripts/run.py --workspace <workspace>`

### All Options

- `--workspace <dir>`
- `--unit-id <U###>`
- `--inputs <semicolon-separated>`
- `--outputs <semicolon-separated>`
- `--checkpoint <C#>`

### Examples

- Default IO:
  - `uv run python .codex/skills/anchor-sheet/scripts/run.py --workspace <workspace>`
- Explicit IO:
  - `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"`

### Refinement marker (recommended; prevents churn)

When you are satisfied with anchor facts (and they are actually subsection-specific), create:
- `outline/anchor_sheet.refined.ok`

This is an explicit "I reviewed/refined this" signal:
- prevents scripts from regenerating and undoing your work
- (in strict runs) can be used as a completion signal before writing

