Visitar URL original
Bring the Publisher Concurrency and Aggregator Name to the Workflow Contract by ptr727 · Pull Request #579 · ptr727/Utilities · GitHub
Skip to content

Bring the Publisher Concurrency and Aggregator Name to the Workflow Contract - #579

Merged
ptr727 merged 2 commits into
developfrom
chore/resync-workflow-interfaces
Nov 9, 2026
Merged

ptr727 merged 2 commits into
developfrom
chore/resync-workflow-interfaces

Conversation

@ptr727

@ptr727 ptr727 commented Nov 9, 2026

Copy link
Copy Markdown
Owner

Summary

Brings two workflow interface points onto the hub's WORKFLOW.md contract, the interface-workflow step of the hub's RESYNC.md.

  • publish-release.yml: the concurrency group is now ref-scoped, ${{ github.workflow }}-${{ github.ref }}, with a run-scoped suffix for a push the plan job will not publish (D7.1). The expression is byte-identical to the hub's catalog publish-release.yml and tracks the pinned publish-plan-task.yml push rule and actor allowlist. cancel-in-progress stays false.
  • test-pull-request.yml: the required aggregator takes its ruleset-bound name, Check pull request workflow status job, only on a pull_request run (D1.5). Push and dispatch runs post Check workflow status job, so they cannot satisfy the required check on a pull request's head. The ruleset context is unchanged.

Findings closed, from audit run 2026-11-09T16:22:11Z | hub c175d557: the interface finding on test-pull-request.yml and the concurrency finding on publish-release.yml.

Merge order

Merge after the instruction-set resync pull request. This repository's current GOVERNANCE.md and WORKFLOW.md still describe the old ref-independent publisher group, and that pull request carries the hub's current text.

Verification

  • actionlint passes on both workflows.
  • A local strict review pass is recorded for this head. It confirmed the expression against the pinned plan task for every trigger, and its one finding was the merge-order dependency above.

🤖 Generated with Claude Code

…ontract

Scope the publisher's concurrency group to the ref, with a run-scoped
group for a push the plan job will not publish, per WORKFLOW.md D7.1 and
the hub's catalog publish-release.yml. Give the required aggregator its
ruleset-bound name only on a pull_request run, per D1.5, so a push or
dispatch run on a pull request's head cannot post the required check.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@ptr727 ptr727 added the comments Permits the comment lines the pull request adds or edits, which the prose gate otherwise refuses label Nov 9, 2026
Copilot AI lite review requested due to automatic review settings November 9, 2026 16:34
@ptr727 ptr727 added the comments Permits the comment lines the pull request adds or edits, which the prose gate otherwise refuses label Nov 9, 2026
@coderabbitai

coderabbitai Bot commented Nov 9, 2026 •

Copy link
Copy Markdown

Important

  • Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

Run configuration

  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

Share

@ptr727

ptr727 commented Nov 9, 2026

Copy link
Copy Markdown
Owner Author

A recorded local strict-review pass covers head 4378867d8e37a63c0c6022b2ea3e94121a3fecda, the content this pull request carries at that commit against develop, and it recorded 1 finding.

@codecov

codecov Bot commented Nov 9, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 70.54%. Comparing base (ea0fd03) to head (0cea05a).

Additional details and impacted files
@@           Coverage Diff            @@
##           develop     #579   +/-   ##
========================================
  Coverage    70.54%   70.54%           
========================================
  Files           13       13           
  Lines         1219     1219           
  Branches       111      111           
========================================
  Hits           860      860           
  Misses         319      319           
  Partials        40       40           
Flag Coverage Δ
dotnet 70.54% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The change still has an unresolved critical contract violation in the publisher workflow, with an additional comment-level compliance issue.

2 open issues
What changed in this PR

Updates GitHub Actions workflows to align publisher concurrency and pull-request status-check naming with the workflow contract.

Changes:

  • Makes publisher concurrency ref-scoped while isolating non-publishing push runs and retaining cancel-in-progress: false.
  • Uses the ruleset-bound aggregator name only for pull_request events.
  • The publisher workflow change must follow the instruction-set resync; its contract citation in the workflow comment should also be removed.
File Summary
.github/​workflows/​test-pull-request.yml Selects the required aggregator name for pull-request runs and a separate name for push and dispatch runs.
.github/​workflows/​publish-release.yml Updates publisher concurrency grouping and documents its behavior.

Review effort: Lite

Comment thread .github/workflows/publish-release.yml Resolved
Comment thread .github/workflows/publish-release.yml Resolved
Trim the publisher's concurrency comment to the hub catalog's two lines.
The removed lines paraphrased WORKFLOW.md D7.1, and a comment may name
the section holding its why but never restates that section's text.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@ptr727

ptr727 commented Nov 9, 2026

Copy link
Copy Markdown
Owner Author

A recorded local strict-review pass covers head 0cea05ab4aaa935f8e3abcc40401e1487f6debdf, the content this pull request carries at that commit against develop, and it recorded 0 findings.

