From a079c94a6e47b309f8ddf47cb30fcf2d40998572 Mon Sep 17 00:00:00 2001 From: vitya Date: Fri, 29 May 2026 17:03:17 +0300 Subject: [PATCH] meta(private-dev-public-publish): close install + hermes-mapping + test-trigger baseline MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - install: skill copied to ~/.claude/skills via install.ps1; confirmed visible in available-skills mid-session - hermes-mapping: added entry mode:pending, intended auto/software-development (touches git/gh/Gitea-API, tokens, force-push, privacy → audit-gated) - test-trigger: 4/4 positive fire skill, 3/3 negative route elsewhere (clean-context subagent proxy); zero false-positive, no findings - review task remains blocked: skill body still empty skeleton, needs second-pass body-fill first Co-Authored-By: Claude Opus 4.8 (1M context) --- .tasks/STATUS.md | 32 +++++++++++++++++++------------- hermes/mapping.yaml | 7 +++++++ 2 files changed, 26 insertions(+), 13 deletions(-) diff --git a/.tasks/STATUS.md b/.tasks/STATUS.md index a0c8579..13180f2 100644 --- a/.tasks/STATUS.md +++ b/.tasks/STATUS.md @@ -368,32 +368,38 @@ Findings → follow-up tasks в claude-skills. --- -## ⚪ [private-dev-public-publish-install] — [skill private-dev-public-publish, baseline 1/3] Установить скил. Запустить `install.sh` в `~/projects/claude-skills/`, проверить что скил активируется в новой сессии (триггер-фразы из description), сделать `/reload-plugins`. Skeleton-коммит: 63eab18. NB: тело скила пока пустой каркас (Steps/Failure modes/… не заполнены) — это нормально для install (description достаточно для активации); тело дописывается вторым проходом «доведём private-dev-public-publish». +## 🟢 [private-dev-public-publish-install] — [skill private-dev-public-publish, baseline 1/3] Установить скил. Запустить `install.sh` в `~/projects/claude-skills/`, проверить что скил активируется в новой сессии (триггер-фразы из description), сделать `/reload-plugins`. Skeleton-коммит: 63eab18. NB: тело скила пока пустой каркас (Steps/Failure modes/… не заполнены) — это нормально для install (description достаточно для активации); тело дописывается вторым проходом «доведём private-dev-public-publish». -**Status:** ready -**Where I stopped:** (not started) -**Next action:** Запустить install.sh в ~/projects/claude-skills/, в новой сессии проверить активацию на триггер-фразе, /reload-plugins. +**Status:** done +**Where I stopped:** Установлен 2026-05-29 через `install.ps1 -Names private-dev-public-publish` (Windows) → `~/.claude/skills/private-dev-public-publish/SKILL.md`. Подтверждено: скил появился в available-skills прямо в этой сессии (харнес подхватил без явного /reload-plugins). +**Next action:** (none — done; настоящий behavioral-тест активации = задача -test-trigger в чистой сессии) **Branch:** n/a + + --- -## ⚪ [private-dev-public-publish-hermes-mapping] — [skill private-dev-public-publish, baseline 2/3] Добавить запись в `~/projects/claude-skills/hermes/mapping.yaml`. **Режим: pending** (НЕ auto) — скил не чисто стилевой: его Steps трогают git/gh/Gitea-API, токены, force-push, удаление/приватность репо. Требует отдельного аудита перед auto-режимом. +## 🟢 [private-dev-public-publish-hermes-mapping] — [skill private-dev-public-publish, baseline 2/3] Добавить запись в `~/projects/claude-skills/hermes/mapping.yaml`. **Режим: pending** (НЕ auto) — скил не чисто стилевой: его Steps трогают git/gh/Gitea-API, токены, force-push, удаление/приватность репо. Требует отдельного аудита перед auto-режимом. -**Status:** ready -**Where I stopped:** (not started) -**Next action:** Добавить mapping-запись для private-dev-public-publish в режиме pending; запланировать аудит tool-side эффектов перед переводом в auto. +**Status:** done +**Where I stopped:** Запись добавлена в `hermes/mapping.yaml` (секция pending — behavioral audit required), `mode: pending` + `intended: {mode: auto, category: software-development}` + reason про git/gh/Gitea-API/токены/force-push/приватность. Стиль зеркалит using-vds-ops/session-handoff. version маппинга не бампал — schema-версия, не контент. +**Next action:** (none — done; перевод pending→auto только после аудита tool-side эффектов, гейт = -test-trigger + review) **Branch:** n/a + --- -## 🔵 [private-dev-public-publish-test-trigger] — [skill private-dev-public-publish, baseline 3/3] Прогнать триггер-фразы из description на тестовом буфере: убедиться что активируется на СВОИХ фразах («опубликовать форк на гитхаб», «приватный гитеа публичный гитхаб», «publish a fork without exposing dev history», «curated publish to github») И НЕ активируется на 2-3 близких чужих (false-positive check): напр. «инициализируй проект» (→ project-bootstrap), «запушь на гитхаб» (обычный push, не публикация форка), «настрой приватный репо» (без upstream/публикации). +## 🟢 [private-dev-public-publish-test-trigger] — [skill private-dev-public-publish, baseline 3/3] Прогнать триггер-фразы из description на тестовом буфере: убедиться что активируется на СВОИХ фразах («опубликовать форк на гитхаб», «приватный гитеа публичный гитхаб», «publish a fork without exposing dev history», «curated publish to github») И НЕ активируется на 2-3 близких чужих (false-positive check): напр. «инициализируй проект» (→ project-bootstrap), «запушь на гитхаб» (обычный push, не публикация форка), «настрой приватный репо» (без upstream/публикации). -**Status:** blocked -**Where I stopped:** (not started) -**Next action:** После 🟢 install: прогнать свои триггер-фразы (активируется) + 2-3 соседних (НЕ активируется); зафиксировать false-positive результат. -**Blocker:** private-dev-public-publish-install (скил должен быть установлен, чтобы тестировать активацию) +**Status:** done +**Where I stopped:** Прогнано 2026-05-29 через 7 параллельных clean-context субагентов (каждый — свежий контекст, прокси чистой сессии; имплементер прайменный). Результат: 4/4 positive → private-dev-public-publish ✅; 3/3 negative мимо (инициализируй→project-bootstrap, запушь→project-discipline push-gate, настрой приватный репо→project-bootstrap) ✅. Ноль false-positive. Findings нет — description хорошо отскоплен. +**Next action:** (none — done; clean pass, follow-up не требуется) +**Blocker:** (cleared) +**Branch:** n/a + + **Branch:** n/a diff --git a/hermes/mapping.yaml b/hermes/mapping.yaml index ba3ad87..0399504 100644 --- a/hermes/mapping.yaml +++ b/hermes/mapping.yaml @@ -160,3 +160,10 @@ skills: mode: auto category: productivity reason: "Writes .tasks/NEXT_SESSION.md (project-scope, sliding overwrite) and reads it on session start. Bidirectional file-system side-effect, opt-in via CLAUDE.md trigger-line. Behavioral audit via session-handoff-test-trigger required before promotion to auto." + + private-dev-public-publish: + mode: pending + intended: + mode: auto + category: software-development + reason: "Steps shell out to git / gh / Gitea-API, handle tokens, force-push, and repo deletion/privacy toggles — not a purely stylistic skill. Behavioral audit via private-dev-public-publish-test-trigger required before promotion to auto."