dsh/subagent-models.yml — opt-in overlay: subagent-model-selection-settings с
маршрутами deepseek-flash/deepseek-v4-pro и subagent.maxDepth: 2. В бандл не
входит: строки нет в headless, включённый флаг ломает загрузку.
install.sh --check сообщает overlay и находит maxDepth: 2 в патче профиля.
PORT.md §5 — как включить и что это даёт; §7/§8 обновлены.
Co-Authored-By: DeepSeek Harness <noreply@deepseek.com>
Design note и spec delta для фазы #41: два режима контроллера (главная
сессия / фоновый сабагент), асинхронный протокол диспатча и отчётов,
fix-loop, ledger с ## Findings, карта из двух маршрутов моделей.
Основание — измеренные ограничения DSH 0.2.1-rc.3: subagent.maxDepth по
умолчанию 1, у subagent нет provider/model без modelSelectionSettings,
выбор модели работает сразу только в workflow.agent().
Co-Authored-By: DeepSeek Harness <noreply@deepseek.com>
Срез с 2026-10-11 (2 сессии): метрики и сравнение с 11.10, 6 блокировок размечены в корпус (135/135), хвостов нет, поправки владельца; находки RT-21…RT-25, бэклог B13–B17.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
openspec archive harness-retro: change → openspec/changes/archive/2026-10-24-harness-retro/; openspec/specs/harness-retro/spec.md (22 требования), hook-guards — MODIFIED «Регрессионный корпус хуков»; известные ошибки корпуса вынесены в отдельное требование, чтобы текст требования был ≤ 500 символов (validate --strict).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- C-1: транскрипты сабагентов (<сессия>/subagents/*.jsonl) вливаются в
сессию-родителя — ходы, токены, инструменты, codegraph, блокировки,
отказы; промпты, роль, стартовый контекст — только из основного.
hook_blocks_export.py выгружает их блокировки с сессией-родителем.
- I-7: период режется по меткам времени записей; сессия на стыке
делится между ретро, стартовый контекст — если первый ход в периоде.
- I-1: простые команды Bash — shlex с punctuation_chars, «|» в кавычках
команду не делит. I-2: правило src/ ловит и сам каталог src.
- I-3: clip() — redact до обрезки (кандидаты, выгрузка), роль — redact.
- I-4: без --since период берётся из существующего --out; --from рисует
«Цифры» из сохранённого среза. SKILL.md передаёт период явно.
- I-5: выгрузка ретро без разметки — сборка корпуса падает.
- I-6: сводка компакции — не промпт; «перечитай» — побуждение перечитать.
- 2026-10-11.metrics.json: несравнимое помечено (без сабагентов, широкий
«перечитай»). Спека и design.md (Decisions) обновлены.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Синтетические сообщения об ошибке API (model <synthetic>) не считаются ходом модели (O-18, живой прогон).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
OpenSpec change harness-retro: proposal, specs (harness-retro — новая
capability; hook-guards — MODIFIED «Регрессионный корпус хуков»: сегменты
и known), design с Decisions made without discussion. По итогам
brainstorming 24.10.2026: черновик ретро, срез одного проекта, запуск из
репозитория обвязки, разметка блокировок агентом в корпус, хвосты по
текущему состоянию, поправки владельца по процессу, подход A.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
С Claude Code 2.1.206 вход в worktree вне .claude/worktrees/ спрашивает
подтверждение при любых allow-правилах. EnterWorktree с именем создаёт
worktree в <repo>/.claude/worktrees/<slug> на ветке worktree-<slug> от
origin/main и входит без вопроса; ветка переименовывается в
feat/<id>-<slug>.
- roles/dev.md: «Исполнение» — EnterWorktree с именем; п. 1 закрытия —
archive-<id>; п. 4 — ExitWorktree (keep) снимает блокировку сессии,
затем git worktree remove и branch -D.
- .claude/worktrees/ в .gitignore: adopt-project.sh, project-template,
этот репозиторий; doctor.sh — WARN, если не игнорируется.
- Спека hook-guards: сценарии «worktree внутри репозитория» для
guard-main и require-plan; тесты закрепляют уже верное поведение.
- HARNESS.md (шаг 4, п. 4, подтверждения), SKILL.md, CHANGELOG 0.5.1,
CLAUDE.md.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Пересмотр решения владельца 2: allow-правила (git worktree, git branch
-m/-D, push фичевых и chore-веток, push --delete, tea issues/pulls
create/list/edit/comments) ставит install.sh в ~/.claude/settings.json,
а не владелец руками. Список — global/permissions.json; merge и push в
main в нём нет. Правила только дописываются, чужие не трогаются; копия
списка — ~/.claude/harness/permissions.json для doctor.sh.
- install.sh: шаг 5 — слияние permissions.allow; --no-permissions;
неизвестный аргумент — ошибка; --check показывает permissions N/M.
- doctor.sh, «Машина»: ok / WARN со списком недостающих / MISS.
- adopt/new-project: строка push --delete — для --no-permissions.
- harness-doctor: агент чинит install.sh --no-permissions, права ставит
владелец (иначе обход отказа классификатора auto mode).
- EnterWorktree не входит: вход в worktree вне .claude/worktrees/
спрашивает подтверждение при любых правилах (#25).
- README, HARNESS.md, roles/dev.md, CLAUDE.md, ретро (пометка о
пересмотре решения 2), CHANGELOG 0.5.0.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Решение владельца 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>
harness-doctor/SKILL.md советовал `brew install codegraph` — формулы нет,
команда падает. codegraph — npm-пакет @colbymchenry/codegraph; MCP
подключается отдельно через `claude mcp add-json -s user`. Штатный
`codegraph install` не годится: дописывает секцию в ~/.claude/CLAUDE.md,
которую сотрёт install.sh. README (таблица и блок установки) — те же
команды. CHANGELOG 0.4.1.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
openspec archive hooks-write-target: change перенесён в
openspec/changes/archive/2026-10-16-hooks-write-target/, дельта применена —
openspec/specs/hook-guards/spec.md (20 требований), validate --strict проходит.
Ссылки на путь спеки в harness_target.py, hook_cases_build.py и CHANGELOG
переведены на openspec/specs/hook-guards/spec.md; в CLAUDE.md «Текущая работа»
B1+B2 переведены в «Сделано» (PR #12, follow-ups — #13).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
I-1, I-2, M-3, M-4, M-5 (переоценены в Important), M-8; спека и design.md синхронизированы (M-7).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
proposal, specs/hook-guards (16 требований), design с Decisions made without discussion. B1, B2, решение владельца 1; RT-1, RT-2, RT-6, RT-7.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>