fix: branch protection is undiscoverable from the repo protect name (it lives on madt_branches_remote, while madt_repos has only tag protection) #431
Labels
No labels
breaking
bug
documentation
enhancement
epic
good first issue
help wanted
refactoring
resolution/duplicate
resolution/invalid
resolution/wontfix
security
severity/critical
severity/high
severity/low
severity/medium
status/abandoned
status/blocked
status/needs-decision
status/needs-info
status/needs-verification
testing
upstream
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
sixfold-space/madtea#431
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
Finding the branch-protection surface takes several dead-end steps. Setting required status checks on
maintoday, the trail was:docs/COMPARISON.mdnames itrepo protect set, which reads as arepos-noun operation.madt_reposexposes only tag protection (tag_protect_create/get/list/update/delete) and no branch protection. Itstag_protect_*actions actively reinforce the wrong guess.madt_enableandmadt_help(topic="domains")do not list it, because branch protection is not a gated domain.madt_branches_remote(protect_list/get/create/update/delete/priority), reachable only by keyword search of the tool set.Why it matters
Every wrong hop is wasted round-trips and tokens. The
repo protectvocabulary points atmadt_repos, and thetag_protect_*actions sitting there make the mis-guess feel confirmed right up until it fails.Fix options
madt_reposdescription and in thetag_protect_*action summaries: branch protection is onmadt_branches_remote.madt_helptopic (protectionorbranch-protection) that names the tool and its actions.repo protectCLI vocabulary with thebranchesMCP home so both surfaces point the same way, or document the split once, prominently.Acceptance
Looking for branch protection from either the
repo protectname or frommadt_reposreachesmadt_branches_remotein one hop, via a cross-reference or a help topic, with no keyword fishing.madt_repos editlacks fast-forward-only + rebase-explicit merge flags and mislabelsallow_rebase_update#432Live data point from the org-wide signing rollout. Setting
require_signed_commitson the sixfold-space repos,madt_branches_remotenever surfaced from the MCP tool set.madt_reposshows onlytag_protect_*, so the path of least resistance became rawmadt_api_call POST/PATCH /repos/{owner}/{repo}/branch_protections.So the discoverability gap does not just cost extra hops - from the MCP surface it dead-ends into raw API, which skips every guardrail the native
protect_*verbs carry. The cross-reference onmadt_reposand thetag_protect_*summaries would have caught this in one hop.