@ngockhoale/ukit 1.5.14 → 1.5.17

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/CHANGELOG.md CHANGED
@@ -2,6 +2,20 @@
2
2
 
3
3
  All notable changes to UKit are documented here.
4
4
 
5
+ ## 1.5.16 - 2026-06-06
6
+
7
+ ### Changed
8
+
9
+ - `clear-handoff`: added Step 2 — stage `docs/AI_HANDOFF/`, commit planning artifacts, merge `handoff/integration → $BASE`, push, delete integration branch. This is the **only** git commit+push in the entire handoff flow.
10
+ - `review-handoff`: removed all merge/push instructions from Step 3. Reviewer now stops at "Run /ukit:clear-handoff" after all tasks approved.
11
+ - Rule enforced: `create-handoff`, `implement-handoff`, `review-handoff` may only change files inside `docs/AI_HANDOFF/`. No commits to main, no pushes.
12
+
13
+ ## 1.5.15 - 2026-06-06
14
+
15
+ ### Changed
16
+
17
+ - `review-handoff`: removed automatic `git merge handoff/integration → $BASE`. Reviewer now stops after all tasks are approved and instructs the human to merge manually. Only the end user (or an explicit human prompt) may commit to the base branch.
18
+
5
19
  ## 1.5.14 - 2026-06-05
6
20
 
7
21
  ### Added
@@ -97,6 +97,7 @@ items:
97
97
  - runtime.os
98
98
  - runtime.nodeVersion
99
99
  - providers.unic
100
+ - ukit.version
100
101
  enabledByDefault: true
101
102
  packs:
102
103
  - core
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ngockhoale/ukit",
3
- "version": "1.5.14",
3
+ "version": "1.5.17",
4
4
  "description": "Install/update an index-first AI workspace for Claude Code, Antigravity, OpenAI Codex, and OpenCode.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -27,26 +27,45 @@ Fix all tasks first, then re-run /ukit:clear-handoff.
27
27
 
28
28
  Only continue if ALL tasks are `done`.
29
29
 
30
- ## Step 2 — Cleanup branches (safety net)
30
+ ## Step 2 — Merge + commit + push to $BASE
31
31
 
32
- Task worktrees are deleted immediately during implement — none should remain.
33
- This step is a safety net + integration branch cleanup:
32
+ This is the **only step in the entire handoff that commits and pushes to the base branch.**
33
+
34
+ ```bash
35
+ git checkout $BASE
36
+
37
+ # Stage handoff planning docs (written to workspace during create-handoff, never committed yet)
38
+ git add docs/AI_HANDOFF/
39
+ if ! git diff --staged --quiet; then
40
+ git commit -m "docs(handoff): add cycle planning artifacts"
41
+ fi
42
+
43
+ # Merge integration branch (code changes from implement-handoff worktrees)
44
+ if git merge handoff/integration --no-ff -m "feat: complete handoff cycle"; then
45
+ git push origin $BASE
46
+ git branch -D handoff/integration
47
+ else
48
+ git merge --abort
49
+ echo "⛔ Merge conflict on handoff/integration → $BASE. Resolve manually, then re-run /ukit:clear-handoff."
50
+ exit 1
51
+ fi
52
+ ```
53
+
54
+ ## Step 3 — Cleanup stray worktrees (safety net)
55
+
56
+ Task worktrees are deleted immediately during implement — none should remain. Safety net only:
34
57
 
35
58
  ```bash
36
- # Safety net: remove any stray task worktrees (should already be gone)
37
59
  git worktree list | grep '.worktrees/task-' | awk '{print $1}' | while read wt; do
38
60
  name=$(basename $wt)
39
61
  git worktree remove $wt --force 2>/dev/null
40
62
  git branch -D handoff/$name 2>/dev/null
41
63
  done
42
64
 
43
- # Integration branch cleanup (removed by review-handoff on success, but safety net here too)
44
- git branch -D handoff/integration 2>/dev/null
45
-
46
65
  git worktree prune
47
66
  ```
48
67
 
49
- ## Step 3 — Archive cycle
68
+ ## Step 4 — Archive cycle
50
69
 
51
70
  Read INDEX.md for cycle ID and task list.
52
71
  Write `docs/AI_HANDOFF/archive/cycle-NNN.md`:
