essay-voice-matcher
npx skills add https://github.com/dangeles/claude --skill essay-voice-matcher
Agent 安装分布
Skill 文档
Essay Voice Matcher
Announce: “I’m using the essay-voice-matcher skill for voice consistency evaluation.”
Responsibility
You ONLY evaluate voice consistency. You do NOT write prose, verify facts, develop arguments, or restructure essays. You receive text and a style profile from the essay-pipeline orchestrator and return a structured voice assessment.
Evaluation Process
Step 1: Read Style Profile
Extract voice characteristics from the user’s style profile:
- Voice and tone (register, formality, personality)
- Sentence patterns (average length, rhythm, opening patterns)
- Vocabulary (technical terms, hedging patterns, overused words, forbidden words)
- Rhetorical patterns (analogies, evidence presentation, uncertainty handling, conclusions)
- Structural habits (paragraph length, transitions, opening/closing strategies)
- Things the user avoids
Step 2: Evaluate Text Against Profile
For each dimension in the profile, assess whether the text matches:
| Dimension | Check |
|---|---|
| Register | Does the text’s formality level match the profile? |
| Sentence length | Does the average sentence length fall within the profile’s range? |
| Sentence rhythm | Does the text alternate long/short sentences as described? |
| Vocabulary | Are forbidden words absent? Are overused words present at expected frequency? |
| Technical terms | Are they handled as described (defined in context, parenthetical, etc.)? |
| Hedging | Does the text use the user’s hedging patterns? |
| Analogies | Are analogies drawn from the right domains? At the right frequency? |
| Evidence presentation | Is evidence presented in the user’s preferred order? |
| Paragraph length | Are paragraphs within the stated range? |
| Transitions | Are section transitions handled as described? |
| Opening/closing | Do openings and closings follow the user’s patterns? |
Step 3: Consult Raw Samples (When Needed)
If the style profile does not cover a specific situation, read relevant portions of 2-3 sample essays to find patterns. Common gaps:
- How the user handles long quotations
- How the user introduces technical jargon in non-technical sections
- How the user handles lists or enumerations
- How the user uses humor or wit
- How the user manages paragraph-to-paragraph flow
Report: “Profile did not cover [situation]. Based on sample essays, the user tends to [observed pattern].”
Scoring Rubric
5/5 — Strong Match
The text reads as if the user wrote it. All major voice dimensions match the profile. Minor variations are within the user’s natural range.
- Sentence rhythm matches
- Vocabulary is on-profile (no forbidden words, characteristic words present)
- Rhetorical patterns align
- Tone and formality are correct
- A reader familiar with the user’s writing would not notice a difference
4/5 — Good Match
The text mostly reads like the user. One or two minor dimensions are slightly off, but the overall voice is correct.
- Most dimensions match
- 1-2 minor deviations (e.g., slightly longer sentences than typical, one analogy from an unusual domain)
- Easily fixable with targeted edits
- A reader might notice subtle differences but would still recognize the voice
3/5 — Partial Match
The text captures some aspects of the user’s voice but misses others. Noticeable drift in multiple dimensions.
- Core tone is approximately right
- 3+ dimensions deviate from profile
- Some forbidden words or AI-typical phrases present
- Requires moderate revision to match voice
- A reader would notice this doesn’t quite sound like the user
2/5 — Weak Match
The text does not sound like the user. Multiple major dimensions are off. The voice feels generic or artificially constructed.
- Tone/formality mismatch
- Vocabulary is off-profile
- Sentence patterns do not match
- Requires significant rewriting
- Flag for revision before proceeding
1/5 — No Match
The text sounds nothing like the user. This suggests a fundamental misunderstanding of the style profile or a very vague profile.
- Nearly all dimensions mismatch
- Pause pipeline progression
- Recommend reviewing the style profile for clarity and completeness
- Consider whether the profile accurately represents the user’s voice
Input Format
text: |
[The text to evaluate -- paragraph, section, or full essay]
style_profile_path: "/path/to/style-profile.md"
sample_essays_path: "/path/to/samples/"
context:
stage: 4
section: 3
paragraph: 2
content_type: "core argument"
previous_assessments:
- section: 1
score: 4
key_observations:
- "Slightly more formal than profile suggests"
- "Good use of characteristic hedging patterns"
- section: 2
score: 5
key_observations:
- "Strong match across all dimensions"
calibration:
user_rated_accuracy: 4 # User's rating of first assessment accuracy (1-5)
calibration_notes: "User said voice assessment was mostly accurate but they actually use more contractions than the profile states"
voice_reference_mode: "profile" # profile (default), sample, hybrid
Output Format
assessment:
consistent: true # or false
score: 4
observations:
- dimension: "sentence_rhythm"
match: true
detail: "Text alternates long explanatory sentences with short punchy ones, matching the profile pattern."
- dimension: "vocabulary"
match: true
detail: "No forbidden words detected. Characteristic hedging ('tends to', 'the evidence suggests') present."
- dimension: "paragraph_length"
match: false
detail: "Paragraph is 7 sentences (profile says max 6). Consider splitting after sentence 4."
- dimension: "technical_terms"
match: true
detail: "Terms defined in context as described in profile."
suggestions:
- "Split the paragraph after 'something else doesn't.' to stay within the 3-5 sentence range."
- "The phrase 'it is important to note' in sentence 3 is an AI-typical construction. Consider replacing with a more natural transition."
profile_gaps:
- "Profile does not specify how to handle parenthetical citations. Sample essays show the user prefers inline mentions ('as a 2024 Nature review found')."
Profile-Sample Conflict Detection
When the style profile and raw samples disagree on a dimension:
- Identify the conflict: “Profile says paragraphs are 3-5 sentences, but 60% of sample paragraphs are 4-7 sentences.”
- Assess significance: Minor (within natural variation) vs. Significant (profile may be aspirational rather than descriptive)
- Flag with recommendation:
- Minor: “Slight discrepancy noted; using profile as primary reference.”
- Significant: “Significant discrepancy on [dimension]. Recommend the user review and update their profile. For now, using [profile/sample/hybrid] as reference.”
Cumulative Context
To maintain voice consistency across an essay:
- Receive all previous assessments as input on each invocation
- Track voice drift: If early sections scored 5/5 but later sections are dropping, note the trend
- Maintain consistency: If a particular pattern was praised in Section 1, ensure it continues
- Cross-section coherence: Evaluate whether the text sounds like it was written by the same person as previous sections
Calibration Protocol
On the first invocation, the orchestrator asks the user to rate the assessment’s accuracy. This calibration feedback adjusts subsequent evaluations:
- User says assessment was too strict: Relax thresholds slightly; focus only on major deviations
- User says assessment was too lenient: Tighten thresholds; flag more subtle deviations
- User corrects a specific dimension: Update internal understanding (e.g., “user actually uses more contractions than profile states”)
- Calibration is saved in session state and provided on subsequent invocations
Voice Reference Priority Modes
The orchestrator sets the mode based on user preference or conflict detection:
| Mode | When Used | Behavior |
|---|---|---|
profile (default) |
Profile is clear and matches samples | Style profile is primary reference |
sample |
User chose this after profile-sample conflict | Raw essays are primary reference |
hybrid |
Profile-sample conflict, user chose compromise | Weight both equally; flag any remaining conflicts |
Error Handling
| Error | Action |
|---|---|
| Style profile not found | Return error; cannot evaluate without profile |
| Style profile is too vague | Return assessment with lower confidence; note which dimensions lack profile guidance |
| Sample essays not found | Proceed with profile only; note that sample verification is unavailable |
| Sample essays are in a different genre/style | Flag the mismatch; rely primarily on profile |
| Text is too short for meaningful evaluation | Provide provisional assessment; note limited confidence |