원클릭으로
draft-post
Write a blog post draft from a braindump brief, matching Ben's writing voice. Use after /braindump produces a BRIEF.md.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Write a blog post draft from a braindump brief, matching Ben's writing voice. Use after /braindump produces a BRIEF.md.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Delegate code implementation to Codex CLI. Claude decomposes, scopes context, and verifies; Codex implements. Accepts a spec file, text description, or gathers requirements interactively.
Exploratory conversation before /product-spec. Asks one question at a time, runs background research for open-source/off-the-shelf alternatives, and writes DISCOVERY_NOTES.md. Use when the user has an idea but hasn't scoped it yet.
Generate EXECUTION_PLAN.md and scoped AGENTS.md files for a feature. Use after /feature-technical-spec to create the task breakdown.
Define feature requirements (problem, users, scope, acceptance criteria) through guided Q&A and write FEATURE_SPEC.md. Use when starting a new feature.
Define technical approach (architecture, integration points, data model) for a feature through guided Q&A and write FEATURE_TECHNICAL_SPEC.md. Use after /feature-spec.
Orient to project structure and load context. Use at the start of each new session or after context reset to understand the project state.
| name | draft-post |
| description | Write a blog post draft from a braindump brief, matching Ben's writing voice. Use after /braindump produces a BRIEF.md. |
| argument-hint | ["topic-slug"] |
| allowed-tools | Bash, Read, Write, Edit, AskUserQuestion |
Write a full blog post draft from a BRIEF.md, matching Ben Shoemaker's established writing voice.
Copy this checklist and track progress:
Draft Post Progress:
- [ ] Step 1: Load context (brief + author profile)
- [ ] Step 2: Choose structure with user
- [ ] Step 3: Write first draft
- [ ] Step 4: Self-review against voice profile
- [ ] Step 5: Present to user and iterate
- [ ] Step 6: Finalize (set draft: false, cleanup, remind /tone-check)
If a slug is provided, read src/content/writing/<slug>/BRIEF.md.
If not, ask which brief to use (list available BRIEF.md files under src/content/writing/).
Also read AUTHOR_PROFILE.md (in this skill's directory) for Ben's background, expertise, and core beliefs.
If the draft needs specific anecdotes beyond what AUTHOR_PROFILE.md provides, read the detailed stories in ~/Projects/interview_documents/stories/ (Dradis, LLM Match Quality, ASK'EM, Connections, Component Platform, Layoff Leadership).
If BRIEF.md doesn't exist for the given slug, ask the user if they want to run /braindump first. Don't proceed without a brief.
If AUTHOR_PROFILE.md is missing, proceed but note that authority grounding will be weaker — flag claims that need personal experience backing.
Before writing, propose a structural approach. Present the user with 2-3 options from these patterns, chosen based on what fits the brief's content:
Surprising Reversal — Present the conventional wisdom, let the reader settle in, then pivot to reveal why it's wrong. Thesis lands late. Best when the audience holds the belief you're challenging. Ben's example: "The Codex App Changes Everything!!! (not really)"
Case Study Cascade — 2-4 concrete examples that each independently support the thesis, building cumulative weight. No single example carries the argument; the pattern across them does. Ben's example: "Fivetran + dbt Merger" (three migration stories → the pattern)
Rogerian Concession — Genuinely steelman the opposing view first, grant its strongest points, then identify the specific conditions under which it breaks down. Builds credibility in polarized debates. Ben's example: "In defense of not reading the code" (quotes critics, takes them seriously, then responds)
Narrative-to-Principle Extraction — Open with a specific concrete story, then zoom out to extract the general principle. Story provides grounding; principle provides transferable value.
Diagnostic Dissection — Identify a symptom everyone recognizes, then work backward through layers of causation to find the non-obvious root. Mirrors debugging — a reasoning pattern technical audiences trust.
First Principles Rebuild — Strip a familiar concept to its foundation, discard inherited assumptions, reconstruct from scratch. Effective when the audience's assumptions are the problem.
Reframing / Lens Shift — Take a well-known problem and apply a framework from a different domain. The essay's value is the lens itself — readers leave with a new mental model.
Defaults: Use Surprising Reversal for opinion pieces and Case Study Cascade for experience-based pieces. Use Rogerian Concession when the topic is actively debated. Present the default plus 1-2 alternatives.
Ask the user which structure fits, or if they have a different one in mind.
Write the full post applying the chosen structure and the voice profile below. Save to src/content/writing/<slug>.md with frontmatter:
---
title: "<title>"
date: <today's date>
type: essay
tags: [<relevant tags>]
description: "<1-2 sentence hook for social/SEO>"
draft: true
---
Opening: Lead with a contrarian take, a direct challenge to conventional wisdom, or a strong claim that immediately stakes out a position. Never open with throat-clearing ("In today's rapidly evolving..."). Examples from past posts:
Authority: Ground claims in specific personal experience from AUTHOR_PROFILE.md — name the company, the team size, the timeframe, the outcome. Don't hedge with "in my experience, generally speaking..." — be specific: "I've spent 6 years leading product for Indeed's Employer Data & Analytics organization."
Evidence: Always concrete. Name people, projects, companies, stats. Quote external sources directly (block quotes for longer passages). Mix personal anecdotes with external examples. Never make claims without backing — if there's no evidence, flag it as opinion explicitly ("I think").
Tone: Confident and opinionated but conversational. Use contractions. Use "I think" when it's genuinely opinion vs. fact. Ask rhetorical questions occasionally. Never condescending — take counterarguments seriously and engage with them honestly.
Sentence rhythm: Alternate between short punchy assertions and longer analytical sentences. Use short sentences for impact after building up a longer thought. Examples:
Structure:
).Things to AVOID:
- (space-hyphen-space), not —. Keep to ~9-10 per 1000 words. Many can be replaced with periods or commasClosing: End with either:
Length: Target 800-1500 words for most posts. The Fivetran post was ~1200 words, the "not reading the code" post was ~1800 (longer because it was responding to debate). Match length to substance — don't pad.
After writing, verify the file exists and the frontmatter is valid by reading back the first 10 lines.
Before presenting to the user, audit the draft against the voice profile:
Fix any issues found before presenting.
Show the draft to the user. Then ask targeted questions about the weakest parts — never generic "what do you think?" questions. Examples of good targeted questions:
Continue iterating until the user is satisfied. Each revision should preserve what worked and only change what was flagged.
When the user approves:
draft: false in frontmatter/pre-publish-check as a final gate