meta(tasks): create [using-yt-tools-listen-test-trigger] in OpeItcLoc03/claude-skills
This commit is contained in:
@@ -242,3 +242,48 @@ NB: эта таска сама уйдёт в следующий cleanup batch (2
|
||||
<!-- created-by: OpeItcLoc03@DESKTOP-NSEF0UK / from: OpeItcLoc03/workshop / 2026-05-25T09:51:08.193Z -->
|
||||
|
||||
---
|
||||
|
||||
## 🔵 [using-yt-tools-listen-test-trigger] — Behavioral smoke-test для расширения `using-yt-tools` под `yt-listen`. Без TDD per-se (это смок поверх готового), но включает explicit before-after evidence — что без скила агент не вызывает `yt-listen` на новых триггерах, а с обновлённым скилом — вызывает корректно.
|
||||
|
||||
**Дизайн-контекст:** см. `concepts/yt-tools-audio` (target=`OpeItcLoc03/common`) — какие триггеры обязательны, какой output ожидаем.
|
||||
|
||||
**TDD-mode (per `claude-skills` `follow tdd-criteria`):** для behavioral skill-теста applicable интерпретация — **write expectations first, then verify**. Тест-сценарии сформулировать ДО запуска агента, не подгонять под наблюдаемое поведение.
|
||||
|
||||
**Acceptance (test scenarios):**
|
||||
|
||||
1. **Trigger activation positive (минимум 4 фразы):**
|
||||
- «послушай момент 2:30 в этом ролике <URL>» → агент вызывает `yt-listen URL --timestamps 2:30`.
|
||||
- «какой BPM в <URL>» → `yt-listen URL` (без timestamp = bulk-mode hint или quick-default).
|
||||
- «listen to fragment at 1:15 <URL>» → `yt-listen URL --timestamps 1:15`.
|
||||
- «спектрограмма видео <URL>» → `yt-listen --timestamps` с хотя бы одним таймкодом (агент должен выбрать sensible default или спросить).
|
||||
|
||||
2. **Trigger activation negative (3 близкие, но не свои):**
|
||||
- «расшифруй видео <URL>» → `yt-transcript`, НЕ `yt-listen`.
|
||||
- «покажи кадр на 1:23 <URL>» → `yt-frames`, НЕ `yt-listen`.
|
||||
- «о чём этот ролик <URL>» → `yt-transcript` + summary, НЕ `yt-listen` (нет музыкального контекста).
|
||||
|
||||
3. **What-NOT-to-do compliance:**
|
||||
- User: «дай lyrics из <музыкальный URL>» → агент НЕ должен вызывать Whisper / `yt-transcribe-music`; должен объяснить что это отдельный pipeline (Demucs + Whisper), out of scope `yt-listen`.
|
||||
|
||||
4. **E2E против реального URL** (короткий музыкальный клип, e.g. 1-минутный royalty-free track):
|
||||
- `yt-listen URL --timestamps 0:30 --duration 10s` создаёт 3 артефакта в `./yt-cache/<vid>/audio/`.
|
||||
- `features_0030.md` содержит BPM, key, хотя бы одну строку chord progression, RMS, spectral centroid.
|
||||
- `spectrum_0030.png` валиден (открывается, ~1024×384, mel-scale читаема).
|
||||
|
||||
**Закрытие:** все 4 группы зелёные, findings — отдельные follow-up tasks через `tasks_create` если есть.
|
||||
|
||||
**Status:** blocked
|
||||
**Where I stopped:** (not started)
|
||||
**Next action:** 1. Дождаться 🟢 у blocker-тасок (skill-update + listen-impl + pyproject-pin — без них тестировать нечего).
|
||||
2. Прочитать spec из global wiki (`concepts/yt-tools-audio`).
|
||||
3. **Write test-scenarios first** — список из 8 ожидаемых поведений по группам 1-4. Не модифицировать после запуска.
|
||||
4. Чистая CC-сессия с обновлённым `using-yt-tools` скилом.
|
||||
5. Прогнать сценарии 1-3 в нескольких turn'ах (по одной фразе на turn, observe agent's tool selection).
|
||||
6. E2E (сценарий 4) — реальный musical URL, проверить артефакты глазами.
|
||||
7. Findings → `mcp__projects-meta__tasks_create` в `claude-skills` slug-prefix `using-yt-tools-listen-<gap>-fix`.
|
||||
8. Commit (если правил тестовый материал): `test(using-yt-tools): behavioral smoke for yt-listen extension`.
|
||||
**Blocker:** using-yt-tools-listen-skill-update, yt-listen-impl, yt-listen-pyproject-pin
|
||||
**Branch:** n/a
|
||||
<!-- created-by: OpeItcLoc03@DESKTOP-NSEF0UK / from: OpeItcLoc03/workshop / 2026-05-25T09:51:38.340Z -->
|
||||
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user