Pre-launch · Phase 1 complete · First piece shipping soon

A marketing operating system, but it's not an app.

Build started April 2026 · Phase 1 (Core 5) complete · Chicago

Most marketing tools assume you want a dashboard. I don't. I want a workbench. Content Desk is a marketing operating system implemented as Claude Code slash commands. Five skills that move from story elicitation to publish, with a voice gate and a HIL gate at every step. Not a SaaS, not a CMS. Five commands typed into a terminal, each producing both content AND system training. The dual output is the point.

The problem

I write across six pillars (Build in Public, Seven Skill Proof, K-Shaped Market, Ops Veteran + AI, Tools + Frameworks, Client Work) for nine platforms (Substack, LinkedIn, X, Bluesky, Threads, Instagram, TikTok, Substack Notes, the publication site). Each platform has different format constraints. Each pillar has different positioning. Each piece needs to reinforce a 20-year throughline without sounding self-aware about it. None of it can sound like AI wrote it, even though most of it is drafted with AI assistance.

The naïve solution is a content calendar app. Calendar tells you what to write; it doesn't tell you whether the draft sounds like you. I don't need a calendar. I need a quality bar that runs before anything ships, and a system that gets smarter every time I publish.

The other failure mode is "use a generic LLM to draft everything." That produces volume, not voice. Voice is the only thing readers actually retain. A piece that sounds like everyone else's piece is a piece nobody remembers tomorrow, even if it ships on time, even if the calendar is full.

The design constraints

  1. Story First, Strategy Second. Every entry point starts with a moment, not a thesis. My mind works through narrative. The system has to meet me there. Asking me "what's your strategic angle for this piece?" produces nothing. Asking me "tell me about a time when..." produces material.
  2. The Pattern Is the Positioning. Every output must reinforce a single 20-year throughline: systems-builder-at-intersections. Know what story is already being told before claiming a new one. The piece that drifts from the pattern doesn't get published. It gets reworked.
  3. Serve First, Publish Second. Voice gate + HIL gate before anything goes anywhere. I remain sovereign over every output. The system can draft; only I can publish. This is not a constraint to relax later. It is the brand.
  4. Dual output. Every session produces (1) content AND (2) system training. A Founder's Desk piece about Career Desk is a piece for HumanOperators readers AND a bullet candidate for Career Desk resumes AND a story enriched in Open Brain for the next piece to draw on. If a session only produces content, the system isn't working.

The architecture

This is the part that makes Content Desk different from other "AI content systems." There is no app. There is no CMS. There is no dashboard. The architecture is:

That's the entire system. No web UI. No database app. No scheduling tool. The interface is a terminal prompt. That's the right interface for craft work, the same way a writer's interface is a blank page and an editor's interface is a red pen.

Why slash commands instead of an app? An app has a UI surface that has to be designed, debugged, and maintained. A skill is a markdown file that gets invoked by name. The cost of adding a new skill is writing one file. The cost of adding a new app feature is everything else. For a one-person system, the skill model is dramatically lower-friction.

The five skills

The Core 5, Phase 1, complete. They run the full Know → Position → Create → Voice-Check → Proof → Publish → Learn loop:

/desk-story /desk-write /desk-voice /desk-publish /desk-archive
/desk-storyPhase: Create
The soul of the system
Coach Me for content. Draws out my stories through conversation: one question per turn, story-first, warm tone. Queries Open Brain for related stored thoughts and surfaces them. Outputs: elicited material plus Open Brain enrichment. Trigger: "I want to write about..." / "content idea" / "let's build a piece."
/desk-writePhase: Create
Generate the full draft
From elicited material, drafts the full piece. Platform-aware (Substack, LinkedIn, X, TikTok, Bluesky). Structure always: scene → connection → pivot → insight → forward close. Runs an internal voice check before presenting. Usually invoked automatically by /desk-story.
/desk-voicePhase: Voice-check
15-point quality gate
Scores A1-D2 against CONTENT-STANDARD.md. Flags AI slop, banned phrases, thesis-first openings, generic claims. Returns: Ready (13-15), Revise (10-12), or Redraft (<10). Specific, line-level feedback, never generic. Trigger: "voice check" / "does this sound like me" / "run the gate."
/desk-publishPhase: Publish
HIL gate at every step
Complete publish workflow with explicit confirmation before each platform action. Canonical order: Substack → LinkedIn → X → Bluesky → Instagram/TikTok. Nothing publishes without explicit approval. The whole point: no autonomous posting, ever.
/desk-archivePhase: Learn
The dual output
Post-publish. Archives to Content Desk wiki with full tag set (topic, brand, platform, pillar, voice signature). Enriches Open Brain. Logs to publishing timeline. Flags Career Desk bullet library candidates if achievement evidence is found in the published content. Every session produces (1) content + (2) system training.

