2.1 KiB
2.1 KiB
VoiceCat working method
Start with CLAUDE.md for commands and architecture and PROGRESS.md for the current handoff.
The supported product is the .NET 10 implementation.
Definition of done
A clean compile is the floor. Changes are done when their observable behavior is covered by a test or, for hardware/accessibility/release behavior, by a clearly recorded manual gate.
For implementation work:
- Read the relevant code and current contract document.
- Add or adjust the smallest behavior test that demonstrates the requested result.
- Implement the change without weakening encryption, real-time safety, or accessibility.
- Build and run the affected tests, then the full managed test suite when practical.
- Update concise current documentation and
PROGRESS.mdif the handoff changed.
Supported layout
| Path | Purpose |
|---|---|
proto/voicecat.proto |
Control-plane wire schema |
src/ |
Managed server, core, protocol, crypto, audio, codec/DSP, and CLI |
tests/VoiceCat.Tests/ |
Managed behavior tests |
clients/windows/ |
Supported WinForms client |
clients/apple/ |
Supported AppKit and UIKit clients |
native/media/ |
Required narrow Opus/RNNoise C ABI |
native/rnnoise/ |
Vendored RNNoise source/model |
native/apple/broadcast/ |
Required ReplayKit extension and shared-memory producer |
Core verification
./scripts/build-native.ps1
dotnet restore VoiceCat.slnx --locked-mode
dotnet build VoiceCat.slnx -c Release --no-restore
dotnet test VoiceCat.slnx -c Release --no-build
./scripts/check-licenses.ps1
Apple builds additionally use ./scripts/build-native-ios.sh and
clients/apple/VoiceCat.Apple.slnx on macOS.
Hard rules
- Encryption is mandatory: TLS control plus authenticated encrypted UDP media.
- Never introduce GPL/LGPL dependencies.
- Real-time audio callbacks never allocate, lock, block, or perform I/O.
- Preserve accessible names, keyboard operation, and curated screen-reader announcements.
- Wire, database, and shared-ring changes are deliberate versioned changes.
- Keep
PROGRESS.mdshort. Use Git history rather than accumulating completed-work prose.