@ngockhoale/ukit 2.5.1 → 2.6.0

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.
@@ -6,11 +6,14 @@ File này BẮT BUỘC giữ structure: Goal + Test Cases + Test Files + Verific
6
6
  Mọi AI (planner / executor / reviewer) đọc và ghi vào file NÀY. Không trao đổi ngoài file.
7
7
  -->
8
8
 
9
- - Status: `ready` <!-- ready | in_progress | pending_review | changes_requested | critical_block | approved | approved_minor | blocked | done -->
9
+ - Status: `ready` <!-- ready | in_progress | pending_review | changes_requested | critical_block | approved | approved_minor | blocked | done | cancelled_superseded -->
10
10
  - Size: `M` <!-- S | M | L — runtime budgets key off this field; defaults to M when missing -->
11
11
  - Owner: `-` <!-- tool đang giữ task -->
12
12
  - Reviewer: `-` <!-- model name reviewer dùng, set ở Phase 4 -->
13
13
  - Parent plan: `docs/AI_HANDOFF/PLAN.md` §<section>
14
+ - Spec references: `docs/AI_HANDOFF/SPEC.md` §<n>, §<n> <!-- FR/section IDs this task implements -->
15
+ - Supersedes: `(none)` <!-- hoặc TASK-xxx — recovery task (-R<n>) thay thế một record kẹt -->
16
+ - Superseded by: `(none)` <!-- set khi status = cancelled_superseded -->
14
17
 
15
18
  ## Goal
16
19
 
@@ -144,9 +144,18 @@
144
144
  }
145
145
  },
146
146
  "modelTiers": {
147
- "lite": { "claudeModel": "claude-haiku-4-5", "genericModel": "unic-lite" },
148
- "code": { "claudeModel": "claude-sonnet-5", "genericModel": "unic-code" },
149
- "smart": { "claudeModel": "claude-opus-5", "genericModel": "unic-smart" },
147
+ "lite": {
148
+ "claudeModel": "claude-haiku-4-5",
149
+ "genericModel": "unic-lite"
150
+ },
151
+ "code": {
152
+ "claudeModel": "claude-sonnet-5",
153
+ "genericModel": "unic-code"
154
+ },
155
+ "smart": {
156
+ "claudeModel": "claude-opus-5",
157
+ "genericModel": "unic-smart"
158
+ },
150
159
  "vision": {
151
160
  "claudeModel": "unic-vision",
152
161
  "genericModel": "unic-vision",
@@ -158,7 +167,11 @@
158
167
  "escalation": {
159
168
  "enabled": true,
160
169
  "debugLoopThreshold": 2,
161
- "tierOrder": ["lite", "code", "smart"],
170
+ "tierOrder": [
171
+ "lite",
172
+ "code",
173
+ "smart"
174
+ ],
162
175
  "cap": "smart"
163
176
  }
164
177
  },
@@ -242,12 +255,29 @@
242
255
  "done"
243
256
  ],
244
257
  "taskBudgets": {
245
- "S": { "softMin": 8, "hardMin": 15 },
246
- "M": { "softMin": 15, "hardMin": 30 },
247
- "L": { "softMin": 25, "hardMin": 45 },
258
+ "S": {
259
+ "softMin": 8,
260
+ "hardMin": 15
261
+ },
262
+ "M": {
263
+ "softMin": 15,
264
+ "hardMin": 30
265
+ },
266
+ "L": {
267
+ "softMin": 25,
268
+ "hardMin": 45
269
+ },
248
270
  "hardPolicy": "split"
249
271
  },
250
- "milestoneIntervalMin": 5
272
+ "milestoneIntervalMin": 5,
273
+ "fullstack": {
274
+ "stopGateEnabled": true,
275
+ "stopGateMaxStalledBlocks": 12,
276
+ "quietScansRequired": 2,
277
+ "idleWatchdogMin": 5,
278
+ "autoArchive": true,
279
+ "specRequired": true
280
+ }
251
281
  },
252
282
  "subagents": {
253
283
  "enabled": true,
@@ -545,7 +575,15 @@
545
575
  "rerunVerificationCommands": "Reviewer phải tự chạy lại Verification Commands, không tin output executor.",
546
576
  "appendVerdictToTaskFile": "Reviewer append `## Reviewer Verdict` vào task file để khép vòng handoff."
547
577
  },
548
- "statusFlow": "Danh sách status hợp lệ trong INDEX.md. Đổi tên trong này = đổi state machine handoff."
578
+ "statusFlow": "Danh sách status hợp lệ trong INDEX.md. Đổi tên trong này = đổi state machine handoff.",
579
+ "fullstack": {
580
+ "stopGateEnabled": "Bật Stop gate handoff: RUN.md Phase != done/blocked → Stop hook từ chối stop kèm Next step, giữ handoff-fullstack chạy tiếp thay vì đứng sau recap. Tắt chỉ khi debug.",
581
+ "stopGateMaxStalledBlocks": "Liveness breaker: cursor không nhích qua N lần block liên tiếp thì gate thả stop (tránh vòng lặp vô tận). Mặc định 12.",
582
+ "quietScansRequired": "Số scan liên tiếp không thấy việc mới trước khi handoff-fullstack được phép đóng run. Mặc định 2.",
583
+ "idleWatchdogMin": "Khoảng phút cho scheduled wakeup nếu harness hỗ trợ (cron/loop). Mặc định 5.",
584
+ "autoArchive": "true = Phase F tự archive cycle vào docs/AI_HANDOFF/archive/cycle-NN/ khi hoàn tất.",
585
+ "specRequired": "true = handoff-create bắt buộc viết docs/AI_HANDOFF/SPEC.md chi tiết trước khi tạo task."
586
+ }
549
587
  }
550
588
  }
551
589
  }