Preserve October 10 owner decision source packets
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s

Assistant: codex
Assistant-Model: gpt-6.1-sol
Assistant-Session: 01a126e1-76f8-7643-8cf3-e93336539ade
This commit is contained in:
tegwick 2026-10-11 18:46:21 +02:00
parent 8964affdea
commit 96eb40c695
4 changed files with 335 additions and 0 deletions

View file

@ -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.

View file

@ -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"
}

View file

@ -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.

View file

@ -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"
}
}