# Repurpose Discord

> Generates Discord community content from content atoms: announcement posts for channels, discussion thread prompts designed for reply-generation, and rich embed messages with structured fields. Enforces casual peer tone, reaction prompts, and conversation-first design. Sub-skill of the Content Repurposing Engine. Use when user says "discord", "discord post", "discord announcement", "discord thread", or "repurpose for discord".

- Skill: `agricidaniel/repurpose-discord` (Agent Skill)
- Install (CLI): `npx skillmds@latest add agricidaniel/repurpose-discord`
- Raw SKILL.md: https://api.skillmd.com/api/skills/agricidaniel/repurpose-discord/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- License: MIT
- Author: Agrici Daniel (https://skillmd.com/u/agricidaniel)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/agricidaniel/repurpose-discord

---


# Discord Community Content Generator

Generate announcement post, discussion thread prompt, and rich embed message from content atoms.

## Inputs

Received from the parent agent (`repurpose-community`):

| Input | Description |
|-------|-------------|
| `atoms` | Full list of content atoms with types and impact ratings |
| `main_argument` | One-sentence thesis of the source content |
| `target_audience` | Who benefits from this content |
| `primary_topic` | Category or niche |
| `voice_profile` | Detected or overridden brand voice |
| `brief_mode` | If true, produce announcement post only |

## References

Load before generating:

- `references/platform-specs.md` -- Discord specs, message limits, embed constraints
- `references/hook-formulas.md` -- question hooks, contrarian openers, reaction prompts
- `references/voice-adaptation.md` -- Discord tone rules (casual, peer, emoji-friendly)

## Platform Rules

| Spec | Value |
|------|-------|
| Message limit | 2,000 characters per message |
| Embed title | 256 characters max |
| Embed description | 4,096 characters max |
| Embed fields | Up to 25 fields |
| Embed color | Hex code (mood-based) |
| Markdown | Full support (bold, italic, code blocks, lists, headers via ##) |
| Threads | Auto-create from any message, unlimited replies |
| Reactions | Lightweight polls and engagement signals |
| Images | Up to 10 per message, any aspect ratio |
| Best posting | Weekdays 3-8 PM EST (after school/work hours) |

## Core Principle

Discord is about **CONVERSATION**, not broadcasting. Every post should invite a specific response. Silent posts get buried by the scroll. Design every output for reply-generation -- ask questions, prompt reactions, spark debate. A post with zero replies is a failed post.

## Output 1: Announcement Post

Write to `discord/announcement.md`.

Formatted message for a #general or #announcements channel. Must stay under 2,000 characters.

### Announcement Structure

1. **Bold headline** (1 line)
   - Lead with the strongest insight or most surprising atom
   - Use `**bold**` markdown for the opening line
   - Keep it punchy: 8-15 words max

2. **Body** (2-3 short paragraphs)
   - Expand on the headline with context from 2-3 atoms
   - Short paragraphs (2-3 sentences each)
   - Use line breaks between paragraphs for readability
   - Contractions and casual language throughout

3. **Bullet point takeaways** (3-5 items)
   - Pull the most actionable or surprising atoms
   - Each bullet is one clear thought
   - Use emoji bullets where natural (not forced)

4. **Reaction prompt** (final line)
   - Drive engagement through reactions: "React with :fire: if you've experienced this"
   - Or a direct question: "Drop your take below -- what's YOUR experience with this?"
   - Never end without a clear engagement hook

### Announcement Rules
- Total length under 2,000 characters (hard Discord limit)
- No walls of text -- Discord users skim aggressively
- At least one reaction prompt OR direct question
- Bold the most important phrase in each paragraph

## Output 2: Discussion Thread Prompt

Write to `discord/thread-prompt.md`.

Message designed to start a thread. Opens conversation, not delivers a lecture.

### Thread Prompt Structure

1. **Opening hook** (1-2 sentences)
   - Use a contrarian take, surprising stat, or provocative question from the atoms
   - Frame as your own observation or question, not a teaching moment
   - "Okay so ngl, I just learned something that kinda broke my brain..."

2. **Context** (2-3 sentences)
   - Provide just enough background for people to form an opinion
   - Don't explain everything -- leave gaps that invite people to fill in

3. **Specific invitation** (1-2 sentences)
   - NOT "What do you think?" (too generic, gets ignored)
   - Instead: "Drop your take below -- have y'all run into this?"
   - Or: "Genuinely curious -- does this match your experience or am I way off?"
   - Frame it so members share personal experience, not just agreement

### Thread Prompt Rules
- Under 1,000 characters (shorter = more replies)
- Must contain at least one direct question
- Designed for ongoing conversation, not one-and-done reactions
- Leave room for disagreement -- don't present a settled conclusion

## Output 3: Embed Message

Write to `discord/embed.md`.

Rich embed format for bot-posted or webhook content.

### Embed Structure

1. **Title** (256 chars max)
   - Bold insight or key finding from the strongest atom
   - Concise and curiosity-driving

2. **Description** (under 4,096 chars)
   - Expanded context around the title insight
   - 2-3 short paragraphs with Discord markdown formatting
   - Include the "so what" -- why this matters to the community

3. **Color** (hex code)
   - Match the content mood:
     - `#FF6B6B` -- urgent, warning, contrarian
     - `#4ECDC4` -- tips, how-to, educational
     - `#FFE66D` -- insight, discovery, new finding
     - `#95E1D3` -- community, discussion, collaborative
     - `#A8E6CF` -- success, case study, positive result

4. **Fields** (3-5 key takeaways)
   - Each field has a `name` (bold label) and `value` (brief explanation)
   - One atom per field
   - Keep field values under 100 characters for clean formatting
   - Use `inline: true` for side-by-side fields where appropriate

5. **Footer**
   - Source attribution: "Source: [original content title or URL]"
   - Timestamp if relevant

### Embed Format Template

```markdown
**Embed Title:** [insight or finding]
**Color:** #[hex]

**Description:**
[2-3 paragraphs of context]

**Fields:**
- **[Takeaway 1 Label]:** [brief value]
- **[Takeaway 2 Label]:** [brief value]
- **[Takeaway 3 Label]:** [brief value]

**Footer:** Source: [attribution]
```

## Tone Rules

| Do | Do NOT |
|----|--------|
| Use "y'all", "ngl", "tbh", contractions | Use formal language or corporate speak |
| Include emoji naturally (not excessively) | Force emoji into every sentence |
| Write like a peer sharing something cool | Write like a brand broadcasting content |
| Ask specific questions that invite replies | Use generic "Thoughts?" or "Agree?" |
| Use Discord markdown (bold, code blocks) | Write plain unformatted text walls |
| Reference community inside jokes if known | Assume knowledge of the community culture |
| Keep paragraphs short (2-3 sentences max) | Write essay-length paragraphs |
| Use reaction prompts for quick engagement | Ignore engagement hooks entirely |

## Output Format

```markdown
# Discord Announcement: [Topic]

[Full message text]

---
**Channel suggestion:** #[recommended channel type]
**Best posting time:** Weekdays 3-8 PM EST
**Engagement strategy:** [reaction prompt, thread follow-up plan]
**Character count:** [count]/2000
```

## Brief Mode

If `--brief` is active, produce only:
- 1 announcement post (most versatile format)
- Skip thread prompt and embed

## Error Handling

| Condition | Action |
|-----------|--------|
| Fewer than 3 atoms | Write shorter announcement (under 1,000 chars); skip thread and embed |
| No `contrarian` or `question` atoms | Use `insight` + `howto` atoms; frame announcement as a tip share |
| `brief_mode` is true | Generate announcement only; skip thread prompt and embed |
| Content too formal for Discord tone | Rewrite with casual language, contractions, and peer framing |
| Promotional content detected | Reframe as community value -- "found this useful, thought y'all might too" |

