Skip to content

docs: propose observed local capability binding (CR-DD-013)#115

Merged
coreytshaffer merged 3 commits into
mainfrom
claude/cr-dd-capability-binding-proposal
Jul 26, 2026
Merged

docs: propose observed local capability binding (CR-DD-013)#115
coreytshaffer merged 3 commits into
mainfrom
claude/cr-dd-capability-binding-proposal

Conversation

@coreytshaffer

Copy link
Copy Markdown
Owner

Adds the CR-DD-013 proposal for binding existing local-backend observations into governed route selection without introducing a new probe, router, provider integration, or runtime implementation.

The proposal:

  • distinguishes observed, configured, unavailable, and unknown capability;
  • specifies a validated discriminated-union evidence object;
  • prevents missing, disabled, stale, or invalid observations from masquerading as healthy;
  • preserves existing behavior for direct callers supplying explicit route inputs;
  • requires local-only tasks to fail closed when no usable local route is supported;
  • retains CR-DD-012B and its CR-YK-002 dependency unchanged.

Also corrects CR-DD-012A's merged status, re-pins the daily-driver specification to current main, updates the verified G4/M1 scope, and records the DOCX mirror drift.

Documentation only; no Python, schemas, routing behavior, provider backends, or authorization code changed.

Scope

Exactly five documentation paths:

  • docs/change/requests/CR-DD-013-observed-local-capability-binding.md (new)
  • docs/architecture/daily_driver_orchestrator_spec.md
  • docs/change/requests/CR-DD-012A-governed-decision-foundation.md
  • docs/change/requests/CR-DD-012-shared-governed-run-decision.md
  • docs/current_backlog.md

Notes for review

  • CR-DD-013 grants no implementation authority. Its file allowlist is explicitly provisional.
  • The tc run construction path may no longer synthesize True from unknown evidence. This is a deliberate behavioral change for operators with neither an observation nor an explicit configured declaration, and the CR states it plainly rather than describing it as inert.
  • Ordinary backend configuration does not qualify as a capability declaration; it resolves to Unknown.
  • Evidence uses the existing open route_decision payload extension point. No new ledger schema and no schema-version bump. The closed route-worker-ledger.v1 contract is untouched.
  • The DOCX mirror was deliberately not hand-edited: no reproducible generation path exists in the repository. The drift is recorded in the spec as bounded follow-up.

Verification

  • Full suite on the branch: 1254 passed, 5 skipped, 1 xfailed
  • git diff --check origin/main...HEAD: clean
  • git diff --name-only origin/main...HEAD: exactly the five paths above
  • No Python or runtime files changed

The lone xfail (tests/test_authz.py::test_concurrent_consume_race_documented) is pre-existing, strict, and unrelated: it documents CR-YK-001's non-atomic receipt consumption, with atomic claiming deferred to CR-YK-002.

🤖 Generated with Claude Code

coreytshaffer and others added 2 commits July 25, 2026 18:59
Add CR-DD-013, the first M1 slice: bind the existing validated
local_backend_probe_record.v1 observation into ResilienceRouteInput so route
selection stops asserting local availability it has never checked.

The proposal specifies one additive validated capability-evidence field on
ResilienceRouteInput, shaped as a discriminated union of ObservedAvailable,
ObservedUnavailable, Configured, and Unknown, each with its own required and
forbidden fields, built as a validated projection of the probe record rather
than an embedding of it. Unknown is never promoted to availability and the
tc run construction path may not synthesize True from it. Observed failure is
conclusive for dependent routes; a single reachability result may not assert
both local_fast and local_heavy. Ordinary backend configuration does not
qualify as a capability declaration. Evidence uses the existing open
route_decision payload extension point; no new ledger schema.

Also re-pin the daily-driver spec to current main, correct CR-DD-012A from
"merge is pending" to merged through PR #107 as bccaaad, and rewrite G4/M1 to
record that observation already exists via tc probe and the missing slice is
binding it.

CR-DD-012B is unchanged and retains its CR-YK-002 gate. Documentation only; no
runtime implementation and no implementation authority granted. Readiness
percentages are unchanged and remain planning estimates.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
No reproducible generation path for TriageCore_DailyDriver_Spec.docx exists in
the repository, so it was not regenerated alongside the re-pin and was left
unmodified rather than hand-edited. Record the drift and the bounded follow-up
explicitly, and state that the markdown remains authoritative where the two
disagree.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@netlify

netlify Bot commented Jul 26, 2026

Copy link
Copy Markdown

Deploy Preview for poetic-quokka-0fd859 ready!

Name Link
🔨 Latest commit 5eee4a8
🔍 Latest deploy log https://app.netlify.com/projects/poetic-quokka-0fd859/deploys/6a656b4e30840f0008de71dc
😎 Deploy Preview https://deploy-preview-115--poetic-quokka-0fd859.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

The 6a./6b. entries were not valid ordered-list markers, so GitHub absorbed
them into item 6 as literal text and rendered 13 items instead of 15. Renumber
to a flat 1-15 sequence. Verified against the GitHub Markdown API: 15 list
items, no literal 6a./6b. leak.

No content change beyond the numbering.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@coreytshaffer
coreytshaffer merged commit cce1985 into main Jul 26, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant