skills/content-pipeline/SKILL.md
Generate content drafts when a PR is merged or significant code ships. Produces a Twitter/X thread, blog post outline, and changelog entry from PR title, changed files, and commit messages. Keywords: content, tweet, blog, changelog, announce, write about, PR merged, shipped, released, draft post, social, thread
npx skillsauth add avifenesh/cairn content-pipelineInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Generates three draft content formats from a merged PR or shipped feature. Run after a significant PR merges or when Avi says "write content for X".
Determine the PR or commit to write about. Accept one of:
If PR number or "latest":
cairn.shell: gh pr view <number> --repo avifenesh/cairn --json title,body,mergedAt,files,commits
or for latest merged:
cairn.shell: gh pr list --repo avifenesh/cairn --state merged --limit 3 --json number,title,mergedAt,files
Collect commit messages for the PR:
cairn.gitRun: log --oneline <base>..<head>
Summarise changed files — group by domain (backend/frontend/config/skill/docs). Skip test files for public copy.
cairn.searchMemory: "writing style tone voice communication"
Look for: writing style hard rules (no emojis, plain tone, direct), preferred framing (technical vs accessible), any past content preferences.
Output all three in a single response, separated by clear headers.
Rules:
Format:
🧵 [1/N] <hook>
[2/N] <detail>
[3/N] <detail>
[4/N] <optional detail>
[5/N] <link/cta if applicable>
A short outline (not the full post) for a 400-600 word technical post.
Format:
Title: <title>
Subtitle: <one sentence>
Sections:
1. The Problem — <2-3 sentence summary of what was broken/missing>
2. The Approach — <key technical decision and why>
3. Implementation — <2-4 bullet points of what was done>
4. Result — <concrete outcome: what works now that didn't before>
5. What's Next — <optional: follow-on work>
Target audience: <technical / general / builders>
Tone: <matter-of-fact / story-driven / tutorial>
Estimated read time: <N min>
One concise paragraph for CHANGELOG.md or release notes. Style: past tense, factual, no marketing language.
Format:
## [date] — <feature name>
<One paragraph: what changed, what it fixes or enables, any breaking changes or migration notes.>
How to trigger automatically on PR merge:
There is no pr_merged TaskMilestone in the event bus. The closest hooks are:
TaskMilestone.Milestone == "pr_created" (fires when a coder agent opens a PR)isExtraordinary(result) in internal/channel/task_summary.go (fires for any task result containing a PR URL or "files changed")Recommended wiring options (in order of effort):
Cron (zero code): Add a daily cron that calls cairn.loadSkill("content-pipeline") and passes "latest" as context. Generates content for yesterday's most significant merge. Avi reviews in the next morning's digest.
Orchestrator heuristic (no code): The orchestrator's GATHER phase already reads PR status. Add a DECIDE heuristic: if a PR was merged since the last tick and isExtraordinary(PR title + body), spawn a content-pipeline worker with the PR number.
Notification bridge hook (minimal Go): In notification_bridge.go, when TaskMilestone.Milestone == "pr_created" fires and isExtraordinary(e.Summary) returns true, also spawn content-pipeline as a background worker subagent. This is ~10 lines of Go in notification_bridge.go.
data-ai
Detect agent-cairn PRs that have stalled (no activity >=90 min) and classify the failure mode to route to appropriate recovery agent.
tools
Post-install skill adaptation: read a newly installed SKILL.md, fix environment-specific references (paths, accounts, tool names), assign the skill to relevant agent types, and propose an AGENTS.md update. Triggered automatically after cairn.installSkill completes.
data-ai
Monthly self-improvement brief for Cairn. Queries error_patterns, action_exemplars, experiment_windows, and session_journal to synthesize what Cairn learned, where it failed, and 3 concrete proposals for Avi to approve. Run on the 1st of each month. Keywords: growth brief, monthly review, self-improvement, what did cairn learn, how is cairn doing, monthly report
testing
Decision support with memory-backed context. Retrieves past decisions, journal history, and relevant facts before answering questions that involve a choice or tradeoff. Keywords: should I, which is better, tradeoff, compare, decide, choose, option, alternative, pros and cons, recommend