All notable changes to content-wand are documented here. Format follows Keep a Changelog.
1.1.0 — 2026-02-19
writing-style-extractor-SKILL.md— replacesbrand-voice-extractor-SKILL.mdwith a full UX overhaul:- Agency/client fork at the start of every SETUP session — all interview questions adapt to the brand or client
- 3 required + 2 optional questions (down from 5 required); progress indicators on each question
- Session context anchoring — interview references the platform and content type you're generating right now
- Style naming derived from user's own Q2+Q3 words, not abstract metaphors
- Plain-language messages throughout — no JSON, schema, or file path jargon exposed to users
humanizer-SKILL.md— new final-pass sub-skill that runs after every generation, no exceptions:- 3-pass system: lexical scrub → structural rewrites → voice application
- Research-backed pattern library (FSU/Max Planck arxiv:2412.11385, GPTZero vocabulary research, Wikipedia Signs of AI Writing guide, MDPI stylometric research 2025)
- Platform-specific rules: Twitter bans em dashes and forced formality; LinkedIn bans inspirational closers; TikTok uses spoken rhythm
references/ai-patterns.md— comprehensive AI writing pattern reference loaded by the humanizer:- Tier 1 banned words/phrases (80+) with context-aware exceptions
- Tier 2 contextual words for judgment-based replacement
- Filler phrase deletion rules
- Opening/closing cliché removal
- Structural pattern fixes: em dash overuse, rule-of-threes, significance signposting, forced balance, uniform sentence length, passive voice detachment, bullet obsession
- Tonal marker fixes: false intimacy, excessive positivity, corporate inspirational tone
- Full substitution quick-reference table
- Writing Style management commands in orchestrator: list, create, update, delete, rename, inspect styles — triggered by natural language ("show my writing styles", "delete my [name] style")
- Global Writing Style storage — styles now saved to
~/.claude/content-wand/styles/with aconfig.jsonindex; no per-project setup required
- Writing Style (formerly "brand voice") — terminology updated throughout:
- All user-facing messages use "Writing Style" — no "brand voice", "profile", or "voice DNA"
- First-time users offered setup before generation (was: after delivery); first output can have style applied from day one
- Single saved style: auto-applied silently with one-line confirmation
- Multiple saved styles: smart suggestion with rationale shown, user confirms or picks
- 30-day declined state in
config.json— users who skip are not prompted again for 30 days - Interview: 3 required + 2 optional questions; each question includes why it's being asked
- Schema v1.2 —
references/brandvoice-schema.mdupdated:- Added
style_name,style_for(own|client),client_namefields - Updated file location to
~/.claude/content-wand/styles/[name].json config.jsonstructure documented- Migration path from old
.content-wand/brand-voice.jsonfiles - All user-facing rejection messages use plain language only
- Added
- SKILL.md pipeline:
- STEP 0 added: checks Writing Style state before anything else
- STEP 1.5 added: Writing Style offer/apply/skip logic
- STEP 4.5 added: humanizer invocation between generation and delivery
- STEP 5: one-time nudge at bottom of output only for first-time skippers (not for declined users)
- STEP 6: simplified to staleness refresh only
- STEP 7: updated save path and config.json management
brand-voice-extractor-SKILL.md— replaced bywriting-style-extractor-SKILL.md
1.0.1 — 2026-02-18
Prompt injection defenses added across all sub-skills
SKILL.md— Added Security: Trust Boundaries section with a 4-tier trust model (SKILL.md → user commands → tool outputs → external content). Documents what untrusted content can and cannot influence. Added orchestrator-levelinjection_warningsurfacing protocol.content-ingester-SKILL.md— Added behavioral injection detection for fetched URL content and web search results. HIGH RISK patterns (persona hijacking, file access directives, output manipulation) stop and flag; MEDIUM RISK patterns warn and continue. Extended CONTENT-OBJECT output format withinjection_warning,injection_detail,injection_warning_low,injection_detail_lowfields. Existing URL scheme validation and delimiter guard preserved.platform-writer-SKILL.md— Added Security section:raw_textis source material to transform, not instructions to execute. Content flagged withinjection_warning: trueis never reproduced in any output.repurpose-transformer-SKILL.md— Added Security section: behavioral directives embedded in source content are ignored; legitimate content is transformed normally.brand-voice-extractor-SKILL.md— Added Security section: writing samples are voice pattern data only; instructions embedded in samples are never executed. Existing JSON schema validation (unknown key rejection) provides defense for READ mode.
- Bumped version 1.0.0 → 1.0.1
- Removed
puppeteerandpdf-libfrom rootpackage.json(PDF slideshow artifacts unrelated to the skill;assets/is gitignored) - Updated
package.jsondescription andskillsblock to mention prompt injection defense - Added keywords:
prompt-injection-defense,ai-security,secure-ai
1.0.0 — 2026-02-18
Core skill suite (5 files)
SKILL.mdorchestrator — routing table top-loaded in first 50 lines ("Lost in the Middle" mitigation); 7-step ATOMIZE/REPURPOSE pipeline; 7 explicit edge casescontent-ingester-SKILL.md— 5 input types (paste, url, transcript, notes, topic); WebFetch for URLs; WebSearch for topic-only; 7-entry fallback table; strict NOT contractbrand-voice-extractor-SKILL.md— READ/SETUP dual-mode; samples-first mini-interview (5 questions max, Q1 weighted 70%); opt-in.content-wand/brand-voice.jsonpersistence; schema-validated on read; voice authenticity framework; staleness detection; NEVER anti-patterns sectionplatform-writer-SKILL.md— 2-pass validation (hard compliance + quality heuristics) for all 9 platforms; hook selection framework; pre-generation thinking check; LOW confidence voice handling; TikTok/Threads/Bluesky pass 1 + pass 2 checksrepurpose-transformer-SKILL.md— 4-class distance logic (DIRECT / COMPRESS / EXPAND / STRUCTURAL); 12-word Repurposable Core Test pre-flight check; COMPRESS anchors to 3 strongest ideas; explicit EXPAND NEVER list
Reference files
references/platform-specs.md— 2026-current algorithm intelligence for 9 platforms; mandatory staleness check headerreferences/brandvoice-schema.md— approved JSON schema; confidence scoring rubric; 5 security constraints; migration rulesreferences/platform-writer-guide.md— hook-to-content-shape mapping; quality anti-patterns
Platforms supported
- Twitter/X thread, LinkedIn post, Email newsletter, Instagram carousel script, YouTube Shorts script, Podcast talking points, TikTok script, Threads post, Bluesky post
Community and repo
- GitHub issue templates (bug report, feature request)
- PR template
- CONTRIBUTING.md with skill file rules and NOT contract conventions
- SECURITY.md with security model and brand voice file constraints
- MIT License
- "Lost in the Middle" mitigation: routing instructions top-loaded in lines 1–50 of SKILL.md
- Brand voice is never a gate: first output always generated without voice; setup offered after
- Structured handoff blocks (
---BLOCK-NAME-START---/---BLOCK-NAME-END---) prevent inter-sub-skill ambiguity - All NOT contracts name specific rationalizations, not just prohibitions
- Brand voice file: opt-in, schema-validated on read, never stores raw content or credentials
- platform-specs.md loaded once before the generation loop (not per-platform), preventing redundant token use
- Pre-transformation check: repurpose-transformer validates a repurposable core concept exists before any work begins
- VOICE-PROFILE block re-emitted verbatim by orchestrator to ensure downstream sub-skills receive it even in long sessions