Status: Current
Last updated: 2026-04-16 21:56 EDT
Every user-invocable VS Code command this extension contributes,
grouped by feature area. Commands are declared in package.json’s
contributes.commands; registrations live in
src/activation/commands/ (the 41 effect commands) and
src/activation/validation.ts (the 4 validation-explorer commands).
Total contributed commands: 45.
Command IDs all use the talkbank. prefix; the corresponding LSP RPC
endpoints (12 of them) use the talkbank/ prefix instead — they are
not directly user-invocable. See RPC Contracts for
those.
Registered directly via vscode.commands.registerCommand in
src/activation/validation.ts rather than the effect runtime — the
validation explorer tree view owns its own command surface because
the tree view’s data model drives context-menu contributions.
All 41 non-validation commands register through
registerEffectCommand(context, name, effect) in
src/activation/commands/*.ts. The effect runtime wraps each handler
so failures become typed Effect errors rather than unhandled promise
rejections, and the same effect value can compose with other features’
effects without ad-hoc try/catch orchestration. See
ADR-002 for the rationale.
A command-registration sanity test (src/activation/commands/__tests__/)
walks every contributes.commands entry and asserts one of two
things:
The command name is in the effect-registration table, or
The command name is in the validation-explorer allow-list.
Adding a command to package.json without registering it is
therefore a compile-or-test failure, not a silent runtime miss.