@@ -57,7 +76,7 @@ Write `docs/AI_HANDOFF/archive/cycle-NNN.md`:
57
76
  ```
58
77
  If `archive/` has > 3 files → delete oldest, append 1-line summary to `HISTORY.md`.
59
78
 
60
- ## Step 4 — Reset state files
79
+ ## Step 5 — Reset state files
61
80
 
62
81
  ```
63
82
  PLAN.md → "# PLAN\n_(empty)_"
@@ -66,11 +85,11 @@ ACTIVE.md → "# ACTIVE\n_(no active cycle)_"
66
85
  tasks/TASK-*.md → delete all (keep _TEMPLATE.md)
67
86
  ```
68
87
 
69
- ## Step 5 — Report
88
+ ## Step 6 — Report
70
89
 
71
- Cycle NNN archived. X tasks completed. Base was $BASE. Worktrees removed. Ready for new cycle.
90
+ Cycle NNN merged + pushed to $BASE. X tasks completed. Worktrees removed. Ready for new cycle.
72
91
 
73
- > Claude Code: spawn `ukit-small-task-maintainer` (haiku) with steps 1–5.
74
- > Other tools: use lite model, follow steps 1–5 above.
92
+ > Claude Code: spawn `ukit-small-task-maintainer` (haiku) with steps 1–6.
93
+ > Other tools: use lite model, follow steps 1–6 above.
75
94
 
76
95
  **Next:** `/ukit:create-handoff <new problem description>`
@@ -77,31 +77,32 @@ Set `status = NEXT_STATUS_FOR_INDEX`. Orchestrator writes INDEX, not the reviewe
77
77
  ## Step 3 — After all tasks reviewed
78
78
 
79
79
  **All `approved` or `approved_minor`:**
80
- ```bash
81
- git checkout $BASE
82
- if git merge handoff/integration --no-ff -m "feat: handoff cycle complete"; then
83
- git branch -D handoff/integration
84
- # INDEX.md: all approved tasks → done
85
- else
86
- git merge --abort
87
- # Report: conflict on integration→BASE. Human must resolve manually.
88
- fi
80
+
81
+ Update INDEX.md: all approved tasks → `done`.
82
+
83
+ **STOP. Do not commit, do not push, do not merge.** Only `docs/AI_HANDOFF/` was touched during this entire cycle. The merge + commit + push happens exclusively in `/ukit:clear-handoff`.
84
+
85
+ Report:
86
+
87
+ ```
88
+ ✅ All tasks approved. Cycle ready to finalize.
89
+ Run: /ukit:clear-handoff
89
90
  ```
90
91
 
91
92
  **Any `changes_requested` or `critical_block`:**
92
- Keep `handoff/integration` open for next implement round. Report which tasks need fixes.
93
+ Keep `handoff/integration` open. Report which tasks need fixes.
93
94
 
94
95
  ## Step 4 — Report
95
96
 
96
97
  ```
97
98
  Review summary:
98
- TASK-001: approved — merged into BASE
99
+ TASK-001: approved
99
100
  TASK-002: changes_requested — see §Discussion
100
- Integration: merged to BASE | pending (fix TASK-002 first)
101
+ Integration: ready for clear-handoff | pending (fix TASK-002 first)
101
102
  ```
102
103
 
103
104
  **Next:**
104
- - All done → `/ukit:clear-handoff`
105
+ - All approved → `/ukit:clear-handoff` (does the merge + commit + push)
105
106
  - Has fixes → executor re-runs `/ukit:implement-handoff TASK-xxx`
106
107
 
107
108
  > Claude Code: spawn `code-reviewer` (opus) per task for 2a–2d. Orchestrator handles 1, 2e, 3.
@@ -66,7 +66,7 @@ For clearly non-code specialist lanes (docs-only, status, task queue), skip the
66
66
  - **Do not ask normal contributors to run internal helper commands**; run them yourself or tell them to rerun `ukit install`.
67
67
  - Do not ask normal contributors to memorize `ukit doctor`, `ukit diff`, `ukit uninstall`, or `ukit index ...` unless they explicitly need maintainer/debug help.
68
68
 
69
- ## UKit v1.5.1 Shared Runtime
69
+ ## UKit v{{ukit.version}} Shared Runtime
70
70
 
71
71
  - Shared runtime state lives in `.ukit/storage/`.
72
72
  - Treat `.ukit/storage/config.json` as the source of runtime toggles for compact, token pipeline, router, memory, validation, and Safe Patch behavior.