Good Docs Audit
ComposioHQ/composio
Audit a doc, guide, README, or block of prose against the good-docs-writing style guide and report violations.
Extracts a user's writing voice from text samples via SICO comparative analysis.
$ npx skills add athola/claude-night-market --skill voice-extract -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install athola/claude-night-market voice-extract --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/athola/claude-night-market.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/scribe/skills/voice-extract .claude/skills/voice-extract && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "voice-extract" agent skill from https://github.com/athola/claude-night-market/tree/master/plugins/scribe/skills/voice-extract into .claude/skills/voice-extract/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "voice-extract", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/athola/claude-night-market/tree/master/plugins/scribe/skills/voice-extractType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add athola/claude-night-market --skill voice-extract -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install athola/claude-night-market voice-extract --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/athola/claude-night-market.git skills-src && mkdir -p .agents/skills && cp -r skills-src/plugins/scribe/skills/voice-extract .agents/skills/voice-extract && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "voice-extract" agent skill from https://github.com/athola/claude-night-market/tree/master/plugins/scribe/skills/voice-extract into .agents/skills/voice-extract/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "voice-extract", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add athola/claude-night-market --skill voice-extract -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install athola/claude-night-market voice-extract --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/athola/claude-night-market.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/plugins/scribe/skills/voice-extract .cursor/skills/voice-extract && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "voice-extract" agent skill from https://github.com/athola/claude-night-market/tree/master/plugins/scribe/skills/voice-extract into .cursor/skills/voice-extract/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "voice-extract", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/athola/claude-night-market.git --path plugins/scribe/skills/voice-extract--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add athola/claude-night-market --skill voice-extract -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install athola/claude-night-market voice-extract --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/athola/claude-night-market.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/plugins/scribe/skills/voice-extract .gemini/skills/voice-extract && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "voice-extract" agent skill from https://github.com/athola/claude-night-market/tree/master/plugins/scribe/skills/voice-extract into .gemini/skills/voice-extract/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "voice-extract", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install athola/claude-night-market voice-extractInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add athola/claude-night-market --skill voice-extract -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/athola/claude-night-market.git skills-src && mkdir -p .github/skills && cp -r skills-src/plugins/scribe/skills/voice-extract .github/skills/voice-extract && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "voice-extract" agent skill from https://github.com/athola/claude-night-market/tree/master/plugins/scribe/skills/voice-extract into .github/skills/voice-extract/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "voice-extract", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add athola/claude-night-market --skill voice-extract -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install athola/claude-night-market voice-extract --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/athola/claude-night-market.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/plugins/scribe/skills/voice-extract .opencode/skills/voice-extract && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "voice-extract" agent skill from https://github.com/athola/claude-night-market/tree/master/plugins/scribe/skills/voice-extract into .opencode/skills/voice-extract/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "voice-extract", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
voice-extractExtracts a user's writing voice from text samples via SICO comparative analysis.
Voice Extract is an agent skill from athola/claude-night-market. Extracts a user's writing voice from text samples via SICO comparative analysis. Use when building a voice profile for consistent generation.
Its SKILL.md is about 1.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files (for example `modules/register-creation.md`, `modules/research-basis.md` and `modules/sample-intake.md`).
It sits in Testing & QA, covering Brand voice and tone. The repository describes itself as: 23 Claude Code plugins: TDD enforcement hooks, git/PR workflows, spec-driven development, code review, project lifecycle, fix-from-error, maintenance automation, context… The licence is MIT.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 9f3eb00. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are bash, json and markdown).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Voice Extract loads about 1.8k tokens when it runs. Until then it costs about 39 tokens; SKILL.md has 462 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from athola/claude-night-market at commit 9f3eb00, republished under its MIT licence (© athola). 462 words, ~1,805 tokens.
.claude/skills/voice-extract/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.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.
The papers and reports behind these choices, and what each one
changed in the extraction passes, are in modules/research-basis.md.
Read it before changing what the passes ask for.
Anonymize samples: Label as "Sample 1", "Sample 2", etc. Context labels cause the extractor to anchor on content rather than reading a unified voice.
Variety over volume: 10 samples across different topics beats 20 on the same subject. The extraction needs to see what stays constant when everything else changes.
Casual writing is distinctive: Reddit comments, slack messages, quick emails. Polished pieces have rough edges edited away, and those edges are where voice lives.
Pressure test for specificity: If extraction output sounds generic ("uses varied sentence lengths"), run pass 2 and force specificity. Good output reads like followable instructions, not a book report.
Use Opus for extraction: More nuanced feature 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.
© athola, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 4 other files in plugins/scribe/skills/voice-extract of athola/claude-night-market.
Open the folder on GitHubat commit 9f3eb00
Voice Extract next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Voice Extract this skillathola/claude-night-market | 341 | — | ~1.8k | Automated safety check: Pass | MIT | |
| Good Docs AuditComposioHQ/composio | 30k | — | ~293 | Automated safety check: Pass | MIT | |
| Adk Style GuideBrainDAO/adk-ts | 119 | — | ~1.8k | Automated safety check: Pass | MIT | |
| Checkindranilbanerjee/digital-marketing-pro | 859 | 1 repos | ~4.4k | Automated safety check: Notes | MIT | |
| Filter Syntaxmicrosoft/testfx | 1k | 3 repos | ~1.5k | Automated safety check: Pass | MIT | |
| Bmad Prfaqdelorenj/mcp-server-trello | 445 | 1 repos | ~2.7k | Automated safety check: Pass | MIT |
ComposioHQ/composio
Audit a doc, guide, README, or block of prose against the good-docs-writing style guide and report violations.
BrainDAO/adk-ts
ADK-TS brand voice, terminology, and writing conventions. An agent skill from BrainDAO/adk-ts.
indranilbanerjee/digital-marketing-pro
Run the unified pre-publish quality gate on marketing content — wraps scripts/eval-runner.py to score hallucination risk, claim substantiation (with --evidence), brand-voice fit (with --brand)…
microsoft/testfx
Reference data for test filter syntax across all platform and framework combinations: VSTest --filter expressions, MTP filters for MSTest/NUnit/xUnit v3/TUnit, and VSTest-to-MTP filter translation.
delorenj/mcp-server-trello
Working Backwards PRFAQ challenge that stress-tests a product concept customer-first.
swingerman/engineer
A skill your agent uses to model-check real code or a design with TLA+ and TLC.
athola/claude-night-market
Run and interpret repo diagnostic scripts (ratchets, validators, token stats).
athola/claude-night-market
Evaluate Claude skill quality through auditing. An agent skill from athola/claude-night-market.
athola/claude-night-market
Coordinates Claude agent teams via filesystem protocol. An agent skill from athola/claude-night-market.
athola/claude-night-market
Delegates execution to eight CLIs (Gemini, Qwen, MiniMax, GLM, Muse, Codex, OpenCode, Glimmer).
athola/claude-night-market
Guide minimal code via a decision ladder with full safety, edge, and negative-case coverage.
athola/claude-night-market
Build a project skill library in .claude/skills/ via discovery, parallel authoring, and review.
Categories
Extracts a user's writing voice from text samples via SICO comparative analysis. Voice Extract is an agent skill from athola/claude-night-market. Extracts a user's writing voice from text samples via SICO comparative analysis.
Voice Extract fits situations like: building a voice profile for consistent generation; tasks that involve Brand voice and tone.
Run `npx skills add athola/claude-night-market --skill voice-extract -a claude-code`. Or copy the skill folder (plugins/scribe/skills/voice-extract in athola/claude-night-market) into .claude/skills/voice-extract in your project. Claude Code loads it when a task matches its description.
Run `npx skills add athola/claude-night-market --skill voice-extract -a codex`. Or copy the skill folder (plugins/scribe/skills/voice-extract in athola/claude-night-market) into .agents/skills/voice-extract in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add athola/claude-night-market --skill voice-extract -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/voice-extract, .gemini/skills/voice-extract, .github/skills/voice-extract and .opencode/skills/voice-extract in your project.
SKILL.md names no scripts, command-line tools or credentials: Voice Extract is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Voice Extract is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.8k tokens (SKILL.md is roughly 7.2k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Voice Extract: Good Docs Audit (ComposioHQ/composio, 30k stars), Adk Style Guide (BrainDAO/adk-ts, 119 stars), Check (indranilbanerjee/digital-marketing-pro, 859 stars) and Filter Syntax (microsoft/testfx, 1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
athola (a GitHub user) maintains it in athola/claude-night-market, which has 341 GitHub stars. The repository holds 154 skills in this directory. The repository was last updated on October 6, 2026.
Source: athola/claude-night-market on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.