Repository navigation
spec(cli-surface, AST-031): the person filing a gap report chooses where it goes - #7749
Merged
Merged
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
AI review status for this pull request.
|
josephfarina
force-pushed
the
josephfarina/gap-report-destination-spec
branch
from
October 20, 2026 18:11
12487b1 to
ad360a6
Compare
Contributor
Author
|
/approve-spec ad360a6 |
Contributor
PR Analysis Report
|
github-actions
Bot
deleted the
josephfarina/gap-report-destination-spec
branch
October 21, 2026 06:22
This branch was successfully deployed
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.
Exact decision needed
Who decides where a gap report goes when loaded integrations name their own
issuesUrl, and how that choice reaches the CLI. Today a report always goes to the configured handlers (or, with none, the owning package'sissuesUrl), so an integration's own tracker is unreachable whenever a handler is loaded.Existing authority searched
architecture:cli-surface(current, owner josephfarina) holds command contracts such as INV32–INV35 with DEC-4–DEC-8. This PR adds INV36, DEC-9, a change-coupling line, and a verification row.spec:AST-031(draft, owners josephfarina and cixzhang) owns handler composition and the zero-handler fallback (FR8). Its draft FR13/DEC-4 (an automatic copy to the target integration'sissuesUrl) is replaced: FR13 now says a destination named with--toreplaces the handlers and the fallback for that report, and points to INV36. FR8, FR12, the fallback rule and the issuesUrl-metadata rule go back to their earlier wording. AST-031 stays a draft; the binding rule lives in the current record, as INV33–INV35 did.Decision
astryx gap-reportkeeps the default route.--to <package>sends the report only to that loaded integration'sissuesUrl(GitHub only with--confirm-public, otherwiserouted_only). A--tonaming no destination fails withERR_UNKNOWN_PACKAGEbefore anything is sent and lists the choices. When at least one destination exists,--list-categoriesand the receipt of a run without--tolist every destination, in text and JSON, and tell the agent to ask the person. Docs and agent guidance say the same: ask the person, never pick a package yourself, and leave out--towhen the person does not choose.Rejected alternatives
issuesUrlautomatically: reports land in places nobody picked.Claim scope and non-goals
astryx gap-reportandgapReport()only. Handler composition is unchanged.Evidence and implementation relationship
The code PR #7724 implements INV36 with tests that fail on current main.
Writing rubric results
Scope
Validation
pnpm check:knowledge(insidepnpm check:repo): passes.cli-surface.mdis not Prettier-clean on main, so it was edited by hand to avoid re-padding the whole table.git diff --check: clean.