ci(rename): make the self-PR skip tolerant of both repo slugs - #500
Conversation
Groundwork for renaming this repo to claude-sdlc-harness, landed ahead of the rename so the rename itself cannot break anything. `pr-review.yml` skips the paid Claude review on this repo's own PRs with `github.repository != 'BaseInfinity/claude-sdlc-wizard'`, because this repo uses Codex for cross-model review instead. Both reviewers independently flagged the same failure: a GitHub rename does not rewrite that string. The redirect covers web and git operations, not a literal comparison inside a workflow. The moment the repo is renamed the condition silently flips true and the review this skip exists to prevent starts running on every self-PR — burning quota with nothing to indicate anything changed. Listing both slugs makes the rename a no-op for this gate, in either direction, so it can be flipped without a flag day and rolled back without a second one. The test previously pinned the old slug exactly; it now requires a negative comparison for every slug this repo answers to. Its inverted-operator negative control still fires, verified by mutation. Not addressed here, and NOT covered by GitHub's redirect: npm Trusted Publishing binds to the exact repository name, so the publisher config on npmjs.com must be updated at rename time or the next tagged release fails at publish. That is a manual step in the npm console, not a code change. Suite 65/65.
|
USER-APPROVED MERGE OVERRIDE Reason: Maintainer directed the wizard->harness rename this session and instructed me to execute it ('wtf you rename it', 'you can do all that right?'). This PR is the safety net that must land BEFORE the rename: both Fable and Codex independently identified pr-review.yml's literal repo-slug comparison as silently flipping true on rename and starting the paid self-review on our own PRs. TDD RED observed, mutation-verified, suite 65/65, CI validate green in 3m59s. HARD tier applies because the diff touches .github/workflows/. Waived (would otherwise have blocked):
Still verified, not waivable: CI Head: Posted by |
…hipping (#506) The repo is now BaseInfinity/claude-sdlc-harness. The npm package stays agentic-sdlc-wizard and the plugin IDs, CLI bin and slash commands are unchanged — those are what an install depends on, and renaming them would force every consumer to reinstall for no functional gain. The old repo URL still redirects, and npm Trusted Publishing has been re-pointed at the new slug, which GitHub's redirect does not cover. Carries #495 (--user-approved), #497 (three shipped defects, and five review rounds fixing the tests meant to catch them), #500 (dual-slug CI tolerance, landed before the rename so the rename could not break it), #503 (the rename) and #505 (the Cowork gate fix and the Fable-decides contract). Version markers: eleven had to move together, and the suite caught three I missed — the cowork marketplace entry, the update skill's example, and the SDLC.md table. That is GH #493's defect class caught by tests rather than by review, which has not happened before. Historical v1.94.0 references in ROADMAP and in two test comments are left alone deliberately: they describe what was true then. Suite 65/65.
…hipping The repo is now BaseInfinity/claude-sdlc-harness. The npm package stays agentic-sdlc-wizard and the plugin IDs, CLI bin and slash commands are unchanged — those are what an install depends on, and renaming them would force every consumer to reinstall for no functional gain. The old repo URL still redirects, and npm Trusted Publishing has been re-pointed at the new slug, which GitHub's redirect does not cover. Carries #495 (--user-approved), #497 (three shipped defects, and five review rounds fixing the tests meant to catch them), #500 (dual-slug CI tolerance, landed before the rename so the rename could not break it), #503 (the rename) and #505 (the Cowork gate fix and the Fable-decides contract). Version markers: eleven had to move together, and the suite caught three I missed — the cowork marketplace entry, the update skill's example, and the SDLC.md table. That is GH #493's defect class caught by tests rather than by review, which has not happened before. Historical v1.94.0 references in ROADMAP and in two test comments are left alone deliberately: they describe what was true then. Suite 65/65.
Groundwork for renaming this repo to
claude-sdlc-harness. Landed before therename so the rename itself cannot break anything.
The defect this prevents
pr-review.ymlskips the paid Claude review on this repo's own PRs:github.repository != 'BaseInfinity/claude-sdlc-wizard'Both reviewers independently flagged the same failure: a GitHub rename does not
rewrite that string. The redirect covers web and git operations, not a literal
comparison inside a workflow. The moment the repo is renamed, the condition flips
true and the review this skip exists to prevent starts running on every self-PR —
burning quota with nothing to indicate anything changed.
Listing both slugs makes the rename a no-op for this gate in either direction,
so it can be flipped without a flag day and rolled back without a second one.
Verification
!=to==still fails the negative controlWhat this does NOT cover — the step a redirect cannot do
npm Trusted Publishing binds to the exact repository name.
release.ymlpublishes via OIDC, and the publisher configured on npmjs.com names
BaseInfinity/claude-sdlc-wizard+release.yml. After the rename the OIDC claimno longer matches, and the next tagged release fails at publish until the
publisher config is updated in the npm console.
package.json'srepository.urlmust be updated to match as well, since provenance verification checks it.
Codex live-tested the redirect claim rather than assuming it: marketplace
addandupdateboth succeed through this repo's previous slug(
BaseInfinity/agentic-ai-sdlc-wizard) on Claude Code 2.1.221. So plugin installssurvive — but never create a new repo at either historical name, since that destroys
the redirect for every pinned install.
Part of the wizard → harness rename. Prose rename follows separately; it is not a
sed(skills/sdlc/SKILL.mdlands at exactly 20,001 bytes against a 20,000 ceilingif all 8 occurrences are replaced).