claude-code-plugin-ref…
Explain plugin, skill, command, agent, and hook mechanics used here. Use when authoring or debugging plugins. Do not use for ops;…
Generates text in a learned writing voice. Use when drafting content that must match a specific author's style profile extracted by voice-extract.
Claude Code
$ npx -y skills add athola/claude-night-market --skill voice-generate --agent claude-code
Codex
$ npx skills add athola/claude-night-market --skill voice-generate -a codex -y
Cursor
$ npx skills add athola/claude-night-market --skill voice-generate -a cursor -y
Gemini CLI
$ npx skills add athola/claude-night-market --skill voice-generate -a gemini-cli -y
GitHub Copilot
$ npx skills add athola/claude-night-market --skill voice-generate -a github-copilot -y
OpenCode
$ npx skills add athola/claude-night-market --skill voice-generate -a opencode -y
Windsurf
$ npx skills add athola/claude-night-market --skill voice-generate -a windsurf -y
name: voice-generate
description: Generates text in a learned writing voice. Use when drafting content that must match a specific author's style profile extracted by voice-extract.
globs: "**/*.{md,txt}"
alwaysApply: false
category: writing-quality
tags:
- voice
- generation
- style-transfer
- writing
- registers
tools: []
complexity: high
estimated_tokens: 2400
progressive_loading: true
modules:
- modules/source-framing.md
- modules/register-selection.md
- modules/generation-pipeline.md
dependencies:
- scribe:voice-extract
- scribe:slop-detectorGenerate text in a user's extracted writing voice.
The single largest variable in output quality is how source material is framed in the prompt. Material framed as "raw notes I'm still thinking through" produces text that feels like thinking. Material framed as summaries produces reporting.
Always frame user-provided source material as raw notes unless the user explicitly requests otherwise.
1. `voice-generate:profile-loaded` - Voice profile read 2. `voice-generate:register-selected` - Register chosen 3. `voice-generate:source-framed` - Material framed as notes 4. `voice-generate:generated` - Text produced 5. `voice-generate:review-dispatched` - Sent to review agents
PROFILE_DIR="$HOME/.claude/voice-profiles/{name}"Read in order: 1. `extraction.md` - Core voice features 2. `registers/{register}.md` - Active register 3. `craft-rules.md` - Shared craft techniques (if exists) 4. `banned-phrases.md` - Anti-patterns to avoid (if exists)
Check for per-project override:
if [ -f ".voice/override.md" ]; then # Merge project overrides with profile fi
Load: `@modules/register-selection`
Select register by: 1. Explicit user request ("use casual register") 2. Context matching from register metadata 3. Default fallback to `registers/default.md`
Load: `@modules/source-framing`
**Default framing** (always use unless user overrides):
Below are my rough notes on this topic. I'm still thinking
through these ideas. Use them as the raw material for the
piece, not as a structure to follow:
---
{user_provided_source_material}
---**Alternative framings** (only if user requests):
Compose the generation prompt:
You are writing a piece in a specific voice. The voice
features below were extracted from the writer's own work.
Follow them as concrete instructions, not suggestions.
## Voice Features
{extraction.md content}
## Active Register: {register_name}
{register content}
## Craft Techniques (apply all)
- Concrete-first: Lead with specific, physical details before
any abstraction
- Naming: When you describe a pattern in 2+ sentences, compress
it into a 2-4 word label
- Opening moves: Start mid-thought, with a specific moment, or
with a counterintuitive claim. Never start with throat-clearing
- Human-moment anchoring: Ground every abstraction in a specific
scene or lived experience
- Aphoristic destinations: At least one sentence per section
should be worth repeating out of context
## Banned (never use)
{banned_phrases content, or default list:}
- Em dashes (use commas, colons, semicolons, parentheses)
- ", so" tails on fact after fact (cut the consequence, or give it
its own sentence)
- "delve", "utilize", "leverage", "facilitate"
- "it's important to note", "in today's world"
- "here's the thing", "let that sink in"
- "furthermore", "moreover", "comprehensive"
- Negation-correction patterns ("This isn't X. This is Y.")
## Source Material
{framed source material from Step 3}
## Task
Write the piece. Follow the voice features precisely. Apply
craft techniques. Do not use any banned phrases. The output
should read as if the writer produced it themselves.
Length: {user_specified or ~same as source material}
Format: {user_specified or prose paragraphs}After generation: 1. Scan output for banned phrases (auto-fix silently) 2. Check for em dashes (replace with appropriate punctuation) 3. Dispatch to voice-review skill if user wants review 4. Save pre-review snapshot if learning mode is active
subversion, and subtle voice qualities require the larger model. Sonnet flattens these. When this session runs Sonnet or Haiku, run the Step 4 prompt as a dispatch:
Agent(general-purpose):
- model: opus
- prompt: {the Step 4 prompt, every placeholder filled}The subagent sees nothing from this conversation. The filled prompt must carry the voice features, register and source material in full. On an Opus or Fable session, generate inline. A pinned dispatch from Fable would downgrade the pass.
templated, so Opus tonal range is not needed)
If `.voice/override.md` exists in the current project:
A plugin marketplace for Claude Code. Install only the plugins you need to run git workflows, code review, spec-driven development, and autonomous agents from inside your Claude Code session.
Explain plugin, skill, command, agent, and hook mechanics used here. Use when authoring or debugging plugins. Do not use for ops;…
States load-bearing decisions, invariants, and weak points. Use when judging a design change. Do not use for gating; use…
Rebuild the dev environment: uv, Python tiers, pins, traps. Use when onboarding or toolchain breaks. Do not use for daily…
Classify, gate, and review changes. Use when landing a PR, releasing, or amending rules. Do not use for failure triage; use…
Search and record project memory (Discussions, journal, ADRs). Use before re-investigating anything. Do not use for settled…
Bind loop 'done' to unfakeable gates. Use to harden egregore/herald loops or promote completion_integrity. Not for QA gates; use…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.