* test(pipeline): remove adr and project-map test files * refactor(pipeline): remove DOCS phase from pipeline-status * test(pipeline): update tests for 6-phase pipeline * docs(handoff): add handoff and ADR for remove-docs-phase * docs(handoff): set PR number * fix(pipeline): parse PR body via json.loads in check_implement --------- Co-authored-by: opencode-agent <agent@opencode.local>
55 lines
No EOL
3.5 KiB
Markdown
55 lines
No EOL
3.5 KiB
Markdown
---
|
||
pr: 208
|
||
title: refactor(pipeline): remove DOCS phase from pipeline-status
|
||
---
|
||
|
||
## Что сделано
|
||
Убрал DOCS phase из `pipeline-status.py` — пайплайн сократился с 7 до 6 фаз:
|
||
ISSUE → IMPLEMENT → CI → REVIEW → MERGE → MEMORY.
|
||
|
||
Изменения в `.opencode/scripts/pipeline-status.py`:
|
||
- `PHASE_NAMES`: 7 → 6 фаз (убран `"DOCS"`).
|
||
- `check_implement`: вместо проверки handoff-файла в diff теперь проверяет
|
||
PR body на наличие 4 heading'ов (`## Что сделано`, `## Почему`, `## Watch out`,
|
||
`## Pending`) через `gh pr view N --json body`.
|
||
- Удалены функции `check_docs`, `_check_docs_reviewer_comment`, `check_adr`,
|
||
`check_project_map`.
|
||
- Удалены dead-константы `HANDOFF_DIR`, `ADR_DIR`, `PROJECT_MAP_DIR`,
|
||
`REQUIRED_SECTIONS`, `DOCS_REVIEW_RE` (MEMORY-константы оставлены).
|
||
- `run_all_checks`: 7 → 6 вызовов (убран `check_docs`).
|
||
- `NEXT_ACTIONS`: 7 → 6 записей (убран `"DOCS"`).
|
||
- Module docstring: 7 → 6 фаз, убрано DOCS описание.
|
||
|
||
Изменения в тестах:
|
||
- `tests/test_pipeline_status.py`: удалён `# ── check_docs ──` блок (~10 тестов),
|
||
удалены хелперы `make_handoff`/`make_project_map`, обновлены `check_implement`
|
||
тесты (handoff в diff → PR body с 4 heading'ами), format/zip тесты 7→6
|
||
элементов, `test_get_next_action` parametrize без DOCS row,
|
||
`find_current_phase` тесты 7→6.
|
||
- `tests/test_pipeline_status_adr.py`: удалён целиком.
|
||
- `tests/test_pipeline_status_project_map.py`: удалён целиком.
|
||
- `tests/test_pipeline_status_next_actions.py`: удалён
|
||
`test_next_action_docs_subagent_template_b`, `DISPATCH_PHASES` без `"DOCS"`,
|
||
`test_next_action_pr_number_substitution` без `("DOCS", 999)`.
|
||
|
||
## Почему
|
||
DOCS phase дублировал работу issue + PR body + reviewer. Handoff-файл в diff
|
||
как gate IMPLEMENT phase — хрупкий: требует handoff в diff даже когда PR body
|
||
уже содержит структуру. Замена на PR body heading check делает gate
|
||
самодостаточным (PR body = single source of truth для структуры) и убирает
|
||
целую фазу (DOCS), которая требовала отдельного docs-reviewer subagent'а.
|
||
4 heading'а enforc'ит `create-pr.ts` (issue #203), так что контракт уже
|
||
гарантирован на уровне tool'а.
|
||
|
||
## Pending
|
||
— Обновление run-pipeline/SKILL.md (Template B удаление) — отдельный issue.
|
||
— Обновление agent prompts (reviewer.md, memory-syncer.md) — отдельный issue.
|
||
— Удаление docs-reviewer.md, post-docs-review.ts, scaffold-handoff.sh — отдельный issue.
|
||
— Удаление check-adr-refs.py, adr-check.yml — отдельный issue.
|
||
|
||
## Watch out
|
||
MEMORY phase остаётся (6-я фаза) — `check_memory`, `get_memory_file_path`,
|
||
`MEMORY_DIR` не тронуты. `REVIEW_VERDICT_RE` оставлен (используется
|
||
`check_review`). Существующие `docs/handoff/`, `docs/decisions/` файлы НЕ
|
||
удаляем — исторический архив. ADR для этого PR всё ещё создан (scaffold-handoff.sh
|
||
работает), но больше не является pipeline gate'ом. |