x-writing
Transforms notes into X (Twitter) posts. Triggers when user asks to create social content, draft tweets, or turn notes/ideas into posts.
What this skill does
# X Writing Skill ## Overview Transform your notes, work updates, and observations into engaging X (Twitter) content. This skill analyzes your notes to identify the most shareable insights, then crafts authentic posts that match your voice and drive engagement. **Supports two idea sources** — a markdown file (`X_SOURCE_FILE`) and/or macOS Notes (`X_NOTES_APP_SOURCE`). If both are configured, asks which to use. ## Process ### Phase 1: Preparation and Analysis **1.1 Load Writing Guides (REQUIRED - Load First)** Before any other work, load the following: 1. **Growth Principles** (`references/x-strategy.md`) - Content selection criteria, what makes posts shareable, engagement patterns, and what to prioritize from notes. This guides WHAT to share. 2. **Writing Style Guide** (from `WRITING_STYLE_GUIDE_PATH` env var) - Voice, tone, structure, banned phrases, and signature patterns. This guides HOW to share it. Skip if the env var is not set. 3. **Anti-Patterns** - Run `echo "$WRITING_ANTI_PATTERNS_PATH"` to check the env var. If set, load that file. If not set, fall back to `references/anti-patterns.md`. AI writing patterns to avoid. Critical for ensuring posts sound human and authentic, not AI-generated. Avoid patterns like "It's not X, it's Y", formal transitions, hedging language, and AI-specific vocabulary. **PRIORITY RULE**: When guides conflict, `references/x-strategy.md` wins. Content value and shareability take precedence over stylistic preferences. When the style guide and anti-patterns conflict, anti-patterns win. **1.2 Understand the Source Material** Get clarity on what notes to work with: - Ask which notes, ideas, or updates they want to transform into posts - **Check for idea sources:** - Run `echo "$X_SOURCE_FILE"` — if set, a markdown ideas file is available - Run `echo "$X_NOTES_APP_SOURCE"` — if set, a macOS Notes note is available (use `scripts/fetch-notes.sh get` to fetch) - If **both** are configured and the user says "check my ideas" or similar without specifying, ask which source to use - If **one** is configured, use it directly - If **neither** is configured, work from whatever the user provides (pasted content, markdown files, etc.) - Read the source material and identify the core insights, learnings, or updates - Note any specific tools, projects, numbers, or details mentioned **Multiple ideas/notes workflow:** - When the user provides multiple distinct ideas or notes, work through them ONE AT A TIME - Create post options for the first idea - Wait for user approval/feedback before moving to the next idea - This prevents overwhelming the user and allows for refinement as you go **1.3 Apply Selection Criteria** Evaluate notes using the Content Selection Framework in `references/x-strategy.md`. Prioritize shipped work with learnings, non-obvious insights, and specific tool recommendations. Skip engagement bait, vague hype, and complaints without solutions. ### Phase 2: Content Creation **2.1 Select the Best Angle** Identify one clear idea, the specific details that prove it, and the hook (first line). **2.2 Choose the Format** Default to single tweets. Only thread (2-5 tweets) when the story requires steps, multiple related insights, or before/after context. See Thread Strategy in `references/x-strategy.md`. **2.3 Draft the Content** Apply all three guides loaded in Phase 1 **during drafting, not just as a post-check**: - **x-strategy.md** — formatting rules, content strategy, High-Engagement Patterns, and Signature Patterns. **Formatting is critical**: one sentence per line, white space between lines, hook in first line, 180-250 chars, no italics. - **Writing style guide** (`WRITING_STYLE_GUIDE_PATH`) — voice, tone, banned phrases, language simplification. Apply casing preference from X_CASE_STYLE env var (standard by default). When set to `"lowercase"`, use all lowercase including "i" as a pronoun — only capitalize personal names, WordPress, and product names. - **Anti-patterns** — actively avoid during drafting. If a draft uses any anti-pattern, rewrite before presenting. **HARD RULE: NEVER use the "It's not X, it's Y" reframing pattern in any form.** This includes: "isn't X, it's Y", "not because X, because Y", "isn't about X, it's about Y", "less about X, more about Y". Say the positive claim directly instead. Also avoid: em dashes, generic observations without specifics, and intensifiers. **2.4 Engagement Optimization** End ~70% of posts with engagement (specific question, teaser, or invitation). Let the rest land with a hard stop. See "What Makes Content Shareable" in `references/x-strategy.md`. **2.5 Quality Check** After drafting, re-read every post against the anti-patterns guide and fix any violations before presenting. Then verify: - [ ] Did I get to the point in line 1? - [ ] Is this specific? (names, numbers, examples) - [ ] Would I actually say this out loud? - [ ] Does it sound like ME, not ChatGPT? - [ ] Did I use any banned phrases from the writing style guide? - [ ] Did I avoid ALL anti-patterns? (reframing, em dashes, intensifiers, generic observations) - [ ] If it's a reaction, did I add MY angle? ### Phase 3: Output **3.1 Present the Content** For each post created: 1. **The Post(s)** - Show the actual tweet(s) ready to copy/paste 2. **Format** - Indicate if it's a single tweet or thread 3. **Character Count** - Show length (target: 180-250 chars) 4. **Pattern Used** - Which pattern from x-strategy.md was applied 5. **Key Elements** - What specifics, tools, or projects were highlighted **3.2 Offer Options** When appropriate, provide 2-3 variations: - Different angles on the same insight - Single tweet vs thread format - Different engagement endings **3.3 Explain Selections** Briefly note what was prioritized and why: - Which insights from notes were selected - Why certain details were emphasized - What was intentionally left out **3.4 Save Approved Posts** When the user approves a post, save it to the drafts file (create if missing). **File location (resolve before saving):** 1. Run `echo "$X_DRAFTS_FILE"` to check the env var 2. If set, append to that file path 3. If not set, default to `.x/posts.md` (top-level, create if missing) **Markdown format:** ```markdown --- **Category:** Learning **Date:** 2026-01-01 WordPress.com AI adds conversation alongside block editing. People who couldn't navigate the UI before are shipping sites now. Others still use blocks for fine-tuning. Both work. The conversation path just removes the skill barrier. --- ``` **For threads**, use `[Tweet N]` markers: ```markdown --- **Category:** Learning **Date:** 2026-01-01 [Tweet 1] WordPress.com AI changes how people build sites. [Tweet 2] People who couldn't navigate block editing are shipping now. [Tweet 3] The UI is still there for fine-tuning. But conversation removes the skill barrier. [Tweet 4] Ask or click. Both paths work. --- ``` **Categories:** - **Learning** - Insights, shipped updates with learnings - **Update** - Project progress - **Tool** - Recommendations - **Observation** - Industry takes **Workflow:** 1. Present the post(s) to the user 2. When approved, append to `X_DRAFTS_FILE` or `.x/posts.md` 3. User can copy-paste directly into X (text is ready with proper line breaks) 4. User removes the section after posting, or asks you to remove it ## Output Format After creating social content, provide: ``` 📱 Post 1 (Single Tweet, 210 chars) ───────────────────────────────── [Actual tweet text ready to copy/paste] Pattern: "Shipped X, learned Y" Specifics: agents.foo, conversational context matching Engagement: Specific question ───────────────────────────────── From your notes, I prioritized: ✓ The discovery insight (most shareable) ✓ Why traditional search failed (specific learning) ✗ Timeline details (not core value) Alternative angles: • Focus on the technical implementation • Thread breaking down the 3 attempts ``` ## Example Interaction **User
Related in Writing & Docs
jax-development
IncludedUse this skill when the user is writing, debugging, profiling, refactoring, reviewing, benchmarking, parallelising, exporting, or explaining JAX code, or when they mention JAX, jax.numpy, jit, grad, value_and_grad, vmap, scan, lax, random keys, pytrees, jax.Array, sharding, Mesh, PartitionSpec, NamedSharding, pmap, shard_map, Pallas, XLA, StableHLO, checkify, profiler, or the JAX repo. It helps turn NumPy or PyTorch-style code into pure functional JAX, fix tracer/control-flow/shape/PRNG bugs, remove recompiles and host-device syncs, choose transforms and sharding strategies, inspect jaxpr/lowering/IR, and benchmark compiled code correctly.
nature-article-writer
IncludedDrafts, rewrites, diagnostically critiques, and style-calibrates primary research manuscripts for Nature and Nature Portfolio journals. Use when the user wants a Nature-style title, summary paragraph or abstract, introduction, results, discussion, methods, figure legends, presubmission enquiry, cover letter, reviewer response, or when a scientific draft sounds generic, jargon-heavy, structurally weak, or AI-ish and needs precise, broad-reader-friendly prose without inventing data, analyses, or references. Best for primary research articles and letters rather than reviews or press releases unless explicitly adapting one.
deckrd
IncludedDocument-driven framework that derives requirements, specifications, implementation plans, and executable tasks from goals through structured AI dialogue. Use when user says "write requirements", "create spec", "plan implementation", "derive tasks", "structure this feature", "break down into tasks", or "document this module". Also use for reverse engineering existing code into docs (/deckrd rev). Do NOT use for direct code writing — use /deckrd-coder after tasks are generated. Do NOT use when the user only wants to run or fix existing code without planning.
clinical-decision-support
IncludedGenerate professional clinical decision support (CDS) documents for pharmaceutical and clinical research settings, including patient cohort analyses (biomarker-stratified with outcomes) and treatment recommendation reports (evidence-based guidelines with decision algorithms). Supports GRADE evidence grading, statistical analysis (hazard ratios, survival curves, waterfall plots), biomarker integration, and regulatory compliance. Outputs publication-ready LaTeX/PDF format optimized for drug development, clinical research, and evidence synthesis.
handling-sf-data
IncludedSalesforce data operations with 130-point scoring. Use this skill to create, update, delete, bulk import/export, generate test data, and clean up org records using sf CLI and anonymous Apex. TRIGGER when: user creates test data, performs bulk import/export, uses sf data CLI commands, needs data factory patterns for Apex tests, or needs to seed/clean records in a Salesforce org. DO NOT TRIGGER when: SOQL query writing only (use querying-soql), Apex test execution (use running-apex-tests), or metadata deployment (use deploying-metadata).
accelint-ac-to-playwright
IncludedConvert and validate acceptance criteria for Playwright test automation. Use when user asks to (1) review/evaluate/check if AC are ready for automation, (2) assess if AC can be converted as-is, (3) validate AC quality for Playwright, (4) turn AC into tests, (5) generate tests from acceptance criteria, (6) convert .md bullets or .feature Gherkin files to Playwright specs, (7) create test automation from requirements. Handles both bullet-style markdown and Gherkin syntax with JSON test plan generation and validation.