skills/build-in-public/SKILL.md
# Build in Public — Best Practices ## Philosophy Build in public isn't marketing. It's letting people watch you work. The best posts feel like you're narrating your thought process to a friend who's also a senior engineer. No hype sludge. No "I'm excited to announce." Just: here's what I built, here's why it matters, here's what I learned. ## What to Share (and What Not To) **Share:** - Technical decisions and the reasoning behind them ("Chose SQLite over Postgres because...") - Architecture
npx skillsauth add alinaqi/claude-bootstrap skills/build-in-publicInstall 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.
Build in public isn't marketing. It's letting people watch you work. The best posts feel like you're narrating your thought process to a friend who's also a senior engineer. No hype sludge. No "I'm excited to announce." Just: here's what I built, here's why it matters, here's what I learned.
Share:
Never share:
Audience: Engineers, CTOs, founders who build. They scroll between meetings looking for something that makes them think.
Format:
Tone: Confident, teaches something. You're the senior engineer explaining your approach to a peer. No jargon without explanation. If you used a technique others might not know, explain it briefly.
When to post: Tuesday-Thursday, 8-10 AM in target timezone. Avoid weekends and Monday mornings (everyone's catching up).
What works:
What flops:
Audience: Developers who ship. They scroll fast and judge faster. You have one sentence to earn their attention.
Format:
Tone: Sharp, opinionated, zero filler. Imagine you're texting a builder friend. If it sounds like marketing, delete it.
When to post: Tuesday-Friday, 9-11 AM or 2-4 PM in target timezone. Weekends can work for developer audience (they're building side projects).
What works:
What flops:
Daily (if you have something to say):
Weekly:
Per event (triggered by plugin):
Track these signals (Buffer, LinkedIn analytics, X analytics):
A good LinkedIn post: 3-5% engagement rate. A great one: 8%+. On X, anything above 2% is solid for technical content.
The build-in-public plugin follows these practices automatically:
# What gets shared vs skipped:
on_pr_merged:
- Share if: >3 files changed, meaningful commit message
- Skip if: typo fix, dependency bump, config change only
on_feature_shipped:
- Share: always, with screenshot
- LinkedIn: deep dive on architecture decisions
- X: punchy one-liner on impact
on_review_passed:
- Share if: 3/3 unanimous approval
- X only: architecture insights are punchy
- Skip if: 1/3 or 0/3 (revisions aren't share-worthy)
All posts are redacted through anonymize.yaml before publishing. Company names become generic descriptors. Revenue becomes "at scale." The reader learns about your engineering, not your employer's financials.
testing
Multi-model validation council — auto-validate plans, architecture changes, and PRs via validate-plan/review before executing
development
Task-scoped memory lifecycle — typed MnemoGraph prevents lossy context compaction by treating facts/decisions/code-refs/handoffs as distinct node types with per-type eviction policies
development
Mandatory code reviews via /code-review before commits and deploys
development
# Visual Validation — Autonomous Screenshot Verification ## Philosophy Every UI change should be visually verified before it ships. Peekaboo captures pixel-accurate screenshots. The system compares before/after and flags visual regressions. No manual "looks good to me" — the machine verifies what the machine built. ## Autonomous Flow ``` static/* files modified (detected by auto-review-hook or E2E testkit) ↓ peekaboo image --mode screen → ~/.maggy/visual-verify/after-{ts}.png ↓ Compa