| name | gi-content-stager |
| description | Stage content for publishing across all channels in The Great Inversion asset pipeline. Use when Tim says "stage content," "build a publishing schedule," "create a content calendar," "prepare batches," "stage for publishing," "create WordPress drafts," "mark as published," or wants to organize web-ready assets into timed publishing batches on a 4-6 week cadence. Covers WordPress, LinkedIn, X, YouTube, email, and sales channels. Creates Publishing Queue entries, generates a content calendar, produces WordPress draft files and social/email templates, and manages post-publish status updates. |
| metadata | {"author":"Tim Dickey","version":"1.0","pipeline-step":"6"} |
GI Content Stager
Automates Step 6 of the GreatInvert Asset Pipeline — staging content for publishing across all channels on a 4-6 week cadence.
When to Use This Skill
Use when Tim asks to:
- Stage content for publishing
- Build a publishing schedule or content calendar
- Prepare publishing batches
- Create WordPress drafts
- Schedule content across channels
- Mark published items as Live
- Archive published batches
- Run Step 6 of the asset pipeline
What It Produces
1. Publishing Queue entries
Scans the Asset Register for web-ready/approved assets not yet queued, distributes them across publishing batches on a configurable cadence (default 5 weeks), and writes entries to the Publishing Queue tracker tab.
2. Content calendar
A Markdown document and JSON companion file organized by publish date, showing all assets per batch with channel breakdowns, file details, and a publishing checklist for each batch.
3. WordPress draft files
For each batch, a directory containing:
- HTML blog post drafts with WordPress block markup and Yoast SEO metadata
- HTML page drafts for homepage/product page updates
- Markdown social post templates (LinkedIn, X, YouTube)
- Markdown email campaign templates
- A media-manifest.json listing all images to upload
- A batch-instructions.md with step-by-step publishing instructions
4. Post-publish status updates
After Tim publishes, updates the tracker: marks queue entries as Live, adds live URLs, updates Asset Register stage to Published, and archives completed batches to the Learnings tab.
Instructions
Full Staging Workflow
Run these scripts in sequence for a complete staging pass:
Step A — Stage assets into batches:
python scripts/stage_batch.py <tracker.xlsx> \
--cadence-weeks 5 --num-batches 3 --start-date 2026-05-04
Step B — Generate the content calendar:
python scripts/build_content_calendar.py <tracker.xlsx> \
/path/to/content-calendar.md
Step C — Create WordPress drafts and templates:
python scripts/create_wp_drafts.py \
/path/to/content-calendar.json /path/to/drafts/
Step D (after publishing) — Mark batch as Live:
python scripts/update_queue_status.py <tracker.xlsx> mark-live \
--batch-date 2026-05-04
Step E (optional) — Add live URLs:
python scripts/update_queue_status.py <tracker.xlsx> add-urls \
--url-map /path/to/urls.json
Step F (after performance review) — Archive:
python scripts/update_queue_status.py <tracker.xlsx> archive \
--batch-date 2026-05-04
Script Details
stage_batch.py
Scans the Asset Register for assets with Stage="Web-Ready" or "Approved" that are not yet in the Publishing Queue. Groups them by channel and distributes across batches.
Options:
--cadence-weeks INT — Weeks between batches (4-6, default 5)
--start-date STR — First publish date YYYY-MM-DD (default: today + cadence)
--num-batches INT — Number of future batches to plan (default 3)
--campaign STR — Campaign name (default: auto-generated from dates)
--dry-run — Preview the plan without writing
build_content_calendar.py
Reads the Publishing Queue and produces a Markdown calendar with per-batch checklists.
Options:
--status STR — Filter by status (default: Scheduled)
--all — Include all statuses
create_wp_drafts.py
Generates WordPress-compatible draft files from the content calendar JSON.
Options:
--site-url STR — WordPress URL (default: https://greatinvert.com)
--batch INT — Only generate for a specific batch number
update_queue_status.py
Three modes for post-publish updates:
mark-live — Set status to Live, update Asset Register to Published
add-urls — Add live URLs from a JSON map file
archive — Move to Archive and Learnings tab
Publishing Cadence
Tim publishes every 4-6 weeks. The default cadence is 5 weeks. A typical quarterly plan looks like:
| Batch | Approx Date | Content Mix |
|---|
| 1 | Week of May 4 | Homepage refresh + blog post + LinkedIn |
| 2 | Week of Jun 8 | Product page update + email campaign + social |
| 3 | Week of Jul 13 | Blog series + social cards + email |
Examples
Stage a 3-batch publishing plan starting May 4:
Tell Computer: "Stage content for publishing, start May 4, every 5 weeks"
Generate WordPress drafts for the next batch:
Tell Computer: "Create WordPress drafts for the next publishing batch"
After publishing, update the tracker:
Tell Computer: "Mark the May 4 batch as published"