51 Commits

Author SHA1 Message Date
aep
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
aep
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