From bf97573dc5ab0118a4591321ed36b71592c165d0 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 17 Sep 2026 13:34:13 +0000 Subject: [PATCH] comments: the two references to the command-vocabulary gate name its check module, not the deleted script MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `src/hooks/useEngineLifecycle.ts` and `src/types/engine.ts` each explain that this client does not re-declare the engine command vocabulary because a gate in the superproject asserts set equality against `coderoast-server`'s `command_catalog.hpp`. Both named that gate as `scripts/command_vocabulary_lint.py`, a file that was DELETED in the superproject on 2026-09-17 when the gate became the `pharos check` module `scripts/pharos/checks/command_vocabulary.py` (superproject plan row DN-108.P1.2 — every gate becomes a check module, DN-108.D2, and a module is never run by path). Both comments now name the one spelling an agent or a desk types, `pharos check --module command_vocabulary`. Vocabulary only: no TypeScript changes, no behaviour changes, and the point both comments make is unchanged — the gate is deliberately NOT in this repository's suite, because only a full workspace checkout holds both sides of the seam, and the vitest arm that tried to reach across the repository boundary threw ENOENT on every run for a month while the pipeline reported green. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01DgF1dGH16hPwX7aaaKguWw --- src/hooks/useEngineLifecycle.ts | 5 +++-- src/types/engine.ts | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/hooks/useEngineLifecycle.ts b/src/hooks/useEngineLifecycle.ts index f6cfd8b..b508074 100644 --- a/src/hooks/useEngineLifecycle.ts +++ b/src/hooks/useEngineLifecycle.ts @@ -25,8 +25,9 @@ interface EngineLifecycleOptions { * – the live engine commands (W4/D7: the prose list that used to be spelled out here is * DELETED, not updated — a hand-maintained copy of the vocabulary has no checker and * rots. The server's command_catalog.hpp is the vocabulary, and the superproject's - * scripts/command_vocabulary_lint.py reds if this client sends a token naming no row - * in it, or if the set it sends stops equalling that catalog's own kWebUiCommands. + * `pharos check --module command_vocabulary` reds if this client sends a token naming + * no row in it, or if the set it sends stops equalling that catalog's own + * kWebUiCommands. * The gate is NOT in this repo's suite, and that is deliberate: a vitest arm here * reached the catalog by relative path, this repo's CI checks out one repo, and it * threw ENOENT on every run for a month while the pipeline reported green. Only the diff --git a/src/types/engine.ts b/src/types/engine.ts index d802d58..a0ed609 100644 --- a/src/types/engine.ts +++ b/src/types/engine.ts @@ -79,8 +79,8 @@ export interface EngineSnapshot { * * CLOSED ON PURPOSE. The vocabulary is declared once, in `coderoast-server`'s * `command_catalog.hpp` (`kWebUiCommands` is the subset this client is allowed to send), - * and the superproject's `scripts/command_vocabulary_lint.py` asserts set equality in both - * directions across the language gap. This union is the TypeScript side of that seam: it + * and the superproject's `command_vocabulary` check module (`pharos check --module + * command_vocabulary`) asserts set equality in both directions across the language gap. This union is the TypeScript side of that seam: it * does not re-declare the vocabulary's FACTS (permission key, deterministic-mode * eligibility, routing class — those stay in the catalog), only the shapes this client * spells, so that anything consuming a command exhaustively — the refusal label map in