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}, ביטוי אסור אחד."
npx claudepluginhub yodem/hebrew-book-producer --plugin hebrew-book-producerCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.