35 KiB
Graphify Spike Implementation Plan
For agentic workers: REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (
- [ ]) syntax for tracking.
Goal: Получить evidence по экономии input-tokens Graphify на репо Лидерры (5 baseline-задач A/B), принять решение GREEN/YELLOW/RED по формализации в Tooling-канон.
Architecture: Worktree worktree-graphify-spike (от текущего HEAD) → Ollama+qwen2.5:7b сервис → Graphify CLI → индексация app/+docs/+.claude/ (исключая секреты/телеметрию/handoff) → A/B замеры 5 задач → отчёт в docs/discovery/ → branch-handling по exit-ветке.
Tech Stack: Ollama (Windows installer), qwen2.5:7b (4.7 ГБ), Python 3.10+, uv, Graphify v0.8.20.
Spec: docs/superpowers/specs/2026-05-27-graphify-spike-design.md
Файловая структура (что создаётся/меняется)
- Create:
.claude/worktrees/graphify-spike/— worktree - Modify (worktree):
.gitignore(+строка.graphify/) - Create (worktree):
.graphify/(содержимое — в gitignore) - Create (worktree):
.graphify/config.toml(или эквивалент, конфиг ignore-списка) - Create (worktree):
docs/discovery/2026-05-27-graphify-spike.md— отчёт - Create (worktree):
docs/discovery/2026-05-27-graphify-spike-baseline-A/— транскрипты A-варианта 5 задач (опционально) - Create (worktree):
docs/discovery/2026-05-27-graphify-spike-baseline-B/— транскрипты B-варианта
Машинные изменения (вне репо):
- Установка Ollama сервиса (Windows)
- Скачивание
qwen2.5:7bв%USERPROFILE%\.ollama\models\ - Установка
graphifyyчерезuv tool install
Task 0: Worktree setup (обязательно через superpowers:using-git-worktrees)
Files:
-
Create:
.claude/worktrees/graphify-spike/(полная копия репо) -
Branch:
spike/graphify-2026-05-27 -
Step 1: Invoke using-git-worktrees skill
Skill сам делает: git worktree add .claude/worktrees/graphify-spike -b spike/graphify-2026-05-27 (от текущего HEAD). NTFS-junction для node_modules если потребуется (квирк #108).
- Step 2: Verify worktree
Run from main checkout: git worktree list
Expected output contains: .claude/worktrees/graphify-spike <sha> [spike/graphify-2026-05-27]
- Step 3: cd to worktree for subsequent tasks
Все последующие команды выполняются из .claude/worktrees/graphify-spike/ (worktree-path). Использовать absolute paths в Bash-командах, чтобы не путать checkout'ы (Pravila §15.1 prudence).
Task 1: .gitignore — добавить .graphify/
Files:
-
Modify:
.gitignore(worktree) -
Step 1: Read current .gitignore
Read worktree .gitignore чтобы найти подходящую секцию (обычно есть блок «Tools» или «Cache»).
- Step 2: Add .graphify/ entry
Edit .gitignore, добавить:
# Graphify spike (2026-05-27)
.graphify/
В конец файла или в существующий «Cache» блок.
- Step 3: Verify gitignore matches
Run: git check-ignore -v .graphify/test
Expected: вывод указывает на новую строку в .gitignore.
- Step 4: Commit
git -C .claude/worktrees/graphify-spike add .gitignore
git -C .claude/worktrees/graphify-spike commit -m "chore(spike): gitignore .graphify/ before install"
Task 2: Установить Ollama (Windows сервис)
Files: машинные изменения, не репо.
- Step 1: Check if Ollama already installed
Run: where ollama (PowerShell) или which ollama (Bash)
Expected (если установлен): путь к ollama.exe. Если выводит «not found» — переход к Step 2.
- Step 2: Install via winget
Run: winget install --id Ollama.Ollama -e --accept-source-agreements --accept-package-agreements
Expected: «Successfully installed».
Если winget недоступен (квирк #56 на старых Windows): скачать installer вручную с https://ollama.com/download/windows, запустить OllamaSetup.exe.
- Step 3: Verify Ollama service running
Run (PowerShell): Get-Service -Name Ollama | Select-Object Status, Name
Expected: Status: Running, Name: Ollama.
Если Stopped: Start-Service Ollama.
- Step 4: Verify HTTP endpoint
Run: curl http://localhost:11434/api/tags
Expected: JSON {"models":[]} (модели ещё нет).
- Step 5: Verify CLI
Run: ollama --version
Expected: версия вида ollama version 0.X.Y.
Task 3: Скачать модель qwen2.5:7b + проверить русский
Files: машинные изменения.
- Step 1: Pull model
Run: ollama pull qwen2.5:7b
Expected: progress-bar, в конце «success». Размер ~4.7 ГБ. Это занимает 5-20 мин зависит от канала.
- Step 2: Verify model registered
Run: ollama list
Expected: строка qwen2.5:7b ... 4.7 GB.
- Step 3: Smoke-test русским
Run: ollama run qwen2.5:7b "Извлеки главную концепцию из абзаца: 'Pravila §15.2 — pre-flight sync обязателен перед правкой нормативных файлов чтобы избежать collision параллельных Claude-сессий'. Ответь одной фразой по-русски."
Expected: осмысленный русский ответ, упоминающий «pre-flight sync», «параллельные сессии», или «нормативные файлы». Если ответ — мусор/английский/хайку — это ранний RED-сигнал, фиксируем для отчёта.
- Step 4: Записать время и RAM первого запроса
Run (после Step 3, в отдельном окне): Get-Process ollama* | Select-Object Name, WorkingSet64
Expected: WorkingSet64 ~5-7 ГБ.
Зафиксировать в черновике отчёта: «модель загружена, smoke-test русского: PASS/FAIL, RAM при запросе: X ГБ».
Task 4: Установить uv + Graphify
Files: машинные изменения.
- Step 1: Check uv installed
Run: uv --version
Expected (если установлен): uv X.Y.Z. Если «not found» — переход к Step 2.
- Step 2: Install uv
Run (PowerShell): powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
Expected: «uv installed successfully». Перезапустить shell для PATH update.
- Step 3: Install graphifyy package
Run: uv tool install graphifyy
Expected: «Installed: graphify». Note: package name graphifyy с двумя y (per разведка).
- Step 4: Verify graphify CLI
Run: graphify --version
Expected: версия 0.8.20 (или новее).
- Step 5: Register as Claude Code skill
Run: graphify install
Expected: создаётся .claude/skills/graphify/ или эквивалент. NB: в spike-worktree это нормально; в main checkout — не делать (out-of-scope spike).
- Step 6: Verify skill registered (worktree-local)
Run: ls .claude/skills/ | grep -i graphify
Expected: запись graphify присутствует.
- Step 7: Verify Ollama backend configured
Run: graphify config show (или эквивалент, см. graphify --help)
Expected: backend = ollama, model = qwen2.5:7b.
Если backend другой: graphify config set backend ollama + graphify config set model qwen2.5:7b.
Task 5: Сконфигурировать ignore-список Graphify
Files:
-
Create (worktree):
.graphify/config.toml(или эквивалент per Graphify docs) -
Step 1: Узнать формат конфига
Run: graphify config init (если поддерживается) или graphify --help для документации.
Expected: создаётся файл-шаблон конфигурации (.graphify/config.toml или .graphifyignore или эквивалент).
- Step 2: Add ignore patterns
В конфиг (формат зависит от Graphify — .graphifyignore gitignore-style или [ignore] секция в TOML):
# Out-of-scope spike (per spec §4.2)
node_modules/
vendor/
bin/
liderra_v8_handoff/
web/
db/schema.sql
db/00_create_roles.sql
.env
.env.*
docs/observer/episodes-*.jsonl
docs/superpowers/audits/
docs/discovery/
- Step 3: Verify ignore работает
Run: graphify scan --dry-run . (или эквивалент, dry-run/preview команда)
Expected: список файлов для индексации не содержит ни одного из ignore-паттернов выше. Особенно важно: episodes-*.jsonl отсутствует (PII-риск).
- Step 4: Sanity check scope
Manually grep dry-run output: должны быть app/, docs/Pravila_*.md, .claude/skills/*.md. НЕ должно быть liderra_v8_handoff/, node_modules/.
- Step 5: Commit конфига
git -C .claude/worktrees/graphify-spike add .graphify/config.toml # или .graphifyignore — что Graphify создал
git -C .claude/worktrees/graphify-spike commit -m "chore(spike): graphify ignore-config (scope app+docs+.claude, exclude secrets/PII/handoff)"
NB: сам .graphify/ директорий в .gitignore per Task 1, но config-файл коммитим явно (опция git add -f если потребуется).
Task 6: Первая сборка графа + измерения
Files:
-
Create (worktree, gitignored):
.graphify/graph.*(формат — Graphify-internal) -
Step 1: Засечь start time
Run: Get-Date -Format "yyyy-MM-dd HH:mm:ss" → сохранить в черновик отчёта как BUILD_START.
- Step 2: Запустить полную сборку
Run: graphify build . (или graphify index . — точная команда per CLI)
Expected: progress-bar по фазам (Tree-sitter parse → Ollama semantic). Tree-sitter — быстро (~1-2 мин), Ollama — главное ожидание (1-3ч).
Если процесс падает / висит >3ч / RAM >12 ГБ: kill, фиксировать как ранний RED, переход к Task 12 RED-протокол.
- Step 3: Засечь end time
После завершения: Get-Date -Format "yyyy-MM-dd HH:mm:ss" → BUILD_END. Дельта = время первой сборки.
- Step 4: Измерить размер графа
Run: (Get-ChildItem -Recurse .graphify | Measure-Object -Property Length -Sum).Sum / 1MB
Expected (прогноз): 50-200 МБ. Зафиксировать фактическое.
- Step 5: Измерить количество узлов/рёбер
Run: graphify stats (или эквивалент)
Expected: Nodes: NNNN, Edges: MMMM. Прогноз 3-4k nodes. Зафиксировать.
- Step 6: Измерить покрытие docs/
Run: graphify stats --filter "docs/**/*.md" (если поддерживается) или manually считать из логов сборки сколько MD-файлов успешно обработано.
Expected: процент успешно обработанных Ollama файлов. Если <70% — ранний YELLOW-сигнал.
- Step 7: Измерить RAM Ollama в idle (после сборки)
Подождать 5 мин после сборки. Run: Get-Process ollama* | Select-Object Name, @{N='RAM_GB';E={$_.WorkingSet64/1GB}}
Expected (порог GREEN): <8 ГБ. Зафиксировать.
- Step 8: Записать все метрики в черновик отчёта
Edit docs/discovery/2026-05-27-graphify-spike.md (создан в Task 11) заполнить секцию «Базовые метрики» (даже если файл ещё не создан — держать черновик в памяти/scratch).
Task 7: Baseline-задача 1 — «tenant_id в SetTenantContext»
Files:
-
Create (опционально, для prosperity):
docs/discovery/2026-05-27-graphify-spike-baseline-A/task1-transcript.md -
Step 1: A-вариант (baseline без графа) — открыть свежую Claude-сессию
В новой сессии Claude Code (или в текущей, перед загрузкой /graphify), задать промпт:
«Где обрабатывается tenant_id в SetTenantContext? Покажи файл, метод, и как middleware устанавливает app.current_tenant_id в PostgreSQL.»
Дать Claude отработать классически (Read/Grep/Glob).
- Step 2: Зафиксировать A-метрики
Записать в черновик:
- Кол-во tool-calls (Read+Grep+Glob): N_A
- Суммарный размер прочитанных файлов в KB: SIZE_A
- Время до финального ответа: T_A (грубо)
- Качество ответа (1-5 субъективно)
Источник tool-calls — посчитать вручную по UI или из episodes JSONL (если включена observer).
- Step 3: B-вариант (с графом) — загрузить Graphify в той же или новой сессии
В Claude Code: /graphify . (активация skill). Дождаться подтверждения «граф загружен».
- Step 4: Задать тот же промпт
Тот же текст вопроса. Claude должен сначала запросить граф через graphify-команды, потом отвечать.
-
Step 5: Зафиксировать B-метрики
-
Кол-во tool-calls: N_B
-
Суммарный размер запросов к графу + последующих Read: SIZE_B
-
Время: T_B
-
Качество (1-5)
-
Step 6: Вычислить дельту
Экономия токенов task1: (SIZE_A - SIZE_B) / SIZE_A * 100%
Экономия tool-calls task1: (N_A - N_B) / N_A * 100%
Записать в черновик отчёта строкой задачи 1.
- Step 7: Commit транскрипта (опционально)
git -C .claude/worktrees/graphify-spike add docs/discovery/2026-05-27-graphify-spike-baseline-A/task1-transcript.md
git -C .claude/worktrees/graphify-spike commit -m "spike: baseline task 1 A-transcript (tenant_id setter)"
Task 8: Baseline-задача 2 — «Pravila про параллельные сессии»
Files: аналогично Task 7.
- Step 1: A-вариант — свежая сессия, без
/graphify
Промпт:
«Что говорит Pravila про параллельные Claude-сессии? Перечисли подсекции §15 с кратким смыслом каждой.»
-
Step 2: A-метрики (N_A, SIZE_A, T_A, quality_A)
-
Step 3: B-вариант —
/graphify . -
Step 4: Тот же промпт
-
Step 5: B-метрики (N_B, SIZE_B, T_B, quality_B)
-
Step 6: Дельта task 2
-
Step 7: Commit транскрипта (опционально)
git -C .claude/worktrees/graphify-spike add docs/discovery/2026-05-27-graphify-spike-baseline-A/task2-transcript.md
git -C .claude/worktrees/graphify-spike commit -m "spike: baseline task 2 A-transcript (Pravila §15 parallel sessions)"
Task 9: Baseline-задача 3 — «Job-классы, трогающие LedgerService»
Files: аналогично.
- Step 1: A-вариант
Промпт:
«Покажи все Job-классы (
app/Jobs/), которые вызывают методыLedgerService. Перечисли имя джоба и какой метод сервиса зовётся.»
- Step 2-7: повтор паттерна Task 7-8
Code-graph навигация — здесь Graphify должен сиять (function-call graph). Если экономии нет здесь — это серьёзный RED-сигнал.
- Step 8: Commit транскрипта
Task 10: Baseline-задача 4 — «ADR Universal Icons MCP граница»
- Step 1: A-вариант
Промпт:
«В каком ADR решение про границу Universal Icons MCP против Lucide icons? Покажи Decision-item и Consequences.»
- Step 2-7: повтор паттерна
Кросс-доковая навигация. Graphify должен найти ADR-006 Decision-4 без чтения 12 ADR-файлов.
- Step 8: Commit
Task 11: Baseline-задача 5 — «DEFERRED узлы Tooling»
- Step 1: A-вариант
Промпт:
«Какие узлы в Tooling Прил.Н помечены как DEFERRED (статус pending install / pending Б-1 / нет нужного окружения)? Перечисли номера и причину defer.»
- Step 2-7: повтор
Структурный запрос по нормативке. Если Graphify не извлёк attribute-блоки из Tooling — это YELLOW-сигнал для русско-язычной семантики.
- Step 8: Commit
Task 12: Инкрементальная пере-сборка — измерить время
Files:
-
Modify (worktree, throwaway): любой markdown в
docs/(вернуть после) -
Step 1: Сделать throwaway-правку
Edit docs/Pravila_raboty_Claude_v1_1.md — добавить в конец строку <!-- spike-test 2026-05-27 -->. Сохранить.
- Step 2: Засечь время инкремента
Run: Get-Date -Format "HH:mm:ss" → start.
Run: graphify update . (или эквивалент инкрементальной команды).
Run: Get-Date -Format "HH:mm:ss" → end. Дельта = время инкремента.
Expected (порог GREEN): <2 мин. Зафиксировать фактическое.
- Step 3: Откатить правку
Run (worktree): git checkout docs/Pravila_raboty_Claude_v1_1.md
Verify: правка ушла, файл чистый.
- Step 4: Записать метрику инкремента в отчёт
Task 13: Написать отчёт docs/discovery/2026-05-27-graphify-spike.md
Files:
-
Create (worktree):
docs/discovery/2026-05-27-graphify-spike.md -
Step 1: Создать файл по шаблону
# Graphify Spike — Results Report
**Дата:** 2026-05-27
**Spec:** [../superpowers/specs/2026-05-27-graphify-spike-design.md](../superpowers/specs/2026-05-27-graphify-spike-design.md)
**Plan:** [../superpowers/plans/2026-05-27-graphify-spike.md](../superpowers/plans/2026-05-27-graphify-spike.md)
**Вердикт:** GREEN / YELLOW / RED (заполнить по итогам)
## 1. Окружение
- Ollama: vX.Y.Z, qwen2.5:7b (4.7 ГБ)
- Graphify: vX.Y.Z
- Worktree: `.claude/worktrees/graphify-spike`
- OS: Windows Server 2022
## 2. Базовые метрики
| Метрика | Значение | Порог GREEN |
|---|---|---|
| Время первой сборки | XX мин | <3ч |
| Размер `.graphify/` | XX МБ | (прогноз 50-200) |
| Узлов графа | XXXX | (прогноз 3-4k) |
| Покрытие docs/ (% MD успешно обработано) | XX% | ≥70% |
| RAM Ollama idle (после сборки, 5 мин позже) | X.X ГБ | <8 ГБ |
| Время инкрементальной пере-сборки 1 файла | X мин | <2 мин |
## 3. Smoke-test русского
Запрос: «Извлеки концепцию из абзаца про Pravila §15.2».
Ответ Ollama qwen2.5:7b: [вставить дословно]
Оценка: PASS / FAIL.
## 4. A/B замеры 5 задач
| # | Задача | N_A | SIZE_A KB | T_A | qual_A | N_B | SIZE_B KB | T_B | qual_B | Экономия KB | Экономия calls |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | tenant_id setter | | | | | | | | | XX% | XX% |
| 2 | Pravila §15 | | | | | | | | | XX% | XX% |
| 3 | LedgerService jobs | | | | | | | | | XX% | XX% |
| 4 | ADR Universal Icons | | | | | | | | | XX% | XX% |
| 5 | DEFERRED Tooling | | | | | | | | | XX% | XX% |
| **Среднее** | | | | | | | | | | **XX%** | **XX%** |
## 5. Qualitative observations
- Качество русского markdown семантики: (описание)
- Поведение Graphify на code-graph задачах: (описание)
- Поведение на кросс-доковых задачах: (описание)
- Stability / crashes / quirks Windows: (описание)
## 6. Exit decision
Применяя exit criteria spec §6:
- [ ] GREEN: все 4 условия GREEN → формализация Approach B следующей задачей
- [ ] YELLOW: одно из YELLOW-условий → личный инструмент контроллера, без Tooling-канона
- [ ] RED: одно из RED-условий → полный откат
**Вердикт:** ...
**Обоснование:** ...
## 7. Next steps (по вердикту)
(заполнить из spec §6 для выбранной ветки)
- Step 2: Заполнить метрики собранные в Tasks 6-12
Все числовые ячейки таблиц заполнить фактическими.
- Step 3: Заполнить qualitative observations
Чёрные субъективные впечатления — особенно про русский Ollama и поведение на нашем markdown-стиле.
- Step 4: Commit отчёта (без вердикта)
git -C .claude/worktrees/graphify-spike add docs/discovery/2026-05-27-graphify-spike.md
git -C .claude/worktrees/graphify-spike commit -m "docs(spike): graphify spike metrics report (pre-verdict)"
Task 14: Принять решение GREEN/YELLOW/RED
Files:
-
Modify (worktree):
docs/discovery/2026-05-27-graphify-spike.md(заполнить вердикт) -
Step 1: Применить exit criteria spec §6
Проверить по таблице:
GREEN (все 4):
avg_savings >= 30% AND
min 3 of 5 tasks >= 20% AND
incremental_time < 2min AND
ram_idle < 8GB
YELLOW (хотя бы одно):
avg_savings 15-30% OR
works only on code (not markdown) OR
ram 8-12 GB
RED (хотя бы одно):
avg_savings < 15% OR
Russian semantics = mess OR
build_time > 3h OR
ram > 12GB OR
Windows crashes
- Step 2: Заполнить §6 «Exit decision» в отчёте
Поставить чекбокс на выбранной ветке. Обоснование с цифрами.
- Step 3: Заполнить §7 «Next steps»
Скопировать соответствующие действия из spec §6 для выбранной ветки.
- Step 4: Commit вердикта
git -C .claude/worktrees/graphify-spike add docs/discovery/2026-05-27-graphify-spike.md
git -C .claude/worktrees/graphify-spike commit -m "docs(spike): graphify spike verdict <GREEN|YELLOW|RED> + next steps"
- Step 5: Show user the verdict + ask for next-step confirmation
Пользователю — короткое summary вердикта + предложить переход к Task 15 (один из 15-GREEN / 15-YELLOW / 15-RED).
Task 15-GREEN: Branch handling — merge to main, оставить Graphify установленным
Только если verdict = GREEN.
Files:
-
Modify:
.gitignore(main) -
Add:
docs/discovery/2026-05-27-graphify-spike.md(main) -
Step 1: cd to main checkout
cd c:/моя/проекты/портал crm/Документация
- Step 2: Pre-flight sync per Pravila §15.2
Хотя spike не трогал 8 нормативных файлов, перед merge — стандартный sync:
git fetch origin
git log HEAD..origin/main --oneline
Если есть unmerged commits на origin/main — rebase спайк-ветки.
- Step 3: Merge spike branch
git merge --no-ff spike/graphify-2026-05-27 -m "merge: graphify spike GREEN — verdict + .gitignore"
Expected: merge без конфликтов (только .gitignore +отчёт), оба файла новые/не пересекаются с main.
- Step 4: Push
git push origin main
- Step 5: Memory entry
Создать memory/project_graphify_spike_green.md:
---
name: project-graphify-spike-green
description: Graphify spike 2026-05-27 — GREEN verdict, awaiting Approach B (full integration as 19th off-phase)
metadata:
type: project
---
Graphify spike (2026-05-27) показал GREEN: avg экономия XX%, RAM XX ГБ, build XX мин.
**Why:** evidence-driven решение перед формализацией; spec [[../specs/2026-05-27-graphify-spike-design.md]] выбрал spike-first.
**How to apply:** при следующей сессии — предложить Approach B (ADR-017 + #89 Tooling + 19-я off-phase подкатегория `knowledge-graph-tooling` + IS9 vet + lefthook + observer integration). До тех пор Graphify установлен и работает локально, но не в Tooling-каноне.
См. отчёт `docs/discovery/2026-05-27-graphify-spike.md`.
Добавить запись в MEMORY.md index:
- [Graphify spike GREEN](project_graphify_spike_green.md) — verdict GREEN 2026-05-27, awaiting Approach B
- Step 6: Worktree cleanup
Worktree оставить активным (можно использовать дальше) ИЛИ удалить если уже не нужен:
git worktree remove .claude/worktrees/graphify-spike # optional
Branch не удаляем — merge зафиксирован в истории main.
- Step 7: Доложить пользователю
«GREEN — мерж в main <commit-sha>, push'нуто. Approach B (формализация) — отдельной задачей. Memory обновлён.»
Task 15-YELLOW: Branch handling — merge to main, личный инструмент без формализации
Только если verdict = YELLOW.
Files:
-
Same as 15-GREEN (
.gitignore+ отчёт) -
Memory:
memory/feedback_graphify_yellow.md -
Step 1-4: same as 15-GREEN (cd main, pre-flight, merge, push)
-
Step 5: Memory entry с правилами использования
Создать memory/feedback_graphify_yellow.md:
---
name: feedback-graphify-yellow
description: Graphify spike 2026-05-27 — YELLOW verdict, личный инструмент контроллера без формализации в Tooling
metadata:
type: feedback
---
Graphify работает частично (avg экономия XX%, [причина частичной]).
**Why:** spike 2026-05-27 показал YELLOW per exit criteria spec §6.
**How to apply:**
- Звать Graphify на: [конкретные классы задач где экономия была — например только код-граф, не markdown]
- НЕ звать на: [классы где экономии не было — например русский markdown семантика]
- Graphify установлен локально, в Tooling-каноне НЕ зарегистрирован (без #89, без ADR, без §3.3 row).
- Пересмотр при выходе Graphify v1.0 ИЛИ если появится более качественная локальная LLM для русского.
См. отчёт `docs/discovery/2026-05-27-graphify-spike.md`.
Добавить в MEMORY.md index аналогично GREEN.
-
Step 6: Worktree остаётся (для дальнейших вызовов graphify)
-
Step 7: Доложить пользователю
«YELLOW — мерж в main, Graphify работает частично, правила использования зафиксированы в memory.»
Task 15-RED: Branch handling — cherry-pick report, полный откат всего
Только если verdict = RED.
Files:
-
Cherry-pick to main:
docs/discovery/2026-05-27-graphify-spike.md -
Memory:
memory/project_graphify_spike_negative.md -
Step 1: cd to main checkout
cd c:/моя/проекты/портал crm/Документация
- Step 2: Pre-flight sync per Pravila §15.2
git fetch origin
git log HEAD..origin/main --oneline
- Step 3: Cherry-pick только отчёт (без .gitignore)
Найти SHA коммита отчёта (Task 13 Step 4 + Task 14 Step 4):
git log spike/graphify-2026-05-27 --oneline | grep "spike): graphify"
Cherry-pick последний (с вердиктом):
git cherry-pick <verdict-commit-sha>
Если конфликт (например файл docs/discovery/ оба ветки трогали) — git checkout --theirs <file> для версии из спайк-ветки.
- Step 4: Push отчёт
git push origin main
- Step 5: Memory entry (negative result)
Создать memory/project_graphify_spike_negative.md:
---
name: project-graphify-spike-negative
description: Graphify spike 2026-05-27 — RED verdict, полный откат; не пробовать снова без [условие]
metadata:
type: project
---
Graphify v0.8.20 + Ollama qwen2.5:7b на Лидерре — RED.
**Why:** [конкретная RED-причина из вердикта — экономия <15% / Ollama-семантика мусор / RAM >12GB / crashes].
**How to apply:**
- НЕ предлагать Graphify-аналогичные инструменты до тех пор пока не изменилось [условие — например выйдет v1.0, или появится локальная LLM лучше qwen2.5:7b на русском].
- Альтернатива codegraph (colbymchenry) — не пробована, может быть пересмотрена отдельно если RED-причина была не в semantic-качестве.
См. отчёт `docs/discovery/2026-05-27-graphify-spike.md` (cherry-pick'нутый на main).
Добавить в MEMORY.md index.
- Step 6: Удалить worktree
git worktree remove --force .claude/worktrees/graphify-spike
Expected: директория удалена.
- Step 7: Удалить branch
git branch -D spike/graphify-2026-05-27
- Step 8: Uninstall Graphify
uv tool uninstall graphifyy
- Step 9: Удалить Ollama-модель
ollama rm qwen2.5:7b
Expected: освобождено ~4.7 ГБ диска.
- Step 10: Uninstall Ollama сервис
Run (PowerShell): winget uninstall Ollama.Ollama -e
Expected: «Successfully uninstalled».
Альтернативно — через Control Panel → Programs.
- Step 11: Verify cleanup
where ollama # should fail with "not found"
where graphify # should fail with "not found"
Get-ChildItem $env:USERPROFILE\.ollama # should not exist or be empty
- Step 12: Доложить пользователю
«RED — откат завершён. Worktree/branch удалены, Graphify+Ollama+model снесены, отчёт cherry-pick'нут на main <sha>. Memory обновлён negative result. Освобождено ~5 ГБ диска.»
Self-Review (выполнено)
Spec coverage:
- §1 Контекст → Tasks выполняют spike с реальными измерениями. ✅
- §2 Цель → Task 14 принимает решение по данным Tasks 7-12. ✅
- §3 Решения (7 штук) → Task 2 (Ollama), 3 (qwen2.5:7b), 4 (Graphify+install), 5 (ignore+scope), 6 (build). ✅
- §4.1 Окружение → Tasks 0+2+3+4. ✅
- §4.2 Scope → Task 5 ignore-конфиг. ✅
- §4.3 Хранение артефактов → Task 1 (.gitignore) + Task 13 (отчёт). ✅
- §5.1 Базовые метрики → Task 6 Steps 3-7 + Task 12. ✅
- §5.2 5 baseline-задач → Tasks 7-11. ✅
- §5.3 Не меряем → не нужны task'и (negative scope). ✅
- §6 Exit criteria → Task 14 + Tasks 15-GREEN/YELLOW/RED. ✅
- §7 Timeline → распределено по task'ам. ✅
- §8 Out-of-scope → не делается ни в одном task'е (явные пропуски нормативки/lefthook/observer). ✅
- §9 Что коммитим → .gitignore (Task 1) + отчёт (Tasks 13, 14) + опционально config (Task 5) + опционально транскрипты A (Tasks 7-11). ✅
- §10 Отложенное до Approach B → не делается. ✅
- §11 Связанные артефакты → ссылки в отчёте. ✅
Placeholder scan:
- ✅ Все «Step N» содержат конкретные команды.
- ⚠️ Качество ответа A/B — субъективная оценка (1-5), это OK для спайка но не «implement later».
- ✅ Нет «TODO», «TBD», «implement later».
- ⚠️ Точные команды Graphify CLI могут отличаться от реальных — fallback через
graphify --helpявно указан в Tasks 5+6.
Type consistency:
qwen2.5:7b— везде с двоеточием. ✅graphifyy(double y) — npm-name, везде одинаково. ✅spike/graphify-2026-05-27ветка — везде одинаково. ✅.claude/worktrees/graphify-spikeпуть — везде одинаково. ✅
Self-review закрыт. Issues найденные — fix'ить inline по ходу исполнения если реальная CLI отличается.
Execution Handoff
Plan complete and saved to docs/superpowers/plans/2026-05-27-graphify-spike.md.
Two execution options:
1. Subagent-Driven (recommended) — я диспатчу свежий subagent на каждую task, ревьюю между задачами, быстрая итерация. Особенно подходит здесь — Task 6 (сборка графа 1-3ч) и Tasks 7-11 (по 30 мин каждая) — естественные точки чекпойнтов.
2. Inline Execution — выполняю tasks в этой сессии через executing-plans, batch-исполнение с чекпойнтами для ревью.
Какой подход?