fix(skills): sync SDD headings to 8 in issue and bug-discovery (#260)
* fix(skills): add 8th SDD heading to issue and bug-discovery * fix(skills): sync spec and audit SDD headings to 8 --------- Co-authored-by: opencode-agent <agent@opencode.local>
This commit is contained in:
parent
13942526a1
commit
8b05fa74f7
4 changed files with 19 additions and 8 deletions
|
|
@ -114,19 +114,21 @@ Severity: <warn|fail>
|
|||
|
||||
1. Load `issue` skill via `skill({ name: "issue" })`.
|
||||
2. Сформируй issue body (8 headings: ## Контекст, ## Задача, ## Контракты,
|
||||
## Инварианты, ## Граничные случаи, ## Вне scope, ## Критерии приемки).
|
||||
## Инварианты, ## Граничные случаи, ## Влияние на связанные компоненты,
|
||||
## Вне scope, ## Критерии приемки).
|
||||
- Контекст: проблема из audit (<repo>) — <name>: <detail>. Путь: <path>.
|
||||
Источник: <source>. Severity: <severity>.
|
||||
- Задача: что починить (конкретно, с путями к файлам).
|
||||
- Контракты: конкретные изменения (что должно стать после фикса).
|
||||
- Инварианты: что НЕ ломать при фиксе.
|
||||
- Граничные случаи: edge cases при фиксе.
|
||||
- Влияние на связанные компоненты: зависящие audit-категории/оракулы/промпты; paired updates; «нет связанных компонентов» для тривиальных фиксов.
|
||||
- Вне scope: что НЕ делаем в этом issue.
|
||||
- Критерии приемки: чек-лист (включая `project-status` проходит эту
|
||||
категорию после фикса).
|
||||
3. `create-issue({ title: "fix(<scope>): <description>", body, labels: ["tech-debt", "from-audit"] })`
|
||||
tool (НЕ raw `gh issue create` — заблокирован deny). tool валидирует
|
||||
conventional title + 7 headings + Cyrillic.
|
||||
conventional title + 8 headings + Cyrillic.
|
||||
4. Верни: issue URL (или ошибку валидации для оркестратора).
|
||||
|
||||
Если gh недоступен → верни: "gh unavailable: <reason>". НЕ retry, НЕ fallback.
|
||||
|
|
|
|||
|
|
@ -10,6 +10,6 @@ If a bug is found during work that is outside the scope of the current task:
|
|||
1. Check `gh issue list` for duplicates.
|
||||
2. Create a GitHub issue via `create-issue` tool (NOT raw `gh issue create`).
|
||||
3. Title: `fix(scope): short description` in English.
|
||||
4. Body: `## Контекст` / `## Задача` / `## Контракты` / `## Инварианты` / `## Граничные случаи` / `## Вне scope` / `## Критерии приемки` (in Russian).
|
||||
4. Body: `## Контекст` / `## Задача` / `## Контракты` / `## Инварианты` / `## Граничные случаи` / `## Влияние на связанные компоненты` / `## Вне scope` / `## Критерии приемки` (in Russian).
|
||||
5. Continue the current task. Do NOT fix the bug yourself.
|
||||
6. Report to orchestrator: "Created issue #N: ...".
|
||||
|
|
@ -36,6 +36,9 @@ Issue должно содержать всё необходимое, чтобы
|
|||
## Граничные случаи
|
||||
[Что при ошибках: невалидный вход, отказ внешнего сервиса, превышение лимита]
|
||||
|
||||
## Влияние на связанные компоненты
|
||||
[Связанные файлы/оракулы/агенты/промпты/валидаторы; paired updates; «нет связанных компонентов» для тривиальных задач]
|
||||
|
||||
## Вне scope
|
||||
[Что НЕ делаем в этой итерации]
|
||||
|
||||
|
|
@ -67,8 +70,8 @@ Issue создаёт **subagent** (general type), а не основной аг
|
|||
**Subagent (полная ответственность):**
|
||||
1. Загрузи навык `issue`
|
||||
2. Собери контекст — прочитай файлы из intent summary, пойми задачу, оцени объём (правило дробления ниже)
|
||||
3. Составь self-contained body по шаблону (Контекст → Задача → Контракты → Инварианты → Граничные случаи → Вне scope → Критерии приемки)
|
||||
4. Запусти `create-issue({ title: "...", body: "...", labels: ["..."] })` tool (НЕ raw `gh issue create` — заблокирован deny; tool валидирует conventional title format и headings `## Контекст`/`## Задача`/`## Контракты`/`## Инварианты`/`## Граничные случаи`/`## Вне scope`/`## Критерии приемки`)
|
||||
3. Составь self-contained body по шаблону (Контекст → Задача → Контракты → Инварианты → Граничные случаи → Влияние на связанные компоненты → Вне scope → Критерии приемки)
|
||||
4. Запусти `create-issue({ title: "...", body: "...", labels: ["..."] })` tool (НЕ raw `gh issue create` — заблокирован deny; tool валидирует conventional title format и headings `## Контекст`/`## Задача`/`## Контракты`/`## Инварианты`/`## Граничные случаи`/`## Влияние на связанные компоненты`/`## Вне scope`/`## Критерии приемки`)
|
||||
5. Верни URL созданного issue основному агенту
|
||||
|
||||
Main agent НЕ пишет body и НЕ запускает `create-issue` — всё через subagent. Это согласовано с `run-pipeline` skill (Phase 0: "через subagent с `issue` skill") и `AGENTS.md` (Dev Workflow, step 2: "delegate to `task` subagent").
|
||||
|
|
@ -101,6 +104,10 @@ Main agent НЕ пишет body и НЕ запускает `create-issue` — в
|
|||
- Кеш содержит устаревший формат → invalidate, пересчитать
|
||||
- Конкурентные запросы на одно видео → первый пишет в кеш, последующие берут из кеша
|
||||
|
||||
## Влияние на связанные компоненты
|
||||
- AnalysisController зависит от AnalysisService — без изменений (API сохранён)
|
||||
- «Нет связанных компонентов» для тривиальных задач
|
||||
|
||||
## Вне scope
|
||||
- ❌ Кеширование субтитров (отдельная задача)
|
||||
- ❌ Инвалидация по времени просмотра видео
|
||||
|
|
@ -132,9 +139,10 @@ create-issue({ title: "type(scope): description", body: "...", labels: ["<label>
|
|||
|
||||
Tool валидирует: title соответствует conventional format (type(scope): desc,
|
||||
≤80 chars, English), body содержит `## Контекст`, `## Задача`, `## Контракты`,
|
||||
`## Инварианты`, `## Граничные случаи`, `## Вне scope`, `## Критерии приемки`
|
||||
headings и на русском (Cyrillic обязательна). При ошибке валидации
|
||||
tool возвращает ошибку и НЕ вызывает gh — почини формат и повтори.
|
||||
`## Инварианты`, `## Граничные случаи`, `## Влияние на связанные компоненты`,
|
||||
`## Вне scope`, `## Критерии приемки` headings и на русском (Cyrillic
|
||||
обязательна). При ошибке валидации tool возвращает ошибку и НЕ вызывает gh —
|
||||
почини формат и повтори.
|
||||
|
||||
Label выбирай по типу задачи (совпадает с commit `type`):
|
||||
- `enhancement` — новая функциональность (`feat`)
|
||||
|
|
|
|||
|
|
@ -312,6 +312,7 @@ Default stack для типа (хардкод, добавить всегда):
|
|||
## Контракты (ожидаемое поведение / API)
|
||||
## Инварианты (правила без исключений)
|
||||
## Граничные случаи (что при ошибках)
|
||||
## Влияние на связанные компоненты (зависящие файлы/оракулы/агенты/промпты/валидаторы; paired updates; «нет связанных компонентов» для тривиальных задач)
|
||||
## Вне scope (что НЕ делаем)
|
||||
## Критерии приемки (как проверяем)
|
||||
## Связанные ресурсы (Part of spec, ref к docs/spec/roadmap.md)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue