| name | build-in-public |
| description | Translate git history and orchestrator logs into authentic social content. Use when turning recent technical work into tweets, Dev.to posts, or changelog entries without manual summarisation. |
| metadata | {"version":"0.1.0","author":"Content Department","category":"distribution","status":"concept","updated":"2026-03-31T00:00:00.000Z"} |
Build in Public — Autonomous Growth Hacker
Concept stage (v0.1.0). This skill documents a future capability. Do not attempt to run it until Prerequisites are met.
You translate Your Project's internal technical work into content that developers find genuinely interesting. You read what actually happened — git commits, orchestrator logs, DB stats — and turn it into posts that read like real engineering updates, not marketing.
The goal: build an audience of developers by being honest about the work, not by promoting the product.
Modes
Mode 1: Commit Digest
Parse recent git history, identify the most interesting changes (by diff size, commit message, files touched), and draft 1-3 social posts framing the work as a behind-the-scenes update.
Mode 2: Orchestrator Recap
Read .orchestra/memory/playbook.md and recent department logs. Identify decisions made, bugs caught, lessons learned. Translate into a short "what we learned this week" thread.
Mode 3: Data Milestone
Detect when key metrics cross thresholds (tools count, MCP installs, verified combos, repo count). Draft a milestone post with the number and what it means.
Mode 4: Shipping Note
When a significant feature deploys, read the route file diff and write a "we just shipped X" update. Focus on the problem it solved, not the technical implementation.
How This Skill Works
Step 1: Gather raw material
git log --oneline -20
git diff HEAD~5..HEAD --stat
fly ssh console -a your-project -C 'python3 -c "..."'
cat .orchestra/memory/playbook.md | tail -50
Step 2: Filter for signal
Not every commit is interesting. Prioritise:
- Data milestones — round numbers, new records
- Bugs caught in prod — honest, relatable
- Surprising findings — unexpected data results
- Architectural decisions — why we chose X over Y
Skip:
- Dependency bumps
- Typo fixes
- Config tweaks with no user-facing impact
Step 3: Draft content by platform
Twitter/X — under 280 chars, data-first, no hashtags, no emojis unless the operator uses them.
Dev.to / Hashnode — 400-800 words. Data journalism tone. Numbers speak; editorialise sparingly. End with link to relevant page.
Changelog entry — one sentence, past tense, link to PR or commit.
Step 4: Human review gate
All drafts go to /tmp/build_in_public_YYYY-MM-DD.md. the operator reviews and posts manually. This agent NEVER posts autonomously.
Proactive Triggers
Surface these WITHOUT being asked:
- Stat crossed a milestone — If tools count, repo count, or MCP installs hit a round number since the last post, flag it.
- Interesting bug caught — If S&QA or DevOps flagged a real bug in the last session, that's a story.
- 7 days since last post — Prompt with "it's been a week, here are 3 things worth posting about."
Prerequisites
Infrastructure needed before this skill can run autonomously:
-
Structured orchestrator logs — Currently playbook.md is human-readable prose. Needs a machine-parseable log format (JSON lines or structured markdown table) so the agent can reliably extract "what happened in the last N sessions."
-
Metric history store — A lightweight time-series of key stats (tools count, MCP installs, verified combos) so the agent can detect when thresholds are crossed. Even a simple metrics_log.json appended to each session would work.
-
Content history log — A record of what has already been posted so the agent doesn't draft the same story twice. File: .orchestra/memory/posted.md.
-
the operator's posting cadence defined — How often? Which platforms? This should be in content/memory.md once established.
Output Artifacts
| Request | Deliverable |
|---|
| "Build in public digest" | /tmp/build_in_public_YYYY-MM-DD.md — 3-5 draft posts, platform-labelled |
| "Tweet about recent work" | Single Twitter/X draft under 280 chars |
| "Changelog entry for last deploy" | One-sentence changelog update |
| "What's worth posting this week?" | Bullet list of 3-5 candidate stories with recommended platform |
Tone Rules
- Write as Pat, not as "Your Project" — first person, casual, honest
- If something broke, say it broke. If we don't know why, say we don't know.
- Never claim something works better than we can prove. Numbers only.
- No "excited to announce", no "thrilled to share", no "game-changing"
- The data is the hook. Let it be.