finalize-monthlisted
Install: claude install-skill teachskillofskills-ai/SocialForge-techshu
# /socialforge:finalize-month — Month Finalizer
Package all approved posts into the organized delivery folder structure.
## Pre-Finalization Check
**Step 0 — run the delivery audit, before any packaging:**
```bash
python "${CLAUDE_PLUGIN_ROOT}/scripts/delivery_audit.py" --brand {brand} --month {YYYY-MM}
```
It re-derives the month's claims from the ledger and the disk: every status in the vocabulary, revision history landing on the recorded status, no ghost posts the calendar never knew, no gate bypassed on the way to delivery (`force_finalized` is surfaced loudly, not left as a buried flag), every FINAL post's referenced file existing and non-empty, the failure log loadable, and cost totals honest about incompleteness. **Exit 1 means the delivery is claiming something the disk does not support — resolve the findings before packaging, never around them.** The verdict lands in `delivery-audit.json` beside the tracker.
Then:
- All posts must be FINAL status (or --force to skip unapproved)
**WARNING:** `--force` bypasses ALL approval gates. Use only in emergencies. All force-finalized posts are logged with `force_finalized: true` in status-tracker.json for audit trail — and the delivery audit reports every one of them as a violation the client-facing record must acknowledge.
- All compliance checks passed
- All required approvals obtained per approval-chain.json
- Calendar document assembled
If any posts are not FINAL: "3 posts still pending approval. Finalize anyway wi