ci: add Conventional Commits PR-title gate - #48
Conversation
Adopt the shared semantic-pr reusable workflow from ci-workflows as a thin pr-title caller. Repos squash-merge with the squash title set to PR_TITLE, so the PR title becomes the default-branch subject; this gates a Conventional-Commits history. Emitted required check: pr-title / pr-title. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 4bea7b02d8
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| # PR_TITLE, so the PR title becomes the default-branch subject — this gates the | ||
| # Conventional-Commits history. `edited` re-validates on a re-title. The emitted | ||
| # required-check context is `pr-title / pr-title`. | ||
| on: |
There was a problem hiding this comment.
Run the title gate from the base workflow
For PRs that touch .github/workflows/pr-title.yml, this pull_request trigger evaluates the workflow in the PR merge/head context, whereas GitHub documents pull_request_target as running from the default-branch workflow instead. Because this check is meant to become a required governance gate, a PR can keep the pr-title / pr-title check name but change the workflow body to a passing no-op and merge a non-Conventional title; this job only reads PR metadata and does not checkout or run PR code, so it should use pull_request_target for this title-only validation.
Useful? React with 👍 / 👎.
… style (#124) ## Summary Codifies six open decisions from the org's issue/PR consistency assessment into `conventions/process/issue-tracker.md`: - **#9** `entities-governance-doc-topology-reference-style` — abstracts the personal-vs-org repo-topology prose (no more named `melodic-software/github-iac` / `kyle-sexton/github-iac` links); points at `github-iac`'s `GovernedRepositories.cs` as the sole source of truth for which repositories are governed and how. - **#23** `entities-closing-keyword-house-style-convention` — codifies native GitHub closing keywords (`Closes`/`Fixes`/`Resolves` `#N`) as the default house style, with `provisioning`'s stricter requirement (native keyword plus a manual `## Related` section, per decisions #58/#59) as the one named exception. - **#25** `naming-issue-title-vocabulary-governance` — codifies issue titles as free text with no enforced prefix vocabulary (no `[CC]`-style conventional-commit tags), documenting the existing silence as a deliberate choice. - **#45** `entities-assignee-claiming-guidance-relevance` — keeps the existing assignee-plus-lease claiming guidance but marks it explicitly deferred, with an activation trigger (required reviewers / multi-maintainer assignment contention). - **#48** `metadata-codeowners-adoption` — adds a one-line note that CODEOWNERS adoption is deferred, contingent on decision #11 (`required_approving_review_count` staying at 0 org-wide) — CODEOWNERS is inert without required reviews. - **#49** `comments-codify-human-conventions` — codifies three optional documented conventions: a 🤖 footer marking bot-authored comments, citing evidence when closing on it, and a 🔒 marker for claimed issues (explicitly framed as the lightweight interim signal until #45's mechanism activates). Decisions Log: https://claude.ai/code/artifact/232ecdce-8316-4880-8c0a-dc3c7dcf3a63 ## Test plan - [x] `lefthook run pre-commit` — typos, editorconfig, gitleaks, markdownlint all pass - [x] Grepped the file for residual `kyle-sexton`/named `github-iac` repo references — none remain - [ ] Human review of tone/placement against the rest of the process conventions 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
Summary
Adopt the shared semantic-pr reusable workflow from ci-workflows as a thin
pr-title.ymlcaller, pinned to ci-workflows@f82733b. This repo squash-merges with the squash title set toPR_TITLE, so the PR title becomes the default-branch subject — this gates a Conventional-Commits history.[opened, edited, reopened, synchronize](editedre-validates on re-title).pr-title / pr-title(to be required in thegithub-iacruleset only after this is merged and emitting).🤖 Generated with Claude Code