spec-lite 1.1.7 → 1.1.8

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "spec-lite",
3
- "version": "1.1.7",
3
+ "version": "1.1.8",
4
4
  "description": "Spec-driven development kit for Claude Code",
5
5
  "type": "module",
6
6
  "bin": {
@@ -0,0 +1,125 @@
1
+ ---
2
+ name: archive
3
+ description: Archive một integration từ specs/integrations sang specs/archive. Dùng khi một integration đã hoàn thành hoặc không còn active và cần được lưu trữ ra khỏi thư mục làm việc chính.
4
+ ---
5
+
6
+ # archive
7
+
8
+ ## Overview
9
+
10
+ Di chuyển một integration từ `specs/integrations/` sang `specs/archive/` để dọn dẹp thư mục làm việc chính trong khi vẫn giữ nguyên toàn bộ nội dung integration đó.
11
+
12
+ ## When to Use
13
+
14
+ - Integration đã hoàn thành (Done) và không cần active nữa
15
+ - Integration bị cancel hoặc deferred vô thời hạn
16
+ - Muốn dọn dẹp `specs/integrations/` khỏi các integration cũ
17
+
18
+ ## When NOT to Use
19
+
20
+ - Integration đang In Progress → chưa nên archive
21
+ - Muốn xóa hoàn toàn → đừng archive, thao tác thủ công sau khi confirm với team
22
+
23
+ ---
24
+
25
+ ## Process
26
+
27
+ ### Bước 1: Kiểm tra thư mục archive
28
+
29
+ Kiểm tra `specs/archive/` đã tồn tại chưa.
30
+
31
+ **Nếu chưa tồn tại** → tạo thư mục `specs/archive/`.
32
+
33
+ **Nếu đã tồn tại** → tiếp tục.
34
+
35
+ ---
36
+
37
+ ### Bước 2: Liệt kê integrations
38
+
39
+ Quét `specs/integrations/` để tìm tất cả các integration (mỗi integration là một thư mục con).
40
+
41
+ **Nếu không có integration nào:**
42
+
43
+ ```
44
+ Không có integration nào trong specs/integrations/.
45
+ ```
46
+
47
+ Dừng lại.
48
+
49
+ **Nếu có integrations**, hiển thị danh sách dạng numbered list, kèm trạng thái nếu đọc được từ `spec.md` (frontmatter `status` hoặc heading):
50
+
51
+ ```
52
+ Integrations trong specs/integrations/:
53
+
54
+ [1] 001-user-authentication (approved)
55
+ [2] 002-payment-integration (draft)
56
+ [3] 003-notification-service (done)
57
+ [4] 004-admin-panel (in-progress)
58
+
59
+ Chọn số thứ tự integration để archive (hoặc nhập nhiều số cách nhau bởi dấu cách, ví dụ: 1 3):
60
+ ```
61
+
62
+ Với mỗi integration, cố gắng đọc `spec.md` để lấy status. Nếu không đọc được thì bỏ qua phần status.
63
+
64
+ ---
65
+
66
+ ### Bước 3: Xác nhận
67
+
68
+ Sau khi user chọn, hiển thị xác nhận trước khi di chuyển:
69
+
70
+ ```
71
+ Sẽ archive các integration sau:
72
+
73
+ specs/integrations/001-user-authentication/ → specs/archive/001-user-authentication/
74
+ specs/integrations/003-notification-service/ → specs/archive/003-notification-service/
75
+
76
+ Xác nhận? (yes/no)
77
+ ```
78
+
79
+ Nếu user không confirm → hủy, không làm gì.
80
+
81
+ ---
82
+
83
+ ### Bước 4: Di chuyển
84
+
85
+ Với mỗi integration đã được confirm:
86
+
87
+ - Di chuyển toàn bộ thư mục `specs/integrations/{slug}/` sang `specs/archive/{slug}/`
88
+ - Giữ nguyên toàn bộ cấu trúc thư mục và file bên trong
89
+
90
+ Nếu `specs/archive/{slug}/` đã tồn tại (trùng tên) → cảnh báo:
91
+
92
+ ```
93
+ ⚠ specs/archive/001-user-authentication/ đã tồn tại. Bỏ qua integration này để tránh ghi đè.
94
+ ```
95
+
96
+ Và bỏ qua integration đó, tiếp tục với các integration còn lại.
97
+
98
+ ---
99
+
100
+ ### Bước 5: Kết quả
101
+
102
+ Thông báo kết quả:
103
+
104
+ ```
105
+ ✓ Đã archive:
106
+ specs/archive/001-user-authentication/
107
+ specs/archive/003-notification-service/
108
+
109
+ {nếu có lỗi}
110
+ ⚠ Bỏ qua (đã tồn tại):
111
+ specs/archive/005-foo/
112
+
113
+ specs/integrations/ hiện còn {N} integration(s).
114
+ ```
115
+
116
+ ---
117
+
118
+ ## Verification
119
+
120
+ Trước khi di chuyển:
121
+
122
+ - [ ] `specs/archive/` đã tồn tại (tạo nếu chưa có)
123
+ - [ ] User đã chọn ít nhất 1 integration
124
+ - [ ] User đã confirm trước khi di chuyển
125
+ - [ ] Không ghi đè nếu slug đã tồn tại trong `specs/archive/`
@@ -174,6 +174,7 @@ Sau khi main artifacts đã sẵn sàng (từ greenfield hoặc brownfield), m
174
174
  | `/plan` | `spec.md`, `tech.md`, `domain.md` | `plan.md`, `todo.md` |
175
175
  | `/build` | `plan.md`, `todo.md` | *(source code)* |
176
176
  | `/review` | `spec.md`, `tech.md`, `plan.md`, `todo.md`, *(source code)* | *(findings report)* |
177
+ | `/archive` | `specs/integrations/` | `specs/archive/` |
177
178
 
178
179
  ### `/spec-new [requirement]`
179
180
 
@@ -267,6 +268,22 @@ Review implementation sau `/build` theo năm trục: correctness, readability, a
267
268
 
268
269
  ---
269
270
 
271
+ ### `/archive`
272
+
273
+ Di chuyển integration đã hoàn thành hoặc không còn active từ `specs/integrations/` sang `specs/archive/` để dọn dẹp thư mục làm việc chính.
274
+
275
+ **Bước 1 — Kiểm tra thư mục:** Tự động tạo `specs/archive/` nếu chưa tồn tại.
276
+
277
+ **Bước 2 — Liệt kê:** Quét `specs/integrations/`, hiển thị numbered list kèm status (đọc từ `spec.md` nếu có). Nếu không có integration nào → thông báo và dừng.
278
+
279
+ **Bước 3 — Xác nhận:** Hiển thị preview mapping `integrations/{slug}/ → archive/{slug}/` trước khi di chuyển. Chờ user confirm.
280
+
281
+ **Bước 4 — Di chuyển:** Move toàn bộ thư mục, giữ nguyên cấu trúc bên trong. Nếu slug đã tồn tại trong `specs/archive/` → bỏ qua và cảnh báo để tránh ghi đè.
282
+
283
+ **Bước 5 — Kết quả:** Liệt kê integrations đã archive, integrations bị bỏ qua (nếu có), và số integration còn lại trong `specs/integrations/`.
284
+
285
+ ---
286
+
270
287
  ### Thứ tự thực hiện
271
288
 
272
289
  ```
@@ -284,6 +301,8 @@ Review implementation sau `/build` theo năm trục: correctness, readability, a
284
301
  /review │ (nếu Critical/Important)
285
302
  │ │
286
303
  [approve] ──────────┘ (nếu Suggestion only)
304
+
305
+ /archive (khi integration Done, dọn dẹp khỏi integrations/)
287
306
  ```
288
307
 
289
308
  ---