Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion bin/claude-md-template.js
Original file line number Diff line number Diff line change
Expand Up @@ -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).
Expand Down
26 changes: 26 additions & 0 deletions bin/claude-md-template.test.ts
Original file line number Diff line number Diff line change
@@ -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('<!-- DEVGLIDE:BEGIN');
expect(content).toContain('<!-- DEVGLIDE:END');
});

it('documents whisper-cli PATH adoption', () => {
expect(getClaudeMdContent()).toContain('brew install whisper-cpp');
});

it('inject then remove round-trips', () => {
const existing = '# My instructions\n';
const injected = injectSection(existing, getClaudeMdContent());
expect(injected).toContain('DEVGLIDE:BEGIN');
const removed = removeSection(injected);
expect(removed).not.toContain('DEVGLIDE:BEGIN');
expect(removed).toContain('# My instructions');
});
});
Loading