open-research-protocol 0.4.6 → 0.4.8

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.
Files changed (46) hide show
  1. package/README.md +10 -0
  2. package/cli/orp.py +668 -43
  3. package/docs/ORP_REASONING_KERNEL_AGENT_PILOT.md +125 -0
  4. package/docs/ORP_REASONING_KERNEL_AGENT_REPLICATION.md +97 -0
  5. package/docs/ORP_REASONING_KERNEL_CANONICAL_CONTINUATION_PILOT.md +100 -0
  6. package/docs/ORP_REASONING_KERNEL_COMPARISON_PILOT.md +116 -0
  7. package/docs/ORP_REASONING_KERNEL_CONTINUATION_PILOT.md +86 -0
  8. package/docs/ORP_REASONING_KERNEL_EVALUATION_PLAN.md +261 -0
  9. package/docs/ORP_REASONING_KERNEL_EVIDENCE_MATRIX.md +131 -0
  10. package/docs/ORP_REASONING_KERNEL_EVOLUTION.md +123 -0
  11. package/docs/ORP_REASONING_KERNEL_PICKUP_PILOT.md +107 -0
  12. package/docs/ORP_REASONING_KERNEL_TECHNICAL_VALIDATION.md +471 -0
  13. package/docs/ORP_REASONING_KERNEL_V0_1.md +15 -0
  14. package/docs/benchmarks/orp_reasoning_kernel_agent_pilot_v0_1.json +796 -0
  15. package/docs/benchmarks/orp_reasoning_kernel_agent_replication_task_smoke.json +487 -0
  16. package/docs/benchmarks/orp_reasoning_kernel_agent_replication_v0_1.json +1927 -0
  17. package/docs/benchmarks/orp_reasoning_kernel_agent_replication_v0_2.json +10217 -0
  18. package/docs/benchmarks/orp_reasoning_kernel_canonical_continuation_task_smoke.json +174 -0
  19. package/docs/benchmarks/orp_reasoning_kernel_canonical_continuation_v0_1.json +598 -0
  20. package/docs/benchmarks/orp_reasoning_kernel_comparison_v0_1.json +688 -0
  21. package/docs/benchmarks/orp_reasoning_kernel_continuation_task_smoke.json +150 -0
  22. package/docs/benchmarks/orp_reasoning_kernel_continuation_v0_1.json +448 -0
  23. package/docs/benchmarks/orp_reasoning_kernel_pickup_v0_1.json +594 -0
  24. package/docs/benchmarks/orp_reasoning_kernel_v0_1_validation.json +925 -0
  25. package/examples/README.md +2 -0
  26. package/examples/kernel/comparison/comparison-corpus.json +337 -0
  27. package/examples/kernel/comparison/next-task-continuation.json +55 -0
  28. package/examples/kernel/corpus/operations/habanero-routing.checkpoint.kernel.yml +12 -0
  29. package/examples/kernel/corpus/operations/runner-routing.policy.kernel.yml +9 -0
  30. package/examples/kernel/corpus/product/project-home.decision.kernel.yml +11 -0
  31. package/examples/kernel/corpus/research/kernel-handoff.experiment.kernel.yml +16 -0
  32. package/examples/kernel/corpus/research/lane-drift.hypothesis.kernel.yml +11 -0
  33. package/examples/kernel/corpus/software/trace-widget.task.kernel.yml +13 -0
  34. package/examples/kernel/corpus/writing/kernel-launch.result.kernel.yml +12 -0
  35. package/package.json +4 -1
  36. package/scripts/orp-kernel-agent-pilot.py +673 -0
  37. package/scripts/orp-kernel-agent-replication.py +307 -0
  38. package/scripts/orp-kernel-benchmark.py +921 -0
  39. package/scripts/orp-kernel-canonical-continuation.py +381 -0
  40. package/scripts/orp-kernel-ci-check.py +138 -0
  41. package/scripts/orp-kernel-comparison.py +592 -0
  42. package/scripts/orp-kernel-continuation-pilot.py +384 -0
  43. package/scripts/orp-kernel-pickup.py +401 -0
  44. package/spec/v1/kernel-extension.schema.json +96 -0
  45. package/spec/v1/kernel-proposal.schema.json +115 -0
  46. package/spec/v1/kernel.schema.json +2 -1
