# Solution: Strong LLM core escalation ## Архитектура измерения ```text frozen Flash v3 prompt + exact model/language/role/seed -> OpenRouterLLMNode -> SaveText -> retained raw bytes -> frozen TypeScript role scorer -> explicit-model-metadata-hidden semantic review -> preregistered selector / full-role verdict ``` Модель остаётся untrusted proposal/narration component. Rules, RNG, commit, canonical state и audience projection не выполняются внутри LLM. ## Runtime - Node.js/npm — основной executable path. - Bun — compatibility gate, без второго lockfile. - Comfy Cloud hosted MCP `0.32.0`, production. - `OpenRouterLLMNode` и `SaveText`. - Секреты и account identifiers в artifacts не сохраняются. ## Frozen inputs Новый harness импортирует `buildRolePrompt` и три scorer functions из `2026-07-26-flash-llm-core-evaluation`, но не редактирует его manifest, evaluator, tests или raw artifacts. Все шесть generated prompts проверяются по preregistered SHA-256 до materialization workflows. Generation policy: - seed задаётся для каждой cell; - DeepSeek: `model.reasoning_effort = "off"`; - Mistral Large: parameter not applicable, потому что live node catalog классифицирует его как non-reasoning model; - output token cap отсутствует в `OpenRouterLLMNode` и записан как Unknown control, а не выдуманный лимит. ## Локальная подготовка screening Из корня репозитория: ```bash npm run test:technical npm run typecheck node RnD/technical/2026-07-26-strong-llm-core-escalation/prototype/run.ts \ prepare-screening \ RnD/technical/2026-07-26-strong-llm-core-escalation/artifacts/derived/catalog-preflight.json \ RnD/technical/2026-07-26-strong-llm-core-escalation/artifacts/derived/screening-preflight ``` Команда materializes 8 API-format workflows и manifest только после fail-closed проверки exact catalog evidence против `protocol-v1.json` + `protocol-v1-identity.json`. Если output directory уже не пуст, команда останавливается до записи и не перезаписывает исторический run. ## Provider execution 1. Каждый из 8 workflows проходит `submit_workflow(dry_run=true)`. 2. После 8/8 preflight pass отправляется один разрешённый `submit_batch`. 3. `batch_id` и все job IDs сохраняются до ожидания. 4. `wait_for_batch` подтверждает `8 ready / 0 pending / 0 failed`. 5. `get_batch_output` возвращает bounded batch download command. 6. Raw outputs сохраняются под request IDs; hashes и job binding записываются отдельно. Batch — transport optimization, не один multi-node generation: каждый item содержит один model call и один output node. ## Scoring и selector ```bash node RnD/technical/2026-07-26-strong-llm-core-escalation/prototype/run.ts \ score-screening \ RnD/technical/2026-07-26-strong-llm-core-escalation/artifacts/raw/screening \ RnD/technical/2026-07-26-strong-llm-core-escalation/artifacts/derived/screening-scorecard.json ``` Semantic review packet заменяет model IDs и request IDs независимыми перемешанными `cell-*` aliases. Private map фиксирует alias, raw SHA, prompt, language, role и seed до review; reviewer получает только временный packet. Заявление ограничено `explicit_model_metadata_hidden`: это не криптографическая анонимность и не human review. После review unblind join проверяет exact alias coverage, raw SHA, language/role binding, manifest/rubric hashes и соединяет оценки с frozen deterministic scorecard. Selector принимает только этот bound evidence. ```bash node RnD/technical/2026-07-26-strong-llm-core-escalation/prototype/run.ts \ build-screening-evidence \ --screening-scorecard SCORECARD \ --screening-semantic-review REVIEW \ --screening-private-map MAP \ --output EVIDENCE \ --assert-existing RECORDED_EVIDENCE node RnD/technical/2026-07-26-strong-llm-core-escalation/prototype/run.ts \ select-finalist \ --screening-scorecard SCORECARD \ --screening-semantic-review REVIEW \ --screening-private-map MAP \ --evidence-output EVIDENCE \ --selection-output SELECTION \ --assert-existing-evidence RECORDED_EVIDENCE ``` `--assert-existing` и `--assert-existing-evidence` требуют byte-for-byte совпадения пересобранного evidence с сохранённым artifact. Public TypeScript API использует opaque verified evidence; JSON clone или type cast отклоняются runtime-проверкой. ## Подготовка finalist ```bash node RnD/technical/2026-07-26-strong-llm-core-escalation/prototype/run.ts \ prepare-finalist \ --selection SELECTION \ --screening-scorecard SCREENING_SCORECARD \ --screening-semantic-review SCREENING_REVIEW \ --screening-private-map SCREENING_MAP \ --assert-existing-evidence RECORDED_EVIDENCE \ --catalog-preflight CATALOG \ --output-root FINALIST_PREFLIGHT ``` Harness сначала заново строит verified screening evidence из трёх source artifacts, затем пересчитывает selection и связывает SHA. Подменённый winner, foreign manifest/rubric, alias/raw drift, missing review или неполная matrix отклоняются до записи finalist workflows. Finalist execution повторяет тот же dry-run -> batch -> status -> output порядок для 18 новых cells. После сохранения 18 raw responses итоговый scorer и blinded semantic packet запускаются отдельными именованными командами: ```bash node RnD/technical/2026-07-26-strong-llm-core-escalation/prototype/run.ts \ score-finalist \ --selection SELECTION \ --screening-scorecard SCREENING_SCORECARD \ --screening-semantic-review SCREENING_REVIEW \ --screening-private-map SCREENING_MAP \ --assert-existing-evidence RECORDED_EVIDENCE \ --raw-root RAW \ --output SCORECARD node RnD/technical/2026-07-26-strong-llm-core-escalation/prototype/run.ts \ prepare-finalist-review SCORECARD \ --raw-root RAW \ --review-packet-output REVIEW \ --mapping-output MAPPING node RnD/technical/2026-07-26-strong-llm-core-escalation/prototype/run.ts \ score-finalist \ --selection SELECTION \ --screening-scorecard SCREENING_SCORECARD \ --screening-semantic-review SCREENING_REVIEW \ --screening-private-map SCREENING_MAP \ --assert-existing-evidence RECORDED_EVIDENCE \ --raw-root RAW \ --output REVIEWED_SCORECARD \ --semantic-evidence REVIEW \ --semantic-mapping MAPPING ``` Все uppercase values выше — явные caller-provided paths, а не предполагаемые имена файлов. В фактическом run `finalist-selection.json` содержит `status: "no_eligible_candidate"` и `selectedModelId: null`. Поэтому команда `prepare-finalist` обязана fail closed, `finalist-preflight/` не создаётся, а paid finalist calls остаются равны нулю. Это ожидаемый terminal path исследования, а не незавершённый запуск. ## Фактические artifacts - `protocol-v1.json` и `protocol-v1-identity.json` фиксируют protocol SHA до paid calls. - `screening-jobs.json` и `screening-outputs.json` связывают request IDs, Comfy job IDs, source metadata и raw SHA. - `screening-telemetry.json` хранит batch interval и явные `null`/Unknown для недоступных latency/token/retry/credit measurements. - `screening-scorecard.json` содержит frozen deterministic verdicts. - `semantic-audit-private-map.json`, `screening-semantic-review.json` и `screening-evidence.json` образуют audit/unblind evidence chain. - `finalist-selection.json` воспроизводимо завершает selector без winner. - `artifact-audit.json` фиксирует итог 40 cross-artifact consistency checks.