From 4097a0bfbc42b937f23a06d19d3aa4587c51927f Mon Sep 17 00:00:00 2001 From: codex Date: Sat, 17 Oct 2026 12:19:03 +0200 Subject: [PATCH] Request r5 source review, the 1.3 kernel review and the owner re-checks Co-Authored-By: Claude Opus 5.5 --- .../nk48-1.3-owner-review/README-recheck.md | 56 +++++++++++ .../nk48-adapters-1.2-review/README-r5.md | 81 ++++++++++++++++ .../warden-1.3-kernel-review/README.md | 93 +++++++++++++++++++ 3 files changed, 230 insertions(+) create mode 100644 docs/changes/netkingdom-target-2026-10-17/nk48-1.3-owner-review/README-recheck.md create mode 100644 docs/changes/netkingdom-target-2026-10-17/nk48-adapters-1.2-review/README-r5.md create mode 100644 docs/changes/netkingdom-target-2026-10-17/warden-1.3-kernel-review/README.md diff --git a/docs/changes/netkingdom-target-2026-10-17/nk48-1.3-owner-review/README-recheck.md b/docs/changes/netkingdom-target-2026-10-17/nk48-1.3-owner-review/README-recheck.md new file mode 100644 index 00000000..733a7108 --- /dev/null +++ b/docs/changes/netkingdom-target-2026-10-17/nk48-1.3-owner-review/README-recheck.md @@ -0,0 +1,56 @@ +# Owner re-check: the re-frozen 1.3 candidate + +Requested 2026-10-17 by the founder. **Start only after** both of these approve with +no open findings: + +- the coordinator source review `../nk48-adapters-1.2-review/coordinator-review-r5.json` + (net-kingdom `001a38c`) +- the kernel review `../warden-1.3-kernel-review/kernel-review-r1.json` + (ops-warden `117fec9` and branch `warden-1.3-kernel` at `5abde81`) + +Each owner already reviewed the candidate in `owner-review-.json` and required +changes. The re-check is short: did the re-freeze make your required changes the +way you wrote them, and do you now accept your descriptors? + +New frozen targets: + +- net-kingdom `001a38ca2aa85155ce4840c4da22aca6e2346171` +- 1.3 `type.yaml` sha256 `e75fe94110ef9fb7fb18072fe2856941b33507c99cb406d36576046481485d0a` +- ops-warden kernel and catalog: branch `warden-1.3-kernel` at `5abde81`. It is not + merged. Merging follows the kernel review. + +New 1.3 descriptor digests (from the type's `execution_descriptors`): + +| Step | Owner | Lane | Digest | +|---|---|---|---| +| register-client | net-kingdom | keycape-attended-case-change | sha256:4ecc769f75433b66c7161f13c0fe7e5599633cf466d46cb6d8031f0456f426e7 | +| ensure-groups | net-kingdom | keycape-attended-case-change | sha256:ebc9d5b9167d18e6015f4bbeb9699e8d396d64fbfaf195142781f84f4f47a70a | +| bind-env | net-kingdom | keycape-attended-case-change | sha256:d5fcb20cf15bf7454890d2529180c582218e3df12584a99162e4b664b899caa0 | +| mint-secret | railiance-platform | keycape-client-secret-generate | sha256:c92957227235db04953809d92b260d32c8b947472a8e8fd17a258ade3ae8da70 | +| deliver-secret | railiance-platform | platform-secret-delivery | sha256:75aaa7346aebdea2a0eb0ba993995515b5248ffefc34caf8e713525e9b58da85 | +| deliver-consumer-secret | railiance-apps | consumer-owner-deployment | sha256:36281df8139fb1ec64b226d94f80eb592de5addab7063ff54c691c641e275fc7 | +| hand-over | railiance-apps | apps-consumer-handover | sha256:1bce07a3229b7d0c7c730f35ce5b40fe471009a82de8dd53788ed970a9be1224 | + +## Per owner + +- **net-kingdom:** NK-1.3-C1 (step text) and NK-1.3-C2 (canon) as written? Accept + register-client, ensure-groups and bind-env at the new digests? +- **railiance-platform:** RPF-1.3-C1 (deliver-secret lane and auth) and RPF-1.3-C2 + (mint wording) as written? Mint and deliver-secret digests are unchanged. Do you + confirm acceptance? Also confirm the draft catalog entry `platform-secret-delivery`: + native delegation, owner_repo railiance-platform, risk high. +- **railiance-apps:** RAPPS-1.3-C1, C2 and C3 as written? Accept both new digests? + **One new question:** the catalog lanes `consumer-owner-deployment` and + `apps-consumer-handover` are now kind `attended-change`, which must name the login + lane that establishes your operator session (`session_lane`). No existing login lane + fits, so both say `pending-owner-confirmation`, and planning refuses until you name + one. Name the lane, or say that a new login lane is needed and who owns it. +- **ops-warden:** do KERNEL-2, KERNEL-3, CATALOG-1 and the founder's attended-change + lane kind implement what you required? Will you promote the four draft lanes once + their owners confirm them, and on what evidence? +- **key-cape:** KC-1.3-C1 (the checker named by digest and revision) as written? + Confirm the draft catalog entry `keycape-attended-case-change` (owner_repo + key-cape/net-kingdom, interim delegation, session_lane key-cape-oidc-login). + +Write `owner-recheck-.json` in this directory. Hard limits as in +[README.md](README.md). diff --git a/docs/changes/netkingdom-target-2026-10-17/nk48-adapters-1.2-review/README-r5.md b/docs/changes/netkingdom-target-2026-10-17/nk48-adapters-1.2-review/README-r5.md new file mode 100644 index 00000000..73cf8f1d --- /dev/null +++ b/docs/changes/netkingdom-target-2026-10-17/nk48-adapters-1.2-review/README-r5.md @@ -0,0 +1,81 @@ +# Review request: NK-WP-0048 1.3 candidate re-freeze (r5) + +Requested 2026-10-17 by the founder. r4 approved net-kingdom `1920b13`. The five owner +reviews (`../nk48-1.3-owner-review/owner-review-*.json`) then required one combined +re-freeze. r5 reviews that re-freeze as source. The kernel and catalog side is +reviewed separately in `../warden-1.3-kernel-review/README.md`. + +## Provenance + +The authoring session made these changes: the adapter edits through a subagent, the +type text, canon text, map regeneration and test rewiring directly. Run r5 in a +**new session** with none of the context of the authoring session or any earlier +review session (r1–r4, owner reviews). + +## Frozen review target + +net-kingdom `001a38ca2aa85155ce4840c4da22aca6e2346171` (r4 target `1920b13` plus +`aba012e`, merge `407ee5e` of `cbadd35`, and `001a38c`). + +| File | sha256 at 001a38c | Since r4 | Owner requirement | +|---|---|---|---| +| sso-mfa/k8s/keycape/keycape-registration-adapter.py | a53beea4dbbe373ce7a5b84d55e79be8407ab9688037c7ee057afcc7be576047 | changed | OW-1.3-C1 lane | +| sso-mfa/k8s/keycape/ensure-groups-adapter.py | 6cba5b07a9262a8e0bf445dc4095ba03b31ddc15e2efbfe374e93f4f78b6aed4 | changed | OW-1.3-C1 lane | +| sso-mfa/k8s/keycape/bind-env-adapter.py | fa17fae21776b5c620ee9782adf050649c3a28719a6687d2524ff67ca7ad1925 | changed | OW-1.3-C1 lane | +| sso-mfa/k8s/keycape/deliver-consumer-secret-adapter.py | 65db5386cdf08a1aa932886c046abed20330a36c96e63d4267adb8341b23da42 | changed | RAPPS-1.3-C1 actor human | +| sso-mfa/k8s/keycape/handover-adapter.py | bad7c1132258f2140b0d83548031ac86eecea4f4019f34adedc1e9e3774a3832 | changed | RAPPS-1.3-C2 four probes | +| security-case-type-revisions/1.3/oidc-browser-relying-party/type.yaml | e75fe94110ef9fb7fb18072fe2856941b33507c99cb406d36576046481485d0a | changed | NK-1.3-C1, RPF-1.3-C1/C2, RAPPS-1.3-C3, KC-1.3-C1, new map | +| canon/standards/security-case-types_v0.1.md | db2de5108c0f911648e223e6fdba4fb530471250c539b35865e1e0726e3240c4 | changed | NK-1.3-C2 | +| sso-mfa/k8s/keycape/descriptor-composition-1.3.candidate.json | 773daa1df72cc7cf6a6d8aa082208181ca2438cdecc9179b1bc5b1c3a09099c2 | regenerated | | +| sso-mfa/k8s/keycape/descriptor-composition-1.2.candidate.json | 5f68a101132eb3a7532c16535109f693c6a66a80817a8084a5464abde44990c6 | regenerated, now a refusal | | +| sso-mfa/k8s/keycape/test_admit_1_3_type.py (evidence) | f4f6a35cfbada462c939fe357e51fa5d03efc9d20c17a511f224c1359ca0faa5 | changed | | +| sso-mfa/k8s/keycape/test_compose_1_2_descriptors.py (evidence) | 9a4b9fb0141221d6e5bcb72b3656613afda54d16ede300bffa8f71956ae6fd2c | changed | | +| sso-mfa/k8s/keycape/test_admit_1_2_adapter_descriptors.py | — | **removed** | its unique checks moved into test_admit_1_3_type.py | +| mint-secret-adapter.py, deliver-secret-adapter.py, compose-1.2-descriptors.py | 246323c7…, cd1a515a…, 39021cac… | unchanged | | + +## Reproduce + +Extract into a directory named `net-kingdom` (r4 O1): + +```bash +mkdir -p "$SCRATCH/net-kingdom" "$SCRATCH/ow" +git -C ~/net-kingdom archive 001a38c | tar -x -C "$SCRATCH/net-kingdom" +git -C ~/ops-warden archive 117fec9 src | tar -x -C "$SCRATCH/ow" +cd "$SCRATCH/net-kingdom" +python3 tools/security-case-types/security_case_validator.py validate-type security-case-type-revisions/1.3/oidc-browser-relying-party +NET_KINGDOM_ROOT="$SCRATCH/net-kingdom" python3 -m pytest -q -p no:cacheprovider security-case-type-revisions/1.3/oidc-browser-relying-party/tests +cd sso-mfa/k8s/keycape +PYTHONPATH="$SCRATCH/ow/src" ~/ops-warden/.venv/bin/python -m pytest -q -p no:cacheprovider \ + test_*adapter*.py test_registration_original_intent_reconcile.py test_compose_1_2_descriptors.py \ + test_admit_1_3_type.py test_adapter_source_closure.py +``` + +Authors report: validator OK; 22 package tests; 129 passed with 115 subtests, against +kernel `117fec9`. Don't use `python -I` together with `PYTHONPATH`. `-I` ignores +`PYTHONPATH`, and the run silently imports whatever `warden` is installed. + +## What to check + +1. Each owner requirement in the table is implemented as the owner wrote it. Read + the owner's own text in `owner-review-*.json`, not this summary. +2. The 1.3 type differs from 1.2 only in version, status, the map, the follow-through + step text and the hand-over rollback text, and the parameters are byte-identical: + its fingerprint still equals 1.2's. Diff it yourself. +3. Every follow-through step that has a descriptor declares a lane, and each + `warden_executes`/`attended` pair matches the mode the owners agreed: mint-secret + warden; deliver-secret owner path; the other five attended. +4. The map equals the composed 1.3 set, and both artifacts equal a fresh regeneration. + The 1.2 composition is refused on exactly the three moved lanes. +5. RAPPS-1.3-C2: hand-over refuses every malformed observations list, and the + observations are bound into the digest. +6. Removing `test_admit_1_2_adapter_descriptors.py` drops no coverage the 1.3 test + does not carry. Check one case in particular: an agent-actor *descriptor* is now + refused by the map before the kernel's "agent mint is forbidden" check can run. +7. Checks 1–8 from the r1 request, for the five changed adapters. + +## Expected output + +Write `coordinator-review-r5.json` here, shaped like r4. Review everything before +stopping, record every rejection and fix nothing. Hard limits as before: no live or +native action, no secret access, no edits to net-kingdom or ops-warden, and no +grant of any kind. diff --git a/docs/changes/netkingdom-target-2026-10-17/warden-1.3-kernel-review/README.md b/docs/changes/netkingdom-target-2026-10-17/warden-1.3-kernel-review/README.md new file mode 100644 index 00000000..d59a218f --- /dev/null +++ b/docs/changes/netkingdom-target-2026-10-17/warden-1.3-kernel-review/README.md @@ -0,0 +1,93 @@ +# Review request: ops-warden kernel and catalog for the 1.3 candidate + +Requested 2026-10-17 by the founder. The ops-warden owner review +(`../nk48-1.3-owner-review/owner-review-ops-warden.json`) required KERNEL-1, KERNEL-2, +KERNEL-3 and CATALOG-1. The founder then made two decisions: + +- a new catalog lane kind `attended-change`, with `session_lane` naming the login + lane that establishes it, so that an attended step may use a login lane or an + attended-change lane; +- `apps-consumer-handover` graded `risk: high`. + +This request covers both kernel targets. Nothing here is merged to ops-warden `main`. + +## Provenance + +- `a45cf47` (the original-intent interface) was written by a subagent of the 1.3 + authoring session. +- `117fec9` (fixes to it) was written by another session. +- The branch `warden-1.3-kernel` was written by subagents of the authoring session, + plus one test by the authoring session itself. + +Run this review in a **new session started in `~/ops-warden`**, with none of those +sessions' context. + +## Frozen targets + +1. **KERNEL-1:** ops-warden `117fec9`, reviewed as the change from `a45cf47`. This is + the original-intent path the registration adapter's `reconcile_original` uses. + Nothing has independently reviewed either revision. +2. **Branch** `warden-1.3-kernel` at `5abde817775d6304e3cf5a46948717a1606981bf`, + reviewed as the change from `117fec9`: + - `a14376c` KERNEL-2/3 and CATALOG-1 draft lanes, and `69fdba2` regenerated paths + - `207d29e` attended-change lane kind and hand-over risk high, and `0a1e990` + regenerated paths + - `5abde81` integration test against the real net-kingdom 1.3 candidate + (net-kingdom `001a38c`) + +## Reproduce + +```bash +mkdir -p "$SCRATCH/ops-warden" "$SCRATCH/net-kingdom" +git -C ~/ops-warden archive 5abde81 | tar -x -C "$SCRATCH/ops-warden" +git -C ~/net-kingdom archive 001a38c | tar -x -C "$SCRATCH/net-kingdom" +cd "$SCRATCH/ops-warden" +WARDEN_TEST_NETKINGDOM_ROOT="$SCRATCH/net-kingdom" PHASE_MEMORY_REPO=~/phase-memory make test +make lint +``` + +Authors report 746 passed, 4 deselected, and a clean lint. For `117fec9`, run the same +suite at that revision. + +## What to check + +1. **KERNEL-1 (`a45cf47..117fec9`):** the original intent is recorded atomically with + the pre-dispatch journal row and looked up after a restart. Any mismatch (pins, + source, step, owner, target, principal, lane, tenant, realm) refuses before a + journal write. Reconcile gets the original separately from the new attempt. Name + the four defects `117fec9` says it fixed, and confirm that each fix holds. +2. **KERNEL-2:** a descriptor's lane must resolve in the parsed catalog and be active, + with a delegation record and a risk grade. The descriptor owner must fit + `owner_repo`, and `mint`/`change` need risk high. Check that + `catalog-routing-acceptance` still covers the whole catalog digest. +3. **KERNEL-3:** mode-aware admission, exactly as `owner-review-ops-warden.json` + question 3 specifies: + - **warden:** unchanged + - **attended:** actor human, `WARDEN_AGENT_ID` unset, step lane equals the session lane + - **owner:** native delegation, `owner_repo` exactly the owner, no Warden-executed + lane, no mint + + The type step values must agree with the descriptor. Look for an ordering or + bypass gap, for example a step id that matches several steps, or a `{param}` + owner resolved from case input. +4. **Lane kind:** an attended step's lane is either kind `login` or kind + `attended-change` whose `session_lane` resolves to an active, reviewed login lane. + The two railiance-apps lanes carry `session_lane: pending-owner-confirmation` and + must keep planning refused. +5. **Catalog:** the four entries are `draft` and not promoted, with the grades and + delegations stated. The regenerated `high-risk-data-paths.yaml` is fresh. + `PARAMETER_PINS` is untouched (PIN-1 waits for the founder). +6. **Integration test:** check that it proves its docstring. The real type and + artifact are used, and the only simulations are promotion and the pin, both in + memory. +7. **Coverage:** the attended-change branch of `check_follow_through` has no + dedicated unit test. Only the integration test exercises it. Decide whether that + is a finding. + +## Expected output + +Write `kernel-review-r1.json` here with a verdict for `117fec9` and one for each +branch commit, findings, an independent reconstruction count and what remains. +Record every rejection and fix nothing. Hard limits: no live or native action, no +`warden sign` or route mutation against anything real, no secret access, and no +edits to ops-warden or net-kingdom.