repo-publisher skill
High confidenceUpdated 25 Apr 2026 by David Olsson
repo-publisher skill
Stateful blog orchestrator that turns your git history into published blog posts. Reads your repo, analyses what changed, scores story candidates, writes drafts, and publishes through the scsiwyg MCP. Between runs, nothing is forgotten.
Trigger: what should I blog about, run the blog workflow, initialize blog state for this repo, draft a post about X, publish the queue
Type: Orchestrator (6-phase pipeline)
Workflow
| Phase | What happens |
|---|---|
| 1. Read State | Load .blog-state/state.json, compute git changeset since last run |
| 2. Analyse | Run analysis pipelines on changed files |
| 3. Decide | Score story candidates on significance ร novelty ร timeliness ร audience-fit |
| 4. Produce | Generate diagrams and tables, write post in Markdown |
| 5. Publish | Hand approved drafts to scsiwyg via publish_post |
| 6. Save State | Snapshot state, update git baseline for next run |
Decision Engine
Every story candidate is scored on four dimensions. Only stories clearing the configured threshold become posts.
| Dimension | What it measures |
|---|---|
| significance | How much changed, how important is it |
| novelty | Have we written about this before |
| timeliness | Is this relevant now or will it go stale |
| audience_fit | Does the target blogโs readership care |
A dependency bump is not a post. A major architecture refactor is.
config.yaml
target_blog: your-scsiwyg-username
voice: "technical but accessible, first-person, no hype"
publish_mode: draft # draft | auto | propose
cadence: weekly
draft queues posts for your review. auto publishes immediately. propose surfaces candidates without writing.
The .blog-state/ Directory
.blog-state/
โโโ state.json # Project identity, git baseline, content ledger
โโโ config.yaml # Target blog, voice, cadence
โโโ queue/ # Drafts awaiting review
โโโ published/log.jsonl # Append-only publish record
โโโ media/ # Generated diagrams and charts
โโโ analysis/ # Cached pipeline outputs
Lives inside your repo and commits alongside your code.