# Validation: strict TypeScript runtime and toolchain ## Окружение | Параметр | Фактическое значение | |---|---| | Дата проверки | 2026-07-25 (Asia/Ho_Chi_Minh) | | Commit | `68582c97cb6b51804532cbd021290f07f4f74fa5`; проверялся dirty working tree, новый snapshot не создавался | | OS и hardware | macOS 26.4 build 25E246, arm64 | | Runtime | Node.js 24.14.0; npm 11.9.0; Bun 1.3.6; Bun-reported Node compatibility 24.3.0 | | Compiler | TypeScript 7.0.2; `@types/node` 24.13.3 | | Внешние сервисы | none; 0 LLM/API calls | | Входные данные | root `package.json`, `package-lock.json`, наличие `bun.lock`/`bun.lockb` | ## Результаты по критериям | ID | Проверка | Ожидалось | Получено | Evidence | Результат | |---|---|---|---|---|---| | AC-01 | Strict compiler gate | Exit 0 | Exit 0, TypeScript 7.0.2 | `E-028` | `pass` | | AC-02 | Node unit + CLI | 2 tests; verifier `ok: true` | 2 pass/0 fail; 13 findings passed; Node 24.14.0 | `E-029`, `E-030` | `pass` | | AC-03 | Bun unit + CLI, single-lock invariant | 2 tests; verifier `ok: true`; no Bun lock | 2 pass/0 fail; 13 findings passed; `bun.lock*` absent | `E-031`, `E-032` | `pass` | | AC-04 | npm metadata | Exact manifest/lock pins | npm@11.9.0, lock v3, 4/4 package pins matched manifest and lock | `E-009`, `E-030`, `E-031` | `pass` | | AC-05 | Decision matrix | Все обязательные категории | 13 rows; versions, decision, trigger и evidence заполнены | `RESEARCH.md` | `pass` | | AC-06 | No paid calls / honest unknowns | 0 calls; model metrics Unknown | 0 calls; quality/latency/cost/cache-hit оставлены Unknown | `E-019`–`E-026` | `pass` | ## Команды проверки Все команды ниже фактически выполнены из корня репозитория. ### 1. RED ```bash node --test RnD/technical/2026-07-25-typescript-runtime-toolchain/prototype/verify-toolchain.test.ts ``` До создания production-файла: exit 1, `ERR_MODULE_NOT_FOUND: .../verify-toolchain.ts`. Это ожидаемая причина RED, а не syntax/config failure (`E-027`). ### 2. Strict typecheck ```bash ./node_modules/.bin/tsc -p RnD/technical/2026-07-25-typescript-runtime-toolchain/prototype/tsconfig.json ``` Exit 0, без diagnostics (`E-028`). ### 3. Node tests ```bash node --test RnD/technical/2026-07-25-typescript-runtime-toolchain/prototype/verify-toolchain.test.ts ``` Существенный output: ```text tests 2 pass 2 fail 0 ``` ### 4. Node runtime ```bash node RnD/technical/2026-07-25-typescript-runtime-toolchain/prototype/verify-toolchain.ts --expect-runtime=node ``` Существенный output: ```json { "ok": true, "measured": { "runtime": "node", "node": "24.14.0", "bun": null } } ``` Полный CLI output содержал 13/13 successful findings. ### 5. Bun runtime ```bash bun run RnD/technical/2026-07-25-typescript-runtime-toolchain/prototype/verify-toolchain.ts --expect-runtime=bun ``` Существенный output: ```json { "ok": true, "measured": { "runtime": "bun", "node": "24.3.0", "bun": "1.3.6" } } ``` Полный CLI output содержал 13/13 successful findings, включая `single-lockfile`. ### 6. Bun tests ```bash bun test RnD/technical/2026-07-25-typescript-runtime-toolchain/prototype/verify-toolchain.test.ts ``` Существенный output: ```text 2 pass 0 fail ``` ### 7. Reusable Bun companion gate ```bash npm run check:bun ``` Команда запускает Bun verifier и те же 2 Bun tests; exit 0. Полный Node+Bun путь доступен как `npm run check:all`. ## Ошибки и нестабильность - Единственная ошибка — намеренный TDD RED до реализации (`E-027`). - Повторных прогонов для оценки timing variance не было: latency/performance не являются критерием этого исследования. - Финальный `npm run check` прошёл: 4 site tests, 41 technical tests, strict typecheck, 10-study validator, 96-document build и rendered-link validation с 0 failures. ## Воспроизводимость Основной сценарий повторён двумя runtime на одной машине, но независимого повтора на другом checkout/OS не было. Для закрытия ограничения нужен clean Linux runner: ```bash npm ci ./node_modules/.bin/tsc -p RnD/technical/2026-07-25-typescript-runtime-toolchain/prototype/tsconfig.json node --test RnD/technical/2026-07-25-typescript-runtime-toolchain/prototype/verify-toolchain.test.ts node RnD/technical/2026-07-25-typescript-runtime-toolchain/prototype/verify-toolchain.ts --expect-runtime=node ``` Bun smoke добавляется только на runner с явно установленной Bun 1.3.6. ## Финальный исход - **Outcome:** `pass` - **Обоснование:** все шесть обязательных критериев выполнены; ключевое доказательство — strict compiler exit 0 и successful execution одного файла в Node и Bun при отсутствии второго lockfile (`E-028`–`E-032`). - **Что результат не доказывает:** полную Bun compatibility будущего приложения, production event-store reliability, LLM quality/cost/latency, provider structured-output correctness на конкретной модели или cache economics.