Skip to content

Implement CR-DD-016: capability-probe operator workflow discoverability - #157

Merged
coreytshaffer merged 2 commits into
mainfrom
claude/cr-dd-016-implementation
Aug 11, 2026
Merged

coreytshaffer merged 2 commits into
mainfrom
claude/cr-dd-016-implementation

Conversation

@coreytshaffer

Copy link
Copy Markdown
Owner

What this is

The bounded implementation of CR-DD-016, after its requirements contract survived two
rounds of correction (#155 scope repair, #156 causal-claim correction). Exactly the
four-path Implementation Allowlist named in the CR doc — nothing else.

Not a merge/complete claim. This PR is the implementation candidate. The CR doc's
own Status section explicitly stays short of "complete": implementation is drafted and
verified on this branch, but the CR is not considered done until this PR is reviewed and
merged. That is a separate, still-pending human gate after CI.

What changed

  • docs/daily_driver_quickstart.md — new "Understand local-capability probing"
    section documenting the three-case contract: a [capability] declaration with a
    resolved model binding permits route consideration by itself; a fresh probe upgrades
    that to a checked observation (or conclusively overrides it on a negative result, or
    catches a model-name mismatch); with neither usable, local_only fails closed. Also
    states the 300-second freshness consequence.
  • triage_core/tc_cli.py — tc probe --output's argparse help text now names
    [capability].local_probe_record_path as the required follow-up config key. Text only:
    no flag shape, default value, command dispatch, or execution path change.
  • tests/test_tc_cli.py — one focused regression test,
    test_tc_probe_help_names_capability_probe_record_path, asserting the help text names
    the config key, triagecore.toml, and explains --output has no effect on tc run by
    itself. Compares against whitespace-normalized output and pins COLUMNS=200
    explicitly, so the assertion doesn't depend on ambient terminal width (verified failing
    before that fix, both at the default width and at an artificially narrow one where
    argparse wrapped mid-identifier).
  • CR-DD-016 doc — implementation evidence recorded, allowlist section marked
    drafted/pending, all acceptance criteria checked against what was actually verified.

What did not change

No file outside the four listed above. No schema, CLI flag shape, default value, command
dispatch, probe execution, capability resolution, routing decision, persistence behavior,
or runtime semantics change. triage_core/local_backend_probe.py,
capability_evidence.py, config.py, client.py, and routing/resilience_router.py —
the CR's own named exclusions — are untouched.

Verification

Check Result
git status --short (staged) exactly the 4 approved files, no residue
git diff --check no whitespace errors
Focused suites (test_tc_cli.py, test_capability_binding.py, test_tc_run_cli.py) 72 passed
Full suite 1669 passed, 6 skipped, 0 failed

🤖 Generated with Claude Code

Bounded implementation of the corrected requirements contract (CR-DD-016,
after its #155 scope repair and #156 causal-claim correction). Exactly the
four-path Implementation Allowlist, nothing else.

- docs/daily_driver_quickstart.md: new "Understand local-capability
  probing" section documenting the three-case contract (declaration+
  binding alone permits route consideration; a fresh probe upgrades the
  evidence tier or conclusively overrides on a negative result; neither
  usable fails local_only closed) and the 300-second freshness
  consequence.
- triage_core/tc_cli.py: tc probe --output argparse help text now names
  [capability].local_probe_record_path as the required follow-up config
  key. Help/description text only -- no flag shape, default value,
  command dispatch, or execution path change.
- tests/test_tc_cli.py: one focused regression test asserting the help
  text names the config key and explains --output has no effect on
  tc run by itself. Compares against whitespace-normalized output and
  pins COLUMNS explicitly so the assertion doesn't depend on ambient
  terminal width (verified failing before that fix, at both default and
  artificially narrow widths).
- CR-DD-016 doc: implementation evidence, allowlist marked drafted, all
  acceptance criteria checked. Status stays short of "complete" --
  implementation is drafted and verified on this branch, PR review and
  merge into main are still pending; implementation authority is
  exercised within the four-path allowlist but not yet closed out.

No change to capability resolution, routing, probe behavior, config
defaults, or persistence semantics. Focused suites 72/72
(test_tc_cli.py, test_capability_binding.py, test_tc_run_cli.py); full
suite 1669 passed, 6 skipped, 0 failed.
@netlify

netlify Bot commented Aug 11, 2026 •

Copy link
Copy Markdown

✅ Deploy Preview for poetic-quokka-0fd859 ready!

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

QR Code

Use your smartphone camera to open QR code link.

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

The prior wording ("PR open, not yet merged", "still-pending human
gate") was accurate on the branch but would read as false the instant
this PR merges into main. Rephrase so the same text is true both
before and after merge:

- Status: completion is defined by merge, not asserted or denied.
- Implementation authority: "exercised... no further changes
  authorized... once merged, spent" holds in both states.
- Implementation evidence: identify commit 01e8b14 / PR #157 instead
  of describing branch state.
- Rename "Implementation Allowlist (Drafted -- Pending PR Review and
  Merge)" to "Authorized Implementation Allowlist" and drop the
  open-PR sentence.

No implementation change. Avoids a follow-up status-fix PR after #157
lands.
@coreytshaffer
coreytshaffer merged commit 7c7fb72 into main Aug 11, 2026
8 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