ea63b3da60
Merge pull request 'fix(dsh): follow-ups #49 — legacy-роли тест, python3-guard, очистка скиллов, регрессия O-1 ( #66 )' ( #84 ) from feat/66-followups-49 into main
2026-10-25 13:41:05 +03:00
Andrey Epifancev
58d48b0069
fix(dsh): follow-ups #49 — legacy-роли тест, python3-guard, очистка старых скиллов, регрессия O-1 ( #66 )
2026-10-25 14:32:13 +04:00
Andrey Epifancev
885c451c22
fix(dsh): /approve и гейты резолвят change/план в worktree (.claude/worktrees, .wt) ( #76 )
2026-10-25 14:11:17 +04:00
Andrey Epifancev
c99635f318
merge: main (request_approval #77 ) — конфликт спеки разрешён (оба блока + T1.5-формулировка), M-1/M-2 ( #43 )
2026-10-25 12:59:09 +04:00
Andrey Epifancev
6800550cd5
fix(dsh): O-2 — WARN и в install_global, ассерты артефактов ( #62 )
2026-10-25 12:29:30 +04:00
Andrey Epifancev
183f8d8956
fix(dsh): #62 — PATH-изоляция теста, WARN DSH_HOME, TDD-порядок в sdd ( #62 )
2026-10-25 12:19:53 +04:00
Andrey Epifancev
622dd32e1a
fix(dsh): isSubagent — origin===subagent вместо parentSession (форки не сабагенты) (T2.3, #43 )
2026-10-25 12:11:05 +04:00
Andrey Epifancev
1d35a3be2c
fix(dsh): isSubagent по реальным сигналам рантайма (T2.1, #43 )
2026-10-25 12:03:58 +04:00
Andrey Epifancev
a2453e35e8
feat(dsh): wiring harness-check/role-hint в pre-step, isInjectionVisible ( #43 )
2026-10-25 11:47:28 +04:00
Andrey Epifancev
6e0828e6e7
feat(dsh): prestep — detectAdoption/detectRole/тексты инъекций ( #43 )
2026-10-25 11:36:11 +04:00
Andrey Epifancev
1723806e16
feat(dsh): request_approval-инструмент — модель инициирует аппрув, владелец жмёт Approve ( #77 )
2026-10-25 10:58:31 +04:00
Andrey Epifancev
734c80899d
docs(dsh): sdd-скилл, roles-заметка, спека approval-gates, доки ( #59 )
2026-10-25 02:32:12 +04:00
Andrey Epifancev
653d1df30f
fix(dsh): /approve — per-invocation repoRoot, регистрация по approvalGates, checkBashTargets (T3.1-T3.2,T3.7, #59 )
2026-10-25 02:20:27 +04:00
Andrey Epifancev
a4cda5be8d
feat(dsh): wiring гейтов A/B/C в guard-цепочку + bash-цели + /approve ( #59 )
2026-10-25 02:03:07 +04:00
Andrey Epifancev
c255a24b94
feat(dsh): /approve — единственный писатель approval.md с подтверждением владельца ( #59 )
2026-10-25 01:42:51 +04:00
Andrey Epifancev
8744575271
fix(dsh): gates — write-гейт .superpowers/sdd и проверка всех план-ссылок (T1.1-T1.2, #59 )
2026-10-25 01:36:12 +04:00
Andrey Epifancev
99d7238d90
feat(dsh): gates — чистые decision-функции гейтов A/B/C и approval io ( #59 )
2026-10-25 01:28:30 +04:00
Andrey Epifancev
6d366ca177
fix(dsh): самопроверка гейтит bootstrap/commands — бандл не падает без ctx.on/ctx.inject (I-2, #69 )
2026-10-25 01:08:34 +04:00
Andrey Epifancev
f7b616d32e
fix(dsh): клон-маркер перед fetch — чужой git-репо не трогаем (I-1, #69 )
2026-10-25 01:07:45 +04:00
Andrey Epifancev
91e2b9e2b5
docs(openspec): дельта dsh-install под sync-по-пину и самопроверку + хвосты T1.3/T1.9/T2.7/T2.8/T4.3 ( #69 )
2026-10-25 00:51:42 +04:00
Andrey Epifancev
9a5fa8cac2
fix(dsh): command-check в списках пакета/проверок, self-check логирует до wiring и уважает конфиг (T4.1-T4.4, #69 )
2026-10-25 00:43:27 +04:00
Andrey Epifancev
f1bbbe0412
feat(dsh): самопроверка контракта бандла при активации + команда dsh-harness-check ( #69 )
2026-10-25 00:34:43 +04:00
Andrey Epifancev
1a0c78cbc3
fix(dsh): форс-рефспек тега при смене DSH_SUPERPOWERS_REPO (T3.5, #69 )
2026-10-25 00:26:00 +04:00
Andrey Epifancev
914a54c3e4
fix(dsh): explicit-стейджинг вне клона, вердикты --check/--skills совпадают, fetch от DSH_SUPERPOWERS_REPO (T3.1-T3.3, #69 )
2026-10-25 00:18:59 +04:00
Andrey Epifancev
335e966cfc
feat(dsh): --skills гоняет sync/verify по пину v7.0.1, офлайн-кейсы ( #69 )
2026-10-25 00:06:24 +04:00
Andrey Epifancev
e94e842dfe
fix(dsh): verify — строгая проверка scripts/*, дубликаты frontmatter, тесты (T2.1-T2.6, #69 )
2026-10-24 23:50:09 +04:00
Andrey Epifancev
eef23452ea
feat(dsh): вендор verify-skills — frontmatter, префиксы, висячие ссылки ( #69 )
2026-10-24 23:39:37 +04:00
Andrey Epifancev
3aacd48637
fix(dsh): sync — guard --out от коллизии с источником, негативы unfired/duplicated/optional (T1.6-T1.7, #69 )
2026-10-24 23:33:40 +04:00
Andrey Epifancev
6c003d1d86
fix(dsh): sync — полный набор transform-ов (16), фикстура 15 скиллов (T1.1-T1.2, #69 )
2026-10-24 23:25:14 +04:00
Andrey Epifancev
fce88f04d9
feat(dsh): вендор sync-from-upstream — ассертные transform-ы, staging-swap, override dsh-tools.md ( #69 )
2026-10-24 23:21:53 +04:00
Andrey Epifancev
c08fba2a82
fix(dsh): объяснить ошибку одностороннего маршрута subagent ( #52 )
2026-10-24 21:49:16 +04:00
Andrey Epifancev
4054e13806
fix(dsh): валидировать legacy-кэш и пустой --superpowers-from ( #49 )
2026-10-24 21:20:29 +04:00
Andrey Epifancev
ab458b58d2
fix(dsh): ясное сообщение о невалидном источнике ( #49 )
2026-10-24 21:14:58 +04:00
Andrey Epifancev
3bfcc583bb
feat(dsh): warn about legacy ~/.claude sources at runtime ( #49 )
2026-10-24 21:12:21 +04:00
Andrey Epifancev
60d68464a9
feat(dsh): DSH-owned role paths in installed instructions ( #49 )
2026-10-24 21:11:31 +04:00
Andrey Epifancev
05178869fb
feat(dsh): install superpowers from an explicit source ( #49 )
2026-10-24 21:10:52 +04:00
46e4c3d7ca
Merge pull request 'DSH: OpenSpec — проектные скиллы, --openspec, проверка ( #42 )' ( #60 ) from feat/42-dsh-openspec into main
2026-10-24 18:59:56 +03:00
Andrey Epifancev
8c0fc89bac
fix(dsh): --openspec возвращает 1 при провале openspec init ( #42 )
...
Co-Authored-By: DeepSeek Harness <noreply@deepseek.com>
2026-10-24 19:52:36 +04:00
Andrey Epifancev
748f8e115a
feat(dsh): --openspec добавляет agents-адаптер в проект ( #42 )
...
Co-Authored-By: DeepSeek Harness <noreply@deepseek.com>
2026-10-24 19:26:36 +04:00
Andrey Epifancev
5d0fdc4c0d
fix(dsh): тест --check без openspec ищет bash через системный PATH ( #42 )
...
Co-Authored-By: DeepSeek Harness <noreply@deepseek.com>
2026-10-24 19:22:08 +04:00
Andrey Epifancev
9ecc3eb793
feat(dsh): --check сообщает OpenSpec CLI и agents-скиллы ( #42 )
...
Co-Authored-By: DeepSeek Harness <noreply@deepseek.com>
2026-10-24 19:20:42 +04:00
Andrey Epifancev
1333019ef6
feat(dsh): скиллы OpenSpec в .agents/skills проекта ( #42 )
...
Co-Authored-By: DeepSeek Harness <noreply@deepseek.com>
2026-10-24 19:16:19 +04:00
Andrey Epifancev
6ea3740d5f
fix(dsh): run.sh чинит dsh/bundle/hooks в worktree ( #56 )
...
При core.symlinks=false новый worktree получает dsh/bundle/hooks обычным
файлом с текстом ../../hooks, и пять guard-тестов падают на BLOCKED.
run.sh перед прогоном восстанавливает симлинк (печатает строку о починке),
каталог-копию принимает как есть, незнакомое содержимое — явный FAIL.
Co-Authored-By: DeepSeek Harness <noreply@deepseek.com>
2026-10-24 19:03:17 +04:00
Andrey Epifancev
768bc46339
fix(dsh): install.sh --roles дописывает DSH-заметку в dev.md ( #53 )
...
Установленная копия роли теперь воспроизводима: после копирования roles/
install.sh вставляет в ~/.dsh/roles/dev.md пункт «в DSH исполнение плана —
skill sdd» (после «Режим по умолчанию», с откатом в конец файла, если якоря
нет). Вставка идемпотентна: каждая установка ролей перекопирует файл и
добавляет ровно одну заметку. Общий roles/dev.md не меняется — в Claude Code
строка не действует.
--check сообщает ok/WARN про заметку; тест проверяет наличие, отсутствие
дубля после второго запуска и строку в --check. PORT.md §6 объясняет.
Co-Authored-By: DeepSeek Harness <noreply@deepseek.com>
2026-10-24 18:13:28 +04:00
Andrey Epifancev
f714426b11
feat(dsh): skill sdd — асинхронный протокол исполнения плана ( #41 )
...
dsh/skills/sdd/SKILL.md: два режима контроллера (главная сессия / фоновый
субагент), проверка глубины и маршрутов моделей, диспатч и отчёт файлами,
контракт DONE/DONE_WITH_CONCERNS/NEEDS_CONTEXT/BLOCKED, ожидание через
завершение хода и уведомление, ревью задачи и fix-loop 5 раундов, ledger
с ## Findings, таблица отличий от Claude-SDD.
Тесты: frontmatter, режимы, инструменты, маршруты, ledger, отсутствие
job_output как ожидания; install.test.mjs ждёт два локальных skill.
Co-Authored-By: DeepSeek Harness <noreply@deepseek.com>
2026-10-24 17:40:24 +04:00
Andrey Epifancev
2bee63d305
feat(dsh): overlay профиля — model selection и maxDepth 2 ( #41 )
...
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>
2026-10-24 17:37:54 +04:00
Andrey Epifancev
ed13705cd1
feat(dsh): model-invocable role loader ( #39 )
2026-10-24 16:30:25 +04:00
Andrey Epifancev
7767c5c3d7
feat(dsh): отвязать skills и roles от ~/.claude ( #37 )
2026-10-24 16:20:17 +04:00
Andrey Epifancev
9412bd18e2
fix(dsh): сообщения хуков без namespace superpowers:
2026-10-24 15:42:49 +04:00
Andrey Epifancev
7665218247
fix(dsh): убрать импорты DSH-пакетов из бандла
2026-10-24 15:31:39 +04:00