Files
claude-skills/.tasks/session-handoff-install.md
vitya 90c5be7c88 fix(skills): session-handoff yaml desc, double-quote [v0.2.1]
Bare-scalar description contained `: ` (colon-space) inside backticks
(`Триггер-строка CLAUDE.md ` + literal trigger-line containing `: `).
Strict YAML parser treated the inner `: ` as nested mapping → description
field dropped → harness fallback to H1 → skill listing showed
"session-handoff: session-handoff" (trigger phrases non-functional).

Fix: wrap entire description in double-quotes. Shrink 650→462 chars
(865→555 bytes) by moving substantive-commit heuristic, sliding-overwrite
detail, and project-scope clause to body Steps/Side/Failure sections
(already documented there). All 6 session-end triggers + 4 skip phrases
+ trigger-line preserved verbatim.

Bump 0.2.0 → 0.2.1 PATCH (frontmatter wording, no behavior change).
Closes [session-handoff-install]; unblocks [session-handoff-test-trigger].

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-24 21:56:30 +03:00

35 lines
3.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# session-handoff-install
## Goal
Установить скил `session-handoff` в `~/.claude/skills/session-handoff/` через `scripts/install.ps1 -Names session-handoff` и убедиться что harness видит его + рендерит description в листинге. Анлокает `[session-handoff-test-trigger]` (нужен установленный + работающий скил для trigger smoke).
## Key files
- `scripts/install.ps1` — копирует `skills/<name>/``~/.claude/skills/<name>/` (replace mode)
- `skills/session-handoff/SKILL.md:1-5` — frontmatter (`version: 0.2.1`, double-quoted description)
- `~/.claude/skills/session-handoff/SKILL.md` — установленная копия
## Decisions log
- 2026-05-24: исходный description v0.2.0 (650 chars / 865 bytes) renderился как `- session-handoff: session-handoff` (harness fallback к H1). Сначала подозревал byte-overflow (memory `feedback_skill_description_length_limit` — лимит ~1024). Прокачав через PowerShell + Python YAML parser, root cause найден: `: ` (colon-space) внутри bare-scalar — конкретно `Триггер-строка CLAUDE.md \`session handoff: read on start, write on end\`` — YAML parser в strict mode принимал `session handoff:` за nested mapping key. Backticks не спасают, YAML их не интерпретирует.
- 2026-05-24: fix = wrap description в double-quotes (`"..."`). Альтернатива (rephrase to remove `: `) — слабее, потому что trigger-line literal содержит `: ` by design (это user-facing trigger phrase в формате CLAUDE.md).
- 2026-05-24: бонусом shrink с 650→462 chars (убрал substantive-commit heuristic, sliding-overwrite detail, project-scope clause — всё уже в body Steps/Side effects/Failure modes). Triggers + skip phrases сохранены 1-в-1.
- 2026-05-24: bump 0.2.0 → 0.2.1 PATCH (wording-only frontmatter edit, поведение скила не меняется).
- 2026-05-24: harness auto-discovered после `Copy-Item` (replace mode install) — `/reload-plugins` не понадобился, listing внутри текущей сессии обновился. Это противоречит формулировке task'и («Открыть новую CC сессию → /skills»). На этой версии CC re-scan SKILL.md происходит при следующем skill-listing вызове.
## Open questions
- [ ] (нет — атомарная install-таска)
## Completed steps
- [x] edit STATUS.md → 🔴 active
- [x] run `pwsh scripts\install.ps1 -Names session-handoff` (через PowerShell tool, bash не видит pwsh)
- [x] verify `~/.claude/skills/session-handoff/SKILL.md` v0.2.0 on disk
- [x] discover description-rendering bug в листинге (fallback к H1)
- [x] root-cause: YAML `: ` ambiguity внутри bare scalar (не byte-overflow)
- [x] fix: wrap description в double-quotes + bump 0.2.0 → 0.2.1
- [x] reinstall
- [x] verify listing рендерит полный description
- [x] save memory: `feedback_skill_description_yaml_colon_gotcha.md` (new) + cross-ref в `feedback_skill_description_length_limit.md`
- [x] close 🟢
## Notes
Step «открыть новую CC сессию → /skills» из исходного next_action был safety-net на случай если harness не подхватит auto. Auto-pickup сработал — verified в эту же сессию через системный skill-listing.