Skills DirectorySearch all skills ↗

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).

Related skills