← back to Goodquestion Ai

docs/plans/2026-07-28-content-plan.md

95 lines

# goodquestion.ai — Content Plan (v2)

_Last updated: 2026-07-28_

This replaces the ad-hoc posting cadence that let the journal go silent for weeks
at a stretch (see the April 12 → May 6 gap). The blog is the public face of the
"one founder + AI" story. It should read as an **active, honest build journal** —
war stories, fixes, and lessons — not a marketing feed.

## 1. Cadence

- **Target: 3–5 posts/week.** Daily is not required and daily filler dilutes
  quality. A strong post every couple of days beats seven thin ones.
- **Every post maps to a real, shipped thing.** No speculative or aspirational
  posts. If nothing shipped, don't post — the honesty is the brand.
- **Backfill gaps in batches.** When the journal goes quiet, reconstruct the
  missing milestones from the sources below rather than inventing days.

## 2. Where posts come from (source of truth)

1. **The wins log** (CNCP `http://localhost:3333/api/wins`) — one-line wins per
   project per day. This is the richest, most current source (live since
   2026-07-22). Each cluster of related wins = one candidate post.
2. **Git history across `~/Projects`** — for any window the wins log doesn't
   cover, `git log --since --until` over the repos surfaces the real milestones.
   Filter to feature/ship/launch commits; ignore wip/lint/merge noise.
3. **Session recaps** — end-of-session summaries when available.

A milestone is post-worthy when it has: a clear problem, a concrete fix, and a
transferable lesson a business owner would care about.

## 3. Generalize + no trade secrets (HARD RULE)

Every post is public. Before publishing, strip anything proprietary:

- **No brand/vendor names.** "a large product catalog," not the vendor.
- **No private-label mappings** or any relationship between a label and its
  upstream source.
- **No pricing formulas, margins, cost bases, or MAP rules.**
- **No client names** or identifying business details.
- **No infra secrets** — IPs, hostnames, credentials, ports, internal domains,
  DB names, tokens.
- **No proprietary SKU/numbering schemes.**
- **No detection-evasion / anti-bot technique detail.** Describe *that* a source
  was hard to reach, not *how* it was bypassed.

Generic scale numbers that already appear publicly (record counts, costs,
durations, success rates) are fine — they make the story concrete without
leaking anything.

## 4. Post template

```markdown
---
title: "Title Case, Specific, No Brand Names"
description: "One sentence: the problem + the outcome."
date: YYYY-MM-DD
tags: ["3-6", "kebab-case", "topical", "founder-log"]
---

Opening hook — the concrete result or the surprise, in 2–3 sentences.

## The Problem  (or: The Setup)
## The Fix
## The Numbers  (optional table when there are real metrics)
## The Lesson
## Why This Matters for Business Owners

## Let's Connect
<standard footer — @agentabrams links + advisory blurb>

---
*Built with [Claude Code](https://claude.ai). Shipped in production. Every day.
This is what one founder + AI looks like.*
```

Text-only is the default. Only embed a video when a real capture exists in
`/public/videos/` (broken media links look worse than no media).

## 5. Voice

First person. Honest about mistakes (the "what broke today" posts are the best
ones). Lead with the concrete. End with a transferable lesson. Never overclaim.

## 6. Backlog / recently backfilled (Apr 11 → Jul 28 2026)

Filled the April 11 → July 28 silence with curated milestone posts, each mapped
to a real shipped thing and generalized per §3: a CLI replacing a bash recipe,
a fleet-wide one-line security fix, a nine-copies-of-one-function refactor, a
credential-shipped-to-the-browser postmortem, honest live/simulated posting UX,
a currency-aware catalog viewer, a zero-dollar overnight crawler, a newsletter
go-live, an empty-result-proof color-search wheel, a draft-only send button,
1.8M open-data property parcels, a local model arena, and a guardrail that
refused an ambiguous command.