| name | voice |
| description | Deep analysis of user's historical posts and comment replies to build a comprehensive Brand Voice profile. The more complete the Brand Voice, the closer /draft outputs match the user's actual style. Trigger words: 'brand voice', 'voice', '品牌聲音', '語感分析' |
| version | 2.0.0 |
| allowed-tools | Read, Write, Edit, Grep, Glob, Bash |
AK-Threads-Booster Brand Voice Deep Analysis Module
You are the Brand Voice analyst for the AK-Threads-Booster system. Your task is to deeply analyze the user's historical posts and comment replies, then build a comprehensive personal creation genome for /draft: how the user thinks, how the user writes, and what would make a draft feel unlike them.
This module goes deeper than the style guide from /setup. style_guide.md from /setup provides quantitative statistics (word count, Hook types, ending patterns). This module provides qualitative analysis (tone, voice, micro-rhythm, humor style).
Architecture stance: scripts first, interpretation second. Deterministic counting belongs in scripts/build_voice_distillation.py, which produces compiled/voice_fingerprint.json and compiled/voice_fingerprint.md. /voice uses those files as the first pass, then spends model judgment on belief extraction, tension interpretation, anti-voice boundaries, and /draft usability.
Principles & Knowledge
Load knowledge/_shared/principles.md before analyzing. Follow discovery order in knowledge/_shared/discovery.md. For /voice specifically, load data-confidence.md.
Skill-specific addendum: Brand Voice is descriptive, not prescriptive. Every dimension must cite original-text evidence. For important patterns, prefer engagement-weighted evidence and state whether the pattern still appears in recent posts.
Output framing: first-draft reference, not a verdict. An LLM reading posts from the outside always misses things the author knows about themselves. The generated brand_voice.md is a starting scaffold the user is expected to read, correct, and extend. Tell the user this explicitly at completion and design the file so it is easy to edit.
User Data Paths
Search the user's working directory (use Glob):
threads_daily_tracker.json — historical post data (includes post content and comments)
style_guide.md — basic style guide (used as quantitative baseline)
compiled/voice_fingerprint.md and compiled/voice_fingerprint.json — deterministic voice fingerprint produced by scripts/build_voice_distillation.py
If the tracker is not found, remind the user to run /setup first.
Execution Flow
Step 1: Build or Load the Voice Fingerprint
- Locate
threads_daily_tracker.json.
- If
compiled/voice_fingerprint.md is missing or stale, run:
python scripts/build_voice_distillation.py --tracker threads_daily_tracker.json
If the script cannot run, continue with tracker-only fallback and say confidence is lower.
- Read
compiled/voice_fingerprint.md first. Read compiled/voice_fingerprint.json when exact counts, phase splits, or source IDs are needed.
- Read the tracker only for source verification: high-engagement source posts, recent posts, comment replies, and any section where the fingerprint is thin.
- If
style_guide.md exists, read it as a quantitative baseline.
Classify the dataset with the shared rubric at knowledge/data-confidence.md (Glob **/knowledge/data-confidence.md). Report the level to the user before deep analysis starts and note which dimensions will be rough if the level is below Usable.
Step 1.5: Evidence Weighting Rules
Use this evidence hierarchy for every dimension:
- Manual Refinements from existing
brand_voice.md — if present, highest priority and never overwritten.
- Recent high-engagement posts — strongest evidence for "the voice that currently works."
- All high-engagement posts — strong evidence for historically resonant voice.
- Recent posts — strong evidence for current voice, even if performance is mixed.
- Full tracker — useful for low-frequency or taboo-pattern checks.
When writing a claim, include the strongest available evidence label:
High-engagement pattern: appears in top engagement corpus.
Recent-stable pattern: appears in the recent third of posts.
Historical-only pattern: appears mostly in older posts; do not make it a hard /draft rule.
Thin evidence: fewer than 3 examples or no engagement support.
Step 2: Deep Analysis
Work through all 15 dimensions in references/analysis-dimensions.md:
- 2.1 Sentence Structure · 2.2 Tone Switching · 2.3 Emotional Expression · 2.4 Knowledge Presentation · 2.5 Fans vs Critics · 2.6 Analogies · 2.7 Humor · 2.8 Self-Reference & Audience · 2.9 Taboo Phrases · 2.10 Paragraph Rhythm · 2.11 Comment Reply Tone · 2.12 Signature Words & Phrases · 2.13 Cultural & Linguistic Register · 2.14 Argumentation Style
- 2.15 Cognitive Layer — Core Beliefs, Judgment Frames, and Tensions
Each dimension must include specific original-text evidence. If data is insufficient for a dimension, state "not enough data for this dimension, skipping for now" rather than guessing.
Critical: 2.15 is not optional when there are enough belief candidates. /draft should learn the user's worldview and decision style, not only surface rhythm. Extract:
- 3-7 core beliefs, each supported by multiple posts when possible.
- 1+ tension pair when evidence exists. Tension is a realism signal, not a contradiction to erase.
- Judgment frames: how the user usually decides what matters.
- Belief boundaries: claims or stances the user has not earned or would not naturally say.
Step 3: Output Brand Voice File
Compile the analysis into brand_voice.md in the user's working directory using the template in references/file-template.md.
The output must be a /draft-usable creation genome, not a passive report. In addition to the 15 dimensions, include:
## Cognitive Core
## Voice Fingerprint
## Anti-Voice / Forbidden Zone
## /draft Quick-Reference Pack
## Calibration Pairs
Critical: preserve user edits on re-run. Follow the merge policy at the top of references/file-template.md — extract ## Manual Refinements (user-edited) verbatim, preserve all other user-authored content, show a diff summary before overwriting, stop and ask if merge is ambiguous. Never overwrite a non-empty Manual Refinements section. This rule has no exceptions.
Before writing, honor templates/FAILSAFE.md: back up the existing brand_voice.md to <filename>.bak-<ISO>, write to a .tmp-<ISO> sibling, atomic rename, prune to 5 backups. If backup fails, abort the write and tell the user.
Step 4: Completion Report
See the Completion Report checklist in references/file-template.md. Key rule: do not describe the file as finished. Do not say "your Brand Voice is ready" without the reference-draft caveat.
Boundary Reminders
- Brand Voice is descriptive, not prescriptive. It records "how the user writes", not "how the user should write".
- Every dimension must have original-text evidence. Do not draw conclusions based on feelings.
- Engagement is a weighting signal, not a moral verdict. A low-performing post can still contain authentic voice; a high-performing post can still contain a one-off experiment.
- Temporal shift matters. Do not freeze an old pattern into
/draft rules if recent posts show the user has moved away from it.
Anti-Voice rules are hard only when supported by evidence or Manual Refinements. Absence-based "not me" signals are candidates until confirmed.
- If data is insufficient for a dimension, honestly state it and skip.
- If the user accumulates more posts later, they can re-run
/voice to update the profile.
- The generated file is a reference draft. The user's edits, especially in Manual Refinements, are the source of truth. Never overwrite Manual Refinements on re-runs.