ptr727 added a commit that referenced this pull request Nov 9, 2026
## Summary

Resyncs the carried instruction set with hub `ptr727/ProjectTemplate` at
`c175d557`, step 1 of the hub's `RESYNC.md`.

- `AGENTS.md`, `GOVERNANCE.md`: every verbatim section re-vendored with
`scripts/carry.py apply-sections`, inserting the two newly declared
sections, "Design Before Code" and "Trust Boundaries and Hardening
Effort". The repository's own preamble, "Devcontainer", and "Repository
Layout" text is untouched.
- `WORKFLOW.md`: the hub canonical. The old copy matched a past hub
revision exactly and carried nothing of its own.
- `CODESTYLE.md`: the hub canonical, keeping this repository's
"Utilities .NET Conventions" section. The hub's pointers to its hub-only
"Running the Linters Locally" section are re-pointed at `OPERATIONS.md`:
linter invocations and shell checks at "Local Verification", the commit
hook's scope at "Tool Usage", and its install step at "Runbooks".
- `OPERATIONS.md`: the documented prose gate now runs through `uv run
--no-project --script`. It declares PEP 723 dependencies, so the bare
`python3` form failed on a host without them.

`CLAUDE.md` already matched the hub. Findings closed, from `audit run
2026-11-09T16:22:11Z | hub c175d557`: every `verbatim: AGENTS.md` and
`verbatim: GOVERNANCE.md` finding, and the `intent` advisories on
`AGENTS.md`, `GOVERNANCE.md`, `CODESTYLE.md`, and `WORKFLOW.md`.

## Merge order

Merge this first. #578, #579, and #580 each depend on text it carries.

## Verification

- markdownlint, editorconfig-checker, and the pinned prose gate pass on
the changed files. The documented `OPERATIONS.md` prose gate command
runs clean against this branch.
- Local strict review ran three passes. The first two found the
commit-gate pointer and the bare `python3` command, both fixed here. The
final pass over the full diff found nothing.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
@ptr727
ptr727 merged commit a47f096 into develop Nov 9, 2026
12 checks passed
@ptr727
ptr727 deleted the chore/resync-workflow-interfaces branch November 9, 2026 16:55
ptr727 added a commit that referenced this pull request Nov 9, 2026
## Summary

Promotes the hub resync to `main`. It carries four feature pull
requests, all merged into `develop` and resynced against hub
`ptr727/ProjectTemplate` at `c175d557`:

- #581 resyncs the instruction set: `AGENTS.md` and `GOVERNANCE.md`
verbatim sections, `WORKFLOW.md`, and `CODESTYLE.md` with the
repository's own .NET conventions kept. It also fixes the
`OPERATIONS.md` prose gate command, which now runs through `uv`.
- #578 re-vendors `.github/skills` and `.markdownlint-cli2.jsonc`. It
adds `decision-triage` and prunes `unattended-handoff`.
- #579 brings the publisher concurrency group onto D7.1 and gives the
required aggregator its ruleset-bound name only on a `pull_request` run
(D1.5).
- #580 reconciles the intent-fidelity files: `AUDIT.md`,
`.github/copilot-instructions.md`, `.editorconfig`, `.gitattributes`,
and `cspell.json`.

No shipped input changes, so this promotion publishes no package. Two
independent reasons:

