DSH port v2: доставка superpowers вариантом C (sync-по-пину, самопроверка бандла) (#69) #72

Merged
aep merged 19 commits from feat/69-dsh-port-v2 into main 2026-10-25 00:12:57 +03:00
Owner

Issue #69. Design: openspec/changes/dsh-port-v2/ (утверждён владельцем 24.10.2026).

Что сделано

  • dsh/sync/: вендор sync-from-upstream.mjs (16 ассертных transform-ов, 1 optional по R-5, staging-swap, guard --out от коллизии, meta ref/version) и verify-skills.mjs (frontmatter+дубликаты, префиксы только в телах SKILL.md, строгая проверка scripts/*, ILLUSTRATIVE-whitelist).
  • dsh/install.sh: пин DSH_SUPERPOWERS_REF=v7.0.1, клон/fetch (форс-рефспек тега, moved-tag, смена DSH_SUPERPOWERS_REPO), sync→verify (N>0)→copy, explicit-стейджинг вне клона, клон-маркер против затирания чужого репо (I-1), офлайн-кейсы, legacy — сырой WARN-путь без изменений (D-4, удаление — #66).
  • Бандл: самопроверка контракта при активации + команда dsh-harness-check; каждая фича гейтится своей проверкой (I-2), лог до wiring, уважение конфига; существующее поведение не менялось.
  • Спека-дельта openspec/changes/dsh-port-v2/specs/dsh-install/spec.md (ADDED sync-по-пину и самопроверка; MODIFIED источник/офлайн/legacy; BREAKING помечен); доки README/PORT (Layout, Configuration, Update-каденс D-7).

Тесты

dsh/tests/run.sh 110/0 (sync 10, verify 15, install 29, selfcheck 8); tests/run.sh (CC) 630/0; openspec validate dsh-port-v2 --strict valid; живой прогон на реальном клоне obra/superpowers v7.0.1: sync 78 файлов → verify 15 ok, exit 0.

Ревью

Каждая задача — свежий ревьюер v4-pro + fix-loop; финальное ревью всей ветки (C/I/M) + скоуп-ре-ревью фиксов: ready for merge.

Rulings I made (из ledger)

  • R-1: задачи строго последовательно (README/PORT делят T3–T5).
  • R-2: main-дрейф (#63 merge) не трогаем до финального ревью; пересечений не выявлено.
  • R-3: модели — flash (T1/2/5), v4-pro (T3/4 и все ревью).
  • R-4: полный перенос transform-ов обязателен (расхождение с D-1 недопустимо).
  • R-5: 16-й transform (sdd-hook) — optional с явным warn: апстрим v7.0.1 удалил якорь.
  • R-6/R-7: guard --out от коллизии обязателен; трейлеры Co-Authored-By план не задаёт — не требуем.
  • R-8: язык субагентов — английский с Task 3 (решение владельца), контрактные слова без перевода.
  • R-9/R-10: строгая проверка sibling-скриптов обязательна; T2.7/T2.8 — в Task 5.
  • R-11/R-12/R-13/R-14: explicit-стейджинг вне клона, совпадение вердиктов --check/--skills, fetch от DSH_SUPERPOWERS_REPO; command-check в списках пакета; клон-маркер перед fetch; каждая фича гейтится своей самопроверкой.

Deferred (в #70)

T3.4 — тест-пин гейта N>0 (гейт реализован, шва для подмены verify нет).

Issue #69. Design: openspec/changes/dsh-port-v2/ (утверждён владельцем 24.10.2026). ## Что сделано - dsh/sync/: вендор sync-from-upstream.mjs (16 ассертных transform-ов, 1 optional по R-5, staging-swap, guard --out от коллизии, meta ref/version) и verify-skills.mjs (frontmatter+дубликаты, префиксы только в телах SKILL.md, строгая проверка scripts/*, ILLUSTRATIVE-whitelist). - dsh/install.sh: пин DSH_SUPERPOWERS_REF=v7.0.1, клон/fetch (форс-рефспек тега, moved-tag, смена DSH_SUPERPOWERS_REPO), sync→verify (N>0)→copy, explicit-стейджинг вне клона, клон-маркер против затирания чужого репо (I-1), офлайн-кейсы, legacy — сырой WARN-путь без изменений (D-4, удаление — #66). - Бандл: самопроверка контракта при активации + команда dsh-harness-check; каждая фича гейтится своей проверкой (I-2), лог до wiring, уважение конфига; существующее поведение не менялось. - Спека-дельта openspec/changes/dsh-port-v2/specs/dsh-install/spec.md (ADDED sync-по-пину и самопроверка; MODIFIED источник/офлайн/legacy; BREAKING помечен); доки README/PORT (Layout, Configuration, Update-каденс D-7). ## Тесты dsh/tests/run.sh 110/0 (sync 10, verify 15, install 29, selfcheck 8); tests/run.sh (CC) 630/0; openspec validate dsh-port-v2 --strict valid; живой прогон на реальном клоне obra/superpowers v7.0.1: sync 78 файлов → verify 15 ok, exit 0. ## Ревью Каждая задача — свежий ревьюер v4-pro + fix-loop; финальное ревью всей ветки (C/I/M) + скоуп-ре-ревью фиксов: ready for merge. ## Rulings I made (из ledger) - R-1: задачи строго последовательно (README/PORT делят T3–T5). - R-2: main-дрейф (#63 merge) не трогаем до финального ревью; пересечений не выявлено. - R-3: модели — flash (T1/2/5), v4-pro (T3/4 и все ревью). - R-4: полный перенос transform-ов обязателен (расхождение с D-1 недопустимо). - R-5: 16-й transform (sdd-hook) — optional с явным warn: апстрим v7.0.1 удалил якорь. - R-6/R-7: guard --out от коллизии обязателен; трейлеры Co-Authored-By план не задаёт — не требуем. - R-8: язык субагентов — английский с Task 3 (решение владельца), контрактные слова без перевода. - R-9/R-10: строгая проверка sibling-скриптов обязательна; T2.7/T2.8 — в Task 5. - R-11/R-12/R-13/R-14: explicit-стейджинг вне клона, совпадение вердиктов --check/--skills, fetch от DSH_SUPERPOWERS_REPO; command-check в списках пакета; клон-маркер перед fetch; каждая фича гейтится своей самопроверкой. ## Deferred (в #70) T3.4 — тест-пин гейта N>0 (гейт реализован, шва для подмены verify нет).
aep added 19 commits 2026-10-25 00:12:47 +03:00
aep merged commit 653d45598c into main 2026-10-25 00:12:57 +03:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: aep/claude-harness#72
No description provided.