owlrunkit 0.18.3 → 0.19.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 +80 -0
- package/README.md +223 -52
- package/docs/architecture/OWLCODA_RUNKIT_0184_EXTERNAL_DELIVERY_INTAKE_PRODUCT_DECISION_20260812.md +209 -0
- package/docs/architecture/OWLCODA_RUNKIT_0190_CONSOLIDATED_DAILY_USE_PRODUCT_DECISION_20260812.md +97 -0
- package/docs/architecture/OWLCODA_RUNKIT_USAGE_MODE_SELECTION_PRODUCT_DECISION_20260811.md +8 -7
- package/docs/architecture/OWLCODA_RUN_KIT_CONTRACT_V0_2.md +57 -0
- package/integrations/codex/skills/owlcoda-runkit/SKILL.md +133 -77
- package/integrations/codex/skills/owlcoda-runkit/assets/templates/config.json +3 -3
- package/integrations/codex/skills/owlcoda-runkit/references/contract-v0.2.md +57 -0
- package/package.json +1 -1
- package/packages/attest/README.md +9 -5
- package/packages/attest/consumer-surface-v2.json +263 -0
- package/packages/attest/distribution-manifest-v1.json +14 -1
- package/packages/attest/schemas/quick-verification-receipt-v3.schema.json +244 -0
- package/packages/attest/schemas/workspace-snapshot-v2.schema.json +114 -0
- package/packages/attest/src/dependency-environment.mjs +128 -0
- package/packages/attest/src/index.mjs +1 -0
- package/packages/attest/src/quick-receipt-contract.mjs +205 -12
- package/packages/attest/src/quick.mjs +45 -4
- package/packages/attest/src/workspace-snapshot.mjs +143 -7
- package/registry-release-policy-v1.json +5 -5
- package/sbom.spdx.json +5 -5
- package/scripts/runkit-contract/assurance-router.mjs +25 -6
- package/scripts/runkit-contract/core-contract.mjs +29 -1
- package/scripts/runkit-contract/efficiency-metrics.mjs +559 -0
- package/scripts/runkit-contract/evidence-store.mjs +130 -0
- package/scripts/runkit-contract/onboarding-bootstrap.mjs +685 -0
- package/scripts/runkit-contract/onboarding-doctor.mjs +3 -2
- package/scripts/runkit-contract/outcome-presentation.mjs +171 -0
- package/scripts/runkit-contract/profile-onboarding.mjs +285 -17
- package/scripts/runkit-contract/project-cli-resolver.mjs +29 -5
- package/scripts/runkit-contract/project-external-delivery.mjs +707 -0
- package/scripts/runkit-contract/quick-evidence-reuse.mjs +590 -0
- package/scripts/runkit-contract/quick-isolation.mjs +314 -0
- package/scripts/runkit-contract/quick-metrics.mjs +51 -3
- package/scripts/runkit-contract/quick-receipt.mjs +31 -1
- package/scripts/runkit-contract/quick-verify.mjs +217 -26
- package/scripts/runkit-contract/quick-workspace-snapshot.mjs +1 -0
- package/scripts/runkit-contract/runkit-bootstrap.mjs +7 -1
- package/scripts/runkit-contract/runkit-cli.mjs +602 -152
- package/scripts/runkit-contract/runtime-transition.mjs +478 -0
- package/scripts/runkit-contract/schemas/assurance-route-v2.schema.json +26 -0
- package/scripts/runkit-contract/schemas/efficiency-event-v1.schema.json +56 -0
- package/scripts/runkit-contract/schemas/efficiency-metrics-v1.schema.json +220 -0
- package/scripts/runkit-contract/schemas/external-runtime-report-v1.schema.json +125 -0
- package/scripts/runkit-contract/schemas/onboarding-bootstrap-plan-v1.schema.json +168 -0
- package/scripts/runkit-contract/schemas/onboarding-bootstrap-receipt-v1.schema.json +130 -0
- package/scripts/runkit-contract/schemas/outcome-summary-v1.schema.json +83 -0
- package/scripts/runkit-contract/schemas/profile-detection-v3.schema.json +170 -0
- package/scripts/runkit-contract/schemas/quick-evidence-reuse-plan-v1.schema.json +59 -0
- package/scripts/runkit-contract/schemas/quick-evidence-reuse-receipt-v1.schema.json +79 -0
- package/scripts/runkit-contract/schemas/runtime-transition-receipt-v1.schema.json +185 -0
- package/scripts/runkit-contract/schemas/team-project-event-v3.schema.json +146 -0
- package/scripts/runkit-contract/schemas/team-project-event-v4.schema.json +142 -0
- package/scripts/runkit-contract/schemas/team-project-status-v2.schema.json +85 -0
- package/scripts/runkit-contract/schemas/usage-mode-recommendation-v2.schema.json +136 -0
- package/scripts/runkit-contract/team-project.mjs +1172 -22
- package/scripts/runkit-contract/usage-mode.mjs +28 -7
- package/scripts/runkit-contract/verification-envelope.mjs +15 -18
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,85 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.19.0
|
|
4
|
+
|
|
5
|
+
- Adds `bootstrap --dry-run|--apply` as one exact-registry, project-local,
|
|
6
|
+
lifecycle-locked onboarding transaction. It initializes or upgrades Core,
|
|
7
|
+
reconciles and validates profiles, adopts the release, runs doctor, and
|
|
8
|
+
restores its bounded preimage on failure without refreshing shared Skills.
|
|
9
|
+
- Makes first-use help and empty-profile repair actionable, and reports the
|
|
10
|
+
installed package/Core/Skill identity independently instead of accepting a
|
|
11
|
+
matching version string with drifted Core bytes.
|
|
12
|
+
- Runs Quick commands in an isolated temporary consumer with bounded dependency
|
|
13
|
+
projection and tool-cache directories, separating workspace source changes,
|
|
14
|
+
requested ignored-artifact bindings, and dependency-environment identity.
|
|
15
|
+
- Adds `quick-reuse` planning and execution for a passed prior receipt plus an
|
|
16
|
+
explicitly allowed small delta. Reuse fails closed on prior candidate,
|
|
17
|
+
command, dependency, ignored-binding, or out-of-scope path drift.
|
|
18
|
+
- Stores repeated Quick and Verification Envelope stdout/stderr as verified
|
|
19
|
+
content-addressed evidence objects while retaining the existing receipt-local
|
|
20
|
+
references and create-only receipt semantics.
|
|
21
|
+
- Adds `quick-runtime-verify` with explicit workspace mutation, external
|
|
22
|
+
mutation, rollback, final external state, failed/last-passed stage, and
|
|
23
|
+
recovery lineage fields. Command-reported runtime truth remains distinct from
|
|
24
|
+
independent deployment or business acceptance.
|
|
25
|
+
- Adds Project Event V4 actions for reopening or invalidating upstream work,
|
|
26
|
+
propagating downstream waiting, and atomically transferring responsibility.
|
|
27
|
+
Immutable prior failures, assignments, handoffs, and evidence remain visible.
|
|
28
|
+
- Adds a six-layer human outcome projection that separates candidate identity,
|
|
29
|
+
workspace attestation, verification, product/UX acceptance, deployment/runtime
|
|
30
|
+
activation, and production/business validity; lower layers never promote the
|
|
31
|
+
higher ones automatically.
|
|
32
|
+
- Adds local-only `efficiency record|status` metrics for repeated commands,
|
|
33
|
+
explicit false blocks and manual interventions, handoff wait, and
|
|
34
|
+
time-to-acceptable-result. Receipt count is intentionally not a success
|
|
35
|
+
metric and no telemetry is sent.
|
|
36
|
+
- Preserves the independent continuity and assurance axes, mandatory Formal
|
|
37
|
+
risk routing, strict predecessor contracts, and
|
|
38
|
+
`authorizationGranted=false` for Git, release, deployment, production, and
|
|
39
|
+
business authority.
|
|
40
|
+
|
|
41
|
+
## 0.18.4
|
|
42
|
+
|
|
43
|
+
- Adds controller-owned `project target-snapshot --dry-run|--apply` for binding
|
|
44
|
+
an immutable target HEAD, visible dirty overlay, WorkItem path boundary, and
|
|
45
|
+
full workspace fingerprint without writing the frozen target worktree.
|
|
46
|
+
- Adds `project import-delivery --dry-run|--apply` for verifying an external
|
|
47
|
+
DeliveryPacket against that target and recording exact candidate identity in
|
|
48
|
+
Project Driver through append-only Event V3.
|
|
49
|
+
- Distinguishes an attested entry-to-candidate overlay from `candidate_only`
|
|
50
|
+
intake when no entry snapshot exists, so current candidate verification is
|
|
51
|
+
never overstated as historical delta proof.
|
|
52
|
+
- Classifies visible tool-cache and dependency-environment changes separately
|
|
53
|
+
while rejecting packet paths outside WorkItem ownership and any unclassified
|
|
54
|
+
source delta before project truth is written.
|
|
55
|
+
- Documents project-local `npx --no-install owlrunkit` as the normal command
|
|
56
|
+
surface and treats an older global CLI or process-level Skill as version
|
|
57
|
+
drift, not as authority to reinterpret a newer project.
|
|
58
|
+
- Makes `profiles detect --dry-run` return the V3 contract with real visible
|
|
59
|
+
changed paths, `profiles_insufficient` when source coverage is incomplete,
|
|
60
|
+
a minimal suggested profile, and copyable preview/apply repair commands.
|
|
61
|
+
- Emits Status/Takeover V2 and extends takeover with stale-handoff reasons plus
|
|
62
|
+
the current external delivery and exact per-file delta from its predecessor,
|
|
63
|
+
while retaining the one-screen human projection.
|
|
64
|
+
- Emits Assurance Route V2 and Usage Mode Recommendation V2 with project-local
|
|
65
|
+
commands. The published Profile Detection V2, Status/Takeover V1, Assurance
|
|
66
|
+
Route V1, and Usage Mode Recommendation V1 contracts remain unchanged for
|
|
67
|
+
existing consumers.
|
|
68
|
+
- Adds action-specific `project assign --help` and makes `quick-metrics`
|
|
69
|
+
local-by-default without requiring `--local`; the old flag remains an
|
|
70
|
+
accepted compatibility no-op.
|
|
71
|
+
- Requires disjoint controller and target workspaces, binds only an exact Git
|
|
72
|
+
worktree root, brackets DeliveryPacket verification with stable target
|
|
73
|
+
snapshots, and rejects base-identity drift plus both sides of any
|
|
74
|
+
cross-boundary rename.
|
|
75
|
+
- Reserves Event V3 for verified `import-delivery` intake so legacy raw request
|
|
76
|
+
actions cannot inject external-delivery truth without checking target bytes.
|
|
77
|
+
- Revalidates Git-visible changed paths between profile detection and apply;
|
|
78
|
+
Git-status failure and rename-source coverage now fail closed instead of
|
|
79
|
+
appearing as a high-confidence empty candidate.
|
|
80
|
+
- Keeps target writes and every Git, release, deployment, production, UX, and
|
|
81
|
+
business authorization flag false.
|
|
82
|
+
|
|
3
83
|
## 0.18.3
|
|
4
84
|
|
|
5
85
|
- Adds `quick-verify --stdin-file <file>` so a local or remote verification
|
package/README.md
CHANGED
|
@@ -21,6 +21,30 @@ actionable-only receipt issues, optional one-command attestation, and concise
|
|
|
21
21
|
metrics by default. It also adds one atomic failed-work return path and makes
|
|
22
22
|
the bundled Skill's contract references self-contained.
|
|
23
23
|
|
|
24
|
+
RunKit 0.18.4 lets one controller project bind a separate frozen target
|
|
25
|
+
worktree without installing dependencies or `.owlcoda` into that target. It
|
|
26
|
+
captures an immutable entry snapshot, verifies an external DeliveryPacket,
|
|
27
|
+
classifies visible dirty-overlay changes, and imports the candidate identity
|
|
28
|
+
into Project Driver. Missing entry truth is reported as `candidate_only`, not
|
|
29
|
+
as an attested delta. Tool-cache and dependency-environment changes are
|
|
30
|
+
disclosed separately; unclassified source changes fail closed. The release
|
|
31
|
+
also makes project-local `npx --no-install owlrunkit` the documented command
|
|
32
|
+
surface so an older global binary cannot reinterpret newer project truth.
|
|
33
|
+
Profile detection now exposes real uncovered source paths and copyable repair
|
|
34
|
+
commands instead of reporting a non-actionable success. Takeover reports stale
|
|
35
|
+
handoffs and the exact current-versus-previous external candidate delta.
|
|
36
|
+
These additions use Profile Detection V3, Status/Takeover V2, Assurance Route
|
|
37
|
+
V2, and Usage Mode Recommendation V2; the published predecessor contracts
|
|
38
|
+
remain unchanged.
|
|
39
|
+
|
|
40
|
+
RunKit 0.19.0 consolidates the daily-use dogfood backlog into one release. It
|
|
41
|
+
adds atomic onboarding, isolated Quick dependency/cache execution, bounded
|
|
42
|
+
reuse of unchanged evidence, content-addressed output storage, explicit
|
|
43
|
+
external-runtime and rollback truth, upstream rework propagation, atomic
|
|
44
|
+
transfer actions, business-layer outcome projection, and local efficiency
|
|
45
|
+
metrics. These conveniences do not weaken Formal routing or grant Git,
|
|
46
|
+
release, deployment, production, or business authority.
|
|
47
|
+
|
|
24
48
|
The 0.18 Project Driver is a bounded surface for new projects and controlled
|
|
25
49
|
dogfood. Its product name does not claim to be a general long-running,
|
|
26
50
|
multi-phase, or enterprise control plane. Version 0.18 adds one bounded
|
|
@@ -35,10 +59,11 @@ separate authority boundaries.
|
|
|
35
59
|
## Install
|
|
36
60
|
|
|
37
61
|
```bash
|
|
38
|
-
npm install --save-exact owlrunkit@0.
|
|
62
|
+
npm install --save-exact owlrunkit@0.19.0
|
|
39
63
|
```
|
|
40
64
|
|
|
41
|
-
|
|
65
|
+
Use `npx --no-install owlrunkit` for project commands. The package bootstrap
|
|
66
|
+
uses the project's exact locally bound CLI for
|
|
42
67
|
ordinary project commands. The installed current package remains responsible
|
|
43
68
|
for bootstrap operations such as initialization, adoption, and Core successor
|
|
44
69
|
migration, so a global CLI does not reinterpret an older project's control
|
|
@@ -48,13 +73,24 @@ the current bootstrap Core or its embedded prior-release identity catalog, and
|
|
|
48
73
|
the project Config must independently bind the same Core.
|
|
49
74
|
|
|
50
75
|
```bash
|
|
51
|
-
owlrunkit --version
|
|
52
|
-
owlrunkit
|
|
53
|
-
owlrunkit
|
|
54
|
-
owlrunkit
|
|
55
|
-
owlrunkit
|
|
76
|
+
npx --no-install owlrunkit --version
|
|
77
|
+
npx --no-install owlrunkit bootstrap --workspace /absolute/path/to/project \
|
|
78
|
+
--exact owlrunkit@0.19.0 --dry-run
|
|
79
|
+
npx --no-install owlrunkit bootstrap --workspace /absolute/path/to/project \
|
|
80
|
+
--exact owlrunkit@0.19.0 --apply
|
|
81
|
+
npx --no-install owlrunkit init --workspace /absolute/path/to/project
|
|
82
|
+
npx --no-install owlrunkit doctor --workspace /absolute/path/to/project
|
|
83
|
+
npx --no-install owlrunkit mode recommend --workspace /absolute/path/to/project
|
|
84
|
+
npx --no-install owlrunkit mode status --workspace /absolute/path/to/project
|
|
56
85
|
```
|
|
57
86
|
|
|
87
|
+
`bootstrap` is the complete first-onboarding and eligible idle-upgrade entry.
|
|
88
|
+
It binds the exact project-local package to the official registry, initializes
|
|
89
|
+
Core, reconciles and validates profiles, writes adoption evidence, and reads
|
|
90
|
+
back doctor. Dry-run is zero-write; failed apply restores the governed preimage
|
|
91
|
+
and keeps a failure receipt. It reports shared Skill drift but never silently
|
|
92
|
+
updates a user or fleet Skill.
|
|
93
|
+
|
|
58
94
|
`mode recommend` is read-only and defaults to human output; add `--json` for a
|
|
59
95
|
machine contract. The five user modes are presets over `continuity`
|
|
60
96
|
(`none | project_driver`) and `assurance` (`none | quick | formal`). They never
|
|
@@ -69,59 +105,59 @@ status, and takeover flow:
|
|
|
69
105
|
|
|
70
106
|
```bash
|
|
71
107
|
cp node_modules/owlrunkit/scripts/runkit-contract/templates/team-project-definition.json ./project-definition.json
|
|
72
|
-
owlrunkit project init --workspace . \
|
|
108
|
+
npx --no-install owlrunkit project init --workspace . \
|
|
73
109
|
--definition ./project-definition.json
|
|
74
|
-
owlrunkit project assign --workspace . --assignment-id assign-1 \
|
|
110
|
+
npx --no-install owlrunkit project assign --workspace . --assignment-id assign-1 \
|
|
75
111
|
--at 2026-08-09T00:00:00.000Z --work-item work-item-1 --agent agent-runtime
|
|
76
|
-
owlrunkit project checkpoint --workspace . --checkpoint-id checkpoint-1 \
|
|
112
|
+
npx --no-install owlrunkit project checkpoint --workspace . --checkpoint-id checkpoint-1 \
|
|
77
113
|
--at 2026-08-09T00:05:00.000Z --assignment-id assign-1 --work-item work-item-1 \
|
|
78
114
|
--state active --summary 'Implement the bounded work item' \
|
|
79
115
|
--completed-units 0 \
|
|
80
116
|
--next 'Run the focused verification'
|
|
81
|
-
owlrunkit project handoff --workspace . --handoff-id handoff-1 \
|
|
117
|
+
npx --no-install owlrunkit project handoff --workspace . --handoff-id handoff-1 \
|
|
82
118
|
--at 2026-08-09T00:10:00.000Z --assignment-id assign-1 --work-item work-item-1 \
|
|
83
119
|
--from-agent agent-runtime --to-agent agent-successor \
|
|
84
120
|
--summary 'Source work is ready for continuation' --next 'Run verification' \
|
|
85
121
|
--evidence evidence/source.txt
|
|
86
122
|
# If review instead rejects a failed checkpoint, preserve it and open rework
|
|
87
123
|
# without first mutating the WorkItem back to active:
|
|
88
|
-
owlrunkit project reject-and-return --workspace . --rework-id review-1 \
|
|
124
|
+
npx --no-install owlrunkit project reject-and-return --workspace . --rework-id review-1 \
|
|
89
125
|
--at 2026-08-09T00:10:30.000Z --work-item work-item-1 \
|
|
90
126
|
--reviewer-agent agent-control --to-agent agent-runtime \
|
|
91
127
|
--reason 'The candidate violates its versioned contract' \
|
|
92
128
|
--next 'Repair the contract and rerun the focused check' \
|
|
93
129
|
--evidence evidence/rejected-review.txt
|
|
94
|
-
owlrunkit project assign --workspace . --assignment-id assign-2 \
|
|
130
|
+
npx --no-install owlrunkit project assign --workspace . --assignment-id assign-2 \
|
|
95
131
|
--at 2026-08-09T00:11:00.000Z --work-item work-item-1 \
|
|
96
132
|
--agent agent-successor --supersedes assign-1
|
|
97
|
-
owlrunkit project decision --workspace . --open --decision-id decision-1 \
|
|
133
|
+
npx --no-install owlrunkit project decision --workspace . --open --decision-id decision-1 \
|
|
98
134
|
--at 2026-08-09T00:12:00.000Z --title 'Choose the accepted source path' \
|
|
99
135
|
--question 'Which source path should continue?' --owner-agent agent-successor \
|
|
100
136
|
--blocking-work-item work-item-1 --option accepted --option rejected
|
|
101
|
-
owlrunkit project decision --workspace . --resolve --decision-id decision-1 \
|
|
137
|
+
npx --no-install owlrunkit project decision --workspace . --resolve --decision-id decision-1 \
|
|
102
138
|
--at 2026-08-09T00:13:00.000Z --resolution 'Use the accepted source path' \
|
|
103
139
|
--rationale 'It preserves the project contract' --evidence evidence/decision.txt
|
|
104
|
-
owlrunkit project checkpoint --workspace . --checkpoint-id checkpoint-2 \
|
|
140
|
+
npx --no-install owlrunkit project checkpoint --workspace . --checkpoint-id checkpoint-2 \
|
|
105
141
|
--at 2026-08-09T00:14:00.000Z --assignment-id assign-2 \
|
|
106
142
|
--work-item work-item-1 --state completed --completed-units 1 \
|
|
107
143
|
--summary 'Accepted work is complete' --evidence evidence/completion.txt
|
|
108
|
-
owlrunkit project verification --workspace . --defer \
|
|
144
|
+
npx --no-install owlrunkit project verification --workspace . --defer \
|
|
109
145
|
--verification-id release-batch --at 2026-08-09T00:14:30.000Z \
|
|
110
146
|
--work-item work-item-1 --owner-agent agent-successor \
|
|
111
147
|
--check typecheck --check full-suite --check package-smoke \
|
|
112
148
|
--reason 'Run broad checks once after the related changes settle' \
|
|
113
149
|
--due-gate integration-ready
|
|
114
150
|
# After those checks run once against the frozen candidate:
|
|
115
|
-
owlrunkit project verification --workspace . --close \
|
|
151
|
+
npx --no-install owlrunkit project verification --workspace . --close \
|
|
116
152
|
--verification-id release-batch --at 2026-08-09T00:14:45.000Z \
|
|
117
153
|
--disposition verified --summary 'The batched release checks passed' \
|
|
118
154
|
--evidence evidence/release-batch.txt
|
|
119
|
-
owlrunkit project integrate --workspace . --gate integration-ready \
|
|
155
|
+
npx --no-install owlrunkit project integrate --workspace . --gate integration-ready \
|
|
120
156
|
--at 2026-08-09T00:15:00.000Z --summary 'Integration gate evidence is complete' \
|
|
121
157
|
--evidence evidence/integration.txt
|
|
122
|
-
owlrunkit project status --workspace .
|
|
123
|
-
owlrunkit project takeover --workspace . --agent agent-successor
|
|
124
|
-
owlrunkit project successor --workspace . --transition-id project-next-001 \
|
|
158
|
+
npx --no-install owlrunkit project status --workspace .
|
|
159
|
+
npx --no-install owlrunkit project takeover --workspace . --agent agent-successor
|
|
160
|
+
npx --no-install owlrunkit project successor --workspace . --transition-id project-next-001 \
|
|
125
161
|
--at 2026-08-09T00:16:00.000Z --definition ./next-project-definition.json \
|
|
126
162
|
--reason 'Archive the completed project and begin the next bounded project'
|
|
127
163
|
```
|
|
@@ -141,6 +177,47 @@ the reviewer, evidence, target Agent, and new assignment. The failed checkpoint
|
|
|
141
177
|
remains immutable; status and takeover expose the rework relation and attempt.
|
|
142
178
|
The command is not a Git rejection, merge action, or release authorization.
|
|
143
179
|
|
|
180
|
+
### Import a frozen external source lane
|
|
181
|
+
|
|
182
|
+
Capture the target before delegating source work, then import the producer's
|
|
183
|
+
DeliveryPacket after it freezes the candidate:
|
|
184
|
+
|
|
185
|
+
```bash
|
|
186
|
+
npx --no-install owlrunkit project target-snapshot --workspace . \
|
|
187
|
+
--snapshot-id w2-5-entry --at 2026-08-12T08:00:00.000Z \
|
|
188
|
+
--work-item work-item-1 --target-workspace /absolute/frozen/worktree --apply
|
|
189
|
+
|
|
190
|
+
npx --no-install owlrunkit project import-delivery --workspace . \
|
|
191
|
+
--delivery-id w2-5-luna --at 2026-08-12T09:00:00.000Z \
|
|
192
|
+
--assignment-id assign-1 --work-item work-item-1 --producer luna-max \
|
|
193
|
+
--target-workspace /absolute/frozen/worktree \
|
|
194
|
+
--packet /absolute/delivery-packet.json \
|
|
195
|
+
--entry-snapshot w2-5-entry --apply
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
Both commands support `--dry-run` instead of `--apply`. Artifacts are written
|
|
199
|
+
only under the controller's `.owlcoda/runkit/project`; the target is read-only.
|
|
200
|
+
Controller and target must be disjoint real directories, and the target must
|
|
201
|
+
be the exact Git worktree root rather than a nested repository directory.
|
|
202
|
+
The imported Event V3 records `deliveryCandidateFingerprint`,
|
|
203
|
+
`workspaceSnapshotFingerprint`, target HEAD, candidate file hashes, overlay
|
|
204
|
+
classification, and explicit `proven` / `notProven` statements. Omitting
|
|
205
|
+
`--entry-snapshot` verifies the current candidate bytes but records
|
|
206
|
+
`overlayStatus=candidate_only`.
|
|
207
|
+
|
|
208
|
+
External-delivery intake cache classification covers paths visible to Git status, such as
|
|
209
|
+
`.vitest/**`, `.vite/**`, `.pytest_cache/**`, and `__pycache__/**`. It does not
|
|
210
|
+
claim to bind ignored paths (`ignoredPathsBound=false`) and does not create a
|
|
211
|
+
Quick isolated consumer. Lockfile or
|
|
212
|
+
`node_modules` changes outside the packet are disclosed as dependency
|
|
213
|
+
environment changes. Any other entry-to-candidate delta, or any packet path
|
|
214
|
+
outside the WorkItem's allowed ownership, blocks import before project truth is
|
|
215
|
+
written. This includes the deleted source side of a Git rename; changing target
|
|
216
|
+
HEAD, tracked tree, or submodule identity also blocks overlay attestation.
|
|
217
|
+
Event V3 can be created only by this verified intake path, not a legacy raw
|
|
218
|
+
project request. No imported delivery grants Git, release, deployment,
|
|
219
|
+
production, UX, or business acceptance.
|
|
220
|
+
|
|
144
221
|
`project verification --defer` is a small deferred-verification ledger, not a
|
|
145
222
|
test scheduler. It records stable check IDs, why they were intentionally not
|
|
146
223
|
run yet, the responsible Agent, and the integration gate before which they
|
|
@@ -178,6 +255,11 @@ WorkItem. An assignment may bind an exact RunKit execution and lease; in that
|
|
|
178
255
|
case, the WorkItem cannot complete until the execution has a trusted accepted
|
|
179
256
|
closeout and its lease is released.
|
|
180
257
|
|
|
258
|
+
`project takeover` adds the current candidate, its exact added/changed/removed
|
|
259
|
+
path delta from the previous imported delivery, and handoffs that are stale
|
|
260
|
+
because later project truth superseded them. These are read-only projections;
|
|
261
|
+
they do not reopen work or grant writer authority.
|
|
262
|
+
|
|
181
263
|
The Agent-facing natural actions are stable: split and assign work, report
|
|
182
264
|
status, open or resolve a decision, hand off, take over, capture evidence, and
|
|
183
265
|
verify. The CLI is the durable implementation surface; users can keep speaking
|
|
@@ -189,11 +271,11 @@ Preview deterministic, project-local commands, or atomically adopt only
|
|
|
189
271
|
high-confidence candidates:
|
|
190
272
|
|
|
191
273
|
```bash
|
|
192
|
-
owlrunkit profiles detect --workspace . --dry-run
|
|
193
|
-
owlrunkit profiles detect --workspace . --apply
|
|
194
|
-
owlrunkit profiles reconcile --workspace . --dry-run
|
|
195
|
-
owlrunkit profiles reconcile --workspace . --apply
|
|
196
|
-
owlrunkit profiles validate --workspace .
|
|
274
|
+
npx --no-install owlrunkit profiles detect --workspace . --dry-run
|
|
275
|
+
npx --no-install owlrunkit profiles detect --workspace . --apply
|
|
276
|
+
npx --no-install owlrunkit profiles reconcile --workspace . --dry-run
|
|
277
|
+
npx --no-install owlrunkit profiles reconcile --workspace . --apply
|
|
278
|
+
npx --no-install owlrunkit profiles validate --workspace .
|
|
197
279
|
```
|
|
198
280
|
|
|
199
281
|
`profiles detect --apply` is create-only. `profiles reconcile` previews or
|
|
@@ -205,12 +287,21 @@ launchers. A PATH-only package manager remains review-required. A dry-run that
|
|
|
205
287
|
only canonicalizes JSON formatting reports `normalizationOnly: true` instead of
|
|
206
288
|
showing unexplained hash drift with an empty update list.
|
|
207
289
|
|
|
290
|
+
The dry-run is the V2 detection contract. It reports `profiles_insufficient`
|
|
291
|
+
instead of `profiles_detected` when Git-visible source paths are uncovered or
|
|
292
|
+
no actionable primary exists. `changedPaths`, `uncoveredSourcePaths`,
|
|
293
|
+
`primaryBlockers`, `minimalSuggestedProfile`, and `repairCommands` explain the
|
|
294
|
+
gap using only real project surfaces; absent conventional `src/` or `tests/`
|
|
295
|
+
directories are never invented as blockers. Detection records both sides of a
|
|
296
|
+
Git rename, reports Git-status failure, and rechecks the exact changed-path set
|
|
297
|
+
before apply so a stale dry-run cannot write incomplete coverage.
|
|
298
|
+
|
|
208
299
|
## Choose auto, off, light, managed, or formal
|
|
209
300
|
|
|
210
301
|
Start with the human-first read-only recommendation:
|
|
211
302
|
|
|
212
303
|
```bash
|
|
213
|
-
owlrunkit mode recommend --workspace .
|
|
304
|
+
npx --no-install owlrunkit mode recommend --workspace .
|
|
214
305
|
```
|
|
215
306
|
|
|
216
307
|
- **off / No RunKit** uses neither continuity nor assurance for analysis,
|
|
@@ -231,7 +322,7 @@ recommendation; escalation is not sticky.
|
|
|
231
322
|
Machine integrations may route an explicit risk-facts document directly:
|
|
232
323
|
|
|
233
324
|
```bash
|
|
234
|
-
owlrunkit assurance route --workspace . \
|
|
325
|
+
npx --no-install owlrunkit assurance route --workspace . \
|
|
235
326
|
--request ./scripts/runkit-contract/templates/assurance-request.json
|
|
236
327
|
```
|
|
237
328
|
|
|
@@ -245,11 +336,22 @@ grant Git, release, publish, deploy, or business authority.
|
|
|
245
336
|
Run Quick with:
|
|
246
337
|
|
|
247
338
|
```bash
|
|
248
|
-
owlrunkit quick-verify --workspace . -- npm test
|
|
249
|
-
owlrunkit quick-verify --workspace . --stdin-file ./remote-check.sh --attest \
|
|
339
|
+
npx --no-install owlrunkit quick-verify --workspace . -- npm test
|
|
340
|
+
npx --no-install owlrunkit quick-verify --workspace . --stdin-file ./remote-check.sh --attest \
|
|
250
341
|
-- ssh test-host /bin/sh
|
|
251
|
-
owlrunkit quick-
|
|
252
|
-
|
|
342
|
+
npx --no-install owlrunkit quick-verify --workspace . --isolate \
|
|
343
|
+
--dependency-root /absolute/dependency-consumer -- npm test
|
|
344
|
+
npx --no-install owlrunkit quick-verify --workspace . \
|
|
345
|
+
--bind-ignored .generated/audit.json -- node ./verify-generated.mjs
|
|
346
|
+
npx --no-install owlrunkit quick-reuse --workspace . \
|
|
347
|
+
--base-receipt .owlcoda/runkit/quick/receipts/<id>/receipt.json \
|
|
348
|
+
--allow-path src/new-adapter.mjs --dry-run -- node --test tests/new-adapter.test.mjs
|
|
349
|
+
npx --no-install owlrunkit quick-verify --workspace . --capture-runtime \
|
|
350
|
+
-- ./deploy-and-readback.sh
|
|
351
|
+
npx --no-install owlrunkit quick-runtime-verify --workspace . \
|
|
352
|
+
--receipt .owlcoda/runkit/quick/receipts/<id>/runtime-transition.json
|
|
353
|
+
npx --no-install owlrunkit quick-metrics --workspace .
|
|
354
|
+
npx --no-install owlrunkit quick-metrics --workspace . --verbose
|
|
253
355
|
```
|
|
254
356
|
|
|
255
357
|
`--stdin-file` accepts a regular non-symlink file up to 1 MiB, copies its exact
|
|
@@ -261,12 +363,81 @@ restore phases remain visible while the complete artifacts stay receipt-bound.
|
|
|
261
363
|
`--attest` runs the existing attestation immediately and returns its independent
|
|
262
364
|
object alongside the Quick result; it does not promote Quick to Formal.
|
|
263
365
|
|
|
264
|
-
`
|
|
265
|
-
|
|
366
|
+
`--isolate` emits Quick Receipt V3 and runs the exact command from a disposable
|
|
367
|
+
copy of Git-visible candidate files. Common cache variables and temporary files
|
|
368
|
+
point outside the source checkout; new ignored artifacts are disclosed and
|
|
369
|
+
discarded, while a visible source edit in the consumer invalidates the receipt.
|
|
370
|
+
The exact caller-owned command is not an OS write sandbox; direct writes it
|
|
371
|
+
performs outside the consumer remain subject to the explicit before/after
|
|
372
|
+
bindings.
|
|
373
|
+
An optional `--dependency-root` projects an already-installed `node_modules`
|
|
374
|
+
into the consumer, prepends its binary directory, and hash-binds package, lock,
|
|
375
|
+
installed-package, and executable metadata before and after execution. RunKit
|
|
376
|
+
does not install dependencies or contact a registry for this command.
|
|
377
|
+
|
|
378
|
+
Repeatable literal `--bind-ignored` paths opt specific ignored workspace bytes
|
|
379
|
+
into Workspace Snapshot V2. Missing is a bound state; file or directory changes
|
|
380
|
+
invalidate Quick. Unrequested ignored paths remain explicitly outside the
|
|
381
|
+
claim. V1/V2 receipts and Workspace Snapshot V1 keep their existing meanings.
|
|
382
|
+
|
|
383
|
+
`quick-reuse` checks an earlier passed, source-unchanged Quick receipt against
|
|
384
|
+
the current candidate at byte level. A clean commit does not create false drift
|
|
385
|
+
when it preserves the previously dirty candidate bytes. Only literal
|
|
386
|
+
`--allow-path` deltas may remain; any other tracked, untracked, deleted,
|
|
387
|
+
renamed, submodule, or previously bound ignored-path delta blocks before the
|
|
388
|
+
exact command runs. `--apply` then runs only the delta gate and records
|
|
389
|
+
`OwlCodaQuickEvidenceReuseReceiptV1`. It does not promote either Quick receipt
|
|
390
|
+
to Formal, UX, deployment, production, or business acceptance.
|
|
391
|
+
|
|
392
|
+
New Quick output and Verification Envelope stdout/stderr bytes are also placed
|
|
393
|
+
in a project-global create-only SHA-256 object store. Repeated objects reuse the
|
|
394
|
+
same content identity; receipt-local Quick paths remain readable through
|
|
395
|
+
copy-on-write materialization, and historical receipt paths are not rewritten
|
|
396
|
+
or destructively compacted.
|
|
397
|
+
|
|
398
|
+
`--capture-runtime` sets `OWLRUNKIT_RUNTIME_REPORT` to an initially absent,
|
|
399
|
+
receipt-local path. The exact command may write one strict
|
|
400
|
+
`OwlCodaRunKitExternalRuntimeReportV1`; RunKit then keeps the ordinary Quick
|
|
401
|
+
receipt and adds an `OwlCodaRunKitRuntimeTransitionReceiptV1`. The companion
|
|
402
|
+
separates derived `workspaceMutation` from command-reported
|
|
403
|
+
`externalMutation`, and binds ordered stages, failed/last-passed stages,
|
|
404
|
+
rollback, final external state, and recovery artifacts with explicit
|
|
405
|
+
`capturedBefore` and `restoresTo` identities. Missing or inconsistent runtime
|
|
406
|
+
truth fails closed without erasing the Quick receipt. This is a hash-bound
|
|
407
|
+
command report, not an independent external observation or deployment
|
|
408
|
+
authorization; `quick-runtime-verify` verifies stored integrity only.
|
|
409
|
+
|
|
410
|
+
`quick-metrics` is local-only and returns aggregate counts. Add `--verbose`
|
|
411
|
+
when the individual receipt paths are needed. The former `--local` flag remains
|
|
412
|
+
accepted as a compatibility no-op. New successful receipts no longer carry
|
|
266
413
|
the fixed `quick_ignored_artifact_unbound` issue; historical receipts remain
|
|
267
414
|
strictly readable without surfacing that non-actionable code as an attestation
|
|
268
415
|
issue.
|
|
269
416
|
|
|
417
|
+
Quick's default human result is business-first: it says whether the exact
|
|
418
|
+
verification passed, what candidate/workspace evidence is bound, and keeps
|
|
419
|
+
product/UX, deployment/runtime, and production/business acceptance visibly
|
|
420
|
+
separate. A command-reported runtime transition is labeled as reported rather
|
|
421
|
+
than independently observed. Use `--json` for the strict
|
|
422
|
+
`OwlCodaRunKitOutcomeSummaryV1` projection.
|
|
423
|
+
|
|
424
|
+
RunKit can measure its own local workflow friction without telemetry:
|
|
425
|
+
|
|
426
|
+
```bash
|
|
427
|
+
npx --no-install owlrunkit efficiency record --workspace . \
|
|
428
|
+
--event-id wave-start --at 2026-08-13T00:00:00.000Z \
|
|
429
|
+
--kind workflow_started --workflow-id wave-1 --summary 'Wave started.'
|
|
430
|
+
npx --no-install owlrunkit efficiency status --workspace .
|
|
431
|
+
npx --no-install owlrunkit efficiency status --workspace . --verbose --json
|
|
432
|
+
```
|
|
433
|
+
|
|
434
|
+
Repeated Quick command executions are derived from matching command, candidate,
|
|
435
|
+
input, and dependency bindings. False blocks and manual interventions count
|
|
436
|
+
only when explicitly recorded. Handoff wait comes from Project Driver truth;
|
|
437
|
+
time-to-acceptable-result requires paired workflow start/result marks. Receipt
|
|
438
|
+
volume is intentionally not a value metric, and every result keeps Git,
|
|
439
|
+
release, deployment, production, and business authority false.
|
|
440
|
+
|
|
270
441
|
## Formal Delivery in three commands
|
|
271
442
|
|
|
272
443
|
Given a Goal Contract and the paths this work item may write, the happy path is:
|
|
@@ -274,13 +445,13 @@ Given a Goal Contract and the paths this work item may write, the happy path is:
|
|
|
274
445
|
```bash
|
|
275
446
|
NODE_BIN="$(node -p 'process.execPath')"
|
|
276
447
|
|
|
277
|
-
owlrunkit formal start --workspace . --run-id release-001 \
|
|
448
|
+
npx --no-install owlrunkit formal start --workspace . --run-id release-001 \
|
|
278
449
|
--goal .owlcoda/runkit/goal.json --owned-path 'src/**'
|
|
279
450
|
|
|
280
|
-
owlrunkit formal check --workspace . --run-id release-001 \
|
|
451
|
+
npx --no-install owlrunkit formal check --workspace . --run-id release-001 \
|
|
281
452
|
--check-id source-syntax -- "$NODE_BIN" --check src/index.js
|
|
282
453
|
|
|
283
|
-
owlrunkit formal finish --workspace . --run-id release-001 \
|
|
454
|
+
npx --no-install owlrunkit formal finish --workspace . --run-id release-001 \
|
|
284
455
|
--decision accepted
|
|
285
456
|
```
|
|
286
457
|
|
|
@@ -296,7 +467,7 @@ Formal also accepts a real project command through an enforced Verification
|
|
|
296
467
|
Envelope:
|
|
297
468
|
|
|
298
469
|
```bash
|
|
299
|
-
owlrunkit formal check --workspace . --run-id release-001 \
|
|
470
|
+
npx --no-install owlrunkit formal check --workspace . --run-id release-001 \
|
|
300
471
|
--work-item delivery --check-id project-tests \
|
|
301
472
|
--envelope scripts/runkit-contract/templates/verification-envelope.json
|
|
302
473
|
```
|
|
@@ -311,7 +482,7 @@ the policy, the command is not run and no Formal acceptance is possible.
|
|
|
311
482
|
Existing legacy verification may still capture evidence, but it is not silently
|
|
312
483
|
promoted into this Formal path.
|
|
313
484
|
|
|
314
|
-
Use `owlrunkit status --workspace .` for a concise human view of what is ready,
|
|
485
|
+
Use `npx --no-install owlrunkit status --workspace .` for a concise human view of what is ready,
|
|
315
486
|
what has not happened, how many gates remain, and the next allowed action.
|
|
316
487
|
|
|
317
488
|
## Freeze a dirty worktree safely
|
|
@@ -321,11 +492,11 @@ artifact. It binds the baseline, exact owned-path closure, source manifest,
|
|
|
321
492
|
and payload bytes without requiring a Git commit.
|
|
322
493
|
|
|
323
494
|
```bash
|
|
324
|
-
owlrunkit candidate freeze --workspace . --run-id release-001 \
|
|
495
|
+
npx --no-install owlrunkit candidate freeze --workspace . --run-id release-001 \
|
|
325
496
|
--from-lease delivery --candidate-id rc-001
|
|
326
|
-
owlrunkit candidate verify --workspace . \
|
|
497
|
+
npx --no-install owlrunkit candidate verify --workspace . \
|
|
327
498
|
--candidate .owlcoda/runkit/executions/release-001/source-candidates/rc-001.json
|
|
328
|
-
owlrunkit candidate materialize --workspace . \
|
|
499
|
+
npx --no-install owlrunkit candidate materialize --workspace . \
|
|
329
500
|
--candidate .owlcoda/runkit/executions/release-001/source-candidates/rc-001.json \
|
|
330
501
|
--target-workspace /absolute/clean/materialization
|
|
331
502
|
```
|
|
@@ -344,10 +515,10 @@ Register every coverage root once. Later discovery and process-wide migration
|
|
|
344
515
|
commands use the persistent registry automatically:
|
|
345
516
|
|
|
346
517
|
```bash
|
|
347
|
-
owlrunkit fleet register-root --fleet-root /absolute/projects
|
|
348
|
-
owlrunkit fleet register-root --fleet-root /absolute/other-projects
|
|
349
|
-
owlrunkit fleet inspect-registry
|
|
350
|
-
owlrunkit fleet discover
|
|
518
|
+
npx --no-install owlrunkit fleet register-root --fleet-root /absolute/projects
|
|
519
|
+
npx --no-install owlrunkit fleet register-root --fleet-root /absolute/other-projects
|
|
520
|
+
npx --no-install owlrunkit fleet inspect-registry
|
|
521
|
+
npx --no-install owlrunkit fleet discover
|
|
351
522
|
```
|
|
352
523
|
|
|
353
524
|
The registry lives under the user-owned OwlCoda home. Initial discovery stops
|
|
@@ -372,10 +543,10 @@ Core successor separates an immutable candidate and fleet-wide plan from the
|
|
|
372
543
|
Owner-authorized migration:
|
|
373
544
|
|
|
374
545
|
```bash
|
|
375
|
-
owlrunkit core-successor plan --workspace . --plan-id core-016 \
|
|
546
|
+
npx --no-install owlrunkit core-successor plan --workspace . --plan-id core-016 \
|
|
376
547
|
--run-id release-001 --from-lease delivery --candidate-id rc-001
|
|
377
548
|
|
|
378
|
-
owlrunkit core-successor apply --workspace . \
|
|
549
|
+
npx --no-install owlrunkit core-successor apply --workspace . \
|
|
379
550
|
--plan .owlcoda/runkit/core-successors/core-016/plan.json \
|
|
380
551
|
--owner-authority ./owner-core-successor-authority.json \
|
|
381
552
|
--receipt-id core-016-apply
|
|
@@ -395,19 +566,19 @@ Build and verification stay separate from the later permission to change a
|
|
|
395
566
|
machine:
|
|
396
567
|
|
|
397
568
|
```bash
|
|
398
|
-
owlrunkit deployment prepare --workspace . --run-id build-001 \
|
|
569
|
+
npx --no-install owlrunkit deployment prepare --workspace . --run-id build-001 \
|
|
399
570
|
--artifact dist/app.tgz --media-type application/gzip \
|
|
400
571
|
--owner-decision ./owner-deployment-decision.json \
|
|
401
572
|
--output .owlcoda/runkit/deployments/app-prepare.json
|
|
402
573
|
|
|
403
|
-
owlrunkit deployment execute --workspace . \
|
|
574
|
+
npx --no-install owlrunkit deployment execute --workspace . \
|
|
404
575
|
--prepare .owlcoda/runkit/deployments/app-prepare.json \
|
|
405
576
|
--owner-decision ./owner-deployment-decision.json \
|
|
406
577
|
--owner-authority ./deployment-owner-authority.json \
|
|
407
578
|
--manifest ./remote-deployment-manifest.json
|
|
408
579
|
|
|
409
580
|
# Resume the automatic child after an interrupted or indeterminate stage.
|
|
410
|
-
owlrunkit deployment execute --workspace . --resume \
|
|
581
|
+
npx --no-install owlrunkit deployment execute --workspace . --resume \
|
|
411
582
|
--prepare .owlcoda/runkit/deployments/app-prepare.json \
|
|
412
583
|
--owner-decision ./owner-deployment-decision.json \
|
|
413
584
|
--owner-authority ./deployment-owner-authority.json \
|