- `git diff --name-only origin/main origin/develop` names none of the
publisher's push paths (`Utilities/**`, `version.json`,
`Directory.Build.props`, `Directory.Packages.props`).
`Directory.Packages.props` appears in this pull request's three-dot file
list only because `develop` (#576) and `main` (#577) took the same
Dependabot bump independently, so the trees already match. A push event
evaluates its path filter on the two-dot diff between the pushed
`before` and `after` commits.
- The pinned `publish-plan-task.yml` publishes a push to `main` only
when the actor is `ptr727-codegen[bot]` or `dependabot[bot]`. A
maintainer merging this promotion publishes nothing on any path.

## Audit

`audit run 2026-11-09T16:56:11Z | hub c175d557 | branch override
develop` reports 0 defect findings on `develop`, against the many
verbatim, tree, interface, and concurrency findings on `main` before the
resync. What remains is advisory:

- `.editorconfig-checker.json` and `version.json` are date-only intent
advisories. Their differences from the hub are this repository's own:
the `.artifacts/` exclusion and the 4.1 version floor.
- `.coderabbit.yaml`, `.pr_agent.toml`, and `.github/agent-policy.json`
are flagged hub-only. They are rendered reviewer configs every
repository carries, which ptr727/ProjectTemplate#3914 tracks declaring.
- A branch note says both workflow files changed on `main` (Dependabot
action bumps) and on `develop` since the merge base. A test merge of
`develop` into `main` auto-merges cleanly, and its tree equals
`develop`'s tree.

## Review coverage

#579 and #580 met every Merge Gate item. #581 and #578 merged into
`develop` with the maintainer's explicit authorization over item 2.
Their Lite Copilot rounds left files out of their file tables, which
sets the attested local pass aside (ptr727/ProjectTemplate#3955). Each
carried an attested local strict-review pass over every changed file.

🤖 Generated with [Claude Code](https://claude.com/claude-code)
ptr727-codegen Bot pushed a commit to ptr727/LanguageTags that referenced this pull request Nov 10, 2026
Updated
[dotnet-outdated-tool](https://github.com/dotnet-outdated/dotnet-outdated)
from 4.8.1 to 4.9.0.

<details>
<summary>Release notes</summary>

_Sourced from [dotnet-outdated-tool's
releases](https://github.com/dotnet-outdated/dotnet-outdated/releases)._

## 4.9.0

## What's Changed
* Adopt MCP 2026-07-28 spec with legacy version negotiation by @​slang25
in dotnet-outdated/dotnet-outdated#772
* Fix concurrent cache corruption during recursive file-based app
upgrades by @​DamianEdwards in
dotnet-outdated/dotnet-outdated#788
* Fix: Parameter --maximum-version ignores exact version references by
@​chefarbeiter in
dotnet-outdated/dotnet-outdated#671
* Show a friendly message instead of crashing when a solution has no
projects by @​DanielC000 in
dotnet-outdated/dotnet-outdated#771
* Surface package-upgrade stdout so failures are diagnosable by
@​timabell in
dotnet-outdated/dotnet-outdated#790
* Fix multiline central package version updates by @​onuracar-dev in
dotnet-outdated/dotnet-outdated#783
* Support versioned MSBuild project SDKs in project files by @​thomhurst
in dotnet-outdated/dotnet-outdated#793
* Preserve whitespace in Directory.Packages.props during upgrades by
@​symbiogenesis in
dotnet-outdated/dotnet-outdated#803
* Treat package references injected by custom SDKs as auto-referenced by
@​thomhurst in
dotnet-outdated/dotnet-outdated#795
* Preserve version ranges when upgrading packages by @​GREsau in
dotnet-outdated/dotnet-outdated#702
* Preserve MSBuild version variables across project and props files by
@​symbiogenesis in
dotnet-outdated/dotnet-outdated#805
* Replace McMaster command-line parsing with System.CommandLine by
@​slang25 in dotnet-outdated/dotnet-outdated#808
* Bump version to 4.9.0 by @​slang25 in
dotnet-outdated/dotnet-outdated#806

## New Contributors
* @​chefarbeiter made their first contribution in
dotnet-outdated/dotnet-outdated#671
* @​DanielC000 made their first contribution in
dotnet-outdated/dotnet-outdated#771
* @​timabell made their first contribution in
dotnet-outdated/dotnet-outdated#790
* @​onuracar-dev made their first contribution in
dotnet-outdated/dotnet-outdated#783
* @​thomhurst made their first contribution in
dotnet-outdated/dotnet-outdated#793
* @​GREsau made their first contribution in
dotnet-outdated/dotnet-outdated#702

**Full Changelog**:
dotnet-outdated/dotnet-outdated@v4.8.1...v4.9.0


Commits viewable in [compare
view](dotnet-outdated/dotnet-outdated@v4.8.1...v4.9.0).
</details>

Updated [ptr727.Utilities](https://github.com/ptr727/Utilities) from
4.1.105 to 4.1.109.

<details>
<summary>Release notes</summary>

_Sourced from [ptr727.Utilities's
releases](https://github.com/ptr727/Utilities/releases)._

## 4.1.109

## What's Changed
* Bump the actions-deps group with 4 updates by @​dependabot[bot] in
ptr727/Utilities#574
* Bump the nuget-deps group with 2 updates by @​dependabot[bot] in
ptr727/Utilities#576
* Resync the Instruction Set With the Hub by @​ptr727 in
ptr727/Utilities#581
* Resync the Skills Tree and Markdownlint Config With the Hub by
@​ptr727 in ptr727/Utilities#578
* Bring the Publisher Concurrency and Aggregator Name to the Workflow
Contract by @​ptr727 in ptr727/Utilities#579
* Reconcile the Intent-Fidelity Carried Files With the Hub by @​ptr727
in ptr727/Utilities#580
* Promote the Hub Resync to Main by @​ptr727 in
ptr727/Utilities#582


**Full Changelog**:
ptr727/Utilities@4.1.108...4.1.109

## 4.1.108

## What's Changed
* Bump the actions-deps group with 4 updates by @​dependabot[bot] in
ptr727/Utilities#575
* Bump the nuget-deps group with 2 updates by @​dependabot[bot] in
ptr727/Utilities#577


**Full Changelog**:
ptr727/Utilities@4.1.105...4.1.108

Commits viewable in [compare
view](ptr727/Utilities@4.1.105...4.1.109).
</details>

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comments Permits the comment lines the pull request adds or edits, which the prose gate otherwise refuses

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants