Installs into .claude/skills of the current project.
Are you the author of Audit Extract?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/edwinhu-audit-extract)
---
name: audit-extract
description: "Phase 1: Extract footnotes from DOCX with formatting annotations"
user-invocable: false
disable-model-invocation: true
---
# Phase 1: Extract Footnotes
**What this skill carries** — grep `references/` for any subject the names below miss:
!`d=${CLAUDE_SKILL_DIR}; command -v skill-toc >/dev/null 2>&1 && exec skill-toc "$d"; s=$HOME/.claude/skills/plugin-utils/bin/skill-toc; [ -x "$s" ] && exec "$s" "$d"; echo "(skill-toc unavailable: references and scripts are NOT listed here — install the plugin-utils plugin, or start a new session so its bin/ reaches PATH)"`
Parse the DOCX file and build structured data for all subsequent phases.
## What This Phase Does
1. Parse `word/footnotes.xml` via lxml
2. Extract each footnote's runs with formatting flags (italic, small caps, bold)
3. Parse `word/_rels/footnotes.xml.rels` for hyperlink URLs
4. Build citation registry (hereinafter definitions, author-to-first-cite mapping)
5. Resolve cross-references (`supra note [_]` placeholders)
6. Extract all URLs for archiving inventory
## Script
```bash
uv run python3 "${CLAUDE_SKILL_DIR}/../../../../skills/bluebook-audit/scripts/extract_footnotes.py" --docx <path>
```
Output: `scratch/footnotes_data.json`
## Gate: Exit Extract
Before proceeding to Check phase:
- [ ] `scratch/footnotes_data.json` exists
- [ ] Contains entries for ALL footnotes in the document (verify count)
- [ ] Each entry has `formatted_text` field with inline markup
- [ ] Citation registry has hereinafter definitions
- [ ] URL inventory extracted
**If footnote count doesn't match document:** STOP. Investigate missing footnotes before proceeding.
## Next Phase
Read `${CLAUDE_SKILL_DIR}/../../../../skills/bluebook-audit/skills/audit-check/SKILL.md` and follow its instructions.