owlrunkit 0.18.2 → 0.18.4
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 +63 -0
- package/README.md +159 -52
- package/docs/architecture/OWLCODA_RUNKIT_0184_EXTERNAL_DELIVERY_INTAKE_PRODUCT_DECISION_20260812.md +209 -0
- package/docs/architecture/OWLCODA_RUNKIT_018_PROJECT_DRIVER_PRODUCT_DEFINITION.md +16 -5
- package/docs/architecture/OWLCODA_RUNKIT_USAGE_MODE_SELECTION_PRODUCT_DECISION_20260811.md +54 -3
- package/docs/architecture/OWLCODA_RUN_KIT_CONTRACT_V0_2.md +7 -0
- package/integrations/codex/skills/owlcoda-runkit/SKILL.md +125 -74
- package/integrations/codex/skills/owlcoda-runkit/assets/templates/config.json +3 -3
- package/integrations/codex/skills/owlcoda-runkit/references/contract-v0.1.md +160 -0
- package/integrations/codex/skills/owlcoda-runkit/references/contract-v0.2.md +545 -0
- package/package.json +1 -1
- package/packages/attest/README.md +4 -3
- package/packages/attest/consumer-surface-v1.json +1 -0
- package/packages/attest/distribution-manifest-v1.json +12 -1
- package/packages/attest/schemas/quick-verification-receipt-v2.schema.json +232 -0
- package/packages/attest/src/index.mjs +4 -1
- package/packages/attest/src/quick-receipt-contract.mjs +16 -6
- package/packages/attest/src/quick.mjs +21 -2
- package/packages/attest/src/workspace-snapshot.mjs +10 -1
- 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 +10 -1
- package/scripts/runkit-contract/onboarding-doctor.mjs +1 -1
- package/scripts/runkit-contract/profile-onboarding.mjs +263 -15
- package/scripts/runkit-contract/project-cli-resolver.mjs +6 -0
- package/scripts/runkit-contract/project-external-delivery.mjs +707 -0
- package/scripts/runkit-contract/quick-metrics.mjs +3 -3
- package/scripts/runkit-contract/quick-receipt.mjs +79 -12
- package/scripts/runkit-contract/quick-verify.mjs +89 -12
- package/scripts/runkit-contract/runkit-bootstrap.mjs +6 -1
- package/scripts/runkit-contract/runkit-cli.mjs +363 -143
- package/scripts/runkit-contract/schemas/assurance-route-v2.schema.json +26 -0
- package/scripts/runkit-contract/schemas/profile-detection-v3.schema.json +170 -0
- package/scripts/runkit-contract/schemas/team-project-event-v2.schema.json +128 -0
- package/scripts/runkit-contract/schemas/team-project-event-v3.schema.json +146 -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 +782 -55
- package/scripts/runkit-contract/usage-mode.mjs +28 -7
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,68 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.18.4
|
|
4
|
+
|
|
5
|
+
- Adds controller-owned `project target-snapshot --dry-run|--apply` for binding
|
|
6
|
+
an immutable target HEAD, visible dirty overlay, WorkItem path boundary, and
|
|
7
|
+
full workspace fingerprint without writing the frozen target worktree.
|
|
8
|
+
- Adds `project import-delivery --dry-run|--apply` for verifying an external
|
|
9
|
+
DeliveryPacket against that target and recording exact candidate identity in
|
|
10
|
+
Project Driver through append-only Event V3.
|
|
11
|
+
- Distinguishes an attested entry-to-candidate overlay from `candidate_only`
|
|
12
|
+
intake when no entry snapshot exists, so current candidate verification is
|
|
13
|
+
never overstated as historical delta proof.
|
|
14
|
+
- Classifies visible tool-cache and dependency-environment changes separately
|
|
15
|
+
while rejecting packet paths outside WorkItem ownership and any unclassified
|
|
16
|
+
source delta before project truth is written.
|
|
17
|
+
- Documents project-local `npx --no-install owlrunkit` as the normal command
|
|
18
|
+
surface and treats an older global CLI or process-level Skill as version
|
|
19
|
+
drift, not as authority to reinterpret a newer project.
|
|
20
|
+
- Makes `profiles detect --dry-run` return the V3 contract with real visible
|
|
21
|
+
changed paths, `profiles_insufficient` when source coverage is incomplete,
|
|
22
|
+
a minimal suggested profile, and copyable preview/apply repair commands.
|
|
23
|
+
- Emits Status/Takeover V2 and extends takeover with stale-handoff reasons plus
|
|
24
|
+
the current external delivery and exact per-file delta from its predecessor,
|
|
25
|
+
while retaining the one-screen human projection.
|
|
26
|
+
- Emits Assurance Route V2 and Usage Mode Recommendation V2 with project-local
|
|
27
|
+
commands. The published Profile Detection V2, Status/Takeover V1, Assurance
|
|
28
|
+
Route V1, and Usage Mode Recommendation V1 contracts remain unchanged for
|
|
29
|
+
existing consumers.
|
|
30
|
+
- Adds action-specific `project assign --help` and makes `quick-metrics`
|
|
31
|
+
local-by-default without requiring `--local`; the old flag remains an
|
|
32
|
+
accepted compatibility no-op.
|
|
33
|
+
- Requires disjoint controller and target workspaces, binds only an exact Git
|
|
34
|
+
worktree root, brackets DeliveryPacket verification with stable target
|
|
35
|
+
snapshots, and rejects base-identity drift plus both sides of any
|
|
36
|
+
cross-boundary rename.
|
|
37
|
+
- Reserves Event V3 for verified `import-delivery` intake so legacy raw request
|
|
38
|
+
actions cannot inject external-delivery truth without checking target bytes.
|
|
39
|
+
- Revalidates Git-visible changed paths between profile detection and apply;
|
|
40
|
+
Git-status failure and rename-source coverage now fail closed instead of
|
|
41
|
+
appearing as a high-confidence empty candidate.
|
|
42
|
+
- Keeps target writes and every Git, release, deployment, production, UX, and
|
|
43
|
+
business authorization flag false.
|
|
44
|
+
|
|
45
|
+
## 0.18.3
|
|
46
|
+
|
|
47
|
+
- Adds `quick-verify --stdin-file <file>` so a local or remote verification
|
|
48
|
+
script can be copied into the receipt store, hash-bound, and supplied as
|
|
49
|
+
exact stdin without embedding its bytes in argv.
|
|
50
|
+
- Returns bounded opening and closing Quick output lines while preserving the
|
|
51
|
+
complete stdout/stderr artifacts for later inspection.
|
|
52
|
+
- Stops emitting the fixed `quick_ignored_artifact_unbound` noise on new Quick
|
|
53
|
+
receipts and omits it from attestation issue output for historical receipts.
|
|
54
|
+
- Adds `quick-verify --attest` as one high-level command while preserving the
|
|
55
|
+
Quick receipt and attestation as separate evidence objects.
|
|
56
|
+
- Adds action-specific `quick-metrics --help`; aggregate counts are now the
|
|
57
|
+
default output and receipt paths require `--verbose`.
|
|
58
|
+
- Adds atomic `project reject-and-return` for a current failed checkpoint. It
|
|
59
|
+
preserves the failed attempt, records reviewer evidence, opens an assigned
|
|
60
|
+
rework attempt, and keeps every authority flag false.
|
|
61
|
+
- Introduces `OwlCodaRunKitTeamProjectEventV2` for the new rework event instead
|
|
62
|
+
of changing the existing Event V1 contract in place.
|
|
63
|
+
- Packages the Contract v0.1 and v0.2 references beside the bundled Codex Skill
|
|
64
|
+
so its relative links work before and after managed Skill installation.
|
|
65
|
+
|
|
3
66
|
## 0.18.2
|
|
4
67
|
|
|
5
68
|
- Makes `project checkpoint --help` action-specific and returns a complete,
|
package/README.md
CHANGED
|
@@ -15,6 +15,28 @@ RunKit 0.18.2 is a focused dogfood patch for clearer CLI help, actionable
|
|
|
15
15
|
checkpoint and canonical-path errors, bounded Quick output summaries, typed
|
|
16
16
|
registry diagnostics, and explicit profile normalization previews.
|
|
17
17
|
|
|
18
|
+
RunKit 0.18.3 turns the next Sierac recovery dogfood findings into a smaller
|
|
19
|
+
Quick surface: hash-bound stdin scripts, bounded opening and closing summaries,
|
|
20
|
+
actionable-only receipt issues, optional one-command attestation, and concise
|
|
21
|
+
metrics by default. It also adds one atomic failed-work return path and makes
|
|
22
|
+
the bundled Skill's contract references self-contained.
|
|
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
|
+
|
|
18
40
|
The 0.18 Project Driver is a bounded surface for new projects and controlled
|
|
19
41
|
dogfood. Its product name does not claim to be a general long-running,
|
|
20
42
|
multi-phase, or enterprise control plane. Version 0.18 adds one bounded
|
|
@@ -29,10 +51,11 @@ separate authority boundaries.
|
|
|
29
51
|
## Install
|
|
30
52
|
|
|
31
53
|
```bash
|
|
32
|
-
npm install --save-exact owlrunkit@0.18.
|
|
54
|
+
npm install --save-exact owlrunkit@0.18.4
|
|
33
55
|
```
|
|
34
56
|
|
|
35
|
-
|
|
57
|
+
Use `npx --no-install owlrunkit` for project commands. The package bootstrap
|
|
58
|
+
uses the project's exact locally bound CLI for
|
|
36
59
|
ordinary project commands. The installed current package remains responsible
|
|
37
60
|
for bootstrap operations such as initialization, adoption, and Core successor
|
|
38
61
|
migration, so a global CLI does not reinterpret an older project's control
|
|
@@ -42,11 +65,11 @@ the current bootstrap Core or its embedded prior-release identity catalog, and
|
|
|
42
65
|
the project Config must independently bind the same Core.
|
|
43
66
|
|
|
44
67
|
```bash
|
|
45
|
-
owlrunkit --version
|
|
46
|
-
owlrunkit init --workspace /absolute/path/to/project
|
|
47
|
-
owlrunkit doctor --workspace /absolute/path/to/project
|
|
48
|
-
owlrunkit mode recommend --workspace /absolute/path/to/project
|
|
49
|
-
owlrunkit mode status --workspace /absolute/path/to/project
|
|
68
|
+
npx --no-install owlrunkit --version
|
|
69
|
+
npx --no-install owlrunkit init --workspace /absolute/path/to/project
|
|
70
|
+
npx --no-install owlrunkit doctor --workspace /absolute/path/to/project
|
|
71
|
+
npx --no-install owlrunkit mode recommend --workspace /absolute/path/to/project
|
|
72
|
+
npx --no-install owlrunkit mode status --workspace /absolute/path/to/project
|
|
50
73
|
```
|
|
51
74
|
|
|
52
75
|
`mode recommend` is read-only and defaults to human output; add `--json` for a
|
|
@@ -58,56 +81,64 @@ grant Git, release, deployment, production, or business authority.
|
|
|
58
81
|
|
|
59
82
|
RunKit 0.18 keeps the project alive independently of any one Agent or chat.
|
|
60
83
|
Initialize a definition, then use typed direct commands for the normal
|
|
61
|
-
assignment, checkpoint, handoff, decision, integration,
|
|
62
|
-
flow:
|
|
84
|
+
assignment, checkpoint, handoff, failed-work return, decision, integration,
|
|
85
|
+
status, and takeover flow:
|
|
63
86
|
|
|
64
87
|
```bash
|
|
65
88
|
cp node_modules/owlrunkit/scripts/runkit-contract/templates/team-project-definition.json ./project-definition.json
|
|
66
|
-
owlrunkit project init --workspace . \
|
|
89
|
+
npx --no-install owlrunkit project init --workspace . \
|
|
67
90
|
--definition ./project-definition.json
|
|
68
|
-
owlrunkit project assign --workspace . --assignment-id assign-1 \
|
|
91
|
+
npx --no-install owlrunkit project assign --workspace . --assignment-id assign-1 \
|
|
69
92
|
--at 2026-08-09T00:00:00.000Z --work-item work-item-1 --agent agent-runtime
|
|
70
|
-
owlrunkit project checkpoint --workspace . --checkpoint-id checkpoint-1 \
|
|
93
|
+
npx --no-install owlrunkit project checkpoint --workspace . --checkpoint-id checkpoint-1 \
|
|
71
94
|
--at 2026-08-09T00:05:00.000Z --assignment-id assign-1 --work-item work-item-1 \
|
|
72
95
|
--state active --summary 'Implement the bounded work item' \
|
|
73
96
|
--completed-units 0 \
|
|
74
97
|
--next 'Run the focused verification'
|
|
75
|
-
owlrunkit project handoff --workspace . --handoff-id handoff-1 \
|
|
98
|
+
npx --no-install owlrunkit project handoff --workspace . --handoff-id handoff-1 \
|
|
76
99
|
--at 2026-08-09T00:10:00.000Z --assignment-id assign-1 --work-item work-item-1 \
|
|
77
100
|
--from-agent agent-runtime --to-agent agent-successor \
|
|
78
101
|
--summary 'Source work is ready for continuation' --next 'Run verification' \
|
|
79
102
|
--evidence evidence/source.txt
|
|
80
|
-
|
|
103
|
+
# If review instead rejects a failed checkpoint, preserve it and open rework
|
|
104
|
+
# without first mutating the WorkItem back to active:
|
|
105
|
+
npx --no-install owlrunkit project reject-and-return --workspace . --rework-id review-1 \
|
|
106
|
+
--at 2026-08-09T00:10:30.000Z --work-item work-item-1 \
|
|
107
|
+
--reviewer-agent agent-control --to-agent agent-runtime \
|
|
108
|
+
--reason 'The candidate violates its versioned contract' \
|
|
109
|
+
--next 'Repair the contract and rerun the focused check' \
|
|
110
|
+
--evidence evidence/rejected-review.txt
|
|
111
|
+
npx --no-install owlrunkit project assign --workspace . --assignment-id assign-2 \
|
|
81
112
|
--at 2026-08-09T00:11:00.000Z --work-item work-item-1 \
|
|
82
113
|
--agent agent-successor --supersedes assign-1
|
|
83
|
-
owlrunkit project decision --workspace . --open --decision-id decision-1 \
|
|
114
|
+
npx --no-install owlrunkit project decision --workspace . --open --decision-id decision-1 \
|
|
84
115
|
--at 2026-08-09T00:12:00.000Z --title 'Choose the accepted source path' \
|
|
85
116
|
--question 'Which source path should continue?' --owner-agent agent-successor \
|
|
86
117
|
--blocking-work-item work-item-1 --option accepted --option rejected
|
|
87
|
-
owlrunkit project decision --workspace . --resolve --decision-id decision-1 \
|
|
118
|
+
npx --no-install owlrunkit project decision --workspace . --resolve --decision-id decision-1 \
|
|
88
119
|
--at 2026-08-09T00:13:00.000Z --resolution 'Use the accepted source path' \
|
|
89
120
|
--rationale 'It preserves the project contract' --evidence evidence/decision.txt
|
|
90
|
-
owlrunkit project checkpoint --workspace . --checkpoint-id checkpoint-2 \
|
|
121
|
+
npx --no-install owlrunkit project checkpoint --workspace . --checkpoint-id checkpoint-2 \
|
|
91
122
|
--at 2026-08-09T00:14:00.000Z --assignment-id assign-2 \
|
|
92
123
|
--work-item work-item-1 --state completed --completed-units 1 \
|
|
93
124
|
--summary 'Accepted work is complete' --evidence evidence/completion.txt
|
|
94
|
-
owlrunkit project verification --workspace . --defer \
|
|
125
|
+
npx --no-install owlrunkit project verification --workspace . --defer \
|
|
95
126
|
--verification-id release-batch --at 2026-08-09T00:14:30.000Z \
|
|
96
127
|
--work-item work-item-1 --owner-agent agent-successor \
|
|
97
128
|
--check typecheck --check full-suite --check package-smoke \
|
|
98
129
|
--reason 'Run broad checks once after the related changes settle' \
|
|
99
130
|
--due-gate integration-ready
|
|
100
131
|
# After those checks run once against the frozen candidate:
|
|
101
|
-
owlrunkit project verification --workspace . --close \
|
|
132
|
+
npx --no-install owlrunkit project verification --workspace . --close \
|
|
102
133
|
--verification-id release-batch --at 2026-08-09T00:14:45.000Z \
|
|
103
134
|
--disposition verified --summary 'The batched release checks passed' \
|
|
104
135
|
--evidence evidence/release-batch.txt
|
|
105
|
-
owlrunkit project integrate --workspace . --gate integration-ready \
|
|
136
|
+
npx --no-install owlrunkit project integrate --workspace . --gate integration-ready \
|
|
106
137
|
--at 2026-08-09T00:15:00.000Z --summary 'Integration gate evidence is complete' \
|
|
107
138
|
--evidence evidence/integration.txt
|
|
108
|
-
owlrunkit project status --workspace .
|
|
109
|
-
owlrunkit project takeover --workspace . --agent agent-successor
|
|
110
|
-
owlrunkit project successor --workspace . --transition-id project-next-001 \
|
|
139
|
+
npx --no-install owlrunkit project status --workspace .
|
|
140
|
+
npx --no-install owlrunkit project takeover --workspace . --agent agent-successor
|
|
141
|
+
npx --no-install owlrunkit project successor --workspace . --transition-id project-next-001 \
|
|
111
142
|
--at 2026-08-09T00:16:00.000Z --definition ./next-project-definition.json \
|
|
112
143
|
--reason 'Archive the completed project and begin the next bounded project'
|
|
113
144
|
```
|
|
@@ -121,6 +152,53 @@ by itself. The assurance lane follows actual writer and authority count,
|
|
|
121
152
|
rollback certainty, permissions, security, funds, irreversibility, schema/data
|
|
122
153
|
migration, and explicit acceptance contracts—not environment labels alone.
|
|
123
154
|
|
|
155
|
+
`project reject-and-return` applies only to the current explicit failed
|
|
156
|
+
checkpoint. One Event V2 atomically binds that failure, its prior assignment,
|
|
157
|
+
the reviewer, evidence, target Agent, and new assignment. The failed checkpoint
|
|
158
|
+
remains immutable; status and takeover expose the rework relation and attempt.
|
|
159
|
+
The command is not a Git rejection, merge action, or release authorization.
|
|
160
|
+
|
|
161
|
+
### Import a frozen external source lane
|
|
162
|
+
|
|
163
|
+
Capture the target before delegating source work, then import the producer's
|
|
164
|
+
DeliveryPacket after it freezes the candidate:
|
|
165
|
+
|
|
166
|
+
```bash
|
|
167
|
+
npx --no-install owlrunkit project target-snapshot --workspace . \
|
|
168
|
+
--snapshot-id w2-5-entry --at 2026-08-12T08:00:00.000Z \
|
|
169
|
+
--work-item work-item-1 --target-workspace /absolute/frozen/worktree --apply
|
|
170
|
+
|
|
171
|
+
npx --no-install owlrunkit project import-delivery --workspace . \
|
|
172
|
+
--delivery-id w2-5-luna --at 2026-08-12T09:00:00.000Z \
|
|
173
|
+
--assignment-id assign-1 --work-item work-item-1 --producer luna-max \
|
|
174
|
+
--target-workspace /absolute/frozen/worktree \
|
|
175
|
+
--packet /absolute/delivery-packet.json \
|
|
176
|
+
--entry-snapshot w2-5-entry --apply
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
Both commands support `--dry-run` instead of `--apply`. Artifacts are written
|
|
180
|
+
only under the controller's `.owlcoda/runkit/project`; the target is read-only.
|
|
181
|
+
Controller and target must be disjoint real directories, and the target must
|
|
182
|
+
be the exact Git worktree root rather than a nested repository directory.
|
|
183
|
+
The imported Event V3 records `deliveryCandidateFingerprint`,
|
|
184
|
+
`workspaceSnapshotFingerprint`, target HEAD, candidate file hashes, overlay
|
|
185
|
+
classification, and explicit `proven` / `notProven` statements. Omitting
|
|
186
|
+
`--entry-snapshot` verifies the current candidate bytes but records
|
|
187
|
+
`overlayStatus=candidate_only`.
|
|
188
|
+
|
|
189
|
+
The cache classification covers cache paths visible to Git status, such as
|
|
190
|
+
`.vitest/**`, `.vite/**`, `.pytest_cache/**`, and `__pycache__/**`. It does not
|
|
191
|
+
claim to bind ignored paths (`ignoredPathsBound=false`) and does not yet create
|
|
192
|
+
an isolated dependency consumer or temporary test cache. Lockfile or
|
|
193
|
+
`node_modules` changes outside the packet are disclosed as dependency
|
|
194
|
+
environment changes. Any other entry-to-candidate delta, or any packet path
|
|
195
|
+
outside the WorkItem's allowed ownership, blocks import before project truth is
|
|
196
|
+
written. This includes the deleted source side of a Git rename; changing target
|
|
197
|
+
HEAD, tracked tree, or submodule identity also blocks overlay attestation.
|
|
198
|
+
Event V3 can be created only by this verified intake path, not a legacy raw
|
|
199
|
+
project request. No imported delivery grants Git, release, deployment,
|
|
200
|
+
production, UX, or business acceptance.
|
|
201
|
+
|
|
124
202
|
`project verification --defer` is a small deferred-verification ledger, not a
|
|
125
203
|
test scheduler. It records stable check IDs, why they were intentionally not
|
|
126
204
|
run yet, the responsible Agent, and the integration gate before which they
|
|
@@ -158,6 +236,11 @@ WorkItem. An assignment may bind an exact RunKit execution and lease; in that
|
|
|
158
236
|
case, the WorkItem cannot complete until the execution has a trusted accepted
|
|
159
237
|
closeout and its lease is released.
|
|
160
238
|
|
|
239
|
+
`project takeover` adds the current candidate, its exact added/changed/removed
|
|
240
|
+
path delta from the previous imported delivery, and handoffs that are stale
|
|
241
|
+
because later project truth superseded them. These are read-only projections;
|
|
242
|
+
they do not reopen work or grant writer authority.
|
|
243
|
+
|
|
161
244
|
The Agent-facing natural actions are stable: split and assign work, report
|
|
162
245
|
status, open or resolve a decision, hand off, take over, capture evidence, and
|
|
163
246
|
verify. The CLI is the durable implementation surface; users can keep speaking
|
|
@@ -169,11 +252,11 @@ Preview deterministic, project-local commands, or atomically adopt only
|
|
|
169
252
|
high-confidence candidates:
|
|
170
253
|
|
|
171
254
|
```bash
|
|
172
|
-
owlrunkit profiles detect --workspace . --dry-run
|
|
173
|
-
owlrunkit profiles detect --workspace . --apply
|
|
174
|
-
owlrunkit profiles reconcile --workspace . --dry-run
|
|
175
|
-
owlrunkit profiles reconcile --workspace . --apply
|
|
176
|
-
owlrunkit profiles validate --workspace .
|
|
255
|
+
npx --no-install owlrunkit profiles detect --workspace . --dry-run
|
|
256
|
+
npx --no-install owlrunkit profiles detect --workspace . --apply
|
|
257
|
+
npx --no-install owlrunkit profiles reconcile --workspace . --dry-run
|
|
258
|
+
npx --no-install owlrunkit profiles reconcile --workspace . --apply
|
|
259
|
+
npx --no-install owlrunkit profiles validate --workspace .
|
|
177
260
|
```
|
|
178
261
|
|
|
179
262
|
`profiles detect --apply` is create-only. `profiles reconcile` previews or
|
|
@@ -185,12 +268,21 @@ launchers. A PATH-only package manager remains review-required. A dry-run that
|
|
|
185
268
|
only canonicalizes JSON formatting reports `normalizationOnly: true` instead of
|
|
186
269
|
showing unexplained hash drift with an empty update list.
|
|
187
270
|
|
|
271
|
+
The dry-run is the V2 detection contract. It reports `profiles_insufficient`
|
|
272
|
+
instead of `profiles_detected` when Git-visible source paths are uncovered or
|
|
273
|
+
no actionable primary exists. `changedPaths`, `uncoveredSourcePaths`,
|
|
274
|
+
`primaryBlockers`, `minimalSuggestedProfile`, and `repairCommands` explain the
|
|
275
|
+
gap using only real project surfaces; absent conventional `src/` or `tests/`
|
|
276
|
+
directories are never invented as blockers. Detection records both sides of a
|
|
277
|
+
Git rename, reports Git-status failure, and rechecks the exact changed-path set
|
|
278
|
+
before apply so a stale dry-run cannot write incomplete coverage.
|
|
279
|
+
|
|
188
280
|
## Choose auto, off, light, managed, or formal
|
|
189
281
|
|
|
190
282
|
Start with the human-first read-only recommendation:
|
|
191
283
|
|
|
192
284
|
```bash
|
|
193
|
-
owlrunkit mode recommend --workspace .
|
|
285
|
+
npx --no-install owlrunkit mode recommend --workspace .
|
|
194
286
|
```
|
|
195
287
|
|
|
196
288
|
- **off / No RunKit** uses neither continuity nor assurance for analysis,
|
|
@@ -211,7 +303,7 @@ recommendation; escalation is not sticky.
|
|
|
211
303
|
Machine integrations may route an explicit risk-facts document directly:
|
|
212
304
|
|
|
213
305
|
```bash
|
|
214
|
-
owlrunkit assurance route --workspace . \
|
|
306
|
+
npx --no-install owlrunkit assurance route --workspace . \
|
|
215
307
|
--request ./scripts/runkit-contract/templates/assurance-request.json
|
|
216
308
|
```
|
|
217
309
|
|
|
@@ -225,13 +317,28 @@ grant Git, release, publish, deploy, or business authority.
|
|
|
225
317
|
Run Quick with:
|
|
226
318
|
|
|
227
319
|
```bash
|
|
228
|
-
owlrunkit quick-verify --workspace . -- npm test
|
|
320
|
+
npx --no-install owlrunkit quick-verify --workspace . -- npm test
|
|
321
|
+
npx --no-install owlrunkit quick-verify --workspace . --stdin-file ./remote-check.sh --attest \
|
|
322
|
+
-- ssh test-host /bin/sh
|
|
323
|
+
npx --no-install owlrunkit quick-metrics --workspace .
|
|
324
|
+
npx --no-install owlrunkit quick-metrics --workspace . --verbose
|
|
229
325
|
```
|
|
230
326
|
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
327
|
+
`--stdin-file` accepts a regular non-symlink file up to 1 MiB, copies its exact
|
|
328
|
+
bytes into the receipt store, and binds its path, size, and SHA-256 in a V2
|
|
329
|
+
Quick receipt before supplying those stored bytes as stdin. This avoids putting
|
|
330
|
+
large scripts into SSH argv or receipt JSON. The top-level `outputSummary`
|
|
331
|
+
includes bounded opening and closing stdout/stderr lines, so both rollback and
|
|
332
|
+
restore phases remain visible while the complete artifacts stay receipt-bound.
|
|
333
|
+
`--attest` runs the existing attestation immediately and returns its independent
|
|
334
|
+
object alongside the Quick result; it does not promote Quick to Formal.
|
|
335
|
+
|
|
336
|
+
`quick-metrics` is local-only and returns aggregate counts. Add `--verbose`
|
|
337
|
+
when the individual receipt paths are needed. The former `--local` flag remains
|
|
338
|
+
accepted as a compatibility no-op. New successful receipts no longer carry
|
|
339
|
+
the fixed `quick_ignored_artifact_unbound` issue; historical receipts remain
|
|
340
|
+
strictly readable without surfacing that non-actionable code as an attestation
|
|
341
|
+
issue.
|
|
235
342
|
|
|
236
343
|
## Formal Delivery in three commands
|
|
237
344
|
|
|
@@ -240,13 +347,13 @@ Given a Goal Contract and the paths this work item may write, the happy path is:
|
|
|
240
347
|
```bash
|
|
241
348
|
NODE_BIN="$(node -p 'process.execPath')"
|
|
242
349
|
|
|
243
|
-
owlrunkit formal start --workspace . --run-id release-001 \
|
|
350
|
+
npx --no-install owlrunkit formal start --workspace . --run-id release-001 \
|
|
244
351
|
--goal .owlcoda/runkit/goal.json --owned-path 'src/**'
|
|
245
352
|
|
|
246
|
-
owlrunkit formal check --workspace . --run-id release-001 \
|
|
353
|
+
npx --no-install owlrunkit formal check --workspace . --run-id release-001 \
|
|
247
354
|
--check-id source-syntax -- "$NODE_BIN" --check src/index.js
|
|
248
355
|
|
|
249
|
-
owlrunkit formal finish --workspace . --run-id release-001 \
|
|
356
|
+
npx --no-install owlrunkit formal finish --workspace . --run-id release-001 \
|
|
250
357
|
--decision accepted
|
|
251
358
|
```
|
|
252
359
|
|
|
@@ -262,7 +369,7 @@ Formal also accepts a real project command through an enforced Verification
|
|
|
262
369
|
Envelope:
|
|
263
370
|
|
|
264
371
|
```bash
|
|
265
|
-
owlrunkit formal check --workspace . --run-id release-001 \
|
|
372
|
+
npx --no-install owlrunkit formal check --workspace . --run-id release-001 \
|
|
266
373
|
--work-item delivery --check-id project-tests \
|
|
267
374
|
--envelope scripts/runkit-contract/templates/verification-envelope.json
|
|
268
375
|
```
|
|
@@ -277,7 +384,7 @@ the policy, the command is not run and no Formal acceptance is possible.
|
|
|
277
384
|
Existing legacy verification may still capture evidence, but it is not silently
|
|
278
385
|
promoted into this Formal path.
|
|
279
386
|
|
|
280
|
-
Use `owlrunkit status --workspace .` for a concise human view of what is ready,
|
|
387
|
+
Use `npx --no-install owlrunkit status --workspace .` for a concise human view of what is ready,
|
|
281
388
|
what has not happened, how many gates remain, and the next allowed action.
|
|
282
389
|
|
|
283
390
|
## Freeze a dirty worktree safely
|
|
@@ -287,11 +394,11 @@ artifact. It binds the baseline, exact owned-path closure, source manifest,
|
|
|
287
394
|
and payload bytes without requiring a Git commit.
|
|
288
395
|
|
|
289
396
|
```bash
|
|
290
|
-
owlrunkit candidate freeze --workspace . --run-id release-001 \
|
|
397
|
+
npx --no-install owlrunkit candidate freeze --workspace . --run-id release-001 \
|
|
291
398
|
--from-lease delivery --candidate-id rc-001
|
|
292
|
-
owlrunkit candidate verify --workspace . \
|
|
399
|
+
npx --no-install owlrunkit candidate verify --workspace . \
|
|
293
400
|
--candidate .owlcoda/runkit/executions/release-001/source-candidates/rc-001.json
|
|
294
|
-
owlrunkit candidate materialize --workspace . \
|
|
401
|
+
npx --no-install owlrunkit candidate materialize --workspace . \
|
|
295
402
|
--candidate .owlcoda/runkit/executions/release-001/source-candidates/rc-001.json \
|
|
296
403
|
--target-workspace /absolute/clean/materialization
|
|
297
404
|
```
|
|
@@ -310,10 +417,10 @@ Register every coverage root once. Later discovery and process-wide migration
|
|
|
310
417
|
commands use the persistent registry automatically:
|
|
311
418
|
|
|
312
419
|
```bash
|
|
313
|
-
owlrunkit fleet register-root --fleet-root /absolute/projects
|
|
314
|
-
owlrunkit fleet register-root --fleet-root /absolute/other-projects
|
|
315
|
-
owlrunkit fleet inspect-registry
|
|
316
|
-
owlrunkit fleet discover
|
|
420
|
+
npx --no-install owlrunkit fleet register-root --fleet-root /absolute/projects
|
|
421
|
+
npx --no-install owlrunkit fleet register-root --fleet-root /absolute/other-projects
|
|
422
|
+
npx --no-install owlrunkit fleet inspect-registry
|
|
423
|
+
npx --no-install owlrunkit fleet discover
|
|
317
424
|
```
|
|
318
425
|
|
|
319
426
|
The registry lives under the user-owned OwlCoda home. Initial discovery stops
|
|
@@ -338,10 +445,10 @@ Core successor separates an immutable candidate and fleet-wide plan from the
|
|
|
338
445
|
Owner-authorized migration:
|
|
339
446
|
|
|
340
447
|
```bash
|
|
341
|
-
owlrunkit core-successor plan --workspace . --plan-id core-016 \
|
|
448
|
+
npx --no-install owlrunkit core-successor plan --workspace . --plan-id core-016 \
|
|
342
449
|
--run-id release-001 --from-lease delivery --candidate-id rc-001
|
|
343
450
|
|
|
344
|
-
owlrunkit core-successor apply --workspace . \
|
|
451
|
+
npx --no-install owlrunkit core-successor apply --workspace . \
|
|
345
452
|
--plan .owlcoda/runkit/core-successors/core-016/plan.json \
|
|
346
453
|
--owner-authority ./owner-core-successor-authority.json \
|
|
347
454
|
--receipt-id core-016-apply
|
|
@@ -361,19 +468,19 @@ Build and verification stay separate from the later permission to change a
|
|
|
361
468
|
machine:
|
|
362
469
|
|
|
363
470
|
```bash
|
|
364
|
-
owlrunkit deployment prepare --workspace . --run-id build-001 \
|
|
471
|
+
npx --no-install owlrunkit deployment prepare --workspace . --run-id build-001 \
|
|
365
472
|
--artifact dist/app.tgz --media-type application/gzip \
|
|
366
473
|
--owner-decision ./owner-deployment-decision.json \
|
|
367
474
|
--output .owlcoda/runkit/deployments/app-prepare.json
|
|
368
475
|
|
|
369
|
-
owlrunkit deployment execute --workspace . \
|
|
476
|
+
npx --no-install owlrunkit deployment execute --workspace . \
|
|
370
477
|
--prepare .owlcoda/runkit/deployments/app-prepare.json \
|
|
371
478
|
--owner-decision ./owner-deployment-decision.json \
|
|
372
479
|
--owner-authority ./deployment-owner-authority.json \
|
|
373
480
|
--manifest ./remote-deployment-manifest.json
|
|
374
481
|
|
|
375
482
|
# Resume the automatic child after an interrupted or indeterminate stage.
|
|
376
|
-
owlrunkit deployment execute --workspace . --resume \
|
|
483
|
+
npx --no-install owlrunkit deployment execute --workspace . --resume \
|
|
377
484
|
--prepare .owlcoda/runkit/deployments/app-prepare.json \
|
|
378
485
|
--owner-decision ./owner-deployment-decision.json \
|
|
379
486
|
--owner-authority ./deployment-owner-authority.json \
|
package/docs/architecture/OWLCODA_RUNKIT_0184_EXTERNAL_DELIVERY_INTAKE_PRODUCT_DECISION_20260812.md
ADDED
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
# OwlRunKit 0.18.4 External Delivery Intake Product Decision
|
|
2
|
+
|
|
3
|
+
> Status: implemented source candidate; unpublished, uninstalled, unadopted
|
|
4
|
+
>
|
|
5
|
+
> Date: 2026-08-12, Asia/Shanghai
|
|
6
|
+
>
|
|
7
|
+
> Scope: controller/target separation, external DeliveryPacket intake,
|
|
8
|
+
> dirty-overlay classification, actionable profile detection, takeover truth
|
|
9
|
+
> delta, and project-local command identity
|
|
10
|
+
|
|
11
|
+
## Decision
|
|
12
|
+
|
|
13
|
+
RunKit remains a flight recorder and stage controller. Its default posture is
|
|
14
|
+
light: ordinary analysis and small reversible source work do not require a
|
|
15
|
+
RunKit execution. Quick binds one important verification command. Project
|
|
16
|
+
Driver preserves continuity across sessions and writers. Formal remains
|
|
17
|
+
reserved for facts that actually require stronger assurance, such as multiple
|
|
18
|
+
writers or authorities, permissions, security, funds, irreversible change,
|
|
19
|
+
uncertain rollback, schema/data migration, or an explicit Formal acceptance
|
|
20
|
+
contract.
|
|
21
|
+
|
|
22
|
+
Version 0.18.4 addresses one narrower gap: a Project Driver in a controller
|
|
23
|
+
worktree must be able to record a candidate produced in a different frozen
|
|
24
|
+
worktree without installing dependencies, writing `.owlcoda`, or changing
|
|
25
|
+
package metadata in the target. Three adjacent onboarding and recovery defects
|
|
26
|
+
are included because they otherwise leave this path non-actionable: false-success
|
|
27
|
+
profile detection, missing stale/current candidate truth in takeover, and
|
|
28
|
+
inconsistent CLI help/local metrics behavior.
|
|
29
|
+
|
|
30
|
+
## Accepted dogfood facts
|
|
31
|
+
|
|
32
|
+
These facts come from the Sierac MES, OwlChen, OwlFootball, Luna, and Cursor
|
|
33
|
+
dogfood reports accepted as product input. This candidate does not re-run those
|
|
34
|
+
foreign-project workflows.
|
|
35
|
+
|
|
36
|
+
- Project Driver is a net benefit for long threads, cross-session takeover,
|
|
37
|
+
multi-stage test deployment, and explicit Gate ownership.
|
|
38
|
+
- Quick is useful when it binds a frozen candidate and one decision-changing
|
|
39
|
+
command. It is not the mechanism that discovers most source bugs.
|
|
40
|
+
- Ordinary single-writer source micro-batches become slower when every command
|
|
41
|
+
is wrapped in RunKit ceremony.
|
|
42
|
+
- A controller worktree may have a valid RunKit project while a frozen source
|
|
43
|
+
worktree cannot accept `.owlcoda`, `package.json`, a lockfile, or
|
|
44
|
+
`node_modules` changes.
|
|
45
|
+
- External Luna and Cursor deliveries currently require manual path/hash
|
|
46
|
+
aggregation before their candidate identity appears in Project Driver.
|
|
47
|
+
- `npx --no-install owlrunkit` can use the exact project package while a bare
|
|
48
|
+
`owlrunkit` may resolve an older global binary. An old binary cannot safely
|
|
49
|
+
predict or trust a future Core identity.
|
|
50
|
+
- Visible test-tool cache files can change a dirty-worktree fingerprint even
|
|
51
|
+
when the intended source candidate did not change.
|
|
52
|
+
- Profile detection can look successful while its candidates do not cover the
|
|
53
|
+
Git-visible source candidate or provide an actionable primary repair.
|
|
54
|
+
- A blank-session takeover needs to distinguish stale handoffs and show the
|
|
55
|
+
current external candidate delta instead of presenting historical facts as
|
|
56
|
+
competing next actions.
|
|
57
|
+
- Source/test success is not UX completion, deployment activation, production
|
|
58
|
+
truth, or business effectiveness.
|
|
59
|
+
|
|
60
|
+
## Long-term product decision
|
|
61
|
+
|
|
62
|
+
Continuity and assurance remain independent dimensions. External source lanes
|
|
63
|
+
do not become Formal merely because they use another worktree or Agent.
|
|
64
|
+
|
|
65
|
+
| Situation | Continuity | Assurance |
|
|
66
|
+
| --- | --- | --- |
|
|
67
|
+
| Analysis, documentation discussion, disposable exploration | none | none |
|
|
68
|
+
| One low-risk frozen candidate and one exact command | none | quick |
|
|
69
|
+
| Cross-session or multi-stage ordinary reversible source work | project_driver | none or quick |
|
|
70
|
+
| Mandatory high-risk fact or explicit Formal acceptance | as needed | formal |
|
|
71
|
+
|
|
72
|
+
The user-facing presets remain `off`, `light`, `managed`, `formal`, and `auto`.
|
|
73
|
+
They are preferences, not authorization, and cannot weaken a mandatory Formal
|
|
74
|
+
route.
|
|
75
|
+
|
|
76
|
+
## Released capability before this candidate
|
|
77
|
+
|
|
78
|
+
The public npm release remains `owlrunkit@0.18.3`. It already provides:
|
|
79
|
+
|
|
80
|
+
- independent continuity/assurance mode recommendation;
|
|
81
|
+
- one-command `quick-verify --attest`;
|
|
82
|
+
- hash-bound `--stdin-file` input;
|
|
83
|
+
- bounded head-and-tail Quick output;
|
|
84
|
+
- actionable Quick issues and aggregate-by-default metrics;
|
|
85
|
+
- atomic failed-work `reject-and-return`;
|
|
86
|
+
- self-contained packaged Skill contract references.
|
|
87
|
+
|
|
88
|
+
Those features are not new 0.18.4 claims.
|
|
89
|
+
|
|
90
|
+
## 0.18.4 candidate implementation
|
|
91
|
+
|
|
92
|
+
### Controller-owned entry snapshot
|
|
93
|
+
|
|
94
|
+
`project target-snapshot --dry-run|--apply` reads a target Git worktree twice
|
|
95
|
+
and binds:
|
|
96
|
+
|
|
97
|
+
- canonical target workspace reference;
|
|
98
|
+
- repository identity and target HEAD;
|
|
99
|
+
- tracked tree, submodules, dependency lockfiles, and visible dirty overlay;
|
|
100
|
+
- the WorkItem's allowed path boundary;
|
|
101
|
+
- one full workspace snapshot fingerprint.
|
|
102
|
+
|
|
103
|
+
Only the controller's `.owlcoda/runkit/project/target-snapshots` path may be
|
|
104
|
+
written. Controller and target must be disjoint real directories, and target
|
|
105
|
+
must resolve to the exact Git worktree root. The target worktree is read-only.
|
|
106
|
+
|
|
107
|
+
### External DeliveryPacket import
|
|
108
|
+
|
|
109
|
+
`project import-delivery --dry-run|--apply` verifies the packet's exact
|
|
110
|
+
whole-file hashes against the target and records append-only Event V3 with:
|
|
111
|
+
|
|
112
|
+
- `deliveryCandidateFingerprint` for the packet file set;
|
|
113
|
+
- `workspaceSnapshotFingerprint` for the complete target snapshot;
|
|
114
|
+
- target HEAD, producer, WorkItem, and current assignment;
|
|
115
|
+
- entry snapshot reference and hash when available;
|
|
116
|
+
- candidate paths and entry-to-candidate changed paths;
|
|
117
|
+
- tool-cache, dependency-environment, unchanged-packet, and out-of-scope
|
|
118
|
+
classifications;
|
|
119
|
+
- explicit `proven` and `notProven` statements;
|
|
120
|
+
- `targetWritePerformed=false` and `authorizationGranted=false`.
|
|
121
|
+
|
|
122
|
+
If no entry snapshot exists, the packet can still prove the current candidate
|
|
123
|
+
bytes. The event is then `candidate_only`; it cannot claim that the historical
|
|
124
|
+
entry-to-candidate delta was observed. Any packet path outside WorkItem
|
|
125
|
+
ownership or any unclassified source delta rejects the import before project
|
|
126
|
+
truth is written. Import brackets packet verification with stable workspace
|
|
127
|
+
snapshots, compares HEAD, tracked tree, submodules, and visible dirty overlay,
|
|
128
|
+
and treats both source and destination of a rename as changed paths. Event V3
|
|
129
|
+
is reserved for this verified intake path; legacy raw event requests cannot
|
|
130
|
+
manufacture an external-delivery fact.
|
|
131
|
+
|
|
132
|
+
### Command and Skill identity
|
|
133
|
+
|
|
134
|
+
Installed-project instructions use `npx --no-install owlrunkit`. A process-level
|
|
135
|
+
shared Skill or bare global CLI with an older version is reported as drift, not
|
|
136
|
+
used as authority to reinterpret current project truth. Safe fleet Skill
|
|
137
|
+
replacement remains a separate installation action and is not performed by
|
|
138
|
+
this candidate.
|
|
139
|
+
|
|
140
|
+
### Actionable profile onboarding
|
|
141
|
+
|
|
142
|
+
Public `profiles detect --dry-run` returns Profile Detection V3. V2 remains an
|
|
143
|
+
unchanged compatibility contract for existing consumers; V3 adds actionable
|
|
144
|
+
coverage fields. It reads Git-visible changed paths without writing the
|
|
145
|
+
workspace and reports
|
|
146
|
+
`profiles_insufficient` when source paths remain uncovered or no actionable
|
|
147
|
+
primary exists. The result includes exact uncovered paths, primary blockers, a
|
|
148
|
+
minimal profile using only real project surfaces, and copyable preview/apply
|
|
149
|
+
repair commands. Existing-profile repair continues through atomic
|
|
150
|
+
`profiles reconcile`; absent conventional directories are not blockers.
|
|
151
|
+
Detection and apply bind the same Git-visible changed-path set, including both
|
|
152
|
+
sides of a rename. Status failure or drift blocks apply before configuration is
|
|
153
|
+
written.
|
|
154
|
+
|
|
155
|
+
### Takeover truth delta and CLI consistency
|
|
156
|
+
|
|
157
|
+
`project status` and `project takeover` emit V2 projections while their V1
|
|
158
|
+
exports remain unchanged for existing consumers. Takeover V2 projects handoffs
|
|
159
|
+
made stale by later project facts, the current imported external delivery, and
|
|
160
|
+
an exact added/changed/removed path
|
|
161
|
+
delta from the previous delivery. The human projection remains one-screen.
|
|
162
|
+
`project assign --help` is action-specific, and `quick-metrics` is local by
|
|
163
|
+
definition: `--local` is optional and retained only as a compatibility no-op.
|
|
164
|
+
|
|
165
|
+
Assurance and usage-mode routing follow the same rule: their V1 contracts retain
|
|
166
|
+
the original bare-command machine values, while the CLI uses Assurance Route V2
|
|
167
|
+
and Usage Mode Recommendation V2 with project-local
|
|
168
|
+
`npx --no-install owlrunkit` commands.
|
|
169
|
+
|
|
170
|
+
## Acceptance-level presentation
|
|
171
|
+
|
|
172
|
+
Every imported delivery must keep these layers distinct:
|
|
173
|
+
|
|
174
|
+
1. candidate file identity verified;
|
|
175
|
+
2. entry-to-candidate visible overlay attested, or explicitly not attested;
|
|
176
|
+
3. verification command/test result, if separately run;
|
|
177
|
+
4. UX or independent product acceptance, if separately performed;
|
|
178
|
+
5. deployment/runtime activation, if separately authorized and read back;
|
|
179
|
+
6. production or business effectiveness, if separately accepted.
|
|
180
|
+
|
|
181
|
+
No lower layer promotes a higher one.
|
|
182
|
+
|
|
183
|
+
## Follow-up gaps
|
|
184
|
+
|
|
185
|
+
Ten issue classes remain outside 0.18.4 and need separate contracts:
|
|
186
|
+
|
|
187
|
+
- isolated temporary dependency consumer and test-cache execution;
|
|
188
|
+
- binding ignored paths when a task explicitly needs them;
|
|
189
|
+
- delta-oriented reuse of an older receipt plus a small allowed-path change;
|
|
190
|
+
- external runtime mutation, rollback, final-state, and stage-failure fields;
|
|
191
|
+
- upstream WorkItem invalidation/reopen with downstream waiting propagation;
|
|
192
|
+
- recovery evidence semantics;
|
|
193
|
+
- large-artifact deduplication;
|
|
194
|
+
- atomic onboarding/bootstrap and safer shared-Skill fleet activation;
|
|
195
|
+
- business-first stage summaries and acceptance-level UI projection;
|
|
196
|
+
- efficiency metrics for repeated commands, false blocks, manual intervention,
|
|
197
|
+
handoff wait, and time to acceptable result.
|
|
198
|
+
|
|
199
|
+
## What this candidate cannot claim
|
|
200
|
+
|
|
201
|
+
- It is not published `owlrunkit@0.18.4`.
|
|
202
|
+
- It is not installed, adopted, activated, committed, tagged, or pushed.
|
|
203
|
+
- It does not auto-detect a source lane that was never assigned or imported.
|
|
204
|
+
- It does not prove ignored cache paths; workspace snapshots continue to say
|
|
205
|
+
`ignoredPathsBound=false`.
|
|
206
|
+
- It does not isolate dependencies or automatically reuse prior tests.
|
|
207
|
+
- It does not run tests, create a Quick/Formal execution, modify Git, deploy,
|
|
208
|
+
access production, or grant business authority.
|
|
209
|
+
- It does not move domain contracts or product judgment into OwlCoda.
|