The five voice signatures

These aren't style suggestions. They're explicit moves the writer can deploy to make a piece land. Every piece picks at least one. The voice gate checks whether the chosen signature is actually doing work in the draft.

Signature 1
Diagnostic Question
"If an AI assistant were trying to help your business right now, what would it have to work with?"
Signature 2
Analog-to-AI Throughline
"You were doing context architecture before the term existed. You just called it a binder."
Signature 3
Freakonomics Connection
"ISO 9001 is an AI readiness program from 2001. Nobody called it that."
Signature 4
Personal-to-Universal Bridge
"When I was 8 years old standing in the magazine aisle at the pharmacy..." → "That habit never left."
Signature 5
Builder's Honesty
"I built Figo University on SharePoint because I didn't get the budget for a proper LMS."

How a piece gets made

This is the meta loop in motion. A real example, end to end:

  1. Trigger. I open a Claude Code session and type "I want to write about the Apify migration in Career Desk."
  2. /desk-story activates. Coach Me asks: "Tell me about the moment you realized Apify wasn't going to work." I tell the story: the Cloudflare 403s, the version-build cache hell, the 6-hour ripout. It probes for specificity. It queries Open Brain for related Career Desk captures. It surfaces a related thought from three weeks ago about residential IPs being "the only honest signal."
  3. /desk-write generates the draft. Platform: Founder's Desk on humanoperators.ai. Structure: scene (the moment of failure) → connection (residential IP as honest signal) → pivot (when to leave a tool) → insight (cost of cloud bot mitigation) → forward close.
  4. /desk-voice runs the gate. Scores 11/15. Revise. Flags two issues: opening is too thesis-first, and one paragraph contains a banned phrase ("at the end of the day"). I revise. Re-scores 14/15. Ready.
  5. /desk-publish posts. Canonical order: Substack first, then LinkedIn (with the Founder's Desk dispatch framing), then X (carousel cascade). Each platform action confirms before posting.
  6. /desk-archive closes the loop. The piece archives to Content Desk wiki tagged P1 Build in Public · Founder's Desk · Signature 5 (Builder's Honesty) · Career Desk. Open Brain enriched with a new capture: "residential IP as honest signal." Career Desk bullet library gets a candidate flag. The Apify-to-local migration is achievement evidence for "led architecture migration that recovered scraper reliability from ~30% to ~95%."

One session. Two outputs. The piece for readers, the bullet for the next resume, the story enriched for the next piece. That's the dual output principle in motion.

Integration map

Content Desk doesn't run in isolation. It's wired into the rest of the ecosystem:

Open Brain (semantic memory)
  ↑ /desk-archive enriches with new captures
  ↓ /desk-story queries for related stored thoughts

The Desk Skills (~/.claude/skills/desk-*)
  /desk-story → /desk-write → /desk-voice → /desk-publish → /desk-archive

Content Desk Wiki (~/.desk/wiki/)
  Every published piece archived with full tag set
  Searchable by topic · brand · platform · pillar · signature

Career Desk Bullet Library (~/.gstack/career-os/wiki/bullets/)
  Achievement evidence flagged by /desk-archive flows here
  Loop closes: job-search assets benefit from content work

Three Pillar Sites
  analyticgator.ai (P6 client work) · humanoperators.ai (P1/P3 editorial) · alfonsoherrada.com (P2/P4 personal)

Tool surfaces: same backend, multiple front doors

