Дмитрий
9729909c31
docs(supplier): fix naked app/ refs to ../../../app/ in failover plan (lychee gate)
2026-05-20 13:36:55 +03:00
Дмитрий
48b0e35cd1
docs(supplier): R-SAVE multi-flag mapping finding (Plan 3 T1 read-only verified)
2026-05-20 12:10:21 +03:00
Дмитрий
d1ddd28250
docs(plan): Plan 4 (админка + ЛК) — переделка миграции проектов
...
5 TDD-задач: тумблер режима экспорта (endpoint + UI), экран «Проекты у поставщика»
(кто заказывал/дата последней поставки + bulk-delete бэк/фронт), ЛК require-region
UI-гейт + «Вся РФ» предупреждение/подтверждение, полная регрессия. Финальный из
4 планов эпика. +cspell.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-20 10:09:26 +03:00
Дмитрий
34458df474
docs(plan): Plan 3 (экспорт + заказ) — переделка миграции проектов
...
8 TDD-задач: R-SAVE live smoke (гейт), SupplierExportMode тумблер, формула заказа
max(наиб,ceil(Σ/3)) + убран split, saveProjectMultiFlag R5/R6/R7 (захват 3 id),
SyncSupplierProjectsJob группировка источник×субъект + pivot, онлайн mode-aware
sync + grouping-хелперы, крон 18:00, регрессия. Третий из 4 планов. +cspell.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-20 10:09:24 +03:00
Дмитрий
467f1cdbf2
docs(plan): Plan 2 (входящее распределение) — переделка миграции проектов
...
5 TDD-задач: RegionTagResolver (тег субъекта -> код, зеркало regions.ts),
LeadRouter на pivot без phone-фильтра, LeadDistributor cap=3 (seedable RNG),
RouteSupplierLeadJob (cap + deal.subject_code из тега), регрессия.
Второй из 4 планов эпика. +cspell. Реализация не начата.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-20 10:09:22 +03:00
Дмитрий
cd2353b57d
docs(plan): Plan 1 (фундамент данных) — переделка миграции проектов
...
7 TDD-задач: supplier_projects.subject_code + per-subject unique (NULLS NOT
DISTINCT), pivot project_supplier_links (замена 3 FK-слотов), deals.subject_code,
seed supplier_export_mode, belongsToMany связи, backfill pivot, регрессия.
Первый из 4 планов эпика (см. spec §3). +cspell сид/бэкофилл. Реализация не начата.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-20 10:09:20 +03:00
Дмитрий
17e34a6d5e
docs(spec): design — переделка миграции проектов + распределения лидов
...
Закрыты 5 под-вопросов brainstorming + P1 (Вся РФ = 1 пул + предупреждение
с подтверждением) + P2 (один связный spec). Ядро: 3-FK слоты -> M:N pivot,
per-субъект supplier_projects (subject_code), формула заказа max(наиб, ceil(Σ/3)),
cap=3 рандом из недобравших, ручной экран очистки в админке, режимы экспорта
online/batch (глобальный тумблер). R2 уже 18:00. R-SAVE = вариант а (дочитать
listProjects). Реализация не начата.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-20 10:08:31 +03:00
Дмитрий
063436670a
feat(map): finance-tooling — populate C6+C7 (+3 nodes, +7 edges)
...
+finance_plugin (C7+C6) / billing_audit (C6) / ru_tax (C7) + reuse secondary-
классификация (Boost/Pest/Larastan/Sentry/Redis/PM/data-scientist/operations/
process-*/context7) + NODE_DETAILS + NODE_META + версии-метки (pravila v1.34 /
claude_md v2.21 / psr_v1 v3.18 / tooling v2.18). JS-smoke: 137 nodes / 155 edges,
0 drift. ADR-012.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-20 09:54:25 +03:00
Дмитрий
2f9f0a0900
docs(router): finance-tooling routing rows + L13 chain (routing-off-phase v1.2)
...
+3 строки routing (#61 finance plugin / #62 billing-audit / #63 ru-tax-accounting),
связка L13 (финансовая цепочка C6->C7), scope §4.11->§4.38. router-procedure v1.1
changelog. ADR-012.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-20 09:51:28 +03:00
Дмитрий
c44394ea0c
docs(normative): finance-tooling #61-#63 cross-ref version bump
...
Tooling Прил.Н v2.18 (§4.36/37/38 + §0 60->63 + 15-я подкатегория) +
PSR_v1 v3.18 (R10.1 Блок 1 +finance + note) + Pravila v1.34 (§13.2 +абзац) +
CLAUDE.md v2.21 (§3.3 +#61-63 + §0 cross-refs + §6 + §9).
Атомарный version-bump-набор (cross-ref-checker C2 STRICT: 0 drift). ADR-012.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-20 09:49:52 +03:00
Дмитрий
3177072e1d
docs(adr): ADR-012 finance-tooling boundary C6/C7
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-20 09:40:33 +03:00
Дмитрий
de11da2b06
docs(finance): C6+C7 finance-tooling implementation plan
...
11 задач в 3 фазах: Ф1 billing-audit скил (C6), Ф2 finance plugin enable +
ru-tax-accounting скил (C7), Ф3 нормативка (Tooling/PSR/Pravila/CLAUDE) +
роутер (routing-off-phase L13 + router-procedure) + наблюдатель (9-атрибутные
блоки + C1/C2) + карта (+3 узла) + ADR-012 + push.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-20 09:19:50 +03:00
Дмитрий
d984165af1
docs(finance): C6+C7 finance-tooling epic design spec
...
Объединённый эпик «Финансы»: наполнение разделов карты C6 (биллинг/тарификация)
+ C7 (бухгалтерия/налоги). 3 новых узла (#61 finance plugin, #62 billing-audit,
#63 ru-tax-accounting) + reuse-классификация + расширенная нормативка
(роутер routing-off-phase.md + наблюдатель 9-атрибутные блоки) + ADR-012.
+9 терминов в cspell-words.txt.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-20 09:11:07 +03:00
Дмитрий
7df4786499
docs(discovery): brief переделки миграции проектов + распределения лидов
...
Зафиксированы решения discovery-интервью 2026-05-20: два режима экспорта
проектов (онлайн + пакетный 18:00 МСК), один save с тремя флагами B1+B2+B3,
tag=регион, и новый алгоритм распределения лидов (cap=3 рандом из недобравших,
заказ = max(наиб_лимит, ceil(Σ/3)); группировка отменена). Реализация не начата.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-20 08:58:57 +03:00
Дмитрий
162fe010fe
feat(map): iter9 — brain governance subsystem (+9 nodes, +12 edges, +1 GREEN)
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-20 05:12:24 +03:00
Дмитрий
426983ffaa
docs(map): iter9 implementation plan
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-20 04:59:29 +03:00
Дмитрий
87c5eb6323
docs(map): spec self-review fix — edges 13->12
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-20 04:50:18 +03:00
Дмитрий
cb864b18a5
docs(map): iter9 brain-governance design spec
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-20 04:49:32 +03:00
Дмитрий
dd0a9ffea6
docs(observer): sync spec §6 with as-built factor-analyzer
...
§6 drifted from the implemented brain-retro analyzer after Phase 1.2/1.3:
- factor matrix now lists 9 axes (session_turn + parallel_session were
captured in the episode schema §3 but missing from the §6 matrix);
- outcome inference documents 'blocked' (error events > retry events) and
notes 'failure' as deferred to the phase-2 agent-judge.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-19 18:17:17 +03:00
Дмитрий
8f5a399a25
docs(discovery): 3-tier failover live-smoke 2026-05-19 — all tiers green, 156/156 Supplier suite
2026-05-19 17:31:15 +03:00
Дмитрий
efd3e73aa2
fix(supplier): manage-project.js — drop wrong status-switch click + recon live-smoke
...
Task 4 live-smoke выявил: единственный .el-switch формы — include/exclude
регионов (regions_reverse), НЕ статус active/paused. Старый код кликал его
по dto.active → ошибочно ставил regions_reverse. Статус — дефолт портала
(active), UI-switch для него нет → switch-блок удалён.
recon-doc 2026-05-19-rt-project-form-locators.md: +секция Live-smoke
(domain-формат валидируется, multi-source save = N проектов, switch = regions,
type/tab re-render); row 6 исправлен.
2026-05-19 17:31:15 +03:00
Дмитрий
80c5f6289a
docs(discovery): rt-project form locators recon (Element UI + Vuetify dialog, 10 fields)
2026-05-19 17:31:12 +03:00
Дмитрий
8df5a3fe00
docs(supplier): plan for migration follow-up — HTTP-200 login detect + form rewrite + 3-tier smoke
2026-05-19 17:29:52 +03:00
Дмитрий
0fad4305d4
feat(brain): Forest polish + observer README entry for the dashboard
2026-05-19 16:23:52 +03:00
Дмитрий
2f60910b09
feat(brain): conflict three-layer panel (design / friction / correlation) +3 tests
2026-05-19 16:23:51 +03:00
Дмитрий
f48d5115ce
feat(brain): Агрегат view — metric tiles + node heat overlay
2026-05-19 16:23:51 +03:00
Дмитрий
774763c21c
feat(brain): aggregator — node heat, distributions, redirect rate (+4 tests)
2026-05-19 16:23:50 +03:00
Дмитрий
c1b690edd3
feat(brain): Лента auto-poll with pause (5s interval, view-driven)
2026-05-19 16:23:50 +03:00
Дмитрий
e34b11aca5
feat(brain): Лента view — groupBySession + grouped feed UI
2026-05-19 16:23:49 +03:00
Дмитрий
b4f4f441b5
feat(brain): Разбор view UI — list + filters + trajectory highlight
2026-05-19 16:23:49 +03:00
Дмитрий
475e233c2a
feat(brain): filterEpisodes + 3 tests (Task 7 logic; UI deferred)
...
Worktree has no app/node_modules — vitest not run here; final regression
deferred to main-checkout post parallel-session release. Logic is a 7-line
pure filter; tests cover empty filter, classification, errors-only.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-19 16:23:48 +03:00
Дмитрий
3e289479f0
feat(brain): Карта view — plain topology + design conflicts list
2026-05-19 16:23:48 +03:00
Дмитрий
0cee520f0d
feat(brain): dashboard shell + graph banner + view switching
2026-05-19 16:23:47 +03:00
Дмитрий
c3392bef13
feat(brain): node attribution — episode signals to graph nodes
2026-05-19 16:23:46 +03:00
Дмитрий
7fed5bc18b
feat(brain): episode JSONL parser + v1/v2 normalizer
2026-05-19 16:23:46 +03:00
Дмитрий
43028228c8
refactor(brain): extract automation-graph topology to a shared data file
2026-05-19 16:23:45 +03:00
Дмитрий
f1092772fb
feat(brain): static server + /api/episodes for the dashboard
2026-05-19 16:23:45 +03:00
Дмитрий
702c2ff7b5
fix(brain): correct vitest command in plan — run from app/
...
The config's include `../tools/*.test.mjs` resolves relative to its
own dir (app/), not cwd. Baseline verified 2026-05-19 from app/:
11 files, 169 tests passing, 0 failures.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-19 16:23:44 +03:00
Дмитрий
b75f9e3d21
docs(brain): brain dashboard implementation plan
...
13 tasks across 3 phases — static server + topology extraction + 4 views
(Карта / Разбор / Лента / Агрегат). TDD on dashboard-core.js, smoke on UI.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-19 16:23:44 +03:00
Дмитрий
2e26edbb3a
docs(brain): brain dashboard design spec
...
Standalone HTML dashboard that visualises the observer episode log over
the automation-graph topology — 4 views (map / task-replay / session
feed / aggregate), graph as shared canvas, 3-phase build order.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-19 16:23:43 +03:00
Дмитрий
9e1a07aad3
chore(observer): remove 5 empty unknown-* episode stubs + commit session episodes
...
unknown-<ts>, empty events, fake outcome:success) — zero information.
Removed; remaining episodes carry real data. One-time cleanup of
pre-extension garbage — append-only stays the operational rule.
STATUS.md regenerated by C4.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-19 13:40:37 +03:00
Дмитрий
b2b9a75731
feat(observer): AskUserQuestion in-turn choice + parallel_session narrowing
...
#1 — detectAskUserQuestionChoice: when a turn contains an AskUserQuestion
whose answer exactly matches an offered option label, classify as
user_chose_from_options. The answered entry carries a structured
toolUseResult (questions[].options[].label + answers map). A custom
"Other" free-text answer is NOT a pick — falls through. Wired into
parseTranscript after the text-list detector.
#3 — parallel_session: dropped broad word matches (параллельн /
"parallel session") that false-fired on any casual mention. Now only
strong collision evidence (foreign git index / чужой staged /
index.lock / another git process). Best-effort per spec R2 — prefer
false-negative over false-positive.
169/169 tools tests GREEN (+9 new).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-19 13:39:09 +03:00
Дмитрий
287332eddf
docs: CLAUDE.md header version drift fix — 2.18 -> 2.20
...
Header «Версия» line lagged at 2.18 while §9 already carried v2.19
(factor-analysis extension) and v2.20 (phase 1.1) entries — pre-existing
drift from f7f37fb . Header now reflects actual latest version; v2.18
summary demoted to «v2.18 наследие». Full per-version detail stays in §9.
Через /claude-md-management:claude-md-improver (§5 п.10).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-19 13:39:08 +03:00
Дмитрий
ad09db606a
docs(supplier): closure — project channel failover epic (12 tasks)
...
Все 12 задач плана docs/superpowers/plans/2026-05-19-supplier-project-channel-failover.md
выполнены. Резервный канал миграции проектов Лидерра → crm.bp-gr.ru:
3 яруса — AJAX rt-project-* → авто-браузер формы «Мои проекты» →
operator worklist (supplier_manual_sync_queue).
Задачи: T1 live recon rt-project-* контракта · T2 SupplierProjectChannel
interface + AjaxProjectChannel · T3 supplier_manual_sync_queue (schema v8.25)
· T4 FailoverProjectChannel escalation matrix · T5 portal-side dedup ·
T6 manage-project.js · T7 FormProjectChannel + DI · T8 wire jobs ·
T9 cron 20:30→18:00 / 20:15→17:45 · T10 admin endpoints · T11 admin UI ·
T12 регрессия + code-review.
Регрессия зелёная: Pest 973/970/0 / 3 skipped / 2847 assertions;
Vitest 882/0 / 3 skipped (111 files); Pint clean; gitleaks 14 commits /
0 leaks; markdownlint + lychee clean. Larastan: изолированный прогон по
supplier-failover файлам — 0 реальных ошибок (полный baseline-drift —
артефакт worktree-env, _ide_helper_models.php отсутствовал; финальная
larastan-верификация — в основной копии после merge, memory quirk).
Финальное code-review (Opus): найден + исправлен 1 CRITICAL (контракт
listProjects — нормализация сырых rt-строк) + I1 (log дедуп-сбоя).
ОГРАНИЧЕНИЯ (не верифицировано в этой сессии):
- Live smoke по 3 ярусам (план T12.1-12.3) НЕ выполнен — требует боевого
портала crm.bp-gr.ru, queue worker, форс-фейлов DI и создания тестовых
проектов на живом портале. Откладывается на отдельную сессию с
присутствием заказчика.
- Code-review I2 (partial-unique индекс supplier_manual_sync_queue от
дубль-эскалаций при job-retry) и I3 (lockForUpdate в manualQueueResolve)
— follow-up до прод-релиза (эпик гейтится Б-1, не в проде).
- Larastan полный baseline — пересинхронизировать в основной копии.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-19 13:12:30 +03:00
Дмитрий
66ca57f187
sessions: claim supplier-project-channel-failover
...
Per Pravila §15.2: pre-flight `git fetch origin && git log HEAD..origin/main` clean
after rebase onto d484e60 . Worktree env restored (composer install + npm ci
--legacy-peer-deps + npm run build + storage/framework dirs); Pest baseline
GREEN 937/934 / 0 failed / 3 skipped / 2756 assertions / 51.7s.
Scope: 17 files (interface + 3 channels + 2 exceptions + 2 jobs + DI + migration
+ schema/CHANGELOG + node script + controller + view + console route).
Version-claim: db/schema.sql v8.21 → v8.22 (Task 3 +supplier_manual_sync_queue).
Closes: docs/superpowers/plans/2026-05-19-supplier-project-channel-failover.md
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-19 12:55:04 +03:00
Дмитрий
430efe624d
docs(brain): phase 1.1 normative sync — user_chose_from_options 3rd kind
...
Pravila v1.32 -> v1.33: §16.2 decision_provenance.kind extended to 3
values (autonomous | user_directed_method | user_chose_from_options);
§16.7 +paragraph «Граница user_chose_from_options» (routing-gate does
not block collaborative-choice); §16.6 +plan cross-ref; §10 +v1.32
(missing) +v1.33 entries.
Tooling §0 cross-ref string Pravila v1.32 -> v1.33 (no header bump).
CLAUDE.md §0 Pravila row v1.32 -> v1.33, §3.6 +phase 1.1 sentence,
§9 +v2.20 entry (via claude-md-management plugin, §5 п.10).
cross-ref-checker: 0 drift in 4 files.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-19 12:14:12 +03:00
Дмитрий
f751ded65b
docs(observer): implementation plan — phase 1.1 user_chose_from_options
...
5 tasks TDD plan with explicit code per step. Task 1 creates
observer-choice-detector.mjs pure module (23 tests). Task 2 wires
into transcript-parser. Task 3 extends routingGateDecision (no-block).
Task 4 extends brain-retro factor matrix. Task 5 normative sync
(Pravila §16.2 + CLAUDE.md §3.6 + spec cross-ref).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-19 11:53:53 +03:00
Дмитрий
0c8d0fa8d1
docs(observer): spec v1.1 — phase 1.1 amendment user_chose_from_options
...
Adds 3rd decision_provenance kind for collaborative-choice case
(user picks one of options Claude offered). Distinct from
user_directed_method: counterfactual = Claude's recommended option,
not "what Claude would have done autonomously". Routing-gate does
NOT block this kind — collaborative choice from Claude-designed
choice-space.
Trigger: 19.05.2026 live false-positives — "1 экономия 0%",
"в делаем", "делай 2" classified as user_directed_method.
§11 + 8 subsections; 7-attribute decision_provenance schema;
new tools/observer-choice-detector.mjs (pure module); parser
+routing-gate +/brain-retro extensions.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-19 11:47:30 +03:00
Дмитрий
f7f37fb4e4
docs(brain): observer factor-analysis extension — normative sync
...
ADR-011 amended: +Decision §5 (observer v2 four-layer), §3 4→5
controllers (+C5), Enforcement +routing-gate + C5 bullets, related
+factor-analysis spec/plan.
Pravila v1.31→v1.32: §16.2 +абзац «Схема эпизода v2», §16.3 4→5
контролёров (+C5 row), +§16.7 routing-тег-дисциплина (mechanical
Stop-hook decision:block, stop_hook_active loop guard), +§16.8
самодисциплина наблюдателя (observer_error marker, parse_gap event,
C5 lefthook warn-only), §16.6 +cross-refs на factor-analysis spec/plan.
PSR_v1 v3.16→v3.17: R16.1 +предложение про schema v2 поля и
расширенные события; R16.4 +cross-refs.
Tooling Прил. Н v2.17: §0 cross-ref strings 1.31/3.16 → 1.32/3.17
(no header version bump).
brain-governance spec: related +factor-analysis spec.
observer-factor-analysis-design.md: status draft→accepted.
CLAUDE.md v2.19: §0 Pravila/PSR_v1 cross-refs bumped to v1.32/v3.17
with v2 summary prepended (legacy preserved as «v1.31 наследие» /
«v3.16 наследие»); §3.6 appended observer schema v2 + routing-gate +
C5 + brain-retro analyzer paragraph; §9 +v2.19 entry.
cross-ref-checker: 0 drift in 4 files.
Plan: docs/superpowers/plans/2026-05-19-observer-factor-analysis.md
Spec: docs/superpowers/specs/2026-05-19-observer-factor-analysis-design.md
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-19 11:08:55 +03:00
Дмитрий
d484e60c46
docs(observer): brain-retro skill + README for schema v2
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-19 10:55:37 +03:00