@damphuquy/agent-init 1.3.0 → 1.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -2
- package/README.vi.md +8 -2
- package/dist/cli.d.ts +4 -2
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +49 -5
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +4 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +71 -1
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/scaffolder.d.ts +2 -1
- package/dist/scaffolder.d.ts.map +1 -1
- package/dist/scaffolder.js +64 -12
- package/dist/scaffolder.js.map +1 -1
- package/dist/types.d.ts +5 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/ui.d.ts +3 -1
- package/dist/ui.d.ts.map +1 -1
- package/dist/ui.js +71 -6
- package/dist/ui.js.map +1 -1
- package/package.json +2 -2
- package/templates/en/process/.editorconfig +15 -0
- package/templates/{process → en/process}/README.md +10 -2
- package/templates/{process → en/process}/_seeds/_GUIDE.md +37 -8
- package/templates/en/process/_seeds/cancellation-template.md.seed +79 -0
- package/templates/en/process/_seeds/results-template.tsv.seed +5 -0
- package/templates/{process → en/process}/context/all-context.md +6 -0
- package/templates/en/process/context/tests/all-tests.md +56 -0
- package/templates/vi/.agents/README.md +29 -0
- package/templates/vi/.agents/behavior.md +72 -0
- package/templates/vi/.agents/conventions/naming.md +55 -0
- package/templates/vi/.agents/guardrails.md +113 -0
- package/templates/vi/AGENTS.md +133 -0
- package/templates/vi/process/.editorconfig +15 -0
- package/templates/vi/process/README.md +150 -0
- package/templates/vi/process/_seeds/_GUIDE.md +170 -0
- package/templates/vi/process/_seeds/cancellation-template.md.seed +79 -0
- package/templates/vi/process/_seeds/context-group.md.seed +154 -0
- package/templates/vi/process/_seeds/decision-template.md.seed +143 -0
- package/templates/vi/process/_seeds/handoff-template.md.seed +79 -0
- package/templates/vi/process/_seeds/plan-template.md.seed +135 -0
- package/templates/vi/process/_seeds/program-template.md.seed +56 -0
- package/templates/vi/process/_seeds/results-template.tsv.seed +5 -0
- package/templates/vi/process/_seeds/review-template.md.seed +149 -0
- package/templates/vi/process/_seeds/state-template.md.seed +149 -0
- package/templates/vi/process/_seeds/task-template.md.seed +196 -0
- package/templates/vi/process/context/all-context.md +53 -0
- package/templates/vi/process/context/planning/all-planning.md +31 -0
- package/templates/vi/process/context/tests/all-tests.md +56 -0
- package/templates/vi/process/development-protocols/all-development-protocols.md +27 -0
- package/templates/vi/process/development-protocols/implementation-standards.md +28 -0
- package/templates/vi/process/development-protocols/orchestration.md +24 -0
- package/templates/vi/process/features/active/.gitkeep +0 -0
- package/templates/vi/process/features/backlog/.gitkeep +0 -0
- package/templates/vi/process/features/completed/.gitkeep +0 -0
- package/templates/vi/process/general-plans/active/.gitkeep +0 -0
- package/templates/vi/process/general-plans/backlog/.gitkeep +0 -0
- package/templates/vi/process/general-plans/completed/.gitkeep +0 -0
- /package/templates/{.agents → en/.agents}/README.md +0 -0
- /package/templates/{.agents → en/.agents}/behavior.md +0 -0
- /package/templates/{.agents → en/.agents}/conventions/naming.md +0 -0
- /package/templates/{.agents → en/.agents}/guardrails.md +0 -0
- /package/templates/{AGENTS.md → en/AGENTS.md} +0 -0
- /package/templates/{process → en/process}/_seeds/context-group.md.seed +0 -0
- /package/templates/{process → en/process}/_seeds/decision-template.md.seed +0 -0
- /package/templates/{process → en/process}/_seeds/handoff-template.md.seed +0 -0
- /package/templates/{process → en/process}/_seeds/plan-template.md.seed +0 -0
- /package/templates/{process → en/process}/_seeds/program-template.md.seed +0 -0
- /package/templates/{process → en/process}/_seeds/review-template.md.seed +0 -0
- /package/templates/{process → en/process}/_seeds/state-template.md.seed +0 -0
- /package/templates/{process → en/process}/_seeds/task-template.md.seed +0 -0
- /package/templates/{process → en/process}/context/planning/all-planning.md +0 -0
- /package/templates/{process → en/process}/development-protocols/all-development-protocols.md +0 -0
- /package/templates/{process → en/process}/development-protocols/implementation-standards.md +0 -0
- /package/templates/{process → en/process}/development-protocols/orchestration.md +0 -0
- /package/templates/{process → en/process}/features/active/.gitkeep +0 -0
- /package/templates/{process → en/process}/features/backlog/.gitkeep +0 -0
- /package/templates/{process → en/process}/features/completed/.gitkeep +0 -0
- /package/templates/{process → en/process}/general-plans/active/.gitkeep +0 -0
- /package/templates/{process → en/process}/general-plans/backlog/.gitkeep +0 -0
- /package/templates/{process → en/process}/general-plans/completed/.gitkeep +0 -0
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# Biên Bản Hủy Task (Cancellation Record): [TASK-ID] [Tiêu Đề Task]
|
|
2
|
+
|
|
3
|
+
<cancellation_record task_id="[TASK-ID]" version="1.0" framework="RIPER-5">
|
|
4
|
+
|
|
5
|
+
<!--
|
|
6
|
+
QUY CHUẨN HỦY BỎ TASK:
|
|
7
|
+
- Mục đích: Lưu giữ tri thức khảo sát, phát hiện kỹ thuật và lý do quyết định khi một task bị hủy giữa chừng.
|
|
8
|
+
- Tuyệt đối không xóa thẳng thư mục task nếu đã diễn ra khảo sát hoặc lập kế hoạch một phần.
|
|
9
|
+
- Khởi tạo tệp này dưới dạng `cancelled.md` bên trong thư mục task.
|
|
10
|
+
- Hoàn thành checklist hoàn nguyên, sau đó chuyển thư mục task sang `completed/` (hoặc `cancelled/`).
|
|
11
|
+
-->
|
|
12
|
+
|
|
13
|
+
<status>
|
|
14
|
+
<phase_at_cancellation>[RESEARCH | INNOVATE | PLAN | EXECUTE | REVIEW]</phase_at_cancellation>
|
|
15
|
+
<cancelled_date>[YYYY-MM-DD hoặc DD-MM-YY]</cancelled_date>
|
|
16
|
+
<cancelled_by>[@engineer_or_product_lead]</cancelled_by>
|
|
17
|
+
<reversal_status>[CLEAN | ROLLBACK_APPLIED | DIRTY_NEEDS_MANUAL_CLEANUP]</reversal_status>
|
|
18
|
+
</status>
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## 1. Lý Do Hủy Bỏ (Rationale for Cancellation)
|
|
23
|
+
|
|
24
|
+
<cancellation_rationale>
|
|
25
|
+
<primary_reason>
|
|
26
|
+
<!-- [ví dụ: Thay đổi chiến lược sản phẩm / Rào cản kiến trúc / Bán kính ảnh hưởng quá lớn / Bị thay thế bởi CHG-YYY] -->
|
|
27
|
+
[Tóm tắt ngắn gọn vì sao task này bị dừng trước thời hạn.]
|
|
28
|
+
</primary_reason>
|
|
29
|
+
|
|
30
|
+
<decision_context>
|
|
31
|
+
[Ngữ cảnh chi tiết, các đánh đổi đã cân nhắc và chỉ đạo chính từ các bên liên quan dẫn đến quyết định hủy.]
|
|
32
|
+
</decision_context>
|
|
33
|
+
</cancellation_rationale>
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## 2. Phát Hiện Kỹ Thuật & Tri Thức Được Lưu Giữ (Preserved Knowledge)
|
|
38
|
+
|
|
39
|
+
<preserved_knowledge>
|
|
40
|
+
<codebase_discoveries>
|
|
41
|
+
<!-- Chúng ta đã học được gì về hệ thống, data models hoặc dependency tiềm ẩn trong lúc làm task này? -->
|
|
42
|
+
- [Phát hiện 1 — Hành vi của component, giới hạn API chưa có tài liệu hoặc ràng buộc legacy]
|
|
43
|
+
- [Phát hiện 2 — Các bài test hiện có hoặc ranh giới subsystem được khám phá]
|
|
44
|
+
</codebase_discoveries>
|
|
45
|
+
|
|
46
|
+
<invalidated_hypotheses>
|
|
47
|
+
<!-- Những giả định nào đã bị chứng minh là sai trong quá trình khảo sát? -->
|
|
48
|
+
- [Giả thuyết hóa ra không đúng hoặc không khả thi về mặt kỹ thuật]
|
|
49
|
+
</invalidated_hypotheses>
|
|
50
|
+
|
|
51
|
+
<reusable_assets>
|
|
52
|
+
<!-- Có bài test, bản nháp schema, benchmark hoặc prototype nào các task sau có thể tái sử dụng không? -->
|
|
53
|
+
- [Tài sản tái sử dụng 1: các ca test hoặc mô hình dữ liệu trong branch nháp / commit]
|
|
54
|
+
</reusable_assets>
|
|
55
|
+
</preserved_knowledge>
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## 3. Checklist Hoàn Nguyên Mã Nguồn & Dọn Dẹp (Cleanup Checklist)
|
|
60
|
+
|
|
61
|
+
<cleanup_checklist>
|
|
62
|
+
- [ ] Toàn bộ thay đổi chưa commit đã được rollback hoặc stash sạch sẽ (`git status` sạch hoàn toàn)
|
|
63
|
+
- [ ] Các dòng log debug tạm thời, script scratch hoặc dump dữ liệu test đã bị xóa
|
|
64
|
+
- [ ] Không còn migration ảo hoặc artifact schema tạm nào bị sót lại trong database nội bộ
|
|
65
|
+
- [ ] Thư mục task đã được chuyển vào lưu trữ trong `completed/` (hoặc `cancelled/`)
|
|
66
|
+
</cleanup_checklist>
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## 4. Task Thay Thế Hoặc Kế Hoạch Tiếp Theo (Follow-Up)
|
|
71
|
+
|
|
72
|
+
<follow_up>
|
|
73
|
+
<superseded_by>[Liên kết tới thư mục task mới hoặc CHG-YYY, hoặc ghi NONE]</superseded_by>
|
|
74
|
+
<recommended_next_action>
|
|
75
|
+
[Khuyến nghị cụ thể nếu bài toán này được xem xét lại trong tương lai.]
|
|
76
|
+
</recommended_next_action>
|
|
77
|
+
</follow_up>
|
|
78
|
+
|
|
79
|
+
</cancellation_record>
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
# Khảo Sát (Research): [TASK-ID]
|
|
2
|
+
|
|
3
|
+
<research_context task_id="[TASK-ID]" version="2.0" framework="RIPER-5">
|
|
4
|
+
|
|
5
|
+
<!-- GIAI ĐOẠN CHỈ ĐỌC (READ-ONLY). Không sửa mã nguồn. Không tự ý ra quyết định triển khai. -->
|
|
6
|
+
<research_status>
|
|
7
|
+
<phase>RESEARCH</phase>
|
|
8
|
+
<mode>READ-ONLY</mode>
|
|
9
|
+
<research_owner></research_owner>
|
|
10
|
+
<last_updated></last_updated>
|
|
11
|
+
</research_status>
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## 1. Hành Vi Hiện Tại (Current Behavior)
|
|
16
|
+
|
|
17
|
+
<current_behavior>
|
|
18
|
+
[Hành vi quan sát được của hệ thống trước thay đổi này, dựa trên bằng chứng cụ thể.]
|
|
19
|
+
</current_behavior>
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## 2. Luồng Thực Thi (Execution Flow)
|
|
24
|
+
|
|
25
|
+
<execution_flow>
|
|
26
|
+
|
|
27
|
+
```text
|
|
28
|
+
Điểm vào (Entry)
|
|
29
|
+
→ ...
|
|
30
|
+
→ ...
|
|
31
|
+
→ Tác dụng phụ / Đầu ra (Side effect / output)
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
</execution_flow>
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## 3. Các Thành Phần Liên Quan (Relevant Components)
|
|
39
|
+
|
|
40
|
+
<components>
|
|
41
|
+
|
|
42
|
+
| File / Symbol | Vai trò | Bằng chứng | Độ tin cậy (Confidence) |
|
|
43
|
+
|---|---|---|---|
|
|
44
|
+
| | | | |
|
|
45
|
+
|
|
46
|
+
</components>
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## 4. Phụ Thuộc & Ranh Giới (Dependencies & Boundaries)
|
|
51
|
+
|
|
52
|
+
<boundaries>
|
|
53
|
+
<callers>[Ai gọi đến đoạn code mục tiêu này]</callers>
|
|
54
|
+
<callees>[Đoạn code mục tiêu gọi đến những thành phần nào]</callees>
|
|
55
|
+
<persistence>[Bảng cơ sở dữ liệu, cache keys, hàng đợi queues]</persistence>
|
|
56
|
+
<external_systems>[API bên thứ ba, message brokers bên ngoài]</external_systems>
|
|
57
|
+
<transaction_boundary>[Nơi transaction cơ sở dữ liệu bắt đầu và kết thúc]</transaction_boundary>
|
|
58
|
+
<security_boundary>[Ngữ cảnh xác thực auth, kiểm tra phân quyền, ranh giới tin cậy]</security_boundary>
|
|
59
|
+
</boundaries>
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## 5. Các Bài Kiểm Thử Hiện Có (Existing Tests)
|
|
64
|
+
|
|
65
|
+
<existing_tests>
|
|
66
|
+
|
|
67
|
+
| Bài test | Hành vi được bao phủ | Lỗ hổng / Điểm thiếu (Gap) |
|
|
68
|
+
|---|---|---|
|
|
69
|
+
| | | |
|
|
70
|
+
|
|
71
|
+
</existing_tests>
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## 6. Môi Trường Chạy & Cấu Hình (Runtime / Configuration)
|
|
76
|
+
|
|
77
|
+
<runtime_config>
|
|
78
|
+
[Biến môi trường, feature flags, tệp cấu hình liên quan đến thay đổi này.]
|
|
79
|
+
</runtime_config>
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## 7. Phân Tích Nguồn Sự Thật (Source-of-Truth Analysis)
|
|
84
|
+
|
|
85
|
+
<source_of_truth_analysis>
|
|
86
|
+
|
|
87
|
+
| Nguồn | Quy định điều gì | Thẩm quyền | Xung đột |
|
|
88
|
+
|---|---|---|---|
|
|
89
|
+
| | | | |
|
|
90
|
+
|
|
91
|
+
</source_of_truth_analysis>
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## 8. Phân Loại Bằng Chứng (Evidence Classification)
|
|
96
|
+
|
|
97
|
+
<!-- TUYỆT ĐỐI KHÔNG trộn lẫn sự thật thực tế, quan sát và giả định trong cùng một danh sách -->
|
|
98
|
+
<evidence>
|
|
99
|
+
<confirmed>
|
|
100
|
+
<!-- Đã xác minh trực tiếp từ mã nguồn, bài test hoặc tài liệu chuẩn -->
|
|
101
|
+
-
|
|
102
|
+
</confirmed>
|
|
103
|
+
|
|
104
|
+
<observed>
|
|
105
|
+
<!-- Suy luận từ hành vi, log hoặc đọc gián tiếp — chưa chứng minh trực tiếp -->
|
|
106
|
+
-
|
|
107
|
+
</observed>
|
|
108
|
+
|
|
109
|
+
<hypothesized>
|
|
110
|
+
<!-- Các giả định còn cần kiểm chứng trước khi thực hiện -->
|
|
111
|
+
-
|
|
112
|
+
</hypothesized>
|
|
113
|
+
</evidence>
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
## 9. Các Giả Định & Độ Không Chắc Chắn (Assumptions & Uncertainty)
|
|
118
|
+
|
|
119
|
+
<assumptions>
|
|
120
|
+
[Liệt kê bất kỳ giả định nào định hình kết luận khảo sát. Gắn cờ độ không chắc chắn: LOW / MEDIUM / HIGH.]
|
|
121
|
+
</assumptions>
|
|
122
|
+
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
## 10. Danh Sách Tệp Bị Ảnh Hưởng (Impacted Files)
|
|
126
|
+
|
|
127
|
+
<impacted_files>
|
|
128
|
+
- `duong/dan/toi/file` — [Lý do bị ảnh hưởng]
|
|
129
|
+
</impacted_files>
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
## 11. Các Quyết Định Đang Mở (Open Decisions)
|
|
134
|
+
|
|
135
|
+
<open_decisions>
|
|
136
|
+
<!-- Các câu hỏi chưa được giải quyết cần đưa vào giai đoạn Innovate (decision.md) -->
|
|
137
|
+
-
|
|
138
|
+
</open_decisions>
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
## 12. Tiêu Chí Rời Khỏi Khảo Sát (Research Exit Criteria)
|
|
143
|
+
|
|
144
|
+
<research_exit_criteria>
|
|
145
|
+
- [ ] Hành vi hiện tại đã được hiểu rõ và ghi nhận đầy đủ.
|
|
146
|
+
- [ ] Luồng thực thi đã được truy vết từ đầu đến cuối (end-to-end).
|
|
147
|
+
- [ ] Các ranh giới liên quan đã được xác định (callers, callees, persistence, security).
|
|
148
|
+
- [ ] Xung đột nguồn sự thật đã được làm rõ hoặc xác nhận không có xung đột.
|
|
149
|
+
- [ ] Danh sách các tệp bị ảnh hưởng đã được xác định rõ ràng.
|
|
150
|
+
- [ ] Bằng chứng đã được phân loại rõ ràng (Confirmed / Observed / Hypothesized).
|
|
151
|
+
- [ ] Không còn rào cản khảo sát nào chưa giải quyết.
|
|
152
|
+
</research_exit_criteria>
|
|
153
|
+
|
|
154
|
+
</research_context>
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
# Quyết Định Kỹ Thuật (Decision): [DEC-ID] [Task ID]
|
|
2
|
+
|
|
3
|
+
<technical_decision task_id="[TASK-ID]" dec_id="[DEC-ID]" version="1.0" framework="RIPER-5">
|
|
4
|
+
|
|
5
|
+
<!-- GIAI ĐOẠN CHỈ ĐỌC (READ-ONLY). Đề xuất các phương án. Không tự ý quyết định khi chưa có kỹ sư duyệt. -->
|
|
6
|
+
<decision_status>
|
|
7
|
+
<phase>INNOVATE</phase>
|
|
8
|
+
<mode>READ-ONLY</mode>
|
|
9
|
+
<decision_owner></decision_owner>
|
|
10
|
+
<last_updated></last_updated>
|
|
11
|
+
</decision_status>
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## 1. Ngữ Cảnh (Context)
|
|
16
|
+
|
|
17
|
+
<context>
|
|
18
|
+
<task>[Liên kết tới task.md hoặc Task ID]</task>
|
|
19
|
+
<research_artifact>[Liên kết tới research.md]</research_artifact>
|
|
20
|
+
<constraints>
|
|
21
|
+
[Các ràng buộc chính từ khảo sát làm thu hẹp không gian giải pháp.]
|
|
22
|
+
</constraints>
|
|
23
|
+
</context>
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## 2. Vấn Đề Cần Quyết Định (Decision Required)
|
|
28
|
+
|
|
29
|
+
<decision_question>
|
|
30
|
+
[Tuyên bố chính xác điều cần quyết định. Một câu hỏi trọng tâm cho mỗi artifact quyết định.]
|
|
31
|
+
</decision_question>
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## 3. Các Phương Án Đề Xuất (Options)
|
|
36
|
+
|
|
37
|
+
<options>
|
|
38
|
+
|
|
39
|
+
<option id="A">
|
|
40
|
+
<approach>[Hướng tiếp cận triển khai tổng quan]</approach>
|
|
41
|
+
<advantages>-</advantages>
|
|
42
|
+
<disadvantages>-</disadvantages>
|
|
43
|
+
<complexity>LOW | MEDIUM | HIGH</complexity>
|
|
44
|
+
<compatibility>[Tác động tương thích ngược]</compatibility>
|
|
45
|
+
<concurrency_transaction_risk>[Race conditions, tranh chấp khóa lock, độ phức tạp rollback]</concurrency_transaction_risk>
|
|
46
|
+
<testability>[Mức độ thuận tiện khi viết test kiểm chứng phương án này]</testability>
|
|
47
|
+
<maintainability>[Gánh nặng bảo trì dài hạn]</maintainability>
|
|
48
|
+
</option>
|
|
49
|
+
|
|
50
|
+
<option id="B">
|
|
51
|
+
<approach>[Hướng tiếp cận triển khai tổng quan]</approach>
|
|
52
|
+
<advantages>-</advantages>
|
|
53
|
+
<disadvantages>-</disadvantages>
|
|
54
|
+
<complexity>LOW | MEDIUM | HIGH</complexity>
|
|
55
|
+
<compatibility>[Tác động tương thích ngược]</compatibility>
|
|
56
|
+
<concurrency_transaction_risk>[Race conditions, tranh chấp khóa lock, độ phức tạp rollback]</concurrency_transaction_risk>
|
|
57
|
+
<testability>[Mức độ thuận tiện khi viết test kiểm chứng phương án này]</testability>
|
|
58
|
+
<maintainability>[Gánh nặng bảo trì dài hạn]</maintainability>
|
|
59
|
+
</option>
|
|
60
|
+
|
|
61
|
+
<option id="C">
|
|
62
|
+
<approach>[Hướng tiếp cận triển khai tổng quan]</approach>
|
|
63
|
+
<advantages>-</advantages>
|
|
64
|
+
<disadvantages>-</disadvantages>
|
|
65
|
+
<complexity>LOW | MEDIUM | HIGH</complexity>
|
|
66
|
+
<compatibility>[Tác động tương thích ngược]</compatibility>
|
|
67
|
+
<concurrency_transaction_risk>[Race conditions, tranh chấp khóa lock, độ phức tạp rollback]</concurrency_transaction_risk>
|
|
68
|
+
<testability>[Mức độ thuận tiện khi viết test kiểm chứng phương án này]</testability>
|
|
69
|
+
<maintainability>[Gánh nặng bảo trì dài hạn]</maintainability>
|
|
70
|
+
</option>
|
|
71
|
+
|
|
72
|
+
</options>
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## 4. Ma Trận Đánh Đổi (Trade-off Matrix)
|
|
77
|
+
|
|
78
|
+
<tradeoff_matrix>
|
|
79
|
+
|
|
80
|
+
| Tiêu chí | A | B | C |
|
|
81
|
+
|---|:---:|:---:|:---:|
|
|
82
|
+
| Khả năng tương thích | | | |
|
|
83
|
+
| Độ phức tạp | | | |
|
|
84
|
+
| Mức độ rủi ro | | | |
|
|
85
|
+
| Khả năng kiểm thử | | | |
|
|
86
|
+
| Khả năng bảo trì | | | |
|
|
87
|
+
|
|
88
|
+
<!-- Thang điểm: 1 (kém) → 5 (xuất sắc) -->
|
|
89
|
+
</tradeoff_matrix>
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## 5. Đề Xuất Của Agent (Recommendation)
|
|
94
|
+
|
|
95
|
+
<recommendation>
|
|
96
|
+
[Phương án Agent đề xuất kèm lý do lập luận. Đây là đề xuất — kỹ sư con người sẽ quyết định.]
|
|
97
|
+
</recommendation>
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## 6. Quyết Định Của Kỹ Sư (Engineer Decision)
|
|
102
|
+
|
|
103
|
+
<!-- Phần này BẮT BUỘC kỹ sư con người phải điền trước khi Gate 1 được thông qua -->
|
|
104
|
+
<engineer_decision>
|
|
105
|
+
<selected_option></selected_option>
|
|
106
|
+
<rationale></rationale>
|
|
107
|
+
<rejected_alternatives>
|
|
108
|
+
- Phương án [X]: [Lý do từ chối]
|
|
109
|
+
</rejected_alternatives>
|
|
110
|
+
</engineer_decision>
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
## 7. Ràng Buộc Phái Sinh Từ Quyết Định Này (Constraints Created)
|
|
115
|
+
|
|
116
|
+
<constraints_created>
|
|
117
|
+
[Liệt kê các ràng buộc mới lên khâu triển khai sẽ chuyển tiếp vào plan.md]
|
|
118
|
+
-
|
|
119
|
+
</constraints_created>
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## 8. Bằng Chứng Còn Cần Xác Minh (Evidence Still Required)
|
|
124
|
+
|
|
125
|
+
<evidence_required>
|
|
126
|
+
[Bất kỳ sự thật nào chưa được khẳng định cần xác minh trong giai đoạn Plan hoặc Execute]
|
|
127
|
+
-
|
|
128
|
+
</evidence_required>
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
## Gate 1 — Phê Duyệt Quyết Định (Decision Approved)
|
|
133
|
+
|
|
134
|
+
<gate id="G1">
|
|
135
|
+
- [ ] Toàn bộ phương án đã được trình bày và phân tích đánh đổi.
|
|
136
|
+
- [ ] Kỹ sư đã xem xét các phương án.
|
|
137
|
+
- [ ] Phương án do kỹ sư chọn đã được ghi nhận ở trên.
|
|
138
|
+
- [ ] Không còn quyết định nghiệp vụ / schema / bảo mật nào đang bỏ ngỏ.
|
|
139
|
+
<approved_by></approved_by>
|
|
140
|
+
<approved_date></approved_date>
|
|
141
|
+
</gate>
|
|
142
|
+
|
|
143
|
+
</technical_decision>
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# Biên Bản Bàn Giao (Handoff): [TASK-ID]
|
|
2
|
+
|
|
3
|
+
<handoff task_id="[TASK-ID]" version="2.0" framework="RIPER-5">
|
|
4
|
+
|
|
5
|
+
<!-- Tóm tắt bàn giao cuối cùng. Cố tình thiết kế ngắn gọn. Không lặp lại các chi tiết dài dòng trong research/plan/review. -->
|
|
6
|
+
<!-- Trả lời 4 câu hỏi: Đã thay đổi gì? Vì sao? Bằng chứng nào chứng minh? Còn rủi ro gì? -->
|
|
7
|
+
|
|
8
|
+
<handoff_status>
|
|
9
|
+
<review_decision>PASS</review_decision> <!-- Bắt buộc phải là PASS trước khi bàn giao hợp lệ -->
|
|
10
|
+
<review_artifact>[Liên kết tới review.md]</review_artifact>
|
|
11
|
+
<completed_date></completed_date>
|
|
12
|
+
</handoff_status>
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## 1. Những Gì Đã Thay Đổi (What Changed)
|
|
17
|
+
|
|
18
|
+
<what_changed>
|
|
19
|
+
[Tóm tắt súc tích về thay đổi hành vi đã hoàn thành. Tham chiếu tới mục tiêu trong task.md.]
|
|
20
|
+
</what_changed>
|
|
21
|
+
|
|
22
|
+
<main_changes>
|
|
23
|
+
- `duong/dan/toi/file` — [Bản chất thay đổi]
|
|
24
|
+
</main_changes>
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## 2. Lý Do Thay Đổi (Why)
|
|
29
|
+
|
|
30
|
+
<why>
|
|
31
|
+
[Lập luận kỹ thuật hoặc nghiệp vụ. Một đoạn văn ngắn gọn. Liên kết tới task.md để xem toàn bộ ngữ cảnh.]
|
|
32
|
+
</why>
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## 3. Bằng Chứng Xác Minh (What Proves It)
|
|
37
|
+
|
|
38
|
+
<evidence>
|
|
39
|
+
|
|
40
|
+
| AC | Công cụ kiểm chứng (Verifier) | Kết quả |
|
|
41
|
+
|---|---|---|
|
|
42
|
+
| AC-1 | `[lệnh]` | PASS |
|
|
43
|
+
| AC-2 | `[lệnh]` | PASS |
|
|
44
|
+
| AC-3 | `[lệnh]` | PASS |
|
|
45
|
+
|
|
46
|
+
<!-- Lệnh để tái lập kiểm chứng: -->
|
|
47
|
+
```bash
|
|
48
|
+
[Các lệnh kiểm chứng theo thứ tự]
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
</evidence>
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## 4. Rủi Ro Tồn Đọng (What Remains Risky)
|
|
56
|
+
|
|
57
|
+
<residual_risk>
|
|
58
|
+
[Bất kỳ rủi ro nào đã được chấp thuận tại Gate 3 mà người tiếp nhận cần lưu ý.]
|
|
59
|
+
- [Mục rủi ro — khuyến nghị giảm thiểu hoặc giám sát]
|
|
60
|
+
</residual_risk>
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## 5. Quyết Định & Giả Định (Decisions & Assumptions)
|
|
65
|
+
|
|
66
|
+
<decisions_and_assumptions>
|
|
67
|
+
<!-- Chỉ liệt kê các quyết định ảnh hưởng đến người bảo trì tương lai. Chi tiết xem tại decision.md. -->
|
|
68
|
+
- [Tóm tắt quyết định — vì sao chọn giải pháp này thay vì các lựa chọn khác]
|
|
69
|
+
</decisions_and_assumptions>
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## 6. Hành Động Tiếp Theo (Next Action)
|
|
74
|
+
|
|
75
|
+
<next_action>
|
|
76
|
+
[Những việc người hoặc giai đoạn tiếp theo nên làm, nếu có. Nếu không: NONE.]
|
|
77
|
+
</next_action>
|
|
78
|
+
|
|
79
|
+
</handoff>
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
# Kế Hoạch Lát Cắt (Plan): [PLAN-ID] [Task ID]
|
|
2
|
+
|
|
3
|
+
<execution_plan task_id="[TASK-ID]" plan_id="[PLAN-ID]" version="2.0" framework="RIPER-5">
|
|
4
|
+
|
|
5
|
+
<!-- GIAI ĐOẠN LẬP KẾ HOẠCH (PLAN). Chỉ tạo/sửa artifact kế hoạch. Không sửa mã nguồn. -->
|
|
6
|
+
<plan_status>
|
|
7
|
+
<phase>PLAN</phase>
|
|
8
|
+
<last_updated></last_updated>
|
|
9
|
+
</plan_status>
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## 1. Artifact Đầu Vào (Input Artifacts)
|
|
14
|
+
|
|
15
|
+
<input_artifacts>
|
|
16
|
+
<task_spec>[Liên kết tới task.md]</task_spec>
|
|
17
|
+
<research>[Liên kết tới research.md]</research>
|
|
18
|
+
<decision>[Liên kết tới decision.md — DEC-ID, phương án đã chọn]</decision>
|
|
19
|
+
</input_artifacts>
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## 2. Ràng Buộc Thực Thi (Execution Constraints)
|
|
24
|
+
|
|
25
|
+
<!-- Các ràng buộc này có tính pháp lý ràng buộc giai đoạn Execute. Agent không được vượt quá. -->
|
|
26
|
+
<execution_constraints>
|
|
27
|
+
<allowed_files>
|
|
28
|
+
- `src/duong/dan/...` — [Lý do cho phép]
|
|
29
|
+
- `tests/duong/dan/...` — [Lý do cho phép]
|
|
30
|
+
</allowed_files>
|
|
31
|
+
<forbidden_files>
|
|
32
|
+
- `src/public-api/...` — [Không nằm trong phạm vi]
|
|
33
|
+
- `schema/...` — [Thay đổi schema yêu cầu phê duyệt riêng]
|
|
34
|
+
</forbidden_files>
|
|
35
|
+
<allowed_commands>
|
|
36
|
+
- `[lệnh chạy test]`
|
|
37
|
+
- `[lệnh chạy lint/format]`
|
|
38
|
+
</allowed_commands>
|
|
39
|
+
<restricted_operations>
|
|
40
|
+
- Không chạy migration database khi chưa có sự phê duyệt rõ ràng từ kỹ sư.
|
|
41
|
+
- Không thêm thư viện bên thứ ba mới khi chưa có sự phê duyệt rõ ràng từ kỹ sư.
|
|
42
|
+
</restricted_operations>
|
|
43
|
+
<required_approvals>
|
|
44
|
+
- [Liệt kê các điểm cần dừng xin phép giữa chừng, ví dụ: trước khi sửa module dùng chung]
|
|
45
|
+
</required_approvals>
|
|
46
|
+
</execution_constraints>
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## 3. Bảng Tóm Tắt Lát Cắt (Slice Summary)
|
|
51
|
+
|
|
52
|
+
<slice_summary>
|
|
53
|
+
|
|
54
|
+
| ID | Hành vi | Ranh giới | Danh sách file | AC | Verifier | Rủi ro | Mode | Rollback |
|
|
55
|
+
|---|---|---|---|---|---|---|---|---|
|
|
56
|
+
| S1 | | | | | | | | |
|
|
57
|
+
| S2 | | | | | | | | |
|
|
58
|
+
|
|
59
|
+
</slice_summary>
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## 4. Chi Tiết Từng Lát Cắt (Slice Details)
|
|
64
|
+
|
|
65
|
+
<slices>
|
|
66
|
+
|
|
67
|
+
<slice id="S1">
|
|
68
|
+
<objective>[Hành vi cụ thể mà lát cắt này mang lại]</objective>
|
|
69
|
+
<change>[Những gì cụ thể sẽ được chỉnh sửa]</change>
|
|
70
|
+
<allowed_files>
|
|
71
|
+
- `src/duong/dan/file.py`
|
|
72
|
+
</allowed_files>
|
|
73
|
+
<acceptance_criteria>
|
|
74
|
+
- [ ] AC-N: [Tiêu chí mà lát cắt này thỏa mãn]
|
|
75
|
+
</acceptance_criteria>
|
|
76
|
+
<verifier>
|
|
77
|
+
```bash
|
|
78
|
+
# Lệnh kiểm chứng chứng minh lát cắt này hoạt động chính xác
|
|
79
|
+
```
|
|
80
|
+
</verifier>
|
|
81
|
+
<expected_evidence>[Đầu ra mong muốn từ lệnh verifier]</expected_evidence>
|
|
82
|
+
<rollback_point>[Cách hoàn nguyên nếu lát cắt này thất bại — git stash / revert commit / flag]</rollback_point>
|
|
83
|
+
<stop_conditions>
|
|
84
|
+
- [Điều kiện bắt buộc dừng lại và yêu cầu con người hướng dẫn]
|
|
85
|
+
</stop_conditions>
|
|
86
|
+
</slice>
|
|
87
|
+
|
|
88
|
+
<!-- Sao chép khối <slice> này cho từng lát cắt bổ sung -->
|
|
89
|
+
|
|
90
|
+
</slices>
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## 5. Hợp Đồng Phạm Vi (Scope Contract)
|
|
95
|
+
|
|
96
|
+
<scope_contract>
|
|
97
|
+
<allowed>
|
|
98
|
+
- [Những gì Agent được phép chỉnh sửa]
|
|
99
|
+
</allowed>
|
|
100
|
+
<forbidden>
|
|
101
|
+
- [Những gì Agent tuyệt đối không bao giờ được chạm vào trong kế hoạch này]
|
|
102
|
+
</forbidden>
|
|
103
|
+
</scope_contract>
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## 6. Ma Trận Kiểm Chứng (Verification Matrix)
|
|
108
|
+
|
|
109
|
+
<!-- Được điền trong và sau giai đoạn Thực thi (Execute) -->
|
|
110
|
+
<verification_matrix>
|
|
111
|
+
|
|
112
|
+
| AC / Rủi ro | Bài test / Lệnh | Bằng chứng kỳ vọng | Kết quả thực tế |
|
|
113
|
+
|---|---|---|---|
|
|
114
|
+
| AC-1 | | | |
|
|
115
|
+
| AC-2 | | | |
|
|
116
|
+
| AC-3 | | | |
|
|
117
|
+
|
|
118
|
+
</verification_matrix>
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
## Gate 2 — Phê Duyệt Kế Hoạch (Plan Approved)
|
|
123
|
+
|
|
124
|
+
<gate id="G2">
|
|
125
|
+
- [ ] Mọi lát cắt đều có verifier xác định.
|
|
126
|
+
- [ ] Hợp đồng phạm vi (cho phép / cấm) đã được phê duyệt.
|
|
127
|
+
- [ ] Điều kiện dừng đã được định nghĩa cho từng slice.
|
|
128
|
+
- [ ] Điểm hoàn nguyên (rollback point) đã được định nghĩa cho từng slice.
|
|
129
|
+
- [ ] Danh sách lệnh được phép đã được liệt kê.
|
|
130
|
+
- [ ] Kỹ sư đã ký duyệt.
|
|
131
|
+
<approved_by></approved_by>
|
|
132
|
+
<approved_date></approved_date>
|
|
133
|
+
</gate>
|
|
134
|
+
|
|
135
|
+
</execution_plan>
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# Chương Trình Nhiều Giai Đoạn (Program): [PROG-ID] [Tên Chương Trình]
|
|
2
|
+
|
|
3
|
+
<program_umbrella_plan version="2.0" framework="RIPER-5">
|
|
4
|
+
|
|
5
|
+
<metadata>
|
|
6
|
+
<program_id>[PROG-ID]</program_id>
|
|
7
|
+
<lead>@engineering_lead</lead>
|
|
8
|
+
<target_timeline>[ví dụ: Sprint 1-3]</target_timeline>
|
|
9
|
+
</metadata>
|
|
10
|
+
|
|
11
|
+
## 1. Chiến Lược & Kết Quả Kỳ Vọng (Executive Strategy & Outcome)
|
|
12
|
+
<strategy>
|
|
13
|
+
<target_outcome>
|
|
14
|
+
[Mục tiêu kiến trúc hoặc nghiệp vụ đo lường được ở cấp độ cao.]
|
|
15
|
+
</target_outcome>
|
|
16
|
+
|
|
17
|
+
<system_impact>
|
|
18
|
+
[Các subsystem bị ảnh hưởng, downstream services, hoặc chỉ tiêu hiệu năng.]
|
|
19
|
+
</system_impact>
|
|
20
|
+
</strategy>
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## 2. Phân Rã Giai Đoạn & Bán Kính Ảnh Hưởng (Phase Breakdown & Blast Radius)
|
|
25
|
+
<phase_breakdown>
|
|
26
|
+
<phase number="1" id="phase-01">
|
|
27
|
+
<title>[Domain Models & Port Interfaces]</title>
|
|
28
|
+
<scope>`src/domain/`, `src/application/port_*`</scope>
|
|
29
|
+
<blast_radius level="LOW">Không ảnh hưởng dependency bên ngoài</blast_radius>
|
|
30
|
+
<status>NOT_STARTED</status>
|
|
31
|
+
</phase>
|
|
32
|
+
|
|
33
|
+
<phase number="2" id="phase-02">
|
|
34
|
+
<title>[Infrastructure Adapters & Persistence]</title>
|
|
35
|
+
<scope>`src/infrastructure/`</scope>
|
|
36
|
+
<blast_radius level="MEDIUM">Phụ thuộc vào hợp đồng domain của Phase 01</blast_radius>
|
|
37
|
+
<status>NOT_STARTED</status>
|
|
38
|
+
</phase>
|
|
39
|
+
|
|
40
|
+
<phase number="3" id="phase-03">
|
|
41
|
+
<title>[API Exposure & End-to-End Integration]</title>
|
|
42
|
+
<scope>`src/api/`</scope>
|
|
43
|
+
<blast_radius level="HIGH">Mở public HTTP endpoints và DTO contracts</blast_radius>
|
|
44
|
+
<status>NOT_STARTED</status>
|
|
45
|
+
</phase>
|
|
46
|
+
</phase_breakdown>
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## 3. Bất Biến Toàn Cục & Quy Tắc Cổng Phase (Global Invariants & Phase Gate Rules)
|
|
51
|
+
<phase_gates>
|
|
52
|
+
<rule>Mỗi phase bắt buộc phải pass 100% các lệnh kiểm thử xác minh trước khi phase tiếp theo bắt đầu.</rule>
|
|
53
|
+
<rule>Không phase nào được đưa ra breaking change lên các public API hiện có khi chưa có sự chấp thuận trước.</rule>
|
|
54
|
+
</phase_gates>
|
|
55
|
+
|
|
56
|
+
</program_umbrella_plan>
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
# Bảng Đăng Ký Đánh Giá Benchmark & Số Liệu Định Lượng (RIPER-5 Framework)
|
|
2
|
+
# Khởi tạo dưới tên results.tsv trong thư mục task khi cần theo dõi hiệu năng, độ trễ latency, bộ nhớ hoặc điểm eval.
|
|
3
|
+
iteration timestamp slice_id metric_name baseline observed unit diff_pct status notes
|
|
4
|
+
0 2026-01-01T00:00:00Z baseline p99_latency_ms 100.0 100.0 ms 0.0% BASELINE Đo lường baseline ban đầu
|
|
5
|
+
1 2026-01-01T01:00:00Z slice-01 p99_latency_ms 100.0 75.0 ms -25.0% PASS Áp dụng tối ưu hóa slice 1
|