Tóm tắt
Phase 1 S4 (spec) và S5 (change request). Nhánh này cắt từ feat/phase1-s4 nên chứa cả hai. Nó còn mang theo 65 commit có trên main local nhưng chưa có trên origin/main (S2/S3 đã merge local và đổi model của agent intent sang Haiku 5.5).
S4: spec
- Confirm brief → agent
spec(claude-opus-5-5) sinh REQ/AMB/AC. Có version, sửa tay, diff, archive. - Gate review và trả lời AMB. Vòng revision dừng khi không còn tiến triển.
- J3: Jev gắn cờ AC khó test (chỉ là gợi ý).
- Link review cho guest (
/r/:token): nginx headers, ẩn URL trong log, audit IP/UA. - FE: trang spec, gate và trang cho guest.
S5: change request
- Migration
change_requests.CrDelta,applyCrDeltavàdryRunCrDeltanằm trong@cp/shared. - API CR: tạo kèm phân tích, sửa, phân tích lại, rút, quyết định. Khi duyệt sẽ áp delta thành version mới.
- Agent
cr-impact. J4 (cr.scope) và J5 (cr.ac_relevance, lọc AC khi có trên 15). - Archive spec sẽ rút CR đang mở. Thứ tự khóa: spec → run → CR → link.
- Guest duyệt CR qua link review.
- FE: tab CR, editor delta, panel quyết định, lịch sử "vN CR-n".
Migration
-
1793491200000-specs.ts,1793577600000-change-requests.ts.
Kiểm tra
-
bash scripts/verify.shqua: lint, typecheck, unit, e2e. be e2e 309 test. - UI e2e (Playwright) 21/21, chạy với fake runtime.
- Mỗi task đều qua review riêng. Final review cho S4 và S5 bằng
convention-reviewervàspec-reviewertrên Opus: PASS.
Còn để lại (không chặn)
-
analyzekhông khóa spec: nếu archive xảy ra cùng lúc, một run vẫn gọi model rồi bỏ kết quả. - Gọi
retrytrên runcr-impacttrả về 409; người dùng bấm "Phân tích lại". -
TRUST_PROXY_HOPSchưa đặt trong cấu hình deploy nào, nên giới hạn theo IP của link review dùngreq.ip. - Câu hỏi mở về SPEC: quyền đọc CR (15.7 ghi chỉ editor);
impact_mdnhắc tới AMB mới trong khi delta không thêm được AMB.