Extracts a user's writing voice from text samples via SICO comparative analysis. Use when building a voice profile for consistent generation.
npx skills add https://github.com/athola/claude-night-market --skill voice-extract
Extract a user's writing voice through SICO comparative analysis.
scribe:voice-generate)
scribe:voice-learn)Rather than measuring surface metrics, this skill uses SICO
Phase 1: feed the model user writing samples alongside its own
default output on the same topics. The model describes what the
user does differently. This produces voice descriptions that
encode implicit structural patterns no metrics can capture.
Context labels cause the extractor to anchor on content
rather than reading a unified voice.
beats 20 on the same subject. The extraction needs to see
what stays constant when everything else changes.
messages, quick emails. Polished pieces have rough edges
edited away, and those edges are where voice lives.
sounds generic ("uses varied sentence lengths"), run pass 2
and force specificity. Good output reads like followable
instructions, not a book report.
descriptions, especially for registers where subtle tonal
shifts matter.
voice-extract:samples-collected - Writing samples gatheredvoice-extract:samples-anonymized - Labels stripped, numberedvoice-extract:baseline-generated - Claude's default output on same topicsvoice-extract:extraction-pass-1 - Broad comparative featuresvoice-extract:extraction-pass-2 - Pressure test for specificityvoice-extract:profile-written - extraction.md createdLoad: @modules/sample-intake
# Scan for samples
PROFILE_DIR="$HOME/.claude/voice-profiles/{name}"
mkdir -p "$PROFILE_DIR/samples"
# Copy samples from user-provided directory
# Rename to Sample-01.md, Sample-02.md, etc.
Present the user with:
Paste your writing sample below (minimum 200 words).
Type END on a new line when done.
Repeat until user says "done collecting" or reaches 10+ samples.
Create manifest.json:
{
"profile_name": "{name}",
"created": "YYYY-MM-DD",
"samples": [
{
"id": "sample-01",
"original_source": "anonymized",
"word_count": 450,
"date_added": "YYYY-MM-DD"
}
],
"extraction_model": "opus",
"extraction_date": null,
"registers": ["default"]
}
For each sample's topic/context, generate Claude's default
output on the same subject. This creates the comparison pair.
Prompt for baseline:
Write a short piece about [topic extracted from sample].
Use your natural default style. Do not try to match any
particular voice or style. Just write naturally about this
subject in approximately [word_count] words.
Store baselines alongside samples for comparison.
Load: @modules/sico-extraction
The core comparative prompt:
I'm going to show you pairs of text. In each pair:
- Text A is written by a specific person
- Text B is your default output on the same topic
Your task: describe what the writer of Text A does
differently from your default style. Focus on:
- Structural patterns (paragraph shapes, section architecture)
- Rhetorical moves (how they build arguments, make transitions)
- Tonal devices (hedging patterns, commitment patterns)
- Sentence-level techniques (clause structure, rhythm)
- Vocabulary tendencies (physical vs abstract language,
technical vs conversational)
- Distinctive habits (parentheticals, fragments, questions)
Do NOT describe surface metrics (average sentence length,
word count). Describe the voice in terms a writer could
follow. Be specific enough that someone could use your
description to imitate this voice.
[Pairs follow]
If the extraction output contains any of these generic phrases,
reject and re-run with higher specificity demand:
Review your feature description. For each characteristic
you identified, answer:
1. Could this describe 50% of writers? If yes, be more
specific or remove it.
2. Can someone follow this as a concrete instruction?
If not, add an example from the samples.
3. Are there patterns you noticed but didn't name?
Writers often have unnamed habits. Look for:
- How they use parentheticals
- Where they commit vs hedge
- Physical language for abstract concepts
- Rhythm of building caution then dropping unhedged claims
- How they anticipate reader objections
Revise your description to be more specific and followable.
Write the extraction to ~/.claude/voice-profiles/{name}/extraction.md:
# Voice Extraction: {name}
## Feature Description
[SICO extraction output here]
## Craft Rules (Detection-Neutral)
These techniques improve writing without increasing
AI detectability:
- Concrete-first: Lead with specific, physical details
- Naming: Label patterns and dynamics explicitly
- Opening moves: Start mid-thought or with a specific moment
- Human-moment anchoring: Ground abstractions in lived experience
- Aphoristic destinations: Write sentences worth repeating alone
## Banned Phrases
[Standard AI vocabulary list + user additions]
## Notes
- Extraction model: {model}
- Extraction date: {date}
- Sample count: {n}
- Total word count: {words}
Create default register at registers/default.md from the
extraction output.
their voice
Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists' work to avoid copyright violations.
Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.
Improves the quality of images, especially screenshots, by enhancing resolution, sharpness, and clarity. Perfect for preparing images for presentations, documentation, or social media posts.
Downloads videos from YouTube and other platforms for offline viewing, editing, or archival. Handles various formats and quality options.
Lightweight WSI tile extraction and preprocessing. Use for basic slide processing tissue detection, tile extraction, stain normalization for H&E images. Best for simple pipelines, dataset preparation, quick tile-based analysis. For advanced spatial proteomics, multiplexed imaging, or deep learning pipelines use pathml.
Microscopy data management platform. Access images via Python, retrieve datasets, analyze pixels, manage ROIs/annotations, batch processing, for high-content screening and microscopy workflows.
Python library for working with DICOM (Digital Imaging and Communications in Medicine) files. Use this skill when reading, writing, or modifying medical imaging data in DICOM format, extracting pixel data from medical images (CT, MRI, X-ray, ultrasound), anonymizing DICOM files, working with DICOM metadata and tags, converting DICOM images to other formats, handling compressed DICOM data, or processing medical imaging datasets. Applies to tasks involving medical image analysis, PACS systems, radiology workflows, and healthcare imaging applications.
This skill should be used when working with pre-trained transformer models for natural language processing, computer vision, audio, or multimodal tasks. Use for text generation, classification, question answering, translation, summarization, image classification, object detection, speech recognition, and fine-tuning models on custom datasets.
Take athola/voice-extract from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.