Commit Graph

32 Commits

Author SHA1 Message Date
Дмитрий 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
Дмитрий 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
Дмитрий 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
Дмитрий 32396d97de feat(graph): EDGE_DETAILS data structure (5-field profile for all edges)
Новый объект EDGE_DETAILS — для каждого ребра 5 полей (type/when/transfers/mandatory/rule). Источник и получатель derived from from/to при рендере в T8. Покрытие 100% — все рёбра имеют запись. Тип связи: enum из 9 (содержит/подчиняет/координирует/читает/запускает/документирует/триггерит/альтернатива/конфликт). Iter2 spec §5.1, §5.2, §5.3.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-14 13:11:12 +03:00
Дмитрий cec1a0c979 fix(graph): T6 — remove orphan hookify_plugin.conflicts[1] (economy-mode item)
T6 spec review нашёл orphan item: hookify_plugin conflicts array имел 2 items (PreToolUse:CLAUDE.md-warn + economy-mode хук), но в spec §4.2 классифицирован только первый (8 рёбер, hookify↔hk_economy не среди них). Item 2 без canvas edge counterpart. Remove restores invariant: 16 NODE_DETAILS conflicts items = 8 edges × 2 sides.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-14 13:04:01 +03:00
Дмитрий 93ca58896f feat(graph): 3-color conflicts data (CONFLICT_TYPES + 2 new edges + reclassify 6)
CONFLICT_TYPES enum (RED/BLACK/GREEN с color/bg/emoji/label/rank), CONFLICT() helper расширен опциональным `type` (default RED). 6 существующих рёбер реклассифицированы: 2 🔴 (sk_rls↔ag_rls, hookify↔hk_pre_claude), 4 🟢 (psr_v1↔claude_md, upm↔fd, 21st↔fd, economy↔superpowers). 2 новых  ребра: mcp_pw↔sk_parallel (browser-in-use, квирк #2), ag_pest↔mcp_redis (Redis race в Pest --parallel, квирк 72). NODE_DETAILS conflicts items получили field `type` для всех 12 existing + 4 new items. Iter2 spec §4.1, §4.2, §4.4.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-14 12:59:25 +03:00
Дмитрий f6cd79ccb9 chore(graph): rewrite group D (lefthook + memory, 25 nodes) — plain language
Переписаны nd() блоки для 10 lefthook jobs (lh_gitleaks/lh_mdlint/lh_cspell/lh_stylelint/lh_pint/lh_larastan/lh_squawk/lh_eslint/lh_gitleaks2/lh_lychee) и 15 memory-файлов. Уточнено что «pre-commit stage» = «перед каждым коммитом», «stage_fixed:true» = «авто-сохранить исправленное». Iter2 spec §3 group D. Last text-rewrite task.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-14 12:53:35 +03:00
Дмитрий db7f798a64 chore(graph): rewrite group C (agents + MCP, 18 nodes) — plain language
Переписаны nd() блоки для 11 агентов (ag_pest/ag_rls/ag_explore/ag_general/ag_plan/ag_guide/ag_statusline/ag_hookify/ag_pcreator/ag_pvalid/ag_skreview) и 7 MCP (mcp_pw/mcp_gh/mcp_boost/mcp_semgrep/mcp_sentry/mcp_redis/mcp_21st). Иностранные аббревиатуры расшифрованы (SAST/CVE/SQLi/XSS/ПДн). Iter2 spec §3 group C.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-14 12:47:10 +03:00
Дмитрий 718a6e6ff3 chore(graph): rewrite group B (skills + hooks, 21 nodes) — plain language
Переписаны nd() блоки для 14 Superpowers-скилов (sk_brainstorm/sk_tdd/sk_debug/sk_wplans/sk_eplans/sk_verify/sk_parallel/sk_worktree/sk_pr/sk_subagent/sk_wskills/sk_spreview/sk_coderev/sk_elements), 2 проектных (sk_rls/sk_qitem), 5 хуков (hk_pre_claude/hk_post_md/hk_post_schema/hk_session/hk_economy). Жаргон-блэклист убран, параграф-ссылки сохранены. Iter2 spec §3 group B.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-14 12:42:32 +03:00
Дмитрий 797a17978d fix(graph): T2 polish — psr_v1.limits terminology + superpowers.when full triggers
T2 code-quality review: (1) psr_v1.limits — нормализован framing 3 rules (R14.5/R6.0/R6.1) под единый «обязательное правило» pattern. (2) superpowers.when — восстановлены 11 trigger keywords (brainstorm/TDD/debug/verify/writing-plans/parallel-work/work-tree/finishing-PR/subagent/writing-skills + творческие) — Дмитрий должен видеть конкретные skill-имена.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-14 12:36:51 +03:00
Дмитрий 2db5bd8709 chore(graph): rewrite group A (rules + plugins, 9 nodes) — plain language
Переписаны nd() блоки для pravila/claude_md/psr_v1/tooling/superpowers/fd_plugin/upm/claude_md_mgmt/hookify_plugin. Жаргон-блэклист (hard rule, matcher, pipeline, override, peerDep и др. — 11 терминов) убран; параграф-ссылки сохранены как примечания в скобках. Iter2 spec §3 (Style Guide + group A).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-14 12:29:21 +03:00
Дмитрий bcdcca01a5 fix(graph): T1 hardening — localStorage try/catch + rAF throttle on redraw
После T1 code-quality review: 2 Important issues из spec §9 mitigation list. (1) try/catch обернул read/write localStorage — в Edge InPrivate / quota-exceeded не падает, fallback на default 300. (2) network.redraw() rAF-throttled через redrawScheduled flag — устраняет potential jank при fast drag на медленном hardware (mousemove может fire'ить >60Hz).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-14 12:22:52 +03:00
Дмитрий 97da018724 feat(graph): resize handle 300-900px + localStorage
Drag-handle 6px на левой границе #legend-panel (cursor:col-resize, hover-bg #0d4a5a), JS-обработчики mousedown/mousemove/mouseup, clamp [300, 900]px, сохранение ширины в localStorage ключ liderra-map-legend-width, restoration on DOMContentLoaded. После каждого resize вызывается network.redraw() для пересчёта vis.js canvas. Iter2 spec §2.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-14 12:17:08 +03:00
Дмитрий 54ee37c54e feat(graph): physics off by default + buttons restore radial layout + smooth continuous 2026-05-14 09:23:46 +03:00
Дмитрий d75b3b85d3 feat(graph): radial-sector layout — 6 колец × 4 сектора (workflow/UI/infra/data) 2026-05-14 09:22:45 +03:00
Дмитрий 0da8dbf042 feat(graph): when+limits content for memory files (15) — all 73 nodes done 2026-05-14 09:20:54 +03:00
Дмитрий a19bee28be feat(graph): when+limits content for lefthook jobs (10) 2026-05-14 09:19:38 +03:00
Дмитрий 0634426c30 feat(graph): when+limits content for MCP servers (7) 2026-05-14 09:18:45 +03:00
Дмитрий ee958f884a feat(graph): when+limits content for hooks (5) + agents (11) 2026-05-14 09:17:37 +03:00
Дмитрий 2b38e7be32 feat(graph): when+limits content for skills (14 SP + 2 проектных) 2026-05-14 09:16:02 +03:00
Дмитрий 413803e569 feat(graph): when+limits content for rules + plugins (9 nodes) 2026-05-14 09:14:10 +03:00
Дмитрий 1a7cd90c32 feat(graph): nd() helper supports when+limits fields; showLegend renders them 2026-05-14 09:10:57 +03:00
Дмитрий 40b437ccb7 feat(graph): legend panel — add «Когда используется» and «Ограничения» sections 2026-05-14 09:10:15 +03:00
Дмитрий aa258e1ad0 fix(graph): remove edge labels from canvas, move to hover tooltips 2026-05-14 09:09:42 +03:00
Дмитрий 5c2556b73f fix(graph): canvas rendering artifacts — explicit canvas bg + remove hideEdgesOnDrag 2026-05-14 09:09:01 +03:00
Дмитрий 7ee78a9ad0 feat(docs): interactive automation graph — 73 nodes, 6 conflicts, Solarized dark vis.js
Single-file HTML visualization of Лидерра CRM automation system.
vis.js 9.1.9 force-directed graph: 9 color groups (rules/plugins/skills/hooks/
agents/MCP/lefthook/memory), 6 red dashed conflict edges, click-to-legend panel
with 5 sections (что делает / кому подчиняется / кто / одновременно / конфликты),
search + freeze/unfreeze/reset/clear toolbar. Solarized dark theme.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-13 17:05:59 +03:00