Repository navigation
perf(security-issue-fix): decide the fix flow, public-text scrub, backport and gates as code - #1712
Merged
Merged
Conversation
…kport and gates as code A new issue-fix family in tools/security-management takes the rules of security-issue-fix that are pure functions of their inputs: the fix flow from magpie-vcs fix-flow, the forbidden-term check on every public surface (branch, title, body, commit message, newsfragment, comments), the backport labels, the plan confirmation, when the adversarial reviewers run, the Subversion private-patch and publication gate, and the recap. The fixability call, finding existing PRs, the plan, the code and the PR body stay with the model. The scrub reuses magpie_vcs.publication.scrub — the same check propose-commit runs — instead of a third copy of the 5c list; security-management now depends on the magpie-vcs workspace member. Reporter names, verbatim private tracker text and `security` as a word in a branch name are added on top. SKILL.md becomes a router (7,435 -> 7,331 tokens); the Step 0 checklist moved to outcomes/preflight.md behind a one-line summary of each check. The step-0-fix-flow, 5a, 5c, 5e, 5f, 6 and 11 suites become pytest cases named after each former case (50 -> 31 model cases); the 31 remaining cases pass. Behaviour changes: - A Subversion commit or new-branch command without --scrub is never shown. - A newsfragment is never proposed by default, and one carrying security framing is flagged. - The backport rule reads the next main release explicitly (main_version) instead of inferring it from the milestone name. Part of #1672 Generated-by: Claude Opus 5
potiuk
force-pushed
the
perf/security-5-fix
branch
from
October 19, 2026 17:59
3794c82 to
a3a2dea
Compare
potiuk
added a commit
that referenced
this pull request
Oct 19, 2026
Hand-sync of tools/spec-loop/specs/ with the functionality that landed between ccb53a3 and 03c15a6. Specs changed: - security-issue-lifecycle: the tools/security-management shared library gains drafting, recipients and numbered; the package reuses github-body-field, generate-cve-json and magpie-vcs (the embargo scrub); every skill of the family now has its CLI family, completing the deep split (#1672); the Validation block runs its pytest suite. - .last-sync bumped to 03c15a6. No spec change needed (specs already updated in the commit itself): 03c15a6 (#1712), c819c90 (#1711), dacf00a (#1710), cb6bb8b (#1705). Exempt: aee01bf (the previous sync), 0bd021f (npm pin bump in prek hooks). Generated-by: Claude Opus 5
8 of 19 tasks
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.
Layer 5, the last skill of the security-family deep split (#1672), stacked on #1711:
security-issue-fix's rule-shaped steps move into anissue-fixfamily oftools/security-management.flowmagpie-vcs fix-flow's exit and JSONscrubbackportparse-replyshared.numbered)review-plansvn-share,svn-gaterender-recapThe scrub is not a third copy of the 5c list. It runs
magpie_vcs.publication.scrub— the checkpropose-commitalready applies — through a typed wrapper, sosecurity-managementnow depends on themagpie-vcsworkspace member. It adds reporter names, verbatim private tracker text, andsecurityas a word in a branch name. Exploitation detail and the "sensitive" wording stay the model's check.SKILL.mdbecomes a router (7,435 → 7,331 tokens); the Step 0 checklist moved tooutcomes/preflight.mdbehind a one-line summary of each check. Thestep-0-fix-flow,5a,5c,5e,5f,6and11suites become pytest cases named after each former case (tests/test_issue_fix.py), which also pins the deterministic parts of steps 7–9; the skill's model cases go from 50 to 31, and all 31 pass on a self-eval.Behaviour changes
commitornew-branchcommand without--scrubis never shown.main_version) instead of inferring it from the milestone name.Spec
security-issue-lifecycledescribes the new family.Part of #1672
Generative AI disclosure
Drafted with Claude Code (Claude Opus 5) and reviewed by the author.
🤖 Generated with Claude Code