From hebrew-book-producer
Three-question Hebrew fast path that produces a minimum-viable AUTHOR_VOICE.md when the author hasn't run /init-voice yet. Used by book-bootstrap during /start to avoid blocking the pipeline on the full 10-question voice interview. Author can upgrade to the heavy fingerprint later with /init-voice.
How this skill is triggered — by the user, by Claude, or both
Slash command
/hebrew-book-producer:express-voiceThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
The full `/init-voice` flow asks 10 questions and runs a computational fingerprint over `past-books/`. That's the right depth for an author who's settling in. But for a user who just typed *"תוכל להגיה את הספר שלי?"* and wants results, 10 questions is a wall.
The full /init-voice flow asks 10 questions and runs a computational fingerprint over past-books/. That's the right depth for an author who's settling in. But for a user who just typed "תוכל להגיה את הספר שלי?" and wants results, 10 questions is a wall.
This skill collects the three highest-leverage voice signals in under a minute. The proofreader and linguistic-editor produce useful output even from this sparse input — what they really can't do is operate with AUTHOR_VOICE.md missing, which would disable voice-preserver entirely.
book-bootstrap step 5, when AUTHOR_VOICE.md is missing.Ask one at a time, in Hebrew, conversational tone. Wait for each answer before the next.
"במשפט אחד, מי המספר של הספר הזה ולמי הוא מדבר?"
→ Stored verbatim under ## Persona.
"באיזה משלב? אקדמי, ספרותי, יומיומי, או מעורב?"
→ Stored under ## Register. Map the answer to the five-tier taxonomy from hebrew-linguistic-reference.md chapter hebrew-author-register (high / academic / journalistic / everyday / colloquial). Multi-word answers → mixed with the dominant first.
"ביטוי אחד שאתה לא תכתוב לעולם, שמעצבן אותך לראות בטיוטה?"
→ Verbatim under ## Banned phrases. This single entry gates the linguistic-editor immediately; many authors find that one explicit ban catches 30% of AI-flat fixes on its own.
AUTHOR_VOICE.md# AUTHOR_VOICE.md
> _שורה זו נוצרה בקצר עם express-voice. הרץ /init-voice בכל זמן להעמקה מלאה (10 שאלות + fingerprint חישובי)._
## Persona
<verbatim Q1 answer>
## Register
- Default: <mapped Q2 — high | academic | journalistic | everyday | colloquial | mixed>
- Switches: _TBD — להשלים עם /init-voice_
## Preferred phrases
_TBD — להשלים עם /init-voice_
## Banned phrases
- <verbatim Q3 answer>
## Sentence rhythm
_TBD — להשלים עם /init-voice. ברירת מחדל: מעורב._
## First person
_TBD — להשלים עם /init-voice._
## Reference paragraphs
_TBD — להשלים עם /init-voice._
## What never to touch
_TBD — להשלים עם /init-voice._
.book-producer/profile.jsonIf a manuscript exists in the current project (book-bootstrap detected at least one file), also run the extractor on a sample to seed computational fields:
python3 $CLAUDE_PLUGIN_ROOT/scripts/extract-voice-fingerprint.py \
--input <one of the manuscript files> \
--baseline .ctx/hebrew-linguistic-reference.md \
--output .book-producer/profile.json
This gives downstream agents real burstiness, sentence-length, and TTR numbers — even when the author hasn't done the heavy interview. If extraction fails or no manuscript exists, write a stub:
{
"version": "0.4.0",
"createdAt": "<ISO>",
"path": "express",
"styleFingerprint": null,
"bannedPhrases": ["<Q3 verbatim>"],
"preferredPhrases": [],
"register": "<Q2 mapped>",
"qualitativeAnalysis": {
"persona": "<Q1 verbatim>"
},
"_note": "express-voice run; upgrade with /init-voice for full fingerprint"
}
AUTHOR_VOICE.md already exists when this skill runs, abort and tell the caller — book-bootstrap should have skipped this skill.One-line return to the caller:
"הקול נשמר. {persona-1-word}, משלב {register}, ביטוי אסור אחד."
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub yodem/hebrew-book-producer --plugin hebrew-book-producer