Repository navigation
Company OS: deterministic next-bet controller v1 (shadow mode, 1.2.7) - #12
maximalang wants to merge 3 commits into
Conversation
Pure reducer over board snapshots: ACTIONABLE_IDLE fixed rule, decision_type execute_bet|collect_evidence|no_action, no invented RUB, deterministic content-hashed decisions with append-only idempotent persistence in the events store, read-only live adapter over the official kanban CLI restricted to canonical boards rr-team and seo-site. Shadow mode mutates nothing. Tests: 19 cases incl. determinism, ties, zero-new-record repeat, fail-closed input, CLI end-to-end.
…, shadow only Formula score_rub=(E+A)*conf*freshness-C (C undiscounted; freshness by OLDEST evidence ref, floor 0.125 at 90d, requires_reverification beyond), candidate classes EXECUTABLE/EVIDENCE_GAP/BLOCKED_BUDGET/REJECTED, full deterministic tie-break order (score, cost, confidence, oldest age, source_task_id), budget guardrails 10k/op + 30k/month/project, anti-gaming (double-count zeroing, avoided-loss cap, mechanism dedupe, score_components tamper rejection), nonzero kill threshold incl. C=0, execute gate requires fresh authoritative metric + non-gap economics, machine-readable audit block. Contracts: ECONOMICS_SCORING_CONTRACT_V3 (t_a92701e0, sha256 ed5b0848...), DEMAND_METRIC_SOURCE_CONTRACT_V3 (t_dbb4235b, sha256 7922ee61...), QA contract_review_v3=pass (t_7ee1d606). Supersedes econ-score/v1 semantics. v1 battery/fixture retained as stubs (no deletions); v3 battery tests/test_controller_v3.py (29 tests) + fixture controller_shadow_v3.json. Shadow guarantees unchanged: no mutations, append-only events store, idempotent decision_id (nbc2-), Telegram-only digest. Version stays 1.2.7.
|
Triage t_0278daff (22.09): verdict = KEEP OPEN — not on trunk, head already re-derived from econ-score/v3, but the PR's own merge gate (independent v3 compatibility review + explicit company unblock) is still outstanding. Evidence: trunk src/fleet_policy has no controller.py and cli.py carries no controller subcommand (grep → 0 matches). Head 6981b7e = "controller: re-derive reducer from exact v3 contracts (econ-score/v3), shadow only" — the supersession warning in the PR body (v1-era formula) is addressed at head. Diff vs trunk 309c72f = 13 files, +1923/−6 (controller.py 1159, test_controller_v3.py 651, CHANGELOG +14, version pins → 1.2.7). GitHub: CONFLICTING/DIRTY (pins/CHANGELOG/uv.lock vs 1.2.28 trunk). Plan: rebase onto 309c72f; renumber pins 1.2.7 → next unreleased (coordinate with #32/#45); move the CHANGELOG entry under the new version. Merge ONLY after the independent compatibility review on exact v3 artifacts and explicit company unblock, per the PR contract. Shadow mode — no live behavior change on merge until unblocked. |
Статус: SHADOW-скелет, не к вливанию в текущем виде
Детерминированный next-bet контроллер Company OS v1 (shadow-only), версия 1.2.7. Аддитивно:
src/fleet_policy/controller.py(fleet-policy controllerCLI), 19 новых тестов, приёмочная фикстура. CI verify — зелёный на этом head.Важно (решение компании на карте t_8f2f6d0d от 02.09.2026): семантика этого PR выведена из родительских контрактов v1-эпохи (econ-score/v1, evidence-gate v1.0), которые superseded контрактами v3 (econ-score/v3 из t_a92701e0, demand-metric v3 из t_dbb4235b). Формула v3 —
score_rub=(E+A)*conf*freshness−Cсо свежестью по старейшему evidence-ref, каноническими парами проект/метрика и фикстурой с полностью null-деньгами — в редьюсере этого PR НЕ реализована. До независимого compatibility review на точных v3-артефактах и явной разблокировки компанией PR не вливать: ожидается пере-вывод схемы оценки.Что сделано
execute_betтолько при свежих/авторитетных/без-гэпов метрике и финансах и известном effort; иначе максимум однаcollect_evidence-рекомендация (execution_eligible=false, missing_fields, owner/squad, freshness target, kill/rollback, evidence refs, без выдуманных RUB); ничьи/пустые/только-blocked доски →no_actionс детерминированной причиной.decision_id— content-hash; повтор с тем же входом возвращает сохранённое решение и пишет 0 новых записей (append-only в events store рантайма).hermes kanban list --json; доски ограничены rr-team, seo-site. Shadow: ничего не создаёт/не продвигает/не разблокирует, cron/config не трогает.Проверки
uv run --frozen python -m pytest tests/ -qв CI: 134 passed, 1 skipped (зафиксирован версионный тест на 1.2.7).Риски