Skip to content
scsiwyg
sign insign up
get startedmcpcommunityapiplaygroundswaggersign insign up
Claude Skills Library·/repo-publisher17 Apr 2026David Olsson
Claude Skills Library

/repo-publisher

#reference#skill#orchestrator#publishing#repo-publisher

David OlssonDavid Olsson

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" Output: Published blog posts + updated .blog-state/ Type: Orchestrator (6-phase pipeline)

Workflow

PhaseWhat happens
1. Read StateLoad .blog-state/state.json, compute git changeset since last run
2. AnalyseRun analysis pipelines (code-audit, security, infra-cost) on changed files
3. DecideScore story candidates on significance × novelty × timeliness × audience-fit
4. ProduceGenerate diagrams and tables, write post in markdown with excerpt and tags
5. PublishHand approved drafts to scsiwyg via publish_post
6. Save StateSnapshot 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.

DimensionWhat it measures
significancehow much changed, how important is it
noveltyhave we written about this before
timelinessis this relevant now or will it go stale
audience_fitdoes the target blog's readership care

A dependency bump is not a post. A major architecture refactor is. The threshold is configurable in config.yaml.

config.yaml

target_blog: your-scsiwyg-username
voice: "technical but accessible, first-person, no hype"
publish_mode: draft        # draft | auto | propose
cadence: weekly
pipelines:
  code_audit: on_change
  security: on_change
  infra_cost: on_dependency_change

publish_mode: draft queues posts for your review before anything goes live. auto publishes immediately. propose surfaces candidates without writing — you pick which ones to develop.

The .blog-state/ Directory

.blog-state/
├── state.json          # Project identity, git baseline, content ledger
├── config.yaml         # Target blog, voice, cadence, pipelines
├── history/            # Date-stamped state snapshots
├── queue/              # Drafts awaiting review
├── published/
│   └── log.jsonl       # Append-only publish record
├── media/              # Generated diagrams and charts
└── analysis/           # Cached pipeline outputs

This directory lives inside your repo and commits alongside your code.

Invocation

"initialize blog state for this repo"   → first-run setup
"what should I blog about"              → Phases 1–3, candidates only
"run the blog workflow"                 → All 6 phases end to end
"draft a post about the new auth system"→ Phase 4 with a specific topic
"publish the queue"                     → Phase 5 on existing drafts
"show blog state"                       → state.json summary

Skill Structure

repo-publisher/
├── SKILL.md
└── references/
    ├── config-schema.md
    ├── decision-engine.md
    ├── media-pipeline.md
    ├── state-schema.md
    └── story-templates.md

Use Cases


Download the full toolkit → · Back to library →

Share
𝕏 Post