feat(change-request): backend-neutral change-request contract + JIRA/mail patch backends (#669)#679
Merged
Conversation
…mail patch backends (apache#669) contract:change-request shipped in apache#678 as a scorer policy entry with GitHub as the sole backend and no interface tool. This completes it into a full backend-neutral contract with two more backends, so the pull-request review/merge gate works on non-GitHub projects. - tools/change-request/: the interface spec (Kind: interface). Seven backend-neutral verbs (list_open, get, get_discussion, post_review, land, reject, status), generic lifecycle verbs, and the land <-> contract:source-control boundary. Answers the issue's four open questions (diff identity, CI/mergeable degradation, apply idempotency, patch-author vs committer attribution). - tools/jira-patch/ (Vendor: Atlassian): patch on a JIRA issue; review via JIRA comments; land delegates to asf-svn (svn patch + svn commit). - tools/mail-patch/ (Vendor: email): [PATCH] thread on dev@; reads via mail-archive, replies via mail-draft (never sends); land delegates to asf-svn. - tools/github: retag prose as one change-request backend (land = gh pr merge), no longer the sole one. - skills/pr-management-triage: contract-binding section mapping each disposition to a verb; the gh/GraphQL commands are the GitHub resolution of those verbs (triage never lands). - docs + scorer: change-request flips vendor-neutral (3 vendors: GitHub, Atlassian, email); score 8/10 -> 9/10; ~19 skills flip vendor-coupled -> portable; only mail-draft remains a gap. Regenerate docs/vendor-neutrality.md and add a scorer test. Naming: the issue proposed contract:change-proposal; ships as contract:change-request to match apache#678. Same seam; change-request is canonical. Closes apache#669.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Completes #669 — the backend-neutral change-proposal contract — building on the
contract:change-requestseam introduced in #678 (which registered the contract in the vendor-neutrality scorer with GitHub as the sole backend and no interface tool).This turns it into a full contract with three backends across three vendors, so the
pr-management-*skills can run on non-GitHub projects (JIRA+SVN,[PATCH]-by-mail).Changes
Contract (Phase 1)
tools/change-request/— interface spec (Kind: interface). Seven backend-neutral verbs (list_open,get,get_discussion,post_review,land,reject,status), generic lifecycle verbs, per-backend resolution tables, and theland↔contract:source-controlboundary. Answers the issue's four open questions inline.tools/github/— retagged: one change-request backend (land=gh pr merge), no longer sole.skills/pr-management-triage/— contract-binding section mapping each disposition to a verb; thegh/GraphQL commands are documented as the GitHub resolution of those verbs. Triage never callsland.SVN-first backends (Phases 2 & 3)
tools/jira-patch/(Vendor: Atlassian) — patch on a JIRA issue → review via JIRA comments →landdelegates toasf-svn(svn patch+svn commit).tools/mail-patch/(Vendor: email) —[PATCH]thread ondev@→ reads viamail-archive, replies viamail-draft(never sends) →landdelegates toasf-svn.Scoring / docs / tests
contract:change-requestflips ✅ (3 vendors: GitHub, Atlassian, email); ~19 skills flip vendor-coupled → portable; onlymail-draftremains a gap.docs/vendor-neutrality.md; updateddocs/labels-and-capabilities.md; new scorer test.Verification
vendor-neutrality-scoretests: 20 passed (incl. the doc-in-sync check).skill-and-tool-validate: exit 0 (the three new tools pass the adapter-authoring checks).Closes #669.