OpenParable
Skip to content
← Back to skills

Citation Anchoring

Documents
citation-anchoring

Citation Anchoring is an Agent Skill for documents published in the WILLOSCAR/research-units-pipeline-skills repository on GitHub: a SKILL.md instruction file an AI agent can load to do this task.

Regression-check citation anchoring (citations stay in the same subsection) to prevent “polish drift” that breaks claim→evidence alignment. **Trigger**: citation anchoring, citation drift, regression, cite stability, 引用锚定, 引用漂移. **Use when**: after editing/polishing, you want to confirm citations did not migrate across `###` subsections. **Skip if**: you do not have a baseline anchor file yet. **Network**: none. **Guardrail**: analysis-only; do not edit content.

View on GitHub ↗
QUICK START

How to use this skill

Bring this guide into your coding agent with a prompt tailored to the tool you use.

  1. Open your project in Codex.
  2. Copy and paste the prompt below.
  3. Review files and risks before approving any action.
Prompt to paste
Inspect the Agent Skill at https://github.com/WILLOSCAR/research-units-pipeline-skills/blob/HEAD/.codex/skills/citation-anchoring/SKILL.md and all supporting files. Report provenance, permissions, scripts, dependencies, and security risks. Propose an exact installation into .agents/skills/citation-anchoring, but wait for my approval before writing files or running scripts.

Copying this prompt does not install or run the skill. Review third-party files before use.

Citation Anchoring (regression)

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