From write
Quantified prose analysis for voice.md generation. Extracts sentence metrics, dialogue profiles, vocabulary patterns, and forbidden word detection from exemplar texts.
npx claudepluginhub pknull/asha-marketplace --plugin writeThis skill uses the workspace's default tool permissions.
Extracts measurable style patterns from exemplar texts to build objective voice documentation. Transforms subjective "write like X" into quantified constraints.
Creates isolated Git worktrees for feature branches with prioritized directory selection, gitignore safety checks, auto project setup for Node/Python/Rust/Go, and baseline verification.
Executes implementation plans in current session by dispatching fresh subagents per independent task, with two-stage reviews: spec compliance then code quality.
Dispatches parallel agents to independently tackle 2+ tasks like separate test failures or subsystems without shared state or dependencies.
Extracts measurable style patterns from exemplar texts to build objective voice documentation. Transforms subjective "write like X" into quantified constraints.
# Analyze single file (markdown output)
python "${CLAUDE_PLUGIN_ROOT}/skills/style-analyzer/scripts/analyze_style.py" source.txt
# Analyze directory of texts
python "${CLAUDE_PLUGIN_ROOT}/skills/style-analyzer/scripts/analyze_style.py" exemplars/
# JSON output for programmatic use
python "${CLAUDE_PLUGIN_ROOT}/skills/style-analyzer/scripts/analyze_style.py" source.txt --json
The book-analyzer agent uses this script for metric extraction:
@task: Analyze Ishiguro's Never Let Me Go
→ style-analyzer produces metrics
→ book-analyzer interprets for voice.md
| Metric | Description |
|---|---|
| Mean length | Average words per sentence |
| Median length | Middle value (less skewed by outliers) |
| Std deviation | Rhythm variation indicator |
| Short ratio | % sentences < 8 words |
| Long ratio | % sentences > 25 words |
| Metric | Description |
|---|---|
| Dialogue ratio | % of text in quotation marks |
| Quote style | Double vs single quotes |
| Tag distribution | said/asked/replied frequencies |
| Attribution style | "said Name" vs "Name said" |
| Metric | Description |
|---|---|
| Unique word ratio | Vocabulary diversity |
| Rare word ratio | Words appearing only once |
| Adverb density | -ly words per 1000 words |
| AI signal density | Known flat-prose indicators per 1000 |
Detects and counts:
Human-readable report with tables and grep patterns for validation.
Machine-readable output for integration with other tools:
{
"source": "chapter01.txt",
"word_count": 5432,
"sentence_metrics": {
"mean_length": 14.2,
"std_dev": 8.3,
"short_ratio": 0.15,
"long_ratio": 0.08
},
"dialogue_metrics": {
"dialogue_ratio": 0.35,
"quote_style": {"dominant": "double"}
},
"vocabulary_metrics": {
"adverb_density_per_1000": 12.5,
"ai_signals": {"density_per_1000": 0.8}
},
"forbidden_patterns": {
"totals": {"filter_words": 3, "hedging": 12, "cliches": 1}
}
}
| Component | Relationship |
|---|---|
| book-analyzer agent | Uses this script for metric extraction |
| bible-merger agent | Consumes analysis outputs |
| novel-style-linter | Validates against derived thresholds |
| perplexity-gate | Complements with AI flatness detection |
The script detects 60+ known AI-prose indicators including:
# Style Analysis: ishiguro_sample.txt
## Sentence Metrics
| Metric | Value |
|--------|-------|
| Mean length | 16.2 words |
| Std deviation | 9.4 |
| Short sentences (<8 words) | 12.3% |
| Long sentences (>25 words) | 8.7% |
## Dialogue Profile
| Metric | Value |
|--------|-------|
| Dialogue ratio | 28.5% |
| Most common tag | "said" (78%) |
| Attribution style | Name said |
## Forbidden Patterns Found
- Filter words: 2 occurrences
- Hedging: 8 occurrences
- Clichés: 0 occurrences