Derive Section Voice Overlay
SkillAI & modelsDerives a draft per-section voice overlay (deltas against substacker global voice-profile) once a section reaches ≥3 published posts with shared voice tells. Writes to shared-context/voices/{slug}.md. Writer reviews and commits. Overlay expresses only the DELTA from global voice — not a full rewrite. Use when a section crosses the 3-post threshold. Trigger keywords — voice overlay, section voice, overlay delta, per-section voice.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Derive Section Voice Overlay skill
What this skill tells your AI
The instructions your AI receives, as published by lyndonkl/claude in skills/derive-section-voice-overlay/SKILL.md and read by ahel’s review.
Workflow
When a section reaches ≥3 posts:
- [ ] Step 1: Read all posts in corpus/published/{section}/
- [ ] Step 2: Read global shared-context/voice-profile.md
- [ ] Step 3: Extract patterns present in this section's posts but different from global:
- Tone shifts (confessional vs technical; register)
- Structural shifts (scoreboard required; code fences allowed; H2 permitted)
- Vocabulary shifts (term-of-art allowed; jargon defined on first use)
- Register permissions (epistolary, second-person, etc.)
- [ ] Step 4: Draft the overlay as a delta (bullet list per category; NOT a full voice profile)
- [ ] Step 5: Write shared-context/voices/{slug}.md for writer review
- [ ] Step 6: Emit draft status: "awaits writer commit" in the Curator review artifact
Overlay schema
---
name: voice-overlay-{slug}
section: {slug}
type: voice-overlay
purpose: Voice deltas for {section name} against global voice-profile.
based_on: voice-profile.md (global)
maintained_by: curator (seed) + writer (refinements)
last_updated: YYYY-MM-DD
---
# {Section name} — Voice Overlay
Apply these on top of the global voice-profile. Where rules conflict, this overlay wins for posts in section `{slug}`.
## Tone shifts
- {delta bullet}
## Structural shifts
- {delta bullet}
## Vocabulary shifts
- {delta bullet}
## Register permissions
- {delta bullet}
## Carryovers (emphasized for this section)
- {global rule that matters even more here}
## Things this section does NOT do (anti-overlay)
- {negative rule — what the section explicitly does not do that the global voice might allow}
## Changelog
- YYYY-MM-DD — Initial overlay derived from N posts.
Worked example
Section: Kalshi Log (6 posts).
Detected patterns vs global:
- Every post has scoreboard at close (absent from global voice).
- Register leans confessional-operational; the "what actually happened" body, not speculative essay.
- Epistolary second-person register appears in 1 of 6 posts — color, not default.
- No post ends on a universal maxim; all close with forward-looking "next match" or "let's find out."
Overlay draft:
## Tone shifts
- Register leans confessional-operational, not speculative-essay.
- Closer points forward, not upward (universal maxim rare).
## Structural shifts
- Scoreboard block required at the close of every post.
- More numbers per paragraph than global voice allows.
- Short-form is default (≤1500 words).
## Register permissions
- Epistolary second-person register permitted (as in *The Letter*). Color, not default.
## Anti-overlay
- No generalizing to other sports / markets without explicit scope.
- No "lessons for life" closes.
Guardrails
- Overlay is a delta, not a full voice rewrite. Keep short.
- Requires ≥3 published posts in the section. Below that, section uses global voice.
- Writer reviews and commits. Don't write final overlay without writer confirmation in the Curator review artifact.
- Flag candidate overlay rules that contradict global — those need the writer's explicit promotion.
- Voice overlays are refined over time — first draft is a starting point, not a finished system.
Signals
- GitHub stars
- 158
- Forks
- 23
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
derive-section-voice-overlay- Source
- github.com/lyndonkl/claude