feat(autonomy): prerequisite-resolution contract document (#2717) - #2772
Conversation
Land the Phase 1 contract document with the ruled naming: routine prerequisite resolution, verdicts supported|conditional|unsupported|unknown, and deferred-class as the join-row marker. Pointer in routines.md, README bullet, and 0.18.0 bump. Co-authored-by: Kyle Sexton <kyle-sexton@users.noreply.github.com>
Co-authored-by: Kyle Sexton <kyle-sexton@users.noreply.github.com>
|
Bugbot is not enabled for your account, so this pull request was not reviewed. Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs. |
|
Claude finished @kyle-sexton's task in 45s —— View job Security review — no issues found
Skip gate: this PR has no security-relevant surface. All five changed files are documentation/config metadata:
There is no executable code, no GitHub Actions workflow, no script, no permissions/config change, and no data-handling logic in this diff — it's a design contract describing a future resolver (explicitly deferred to follow-on implementation issues per the doc's "Landing and implementation boundary" section). Nothing here is reachable at runtime yet, so there's no injection surface, auth/access-control logic, secret handling, or Actions trigger/permission change to evaluate. Per the security-review skip gate (no security-relevant surface after reading the diff), stopping here with no findings. |
|
Last security-reviewed head: |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: fb8d1cdc78
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
Claude finished @kyle-sexton's task in 3m 6s —— View job Code review complete
This is a documentation-only PR (contract doc + hub pointers + version/changelog bump), so review focused on internal consistency and cross-reference correctness rather than executable-code concerns. 1 finding posted inline ( Checks that passed:
No security-relevant surface in this change (pure documentation). |
|
Claude has reviewed this PR 3 times. The lane skips further automatic reviews after 5; deleting this comment resets the count. |
Use binding-seam layer vocabulary, cover join (external) as deferred-class, require toolchain provenance and reject bundled-default rungs, and rewrite vendor-named paths/plugins as surface-class language for the reference gate. Co-authored-by: Kyle Sexton <kyle-sexton@users.noreply.github.com>
|
Addressed open review threads and pushed a signed fix commit. Threads resolved; waiting on CI green for squash-merge. |
|
Claude finished @cursor[bot]'s task in 3m 35s —— View job Code review complete
1 finding posted inline ( Verified as already fixed since the prior review round:
Checks that passed:
No security-relevant surface in this change (pure documentation). |
reference/ cannot embed claude-config (vendor-name gate); point at the sibling config-audit plugin and keep the marketplace id in README. Co-authored-by: Kyle Sexton <kyle-sexton@users.noreply.github.com>
|
Resolved: MCP seam gate now names the sibling config-audit plugin without embedding the marketplace id |
|
Claude finished @cursor[bot]'s task in 1m 41s —— View job Code review — skip gate applied
Skip gate: the pre-fetched PR context reports PR State: MERGED. Per the For reference,
If this PR is in fact still open (context appeared stale) and a fresh review is wanted, please re-trigger |
…gger (#2822) ## Summary Reconciles the #2717 naming ruling with the already-shipped prerequisite-resolution chain. The ruling was posted 2026-08-16T01:54Z — about three hours **after** PR #2772 merged the contract document (2026-08-15T22:47Z) and after the downstream phases (#2783, #2809, #2813) had shipped a working vocabulary. Its premise ("the contract document may be authored against these") was stale when written, so the reconciliation decision re-derived the outcome: - **Verdict tokens ratified as shipped.** `supported` / `conditional` / `unsupported` / `unknown` clears every constraint that binds — no security-binding reading, no barred health word, no collision with the five named incumbents. The ruling's `met` family was a precision preference, not a defect cure; migrating ~60 sites across four merged PRs, including machine-emitted resolver tokens, buys no correctness. **No token changes.** - **The deferred marker gains its mandatory trigger: `deferred-class` → `deferred(<trigger>)`.** This half of the ruling names a genuine defect — a bare marker records that resolution is postponed while discarding the condition under which the deferral is revisited, the half that makes it auditable. The trigger is the `join:` row's own catalog Status trigger. 6 sites, 4 files: the contract document, the README bullet, ADR 0011 (a dated appended amendment — the original decision text is byte-identical, and the released CHANGELOG entries stay untouched as historical record), and a new 0.22.1 changelog entry with the version bump. A reader who finds the ruling comment and the shipped vocabulary disagreeing now finds the reconciliation on the record in ADR 0011's amendment. ## Test plan - `scripts/check-changelog-parity.sh --check-bump origin/main` exits 0; `plugin.json` bumped 0.22.0 → 0.22.1 with a matching `## [0.22.1]` entry - `markdownlint-cli2` and `typos` clean over all five changed files - `scripts/validate-plugins.sh` passes; `generate-catalog.mjs` / `generate-cheatsheet.mjs` report no drift - Repo-wide `git grep deferred-class` at the head commit hits only historical released changelog text and ADR 0011's original pre-amendment lines - Independently verified by a fresh-context auditor reading blobs at the pushed SHA with authoring rationale withheld: all nine checks PASS (its one finding — a changelog sentence misattributing the ratification to the ruling — is fixed in the head commit) ## Related Closes #2717 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Closes #2717
Summary
Lands Phase 1 of the routine-capability-detection plan (ADR 0011): the per-repo routine prerequisite resolution contract, using the ruled naming that unblocks the wayfind interview gate.
Fix
plugins/autonomy/reference/prerequisite-resolution.md— contract document owning grain, candidate set, verdict vocabulary, probe classes, precedence, composition seams, consumer rules, and the five-way disambiguation note. Per-class facts stay leaf-owned (Phase 2+).routine prerequisite resolution; verdictssupported|conditional|unsupported|unknown; join-row markerdeferred-class(not a verdict).routines.md§Access to prerequisites; one README bullet.0.18.0with matching CHANGELOG entry.Verification
Related