# Code To Content

> |

- **Type:** Skill
- **Install:** `agentstack add skill-arome3-code-to-content-code-to-content`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [arome3](https://agentstack.voostack.com/s/arome3)
- **Installs:** 0
- **Category:** [Agent Skills](https://agentstack.voostack.com/c/agent-skills)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [arome3](https://github.com/arome3)
- **Source:** https://github.com/arome3/code-to-content/tree/main/skills/code-to-content

## Install

```sh
agentstack add skill-arome3-code-to-content-code-to-content
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# Code to Content Skill

Transform codebases into compelling developer content through a mandatory 6-phase process with verification gates.

**Core premise:** when AI makes competent prose free, grounded-but-generic content gets ignored. The thing that wins is information only the builder knows, written the way only they would write it. This skill's evidence and readability machinery stops content from being *bad*; Phase 2 (Differentiation Discovery) and `references/differentiation.md` stop it from being *generic*. The governing test, applied at delivery: **cover the logo, swap in a competitor's name — if it still reads fine, it failed.**

---

## Specialized Agents

This skill includes 3 specialized agents for parallel execution:

| Agent | Purpose | When to Launch |
|-------|---------|----------------|
| `content-explorer` | Discovers story angles, analyzes codebase for content opportunities | Phase 1: Launch 2-3 in parallel with different focus areas |
| `format-specialist` | Optimizes content for specific platforms and formats | Phase 4-5: Launch per format needed |
| `quality-reviewer` | Validates against checklists, readability thresholds, evidence grounding, distinctiveness | Phase 6: Launch 2-3 in parallel with different review dimensions |

### Parallel Execution Pattern

**Phase 1 - Code Analysis:**
```
Launch 3 content-explorer agents in parallel:
├── Agent 1: "Find performance and optimization story angles"
├── Agent 2: "Find architecture and design decision angles"
└── Agent 3: "Find developer experience and tooling angles"

Consolidate: Merge findings, deduplicate, select top 3-5 angles
```

**Phase 6 - Quality Review:**
```
Launch 4 quality-reviewer agents in parallel:
├── Agent 1: "Review structure and format compliance"
├── Agent 2: "Review readability and audience fit"
├── Agent 3: "Review evidence grounding and technical accuracy"
└── Agent 4: "Review distinctiveness — swap-the-name test + AI-tells blocklist"

Consolidate: Merge issues, prioritize by severity, address blocking items
```

---

## Reference Loading Rules (Lazy Loading)

**NEVER load all references at once.** Load only what's needed for the current format:

| Format | Load These References |
|--------|----------------------|
| Blog Post | `formats.md#blog`, `optimization.md#seo`, `optimization.md#storytelling`, `checklists.md#blog`, `code-snippets.md` |
| Tutorial | `formats.md#tutorial`, `cognitive-load.md`, `checklists.md#tutorial` |
| Twitter/X Thread | `formats.md#twitter`, `social-content.md`, `checklists.md#twitter`, `code-snippets.md` |
| LinkedIn Post | `formats.md#linkedin`, `social-content.md`, `checklists.md#linkedin`, `code-snippets.md` |
| README | `documentation.md#readme`, `checklists.md#readme` |
| API Docs | `documentation.md#api`, `checklists.md` |
| Newsletter | `newsletters.md`, `checklists.md#newsletter` |
| Video Script | `formats.md#video`, `checklists.md` |
| Conference Talk | `conference-talks.md`, `checklists.md#conference` |
| Product Launch | `product-launch.md`, `posting-plan.md` |
| Build-in-Public | `build-in-public.md`, `social-content.md` |
| Cascade | `content-cascade.md`, `social-content.md`, `code-snippets.md` |

**Always Load:**
- `phase-gates.md` — Gate verification criteria (required for all phases)
- `differentiation.md` — Swap-the-name test, the three moves, AI-tells blocklist (required for Phase 2 and Phase 6)
- `readability-guide.md` — Readability validation (required for Phase 6)

**Load On-Demand:**
- `analysis-prompts.md` — Only if running Claude-native analysis (Phase 1)
- `project-analysis.md` — Differentiation Discovery protocol + developer interview (Phase 2)
- `audiences.md` — Only if audience calibration needed (Phase 3)
- `brand-voice.md` — Founder-voice application; tech-stack fallback (Phase 3)
- `cognitive-load.md` — Only if complex content requiring progressive disclosure (Phase 5)
- `diagram-templates.md` — Only if visual assets required (Phase 5)
- `code-snippets.md` — Only if content includes code examples for social sharing
- `conference-talks.md` — Only if generating CFP or talk outline
- `documentation.md` — Only if generating README, API docs, or architecture docs
- `mcp-integration.md` — Only if posting via MCP servers (Delivery)

---

## Mandatory 6-Phase Process

You MUST complete all 6 phases in order. Each phase has a gate that MUST pass before proceeding.

```
PHASE 1 ──[Gate]──> PHASE 2 ──[Gate + Confirm]──> PHASE 3 ──[Gate + Confirm]──> PHASE 4 ──[Gate]──> PHASE 5 ──[Gate]──> PHASE 6 ──[Gate]──> DELIVERY
  Code              Differentiation               Audience &                   Content          Optimization      Verification
  Analysis          Discovery                     Format                       Generation                         & Delivery
```

Phase 2's founder interview is **always offered, never blocking**: if the user declines, proceed on code alone and carry a `Distinctiveness: AT RISK` flag to the Phase 6 report. See `references/phase-gates.md` for detailed gate verification criteria.

---

## User Confirmation Checkpoints

**Phases 2 and 3 require explicit user confirmation before proceeding.**

| After Phase | Present | Wait For |
|-------------|---------|----------|
| 2 | Project Brief + Differentiation Brief (WHY, spiky claim, roads not taken, voice, angles) | "Yes" / "Use angle #" / "Add context" |
| 3 | Audience Contract (audience, format, voice, thresholds) | "Yes" / "Change audience" / "Different format" |

The Phase 2 confirmation is also where the differentiation interview is offered. **Skip confirmations when:** User says "proceed without confirmations", using Quick Mode, or iterating on existing content. (Skipping confirmation does not skip the Phase 2 *offer* — it just doesn't wait; the offer can still be declined.)

---

## Phase 1: Code Analysis

**You MUST complete this phase before any content generation.** This phase mines the codebase for the WHAT — tech stack, architecture, story hooks. The WHY, opinion, and roads-not-taken come from the human in Phase 2.

### Execution Options

Choose based on task complexity:

| Option | When to Use | Method |
|--------|-------------|--------|
| **Agent-Parallel** | Complex projects, multiple content types | Launch 2-3 `content-explorer` agents in parallel |
| **Inline Analysis** | Simple projects, single content piece | Follow inline protocol below |

### Option A: Agent-Parallel Execution (Recommended)

Launch multiple `content-explorer` agents with different focus areas:

```
Agent 1: "Analyze [project] for performance and optimization story angles"
Agent 2: "Analyze [project] for architecture and design decision angles"
Agent 3: "Analyze [project] for developer experience and tooling angles"
```

Consolidate agent outputs into unified Project Brief.

### Option B: Inline Analysis Protocol

Follow `references/analysis-prompts.md` for Claude-native analysis:
1. Tech stack detection (read package.json, requirements.txt, etc.)
2. Architecture pattern detection from directory structure
3. Story hook discovery (grep for TODO, FIXME, HACK, etc.)
4. Git history mining for narrative elements
5. Content angle generation (3+ angles with evidence)

### Phase 1 Output: Project Brief (code-derived half)

```markdown
## Project Brief: [Name]

### Tech Stack
- **Language:** [primary]
- **Framework:** [framework]
- **Architecture:** [pattern]
- **Voice Profile (fallback):** [precise/pragmatic/accessible/direct — replaced by founder voice if Phase 2 captures one]

### Content Angles (3+ Required)
1. [Angle with evidence: file:line or commit]
2. [Angle with evidence]
3. [Angle with evidence]

### Story Hooks
- [Hook 1 with source reference]
- [Hook 2 with source reference]
```

### Phase 1 Gate: Code Brief Generated

You MUST verify before proceeding:
- [ ] Tech stack identified
- [ ] At least 3 content angles discovered
- [ ] Story-worthy element found (commit, pattern, or insight)
- [ ] All angles have evidence citations

**STOP if:** No content-worthy insights found after analysis.

Proceed directly to Phase 2 (no user wait yet — confirmation happens after the Differentiation Brief is assembled).

---

## Phase 2: Differentiation Discovery

**The code told you WHAT. This phase gets the WHY, the opinion, and the roads not taken — the material a competitor could not republish.** Load `references/differentiation.md` and `references/project-analysis.md`.

**This phase always runs. Its founder interview is ALWAYS OFFERED and NEVER BLOCKING.** If the user declines, proceed on code alone and set `Distinctiveness: AT RISK`.

### Required Actions

1. **Make the offer** (one message, three paths + opt-out):
   > "To make this unmistakably yours — something a competitor couldn't republish — I can (a) ask you 4–5 quick questions, (b) take raw material (a Slack thread, support tickets, a 2-minute voice-memo transcript, rough notes), or (c) polish a rough draft you write (write it ugly; I'll keep your voice). Or I can proceed from the code alone. Which do you want?"

2. **Mess over spec** — if raw material is offered, rank it ABOVE the polished README. Rough Slack/tickets/transcripts carry the signal.

3. **Extract the three moves** (see `project-analysis.md` §4 for the full question set):
   - **THE WHY** — the thesis/stakes; the only-you-know insight to lead with
   - **THE SPIKY CLAIM** — one defensible opinion a reader could disagree with
   - **ROADS NOT TAKEN** — what they chose not to build + the trade-off

4. **Capture founder voice as rejections** ("never use semicolons", "never corporate") — this becomes the primary voice in Phase 3, displacing the tech-stack fallback.

### Phase 2 Output: Differentiation Brief

Append to the Project Brief:

```markdown
### Differentiation Brief
- **THE WHY:** [thesis to lead with]
- **THE SPIKY CLAIM:** [defensible opinion — or "none captured"]
- **ROADS NOT TAKEN:** [what they didn't build + trade-off — or "none captured"]
- **FOUNDER VOICE:** sounds like [anchor] · never [rejections] · source: [interview/transcript/draft/NONE]
- **RAW MATERIAL:** [slack/tickets/transcript/notes — or "none"]
- **DISTINCTIVENESS FORECAST:** [ON TRACK | AT RISK]
```

### Phase 2 Gate: Differentiation Forecast Set (soft)

You MUST verify before proceeding:
- [ ] The offer was made (regardless of response)
- [ ] Differentiation Brief produced (fields filled or explicitly "none captured")
- [ ] Forecast set: ON TRACK (≥1 of WHY/opinion/roads captured) or AT RISK (code only)

**This gate never STOPS delivery.** AT RISK is allowed — it just propagates a loud warning to Phase 6. Do not block on missing founder input.

### Phase 2 Confirmation

**Present the combined Project Brief + Differentiation Brief and WAIT for confirmation.**

Display: tech stack, 3+ angles, the WHY, the spiky claim, roads not taken, recommended angle.

Ask: "Proceed with this analysis? [Yes / Use angle # / Add context]"

**DO NOT proceed to Phase 3 until user confirms** (unless confirmations are skipped).

---

## Phase 3: Audience & Format Declaration

**You MUST declare audience and format before generating content.**

### Required Actions

1. **Determine target audience** (select ONE):
   | Audience | Assumed Knowledge | Jargon Tolerance |
   |----------|-------------------|------------------|
   | Beginner | Basic programming concepts | 2% max |
   | Intermediate | Language proficiency, common patterns | 4% |
   | Expert | Deep domain knowledge | 8% |
   | Hiring Manager | Technical literacy, not expertise | 2% |

2. **Select content format** (select ONE):
   - Blog post
   - Tutorial
   - Twitter/X thread
   - LinkedIn post
   - README
   - Newsletter
   - Video script
   - Conference talk

3. **Declare voice profile.** Use the **FOUNDER VOICE** from the Phase 2 Differentiation Brief as the primary voice. Only if it is `NONE` (offer declined), fall back to the tech-stack heuristic — which is safe but swappable:
   | Stack | Voice (fallback only) |
   |-------|-------|
   | Rust | Precise, safety-conscious |
   | JavaScript/TypeScript | Pragmatic, conversational |
   | Python | Clear, accessible |
   | Go | Direct, minimal |
   | Infrastructure | Operational, cautious |

See `references/audiences.md` for full calibration rules and `references/brand-voice.md` for applying a captured founder voice.

### Phase 3 Gate: Audience Contract Established

You MUST verify before proceeding:
- [ ] Single audience selected (no mixing)
- [ ] Format matches audience complexity
- [ ] Voice profile declared (founder voice if captured, else tech-stack fallback)

**STOP if:** Audience mixing detected or format incompatible.

### Phase 3 Confirmation

**Present the Audience Contract to user and WAIT for confirmation.**

Display:
- Selected audience and what it means (grade level, jargon %)
- Selected format
- Voice profile (and whether it's the founder's or the fallback)

Ask: "Proceed with this targeting? [Yes / Change audience / Different format]"

**DO NOT proceed to Phase 4 until user confirms.**

This is the last confirmation before content generation begins.

---

## Phase 4: Content Generation

**You MUST ground all claims in project evidence — and lead with the Differentiation Brief.**

### Required Actions

1. **Load format template** from `assets/templates/`
2. **Apply format-specific workflow** (see below)
3. **Lead with the WHY**, not the feature list. Place the spiky claim and at least one road-not-taken into the draft using the template's differentiation slots (WHY/thesis lead · YOUR TAKE · ROADS NOT TAKEN). If the Differentiation Brief says `none captured` for these, do not invent them — generate honestly and let Phase 6 flag `AT RISK`.
4. **If a rough founder draft was provided** (write-ugly-first path), polish *it* — preserve their phrasing and order of thought; do not replace the voice.
5. **Ground every claim** in evidence:
   - Code examples from actual codebase
   - Metrics with source citations
   - Commit hashes for historical claims

### Format-Specific Workflows

Each format has a dedicated template in `assets/templates/`:

| Format | Template | Structure |
|--------|----------|-----------|
| Blog Post | `blog_post.md` | WHY/Thesis → Problem → Journey → Roads Not Taken → Solution → Results |
| Tutorial | `tutorial.md` | Prerequisites → Steps (5-9) → Troubleshooting |
| Twitter/X | `twitter_thread.md` | Hook → Context → Insight → CTA |
| README | `readme.md` | Problem → Quick Start → Design Philosophy → Configuration |
| LinkedIn | `linkedin_post.md` | Hook → Story → Takeaways (800-1300 chars) |
| Newsletter | `newsletter.md` | See also `references/newsletters.md` |
| Video Script | `video_script.md` | Hook → Sections → Recap |
| Conference Talk | — | See `references/conference-talks.md` |

Load the appropriate template and follow its structure.

### Phase 4 Gate: Draft Complete with Evidence

You MUST verify before proceeding:
- [ ] All code examples from actual codebase
- [ ] All metrics/claims traceable to source
- [ ] Template structure followed
- [ ] WHY leads (not a feature list); captured spiky claim / roads-not-taken are present if the brief had them

**STOP if:** Claims cannot be traced to evidence.

---

## Phase 5: Optimization

**You MUST optimize for audience and platform.**

### Required Actions

1. **Verify voice consistency** — Same tone throughout
2. **Apply cognitive load management:**
   | Complexity | Approach |
   |------------|----------|
   | Low (deps  30) | Progressive disclosure with checkpoints |

3. **Apply SEO** (for web content):
   - Primary keyword in title
   - Keyword in first 100 words
   - Descriptive subheadings

4. **Prepare visual assets:**
   - Syntax-highlighted code blocks
   - Architecture diagrams (see `references/diagram-templates.md` for Mermaid templates)
   - Screenshots with annotations

See `references/optimization.md` for full optimization rules.

### Phase 5 Gate: Enhancement Applied

You MUST verify before proceeding:
- [ ] Voice consist

…

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [arome3](https://github.com/arome3)
- **Source:** [arome3/code-to-content](https://github.com/arome3/code-to-content)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-arome3-code-to-content-code-to-content
- Seller: https://agentstack.voostack.com/s/arome3
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
