# Validation: Flash LLM core evaluation ## Окружение | Параметр | Фактическое значение | |---|---| | Дата проверки | 2026-07-26, Asia/Ho_Chi_Minh | | Commit | `68582c97cb6b51804532cbd021290f07f4f74fa5`; dirty working tree | | OS и hardware | macOS 26.4 build 25E246, arm64 | | Runtime | Node.js 24.14.0; npm 11.9.0; TypeScript 7.0.2 | | Внешние сервисы | Comfy Cloud MCP public beta; OpenRouter partner node; Codex CLI 0.145.0 | | Входные данные | run-3 protocol revision 3; 12-cell matrix, seed 20260726, original fixtures | ## Результаты по критериям | ID | Проверка | Ожидалось | Получено | Evidence | Результат | |---|---|---|---|---|---| | AC-01 | Manifest/matrix/hash | 12 unique cells, fixed parameters and hashes | protocol revision 3; 12 prompts/workflows; logical manifest `a758d221…0ebfb8`; full preflight SHA `97805199…2d8f3` | `E-031` | `pass` | | AC-02 | Raw/telemetry audit | 12 raw responses with hashes; telemetry or explicit Unknown | 12/12 paid jobs ready, 0 failed; 12 valid JSON raw files + SHA-256; telemetry explicit Unknown 12/12 | `E-033`, `E-034` | `pass` | | AC-03 | Scenario contract gate | each model passes both languages for role pass | Qwen 1/2 и DeepSeek 1/2; обе RU cells fail, обе EN cells pass structural-only gate | `E-035`, `E-036` | `fail` | | AC-04 | Intent/rules gate | 4/4 cases per language, zero unsafe mutation, server roll only | обе модели 2/2 languages; каждый opaque-ID cell совпадает с hidden oracle и authoritative engine | `E-035`, `E-036` | `pass` | | AC-05 | Narration continuity/privacy gate | 2/2 outcomes per language, no leak/contradiction, language pass | deterministic: обе модели 1/2; agent semantic audit: Qwen 1/2, DeepSeek 0/2. Human review missing | `E-035`, `E-036` | `fail` | | AC-06 | Comparative outcome | at least one model passes all roles/languages for study pass | deterministic Qwen 4/6, DeepSeek 4/6; agent semantic Qwen 4/6, DeepSeek 3/6; ни одна модель не прошла bilingual 6/6 | `E-035`, `E-036` | `inconclusive` | | AC-07 | Spend control | live billing + approved soft cap + sequential deltas | user-authorized paid execution был одним 12-job batch; per-job balance checks отсутствуют, billing audit missing, credit delta Unknown | `E-032`–`E-034` | `not demonstrated` | ## Команды проверки Для preregistered preflight: ```bash node --test RnD/technical/2026-07-26-flash-llm-core-evaluation/prototype/run.test.ts node RnD/technical/2026-07-26-flash-llm-core-evaluation/prototype/run.ts prepare npm run typecheck npm run validate:technical ``` Для фактически сохранённых run-1 outputs default CLI: ```bash node RnD/technical/2026-07-26-flash-llm-core-evaluation/prototype/run.ts evaluate npm run check:all ``` Run-2 и run-3 оценивались exported function с отдельными raw/scorecard paths. Актуальный run-3 вызов: ```bash node --input-type=module -e ' import { evaluateSavedResponses } from "./RnD/technical/2026-07-26-flash-llm-core-evaluation/prototype/run.ts"; await evaluateSavedResponses( "RnD/technical/2026-07-26-flash-llm-core-evaluation/artifacts/raw/run-3", "RnD/technical/2026-07-26-flash-llm-core-evaluation/artifacts/derived/run-3-scorecard.json", ); ' ``` Фактическая execution/audit evidence: - Historical run-1/run-2 results сохранены в `RESEARCH.md`; они не являются текущим run-3 model-selection evidence. - Parallel OAuth dry-run получил refresh-token race. Sequential retry прошёл 12/12 graphs, 0 failed, 0 credits. - Paid execution: один `submit_batch`, ready 12, pending 0, failed 0. - Run-3 evaluate: observed 12/12, missing 0; telemetry Unknown 12/12; deterministic Qwen 4/6, DeepSeek 4/6; outcome `inconclusive`. - Evaluator audit первоначально сохранил initial scorecard SHA/summary, но не отдельную полную копию. После changes review полные serialized bytes восстановлены в `run-3-scorecard-pre-amendment.json`; SHA-256 совпадает с hash до regeneration. Это reconstruction, не original write-once snapshot. Raw SHA-256 заморожены. RED 18/2 expected failures, GREEN 20/0; provider rerun не выполнялся. - Independent agent semantic audit: Qwen 4/6, DeepSeek 3/6. Это не human naturalness review. Fresh final verification выполнена после artifact/doc sync: - `npm run check:all` завершился с exit 0: site 5/5, technical 61/61, strict typecheck, 11 studies без failures, build 101 docs, validation 272 HTML pages/28 099 local links/3 493 anchors/55 presentation links/0 failures, Bun 2/2; - live-target probe: reuse `http://127.0.0.1:8788` сначала вернул connection failure, затем документированный `npm run dev` поднял local preview; - isolated Playwright desktop flow выполнил два последовательных действия: library → README → RESEARCH. После каждого клика сделан новый snapshot; README показывает `Status: complete`, `Outcome: inconclusive`, console errors/warnings = 0; - на 390×844 RESEARCH имеет `document.scrollWidth=390` при `innerWidth=390`; wide table остаётся внутри `.table-scroll` с `clientWidth=356`, `scrollWidth=672`, `overflow-x:auto`. После mobile click RESEARCH → README новый snapshot показывает тот же итог и `document.scrollWidth=390`; - bounded `impeccable detect --json` для built README/RESEARCH завершился. Findings advisory/non-blocking: generated-shell color, em-dash prose и порядковые evidence codes; verification blocker отсутствует. ## Метрики | Метрика | Qwen3.6 Flash | DeepSeek V4 Flash | Допуск | Число прогонов | Вывод | |---|---:|---:|---:|---:|---| | Structured JSON artifacts | 6/6 | 6/6 | report exact rate | 6 cells/model | Формат не равен schema/role pass | | Scenario structural pass, languages | 1/2 | 1/2 | 2/2 | 2 cells/model | Обе RU cells fail; EN pass structural only | | Intent role pass, languages | 2/2 | 2/2 | 2/2 | 2 cells/model | Оба: 8/8 oracle cases across languages | | Narration deterministic cells | 1/2 | 1/2 | 2/2 | 2 cells/model | Каждая модель fail в одном языке | | Deterministic core | fail, 4/6 | fail, 4/6 | all 6 cells | 1 run-3 series | Ни одна модель не прошла 6/6 | | Agent semantic audit | 4/6 | 3/6 | descriptive second axis | 6 cells/model | Не human review; Deep RU narration additional fail | | Human language score | Unknown | Unknown | 2 per output for quality claim | 4 raw outputs | Human review не выполнена | | Run-3 job failures | 0 | 0 | descriptive, no invented threshold | 6 paid jobs/model | Batch 12/12 ready | | Latency p50/p95 | Unknown | Unknown | descriptive in one smoke | 6 cells/model | Telemetry Unknown 12/12 | | Input/output tokens | Unknown | Unknown | provider telemetry or `null` | 6 cells/model | Telemetry Unknown 12/12 | | Credit delta | Unknown | Unknown | within approved soft cap | 6 cells/model | Live billing status unavailable | ## Ошибки и нестабильность Три бесплатных billing probes не дошли до `get_billing_status`: 1. streamable HTTP initialization получил `GET returned HTTP 400`, затем connection closed during initialize; 2. изолированный retry завершился `timed out awaiting tools/list after 30s`. 3. после успешного повторного `codex mcp login comfy-cloud` fresh child снова получил HTTP 400/init failure, а billing method отсутствовал: `TypeError: tools.mcp__comfy_cloud__get_billing_status is not a function`. Это было transport/init failure, а не нулевой баланс. Позже generation tools официального MCP стали доступны и run-1 был выполнен с явным согласием пользователя, но `get_billing_status` в доступном toolset отсутствует. Фактический credit delta поэтому Unknown, а не ноль. В run-1 первый Qwen RU intent job не зарегистрировался. Подтверждённый retry завершился `job.empty_output`; пустой raw artifact и error сохранены вместо синтетического ответа. Остальные 11 ячеек дали raw provider output. Measurement audit после run-1 обнаружил два under-specified prompts и одну группу false negatives в RU narration matcher. Intent prompt не называл exact `CommandProposal`; scenario prompt не задавал array/null requirements; JavaScript `\w` и неполный список глагольных форм не покрывали корректную кириллическую narration. Исправления прошли RED/green regression tests. Критерии и v1 artifacts не переписывались: изменения оформлены датированным protocol amendment до correction calls. Historical correction run-2 не имел provider/job failures, а его scorer зафиксировал два Qwen scenario schema failures: 1. RU: `storyFacts/1/visibility/kind` не соответствовал допустимому union и для выбранной ветки отсутствовал `playerIds`; 2. EN: `clocks/0/whenFull` должен быть string. Позднейший independent audit обнаружил в revision 2 answer leakage и scorer false positives, поэтому прежний вывод о DeepSeek 6/6 и practical candidate считается superseded, а не текущим. Run-3 operational anomaly: parallel OAuth dry-run столкнулся с refresh-token race. Dry-run повторили строго последовательно; он прошёл 12/12 graphs. Paid execution был одним 12-job batch без per-job balance checks, поэтому это отклонение от AC-07, а не доказательство sequential billing control. Текущие run-3 model failures: 1. обе RU scenario cells fail structural contract: Qwen не указал `playerIds` для `players` visibility; DeepSeek использовал human-readable Russian `locationId` вместо lowercase ASCII kebab-case; 2. Qwen RU narration правильно отражает clock advancement, но выдумывает завершённую служебную запись; 3. DeepSeek EN narration использует допустимый success synonym, но выдумывает ещё одну улику; 4. agent semantic audit дополнительно отклоняет DeepSeek RU narration: «Юноша (Juno)» приписывает возраст и гендер, отсутствующие в projection. Post-run evaluator audit обнаружил bounded vocabulary false negatives. Initial scorecard SHA и diagnostic summary были записаны в audit до regeneration. После changes review полная byte-exact версия восстановлена как `artifacts/derived/run-3-scorecard-pre-amendment.json`; её SHA-256 `08236755…bbf2665` совпадает с исходно записанным hash. Это reconstruction, не original write-once snapshot. Raw files не менялись; provider rerun не было. После RED/GREEN scorer amendment canonical scorecard пересоздан. Residual measurement limits material: scenario compiler проверяет structure, но не исполняет free-text `exit.when` и не оценивает coherence. Privacy gate ищет exact hidden tokens, но не translated/paraphrased leakage. Open-ended grounding hallucinations нельзя закрыть blacklist regex. Первый полный `check:all` также выявил, что prompt templates с расширением `.md` ошибочно попадали в research-site renderer и оставляли unresolved double-brace placeholders. Templates переименованы в `.txt`; повторный полный gate прошёл. Эта неуспешная попытка сохранена в `RESEARCH.md`, а не удалена из истории. ## Воспроизводимость Run-1 и run-2 artifacts сохранены как historical и не пересчитаны v3 evaluator. Run-3 имеет отдельные protocol, preflight, job log, raw root, telemetry, scorecard и evaluator audit. Все 12 provider cells выполнены заново, без reuse prior outputs. Manifest schema v2 включает `protocolRevision: 3`. Logical manifest: `a758d221a63eb2f2600af570d8431764597bd8c3ae75d4960d94d8963e0ebfb8`. Полный preflight-v3 manifest file SHA, дополнительно связывающий все prompt и workflow hashes: `9780519911a6c7fc2ed3d6efacf292899a321d8156c0c36ec71ff3c553c2d8f3`. Evaluator audit сохраняет все 12 raw SHA-256 и связывает два полных scorecard: byte-exact reconstructed pre-amendment `run-3-scorecard-pre-amendment.json` с SHA-256 `08236755…bbf2665` и canonical post-amendment `run-3-scorecard.json` с SHA-256 `f9ac7092…e181408`. Raw files остались byte-identical, provider rerun не выполнялся. Provider output остаётся stochastic даже при fixed seed, если backend не гарантирует deterministic sampling. ## Финальный исход - **Outcome:** `inconclusive`. - **Model comparison:** practical winner отсутствует. Deterministic Qwen 4/6, DeepSeek 4/6; agent semantic audit Qwen 4/6, DeepSeek 3/6. Ни одна модель не прошла bilingual 6/6. - **Почему strict inconclusive:** human naturalness review отсутствует 0/4, billing audit missing, credit delta Unknown. Telemetry Unknown 12/12. - **Что результат не доказывает:** production reliability, all-genre/all-language quality, executable/coherent scenario branches, paraphrase-safe privacy, long-session continuity или authoring/runtime interop.