Решение владельца 2: удаление серверных веток (чеклист закрытия, п. 4) разрешается allow-правилом в настройках проекта; строку добавляет владелец, обвязка её даёт. - doctor.sh, раздел «Проект» (git и workspace): ищет правило, покрывающее `git push origin --delete <любая ветка>`, в .claude/settings.json и settings.local.json проекта и в глобальном settings.json; ok с файлом, WARN с готовой строкой, битый JSON — info. - adopt-project.sh (обычный режим) и new-project.sh (оба режима) печатают строку в «Дальше»; файл настроек не пишут. - SKILL.md: пункт чеклиста для нового WARN. - HARNESS.md: шаг 10 — 8 пунктов в roles/dev.md, рецепт п. 4. - roles/dev.md, п. 4: кто печатает строку; worktree remove раньше branch -D (ветку, выведенную в worktree, git не удаляет). - CHANGELOG 0.4.2, CLAUDE.md «Текущая работа». Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
9.1 KiB
9.1 KiB
Changelog
0.4.2 — 2026-10-23
- Удаление ветки фичи на сервере (чеклист закрытия, п. 4; B3, RT-3, решение владельца 2):
doctor.shв разделе «Проект» ищет allow-правило дляgit push origin --deleteв.claude/settings.json,settings.local.jsonпроекта и в глобальномsettings.json—okс файлом илиWARNс готовой строкой"Bash(git push origin --delete:*)". Строку печатаютadopt-project.shиnew-project.shво всех режимах (раньше — толькоadopt --workspace); файл настроек они не пишут, правило добавляет владелец (#22). HARNESS.md: шаг 10 — чеклист из 8 пунктов вroles/dev.mdи рецепт п. 4.roles/dev.md, п. 4:git worktree removeраньшеgit branch -D(ветку, выведенную в worktree, git не удаляет).
0.4.1 — 2026-10-23
- harness-doctor и README: codegraph ставится
npm i -g @colbymchenry/codegraph(формулы в brew нет) и подключается к Claude Code черезclaude mcp add-json -s user, не черезcodegraph install— тот дописывает секцию в~/.claude/CLAUDE.md, которую сотрётinstall.sh(#19, O-8).
0.4.0 — 2026-10-16
- guard-main решает по цели записи, а не по cwd и тексту команды (#6, B1; RT-1, RT-2, RT-7). Цели — файл Edit/Write, в Bash — редиректы (кроме
/dev/nullиN>&M), команды записи с учётомcd,git -C,sh -c, git-мутации. Цель вне репозитория или в worktree на ветке — пропуск; неразрешимый путь — пропуск, git-мутация с неопределённым репозиторием — блок.git pushблокируется, только если пушит в main;git switch -cв той же команде переводит последующие коммиты на новую ветку.pip installбольше не блокируется. Спека —openspec/specs/hook-guards/spec.md, change в архиве —openspec/changes/archive/2026-10-16-hooks-write-target/. - Несовместимо: исключение для openspec-only коммитов и
openspec archiveна main удалено — архив всегда отдельным PR (решение владельца 1, 11.10.2026). - require-plan берёт корень, ветку,
.claude/code-paths,.boundedи планы из репозитория правимого файла. - Общее ядро
hooks/harness_target.py(python3 stdlib);guard-main.shиrequire-plan.sh— обёртки, регистрация вsettings.jsonпрежняя. Режимtargetsпоказывает, какие цели видит хук. - Сообщения блокировки:
BLOCKED [guard-main]:/BLOCKED [require-plan]:, цель, корень репозитория, выход. - Регрессионный корпус хуков (B2, RT-6): 126 записей из транскриптов пилота + 3 живых случая, размечены по спеке (
docs/retro/scripts/hook_cases_build.py), прогон в песочнице —tests/test-hook-corpus.shпо источникам и строка «корпус хуков» вdoctor.shпо установленным копиям. В песочнице старые хуки дают на корпусе 41 блок (37 ложных), новые — 4 (архивные коммиты в main). hook_blocks_export.pyиretro_blocks.pyсчитают только ошибки хуков: из 126 выгруженных записей 49 оказались выводом команд со словом BLOCKED (O-1), счёт RT-1 в ретро завышен.- Тесты:
test-hook-parse,test-hook-guard-main,test-hook-require-plan,test-hook-corpus,test-hook-export.
0.3.0 — 2026-10-11
- Роли сессии
dev|admin|analyst|qa: общий слойroles/<r>.md(~/.claude/roles/), проектный слой<workspace>/.claude/roles/<r>.md; формат из четырёх разделов (спекаdocs/superpowers/specs/2026-10-11-roles-and-memory-design.md). - Skill
/role <r>: читает оба слоя, раздел памяти роли, «Читать на старте»; строкиbrief:— фоновому агентуbriefing(sonnet, только чтение). - SessionStart-хук
role-hint.sh: подсказка роли по заголовку сессии (claude -n "admin …"), регистр и префиксcc-не важны; ничего не блокирует. link-roles.sh: симлинки ролей и агентов из workspace в репозитории направлений по таблице| Каталог | Репозиторий | Роль |. Память агентов через симлинк не работает (проверено, спека, раздел 11) — для неё запасной вариант 6.5 (notes/agent-memory.md).- Шаблоны
project-template/workspace/иproject-template/role-repo/; режим--workspaceвadopt-project.shиnew-project.sh. - Глобальный CLAUDE.md сжат до ≤ 3 КБ (роль, хуки, память, маркировка, стиль); процесс разработки переехал в
roles/dev.md— таблица адресовdocs/retro/2026-10-11-claude-md-addresses.md. Изменения правил: архив OpenSpec всегда отдельным PR; п. 4 чеклиста закрытия — из worktree по allow-правилу; bounded обновляет спеку при смене API; новый п. 7 — память задачи при закрытии. - Политика памяти: состояние задачи в трекере, уроки в
notes/направления и памяти агентов, в auto-memory — только ловушки машины и индекс. doctor.sh: файлы ролей, самотестrole-hint, режим workspace (симлинки, размеры CLAUDE.md и индекса памяти).- Тесты пакета
tests/run.sh(bash, без зависимостей): хук, роли, размеры, skill/agent, link-roles, workspace, doctor, install. - Ретроспектива
docs/retro/2026-10-11.mdи скриптыdocs/retro/scripts/.
0.2.0 — 2026-09-27
- Skill
harness-doctor(doctor.sh+ чеклист прочтения): машина, самотест хуков, проект; ставится в~/.claude/skills/. - require-plan: защищает любой
src/на любой глубине (было — только от корня), переопределение списком в.claude/code-paths. - SessionStart-хук
harness-check.sh: при старте сессии в неподключённом проекте агент предлагает (или сHARNESS_AUTO_ADOPT=1— сразу выполняет)adopt-project.sh; скрипты бутстрапа ставятся в~/.claude/harness/. adopt-project.sh— подключение обвязки к существующему репозиторию (ветка → бутстрап → ff-merge);project-template/CLAUDE.harness-section.md.- codegraph:
codegraph initв worktree иprojectPathв вызовахcodegraph_explore— MCP-сервер видит только индекс папки запуска. - Порядок старта фичи: worktree на временной ветке → issue → переименование ветки (хук guard-main блокирует запись на main).
- Маркировка находок и решений:
T<n>.<k>,C/I/M-n,R-n,O-n,H-n; обязательный статус fixed / deferred / rejected. - Чеклист закрытия: issue закрывается только при выполнении всех её пунктов, иначе комментарий с закрытыми маркерами; неприменимые к bounded пункты пропускаются с пометкой.
- Чеклист закрытия: п. 6 — отложенные находки собираются в issue Gitea
Follow-ups from #N.
0.1.0 — 2026-09-27
- Первая версия после пилота на obsidian-voice-note (10 задач, 125 тестов, PR #2).
- Хуки: guard-main (main + detached HEAD, Bash-запись, исключение для openspec/), require-plan (.bounded).
- Глобальный CLAUDE.md: маршрутизация superpowers/OpenSpec/Gitea/codegraph, контроллер SDD на sonnet, чеклист закрытия из 6 пунктов, раздел «Decisions made without discussion».
- new-project.sh и шаблон проекта.