feat(case): KERNEL-2/3 lane resolution and mode-aware admission; CATALOG-1 draft lanes
nk48 1.3 owner review (owner-review-ops-warden.json): - KERNEL-2: Executor.admit parses catalog_source and resolves descriptor.lane; refuses a missing, non-active, undelegated or ungraded lane, an owner outside owner_repo, and a mint/change effect on a lane not graded risk high. catalog-routing-acceptance still covers the whole catalog digest. - KERNEL-3: dispatch mode is read from the type's follow_through step (warden_executes/attended). The step must declare both booleans and a lane and agree with the descriptor's lane and owner. Attended: human actor, WARDEN_AGENT_ID unset, parent-session revocation scope, caller lane equal to the step lane. Owner: native delegation, owner_repo == descriptor.owner, no Warden-executed lane and no Warden-brokered mint. - CATALOG-1: draft entries keycape-attended-case-change (OW-1.3-C1), platform-secret-delivery, consumer-owner-deployment, apps-consumer-handover. Not promoted; promotion waits for owner confirmation. - Fixture catalogs and type steps in tests; published routing_lanes coverage and the workload-join count follow the four new not-applicable lanes. PARAMETER_PINS untouched (PIN-1 waits for founder acknowledgment). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Assistant: claude-code Assistant-Model: opus Assistant-Process: 903097@bnt-lap001 Assistant-Session: aa320c8f-c3fa-46e7-8541-0b58e1e45d23
This commit is contained in:
parent
117fec9241
commit
a14376cf62
8 changed files with 363 additions and 13 deletions
|
|
@ -28,7 +28,9 @@ def test_repo_catalog_uses_only_explicit_workload_references():
|
|||
# names fluid-telegram, which has published no workload declaration.
|
||||
# not_applicable 18 since 2026-10-10: keycape-client-secret-generate is a
|
||||
# per-case generation lane; each case's consumer gets its own entry.
|
||||
assert len(report["not_applicable"]) == 18
|
||||
# not_applicable 22 since 2026-10-17: the four CATALOG-1 draft lanes
|
||||
# (nk48 1.3 owner review) are per-case lanes like the one above.
|
||||
assert len(report["not_applicable"]) == 22
|
||||
assert {row["lane"] for row in report["resolved"]} == {
|
||||
"ops-warden-warden-sign-token",
|
||||
"issue-core-ingestion-api-key",
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue