Commit Graph

296 Commits

Author SHA1 Message Date
Дмитрий 772cdf4109 docs(plan): Sprint 2 Plan B — Settings (D1-D5 + J5 + J6)
Plan B of the Sprint 2 split — the Settings subsystem, 5 atomic TDD
tasks: PATCH /api/auth/me profile endpoint (J6); ProfileTab rewired to
real API (D1); ApiKey model + api-keys endpoints (J5/D3); outbound
webhook settings endpoints (J5/D4/D5); ApiTab full wiring (D2-D5).
Schema delta = 0 — api_keys + outbound_webhook_subscriptions tables
already exist in schema.sql.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-15 20:51:46 +03:00
Дмитрий 7a4f8c2793 docs(plan): Sprint 2 Plan A — Auth (A2/A3 orphan delete + A7 legal pages)
Sprint 2 (P1 wave 1) split into 3 sub-plans per writing-plans
scope-check (Auth / Settings / Billing — independent subsystems).
Plan A covers the Auth subsystem:
- A2/A3: delete orphaned /recovery RecoveryCodesView (real flow lives
  in Settings -> Безопасность; user-approved deletion 2026-05-15).
- A7: /legal/offer + /legal/privacy stub pages via one DRY LegalDocView.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-15 19:21:30 +03:00
Дмитрий cc7ec0d749 docs(tooling): sync v2.1 header version + history row (review) 2026-05-15 17:59:50 +03:00
Дмитрий 8b47aa5a4d docs(sync): PSR_v1 v3.1 + Tooling v2.1 — §14 queen-trigger cross-ref 2026-05-15 17:53:44 +03:00
Дмитрий 3b8a5184c7 fix(pravila): §0 — clarify §12/§14 non-conflict (review) 2026-05-15 17:39:40 +03:00
Дмитрий efd588f661 docs(spec): automation-graph iter5 — ruflo factual recollage design
Design spec for reworking the ruflo cluster on docs/automation-graph.html
to reflect factual runtime state (live MCP + filesystem inspection)
instead of the normative declaration: 7 fictional swarm roles removed;
real footprint added as summary nodes (100-agent catalog, 88 slash
commands, recall hook, "0 plugins / 0 skills" node); broken daemon
(spawn claude ENOENT) and idle hive (0 tasks) made explicit; fictional
delegation edges dropped. Map 85->83 nodes / 96->90 edges / 11 conflicts.

cspell-words.txt: +10 terms (Russian inflections + ENOENT).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-15 17:35:59 +03:00
Дмитрий 1f9b9ab788 docs(pravila): +§14 Ruflo Queen routing hard-rule (v1.15) 2026-05-15 17:34:00 +03:00
Дмитрий d21b6556d2 docs(plan): ruflo queen-trigger + delegation implementation plan 2026-05-15 17:12:12 +03:00
Дмитрий cce3baea49 docs(spec): ruflo queen-trigger + delegation hard-rule design
Brainstorming output: trigger words queen/королева -> unconditional ruflo
Queen routing (Pravila §14, new explicit hard-rule), enforced via
tools/ruflo-queen-hook.mjs UserPromptSubmit hook. Broader: proactive
ruflo-spawn proposal for non-trivial tasks. Cost-gate: preview + confirm
before paid hive-mind spawn --claude.

cspell-words.txt: +9 Russian IT-slang inflections for the spec.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-15 17:00:05 +03:00
Дмитрий 0f94c21332 fix(docs): Tooling_v8_3 — битую ссылку на удалённый форк → backtick-спан
Удаление docs/automation-graph-ruflo.html (automation-graph iter4, d18b60f)
оставило битую markdown-ссылку в §«Связано». Конвертирована в backtick-спан
(как упоминания того же форка в CLAUDE.md) + нота «влит и удалён» —
исторический факт сохранён, pre-push lychee проходит.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-15 16:37:44 +03:00
Дмитрий d18b60f4ae chore(graph): remove automation-graph-ruflo.html fork — merged into main map (iter4)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-15 16:06:16 +03:00
Дмитрий fcdd5b5f14 docs(graph): refresh rule nodes + §12/sub-policy to v2.0 normative (iter4)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-15 15:56:36 +03:00
Дмитрий 6c3640c45b docs(plan): ruflo H7 implementation addendum — onnxruntime dedupe
Records the key divergence found during subagent-driven execution: the
H7 fix needed onnxruntime-node dedupe in addition to the getBridge patch
(two incompatible onnxruntime-node versions => DLL collision). Documents
3 residual ruflo-alpha quirks and the post-ruflo-update re-apply step.

cspell-words.txt +dlopen (ERR_DLOPEN_FAILED token).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-15 15:50:11 +03:00
Дмитрий 21f81ed6ea fix(graph): ruflo delegation nodes — legacy refs to manages slot (iter4 Task 1 review)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-15 15:48:22 +03:00
Дмитрий 7e87324dde feat(graph): ruflo orchestrator overlay — +12 nodes / +22 edges / 3 conflicts (iter4)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-15 15:34:39 +03:00
Дмитрий b8ef4a0a7e docs(plan): automation-graph iter4 — ruflo big-bang merge implementation plan
5 задач: ruflo-наслой (12 узлов / 22 ребра / 3 конфликта) → рефреш под
нормативку v2.0 (4 узла-правила + §12/sub-policy) → удаление форка →
visual smoke → синхронизация memory. 3 атомарных коммита реализации.
cspell-words.txt +2 словоформы (тулбар/скила).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-15 15:24:39 +03:00
Дмитрий c6c6e8c0cc docs(plan): ruflo memory H7 fix + advisory hook — implementation plan
8-task plan for the approved design (spec a6649e4):
- D1 (Tasks 1-3): install standalone claude CLI, verify spawn --claude
- D2 (Tasks 4-5): TDD ruflo-h7-patch.mjs, apply patch, verify round-trip
- D3 (Tasks 6-7): TDD ruflo-recall-hook.mjs, register UserPromptSubmit hook
- Task 8: memory update + push

