RnD · Линия доказательств Technical R&D
Каталог и оглавление
TECH.DOC RnD/technical/2026-07-25-typescript-runtime-toolchain/VALIDATION.md raw.md ->

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-019E-026 pass

Команды проверки#

Все команды ниже фактически выполнены из корня репозитория.

1. RED#

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#

./node_modules/.bin/tsc -p RnD/technical/2026-07-25-typescript-runtime-toolchain/prototype/tsconfig.json

Exit 0, без diagnostics (E-028).

3. Node tests#

node --test RnD/technical/2026-07-25-typescript-runtime-toolchain/prototype/verify-toolchain.test.ts

Существенный output:

tests 2
pass 2
fail 0

4. Node runtime#

node RnD/technical/2026-07-25-typescript-runtime-toolchain/prototype/verify-toolchain.ts --expect-runtime=node

Существенный output:

{
  "ok": true,
  "measured": {
    "runtime": "node",
    "node": "24.14.0",
    "bun": null
  }
}

Полный CLI output содержал 13/13 successful findings.

5. Bun runtime#

bun run RnD/technical/2026-07-25-typescript-runtime-toolchain/prototype/verify-toolchain.ts --expect-runtime=bun

Существенный output:

{
  "ok": true,
  "measured": {
    "runtime": "bun",
    "node": "24.3.0",
    "bun": "1.3.6"
  }
}

Полный CLI output содержал 13/13 successful findings, включая single-lockfile.

6. Bun tests#

bun test RnD/technical/2026-07-25-typescript-runtime-toolchain/prototype/verify-toolchain.test.ts

Существенный output:

2 pass
0 fail

7. Reusable Bun companion gate#

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:

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-028E-032).
  • Что результат не доказывает: полную Bun compatibility будущего приложения, production event-store reliability, LLM quality/cost/latency, provider structured-output correctness на конкретной модели или cache economics.