Skip to content

feat(router): PATTERNS v2 vendor-canon integration — hook stamp, --patterns CLI, synthesis protocol, brief templates [t_234de1e7] - #60

Open
maximalang wants to merge 3 commits into
codex/company-osfrom
feat/patterns-v2-t_234de1e7
Open

maximalang wants to merge 3 commits into
codex/company-osfrom
feat/patterns-v2-t_234de1e7

Conversation

@maximalang

Copy link
Copy Markdown
Owner

PATTERNS v2 + интеграция во все поверхности диспатча [t_234de1e7]

Stacked на PR #58 (ROUTES v3, head 45fa2c0) — merge order: #58 → этот PR. Версия 1.2.41 (1.2.37–1.2.40 заняты открытыми PR #56/#57/#58/#59).

Что сделано

  1. PATTERNS v2 в scripts/model_router.py (VERSION 3.1.0, rules_sha ed86d983fcf6 → 64d839805a07): 9 записей, каждая — 6-строчный блок (как брифовать / требовать строго / страховка / анти-паттерн / канонические настройки / источники), СТРОГО по mapping-таблице PATTERNS-SOURCES-v2.md (research t_108caa9b, сверка 2026-10-04, sha256 76e68e7c…, 33 официальных URL); каждая запись traceable к вендорной цитате, флот-канон помечен. Новые модели: deepseek-v4-flash (§8; паттерн есть, в ROUTES НЕ входит — LADDER правило 1), gpt-5.6-terra — маркер «только флот-канон» сохранён + каталог-верификация t_4e47fef0. ROUTES/engine не тронуты (линия родителя).
  2. Hook-штамп: router_bridge.apply_override — первая строка формата v1.2.36 сохранена, добавлен блок PATTERN v2 (<model>): + 6 строк. JSON-контракт hook не изменён (decision.pattern — строка). E2E-батарея tests/test_v1236_router_hook.py 25/25 (пин ROUTER_LIVE_SHA переставлен на v2-артефакт e4770503…).
  3. Меж-агентные поверхности: новый CLI --patterns [MODEL] — детерминированный JSON-контракт (patterns_version/source/rules_sha/models/patterns; неизвестная модель → exit 2; stdlib-only, 0 сети). Контракт задокументирован в ROUTING.md §Provenance; шаблоны templates/BRAIN-BRIEF.md, templates/HANDS-DELIVERABLE.md, templates/DELEGATION-CONTEXT.md — каждый агентный бриф несёт официальный паттерн целевой модели.
  4. SYNTHESIS-PROTOCOL.md (program-docs: docs/fleet-ops/model-routing-20261003/): intake→декомпозиция→синтез в более широкую профессиональную форму→вопросы одной формой→диспатч с паттерном модели→отчёт человеческим языком; расширяет kanban-card-authoring skill (пропатчен company 04.10).
  5. ROUTING.md: раздел «Provenance паттернов» — только vendor-цитаты, дата сверки 2026-10-04, машина-контракт --patterns и потребители; §Паттерны и §CLI синхронизированы с v2.

Evidence

  • python scripts/model_router.py --selftest → ALL PASS exit 0: 18 ROUTES-кейсов + 5 новых v2-паттерн-кейсов + 9 структурных проверок.
  • --patterns демонстрация (kimi-k3 целиком, all-models, unknown→exit 2, детерминизм cmp) — в ACCEPTANCE-вложении карты.
  • uv run --frozen pytest tests/ -q → 913 passed; worker-environment прогон — тот же набор.
  • uv lock --check ok; compileall ok; drift-check {"missing": [], "ok": true}; fleet-policy --version {"version": "1.2.41"}.
  • build-bundle 85 файлов / verify-bundle ok:true (84); uv build → sdist+wheel 1.2.41.
  • sha256 scripts/model_router.py (LF): e47705039a2669de7791ae550326613718d71bb06062280273ed9b712eb09023, 477 строк.