cspell-words.txt +3 entries used by the plan.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-15 14:15:14 +03:00
Дмитрий a6649e4696 docs(spec): ruflo memory H7 fix + advisory hook — design
Design for 3 deliverables (brainstorming output):
- D1: install standalone claude CLI to unblock hive-mind spawn --claude
- D2: fix H7 memory-persistence bug — patch getBridge() so memory ops
  use the persisting raw sql.js path instead of the non-flushing
  AgentDB-v3 bridge
- D3: UserPromptSubmit advisory hook injecting ruflo memory recall

cspell-words.txt +11 Russian IT-slang inflections used by the spec.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-15 14:00:47 +03:00
Дмитрий 55696e5b40 docs(spec): automation-graph iter4 — ruflo big-bang merge design
Дизайн слияния ruflo-наслоя в каноническую docs/automation-graph.html.
Решения brainstorming: одна карта (форк удаляется), честный гибрид
(Queen уровнем −1 + конфликт-маркер «декларация ≠ parallel subsystem»),
полный рефреш под нормативку v2.0. +12 узлов / +22 ребра / 8→11 конфликтов.
cspell-words.txt +4 словоформы (форке/наслой/нормативке/рефреш).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-15 13:25:37 +03:00
Дмитрий 5ac2961698 feat(ruflo): activate runtime — daemon-as-service + hive-mind + real embeddings
Полная активация ruflo runtime (заказчик: «Активировать ruflo runtime» →
«Полная (daemon-as-service + hive-mind spawn)»). Закрывает paper/runtime gap
из Phase 3-4 нормативной инверсии.

Что активировано:
- ruflo установлен глобально (npm i -g ruflo — стабильное дерево вместо
  ephemeral npx-cache; решает module-resolution для embeddings)
- Daemon ACTIVE под PM2 (ruflo-daemon, 5 workers); reboot-survival через
  Windows Task Scheduler PM2-ruflo-daemon (pm2 resurrect onlogon — ruflo
  native install-supervisor только launchd/systemd, pm2-windows-service
  deprecated+broken non-interactive → Task Scheduler fallback)