@@ -0,0 +1,471 @@
1
+ # ORP Reasoning Kernel Technical Validation
2
+
3
+ This document defines the ORP Reasoning Kernel in technical terms, explains
4
+ why ORP implements it this way, and records the initial validation evidence
5
+ for `v0.1`.
6
+
7
+ The supporting benchmark artifact for this document is:
8
+
9
+ - [docs/benchmarks/orp_reasoning_kernel_v0_1_validation.json](/Volumes/Code_2TB/code/orp/docs/benchmarks/orp_reasoning_kernel_v0_1_validation.json)
10
+
11
+ For the honest claim-by-claim evidence status and remaining research gaps, see:
12
+
13
+ - [docs/ORP_REASONING_KERNEL_COMPARISON_PILOT.md](/Volumes/Code_2TB/code/orp/docs/ORP_REASONING_KERNEL_COMPARISON_PILOT.md)
14
+ - [docs/ORP_REASONING_KERNEL_PICKUP_PILOT.md](/Volumes/Code_2TB/code/orp/docs/ORP_REASONING_KERNEL_PICKUP_PILOT.md)
15
+ - [docs/ORP_REASONING_KERNEL_AGENT_PILOT.md](/Volumes/Code_2TB/code/orp/docs/ORP_REASONING_KERNEL_AGENT_PILOT.md)
16
+ - [docs/ORP_REASONING_KERNEL_AGENT_REPLICATION.md](/Volumes/Code_2TB/code/orp/docs/ORP_REASONING_KERNEL_AGENT_REPLICATION.md)
17
+ - [docs/ORP_REASONING_KERNEL_CANONICAL_CONTINUATION_PILOT.md](/Volumes/Code_2TB/code/orp/docs/ORP_REASONING_KERNEL_CANONICAL_CONTINUATION_PILOT.md)
18
+ - [docs/ORP_REASONING_KERNEL_EVOLUTION.md](/Volumes/Code_2TB/code/orp/docs/ORP_REASONING_KERNEL_EVOLUTION.md)
19
+ - [docs/ORP_REASONING_KERNEL_EVIDENCE_MATRIX.md](/Volumes/Code_2TB/code/orp/docs/ORP_REASONING_KERNEL_EVIDENCE_MATRIX.md)
20
+ - [docs/ORP_REASONING_KERNEL_EVALUATION_PLAN.md](/Volumes/Code_2TB/code/orp/docs/ORP_REASONING_KERNEL_EVALUATION_PLAN.md)
21
+
22
+ ## 1. Definition
23
+
24
+ The ORP Reasoning Kernel is the typed artifact grammar and validation layer
25
+ used by ORP to move work from free-form intent into canonical repository
26
+ artifacts.
27
+
28
+ It operates in three roles:
29
+
30
+ 1. Interpreter
31
+ Convert loose natural-language intent into a structured working shape.
32
+ 2. Validator
33
+ Check whether a candidate artifact is complete enough to be trusted and
34
+ promoted.
35
+ 3. Canonizer
36
+ Gate whether the artifact can become repository truth and show its
37
+ validation trace in ORP run output.
38
+
39
+ The kernel is implemented through:
40
+
41
+ - [spec/v1/kernel.schema.json](/Volumes/Code_2TB/code/orp/spec/v1/kernel.schema.json)
42
+ - `orp kernel scaffold`
43
+ - `orp kernel validate`
44
+ - `structure_kernel` gate enforcement in [cli/orp.py](/Volumes/Code_2TB/code/orp/cli/orp.py)
45
+
46
+ ## 2. What Problem It Solves
47
+
48
+ Without a kernel layer, ORP can still execute work, but repository truth tends
49
+ to drift into one of two bad states:
50
+
51
+ 1. Chat soup
52
+ Important meaning lives in prompts and responses instead of canonical
53
+ artifacts.
54
+ 2. Hidden agent structure
55
+ The agent may internally interpret a task well, but another human or agent
56
+ cannot inspect that structure or validate promotion.
57
+
58
+ The kernel addresses that by making promotable artifacts:
59
+
60
+ - typed
61
+ - minimally complete
62
+ - machine-checkable
63
+ - reusable in handoffs
64
+ - visible in run artifacts
65
+
66
+ ## 3. Why This Kernel Instead Of Another Approach
67
+
68
+ ### A. Why not free-form markdown or chat alone?
69
+
70
+ Free-form text is useful for ideation, but it does not reliably answer:
71
+
72
+ - what kind of artifact this is
73
+ - what minimum structure is present or missing
74
+ - what should block promotion
75
+ - what another operator can trust later
76
+
77
+ ORP keeps natural language at the boundary and adds structure at promotion.
78
+
79
+ ### B. Why not require kernel-native syntax for all human input?
80
+
81
+ Because that damages usability and adoption.
82
+
83
+ Humans should be able to think in normal language. ORP should not require
84
+ every prompt to be authored as a rigid schema object before work can happen.
85
+ That is why the kernel is enforced at the artifact and gate layer rather than
86
+ as a hard input parser for every message.
87
+
88
+ ### C. Why typed artifact classes instead of one generic checklist?
89
+
90
+ Because a task, a decision, and a hypothesis fail in different ways.
91
+
92
+ A single universal checklist loses semantic meaning. ORP therefore uses typed
93
+ artifact classes with different required fields:
94
+
95
+ - `task`
96
+ - `decision`
97
+ - `hypothesis`
98
+ - `experiment`
99
+ - `checkpoint`
100
+ - `policy`
101
+ - `result`
102
+
103
+ This is enough structure to be useful without forcing a heavyweight ontology.
104
+
105
+ ### D. Why not a domain-specific kernel for just software or just research?
106
+
107
+ Because ORP is meant to govern many kinds of work, not one domain.
108
+
109
+ The chosen artifact classes map across:
110
+
111
+ - software delivery
112
+ - research
113
+ - product design
114
+ - operations and reliability
115
+ - writing and knowledge work
116
+ - policy and governance work
117
+
118
+ ### E. Why not a hidden agent-only kernel?
119
+
120
+ Because invisible structure cannot be audited.
121
+
122
+ If the agent interprets a request privately but the repository never records
123
+ that shape, then the kernel is not stabilizing truth. ORP instead writes
124
+ kernel validation into `RUN.json` and lets artifacts be validated directly
125
+ from the CLI.
126
+
127
+ ### F. Why not a full ontology before shipping anything?
128
+
129
+ Because `v0.1` is meant to be operational, not metaphysical.
130
+
131
+ The current kernel is intentionally minimal:
132
+
133
+ - a small number of classes
134
+ - a small number of required fields
135
+ - explicit hard vs soft gate behavior
136
+ - compatibility with existing `structure_kernel` gates
137
+
138
+ That lowers rollout risk and makes the kernel easier to test and adopt.
139
+
140
+ ## 4. The Current Technical Shape
141
+
142
+ ### Artifact classes
143
+
144
+ The schema currently supports:
145
+
146
+ - `task`
147
+ - `decision`
148
+ - `hypothesis`
149
+ - `experiment`
150
+ - `checkpoint`
151
+ - `policy`
152
+ - `result`
153
+
154
+ Each class has a minimum required field set in:
155
+
156
+ - [kernel.schema.json](/Volumes/Code_2TB/code/orp/spec/v1/kernel.schema.json)
157
+ - [cli/orp.py](/Volumes/Code_2TB/code/orp/cli/orp.py)
158
+
159
+ ### CLI operations
160
+
161
+ The kernel currently exposes:
162
+
163
+ - `orp kernel scaffold`
164
+ - `orp kernel validate`
165
+ - `orp kernel stats`
166
+ - `orp kernel propose`
167
+ - `orp kernel migrate`
168
+
169
+ ### Gate integration
170
+
171
+ ORP now treats `structure_kernel` as a real validation lane when a gate
172
+ declares a `kernel` block. That gives:
173
+
174
+ - `soft` mode
175
+ Validation issues are recorded but do not block the run.
176
+ - `hard` mode
177
+ Validation issues fail the gate and block promotion.
178
+
179
+ Legacy `structure_kernel` gates without explicit `kernel` configuration remain
180
+ compatible.
181
+
182
+ ### Bootstrap behavior
183
+
184
+ `orp init` now seeds a starter task artifact at:
185
+
186
+ - `analysis/orp.kernel.task.yml`
187
+
188
+ and the default profile validates it in hard mode.
189
+
190
+ ## 5. Benchmark And Validation Method
191
+
192
+ The repeatable harness is:
193
+
194
+ - [scripts/orp-kernel-benchmark.py](/Volumes/Code_2TB/code/orp/scripts/orp-kernel-benchmark.py)
195
+
196
+ The harness benchmarks and validates:
197
+
198
+ 1. Bootstrap path
199
+ `orp init` -> starter artifact -> `orp kernel validate` -> `orp gate run`
200
+ 2. Roundtrip path
201
+ `orp kernel scaffold` + `orp kernel validate` for every artifact class
202
+ 3. Enforcement path
203
+ hard mode, soft mode, and legacy compatibility
204
+ 4. Cross-domain corpus path
205
+ validate a small reference corpus spanning software, product, research,
206
+ operations, and writing
207
+ 5. Class-specific requirement path
208
+ remove every required field, one at a time, across every artifact class and
209
+ verify rejection
210
+ 6. Schema alignment path
211
+ confirm the CLI validator and published kernel schema stay synchronized
212
+ 7. Representation invariance path
213
+ confirm equivalent YAML and JSON artifacts validate to the same result
214
+ 8. Mutation stress path
215
+ reject adversarial near-miss artifacts such as wrong types, whitespace-only
216
+ text, bad schema metadata, and unexpected fields
217
+
218
+ The precise environment metadata for the current recorded benchmark run lives in
219
+ the benchmark artifact itself.
220
+
221
+ ## 6. What The Benchmarks Show
222
+
223
+ ### A. Bootstrap ergonomics
224
+
225
+ Reference run, 5 iterations:
226
+
227
+ - `orp init` mean: `242.098 ms`
228
+ - starter `orp kernel validate` mean: `162.684 ms`
229
+ - default `orp gate run` mean: `239.282 ms`
230
+
231
+ Interpretation:
232
+
233
+ - Kernel bootstrap is comfortably sub-second.
234
+ - The one-shot local developer experience is fast enough to be used in normal
235
+ repo workflow without feeling heavy.
236
+ - These timings include the real `node -> python CLI` invocation path, which is
237
+ the correct path to benchmark for npm-installed ORP use.
238
+
239
+ ### B. Roundtrip across all artifact classes
240
+
241
+ All seven artifact classes successfully scaffolded and validated.
242
+
243
+ Observed means:
244
+
245
+ - scaffold mean: `161.405 ms`
246
+ - validate mean: `161.641 ms`
247
+
248
+ Interpretation:
249
+
250
+ - The kernel is not only task-shaped.
251
+ - The CLI surface is already general enough for multiple project artifact
252
+ types.
253
+
254
+ ### C. Enforcement semantics
255
+
256
+ Reference single-run timings:
257
+
258
+ - hard mode invalid artifact: `172.719 ms`, `FAIL`
259
+ - soft mode invalid artifact: `166.790 ms`, `PASS` with advisory invalid state
260
+ - legacy compatibility gate: `175.379 ms`, `PASS` without `kernel_validation`
261
+
262
+ Interpretation:
263
+
264
+ - hard mode and soft mode are enforced and testable
265
+ - existing `structure_kernel` surfaces do not regress when no explicit kernel
266
+ config is present
267
+
268
+ ### D. Cross-domain corpus fit
269
+
270
+ Reference corpus run:
271
+
272
+ - fixtures: `7`
273
+ - domains: `5`
274
+ - artifact classes covered: `7`
275
+ - corpus validate mean: `169.879 ms`
276
+
277
+ Interpretation:
278
+
279
+ - The kernel now has a small but explicit cross-domain reference corpus, not
280
+ just abstract cross-domain claims.
281
+ - This does not prove universal fit, but it does show that the current class
282
+ set can represent a concrete spread of software, product, research,
283
+ operations, and writing artifacts cleanly.
284
+
285
+ ### E. Class-specific requirement enforcement
286
+
287
+ Reference enforcement run:
288
+
289
+ - cases: `36`
290
+ - mean validation time: `154.307 ms`
291
+ - every required field across every class triggered rejection when removed
292
+
293
+ Interpretation:
294
+
295
+ - The class requirements are not only documented; they are actively enforced.
296
+ - ORP now has evidence that each current artifact class rejects an incomplete
297
+ candidate when a required field is missing.
298
+
299
+ ### F. Schema-to-validator alignment
300
+
301
+ Reference alignment run:
302
+
303
+ - schema required-field map matches the CLI required-field map
304
+ - schema field set total: `37`
305
+ - CLI field set total: `37`
306
+
307
+ Interpretation:
308
+
309
+ - The validator is now auditable against the published schema rather than
310
+ drifting as a separate undocumented ruleset.
311
+
312
+ ### G. Representation invariance
313
+
314
+ Reference invariance run:
315
+
316
+ - YAML artifact: valid
317
+ - JSON artifact: valid
318
+ - semantic validation result: equivalent
319
+
320
+ Interpretation:
321
+
322
+ - The kernel behaves as a structural protocol rather than a formatting
323
+ preference.
324
+
325
+ ### H. Adversarial mutation detection
326
+
327
+ Reference mutation run:
328
+
329
+ - cases: `7`
330
+ - mean validation time: `152.650 ms`
331
+ - all cases rejected correctly
332
+
333
+ Covered mutations:
334
+
335
+ - unexpected field
336
+ - whitespace-only required text
337
+ - wrong field type
338
+ - non-string list item
339
+ - unsupported artifact class
340
+ - wrong schema version
341
+ - empty required list
342
+
343
+ Interpretation:
344
+
345
+ - The validator now has evidence against adversarial near-miss inputs, not only
346
+ against missing fields.
347
+
348
+ ## 7. Claims And Evidence
349
+
350
+ The benchmark report now records ten claims, all currently passing:
351
+
352
+ 1. `schema_validator_alignment`
353
+ The CLI validator stays aligned with the published kernel schema.
354
+ 2. `starter_kernel_bootstrap`
355
+ ORP seeds a valid starter artifact and a passing default kernel gate.
356
+ 3. `typed_artifact_roundtrip`
357
+ All seven artifact classes scaffold and validate successfully.
358
+ 4. `promotion_enforcement_modes`
359
+ Hard mode blocks invalid artifacts; soft mode records advisory invalidity.
360
+ 5. `legacy_structure_kernel_compatibility`
361
+ Older `structure_kernel` gates remain compatible.
362
+ 6. `local_cli_kernel_ergonomics`
363
+ One-shot kernel operations remain within human-scale local latency
364
+ thresholds on the reference machine.
365
+ 7. `cross_domain_corpus_fit`
366
+ The current kernel class set fits a small cross-domain reference corpus
367
+ cleanly.
368
+ 8. `class_specific_requirement_enforcement`
369
+ Each artifact class rejects a candidate when a required field is removed.
370
+ 9. `representation_invariance`
371
+ Equivalent YAML and JSON artifacts validate to the same semantic result.
372
+ 10. `adversarial_mutation_detection`
373
+ The validator rejects adversarial near-miss artifacts.
374
+
375
+ These claims are backed by:
376
+
377
+ - [tests/test_orp_kernel.py](/Volumes/Code_2TB/code/orp/tests/test_orp_kernel.py)
378
+ - [tests/test_orp_init.py](/Volumes/Code_2TB/code/orp/tests/test_orp_init.py)
379
+ - [tests/test_orp_kernel_benchmark.py](/Volumes/Code_2TB/code/orp/tests/test_orp_kernel_benchmark.py)
380
+ - [tests/test_orp_kernel_corpus.py](/Volumes/Code_2TB/code/orp/tests/test_orp_kernel_corpus.py)
381
+ - [docs/benchmarks/orp_reasoning_kernel_v0_1_validation.json](/Volumes/Code_2TB/code/orp/docs/benchmarks/orp_reasoning_kernel_v0_1_validation.json)
382
+
383
+ ## 8. Why This Applies To All Project Types
384
+
385
+ The kernel is not a software-only mechanism. It is a project-structure
386
+ mechanism.
387
+
388
+ ### Software
389
+
390
+ - feature task
391
+ - architectural decision
392
+ - release policy
393
+ - implementation result
394
+
395
+ ### Research
396
+
397
+ - hypothesis
398
+ - experiment
399
+ - result
400
+ - checkpoint
401
+
402
+ ### Product and design
403
+
404
+ - task
405
+ - decision
406
+ - experiment
407
+ - result
408
+
409
+ ### Operations and reliability
410
+
411
+ - policy
412
+ - checkpoint
413
+ - result
414
+ - task
415
+
416
+ ### Writing and knowledge work
417
+
418
+ - task
419
+ - decision
420
+ - hypothesis
421
+ - result
422
+
423
+ The kernel applies because most serious projects need the same underlying
424
+ capabilities:
425
+
426
+ - define the object of work
427
+ - define boundaries and constraints
428
+ - promote only sufficiently structured truth
429
+ - preserve handoff-quality artifacts
430
+
431
+ ## 9. Limits Of v0.1
432
+
433
+ The current kernel validates structural sufficiency, not semantic truth.
434
+
435
+ It can tell us:
436
+
437
+ - whether required fields are present
438
+ - whether an artifact is typed correctly
439
+ - whether promotion rules are satisfied
440
+ - whether a gate should block or advise
441
+
442
+ It cannot tell us:
443
+
444
+ - whether the task is strategically wise
445
+ - whether a hypothesis is scientifically correct
446
+ - whether a result interpretation is deeply valid
447
+ - whether the chosen artifact class was the best possible framing
448
+
449
+ That is an acceptable `v0.1` limitation. ORP is not trying to ship a truth
450
+ oracle. It is shipping a minimum structure standard for canonical work.
451
+
452
+ ## 10. Bottom Line
453
+
454
+ The ORP Reasoning Kernel is technically justified because it gives ORP a
455
+ repeatable, inspectable, and enforceable way to turn natural-language project
456
+ intent into typed canonical artifacts.
457
+
458
+ The current evidence supports that claim:
459
+
460
+ - it boots cleanly in new repos
461
+ - it works across all current artifact classes
462
+ - it enforces hard vs soft promotion semantics correctly
463
+ - it preserves compatibility with pre-kernel `structure_kernel` gates
464
+ - it stays aligned with the published schema
465
+ - it fits a small cross-domain reference corpus
466
+ - it behaves consistently across YAML and JSON
467
+ - it rejects malformed near-miss artifacts
468
+ - it stays within human-scale local CLI latency targets
469
+
470
+ That makes it a good `v0.1` kernel: minimal, general, validated, and already
471
+ useful.
@@ -11,6 +11,20 @@ The ORP Reasoning Kernel is the artifact-shaping grammar that interprets
11
11
  intent, validates structure, and governs promotion into canonical repository
