/home/app/projects/content-engine
1ready
0check
1draft

Voice & rules

The brand voice contract every agent reads before writing or editing. Banlist, sentence-rhythm rules, citation rules.

Content Engine: Project Context

This is the content automation system for Living Neurodivergent (@living.neurodivergent), a digital products brand for late-diagnosed women with ADHD aged 28-45.

Architecture

Files are agents and skills. Production runs through the Anthropic API in headless mode (claude -p) on a server. Local development is via Claude Code. Cowork is NOT used: all logic must be portable through git and the API.

.claude/
├── agents/          # agent definitions (role, hard rules, tool access)
└── skills/          # protocols (what to do, how, output format)

data/raw/{date}/     # scraper output per weekly run
research/            # analyst reports per week
logs/                # cron / run logs (server only, gitignored)

Brand voice rules (apply EVERYWHERE in this repo)

Even internal documents and reports respect these rules so voice stays consistent across the system:

  • No em dashes anywhere.
  • No "here's the thing", "that's not X that's Y", "you're not broken", "you didn't fail at X, X failed you", "here's what nobody tells you", "you deserve better", "and it explains everything".
  • No staccato sentence spam.
  • No lecture tone ("you, you, you").
  • Approved voice: third-person scientific narrative OR first-person story. Conversational, specific.

The full banlist lives in the brand-dna skill (will be added in a later phase). For now, treat this section as authoritative for any text in this repo.

Agents currently in this repo

  • analyst (.claude/agents/analyst.md): weekly research analyst. Reads scraped data, produces structured weekly report.
  • strategist (.claude/agents/strategist.md): reads analyst report, produces 4-6 content briefs for the upcoming week.
  • writer (.claude/agents/writer.md): takes a single brief, produces draft caption + slide/scene copy. Marks science claims with [FACT-CHECK].
  • editor (.claude/agents/editor.md): quality gate. Runs mechanical banlist check, voice consistency review, structural alignment, marker triage. Outputs verdict (APPROVED / NEEDS_REWRITE / NEEDS_FACT_CHECK).
  • own-performance-analyst (.claude/agents/own-performance-analyst.md): reads Meta Graph API insights via scripts/fetch-own-insights.mjs, attributes posts back to internal briefs, produces digest with format / hook / pain-point winners. Other agents read the digest to calibrate. This is the learning loop.
  • fact-checker (.claude/agents/fact-checker.md): verifies scientific / medical / statistical claims flagged by writer and routed by editor. Returns per-claim verdict (SUPPORTED with citation, UNSUPPORTED with rewrite, PARTIALLY_SUPPORTED with hedging language). Uses tier-1 to tier-7 source hierarchy.
  • visual-director (.claude/agents/visual-director.md): takes APPROVED draft, produces slide-by-slide / scene-by-scene visual production brief. Specifies brand palette hex codes, typography, image direction, layout. Output goes to the designer (Andrii or Claude Design).

Skills currently in this repo

  • research-protocol (.claude/skills/research-protocol/SKILL.md): contract for the analyst.
  • competitor-analysis (.claude/skills/competitor-analysis/SKILL.md): protocol for analyzing competitor accounts. Implementation-agnostic (WebFetch, Claude in Chrome, Business Discovery API, or manual data).
  • strategy-protocol (.claude/skills/strategy-protocol/SKILL.md): contract for the strategist.
  • writing-protocol (.claude/skills/writing-protocol/SKILL.md): contract for the writer. Format-specific (carousel, reel, single) rules, hook construction, voice templates, banlist enforcement.
  • editing-protocol (.claude/skills/editing-protocol/SKILL.md): contract for the editor. Four passes (mechanical, voice, structural alignment, marker triage), verdict logic, output template.
  • own-performance-protocol (.claude/skills/own-performance-protocol/SKILL.md): contract for the own-performance-analyst. Correlation rules, save-rate ranking, comment mining, digest format, rolling 4-week trends.
  • fact-checking-protocol (.claude/skills/fact-checking-protocol/SKILL.md): contract for the fact-checker. Source quality hierarchy, search strategy, per-claim verdict logic, citation format, recency rules.
  • visual-direction-protocol (.claude/skills/visual-direction-protocol/SKILL.md): contract for the visual director. Brand palette (hex), typography stack, photography style, format-specific layout rules (carousel / reel / single), per-unit output spec, designer handoff conventions.
  • image-generation-protocol (.claude/skills/image-generation-protocol/SKILL.md): renders the visual brief's per-slide prompts into actual PNGs via the Higgsfield CLI (nano_banana_2 model), saves to assets/{date}/{slug}/slide-N.png, appends a "Generated assets" section to the visual brief. Carousel + single only; reels skip this.

Weekly pipeline cadence

Sunday evening    → scraper run (data/raw/{date}/) [external, not yet wired]
Monday morning    → analyst (research/{date}-week.md)
Monday afternoon  → strategist (briefs/{date}-briefs.md)
Tue-Thu           → writer + editor + fact-checker (phases 3-5, not yet built)
Thu-Fri           → visual director (phase 6, not yet built)
Fri-Sun           → posts ship

Daily own-account performance check is a separate, lightweight skill (planned).

How to test the analyst locally

> Use the analyst agent to analyze data/raw/2026-05-19/.
> Read .claude/skills/research-protocol/SKILL.md first.
> Write the report to research/2026-05-19-week.md.

How to test the strategist locally

> Use the strategist agent to read research/2026-05-19-week.md.
> Read .claude/skills/strategy-protocol/SKILL.md first.
> Write briefs to briefs/2026-05-19-briefs.md.

How to test the writer locally

> Use the writer agent on Brief 1 of briefs/2026-05-19-briefs.md.
> Read .claude/skills/writing-protocol/SKILL.md first.
> Write the draft to drafts/2026-05-19/brief-1-{slug}.md.

How to test the editor locally

> Use the editor agent on drafts/2026-05-19/brief-1-luteal-collapse.md.
> Read .claude/skills/editing-protocol/SKILL.md first.
> Write the verdict to approved/2026-05-19/brief-1-luteal-collapse.md.

Migration to server

When agents are stable, deploy by git clone to VPS, install Claude Code globally, set ANTHROPIC_API_KEY, run via cron with claude -p. No code changes needed.

Build phases (current = all 6 phases shipped)

  1. Analyst (research/{date}-week.md)
  2. Strategist (briefs/{date}-briefs.md)
  3. Writer (drafts/{date}/brief-{N}-{slug}.md)
  4. Editor (approved/{date}/brief-{N}-{slug}.md with verdict)
  5. Fact-checker (fact-checks/{date}/brief-{N}-{slug}.md)
  6. Visual director ← we are here (visual-briefs/{date}/brief-{N}-{slug}.md)

All 6 agents shipped on synthetic data as of 2026-05-20. Next: real-data wiring (Meta Graph API for own, competitor-analysis for tracked accounts), scheduling automation, dashboard run-trigger.

Voice-shaping skills