@ngockhoale/ukit 3.3.2 → 3.4.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.
- package/CHANGELOG.md +44 -0
- package/manifests/engineConformance.yaml +17 -1
- package/manifests/hostCapabilities.yaml +68 -1
- package/manifests/platform.full.yaml +138 -0
- package/manifests/platform.user.yaml +255 -3
- package/package.json +1 -1
- package/scripts/bench/subagent-orchestrator-corpus.mjs +275 -0
- package/scripts/bench/subagent-orchestrator-eval.mjs +565 -0
- package/scripts/probe/codex-capability-probe.mjs +169 -0
- package/src/cli/commands/doctor.js +168 -0
- package/src/cli/commands/indexTools.js +7 -0
- package/src/cli/commands/metrics.js +66 -2
- package/src/cli/commands/playbook.js +4 -4
- package/src/cli/commands/vm.js +49 -8
- package/src/core/agentRuntime/adapters.js +328 -27
- package/src/core/agentRuntime/artifacts.js +89 -0
- package/src/core/agentRuntime/context.js +345 -1
- package/src/core/agentRuntime/contract.js +296 -0
- package/src/core/agentRuntime/eventStore.js +176 -0
- package/src/core/agentRuntime/shadowRun.js +481 -5
- package/src/core/agentRuntime/telemetry.js +121 -0
- package/src/core/observability/emit/lifecycle.js +68 -1
- package/src/core/observability/emit/sessionBoot.js +393 -0
- package/src/core/observability/privacy/allowlist.js +10 -1
- package/src/core/observability/schema/registry.js +10 -0
- package/src/core/runtimeConfig.js +133 -0
- package/src/core/userPlaybooks.js +18 -3
- package/src/decision/registry.js +19 -0
- package/src/diagnostics/feedbackEvents.js +7 -4
- package/src/diagnostics/routeOutcomes.js +51 -6
- package/src/diagnostics/skillAccuracy.js +43 -3
- package/src/index/crossCheckMatrix.js +412 -0
- package/src/index/fixLoopEscalation.js +453 -0
- package/src/index/playbookRegistry.js +691 -0
- package/src/index/reviewPolicy.js +368 -0
- package/src/index/routeResolver.js +915 -0
- package/src/index/sessionHistoryExtractor.js +359 -0
- package/src/index/taskRouting.js +764 -581
- package/src/index/tierSelection.js +308 -0
- package/src/index/verificationMap.js +404 -0
- package/template_project/.claude/hooks/observability-emit.mjs +14 -0
- package/template_project/.claude/hooks/record-execution.mjs +19 -1
- package/template_project/.claude/hooks/skill-router.sh +691 -25
- package/template_project/.claude/hooks/verification-guard.sh +230 -1
- package/template_project/.claude/settings.json +2 -2
- package/template_project/.claude/ukit/index/cross-check-matrix.mjs +415 -0
- package/template_project/.claude/ukit/index/fix-loop-escalation.mjs +456 -0
- package/template_project/.claude/ukit/index/playbook-registry.mjs +690 -0
- package/template_project/.claude/ukit/index/review-panel-aggregate.mjs +20 -2
- package/template_project/.claude/ukit/index/review-policy.mjs +376 -0
- package/template_project/.claude/ukit/index/route-resolver.mjs +1059 -0
- package/template_project/.claude/ukit/index/route-task.mjs +1253 -846
- package/template_project/.claude/ukit/index/session-history-extractor.mjs +362 -0
- package/template_project/.claude/ukit/index/tier-selection.mjs +309 -0
- package/template_project/.claude/ukit/index/verification-map.mjs +403 -0
- package/template_project/.claude/ukit/index/worktree-sweep.mjs +195 -0
- package/template_project/.claude/ukit/runtime/execution-ledger.mjs +789 -11
- package/template_project/.claude/ukit/runtime/observability-emit.mjs +1102 -0
- package/template_project/.claude/ukit/runtime/reinject-context.mjs +9 -1
- package/template_project/.claude/ukit/runtime/resumable-run.mjs +149 -5
- package/template_project/.claude/ukit/runtime/stop-coordinator.mjs +323 -6
- package/template_project/.codex/README.md +8 -0
- package/template_project/.omp/hooks/pre/ukit-bridge.js +8 -1
- package/template_project/ukit/README.md +1 -1
- package/template_project/ukit/storage/config.json +20 -0
- package/template_user/playbooks/architecture-decision.md +28 -0
- package/template_user/playbooks/autonomous-run.md +43 -0
- package/template_user/playbooks/autopilot-full.md +59 -0
- package/template_user/playbooks/autopilot-stack.md +54 -0
- package/template_user/playbooks/babysit.md +39 -0
- package/template_user/playbooks/bug-fix.md +3 -1
- package/template_user/playbooks/{issue-implementation.md → feature-implementation.md} +4 -2
- package/template_user/playbooks/hillclimb.md +44 -0
- package/template_user/playbooks/investigation.md +21 -0
- package/template_user/playbooks/migration.md +21 -0
- package/template_user/playbooks/open-pr.md +48 -0
- package/template_user/playbooks/orchestrate.md +45 -0
- package/template_user/playbooks/performance.md +33 -0
- package/template_user/playbooks/prototype.md +28 -0
- package/template_user/playbooks/refactor.md +19 -0
- package/template_user/playbooks/release.md +28 -0
- package/template_user/playbooks/runtime-forensics.md +23 -0
- package/template_user/playbooks/session-pickup.md +31 -0
- package/template_user/playbooks/shipping.md +53 -0
- package/template_user/playbooks/skill-evaluation.md +48 -0
- package/template_user/playbooks/small-feature.md +20 -0
- package/template_user/playbooks/verification-map.json +153 -0
- package/template_user/playbooks/verification.md +22 -0
- package/template_user/playbooks/worktree-cleanup.md +37 -0
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,48 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to UKit are documented here.
|
|
4
4
|
|
|
5
|
+
## 3.4.0 - 2026-09-28
|
|
6
|
+
|
|
7
|
+
**Playbook system + subagent orchestrator.** Handoff cycles C84–C89 shipped the
|
|
8
|
+
full playbook backlog and the queued orchestrator blueprint:
|
|
9
|
+
|
|
10
|
+
- **24 playbooks shipped to `template_user/playbooks/`** — bug-fix, investigation,
|
|
11
|
+
small-feature, feature-implementation (renamed from issue-implementation),
|
|
12
|
+
refactor, performance, runtime-forensics, session-pickup, verification,
|
|
13
|
+
skill-evaluation, autonomous-run, architecture-decision, migration, release,
|
|
14
|
+
prototype + sub-playbooks (hillclimb, babysit, shipping, orchestrate,
|
|
15
|
+
autopilot-full, autopilot-stack, worktree-cleanup, open-pr) mapped onto
|
|
16
|
+
existing work-groups via `SUB_PLAYBOOK_WORKGROUP`. `ukit playbook show|list`
|
|
17
|
+
and `ukit playbook doctor` report all of them; manifest seeds keep installs
|
|
18
|
+
current.
|
|
19
|
+
- **Routing + measurement**: shared `routeResolver`/`playbookRegistry` twins
|
|
20
|
+
(byte-parity enforced), session-history extractor, verification-map table +
|
|
21
|
+
consumers, review-policy decision plane, cross-check depth, fix-loop
|
|
22
|
+
escalation (`debugLoopThreshold`), measured-reliability tier selection,
|
|
23
|
+
advisory-turn stop escape (waiting/no-change turns never mint write debt).
|
|
24
|
+
- **`ukit vm run`**: evidence-gated live lane for the Agent VM — real
|
|
25
|
+
VmEngine+supervisor execution gated behind `decisionRuntime.vm` stages
|
|
26
|
+
(off→shadow refuse; canary/default required), `lane:'live'` evidence records.
|
|
27
|
+
- **Subagent orchestrator (SO-001..007)**: frozen baseline corpus, `subagent.usage`
|
|
28
|
+
provenance telemetry (off-default, typed resource provenance, never invented
|
|
29
|
+
usage), TaskContract/ResultEnvelope validators + bounded artifact refs with
|
|
30
|
+
claim-level resolution, `probeSubagentCapabilities` host matrix (enforced /
|
|
31
|
+
advisory / unsupported), typed delegation advice in shadow, context manifest
|
|
32
|
+
builders (isolated/curated, `fork_unavailable` honest label), golden eval +
|
|
33
|
+
rollout verdict harness (INCOMPARABLE when evidence < 9-run floor).
|
|
34
|
+
- **Release-cluster contract (RCC-01)**: `docs/pstack/c82/RELEASE_CLUSTER_CONTRACT.md`
|
|
35
|
+
— `gh`/git-over-Bash fallbacks for every release step + the land-authorization
|
|
36
|
+
boundary (irreversible writes always ask; Codex gate is advisory).
|
|
37
|
+
- **`worktree-sweep.mjs`**: safety-gated stale-worktree reclamation
|
|
38
|
+
(enumerate → classify → no-uncommitted/no-active-run gates → remove safe only).
|
|
39
|
+
|
|
40
|
+
Note: `npm pack` budgets raised once for the wave (packed 3.03MB, unpacked
|
|
41
|
+
9.88MB — attributed in `tests/integration/packageArtifact.test.js`).
|
|
42
|
+
|
|
43
|
+
## 3.3.3 - 2026-09-27
|
|
44
|
+
|
|
45
|
+
Republish of 3.3.2 — npm staged-version E409 limbo (same content, version bump only).
|
|
46
|
+
|
|
5
47
|
## 3.3.2 - 2026-09-27
|
|
6
48
|
|
|
7
49
|
**Agent VM driver + self-improve code lane.** CLI (list/show/status/shadow-run/evidence), driver producing promotion evidence into , self-improve step (one shadow run per reference plan per pass), and step (AUTO-<id>.md handoff task files mined from recurring failure patterns — whitelist fix classes, denylist protected lanes, ≤3/pass, never commits code). See docs/plans/AGENT_VM_DRIVER_PLAN.md + SELF_IMPROVE_CODE_LANE.md.
|
|
@@ -13,6 +55,8 @@ All notable changes to UKit are documented here.
|
|
|
13
55
|
|
|
14
56
|
- **Self-improve `vmShadow` step (agent-VM driver D-04).** After diagnostics, each rate-limited `runSelfImprove` pass now runs one shadow-run per `planLibrary` reference plan via `agentRuntime/shadowRun.js` when `decisionRuntime.vm.stage` is `'shadow'` or higher — the first live-path caller that accumulates evidence for `PROMOTION_CRITERIA`. `off` → step `skipped` (`stage_off`), zero writes under `.ukit/storage/agent-runtime/`; driver missing, refusing, or throwing → step status `error`, the pass never throws and later steps still run.
|
|
15
57
|
|
|
58
|
+
- **`ukit vm run` — evidence-gated live lane (BL-031).** `src/cli/commands/vm.js` gains `run <planId>`: a real `VmEngine`+`createSupervisor` path (`runLivePlan` in `src/core/agentRuntime/shadowRun.js`) that launches RUN-node specs declaring the supervisor contract (`spec.command`/`spec.argv` — descriptive `spec.cmd` prose is never shelled out, it fails typed), relays supervised terminal outcomes into the engine, and appends one `lane:'live'` evidence record. Stage gate: `off` → `stage_off` refuse (zero writes); `shadow` → `live_stage_required` refuse — execution requires `canary`/`default`. BL-031 promotion bar is recorded verbatim (`REPLAY_PROMOTION_BAR`: promote only if the VM catches ≥1 defect the doc pipeline missed OR cuts cycle time ≥25% at equal verdicts); `buildReplayComparison`/`recordReplayComparison` write a `replay-comparison` record to the evidence store and `ukit vm evidence` prints its verdict verbatim — `promote()` stays the only stage-advance mechanism.
|
|
59
|
+
|
|
16
60
|
## 3.3.1 - 2026-09-27
|
|
17
61
|
|
|
18
62
|
- **Republish of 3.3.0, content-identical.** npm staged 3.3.0 then returned E409 "previously staged version" on retry — same staged-limbo pattern as 3.0.11→3.0.12. Version bump only; parity verified below.
|
|
@@ -9,8 +9,24 @@
|
|
|
9
9
|
# Consistency enforced by: tests/consistency/engineConformance.test.js
|
|
10
10
|
version: 1
|
|
11
11
|
routeParity:
|
|
12
|
-
mechanism: shared-
|
|
12
|
+
mechanism: shared-resolver # one route-task.mjs/resolver serves all engines
|
|
13
13
|
evidence: tests/consistency/engineConformance.test.js
|
|
14
|
+
# TASK-006 (BL-008): invocation is per-host — the file being shared never
|
|
15
|
+
# meant Codex auto-routes. Only hook hosts invoke it automatically; Codex's
|
|
16
|
+
# route is instruction-mediated (advisory), so no 'shared-mirror' auto-route
|
|
17
|
+
# claim survives here.
|
|
18
|
+
invocation:
|
|
19
|
+
claude-code: { mode: hook, note: 'hooks invoke route-task.mjs automatically on the routed events' }
|
|
20
|
+
codex: { mode: instruction, note: 'no hook surface; .codex/README.md instructs running route-task.mjs manually via the .codex/ukit symlink — advisory path' }
|
|
21
|
+
omp: { mode: hook, note: 'omp pre-hook bridge drives the same routing path' }
|
|
22
|
+
# TASK-006 (BL-008): the Codex advisory-fallback contract. On Codex every
|
|
23
|
+
# playbook-covered ask resolves to a measured live path or this advisory
|
|
24
|
+
# fallback — UKit never claims enforcement it lacks.
|
|
25
|
+
codexAdvisoryContract:
|
|
26
|
+
playbookFile: 'a routed playbookId resolves to the playbook file ~/.ukit/playbooks/<id>.md'
|
|
27
|
+
outcomeEnforcement: 'outcome records carry enforcement: advisory (emitted by TASK-005 emitters)'
|
|
28
|
+
ceiling: 'SHADOW/advisory — Codex caps at advisory; never a live-enforcement claim'
|
|
29
|
+
prohibition: 'no CX cell or surface may claim PROVEN LIVE'
|
|
14
30
|
classes:
|
|
15
31
|
host-enforced:
|
|
16
32
|
description: hook can hard-block (PreToolUse deny, Stop gate, hook deadlines)
|
|
@@ -19,7 +19,7 @@ hosts:
|
|
|
19
19
|
context-files: { state: tested, evidence: tests/integration/installPipeline.test.js }
|
|
20
20
|
codex:
|
|
21
21
|
skills: { state: observed, note: '.codex/skills mirror ships via install; no dedicated codex-skill test' }
|
|
22
|
-
subagents: { state:
|
|
22
|
+
subagents: { state: observed, note: 'c84 probe: .codex/agents symlink ships and resolves to the 6 .claude/agents defs; host consumption unverifiable — no codex CLI on host (docs/pstack/c84/codex-capability-probe.md)' }
|
|
23
23
|
hooks: { state: unknown }
|
|
24
24
|
session-start-injection: { state: unknown }
|
|
25
25
|
stop-gate: { state: unknown }
|
|
@@ -37,3 +37,70 @@ hosts:
|
|
|
37
37
|
owner-file-injection: { state: unknown }
|
|
38
38
|
settings-env: { state: observed, note: 'template_project/.omp/config.yml modelRoles reviewed by ompAgentParity' }
|
|
39
39
|
context-files: { state: observed, note: 'omp consumes AGENTS.md/CLAUDE.md context layer; no dedicated test' }
|
|
40
|
+
|
|
41
|
+
# TASK-006 (BL-008): advisory-fallback contract for hosts without a hook
|
|
42
|
+
# surface. Task routing reaches Codex only instruction-mediately — the
|
|
43
|
+
# `.codex/ukit` symlink ships the shared route-task.mjs, but nothing invokes
|
|
44
|
+
# it automatically, so no codex capability cell may rise above what
|
|
45
|
+
# docs/pstack/c84/codex-capability-probe.md measured.
|
|
46
|
+
advisoryContract:
|
|
47
|
+
ceiling: 'SHADOW/advisory — codex cells stay ≤ observed unless a probe on a host with the codex CLI promotes them; never a live-enforcement claim'
|
|
48
|
+
outcomeEnforcement: 'codex-engine outcome records carry enforcement: advisory (emitted by TASK-005 emitters)'
|
|
49
|
+
note: 'codex hook/stop/session-start cells stay unknown; instruction-mediated routing via route-task.mjs is the only path and every outcome record on it carries enforcement: advisory — see manifests/engineConformance.yaml codexAdvisoryContract'
|
|
50
|
+
|
|
51
|
+
# TASK-C89-004 (SPEC §8 FR-06, §12): subagent-orchestration truth table —
|
|
52
|
+
# what each lane can actually do for a delegated child before lazy
|
|
53
|
+
# disclosure/tool scoping/fork is promised. Same manifest, second family;
|
|
54
|
+
# statuses are the probe vocabulary of probeSubagentCapabilities in
|
|
55
|
+
# src/core/agentRuntime/adapters.js:
|
|
56
|
+
# supported — UKit owns the mechanism or cited live evidence proves it
|
|
57
|
+
# advisory — a surface exists but UKit cannot bound host consumption
|
|
58
|
+
# unsupported — the capability does not exist on this lane (no host API)
|
|
59
|
+
# unverified — reachable in principle, unproven here (fixture-only or no
|
|
60
|
+
# declared live evidence); the only promotable class
|
|
61
|
+
# 'supported' cells require evidenceRef; all others require a note.
|
|
62
|
+
# The manifest records accumulated evidence; a bare runtime probe emits the
|
|
63
|
+
# same cells at default ('unverified' until live evidence is declared).
|
|
64
|
+
subagentOrchestration:
|
|
65
|
+
probe: 'src/core/agentRuntime/adapters.js probeSubagentCapabilities'
|
|
66
|
+
lanes:
|
|
67
|
+
claude-code:
|
|
68
|
+
spawn: { status: unverified, note: 'owned runner spawns via createSupervisor primitives on every lane; live host E2E not declared in-repo — never promoted from primitive presence' }
|
|
69
|
+
toolFiltering: { status: advisory, note: 'agent frontmatter tool lists are host-interpreted hints; UKit cannot bound the child tool surface' }
|
|
70
|
+
skillCatalog: { status: advisory, note: 'skill surface is host-scoped; per-child catalog subsetting is not a host API' }
|
|
71
|
+
agentCatalog: { status: advisory, note: 'host picks a named subagent from the shipped catalog; catalog contents are not subsettable' }
|
|
72
|
+
writeScope: { status: advisory, note: 'artifactDir bounds runner-owned artifact writes; arbitrary child fs writes are not scoped by UKit' }
|
|
73
|
+
modelBind: { status: advisory, note: 'agent frontmatter/modelRoles nominate a model; per-spawn binding is host-discretionary' }
|
|
74
|
+
fork: { status: unsupported, note: 'no host state-inheritance API; SPEC §12 fork_unavailable stands' }
|
|
75
|
+
usageCache: { status: advisory, note: 'subagent.usage provenance is observation-only; host provider usage/cache is not readable by UKit' }
|
|
76
|
+
completionSignal: { status: supported, evidenceRef: tests/core/agentRuntime/hostAdapters.test.js }
|
|
77
|
+
codex:
|
|
78
|
+
spawn: { status: unverified, note: 'same owned-runner primitives; live host E2E not declared in-repo' }
|
|
79
|
+
toolFiltering: { status: unsupported, note: 'no host tool-filtering API; deny rules are advisory text only (engineConformance codex host-enforced: degraded)' }
|
|
80
|
+
skillCatalog: { status: advisory, note: '.codex/skills mirror ships via install; host consumption unverifiable without codex CLI (docs/pstack/c84/codex-capability-probe.md)' }
|
|
81
|
+
agentCatalog: { status: advisory, note: '.codex/agents symlink resolves to the 6 .claude/agents defs; host consumption INCONCLUSIVE per C84 probe' }
|
|
82
|
+
writeScope: { status: unsupported, note: 'no host write-scope API exposed to UKit' }
|
|
83
|
+
modelBind: { status: unsupported, note: 'no host model-binding API exposed to UKit' }
|
|
84
|
+
fork: { status: unsupported, note: 'no host state-inheritance API; SPEC §12 fork_unavailable stands' }
|
|
85
|
+
usageCache: { status: unsupported, note: 'no provider usage/cache surface readable by UKit' }
|
|
86
|
+
completionSignal: { status: supported, evidenceRef: tests/core/agentRuntime/hostAdapters.test.js }
|
|
87
|
+
omp:
|
|
88
|
+
spawn: { status: unverified, note: 'same owned-runner primitives; live host E2E not declared in-repo' }
|
|
89
|
+
toolFiltering: { status: advisory, note: 'omp agent frontmatter is host-interpreted; UKit cannot bound the child tool surface' }
|
|
90
|
+
skillCatalog: { status: advisory, note: 'omp reads .claude/skills via the claude discovery provider; per-child subsetting is not a host API' }
|
|
91
|
+
agentCatalog: { status: advisory, note: 'omp subagent dispatch uses the shipped agent defs; catalog contents are not subsettable' }
|
|
92
|
+
writeScope: { status: advisory, note: 'artifactDir bounds runner-owned artifact writes; arbitrary child fs writes are not scoped by UKit' }
|
|
93
|
+
modelBind: { status: advisory, note: '.omp/config.yml modelRoles nominate tiers; per-spawn binding is host-discretionary' }
|
|
94
|
+
fork: { status: unsupported, note: 'no host state-inheritance API; SPEC §12 fork_unavailable stands' }
|
|
95
|
+
usageCache: { status: advisory, note: 'subagent.usage provenance is observation-only; host provider usage/cache is not readable by UKit' }
|
|
96
|
+
completionSignal: { status: supported, evidenceRef: tests/core/agentRuntime/hostAdapters.test.js }
|
|
97
|
+
owned-vm:
|
|
98
|
+
spawn: { status: supported, evidenceRef: tests/core/agentRuntime/shadowRun.test.js, note: 'runLivePlan launches spec.command RUN nodes through the real supervisor; lane gated at decisionRuntime.vm canary/default (src/cli/commands/vm.js)' }
|
|
99
|
+
toolFiltering: { status: unsupported, note: 'owned child is a bare subprocess — no tool schema to filter' }
|
|
100
|
+
skillCatalog: { status: unsupported, note: 'bare subprocess has no skill catalog to subset' }
|
|
101
|
+
agentCatalog: { status: unsupported, note: 'bare subprocess has no agent catalog to subset' }
|
|
102
|
+
writeScope: { status: advisory, note: 'artifactDir bounds runner-owned artifact writes; subprocess fs writes are not sandboxed' }
|
|
103
|
+
modelBind: { status: unsupported, note: 'subprocess child has no model surface to bind' }
|
|
104
|
+
fork: { status: unsupported, note: 'no state-inheritance surface; supervisor starts a fresh process, never a parent-context fork' }
|
|
105
|
+
usageCache: { status: unsupported, note: 'no provider usage/cache surface for a subprocess child' }
|
|
106
|
+
completionSignal: { status: supported, evidenceRef: tests/core/agentRuntime/shadowRun.test.js }
|
|
@@ -1381,6 +1381,22 @@ items:
|
|
|
1381
1381
|
packs:
|
|
1382
1382
|
- core
|
|
1383
1383
|
|
|
1384
|
+
# TASK-003 (FR-003): in-proc SessionStart/session_start chain step that
|
|
1385
|
+
# writes the session's execution.started record. The module itself is a
|
|
1386
|
+
# one-line delegate — the emit implementation ships inside
|
|
1387
|
+
# ukit-runtime-scripts (.claude/ukit/runtime/observability-emit.mjs).
|
|
1388
|
+
- id: hook-observability-emit-module
|
|
1389
|
+
type: hook
|
|
1390
|
+
sourceTemplate: .claude/hooks/observability-emit.mjs
|
|
1391
|
+
targetPath: .claude/hooks/observability-emit.mjs
|
|
1392
|
+
requires:
|
|
1393
|
+
- ukit-runtime-scripts
|
|
1394
|
+
mergeStrategy: overwrite_with_backup
|
|
1395
|
+
variables: []
|
|
1396
|
+
enabledByDefault: true
|
|
1397
|
+
packs:
|
|
1398
|
+
- core
|
|
1399
|
+
|
|
1384
1400
|
- id: hook-handoff-model-guard
|
|
1385
1401
|
type: hook
|
|
1386
1402
|
sourceTemplate: .claude/hooks/handoff-model-guard.sh
|
|
@@ -1399,6 +1415,8 @@ items:
|
|
|
1399
1415
|
requires:
|
|
1400
1416
|
- ukit-index-route-catalog-script
|
|
1401
1417
|
- ukit-runtime-scripts
|
|
1418
|
+
- ukit-index-route-resolver-script
|
|
1419
|
+
- ukit-index-tier-selection-script
|
|
1402
1420
|
mergeStrategy: overwrite_with_backup
|
|
1403
1421
|
variables: []
|
|
1404
1422
|
enabledByDefault: true
|
|
@@ -1597,6 +1615,18 @@ items:
|
|
|
1597
1615
|
packs:
|
|
1598
1616
|
- core
|
|
1599
1617
|
|
|
1618
|
+
- id: ukit-index-worktree-sweep-script
|
|
1619
|
+
type: config
|
|
1620
|
+
sourceTemplate: .claude/ukit/index/worktree-sweep.mjs
|
|
1621
|
+
targetPath: .claude/ukit/index/worktree-sweep.mjs
|
|
1622
|
+
requires:
|
|
1623
|
+
- ukit-runtime-scripts
|
|
1624
|
+
mergeStrategy: overwrite_with_backup
|
|
1625
|
+
variables: []
|
|
1626
|
+
enabledByDefault: true
|
|
1627
|
+
packs:
|
|
1628
|
+
- core
|
|
1629
|
+
|
|
1600
1630
|
- id: ukit-index-stale-spec-check-script
|
|
1601
1631
|
type: config
|
|
1602
1632
|
sourceTemplate: .claude/ukit/index/stale-spec-check.mjs
|
|
@@ -1728,6 +1758,109 @@ items:
|
|
|
1728
1758
|
packs:
|
|
1729
1759
|
- core
|
|
1730
1760
|
|
|
1761
|
+
- id: ukit-index-route-resolver-script
|
|
1762
|
+
type: config
|
|
1763
|
+
sourceTemplate: .claude/ukit/index/route-resolver.mjs
|
|
1764
|
+
targetPath: .claude/ukit/index/route-resolver.mjs
|
|
1765
|
+
requires:
|
|
1766
|
+
- ukit-index-core-lib
|
|
1767
|
+
- ukit-index-cache-utils-script
|
|
1768
|
+
- ukit-index-route-catalog-script
|
|
1769
|
+
- ukit-index-unic-gateway-script
|
|
1770
|
+
- ukit-index-unic-decision-script
|
|
1771
|
+
- ukit-index-session-history-extractor-script
|
|
1772
|
+
- ukit-index-extract-image-script
|
|
1773
|
+
mergeStrategy: overwrite_with_backup
|
|
1774
|
+
variables: []
|
|
1775
|
+
enabledByDefault: true
|
|
1776
|
+
packs:
|
|
1777
|
+
- core
|
|
1778
|
+
|
|
1779
|
+
- id: ukit-index-tier-selection-script
|
|
1780
|
+
type: config
|
|
1781
|
+
sourceTemplate: .claude/ukit/index/tier-selection.mjs
|
|
1782
|
+
targetPath: .claude/ukit/index/tier-selection.mjs
|
|
1783
|
+
mergeStrategy: overwrite_with_backup
|
|
1784
|
+
variables: []
|
|
1785
|
+
enabledByDefault: true
|
|
1786
|
+
packs:
|
|
1787
|
+
- core
|
|
1788
|
+
|
|
1789
|
+
- id: ukit-index-session-history-extractor-script
|
|
1790
|
+
type: config
|
|
1791
|
+
sourceTemplate: .claude/ukit/index/session-history-extractor.mjs
|
|
1792
|
+
targetPath: .claude/ukit/index/session-history-extractor.mjs
|
|
1793
|
+
mergeStrategy: overwrite_with_backup
|
|
1794
|
+
variables: []
|
|
1795
|
+
enabledByDefault: true
|
|
1796
|
+
packs:
|
|
1797
|
+
- core
|
|
1798
|
+
|
|
1799
|
+
- id: ukit-index-playbook-registry-script
|
|
1800
|
+
type: config
|
|
1801
|
+
sourceTemplate: .claude/ukit/index/playbook-registry.mjs
|
|
1802
|
+
targetPath: .claude/ukit/index/playbook-registry.mjs
|
|
1803
|
+
requires:
|
|
1804
|
+
- ukit-index-route-resolver-script
|
|
1805
|
+
mergeStrategy: overwrite_with_backup
|
|
1806
|
+
variables: []
|
|
1807
|
+
enabledByDefault: true
|
|
1808
|
+
packs:
|
|
1809
|
+
- core
|
|
1810
|
+
|
|
1811
|
+
- id: ukit-index-verification-map-script
|
|
1812
|
+
type: config
|
|
1813
|
+
sourceTemplate: .claude/ukit/index/verification-map.mjs
|
|
1814
|
+
targetPath: .claude/ukit/index/verification-map.mjs
|
|
1815
|
+
mergeStrategy: overwrite_with_backup
|
|
1816
|
+
variables: []
|
|
1817
|
+
enabledByDefault: true
|
|
1818
|
+
packs:
|
|
1819
|
+
- core
|
|
1820
|
+
|
|
1821
|
+
# C85 TASK-015 (BL-015): deterministic review decision policy evaluator —
|
|
1822
|
+
# consumed by stop-coordinator.mjs at the pre-Stop gate (advisory verdicts).
|
|
1823
|
+
- id: ukit-index-review-policy-script
|
|
1824
|
+
type: config
|
|
1825
|
+
sourceTemplate: .claude/ukit/index/review-policy.mjs
|
|
1826
|
+
targetPath: .claude/ukit/index/review-policy.mjs
|
|
1827
|
+
requires:
|
|
1828
|
+
- ukit-index-cross-check-matrix-script
|
|
1829
|
+
mergeStrategy: overwrite_with_backup
|
|
1830
|
+
variables: []
|
|
1831
|
+
enabledByDefault: true
|
|
1832
|
+
packs:
|
|
1833
|
+
- core
|
|
1834
|
+
|
|
1835
|
+
# C85 TASK-016 (BL-016): adaptive cross-check depth matrix — resolves
|
|
1836
|
+
# change-risk × implementer-reliability × evidence-quality →
|
|
1837
|
+
# none|runnable|review-round|escalate for the policy's escalationDepth slot.
|
|
1838
|
+
- id: ukit-index-cross-check-matrix-script
|
|
1839
|
+
type: config
|
|
1840
|
+
sourceTemplate: .claude/ukit/index/cross-check-matrix.mjs
|
|
1841
|
+
targetPath: .claude/ukit/index/cross-check-matrix.mjs
|
|
1842
|
+
mergeStrategy: overwrite_with_backup
|
|
1843
|
+
variables: []
|
|
1844
|
+
enabledByDefault: true
|
|
1845
|
+
packs:
|
|
1846
|
+
- core
|
|
1847
|
+
|
|
1848
|
+
# C85 TASK-018 (BL-018): fix-loop escalation to a deeper lane — consumed by
|
|
1849
|
+
# route-task.mjs when the fingerprint-joined fixLoopCount trips
|
|
1850
|
+
# debugLoopThreshold (laneDeepening/verificationDepth hand-off).
|
|
1851
|
+
- id: ukit-index-fix-loop-escalation-script
|
|
1852
|
+
type: config
|
|
1853
|
+
sourceTemplate: .claude/ukit/index/fix-loop-escalation.mjs
|
|
1854
|
+
targetPath: .claude/ukit/index/fix-loop-escalation.mjs
|
|
1855
|
+
requires:
|
|
1856
|
+
- ukit-index-route-resolver-script
|
|
1857
|
+
- ukit-index-cross-check-matrix-script
|
|
1858
|
+
mergeStrategy: overwrite_with_backup
|
|
1859
|
+
variables: []
|
|
1860
|
+
enabledByDefault: true
|
|
1861
|
+
packs:
|
|
1862
|
+
- core
|
|
1863
|
+
|
|
1731
1864
|
- id: ukit-index-unic-gateway-script
|
|
1732
1865
|
type: config
|
|
1733
1866
|
sourceTemplate: .claude/ukit/index/unic-gateway.mjs
|
|
@@ -1795,6 +1928,11 @@ items:
|
|
|
1795
1928
|
- ukit-index-unic-gateway-script
|
|
1796
1929
|
- ukit-index-unic-decision-script
|
|
1797
1930
|
- ukit-index-extract-image-script
|
|
1931
|
+
- ukit-index-route-resolver-script
|
|
1932
|
+
- ukit-index-playbook-registry-script
|
|
1933
|
+
- ukit-index-session-history-extractor-script
|
|
1934
|
+
- ukit-index-fix-loop-escalation-script
|
|
1935
|
+
- ukit-index-tier-selection-script
|
|
1798
1936
|
mergeStrategy: overwrite_with_backup
|
|
1799
1937
|
variables: []
|
|
1800
1938
|
enabledByDefault: true
|
|
@@ -52,10 +52,262 @@ items:
|
|
|
52
52
|
packs:
|
|
53
53
|
- core
|
|
54
54
|
|
|
55
|
-
- id: user-playbook-
|
|
55
|
+
- id: user-playbook-feature-implementation
|
|
56
56
|
type: config
|
|
57
|
-
sourceTemplate: playbooks/
|
|
58
|
-
targetPath: playbooks/
|
|
57
|
+
sourceTemplate: playbooks/feature-implementation.md
|
|
58
|
+
targetPath: playbooks/feature-implementation.md
|
|
59
|
+
requires: []
|
|
60
|
+
mergeStrategy: skip
|
|
61
|
+
variables: []
|
|
62
|
+
enabledByDefault: true
|
|
63
|
+
packs:
|
|
64
|
+
- core
|
|
65
|
+
|
|
66
|
+
- id: user-playbook-investigation
|
|
67
|
+
type: config
|
|
68
|
+
sourceTemplate: playbooks/investigation.md
|
|
69
|
+
targetPath: playbooks/investigation.md
|
|
70
|
+
requires: []
|
|
71
|
+
mergeStrategy: skip
|
|
72
|
+
variables: []
|
|
73
|
+
enabledByDefault: true
|
|
74
|
+
packs:
|
|
75
|
+
- core
|
|
76
|
+
|
|
77
|
+
- id: user-playbook-small-feature
|
|
78
|
+
type: config
|
|
79
|
+
sourceTemplate: playbooks/small-feature.md
|
|
80
|
+
targetPath: playbooks/small-feature.md
|
|
81
|
+
requires: []
|
|
82
|
+
mergeStrategy: skip
|
|
83
|
+
variables: []
|
|
84
|
+
enabledByDefault: true
|
|
85
|
+
packs:
|
|
86
|
+
- core
|
|
87
|
+
|
|
88
|
+
# C85 TASK-014 (BL-014): the verification-map table ships beside the
|
|
89
|
+
# playbooks — JSON, not markdown, so hook consumers query it via the
|
|
90
|
+
# verification-map.mjs reader instead of parsing prose.
|
|
91
|
+
- id: user-playbook-verification-map
|
|
92
|
+
type: config
|
|
93
|
+
sourceTemplate: playbooks/verification-map.json
|
|
94
|
+
targetPath: playbooks/verification-map.json
|
|
95
|
+
requires: []
|
|
96
|
+
mergeStrategy: skip
|
|
97
|
+
variables: []
|
|
98
|
+
enabledByDefault: true
|
|
99
|
+
packs:
|
|
100
|
+
- core
|
|
101
|
+
|
|
102
|
+
# C86 TASK-020/022 (FR-009): wave-1+3 playbook seeds.
|
|
103
|
+
- id: user-playbook-performance
|
|
104
|
+
type: config
|
|
105
|
+
sourceTemplate: playbooks/performance.md
|
|
106
|
+
targetPath: playbooks/performance.md
|
|
107
|
+
requires: []
|
|
108
|
+
mergeStrategy: skip
|
|
109
|
+
variables: []
|
|
110
|
+
enabledByDefault: true
|
|
111
|
+
packs:
|
|
112
|
+
- core
|
|
113
|
+
|
|
114
|
+
- id: user-playbook-refactor
|
|
115
|
+
type: config
|
|
116
|
+
sourceTemplate: playbooks/refactor.md
|
|
117
|
+
targetPath: playbooks/refactor.md
|
|
118
|
+
requires: []
|
|
119
|
+
mergeStrategy: skip
|
|
120
|
+
variables: []
|
|
121
|
+
enabledByDefault: true
|
|
122
|
+
packs:
|
|
123
|
+
- core
|
|
124
|
+
|
|
125
|
+
- id: user-playbook-runtime-forensics
|
|
126
|
+
type: config
|
|
127
|
+
sourceTemplate: playbooks/runtime-forensics.md
|
|
128
|
+
targetPath: playbooks/runtime-forensics.md
|
|
129
|
+
requires: []
|
|
130
|
+
mergeStrategy: skip
|
|
131
|
+
variables: []
|
|
132
|
+
enabledByDefault: true
|
|
133
|
+
packs:
|
|
134
|
+
- core
|
|
135
|
+
|
|
136
|
+
- id: user-playbook-session-pickup
|
|
137
|
+
type: config
|
|
138
|
+
sourceTemplate: playbooks/session-pickup.md
|
|
139
|
+
targetPath: playbooks/session-pickup.md
|
|
140
|
+
requires: []
|
|
141
|
+
mergeStrategy: skip
|
|
142
|
+
variables: []
|
|
143
|
+
enabledByDefault: true
|
|
144
|
+
packs:
|
|
145
|
+
- core
|
|
146
|
+
|
|
147
|
+
- id: user-playbook-verification
|
|
148
|
+
type: config
|
|
149
|
+
sourceTemplate: playbooks/verification.md
|
|
150
|
+
targetPath: playbooks/verification.md
|
|
151
|
+
requires: []
|
|
152
|
+
mergeStrategy: skip
|
|
153
|
+
variables: []
|
|
154
|
+
enabledByDefault: true
|
|
155
|
+
packs:
|
|
156
|
+
- core
|
|
157
|
+
|
|
158
|
+
- id: user-playbook-skill-evaluation
|
|
159
|
+
type: config
|
|
160
|
+
sourceTemplate: playbooks/skill-evaluation.md
|
|
161
|
+
targetPath: playbooks/skill-evaluation.md
|
|
162
|
+
requires: []
|
|
163
|
+
mergeStrategy: skip
|
|
164
|
+
variables: []
|
|
165
|
+
enabledByDefault: true
|
|
166
|
+
packs:
|
|
167
|
+
- core
|
|
168
|
+
|
|
169
|
+
# C87 FR-008: five new playbook seeds (autonomous-run, architecture-decision,
|
|
170
|
+
# migration, release, prototype) — same config/skip/core shape as the
|
|
171
|
+
# wave-1 items above.
|
|
172
|
+
- id: user-playbook-autonomous-run
|
|
173
|
+
type: config
|
|
174
|
+
sourceTemplate: playbooks/autonomous-run.md
|
|
175
|
+
targetPath: playbooks/autonomous-run.md
|
|
176
|
+
requires: []
|
|
177
|
+
mergeStrategy: skip
|
|
178
|
+
variables: []
|
|
179
|
+
enabledByDefault: true
|
|
180
|
+
packs:
|
|
181
|
+
- core
|
|
182
|
+
|
|
183
|
+
- id: user-playbook-architecture-decision
|
|
184
|
+
type: config
|
|
185
|
+
sourceTemplate: playbooks/architecture-decision.md
|
|
186
|
+
targetPath: playbooks/architecture-decision.md
|
|
187
|
+
requires: []
|
|
188
|
+
mergeStrategy: skip
|
|
189
|
+
variables: []
|
|
190
|
+
enabledByDefault: true
|
|
191
|
+
packs:
|
|
192
|
+
- core
|
|
193
|
+
|
|
194
|
+
- id: user-playbook-migration
|
|
195
|
+
type: config
|
|
196
|
+
sourceTemplate: playbooks/migration.md
|
|
197
|
+
targetPath: playbooks/migration.md
|
|
198
|
+
requires: []
|
|
199
|
+
mergeStrategy: skip
|
|
200
|
+
variables: []
|
|
201
|
+
enabledByDefault: true
|
|
202
|
+
packs:
|
|
203
|
+
- core
|
|
204
|
+
|
|
205
|
+
- id: user-playbook-release
|
|
206
|
+
type: config
|
|
207
|
+
sourceTemplate: playbooks/release.md
|
|
208
|
+
targetPath: playbooks/release.md
|
|
209
|
+
requires: []
|
|
210
|
+
mergeStrategy: skip
|
|
211
|
+
variables: []
|
|
212
|
+
enabledByDefault: true
|
|
213
|
+
packs:
|
|
214
|
+
- core
|
|
215
|
+
|
|
216
|
+
- id: user-playbook-prototype
|
|
217
|
+
type: config
|
|
218
|
+
sourceTemplate: playbooks/prototype.md
|
|
219
|
+
targetPath: playbooks/prototype.md
|
|
220
|
+
requires: []
|
|
221
|
+
mergeStrategy: skip
|
|
222
|
+
variables: []
|
|
223
|
+
enabledByDefault: true
|
|
224
|
+
packs:
|
|
225
|
+
- core
|
|
226
|
+
|
|
227
|
+
# C88 FR-010: eight sub-playbook seeds (hillclimb, babysit, shipping,
|
|
228
|
+
# orchestrate, autopilot-full, autopilot-stack, worktree-cleanup, open-pr) —
|
|
229
|
+
# same config/skip/core shape as every user-playbook-* item above.
|
|
230
|
+
- id: user-playbook-hillclimb
|
|
231
|
+
type: config
|
|
232
|
+
sourceTemplate: playbooks/hillclimb.md
|
|
233
|
+
targetPath: playbooks/hillclimb.md
|
|
234
|
+
requires: []
|
|
235
|
+
mergeStrategy: skip
|
|
236
|
+
variables: []
|
|
237
|
+
enabledByDefault: true
|
|
238
|
+
packs:
|
|
239
|
+
- core
|
|
240
|
+
|
|
241
|
+
- id: user-playbook-babysit
|
|
242
|
+
type: config
|
|
243
|
+
sourceTemplate: playbooks/babysit.md
|
|
244
|
+
targetPath: playbooks/babysit.md
|
|
245
|
+
requires: []
|
|
246
|
+
mergeStrategy: skip
|
|
247
|
+
variables: []
|
|
248
|
+
enabledByDefault: true
|
|
249
|
+
packs:
|
|
250
|
+
- core
|
|
251
|
+
|
|
252
|
+
- id: user-playbook-shipping
|
|
253
|
+
type: config
|
|
254
|
+
sourceTemplate: playbooks/shipping.md
|
|
255
|
+
targetPath: playbooks/shipping.md
|
|
256
|
+
requires: []
|
|
257
|
+
mergeStrategy: skip
|
|
258
|
+
variables: []
|
|
259
|
+
enabledByDefault: true
|
|
260
|
+
packs:
|
|
261
|
+
- core
|
|
262
|
+
|
|
263
|
+
- id: user-playbook-orchestrate
|
|
264
|
+
type: config
|
|
265
|
+
sourceTemplate: playbooks/orchestrate.md
|
|
266
|
+
targetPath: playbooks/orchestrate.md
|
|
267
|
+
requires: []
|
|
268
|
+
mergeStrategy: skip
|
|
269
|
+
variables: []
|
|
270
|
+
enabledByDefault: true
|
|
271
|
+
packs:
|
|
272
|
+
- core
|
|
273
|
+
|
|
274
|
+
- id: user-playbook-autopilot-full
|
|
275
|
+
type: config
|
|
276
|
+
sourceTemplate: playbooks/autopilot-full.md
|
|
277
|
+
targetPath: playbooks/autopilot-full.md
|
|
278
|
+
requires: []
|
|
279
|
+
mergeStrategy: skip
|
|
280
|
+
variables: []
|
|
281
|
+
enabledByDefault: true
|
|
282
|
+
packs:
|
|
283
|
+
- core
|
|
284
|
+
|
|
285
|
+
- id: user-playbook-autopilot-stack
|
|
286
|
+
type: config
|
|
287
|
+
sourceTemplate: playbooks/autopilot-stack.md
|
|
288
|
+
targetPath: playbooks/autopilot-stack.md
|
|
289
|
+
requires: []
|
|
290
|
+
mergeStrategy: skip
|
|
291
|
+
variables: []
|
|
292
|
+
enabledByDefault: true
|
|
293
|
+
packs:
|
|
294
|
+
- core
|
|
295
|
+
|
|
296
|
+
- id: user-playbook-worktree-cleanup
|
|
297
|
+
type: config
|
|
298
|
+
sourceTemplate: playbooks/worktree-cleanup.md
|
|
299
|
+
targetPath: playbooks/worktree-cleanup.md
|
|
300
|
+
requires: []
|
|
301
|
+
mergeStrategy: skip
|
|
302
|
+
variables: []
|
|
303
|
+
enabledByDefault: true
|
|
304
|
+
packs:
|
|
305
|
+
- core
|
|
306
|
+
|
|
307
|
+
- id: user-playbook-open-pr
|
|
308
|
+
type: config
|
|
309
|
+
sourceTemplate: playbooks/open-pr.md
|
|
310
|
+
targetPath: playbooks/open-pr.md
|
|
59
311
|
requires: []
|
|
60
312
|
mergeStrategy: skip
|
|
61
313
|
variables: []
|