@ngockhoale/ukit 1.4.1 → 1.4.3
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 +26 -0
- package/package.json +1 -1
- package/src/core/runtimeConfig.js +65 -1
- package/src/index/taskRouting.js +547 -5
- package/templates/.claude/hooks/reinject-context.sh +2 -0
- package/templates/.claude/hooks/session-start.md +2 -0
- package/templates/.claude/hooks/skill-router.sh +938 -15
- package/templates/.claude/ukit/index/route-task.mjs +744 -6
- package/templates/.claude/ukit/runtime/reinject-context.mjs +136 -8
- package/templates/.codex/README.md +8 -1
- package/templates/.codex/settings.json +53 -0
- package/templates/AGENTS.md +3 -0
- package/templates/CLAUDE.md +5 -1
- package/templates/ukit/README.md +1 -1
- package/templates/ukit/storage/config.json +61 -2
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,32 @@ All notable changes to UKit are documented here.
|
|
|
4
4
|
|
|
5
5
|
## Unreleased
|
|
6
6
|
|
|
7
|
+
### Changed
|
|
8
|
+
|
|
9
|
+
- Prepared the next local patch bump to `1.4.3`.
|
|
10
|
+
- Tightened execute-first orchestration guidance so one clear safe path runs directly, while real user-choice or risk-confirmation moments still ask.
|
|
11
|
+
- Added compact route-audit coverage and repeated write-lane rescue bias to reduce stop-and-explain loops.
|
|
12
|
+
|
|
13
|
+
## 1.4.2 - 2026-05-10
|
|
14
|
+
|
|
15
|
+
### Added
|
|
16
|
+
|
|
17
|
+
- Added a quality-first internal orchestration ladder with seven execution layers: `tiny-fix`, `local-fix`, `local-build`, `find-cause`, `shared-edit`, `map-impact`, and `review-release`.
|
|
18
|
+
- Added structured route continuity state so installed helpers and hooks can carry `completionState`, `continuationState`, and stuck-lane rescue signals across turns instead of forgetting unfinished execution debt.
|
|
19
|
+
- Added orchestration/runtime config defaults and Codex adapter metadata for the internal advisor/orchestrator contract while keeping the teammate workflow centered on `ukit install`.
|
|
20
|
+
|
|
21
|
+
### Fixed
|
|
22
|
+
|
|
23
|
+
- Kept context routing and context-mode hints internal so UKit no longer surfaces `pull-indexed-context`, `resolve-context`, or `mode=LITE/FULL` in the main route prose for ordinary work.
|
|
24
|
+
- Preserved the structured route state (`nextActionType`, `helperHint`, `contextMode`) for internal orchestration, while removing the user/model-facing leakage that was nudging sessions into micro-step stop-and-wait behavior.
|
|
25
|
+
- Hardened implementation routing and installed agent guidance so explicit implement/apply/fix requests keep moving through bounded read → edit → verify flow instead of stopping after read-only inspection.
|
|
26
|
+
- Escalated repeated unfinished returns with `repeatCount`, `stuckRisk`, and `rescueMode` so UKit can rescue a stuck lane instead of quietly looping the same partial milestone.
|
|
27
|
+
- Fixed the installed `route-task` continuation handoff so previous route summaries are carried through correctly during rescue escalation.
|
|
28
|
+
|
|
29
|
+
### Tests
|
|
30
|
+
|
|
31
|
+
- Added/updated route, hook, reinject, install-pipeline, and package-artifact coverage for internal helper hiding, continuation rescue escalation, and the expanded orchestration contract.
|
|
32
|
+
|
|
7
33
|
## 1.4.1 - 2026-05-09
|
|
8
34
|
|
|
9
35
|
- Completed cleanup and 1.4.1 template alignment.
|
package/package.json
CHANGED
|
@@ -49,7 +49,7 @@ export function buildDefaultRuntimeConfig(overrides = {}) {
|
|
|
49
49
|
const safeOverrides = isPlainObject(overrides) ? overrides : {};
|
|
50
50
|
|
|
51
51
|
return mergeObjects({
|
|
52
|
-
version: '1.4.
|
|
52
|
+
version: '1.4.3',
|
|
53
53
|
agent: 'claude-code',
|
|
54
54
|
autonomy: {
|
|
55
55
|
level: 'balanced',
|
|
@@ -112,6 +112,59 @@ export function buildDefaultRuntimeConfig(overrides = {}) {
|
|
|
112
112
|
advisorEnabled: true,
|
|
113
113
|
maxAdvisorCalls: 3,
|
|
114
114
|
},
|
|
115
|
+
orchestration: {
|
|
116
|
+
enabled: true,
|
|
117
|
+
orchestratorModel: 'claude-sonnet-4-6',
|
|
118
|
+
advisorEnabled: true,
|
|
119
|
+
contracts: {
|
|
120
|
+
'tiny-fix': {
|
|
121
|
+
maxReadPasses: 0,
|
|
122
|
+
maxContextPulls: 0,
|
|
123
|
+
verificationPolicy: 'minimal-or-targeted',
|
|
124
|
+
completionRule: 'never-claim-done-without-write',
|
|
125
|
+
delegationPolicy: 'disallow',
|
|
126
|
+
},
|
|
127
|
+
'local-fix': {
|
|
128
|
+
maxReadPasses: 1,
|
|
129
|
+
maxContextPulls: 1,
|
|
130
|
+
verificationPolicy: 'targeted-if-covered',
|
|
131
|
+
completionRule: 'require-write',
|
|
132
|
+
delegationPolicy: 'disallow',
|
|
133
|
+
},
|
|
134
|
+
'local-build': {
|
|
135
|
+
maxReadPasses: 2,
|
|
136
|
+
maxContextPulls: 1,
|
|
137
|
+
verificationPolicy: 'targeted-if-covered',
|
|
138
|
+
completionRule: 'require-write',
|
|
139
|
+
delegationPolicy: 'disallow-by-default',
|
|
140
|
+
},
|
|
141
|
+
'find-cause': {
|
|
142
|
+
maxReadPassesBeforeReassess: 3,
|
|
143
|
+
verificationPolicy: 'root-cause-then-targeted',
|
|
144
|
+
completionRule: 'never-claim-fixed-without-write-and-verification',
|
|
145
|
+
delegationPolicy: 'allow-specialized-debug-lane',
|
|
146
|
+
},
|
|
147
|
+
'shared-edit': {
|
|
148
|
+
maxReadPasses: 2,
|
|
149
|
+
maxContextPulls: 2,
|
|
150
|
+
verificationPolicy: 'targeted-then-widen-on-risk',
|
|
151
|
+
completionRule: 'require-write-and-verification',
|
|
152
|
+
delegationPolicy: 'allow-qualified-sidecar',
|
|
153
|
+
},
|
|
154
|
+
'map-impact': {
|
|
155
|
+
maxReadPasses: 3,
|
|
156
|
+
maxContextPulls: 3,
|
|
157
|
+
verificationPolicy: 'impact-first-then-targeted-then-widen-on-risk',
|
|
158
|
+
completionRule: 'require-impact-evidence-before-edit-claim',
|
|
159
|
+
delegationPolicy: 'allow-impact-sidecar',
|
|
160
|
+
},
|
|
161
|
+
'review-release': {
|
|
162
|
+
verificationPolicy: 'evidence-first',
|
|
163
|
+
completionRule: 'report-findings-not-implementation',
|
|
164
|
+
delegationPolicy: 'allow-review-sidecar',
|
|
165
|
+
},
|
|
166
|
+
},
|
|
167
|
+
},
|
|
115
168
|
memory: {
|
|
116
169
|
enabled: true,
|
|
117
170
|
autoCapture: true,
|
|
@@ -278,6 +331,17 @@ export function validateRuntimeConfig(config) {
|
|
|
278
331
|
pushPositiveNumberError(errors, config.router.maxAdvisorCalls, 'router.maxAdvisorCalls');
|
|
279
332
|
}
|
|
280
333
|
|
|
334
|
+
if (!isPlainObject(config.orchestration)) {
|
|
335
|
+
errors.push('orchestration must be an object.');
|
|
336
|
+
} else {
|
|
337
|
+
pushBooleanError(errors, config.orchestration.enabled, 'orchestration.enabled');
|
|
338
|
+
pushNonEmptyStringError(errors, config.orchestration.orchestratorModel, 'orchestration.orchestratorModel');
|
|
339
|
+
pushBooleanError(errors, config.orchestration.advisorEnabled, 'orchestration.advisorEnabled');
|
|
340
|
+
if (!isPlainObject(config.orchestration.contracts)) {
|
|
341
|
+
errors.push('orchestration.contracts must be an object.');
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
|
|
281
345
|
if (!isPlainObject(config.memory)) {
|
|
282
346
|
errors.push('memory must be an object.');
|
|
283
347
|
} else {
|