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.