Deviations (на ack company/owner)

  • Лимит ≤320 строк из карты несовместим с каноном: байт-идентичная v3-копия (QA 40/40) уже 401 строка; PATTERNS v2 (9 моделей × 6 слоёв с цитатами) доводит файл до 477. Родитель t_698a054c флаговал это как hotspot («company must reconcile»); сохранена байтовая преемственность канона, лимит интерпретирован как бюджет PATTERNS-блока (блок ≈90 строк ≤320). Требуется явный ack.
  • Live-активация не выполнялась (owner-gate родителя: live сейчас v2.2, канон v3 — восстановление отдельным решением); этот PR — репо-канон.
  • deepseek-v4-flash добавлен только в PATTERNS (в ROUTES не входит — bans карты запрещают менять ROUTES-логику).

Next

Card: t_234de1e7. Parents: t_108caa9b, t_698a054c, t_9eb08cc4.

…ng, catalog-verified terra rung [t_698a054c]

scripts/model_router.py = byte-identical QA-passed v3 router
(sha256 5d24308d8057b62b728dde0196ae61062b7581d2ad46564aee6941408e9be2ae,
401 lines, VERSION 3.0.0, engine v4, rules_sha ed86d983fcf6; selftest:
18 cases + 7 structural checks, exit 0, 0 network). Delivered by t_91e8ce45
(fleet-ops board), independent QA t_8c502715 verdict 40/40 PASS against this
exact sha. Repo copy was frozen at v2.2 in PR #55 (d5c15f3) and the
activation apply of 06.10 03:48 copied that stale v2.2 over the live v3;
this PR restores repo==canon parity for the v1.2.36 router line.

Docs (synced with --print-rules, sha256 in parentheses):
- ROUTING.md v3 (c42fb7bed85c41b1b56df5581a1d2da3fbb43e69b141bc3b2b9f9e4bd51d3aa7)
- ROUTES-V3-CHANGELOG.md, v2.2->v3 diff + evidence (7c1330dc465bc02c844df5d82274ad6dc65f15c9022443649e5e4d7edb12f021)
- LADDER-PROVIDERS.md: + terra catalog verification note (t_4e47fef0,
  05.10.2026, HTTP 200 both pool rows, exact id gpt-5.6-terra present)

v3 substance: T1-only rails (custom/zai/openai-codex); provider diversity
(adjacent different, <=2 per provider, first-two not same-provider,
strategic exempt); GPT tiering (sol strategic+review-backup, astra
manual-pin only, luna/terra economical rungs); new classes brief/creative
(owner directive 04.10); terra rung catalog-verified, brief/creative only,
never top-2; R7 all-rails-down degradation to PROFILE_DEFAULT with explicit
degrade line; routes_version field added to card JSON (additive, hook
contract of SPEC v5.1 intact).

Live-file replacement stays behind the owner gate (QA PASS exists;
decision pending) — this PR changes repo copy only.
- version pins 1.2.36 -> 1.2.39 (pyproject.toml, root plugin.yaml,
  integrations plugin.yaml, src/fleet_policy/__init__.py, uv.lock,
  tests/test_hardening_v121.py); 1.2.37/1.2.38 are claimed by open
  PRs #56/#57, so the next free version is taken per the collision rule.
- tests/test_v1236_router_hook.py: ROUTER_LIVE_SHA pin follows the
  canonical router bytes (v2.2 1ae2e34d... -> v3 5d24308d...).
- CHANGELOG.md: new [1.2.39] section documenting the ROUTES v3 repo copy.

Local CI rehearsal on this tree: pytest tests/ 913 passed;
uv lock --check OK; compileall OK; drift-check ok:true;
build-bundle + verify-bundle ok:true (84 files); fleet-policy --version
1.2.39; router selftest on the exact blob ALL PASS (18 cases + 7
structural, exit 0).
… --patterns CLI, hook stamp v2 block, synthesis protocol + brief templates [t_234de1e7]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant