recipe-quality-auditlisted
Install: claude install-skill open-agreements/open-agreements
# recipe-quality-audit
Audit a single NVCA recipe's quality and produce a structured scorecard.
## Security model
- This skill operates on **local repository files only** — no network access required.
- Source document downloads (Tier 2 checks) use `ensureSourceDocx()` which fetches from known template source URLs only.
- No credentials or API keys are needed.
## Usage
Run the audit for a specific recipe:
```
Audit the recipe: nvca-certificate-of-incorporation
```
Or audit all recipes:
```
Audit all NVCA recipes and update the quality tracker
```
## Checks
### Tier 1: Structural (no source download needed)
| # | Check | How |
|---|-------|-----|
| S1 | File inventory | Does recipe have metadata.yaml, replacements.json, clean.json? Optional: computed.json, normalize.json, selections.json |
| S2 | Metadata schema valid | Run existing `validateRecipeMetadata()` from `src/core/metadata.ts` |
| S3 | Field-to-replacement coverage | For each field in metadata, is there a replacement key referencing `{field_name}`? |
| S4 | Ambiguous keys | Flag replacement keys < 8 chars without context qualifier (e.g., `[name]`, `[its]`) |
| S5 | Smart quote coverage | Keys with apostrophes should have smart-quote variants (or patcher normalizes — check patcher has normalizeQuotes) |
| S6 | Source SHA present | `source_sha256` in metadata.yaml |
| S7 | Test fixture exists | `integration-tests/fixtures/{recipe-id}-*.json` exists |
### Tier 2: Behavioral (requires source download)
| # | Ch