diff --git a/bin/claude-md-template.js b/bin/claude-md-template.js index 8dc4dd2..d20901e 100644 --- a/bin/claude-md-template.js +++ b/bin/claude-md-template.js @@ -81,7 +81,7 @@ Describe what to test in natural language and scenarios are generated automatica - \`voice_analytics\` — get aggregated transcription analytics - \`voice_status\` — check transcription service status and statistics - **STT providers:** openai, groq, local (whisper.cpp), whisper-cpp, faster-whisper, vllm, local-ai -- **Local whisper:** A whisper-cli already on PATH (e.g. `brew install whisper-cpp`) is adopted automatically. On Windows, prebuilt whisper-cli is auto-downloaded from GitHub releases. Otherwise built from source via CMake. +- **Local whisper:** A whisper-cli already on PATH (e.g. \`brew install whisper-cpp\`) is adopted automatically. On Windows, prebuilt whisper-cli is auto-downloaded from GitHub releases. Otherwise built from source via CMake. - **TTS engine:** msedge-tts (Microsoft Edge Read Aloud). Long text is automatically split into sentence chunks with pipelined generation + playback. - **TTS config:** \`voice\`, \`edgeRate\`, \`edgePitch\`, \`volume\`, \`chunkThreshold\`, \`fallbackRate\`, \`enabled\` — configurable via dashboard. - **TTS fallback chain:** If msedge-tts fails → PowerShell SAPI (Windows/WSL), \`say\` (macOS), espeak-ng/spd-say (Linux). diff --git a/bin/claude-md-template.test.ts b/bin/claude-md-template.test.ts new file mode 100644 index 0000000..fd30900 --- /dev/null +++ b/bin/claude-md-template.test.ts @@ -0,0 +1,26 @@ +import { describe, expect, it } from 'vitest'; +import { getClaudeMdContent, injectSection, removeSection } from './claude-md-template.js'; + +// The template is one large template literal — a single unescaped backtick +// in the markdown body is a syntax error that breaks the whole CLI at import +// time. Importing the module at all is the core regression guard here. +describe('claude-md-template', () => { + it('produces the managed section with begin/end markers', () => { + const content = getClaudeMdContent(); + expect(content).toContain('