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

Validation: генерация Adventure Contract

Окружение#

Параметр Фактическое значение
Дата проверки 2026-07-25 (Asia/Ho_Chi_Minh)
Git snapshot 68582c97cb6b51804532cbd021290f07f4f74fa5; study files uncommitted
OS и hardware macOS 26.4 build 25E246, arm64
Runtime /usr/local/bin/node v22.14.0, --experimental-strip-types; TypeScript 7.0.2; @types/node 24.13.3
Внешние сервисы none
Входные данные prototype/fixtures/sci-fi-comedy.ts, original non-canonical fixture v1

Результаты по критериям#

ID Проверка Ожидалось Получено Evidence Результат
AC-01 Valid fixture compile 0 issues 0 issues, sci-fi genre preserved E-004, E-005 pass
AC-02 Compile preferences + draft twice Deep equality + same 64-char SHA-256 Equal contracts; hash 3b9c78e89119c4681f4e7570131f0f5d0b993b4e1d612c822bf473b577d2c21a E-004, E-005 pass
AC-03 Corrupt fact/character/scene/clock refs Stable issue codes missing_fact_ref, missing_character_ref, missing_scene_ref, missing_clock_ref E-004 pass
AC-04 Remove failure continuation/consequence Reject all violations failure_not_fail_forward, failure_without_consequence, exit_without_destination E-004 pass
AC-05 Graph walk Every scene/ending reachable Valid fixture accepted; graph validator active E-004 pass
AC-06 Inspect protected surfaces All five required surfaces protected facts, rules, map topology, visibility, endings present E-004 pass
AC-07 Inspect provenance Original, no borrowed IP, non-canonical true, false, false respectively E-004, E-006 pass
AC-08 Invalid host brief and planner draft Reject before compile Host codes rejected; missing draft fact ref reports missing_fact_ref; compile throws E-004, E-010 pass

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

RED по нужной причине:

node --experimental-strip-types --test prototype/adventure.test.ts

До создания implementation:

ERR_MODULE_NOT_FOUND
Cannot find module '.../prototype/adventure.ts'
tests 1
pass 0
fail 1

GREEN:

node --no-warnings --experimental-strip-types --test prototype/adventure.test.ts

Существенный вывод:

tests 7
pass 7
fail 0
duration_ms 171.484917

Execution verification:

node --no-warnings --experimental-strip-types prototype/demo.ts

Существенный вывод:

{
  "fixture": "The Orbiting Buffet Audit",
  "fixtureIsCanonical": false,
  "genre": "science-fiction comedy",
  "triggerCount": 14,
  "validationIssueCount": 0,
  "contractSha256": "3b9c78e89119c4681f4e7570131f0f5d0b993b4e1d612c822bf473b577d2c21a"
}

Scoped strict typecheck:

../../../node_modules/.bin/tsc --ignoreConfig --noEmit --strict \
  --noUncheckedIndexedAccess --exactOptionalPropertyTypes --target ES2024 \
  --module NodeNext --moduleResolution NodeNext --allowImportingTsExtensions \
  --rewriteRelativeImportExtensions --erasableSyntaxOnly --types node \
  prototype/*.ts prototype/fixtures/*.ts

Получено: exit 0, diagnostics отсутствуют.

Ошибки и нестабильность#

  • Первый node --test prototype/adventure.test.ts без strip flag упал с ERR_UNKNOWN_FILE_EXTENSION. Команда исправлена до meaningful RED.
  • RED для отдельного planner boundary упал на отсутствующем export sciFiComedyDraft; после реализации test corpus стал 7/7.
  • Node v22.14 печатает experimental warning без --no-warnings; behavior и exit code от warning не меняются.
  • Стохастики, network и provider variance отсутствуют.
  • TypeScript 7 требует --ignoreConfig, когда file list передан напрямую; scoped command использует этот явный режим.

Воспроизводимость#

Один и тот же агент повторил GREEN после source split и authority split и получил 7/7. Независимый разработчик или CI этот study пока не повторяли; это ограничение, не дополнительный pass.

Финальный исход#

  • Outcome: pass.
  • Обоснование: все AC-01–AC-08 выполнены; executable demo компилирует non-fantasy original fixture в deterministic validated graph.
  • Что результат не доказывает: художественное качество, real-session completion, LLM adherence, moderation, rights host content или production readiness.