From 96eb40c69569eb9cb8416a176d18b831db21f406 Mon Sep 17 00:00:00 2001 From: tegwick Date: Sun, 11 Oct 2026 18:46:21 +0200 Subject: [PATCH] Preserve October 10 owner decision source packets Assistant: codex Assistant-Model: gpt-6.1-sol Assistant-Session: 01a126e1-76f8-7643-8cf3-e93336539ade --- docs/security-case-execution-owner-review.md | 132 ++++++++++++++++++ ...y-case-execution-owner-review.sources.json | 50 +++++++ ...curity-layer-v0.8-publication-readiness.md | 82 +++++++++++ ...er-v0.8-publication-readiness.sources.json | 71 ++++++++++ 4 files changed, 335 insertions(+) create mode 100644 docs/security-case-execution-owner-review.md create mode 100644 docs/security-case-execution-owner-review.sources.json create mode 100644 docs/security-layer-v0.8-publication-readiness.md create mode 100644 docs/security-layer-v0.8-publication-readiness.sources.json diff --git a/docs/security-case-execution-owner-review.md b/docs/security-case-execution-owner-review.md new file mode 100644 index 0000000..aecfa33 --- /dev/null +++ b/docs/security-case-execution-owner-review.md @@ -0,0 +1,132 @@ +# NetKingdom owner review: closed SecurityCase execution seam — 2026-10-10 + +Disposition: **support design direction with the requirements below**. This is +NetKingdom's architectural owner review; it is not founder approval, another +repository's review, executable type acceptance, materialization or native case +completion. Reviewed proposal SHA256: 78ab1439e4c5beb205aeccf15b1b2e706511be55ab195c5a3aa682f326c7c77c. + +## Architectural fit + +NetKingdom declares Taxonomy and owns case canon/schema/type composition. +ops-warden owns follow-through routing and caller-proxy orchestration. The +existing type's entry_point/auth/check/action fields are descriptive strings, +not fixed argv contracts. Inferring a shell command from those descriptions +would invent a new execution interface and authority. The proposal correctly +keeps them descriptive and adds a separately validated closed owner adapter +reference, exact source/interface pins, parameter schemas and bounded receipts. +Owner-native execution/undo remains with each provider; consumer OIDC/group +configuration remains railiance-apps, and mint remains railiance-platform. + +Caller proxy must continue to use the caller's declared lane and grant. It +must not become a standing Warden broker, borrow user-engine's provisioner +credential, or merge the KeyCape and OpenBao issuer sessions. The proposal's +receipt-only pending-owner path is useful and does not count as success. Its +uncertain-on-interruption, no replay of success, reconcile-before-retry and +created-object-only rollback are appropriate. Confirmed grant/session +revocation is part of native completion, not an inferred exit-code success. + +## Source-evidenced deadlock and version mismatch + +1. ops-mason/workplans/MASON-WP-0010-security-case-materialization.md T03's + blocking_reason waits for CCR application **plus mint-secret**, and then says + the case is live. Its task acceptance is materialization, not full live + follow-through. The same file says its build writes a bundle and never + contacts OpenBao; bundle preparation is not observed materialization. +2. ops-warden/src/warden/case_plan.py requires case status materialized before + planning (`PLANNABLE_CASE_STATUS`, plan_case); an accepted case is refused. +3. railiance-platform/scripts/keycape_client_secret_generate.py check_case + also requires status materialized before mint (line117 at this revision). + mint is a follow_through step in type1.1, not a structural materialization + template. Thus requiring mint before materialized prevents the mint route + from being entered. The accepted case still has status accepted. +4. The original broker source separately pins `CASE_TYPE = oidc-browser-relying-party@1.0` + and compares exact case.type. Forgejo has already been accepted/re-pinned + to @1.1 on the founder's recorded go. No run can silently pass the @1.1 + case as @1.0 or ignore the check. Platform must review the broker's actual + version binding and owner test it against the exact accepted type/case. + Platform now has a reviewed staged correction at + /tmp/security-stage/railiance-platform/scripts/keycape_client_secret_generate.py + SHA256 9576cd211cfc06526ec4cc9bd0a5b06f0f59287a68931bb2d6e3592a951ddc7d: + exact @1.1 is admitted, @1.0/later types and unmaterialized cases remain + refused. Its owner reports ten fake-backend subprocess tests passed. This + removes the identified source mismatch when applied; it does not establish + installed broker provenance, applied structural receipts or native mint. + +## Required implementation contract + +- Define materialized as accepted and verified structure: exact type/case/render + pins plus the owner's native structural receipt identifying created and + pre-existing objects and current target identity. All applicable structure + must have admission evidence; CCR-0042's unfinished consumer binding is not + waived by separating mint. Empty generated-value custody can exist at this + state; mint/delivery/env/registry/consumer/verification occur afterwards. + A file status label or source bundle cannot stand in for that receipt. +- Lifecycle change from accepted to materialized changes exact case bytes and + therefore case-ref. Authoritative materialization receipt must preserve the + accepted content/record and bind the new exact bytes, rather than carry an + old case-ref into broker generation. Do not mark the type implemented until + a reference case is actually live and verified; keep the established first + acknowledged-type exception explicit. +- Introduce a separately versioned schema for adapter references and run/step + receipts, with closed fields, immutable owner/interface/source references, + machine target/parameter mapping, actor/lane equality and fixed argv (no shell + interpolation). Unknown adapters/params fail closed. Existing descriptive + types remain valid for plan-only output until migrated; absence of execution + descriptors permits no dispatch. Receipt provenance must be authenticated or + explicitly attended manual evidence, with bounded input and secret withholding. +- Classify each actual type migration under canon section6. Preserving existing + auth/trust and adding closed execution references is not itself authority to + change those boundaries. A changed auth path/materialization/trust transition + or loosened validation needs new informed-decision acknowledgment. Retain + existing type1.0 acknowledgment and founder-approved1.1 provenance. +- Reconcile broker CAS0 outcomes via an owner adapter. Already-present metadata + is not proof this case generated the value or its consumer can use it, and + must not be retried into generation or automatically promoted to success. + Map grant creation, write and post-write verification uncertainty explicitly; + no exception may claim failed-before-change without owner evidence. Grant + revocation and attended parent-session revocation are distinct receipts. +- Rollback may remove only changes actually attributed to the exact case, not + every target rendered from templates. Existing group memberships, policies, + shared registrations and custody data survive. Secret rollback is owner-native + and may not extract prior values through Warden. + +The proposal's stated negative tests should accompany the schema and injected +runner implementation: changed pins, unsupported argv/adapter, unaccepted or +unmaterialized case, agent mint refusal, pending-owner, crash after running, +lost result, CAS reconciliation, explicit safe retry, uncertain undo, malicious +output suppression and absent revocation. Add current type1.1 broker compatibility +and materialized-before-mint ordering tests using non-secret fixtures. + +## Precise final-revision re-review + +The final proposal reviewed here is the staged SHA256 named above, which +supersedes the earlier 1035f049... review. The added Local reducer prototype +appendix explicitly says the reducer is pure preparation, not an accepted wire +format, and implements no provenance, durable storage, dispatch or live action. +This boundary is appropriate. Inspected staged case_receipt_state.py: begin +returns running intent; recover marks interrupted dispatch uncertain; success +cannot replay; explicit retry-safe failed-before is the only retry path; +created-object rollback is reversed and interrupted undo becomes uncertain. +Those functions do not enforce materialization, caller authorization, receipt +provenance or persistence themselves. The design decision must therefore not +accept their local outcome enum or dataclass shape as a completed runtime +protocol. pending-owner remains a run-sheet/native gate even though the reducer +has no pending-owner dispatch state. The previously stated schema, owner +adapter and persistence requirements remain implementation prerequisites. +No new auth/session or live authority is introduced by this appendix. + +## Concrete informed-decision act + +Recommended design question: adopt a closed owner-adapter and immutable +receipt contract for SecurityCase follow-through, keeping current case/type +acceptance and caller/session authority intact; require structural materialized +receipt before follow-through and leave missing adapters as pending-owner. +Alternative: continue manual owner execution with honest source/run-sheet +receipts, and do not expose Warden run/rollback dispatch. Reject inferred shell +execution from prose. Acceptance authorizes schema/interface implementation and +local tests only; it grants no live rollout, mint, credential, case status +transition, new issuer identity, type risk-class change or consumer configuration. + +NK-WP-0048-T06 remains wait for this execution seam and actual structural/native +owner receipts. Its historical approvals remain valid within scope. T07 waits +for first live proof; this design review does not satisfy it. diff --git a/docs/security-case-execution-owner-review.sources.json b/docs/security-case-execution-owner-review.sources.json new file mode 100644 index 0000000..543e18d --- /dev/null +++ b/docs/security-case-execution-owner-review.sources.json @@ -0,0 +1,50 @@ +{ + "reviewed_at": "2026-10-10", + "references": { + "proposal": { + "path": "ops-warden/docs/security-case-execution-proposal.md", + "reviewed_source_path": "/tmp/security-stage/ops-warden/docs/security-case-execution-proposal.md", + "sha256": "78ab1439e4c5beb205aeccf15b1b2e706511be55ab195c5a3aa682f326c7c77c" + }, + "canon": { + "path": "/home/worsch/net-kingdom/canon/standards/security-case-types_v0.1.md", + "sha256": "a4fda906d5138d2594a1f8d047c7c28e1cdf96b1eae051f543b9a5e5852bcb5e" + }, + "type": { + "path": "/home/worsch/net-kingdom/security-case-types/oidc-browser-relying-party/type.yaml", + "sha256": "f705c64e4875e9b8e18a912fb51c135e77898926d6a451f5cb74ab3c0cbe4d1c" + }, + "case": { + "path": "/home/worsch/net-kingdom/security-cases/forgejo-netkingdom-oidc.yaml", + "sha256": "bcc2c6d5bae0d28242b3cdb71e74d8ca297c2afe04766b55d53597f86893351d" + }, + "mason_workplan": { + "path": "/home/worsch/ops-mason/workplans/MASON-WP-0010-security-case-materialization.md", + "sha256": "115731e0c7cd830dd75375844c1772de40f1bdb011f8ef35f5dd2aa17d3baf5d" + }, + "warden_planner": { + "path": "/home/worsch/ops-warden/src/warden/case_plan.py", + "sha256": "9352ae8683d1181980c4ff38524582e4be448d33c85b558f60582c1e5bb5bbaa" + }, + "broker": { + "path": "/home/worsch/railiance-platform/scripts/keycape_client_secret_generate.py", + "sha256": "f3404c4b0f8144f56346547a86d66f933781840307520865d338925bf77fce0a" + }, + "reducer_prototype": { + "path": "/tmp/security-stage/ops-warden/src/warden/case_receipt_state.py", + "sha256": "a2cda7f187e77bd76d4d209505638de44a587fae0bc033ec75c23ee9ea9f73bc", + "boundary": "staged source only; no installed/native acceptance" + }, + "broker_correction": { + "path": "/tmp/security-stage/railiance-platform/scripts/keycape_client_secret_generate.py", + "sha256": "9576cd211cfc06526ec4cc9bd0a5b06f0f59287a68931bb2d6e3592a951ddc7d", + "boundary": "staged source only; no installed/native acceptance" + }, + "broker_correction_owner_receipt": { + "path": "/tmp/security-stage/railiance-platform/docs/keycape-client-secret-generate-type-pin-review.md", + "sha256": "38c5bdc08243cc26f70f37ab70d1947130923c01d4f48e4dcc90e40d732e13cc", + "boundary": "staged source only; no installed/native acceptance" + } + }, + "supersedes_proposal_review_sha256": "1035f0494115424f5fa3d09b0e2e887acbca4c326194d481f5dbb253f18cec07" +} diff --git a/docs/security-layer-v0.8-publication-readiness.md b/docs/security-layer-v0.8-publication-readiness.md new file mode 100644 index 0000000..e2223ab --- /dev/null +++ b/docs/security-layer-v0.8-publication-readiness.md @@ -0,0 +1,82 @@ +# Proposed security-layer v0.8 publication readiness — 2026-10-10 + +Derived source-assembly record, not ratification or a technical review in another +owner's voice. Exact proposed cut: canon/standards/security-layer-model_v0.8.md +SHA256 103a635f19ab9fe53094d69c3eeebcccd8e87ac9588846167e7e204a7c6de167. v0.7 remains accepted; checkers and publication pointers +are unchanged. Adjacent sources JSON pins every record/return/reference checker. + +## Concrete delta + +A9 supplies the four closed tokens and ASCII-insensitive comparison. A10 supplies +the evidence-source column yes/no/unassessed (only access-engine yes, audit-core +no; other rows unassessed), source marking and per-event-class emission inventories. +A11 r2 makes INTENT frontmatter govern, sidecars derived, disagreement a finding, +and requires stated scope including the permitted single-repository scope. A12 r3 +forbids standard/companion pins, excludes provenance citations and non-declaration +stance/claim/evidence maps, and places version/scope in every run. The quoted +normative paragraphs are taken from exact amendment-set v0.3, SHA256 +9b454b83c9aeed08ba13dba4d812f5ae6b4293ced9e43088d64cc3cc00b1459d. + +GH-DEC-2026-024's A2 correction extends explicit non-completeness statements to +load-bearing guarantees where the guarantee is not itself completeness; it leaves +the existing volume/rare heartbeat-and-reconciliation requirement intact. Its +A10 correction distinguishes no from unassessed; its failure-path release +exception remains refused. No fresh doctrine, observation or actuation capability +is manufactured. §14 and §15 record current assembly and bounded review provenance. + +A13's coordinate note is a factual publication adaptation: the circulated text +said flex-auth was the currently resolving repository and the governed rename +was pending. FLEX-WP-0020 records completed operation a15af186 on September30; +the assembled note preserves the ruled authority and flex-auth runtime names, +identifies the now-resolved access-engine repository coordinate and retains the +migration-owner record as execution authority. The three fresh worker returns +assent only to A11 r2/A12 r3; they do not review this factual A13 adaptation or +ratify the final assembled cut. Its provenance is the migration-owner receipt, +not a new layer or runtime naming ruling. + +## GH-DEC-2026-019 closing-condition evidence + +1. Amendments drafted/circulated/dispositioned: source-complete. GateHouse + GH-WP-0004-T09 is now done in the applied workplan. The three dedicated owner + returns are applied under kings-guard, approval-engine and railiance-master; + their exact SHA256 values match T09's recorded table and the common current + amendment SHA256 above. Existing earlier returns remain correctly scoped + history. No earlier-version approval is carried forward or silence counted + as assent. T09's source disposition is not founder acceptance of this cut. +2. AuditCore §11 review: returned September23, not declined; T07 done. GH024/T12 + disposition resolves both findings and refuses the proposed exception; the + assembly now includes those source corrections. §9.5's KingsGuard review was + wanted but explicitly not a GH019 acceptance condition and is not inferred. +3. Four declarations/dated gaps: T08 done, naming GateHouse, KeyCape, OpsMason and + NetKingdom records. This asks declaration or dated gap, not universal conformance. + +All three GH019 conditions are now source-evidenced complete in applied +owner/GateHouse records, and this exact final proposed cut carries their +amendments. Prepare informed-decision with the cut digest and disposition +receipts. Requested human act: accept the assembled v0.8 publication cut, +including the bounded A13 factual coordinate update, as the new standard under +NetKingdom's publication responsibility. A human answer is not inferred from +technical returns or source application. Until then status remains proposed +and v0.7 governs. + +GH-WP-0004-T11 checker convergence is post-flip: eight named implementers change +VALIDATED_AGAINST and detector copies, or retain a dated reason. It is not a +pre-flip requirement to name proposed v0.8 as normative. Companion alignment and +current publication pointer changes likewise belong to the concrete approved +publication action; they are not performed by this source preparation. + +## Verification + +Unchanged ops-warden reference checker passed, explicitly naming accepted v0.7 +plus GH017/GH020/GH021 and its run scope. Its existing tests passed 28/28 via +PYTHONDONTWRITEBYTECODE=1 python3 -m pytest -q -p no:cacheprovider +tests/test_layer_conformance.py. This verifies the established declaration/detector +reference, not an estate-wide v0.8 compliance run. Source assembly checks compare +A9/A11r2/A12r3 quotations, the complete GH024/A2 non-claim paragraph byte for +byte, catalogue markings and retained emission bounds; no +source checker was silently repointed, and no native security execution occurred. + +No new live workload, credential, grant or risk exception is involved. The proposed +publication action is reversible through versioned canon/pointer restoration; +owner migrations require separate reviewed commits. Existing build exceptions +remain declared and are not legalized by accepting this standard. diff --git a/docs/security-layer-v0.8-publication-readiness.sources.json b/docs/security-layer-v0.8-publication-readiness.sources.json new file mode 100644 index 0000000..267f79e --- /dev/null +++ b/docs/security-layer-v0.8-publication-readiness.sources.json @@ -0,0 +1,71 @@ +{ + "prepared_at": "2026-10-10", + "final_proposed_cut": { + "path": "canon/standards/security-layer-model_v0.8.md", + "sha256": "103a635f19ab9fe53094d69c3eeebcccd8e87ac9588846167e7e204a7c6de167", + "status": "proposed" + }, + "references": [ + { + "path": "/home/worsch/gate-house/docs/amendments/v0.8-section-11-declaration-amendments.md", + "sha256": "9b454b83c9aeed08ba13dba4d812f5ae6b4293ced9e43088d64cc3cc00b1459d", + "boundary": "current source record" + }, + { + "path": "/home/worsch/gate-house/docs/amendments/v0.8-amendment-set.md", + "sha256": "9ec92497156845397c9ea40a1693d97c870af7495292cb42bc39cb47773fd23b", + "boundary": "current source record" + }, + { + "path": "/home/worsch/gate-house/decisions/decisions.md", + "sha256": "7c0d582448a9f4f39a438a24300a487259241d32616c2a6da16f8e5c52eb2425", + "boundary": "current source record" + }, + { + "path": "/home/worsch/gate-house/workplans/GH-WP-0004-section-11-layer-declarations.md", + "sha256": "99f344162050e5dc792adbe193999db8fd755685cf0ba873014ab57002ea70ef", + "boundary": "current source record" + }, + { + "path": "/home/worsch/access-engine/workplans/FLEX-WP-0020-repository-identity-migration.md", + "sha256": "7e1c1a3b888e93cdce274dac8d2b3b6149980ff10ad2b6fe2f3f100f05ed586f", + "boundary": "current source record" + }, + { + "path": "/home/worsch/kings-guard/docs/reviews/2026-10-10-a11-r2-a12-r3.md", + "sha256": "eb0bf102653707f5c80f4594df1427ef70f65ed3686abc824418fa19ab9983bb", + "boundary": "applied exact-amendment technical return, disposition recorded by GateHouse T09; no founder acceptance" + }, + { + "path": "/home/worsch/approval-engine/docs/reviews/2026-10-10-gate-house-a11-r2-a12-r3-owner-review.md", + "sha256": "978527d58222bd14fb20cbe963eb87cad49dfd4a8b2dfa420ee102b5ffb4d002", + "boundary": "applied exact-amendment technical return, disposition recorded by GateHouse T09; no founder acceptance" + }, + { + "path": "/home/worsch/railiance-master/docs/reviews/2026-10-10-gate-house-a11-r2-a12-r3-owner-review.md", + "sha256": "ee3739febdd9346537ff9892dd0bf2f086544a42e3e65275f5342edc8f23ef84", + "boundary": "applied exact-amendment technical return, disposition recorded by GateHouse T09; no founder acceptance" + }, + { + "path": "/home/worsch/ops-warden/scripts/check_layer_conformance.py", + "sha256": "064be430b64072fd1620e6adc19b4e24a1790c9df06144a9670cd262faf66e8a", + "boundary": "unchanged v0.7 plus ruled-amendment reference checker" + }, + { + "path": "/home/worsch/ops-warden/tests/test_layer_conformance.py", + "sha256": "3d39b0a24a65263b2be9f18add2b9c69e12b7926716d610e8200d5c788c1b696", + "boundary": "unchanged v0.7 plus ruled-amendment reference checker" + }, + { + "path": "/home/worsch/ops-warden/wiki/playbooks/netkingdom-layer-declaration.md", + "sha256": "2dbef2235afdc33203fb01582220370051cf6c9eefc7c7d482ff05ebd615fb64", + "boundary": "unchanged v0.7 plus ruled-amendment reference checker" + } + ], + "closing_conditions": { + "GH019_condition1": "applied T09 done with exact fresh returns", + "GH019_condition2": "T07 done, audit review returned; findings dispositioned T12 done/GH024", + "GH019_condition3": "T08 done, required declarations/dated gaps recorded", + "founder_acceptance": "not recorded; cut remains proposed" + } +}