The CLI is the primary interface, but not the only one. Slash commands work when I'm in a Claude Code session writing or planning. They don't work as well when I'm visually scanning what's drafted, what's in queue for which platform, or which pieces are blocked on the voice gate. So Content Desk has two GUI surfaces, both wired to the same skill backend:

write.humanoperators.ai
Writer surface
Content management UI
Browser-based writing surface for drafts. Shows the same elicited material, drafts, and voice-gate scores that the CLI produces, but in a visual layout designed for body text. DM Sans for the editor. DM Mono for metadata. Linen palette inherited from humanoperators.ai for visual continuity with the publication being written for. Function over impression: no marketing chrome, no animations, no signal-green decorations. Just the writing.
Visit →
editor.humanoperators.ai
Editor surface
Publication workflow dashboard
The Sunday Edition queue, draft status, voice-gate scores in aggregate, publishing timeline. Data-dense, task-focused. DM Mono is the primary voice here because this is a system surface, not a writing surface. Section headings describe what each area does ("Editor Queue", "Draft Status"). Same brand tokens as write.humanoperators.ai for muscle memory across the two tools, but the layout is dashboard, not document.
Visit →

Both surfaces read from and write to the same Content Desk wiki, the same publishing timeline, the same Open Brain captures. The slash commands are the lower-friction interface for solo terminal work. The browser surfaces are the lower-friction interface for visual review and queue management. Pick the front door that matches the work you're doing.

Why two GUI surfaces instead of one? Writing and editing are different cognitive tasks. A writing UI optimized for paragraph composition is hostile to scanning a queue of 12 drafts. A queue UI optimized for status filtering is hostile to actually writing anything. Same backend, two purpose-built front doors. Same principle as physical newsrooms separating the writer's desk from the editor's desk for the same reason.

Phase 2 + Phase 3 (coming)

Phase 1 (Core 5) is the create-and-publish loop. Phase 2 adds the intelligence layer: research and positioning skills that run before /desk-story:

Phase 3 adds the platform layer: repurpose, intel scan, visual audit, real-browser proof, monitoring, learning, debug. Once Phase 1 is shipping reliably, Phase 2 unblocks the "before we write" work; Phase 3 turns one long-form piece into the full nine-platform cascade.

The build, week by week

Apr 2026
Reference docs locked first. VOICE-GUIDELINES.md, CONTENT-STANDARD.md, WRITING-COMPANION.md, ALIGN.md written before any skill. The skills inherit the standard; the skills don't define it.
Apr 2026
Voice signatures named. Five distinct moves identified. Each one paired with examples from prior writing. The signatures aren't theoretical. They're observed patterns from work that already worked.
Apr 2026
Open Brain integration. /desk-story and /desk-archive both wired to Open Brain (Supabase + pgvector + MCP). Same memory layer as Career Desk. Shared institutional memory across both desks.
Apr 2026
Phase 1: Core 5 skills shipped. /desk-story · /desk-write · /desk-voice · /desk-publish · /desk-archive. The full create-to-archive loop. THE-DESK.md quick reference written.
Apr 2026
15-point quality gate codified. CONTENT-STANDARD.md locked: 9 platform specs, cascade rules, CTA architecture. The voice gate has something concrete to check against.
May 2026
Pre-launch state. Phase 1 complete. Reference docs in place. First piece (likely the Apify-migration Founder's Desk dispatch) in queue for the full pipeline run.

What's built

5
Phase 1 skills (Core 5)
15
Phase 2 + 3 skills planned
5
voice signatures
6
content pillars
9
platforms supported
15
point voice gate

What success looks like

Pre-launch: I haven't shipped a piece through the full pipeline yet. What I'm watching for:

↻ I'll add a "first 10 pieces shipped" section once the Core 5 has a real run history.

What I'd do differently

What unlocked the speed

Marketing OSClaude Code skillsVoice gateHILOpen BrainBuild in PublicBuilder's HonestyDual output

The upstream feeder →

Capture

The one-day tool that makes everything Content Desk does possible. Three files: a bookmarklet, an iOS Shortcut, and a Supabase captures table. The smallest build in the portfolio, the deepest thesis: capture friction is the actual bottleneck of content production.

Read the build →