Fill the v0.1.0 stub body. Description rewritten to document two distinct flows
(was iterative-only, even though triggers already listed targeted-frames phrases):
- Flow A — iterative-watch (transcript → pick anchors → frames): for "what's
in this video / summary / о чём ролик / video summary / youtube transcript"
- Flow B — targeted-frames (frames only, no transcript): for "посмотри 1:23 /
покажи кадр на N / что показано на N" — user already named timestamps,
transcript fetch would be pure waste
Body sections filled (6): When/Prereq/Inputs/Steps/Failure/Side/NOT — Flow A
and Flow B distinguished throughout. Failure modes table covers missing CLI,
missing yt-dlp/ffmpeg (with Windows winget+PATH note), network/private/age-
gated, subs-disabled. What NOT to do explicitly forbids the "always-iterative"
trap that the v0.1.0 description implicitly invited.
Bump version 0.1.0 → 0.2.0 (MINOR — documents new capability set). Description
744 chars (under 900-char soft budget; well below ~1024 hard limit). Installed
to ~/.claude/skills/using-yt-tools/ via scripts/install.ps1 — harness skill-
listing renders full description, not truncated to H1.
STATUS.md: closes new [using-yt-tools-skill-body-fill] 🟢 (filed+closed
in-place since this is one body-fill task, not a multi-session workstream).
[using-yt-tools-review] stays 🔵 — body-fill blocker removed, but still
blocked on [using-yt-tools-trigger-smoke-clean-session] (needs fresh CC
session). Caveat recorded: body-fill was done by implementer instead of the
'fresh agent' the review-task originally specified — explicit user approval.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Closed using-yt-tools-test-trigger as **partial** — CLI e2e +
iterative-flow on 3blue1brown «Vectors, Ch.1» (fNk_zzaMoSs, 9:51 EN)
exercised the primary path: yt-transcript ✓, yt-frames ✓, Read on
3 jpgs ✓, vision-anchored answer ✓. Trigger smoke (parts 1+2)
split out — it needs a clean CC session, which this one is not.
Filed 4 new ⚪ tasks:
- transcript-paragraphs-fix — _group_paragraphs collapses dense
captions into 1 block (broken on community/auto subs without
>4s gaps); single [0:00] anchor on a 9:51 video kills the
iterative-flow primary use-case.
- frames-stderr-fix — `error: yt-dlp source download failed:`
with empty tail when ffmpeg missing; real cause swallowed.
- windows-path-doc-fix — README should note restart-shell after
`winget install Gyan.FFmpeg` (user-PATH not picked up by the
currently-running git-bash subshell).
- trigger-smoke-clean-session — 10 positive + 3 false-positive
trigger probes, requires a fresh CC session.
Review (🔵) updated: 3 baseline impl tasks all 🟢, but the
acceptance criteria for Steps / Failure modes / What NOT to do
target SKILL.md body which is still empty stub. New blocker:
second-pass body fill (separate task — not filed here).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- using-yt-tools-install: ffmpeg 8.1.1 on PATH, venv populated,
yt-tools 0.1.0 editable, 4 CLIs respond, 67/67 unit tests pass
on this Windows host.
- using-yt-tools-hermes-mapping: registered as `pending` with
intended:{mode:auto, category:research}; build-hermes.py emits
26 skills (1 pending) and SKIPPED.md lists the entry. Promotion
to `auto` gated on using-yt-tools-test-trigger 🟢.
NB: triggers/url_pattern from the task block's yaml sketch don't
match the mapping schema — they live in SKILL.md description and
Hermes picks them up automatically. Build script only consumes
mode/category/reason/intended/replace-rules.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Behavioral fire-test of trigger phrases (10 parallel general-purpose subagents,
each phrase as isolated user message, META: skills_invoked= parsed) revealed
one false-positive: «restart-loop in books-pipeline» fired the skill despite
books-pipeline not being a NAS-hosted container — static-pass prediction
confirmed (implicit NAS-context discriminator, LLM keyed on `restart-loop`
without host check).
Tuning: extended skip-rule with non-NAS hosts examples
(`books-pipeline`, `vps-*` etc. — only the 6 listed above are NAS-hosted).
Description 941 chars / 1024 limit. PATCH bump (fix only, no new triggers).
Retest of NEG#3 → PASS (subagent quoted new skip-rule). Final 10/10.
Closes [using-synology-ops-test-trigger]; unblocks [using-synology-ops-review]
(ready, baseline tasks all 🟢, but body still <пусто> stub — separate debt).
dist-hermes/mcp/using-synology-ops/SKILL.md regenerated via build-hermes.py.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Step 1 now ships agent meta-paths inversions (`!.claude/`, `!.tasks/`,
`!.wiki/`, `!.brainstorm/`, `!.archive/`, `!.mcp/`, `!.mcp.json`,
`!MEMORY.md`) so own greenfield/upgrade projects re-enable visibility
against the global `core.excludesFile` cutter (`~/.config/git/ignore`)
that hides obvyaska from forks of upstream open-source. Without it any
fresh bootstrap landed an empty first commit on machines with the global
configured: setup-wiki/setup-tasks/Step 5 created .wiki/.tasks/CLAUDE.md
but git ignored them.
Two cases handled in Step 1:
- no .gitignore → write template (block included unconditionally)
- existing .gitignore → marker-based (`# AI обвеска — слой 2:`)
append-if-missing; idempotent on re-run
Smoke-tested in %TEMP%\test-bootstrap-meta-iso: all 3 acceptance
criteria pass + negative control (strip block → global hides) +
idempotency (re-run with marker present skips). Source concept:
workshop wiki concepts/meta-out-of-repo.md. Closes board task
[meta-isolation-bootstrap-skill-update].
MINOR bump (1.10.1 → 1.11.0) — new feature, backward-compat.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Both tasks shipped in 54ba5ca (path fix + clone fallback) and 90d066b
(monorepo clone correction — interns-mcp is a subdir of common, not a
separate repo).
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Both tasks done. v1.10.1 fix shipped (aac9088), upgrade tested on claude-skills (ac0fa57).
Unblock ready — mass-rollout of 5-string group can proceed.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>