feat: Azure DevOps PR-flow rails + dual-platform docs (kit sync) - #45
Merged
Conversation
…lugin PR #47)
Mirrors the harness changes from claude-code-sdlc PR #47 (Folds C+D) into the
canonical kit — the plugin's harness/ is a generated copy and its CI enforces
byte-identity with this repo's main:
- review-gate.{sh,ps1}: `az repos pr create` joins git push / gh pr create as
a gated trigger; leading VAR=value prefixes stripped before matching (closes
AZURE_DEVOPS_EXT_PAT=... az repos pr create and FOO=1 git push bypasses);
ps1 twin now splits segments on newlines like the sh twin (multi-line
commands walked past it on Windows)
- new packs/cicd/azure-devops/settings.fragment.json merged into
.claude/settings.json: read-only az queries allowed (az repos pr SHOW — az
has no 'pr view'), mutating az + configure-branch-policies.sh behind ask,
.azuredevops/** gated like .github/**
- pr-writer skill names both platforms (--labels risk:high on ADO)
- kit docs (HARNESS.md, README.md install map, CLAUDE.md.template examples)
describe the .azuredevops/ layout the platform-aware installer produces
- .gitattributes: *.sh pinned to LF (a Windows autocrlf clone ships hooks
bash cannot run — caught by the plugin's Windows CI leg)
Verified against the plugin working tree: sync_kit.py --check reports IN SYNC
(139 files); hook behavior covered by the plugin's new test_review_gate_hook.py
(sh table live on ubuntu+windows, ps1 table live on windows).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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.
Companion to claude-code-sdlc PR #47 (Azure DevOps repo support). The plugin's
harness/is a generated copy of this repo'skit/, and its CI pins byte-identity againstmain— so the harness changes from that PR's Folds C+D need to land here first. Merge order: this PR, then #47 (its "harness == kit" check goes green once this is on main).What
kit/hooks/review-gate.{sh,ps1}—az repos pr createbecomes a gated trigger alongsidegit push/gh pr create. Two hardenings that also strengthen the existing triggers, stated plainly: leadingVAR=valueprefixes are stripped before matching (AZURE_DEVOPS_EXT_PAT=... az repos pr createis a documented az auth pattern and walked past the gate — as didFOO=1 git push), and the ps1 twin now splits segments on newlines like the sh twin always did (a multi-line command with the trigger on a later line bypassed it on Windows).kit/packs/cicd/azure-devops/settings.fragment.json(new) +pack.yamloverlay — the ADO twins of the core settings' GitHub entries: read-onlyaz repos pr show/list+az pipelines runs/buildqueries allowed (note: az has nopr view— that's gh vocabulary), mutatingaz repos policy/az devops invoke/configure-branch-policies.shbehind ask,.azuredevops/**gated like.github/**.kit/skills/pr-writer/SKILL.md— open step names both platforms;--labels risk:highverified against the live az CLI.HARNESS.md,README.mdinstall map,CLAUDE.md.templateexamples) — describe the.azuredevops/layout the plugin's platform-aware installer now produces (pipelines in.azuredevops/pipelines/, rubrics/ledgers in.azuredevops/rails/, branch policies replacing ruleset+CODEOWNERS)..gitattributes(repo root, new) —*.sh text eol=lf: an autocrlf Windows clone of this repo ships hook/rails scripts bash cannot execute (set -uo pipefail\r). The plugin repo hit exactly this on its Windows CI leg and now carries the same pin.Verification
sync_kit.py --checkagainst the plugin working tree: IN SYNC, 139 files — this PR and plugin PR #47 are byte-identical mirrors.test_review_gate_hook.pyruns the real.shhook against a 14-case trigger table (adversarial forms included) on ubuntu + windows, and the.ps1twin's table went green on its first real execution (Windows CI).🤖 Generated with Claude Code