Repository navigation
feat(repos): human-assigned repo roles to disambiguate Jira routing - #43
Merged
Merged
Conversation
CPM-7881 (a Tailwind token change) mis-routed because two repos both use Tailwind — code evidence tied, and the LLM broke the tie on stale auto-generated descriptions (speedboat's omitted Tailwind though it has a tailwind.config). Descriptions are unreliable; a human-set signal isn't. Teams can now assign each repo a ROLE — web, backend, mobile, cms, infra, data — and the Jira repo-selector treats it as AUTHORITATIVE: it classifies the ticket's domain and picks the repo whose role matches, overriding descriptions and incidental code matches. Unset repos fall back to the code-evidence + LLM path unchanged. - worker: plan::fetch_team_repo_roles + select_repo feeds roles into the prompt as the dominant, override-descriptions signal. - gateway: GET /api/repos returns `role`; POST /api/repos/:owner/:name/role sets/clears it (admin+, validated against the 6 roles, must be a real repo).
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.
Summary
TICKET-7881 (a Tailwind
tracking-tighterchange) mis-routed tofitness-club-daily-scheduleinstead of web-app because both are Tailwind repos — code evidence tied, and the LLM broke the tie on stale auto-generated descriptions (web-app's omits Tailwind, though it hastailwind.config.ts). Descriptions are unreliable; a human-set signal is the fix (you rejected a per-ticket hard mapping — this is the smart, reusable version).What this adds
Teams assign each repo a role —
web,backend,mobile,cms,infra,data— and the Jira selector treats it as authoritative: classify the ticket's domain → pick the repo whose role matches, overriding descriptions and incidental code matches. Unset repos fall back to the existing code-evidence + LLM path.plan::fetch_team_repo_roles;select_repoinjects a "Repo roles (AUTHORITATIVE)" section and reorders its reasoning to prefer role-match.GET /api/reposnow returnsrole; newPOST /api/repos/:owner/:name/rolesets/clears it (admin+, validated against the 6 roles,attribute_existsguard so it can't mint a stub).Verification
cargo clippy --workspace --all-targets -D warnings— cleancargo fmt --check— cleanPart of the routing-quality work (follows the code-evidence PR #42).