AI agent skill · by @WILLOSCAR
Citation Anchoring
Regression-check citation anchoring (citations stay in the same subsection) to prevent “polish drift” that breaks claim→evidence alignment.
Archived 2026-10-23 · Source updated 2026-10-05. Check the original repository for the latest version.
SKILL.md instructions
# Citation Anchoring (regression) ## Triggers & routing - **Trigger**: citation anchoring, citation drift, regression, cite stability, 引用锚定, 引用漂移. - **Use when**: after editing/polishing, you want to confirm citations did not migrate across `###` subsections. Purpose: prevent a common failure mode: polishing rewrites text and accidentally moves citation markers into a different `###` subsection, breaking claim→evidence alignment. ## Inputs - `output/DRAFT.md` - `output/citation_anchors.prepolish.jsonl` (baseline; created by `draft-polisher` on first run) ## Outputs - `output/CITATION_ANCHORING_REPORT.md` (PASS/FAIL + drift examples) ## Baseline policy - `draft-polisher` captures a baseline once per run: `output/citation_anchors.prepolish.jsonl`. - Subsequent polish runs should keep per-H3 citation sets stable. ## Workflow (analysis-only) Role: - **Auditor**: only checks and reports; does not edit. Steps: 1) Load the baseline anchors. 2) Parse the current `output/DRAFT.md` into `###` subsections and extract citation keys per subsection. 3) Compare current sets to baseline sets: - keys added/removed within a subsection - keys that migrated across subsections 4) Write `output/CITATION_ANCHORING_REPORT.md`: - `- Status: PASS` only if no drift is detected - otherwise, `- Status: FAIL` with a short diff table + examples ## Notes If you intentionally restructure across subsections: - delete `output/citation_anchors.prepolish.jsonl` and regenerate a new baseline (then treat that as the new regression anchor). ## Troubleshooting ### Issue: baseline anchor file is missing Fix: - Run `draft-polisher` once to generate `output/citation_anchors.prepolish.jsonl`, then rerun the anchoring check. ### Issue: citations intentionally moved across subsections Fix: - Delete `output/citation_anchors.prepolish.jsonl` and regenerate a new baseline (then treat that as the new regression anchor).