- Hive-mind ACTIVE — Queen-led (hierarchical-mesh/byzantine) + 9 worker-агентов
- Memory init — sql.js .swarm/memory.db + реальные embeddings
  Xenova/all-MiniLM-L6-v2 384-dim (sharp/libvips fix: @xenova/transformers
  hard-deps sharp, prebuilt libvips timeout'ит — curl tarball в npm-cache/_libvips)

Repo-изменения:
- .gitignore +.swarm/ +ruvector.db (ruflo runtime state, не tracking)
- CLAUDE.md §3.5 + §6 «Runtime state» — paper-level → runtime active
- Tooling §4.10 «Runtime state» — аналогичный sync

Verification:
- Phase A gate: Pest 742/739/3sk/0 + Vitest 92f/774/3sk/0 + vue-tsc 0 ✓
- ruflo doctor: 10 passed / 7 warnings (alpha/optional)
- Pest --parallel post-activation: 0 регрессий от ruflo. 1 intermittent error
  классифицирован pest-parallel-debugger агентом (11 runs) как quirk 72 —
  ruflo grep-подтверждённо не трогает Redis :6379, worker-jitter лишь
  усиливает частоту pre-existing flake (suite green 739/739/0/3 5× verified)

Известные alpha-bugs (документированы):
- ruflo memory store CLI не персистит между invocations (in-memory sql.js)
- daemon worker-jitter усиливает Pest quirk 72 — пауза pm2 stop ruflo-daemon
  на baseline regression
- $-расход near-zero: ruflo doctor «No API keys found», daemon не делает
  платных LLM-вызовов; cap $10/день в .env.local + PM2 env как belt

Daemon-resurrect helper: C:\Users\Administrator\ruflo-daemon-resurrect.cmd
(machine-level, вне репо). Effective state: runtime активен.

Related: ruflo big-bang Phase 3-4 нормативная инверсия (9c3057b/d30cbeb/
5df88a1/f65a8d7/6287561), spec/plan 2026-05-15.
2026-05-15 12:31:53 +03:00
Дмитрий 6287561fce docs(sync): Phase 4 cross-refs sync + CHANGELOG_claude_md.md +v2.0 entry — ruflo big-bang Day 4
Ruflo big-bang Phase 4 Task 4.1 — закрывает нормативную инверсию.

Изменения:
- CHANGELOG_claude_md.md: +v2.0 entry (полное описание Phase 3-4 — 4
  normative rewrites Pravila v1.14 / PSR_v1 v3.0 / CLAUDE.md v2.0 /
  Tooling v2.0 + effective-state candor)
- CLAUDE.md §6: «Tooling v2.0 (pending)» → «(commit f65a8d7)»
  («(pending)» annotation stale после всех 4 Phase 3 commits)
- PSR_v1 история версий v3.0 entry: «CLAUDE.md/Tooling v2.0 (pending)»
  → commit hashes 5df88a1/f65a8d7
- cspell-words.txt: +«спеке» (Russian locative inflection of «спека»)

Cross-refs audit (plan §4.1.1): проверены v1.13/v2.1/v1.17/v1.93 refs
во всех 4 normative files — все current-state cross-refs корректно
bump'нуты в Phase 3 commits; остаточные старые версии встречаются
только в frozen changelog entries + «Введено в vX» исторических
маркерах + «vX+» forward-compat нотации (не stale).

Phase 3-4 завершён: Pravila v1.14 (9c3057b), PSR_v1 v3.0 (d30cbeb),
CLAUDE.md v2.0 (5df88a1), Tooling v2.0 (f65a8d7), sync (this).

Related: ruflo v3.7.0-alpha.38 integration via spec/plan 2026-05-15
(e55572e/a68a0a0/18c4463/9bd1bae); Phase 1-2-5-6-7 prior session.
2026-05-15 11:22:14 +03:00
Дмитрий f65a8d79ec docs(tooling): §0 35 → 55 + new §4.10 Orchestration layer (ruflo) — v2.0 (ruflo big-bang Day 3)
Ruflo big-bang Phase 3 Task 3.4 (финальный). Major bump v1.17 → v2.0:
ruflo формализован как четвёртая off-phase подкатегория «orchestration».

Изменения:
- Header v1.17 → v2.0, date 15.05.2026
- §0 summary table: +row «ruflo orchestration layer» (+20 plugins);
  count «35 формализованных позиций» + 20 ruflo plugins = 55 total
- §0 «Назначение» line — sync stale «33» (pre-v1.17 oversight) → 35+20=55
- §4.9 +note «Категории off-phase tools (v2.0)» — 4 подкатегории
  (UI-пул / infrastructure / debug-runtime / orchestration)
- §4.10 (new) «Orchestration layer (ruflo) — entry-point иерархии»:
  npm package + repo + namespace, 20 plugins / ~210 MCP tools / 60+
  agents, архитектурная роль (entry-point level −1), категория,
  установка (commit 55c49c9), cost-budget, runtime state candor
  (daemon/swarm/memory НЕ активны — opt-in MCP, paper-level), IPFS
  gateway risk, Связано-links
- §11/§12 — sync stale «33» → «35» (pre-existing v1.17 oversight)
- История версий: +v2.0 table row + footer note

Effective-state candor: §4.10 явно фиксирует — scaffold installed,
MCP server в .mcp.json, но daemon/swarm/memory не initialized; ruflo
доступен как opt-in MCP (7-й из 7), не enforcing Queen-led overlord.

Phase 3 завершён (4/4 normative rewrites): Pravila v1.14 (9c3057b),
PSR_v1 v3.0 (d30cbeb), CLAUDE.md v2.0 (5df88a1), Tooling v2.0 (this).
Pending Phase 4: cross-refs sync + CHANGELOG_claude_md.md +v2.0 entry.

Related: ruflo v3.7.0-alpha.38 integration via spec/plan 2026-05-15
(e55572e/a68a0a0/18c4463/9bd1bae).
2026-05-15 11:18:09 +03:00
Дмитрий d30cbeba10 docs(psr_v1): R0 stack-gate → sub-policy paired-stack delegation pattern — v3.0 (ruflo big-bang Day 3)
Ruflo big-bang Phase 3 Task 3.2. Major bump: R0 «единый stack и обязательный
gate» → «Sub-policy: paired-stack delegation pattern (под ruflo Queen-led
routing)».

Изменения:
- R0 title rewrite (sub-policy framing)
- R0.1 «Уровень и головенство» — добавлен top row «−1. ruflo Queen-led
  routing (entry-point, v3.0+)»; PSR_v1 row «— это и есть stack» → «sub-policy
  ruflo routing»
- R0.2 «Обязательный gate» — первый параграф переписан: ruflo первой,
  stack-gate как sub-policy через routing-decision. Subsequent R0.2 sub-points
  + ASCII gate diagram сохранены (semantic tension — diagram pre-v3.0
  visualization, кандидат на follow-up polish)
- R0.6 «Hard-стоп даже в Auto mode» — добавлен пункт 11 (sequential
  continuation после v2.0 R15 removal; spec литерально писал «п.12», но
  фактический list содержит 1-10, sequential = 11): «ruflo Queen routes
  task как autonomous swarm, но human absent для review — pause до review»
- Принцип-аксиома (line 10) переформулирован под ruflo: stack — головной
  при решении задач, маршрутизированных в paired-stack sub-policy через
  ruflo (entry-point −1)
- Header version v2.1 → **v3.0**, date 13.05.2026 day +1 → 15.05.2026
  afternoon, summary paragraph + narrative tail
- История версий: v3.0 entry на верху (sequential continuation note)
- Cross-refs: CLAUDE.md v1.88+ → v2.0+, Pravila v1.11+ → v1.14+ (commit
  9c3057b), Tooling v1.16+ → v2.0+ (§4.10 Orchestration layer)

R0.3 «Структура stack'а», R0.4.A SoT cross-ref на Pravila §12.3, R0.4.B
live-команды table, R0.5, R1-R14 правила — preserved untouched.

Pending Phase 3 sibling: CLAUDE.md v2.0, Tooling v2.0. Phase 4: cross-refs
sync + CHANGELOG_claude_md.md +v2.0 entry.

Related: ruflo v3.7.0-alpha.38 integration via spec/plan 2026-05-15
(e55572e/18c4463/9bd1bae/9c3057b).
2026-05-15 10:59:02 +03:00
Дмитрий 9c3057b473 docs(pravila): §12 hard rule → sub-policy + §5 ПДн execution-layer note — v1.14 (ruflo big-bang Day 3)
Ruflo big-bang Phase 3 Task 3.1 — переводит §12 Superpowers из «hard rule» в
«sub-policy под ruflo Queen-led routing» (routing preference для interactive
turns; не absolute block). §12.2 карта 14 типов задач + §12.3 exclusions SoT
+ §12.4 details сохранены содержательно — меняется только framing.

§5 ПДн получает execution-layer note: gitleaks pre-commit фильтр —
технический compensator, не зависит от regulatory hierarchy, продолжает
работать выше ruflo routing.

§0 priority chain + §0 «Особый статус §12» note синхронизированы с
sub-policy framing. PSR_v1 cross-refs в §11.5/§13.2/§13.9/§13.10 bumped
v2.0/v2.1 → v3.0+ (R0 → sub-policy). CLAUDE.md → v2.0+, Tooling → v2.0+
в changelog block.

Pending Phase 3 (sibling normative rewrites): PSR_v1 v3.0, CLAUDE.md v2.0,
Tooling v2.0. Phase 4: cross-refs sync + CHANGELOG_claude_md.md +v2.0 entry.

Related: spec docs/superpowers/specs/2026-05-15-ruflo-integration-design.md
(e55572e+a68a0a0), plan docs/superpowers/plans/2026-05-15-ruflo-big-bang-integration.md
(18c4463+9bd1bae), Phase 2 install 55c49c9, map fork 796d814.
2026-05-15 10:50:09 +03:00
Дмитрий 9bd1baedef fix(plan): broken relative links in §4.1.2 CHANGELOG entry template
Phase 6 lychee regression выявил 2 broken-link в
docs/superpowers/plans/2026-05-15-ruflo-big-bang-integration.md:680 —
template для CHANGELOG_claude_md.md entry имел relative paths
`(specs/...)` и `(plans/...)` которые резолвились в
docs/superpowers/plans/specs/... и docs/superpowers/plans/plans/...
(double-prefix, файлы не существуют).

Fix: changed к correct relative form:
- specs/... → ../specs/... (parent dir)
- plans/... → 2026-05-15-ruflo-big-bang-integration.md (same dir, bare
  filename)

Per Pravila §4.7 п.4 + memory quirk 76: relative paths from plans/specs
require explicit `../<sibling>/` или bare filename для same-dir.

Lychee post-fix: 487 OK / 0 errors (was 485 OK / 2 errors pre-fix).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-15 10:29:28 +03:00
Дмитрий 796d814e62 feat(graph): automation-graph-ruflo.html — fork iter3 с ruflo overlay
User's primary asked deliverable: «отдельный проект карты с его внедрением»
(2026-05-15 session). Fork of docs/automation-graph.html iter3 (commit
8a22cc4) with ruflo big-bang overlay (TO-BE structure).

Map additions vs source:
- GROUPS: +ruflo (orange #ff8800, top-of-hierarchy semantic)
- NODES: +10 ruflo (Queen в верхнем-левом углу за пределами radial-sector
  + 9 swarm-roles в circle ~180px вокруг Queen: Architect, Coder,
  Security, RLS-reviewer, QA, Tester, Reviewer, Memory-keeper, Daemon-worker)
- EDGES: +18
  * 9 Queen → swarm (подчиняет)
  * 4 Queen → group-centroids pravila/claude_md/psr_v1/tooling
    (перенял sub-policy)
  * 5 swarm → legacy execution-layer (делегирует TDD/RLS/HNSW/PM2)
- CONFLICTS: +3 BLACK «возник на практике»
  * Queen ↔ pravila: alpha-tool overrides hard-rule §12
  * daemon ↔ mem_state: static .md vs HNSW dual-system синхронизация
  * Queen ↔ mcp_pw: IPFS gateway flaky (Pinata + Cloudflare failed
    2026-05-15) → plugin discovery offline риск
- HTML: comment header с source/spec/plan refs; title updated
- footer cat-legend: +🌊 ruflo Queen + swarm item (filter-key
  group:ruflo)

NOT in scope этого commit'а:
- subPolicy:true overlay для 73 legacy nodes (polish item, plan §5.4)
- Visual smoke в Edge — manual task для пользователя
- Phase 3-4 normative file rewrites — DEFERRED to separate session

cspell vocab additions для Phase 3-5 normative rewrites (lowercase per
user-dict case rule): sub-policy, queen-led, hive-mind, orchestrator,
autopilot, poincaré.

Refs:
- spec docs/superpowers/specs/2026-05-15-ruflo-integration-design.md
  (commit e55572e — base + a68a0a0 — Phase 1 sync)
- plan docs/superpowers/plans/2026-05-15-ruflo-big-bang-integration.md
  (commit 18c4463 — base + a68a0a0 — Phase 1 sync)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-15 10:27:47 +03:00
Дмитрий a68a0a0ccb chore(spec): Phase 1 pre-flight findings — sync spec + plan + cspell vocab
Phase 1 Task 0 verifications executed on 2026-05-15 against live Windows
Server 2022 + native PowerShell elevation + Node.js stack:

- Task 1.1 npm view: ruflo v3.7.0-alpha.38 (not alpha.33 as spec assumed),
  MIT, repository.url = ruvnet/claude-flow.git (rename Jan-2026 incomplete
  in npm metadata; plugin namespace also remains @claude-flow/*).
- Task 1.2 CLI: 33+ subcommands available — init, mcp, plugins, daemon,
  doctor, hive-mind (Queen-led consensus), autopilot, claims, cleanup, etc.
- Task 1.3 plugins list: 20 plugins in IPFS-registry (not 32 as spec
  estimated). Registry CID QmeXmAdbWVvT84GfDXPD2Vg1HWhiTW2VdZfRLhkS96KkX2
  fetched via IPFS — gateway.pinata.cloud + cloudflare-ipfs.com FAILED,
  only ipfs.io worked. 6 core + 1 command + 13 integration. 11 CRM-relevant;
  9 nichе (medical/legal/financial/quantum). User decision gate confirmed
  «full big-bang — all 20» despite material delta from spec.
- Task 1.4 disk: 67 GB free (>> 5 GB requirement).
- Task 1.5 elevation: TRUE — pm2-service-install без эскалации заказчику.
- Task 1.5.2 PM2 not yet installed.
- Task 1.6 MCP: stdio mode confirmed (INFO [claude-flow-mcp] Starting
  in stdio mode) — no port conflict with existing MCP entries. Resolves
  spec §12 Q5.

Material changes vs original spec/plan:
- 32 → 20 plugins (1.6× smaller actual scope)
- 100+ → 60+ agents (per npm description)
- Plugin namespace ruflo-* → @claude-flow/* (legacy)
- Added §10.3 risks #11 (IPFS gateway), #12 (alpha version inconsistency
  3.0.0-alpha.1..8), #13 (namespace mismatch documentation cost)
- §3 rewritten with concrete 20-plugin table and CLI subcommand list
- §12 Q1/Q4/Q5/Q7 marked RESOLVED with concrete answers
- §12 +Q11 (IPFS) +Q12 (version inconsistency)

cspell vocab additions: ruvector, ipfs, xenova, onnxruntime (lowercase
per user-dict case rule, see commit e55572e for prior precedent).

Plan synced: alpha.33 → alpha.38 (replace_all), 32 plugins references
patched at 8 specific locations. Tooling §0 row description updated:
+20 plugins (35 → 55 formalized), not +32 (35 → 67).

Awaiting user OK for Phase 2 (destructive scaffolding starts at Task 2.1
CLAUDE.md backup + Task 2.2 npx ruflo init).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-15 09:50:53 +03:00
Дмитрий 18c4463ddd docs(plan): ruflo big-bang integration — 7-phase implementation plan
Spec reference: docs/superpowers/specs/2026-05-15-ruflo-integration-design.md
(commit e55572e). Plan implements full architectural big-bang per user
choice (Approach A + «чистый верх» + map fork + cost-benefit table +
compressed in-session execution path).

Structure:
- Phase 1 Pre-flight Task 0 (~15min): 6 tasks verifying ruflo CLI/plugins
  list/MCP smoke/disk/elevation → spec §12 Q1-Q10 resolution + commit.
- Phase 2 Install (~20min): backup CLAUDE.md, ruflo init, .gitignore,
  .mcp.json, settings.json plugins, .env.local cost-budget, optional
  PM2 daemon-as-service. Memory reindex hook (Task 2.10).
- Phase 3 Rewrite 4 normative files (~25min, parallel subagents):
  Pravila v1.13→v1.14, PSR_v1 v2.1→v3.0, CLAUDE.md v1.93→v2.0,
  Tooling v1.17→v2.0. 4 atomic commits. cspell vocab prep Task 3.0.
- Phase 4 Cross-refs sync (~10min): CHANGELOG +v2.0 entry, version drift
  check across 4 normative files.
- Phase 5 Map fork (~20min): docs/automation-graph-ruflo.html fork iter3
  with ruflo group + Queen + 9 swarm-roles + 4 Queen→centroid edges +
  3 new BLACK conflicts + footer cat-legend. 73 legacy nodes get
  subPolicy flag + opacity 0.7.
- Phase 6 Regression (~15min): Pest 742+, Vitest 736+, lychee, gitleaks,
  vue-tsc, phpstan, ruflo doctor, pm2 status.
- Phase 7 Closure (~5min): CHANGELOG regression numbers, push origin
  main, memory update.

Self-review: spec coverage 13/14 sections mapped to tasks; §6 memory
bridge hook gap closed by adding Task 2.10; cspell prep gap closed by
Task 3.0; 4 [TBD reference] placeholders documented as runtime
substitutions with explicit owner/timing.

Total compressed: ~110min in single session.

Decision gates: Phase 1 pre-flight critical fails → STOP plan + escalate.
Phase 2 step 2.2.4 CLAUDE.md modification by init → CRITICAL revert from
backup + escalate. Phase 6 regression fail → Day 7 closure NOT executed
until 0 failed.

Awaiting user choice: Subagent-Driven (recommended for parallel Phase 3)
vs Inline Execution.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-15 09:30:01 +03:00
Дмитрий e55572e22c docs(spec): ruflo big-bang integration design v0.1 + cspell vocab
Full architectural inversion: ruflo Queen-led routing as top entry-point,
existing Pravila §12 / CLAUDE.md §5 п.10 / Pravila §5 ПДн / PSR_v1 R0
become sub-policies. 14 sections: goals, architecture (8→9 levels),
scope (32 plugins), big-bang sequencing (~1.5h compressed in-session),
map fork, memory bridge HNSW, cost-budget controls (\$10/day cap),
Windows daemon, safety walls, cost-benefit deliverable (9 benefits +
8 costs + 10 risks), verification, open questions (10 Q's pre-flight
Task 0), termination, self-review.

Brainstorming via superpowers:brainstorming, economy 0%. User chose
Approach A (Full big-bang) + «чистый верх» architectural model +
map fork (vs side-by-side / new layout) + cost-benefit table deliverable
+ compressed in-session execution path (vs 7-day staged).

cspell-words.txt additions (lowercase per user-dict case rule):
ruflo, ruvnet, hnsw, sona, ruvllm, многоагентный, форк, форка, bak.

Awaiting user review of written spec before invoking writing-plans.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-15 09:19:24 +03:00
Дмитрий 3d32ed52bd docs(plan): Sprint 1 — 5 P0 UI fixes (C2/C4/C5/G1/G2) implementation plan
Atomic TDD plan, 5 tasks, each task: file:line targets + red test scaffold +
green implementation code + verification commands + commit message draft.

- C2 DealsView FilterChip popovers (Проект/Менеджер) — v-menu wrapping
- C4 KanbanView DnD persist через POST /api/deals/transition
- C5 BulkActionsBar window.alert() → v-snackbar
- G1 AdminPricingTiersView submit/delete try/catch + v-alert + snackbar
- G2 AdminSupplierPricesView save per-row error + tooltip + snackbar

0 schema changes. Reuses existing endpoints + extractErrorMessage helper.
Sprint Acceptance: Pest 749+/Vitest 92+/0 regressions/5 atomic commits.

+1 cspell entry: unpushed (dev-process vocab).

Source spec: docs/superpowers/specs/2026-05-15-portal-audit-design.md (e978b33).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-15 08:22:37 +03:00
Дмитрий e978b33cdd docs(spec): portal-wide audit & proposals — 70 items, 6-sprint schedule
Comprehensive audit of Лидерра portal from user's perspective:
- 4 parallel Explore-agents (auth/app-user/admin/shared) → 100+ raw findings
- Router (26 SPA) vs AppSidebar (7 items) vs AdminLayout (5/7 admin routes) coverage
- ТЗ v8.5 §6 CSV-import gap analysis: schema partially ready, code 0% implemented
- Cross-ref with Открытые_вопросы v1.83 (87/71 /11 ⏸)
- Playwright MCP browser smoke (login flow + console + network)

Output: 70 atomic IDs in 11 categories (A-K), groupable to ~30-35 epics,
scheduled across 6 sprints by priority P0 → P1 → P2 → P3 → 🆕 NEW → 🧹 CLEAN.

Sprint 1 (P0, ~2 days): C2 FilterChip popovers + C4 Kanban DnD persist +
  C5 BulkActionsBar window.alert→snackbar + G1+G2 admin error handling.
Sprint 4 (🆕 H1-H9, ~5 days): CSV-import module per ТЗ §6 (исторические
  лиды + проекты from crm.bp-gr.ru → tenant в Лидерре, idempotent через
  webhook_dedup_keys advisory-lock, transaction type historical_import).

Approval: Дмитрий 2026-05-15 night «всё в работу, спринты по приоритету»
через superpowers:brainstorming flow. Next: writing-plans for Sprint 1.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-15 08:11:49 +03:00
Дмитрий aa3976380d fix(plan-6): replace broken absolute memory-link with plain-text reference (pre-push lychee unblock) 2026-05-15 08:10:33 +03:00
Дмитрий 8a22cc45c5 docs(graph): iter3 closure — spec + plan + smoke evidence + cspell terms
iter3 «Automation Graph — interactive highlighting» закрыт.
8 implementation commits ef88435..f0d3d49 (6 feat + 2 fix).
Smoke 12/12 PASS via Playwright (raw JSON + 2 screenshots).
markdownlint/cspell/lychee — clean. Final cross-commit review: APPROVED.

+spec/plan: docs/superpowers/{specs,plans}/2026-05-15-graph-*.md
+smoke evidence: docs/smoke-2026-05-15-graph-highlighting-scenario{2,9}.png
+cspell: NEIGHBOURS / neighbour / BFS / DFS (iter3 vocabulary)

iter4 backlog (non-blocking): I-1 falsy-coercion line 1531, dead var
highlightedNode, SECTION 6 comment update, optional rAF-throttle.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-15 07:04:57 +03:00
Дмитрий f0d3d492a7 feat(graph): btn-clear + search input integration with highlight state 2026-05-15 06:30:55 +03:00
Дмитрий a37d32d3f7 fix(graph): use setSelectedNode API instead of direct state mutation (code review) 2026-05-15 06:28:03 +03:00
Дмитрий b9917a90d4 feat(graph): network click → selectedNode + toggle on repeat 2026-05-15 06:24:06 +03:00
Дмитрий d2fa107d11 feat(graph): legend click delegation — toggle filter + apply highlight 2026-05-15 06:20:22 +03:00
Дмитрий ac2d173089 feat(graph): SECTION 8 — state + indices + opacity computations (infra) 2026-05-15 06:12:43 +03:00
Дмитрий 0bd55b2dbd feat(graph): add data-filter-key to 12 .cat-item elements 2026-05-15 06:07:16 +03:00
Дмитрий 0b6694e802 fix(graph): add intent comment between split .cat-item rules (code review) 2026-05-15 06:04:27 +03:00
Дмитрий ef88435348 feat(graph): CSS rules for interactive legend (.cat-item hover/active states) 2026-05-15 06:00:14 +03:00
Дмитрий e8cc1f1105 docs(plan-6): regions subject-level — design spec + implementation plan
PDD regions feature (commits 4f60add..f982046) shipped с 32-bit маской на
31 субъект, incompatible со schema's 8-битным region_mask CHECK 0..255 →
500 on POST. Interim A (commit b1c3efa) откатил UI; этот эпик возвращает
поле в правильной модели.

Approach 2 — dual-write transition:
- Add projects.regions INT[] (89 codes, GIN-indexed)
- region_mask/region_mode legacy preserved для PhonePrefixService/LeadRouter
  compatibility (Plan 6.5 cleanup)
- Direct copy в supplier_projects.current_regions без bitmask conversion
- UI: <v-autocomplete> с 89 subjects + federal district subtitle

Spec — 14 sections (scope, approach, schema, REGIONS, validation, UI,
outbound, data flow, migration, testing, error, assumptions, OOS, refs).

Plan — 6 tasks (12 new tests, 3 PDD tests refactored):
- Task 0: orientation + baseline
- Task 1: schema delta v8.20 (1 commit)
- Task 2: REGIONS const 31→89 (1 commit) — 89 entries inline по
  конституционному порядку
- Task 3: backend (Store/Update/Service/Model + 5 Pest)
- Task 4: outbound adapter (SyncSupplierProjectsJob + 2 Pest)
- Task 5: frontend (Project type + NewProjectDialog + PDD + 5 Vitest)
- Task 6: regression sweep + close

Key insight (from brainstorming): SupplierProjectDto::regions уже
типизировано array<int, int|string> — supplier API contract supports
89 codes натively, не нужно изменений downstream.

5 ASSUMPTIONS marked в spec §12 (regions order, Москва/МО separate,
existing projects→[], dual-write window, UI subtitle vs subheader) —
confirmed via brainstorming session.

Drive-by: cspell-words.txt +1 entry «федокруг» (term проекта,
используется в spec и других docs).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-14 19:31:23 +03:00
Дмитрий 159ed3eb86 docs(plan): PDD regions field — 1 TDD task + verify sweep
Implementation plan для regions multi-select autocomplete в PDD
(spec: 4f60add docs/superpowers/specs/2026-05-14-pdd-regions-field-design.md).

Task 1 (atomic TDD):
- Step 1: read current state
- Step 2: append 3 failing tests (chips render / select-encodes / clear-resets)
- Step 3: verify 3 RED
- Step 4: implement (REGIONS import + selectedRegions ref + maskToCodes
  helper + watch + reseed line + template autocomplete)
- Step 5: 17 PDD tests pass
- Step 6: vue-tsc + ESLint 0 errors
- Step 7: ProjectsView integration tests still 8/1sk
- Step 8: atomic commit

Task 2 (verify-only):
- Full vitest suite 92f/758+3sk
- Vite build sanity
- Visual smoke 8-step handoff to user

Spec coverage: 100% (verified inline in plan §Self-Review).
Out-of-plan: composable extraction / NewProjectDialog backport TODO / bigint /
mobile — all explicitly deferred.

NB env quirk: Write/Edit may silently fail on cyrillic-path — workaround
через ASCII-Temp + PowerShell Copy-Item задокументирован в plan header.
2026-05-14 17:44:36 +03:00
Дмитрий 4f60add187 docs(spec): PDD regions field — autocomplete + bitmask binding
In-place port региона multi-select autocomplete в ProjectDetailsDrawer.
Закрывает Out-of-plan «Region multi-select autocomplete» из parent spec
(2026-05-14-project-details-drawer-design.md §7).

Подход A (утверждён 2026-05-14):
- v-autocomplete :items="REGIONS.filter(r => r.code !== 0)" (без sentinel)
- reverse-decompose existing region_mask в codes[] при reseedFromProject
- watch selectedRegions → encode mask + mode (include когда пусто, exclude иначе)
- 3 новых vitest case: render chips / select-encodes / clear-resets

Backend без изменений (region_mask + region_mode payload уже в Task 5 onSave).
Backport reverse-decompose в NewProjectDialog (TODO line 172) — out of scope.

cspell-words.txt +1 (иммутабельны).
2026-05-14 17:40:43 +03:00
Дмитрий 0d7f505185 docs(spec): PDD §7 Out-of-scope expanded with reviewer-flagged polish-debt
After SDD execution (9d88955..c5814ec) reviewers flagged 11 non-blocking
issues across Tasks 2/5/6/7/8/9. User decision 2026-05-14: ship as-is, defer
all polish to Plan 6+. Spec §7 расширен 3 кластерами:
- Token drift (4 hardcoded hex × #0f6e56/#f59e0b/#dc2626/480px → CSS vars)
- UX gaps (network-error snackbar / drawer a11y role+aria / Lucide icons)
- Test hardening (testid symmetry / clearAllMocks / .length / comment fix)
+ Cross-cutting silent-error pattern + Sentry breadcrumbs (Б-1 pending).

Полный feature функционально работает (Vitest 92f/755+3sk/0, vue-tsc 0,
ESLint 0, Vite build 2.50s). Polish-debt не блокирует ship.
2026-05-14 17:22:58 +03:00
Дмитрий 2ad35cac72 chore(graph): T11 — Style Guide v2 re-rewrite (clarity for non-tech reader)
Дмитрий обнаружил regression в visual smoke iter2: T2-T5 rewrite сохранил тех-жаргон. Пример MCP: semgrep when «Фаза 3 pre-production: при ревью кода (sk_coderev), при CI перед релизом» — непонятен нон-tech reader'у («Фаза 3»/«pre-production»/«sk_coderev»/«CI»).

Применены 4 новых правила Style Guide v2:
- Фазы 0-3 раскрыты («нулевая/первая/вторая/третья фаза» + контекст)
- Аббревиатуры в скобках с переводом (CI/BYPASSRLS/SAST/XSS/SQLi/PR/RLS/MCP/READ-ONLY/ПДн)
- Узловые ID запрещены — «(sk_coderev)» → «(скил code-review)», «(mcp_redis)» → «(MCP-сервер redis)»
- Английские тех-термины переведены (production→боевая среда, pre-production→перед запуском, race condition→гонка, off-phase debug-runtime→вне основных фаз — для отладки во время работы, subdir-only→из подкаталога)

Затронуты узлы: claude_md/sk_coderev/mcp_boost/mcp_semgrep/mcp_sentry/mcp_redis + label конфликтного ребра ag_pest↔mcp_redis + EDGE_DETAILS для psr_v1→upm/mcp_21st + claude_md→mcp_sentry/mcp_redis.

NODE_DETAILS=73 (intact), EDGES=74 (intact), EDGE_DETAILS=71 (intact), conflict edges=8 (intact). JS syntax OK 89440 chars.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-14 17:15:39 +03:00
Дмитрий fb235e9d8d docs(plan): ProjectDetailsDrawer — 10 atomic tasks (TDD-strict)
Implementation plan для side-panel редактирования single-selected проекта
на /projects (spec: 9d88955 docs/superpowers/specs/2026-05-14-project-details-drawer-design.md).

10 tasks:
 1. Scaffold + null-project no-open test
 2. Render name/limit/days fields
 3. Close emits (X / Cancel / ESC × 2 negative case)
 4. Form reseed on project.id change
 5. Save — PATCH /api/projects/{id} + 422 errors
 6. Pause/Resume + label switch
 7. Delete with confirm
 8. ProjectsView wire (condition >0 → >=2, drawer mount, computed, .has-drawer CSS)
 9. ProjectsView integration tests (5 cases: 0/1/2 selected + close + missing id)
10. Full regression + visual smoke (9 manual checks)

Каждая task: failing test → verify FAIL → impl → verify PASS → commit (TDD-strict).
9 кодовых commits + Task 10 verification only.

Coverage: 16 spec cases (11 unit + 5 integration) реализуются полностью.
Out of plan: confirm dialog при dirty Cancel / optimistic update / mobile / region
autocomplete (region_mask payload-only в Save, UI порт в отдельный sweep).

cspell-words.txt +1 (pdd) — namespacing prefix data-testid'ов компонента.

NB env quirk: Write/Edit tools silently fail on cyrillic repo path —
workaround через ASCII-Temp + PowerShell Copy-Item задокументирован в шапке плана.
2026-05-14 13:38:04 +03:00
Дмитрий 9d889558d3 docs(spec): ProjectDetailsDrawer push-mode design + mockup
Design spec + интерактивный HTML mockup для side-panel редактирования
проекта при выборе одного проекта на /projects.

Поведение:
- selectedIds.size === 1 → drawer справа (480px, push-mode, grid сдвигается)
- selectedIds.size >= 2 → BulkActionsBar внизу (условие в ProjectsView.vue:78
  меняется > 0 → >= 2)
- 0 selected → ни drawer, ни bulk-bar

Footer drawer:
- Слева (destructive): Приостановить (toggle-active) + Удалить (soft-archive)
- Справа (form actions): Отмена (close+clearSelection) + Сохранить
  (PATCH /api/projects/{id})

Backend без изменений — используются существующие endpoints PATCH/DELETE/
toggle-active. Pinia store useProjectsStore уже имеет update/toggleActive/
archive методы.

Прецеденты: DealDetailDrawer.vue (overlay-вариант); push-mode здесь — custom
aside + CSS transform/padding-right, без Vuetify teleport.

Mockup: 3 состояния через JS-toggle (0/1/2+ selected), Forest palette
(Teal #0F6E56, ivory #F6F3EC, noir #012019). Phone masked под 152-FZ ПДн.

cspell-words.txt +1 (юнит) — для упоминания юнит-тестов в spec §6.

Open questions: 0 (все 5 UX-решений утверждены заказчиком 2026-05-14).
2026-05-14 13:33:27 +03:00
Дмитрий 3cd4ac7c59 feat(graph): 3-color conflicts render + sort 🔴🟢 + footer cat-legend
.conflict-item теперь использует динамический bg из CONFLICT_TYPES[type].bg, эмодзи-префикс + цветной name из CONFLICT_TYPES[type].color. Сортировка через CONFLICT_TYPES[type].rank (RED=1, BLACK=2, GREEN=3) — 🔴 не закрыт правилом →  возник на практике → 🟢 закрыт правилом. Footer cat-legend заменил 1 «— конфликт» бэйдж на 3 цветных. Iter2 spec §4.3 — last code task.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-14 13:16:56 +03:00
Дмитрий 8b0da60114 feat(graph): edge legend render + click handler for 7-field edge profile
#legend-panel разделён на 2 containers: #legend-node-content (existing) + #legend-edge-content (new, hidden default). На click по ребру открывается edge layout с 7 полями (источник/получатель/тип связи/когда/что передаёт/обязательность/регламент). showLegend переименована в showNodeLegend; новая showEdgeLegend. Click handler dispatches node vs edge. Iter2 spec §5.4, §5.5.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-14 13:14:20 +03:00