vac-promptlisted
Install: claude install-skill callflows/voice-agent-kit
# VAC Prompt Writer
Write the prompt, first_message, and config.json. Output: `prompt.md` + `config.json` + `example-variables.md`.
> **Prompt architecture foundation:** `../../VOICE-AGENT-PROMPT-ARCHITECTURE.md` — the overarching SSOT
> for rule-vs-goal steering. Pipeline mechanics stay in `PIPELINE.md`.
## Before Writing
1. Read `briefing.md`, `research.md`, `conversation-design.md`
2. Read `references/elevenlabs/prompting-guide.md` for ElevenLabs best practices
3. Read `references/universal-prompt-rules.md` — the mandatory base block for `# Conversation Rules` + `# Language Rules`, built into EVERY agent verbatim
5. If `knowledge-base.md` exists (from vac-knowledge-base): read its **tier-1 spec** — the prompt's Answer Bank carries ONLY tier-1 (high-frequency answers); tier-2 lives in the KB, never duplicate it.
## Core Principle: Latency-Aware Prompt Design
Every token in the prompt costs LLM processing time. Keep the prompt as short as the behavior allows. **Unit = characters of the deployed prompt body** (everything from `# Identity` onward), NOT KB — the KiB-vs-decimal ambiguity decides PASS/fail at the ceiling, so always count characters. The universal base block alone is ~4,700 chars (fixed cost). Soft target **under 10,000 chars** for simple agents; engaged agents with the Answer Bank realistically run **13,000–17,000**. Working ceiling **~18,000 chars** — above it latency degrades noticeably; it is a latency budget (deployable around this size, no documented h