12
12
  truth.
13
13
 
14
+ For the supporting benchmark evidence and alternatives analysis behind this
15
+ design, see
16
+ [docs/ORP_REASONING_KERNEL_TECHNICAL_VALIDATION.md](/Volumes/Code_2TB/code/orp/docs/ORP_REASONING_KERNEL_TECHNICAL_VALIDATION.md).
17
+
18
+ For the explicit evidence gaps and next comparative experiments, see:
19
+
20
+ - [docs/ORP_REASONING_KERNEL_COMPARISON_PILOT.md](/Volumes/Code_2TB/code/orp/docs/ORP_REASONING_KERNEL_COMPARISON_PILOT.md)
21
+ - [docs/ORP_REASONING_KERNEL_PICKUP_PILOT.md](/Volumes/Code_2TB/code/orp/docs/ORP_REASONING_KERNEL_PICKUP_PILOT.md)
22
+ - [docs/ORP_REASONING_KERNEL_AGENT_PILOT.md](/Volumes/Code_2TB/code/orp/docs/ORP_REASONING_KERNEL_AGENT_PILOT.md)
23
+ - [docs/ORP_REASONING_KERNEL_CANONICAL_CONTINUATION_PILOT.md](/Volumes/Code_2TB/code/orp/docs/ORP_REASONING_KERNEL_CANONICAL_CONTINUATION_PILOT.md)
24
+ - [docs/ORP_REASONING_KERNEL_EVOLUTION.md](/Volumes/Code_2TB/code/orp/docs/ORP_REASONING_KERNEL_EVOLUTION.md)
25
+ - [docs/ORP_REASONING_KERNEL_EVIDENCE_MATRIX.md](/Volumes/Code_2TB/code/orp/docs/ORP_REASONING_KERNEL_EVIDENCE_MATRIX.md)
26
+ - [docs/ORP_REASONING_KERNEL_EVALUATION_PLAN.md](/Volumes/Code_2TB/code/orp/docs/ORP_REASONING_KERNEL_EVALUATION_PLAN.md)
27
+
14
28
  It should make three things true at once:
15
29
 
16
30
  - humans can speak naturally at the boundary
@@ -437,6 +451,7 @@ Rust and web should reflect the kernel, not redefine it.
437
451
  That means:
438
452
 
439
453
  - kernel schema and validation rules belong in the CLI
454
+ - kernel observation, proposal, and migration rules belong in the CLI
440
455
  - Rust may expose kernel views, prompts, or editing affordances
441
456
  - web may expose kernel-backed artifact cards and review surfaces
442
457
  - neither Rust nor web should invent competing kernel semantics