Repository navigation
Add a Catalog Snippet for the Release-With-Smoke Caller - #3113
Conversation
The release-with-smoke test-pull-request.yml shape lived only as a stub in docs/reusable-workflows.md, pinned to a placeholder no adopter could use. It is now catalog/snippets/workflows/test-pull-request-smoke.yml, pinned to 2.0.587, the release the publish-release.yml snippet already pins, whose build-release-task.yml declares every input the stub passes and defaults each enable_* input true, as the stub's comment says. The documented stub is that snippet byte for byte, which a new test in tests/test_release_guards.py holds, and the Stage 2 item tracking the missing snippet is ticked. The wrapped branch comment is split into one sentence per line in both copies. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Both byte-for-byte stub tests now read the documented YAML blocks through one yaml_blocks helper built on fenced_blocks. The snippet README no longer names "Adopting the Gates" as holding stub shapes without a snippet, and the Stage 2 item records the pin as of landing rather than as a claim about another file. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…Reason yaml_blocks now wraps the regex both byte-for-byte tests used, so fenced_blocks keeps reading only AUDIT.md as its docstring says. The snippet README records 2.0.587 as the release publish-release.yml was pinned to when the smoke snippet landed, rather than an interface milestone an earlier release had already reached. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
A recorded local strict-review pass covers head |
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 12 minutes. View limit details
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
🟡 Changes recommended
Correct the default-input documentation and strengthen the consistency test assertions.
3 open findings
What changed in this PR
Adds and documents a pinned release-with-smoke workflow catalog snippet, with tests enforcing documentation consistency.
Changes:
- Adds the smoke workflow snippet.
- Updates documentation and catalog listings.
- Adds synchronization checks.
| File | Description |
|---|---|
tests/test_release_guards.py |
Adds YAML extraction and consistency checks. |
docs/reusable-workflows.md |
Documents and links the smoke caller. |
catalog/snippets/workflows/test-pull-request-smoke.yml |
Adds the pinned workflow snippet. |
catalog/snippets/workflows/README.md |
Lists the new catalog entry. |
🧠 Review effort: Lite
💡 Configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
yaml_blocks now filters fenced_blocks like shell_blocks does, so a fence shape the scanner refuses fails loudly rather than being skipped, and the scanner docstring names docs/reusable-workflows.md as a document under test. The placeholder-pin assertion is dropped, since the repo gate sha-pin check already scans catalog/snippets/workflows. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## develop #3113 +/- ##
==========================================
Coverage ? 63.94%
==========================================
Files ? 17
Lines ? 9145
Branches ? 0
==========================================
Hits ? 5848
Misses ? 3297
Partials ? 0
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
The source scan guarding the fence extractors now includes yaml_blocks beside its siblings, and the fenced_blocks docstring sentence naming the documents under test is split to fit the sentence-length limit. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
A recorded local strict-review pass covers head |
|
Answering the 2 local strict review findings this pull request body listed at opening (see "Local review findings listed at opening"):
The pass over head 5204d8b raised no findings. |
|
@coderabbitai review |
|
… Fixes to Main (#3146) - #3135 makes `gh-write-guard` read a gh write's subcommand and target the way gh parses them: the subcommand is found past flags before the command and before the subcommand, an `R` inside a short-option cluster is read as a target, `GH_REPO` is read as a target, a run-time repository owner on a write fails closed, and a run-time word where `pr` or `merge` goes fails closed beside `--admin` or where word splitting may split it - #3139 releases the bootstrap lock when a `bootstrap.ps1` run ends rather than when its process does, so a second run typed at the same pwsh prompt is no longer refused the lock - #3130 matches tool names and the `all` keyword by case in the Windows agents loaders, as the Linux loaders already do - #3128 reads CodeRabbit's rate limit on a reply to an explicit review command in `pr_review.py` - #3126 reconciles VSCode-Server-DotNetCore in the hub after its resync - #3124 logs the Docker task's build-base leg in to Docker Hub - #3122 names the carried skill and the skipped review correctly - #3120 states the subprocess encoding rule in `CODESTYLE.md`, where carriers read Python style - #3118 and #3111 move the release-guard tests' workflow-command checks onto `runner_commands`, and test the alternatives wiring at the `audit_repo` and `fidelity_pass` call sites - #3116 stops the doc gates' printed names forging workflow commands - #3113 adds a catalog snippet for the release-with-smoke caller - #3109 moves the `workflow_reuse` fetch onto `audit.contents_text` - #3105 accepts `.codecov.yml` as an alternative to `codecov.yml` - #3103 adds a pip ecosystem to the carried Dependabot snippet - #3100 prefers the venv's ruff and pyright for a declared pip directory - #3098 tracks composite action pins in Dependabot - #3096 reads an uppercase Markdown suffix as Markdown at every prose gate branch After this merges, the host-safety installer payload changes, so the maintainer runs the installer after promotion. Closes #1416 Closes #1425 Closes #1578 Closes #1874 Closes #1892 Closes #1899 Closes #2804 Closes #2850 Closes #2852 Closes #2854 Closes #2996 Closes #3065 Closes #3067 Closes #3069 Closes #3079 Closes #3080 Closes #3089 Closes #3093 Closes #3101 Closes #3106 Closes #3107 Closes #3137 🤖 Generated with [Claude Code](https://claude.com/claude-code) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Added a pull-request smoke build that runs when relevant release files change and reports the combined validation and build status. * Repository audits now recognize `.codecov.yml` as an alternative to `codecov.yml`. * **Improvements** * Python linting and type checks use tools from declared project environments when available, with fallbacks for missing tools. * Workflow and lint reports safely display unusual filenames and command-like text. * GitHub write-target checks now account for additional command forms and fail closed when targets cannot be verified. * Rate-limit detection now recognizes another CodeRabbit response format. <!-- end of auto-generated comment: release notes by coderabbit.ai -->


Summary
catalog/snippets/workflows/test-pull-request-smoke.yml, the release-with-smoketest-pull-request.ymlcaller, pinned to6c88850128629bb449fd73c7fbf82968c6cd1557 # 2.0.587, the release thepublish-release.ymlsnippet pins. At that tagbuild-release-task.ymldeclares every input the smoke job passes and defaults eachenable_*input true, as the stub's comment says.docs/reusable-workflows.md"Adopting the Gates" links the snippet, and its stub block is now that snippet byte for byte, so the@<hub-main-commit-sha> # <release-tag>placeholder pins are gone from it. The Stage 2 snippet item is ticked. The wrappedbase_ref/ref_namecomment is split to one sentence per line in both copies.catalog/snippets/workflows/README.mdlists the snippet, and no longer names "Adopting the Gates" as holding stub shapes without one.tests/test_release_guards.pyadds a test holding the doc block and the snippet byte-identical, sharing ayaml_blockshelper with the existingpublish-release.ymlcheck.Placeholders in the other shapes (the
validateinput fragments, the pure-function and type-specific stubs) are unchanged, since the issue asks only for this shape's snippet.The new snippet's comments are moved verbatim from the doc stub, so this pull request carries the
commentslabel.Closes on promotion: #2854
Local review findings listed at opening
The local strict review's two-round edit budget was spent on the opening push, so these two went to this pull request's review loop. Both are now closed:
introduced, design:yaml_blocksused a regex rather thanfenced_blocks. Fixed in 587f53a, which builds it onfenced_blocksand namesdocs/reusable-workflows.mdin that scanner's docstring.introduced, design: the new test'sassertNotIn("<hub-main-commit-sha>", stub)overlapped the repo gate'ssha-pincheck. Fixed in 587f53a, which drops it.Test plan
python3 -m unittest discover -s tests -p test_release_guards.py: 27 tests OK. Changing the snippet's pin comment orsmoke: truefails the new test.scripts/prose_lint.py --diff origin/developwith comments allowed,scripts/repo_gate.py(sha-pin resolved 8 pins),spec/validate.py,spec/workflow_reuse.py --selftest,scripts/build_dist.py --check, ruff, mypy: clean.scripts/docker_lint.pymarkdownlint, cspell, editorconfig-checker, actionlint: clean.🤖 Generated with Claude Code