/socialforge:finalize-month — Month Finalizer
SkillFiles & storagePackage all approved content into the final delivery folder — files renamed per convention, per-platform copy files, manifest included — ready for client handoff. Triggers on \"/finalize-month\", \"finalize the month\", \"package everything\", \"prepare the delivery\", \"close out the month\", \"handoff folder\", or when every post has cleared its approval queue and the month ships to the client.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the /socialforge:finalize-month — Month Finalizer skill
What this skill tells your AI
The instructions your AI receives, as published by indranilbanerjee/socialforge in skills/finalize-month/SKILL.md and read by ahel’s review.
Package all approved posts into the organized delivery folder structure.
Pre-Finalization Check
Step 0 — run the delivery audit, before any packaging:
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:
--forcebypasses ALL approval gates. Use only in emergencies. All force-finalized posts are logged withforce_finalized: truein 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 with --force, or resolve pending items first."
Final Folder Structure
FINAL/
├── 00-Calendar-Document/
│ └── {brand}-{month}-calendar.json # delivery manifest; DOCX conversion is a manual step
├── 01-Ready-to-Publish/
│ └── Week-{N}/
│ └── {date}-Post{id}-{title}/
│ └── {platform}/
│ ├── image-{WxH}.png
│ ├── copy.txt
│ └── preview.png
├── 02-Carousels/
├── 03-Video-Production-Kit/
├── 04-Stories-Shorts/
├── 05-Review-Gallery/
├── 06-Publishing-Schedule/
└── 07-Production-Checklist/
Process
- Verify all approval gates
- Organize files into folder structure
- Generate publishing schedule (dates + times + platforms)
- Generate production checklist (remaining manual tasks)
- Upload to Google Drive (if connected)
- Send completion notification via Slack/email
- Remind the user: once the month has run, ingest its analytics export with
/socialforge:ingest-performance— that is what lets next month's/socialforge:ideate-monthcompound measured wins instead of memory
Signals
- GitHub stars
- 38
- Forks
- 6
- Last commit
- Aug 2026
Advanced
- Catalog kind
- skill
- Gateway key
finalize-month- Source
- github.com/indranilbanerjee/socialforge