ci: add Conventional Commits PR-title gate#13
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: 941c77d4c7
ℹ️ 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".
| # Conventional-Commits history. `edited` re-validates on a re-title. The emitted | ||
| # required-check context is `pr-title / pr-title`. | ||
| on: | ||
| pull_request: |
There was a problem hiding this comment.
Run the title gate from the base workflow
Since this check is intended to become a required ruleset gate, running it on pull_request leaves the policy controlled by the PR's merge commit: a PR that edits .github/workflows/pr-title.yml can relax or replace the pr-title / pr-title job and still satisfy the required check with a non-Conventional title. GitHub documents pull_request_target as running in the default-branch context rather than the PR merge context, and this workflow only reads PR metadata without checking out head code, so using pull_request_target would enforce the base branch's gate while avoiding this bypass.
Useful? React with 👍 / 👎.
## Summary Restores the eval/test-coverage attrition identified by the salvage sweep (tier-3: items #13, #15–#23 plus the two flagged cosmetic-severity items), recreated genericized and validated against `plugins/skill-quality/reference/evals.schema.json`. Per-plugin version bumps + CHANGELOG entries. | Plugin | Version | Restored coverage | |---|---|---| | songwriting | 0.4.0 | All 13 medley behavioral evals mapped onto the multi-skill split (workflow 3, diagnosis 3, rhyme 2, song-form 2, co-write 2, object-writing 1); zero drops | | ai-briefing | 0.4.0 | 6 engine evals + 3 synthetic fixtures via the audience-defaults seam; the legacy Grok-preload case re-derived as an unreachable-RSS visible-degrade scenario (the flag never shipped; CI contract bans the token) | | event-storming | 0.4.0 | Offline board-export eval (id 8) + 74-line fixture for `--discover-bcs` — disjoint from the live-Miro-required eval, reconciliation noted inline | | codebase-audit | 0.3.0 | Scope-boundary eval: decline settings/MCP/hooks claim-extraction, route to `/claude-config-audit:settings-audit` | | discovery | 0.5.0 | Research floor-scaling ("floors are not targets") + broad-topic doubled-minimums evals, vendor-neutral | | source-control | 0.2.0 | Readiness security-gate eval + genericized fixture, mixed-actor (bot-fix-now vs human-pause) eval, three worktree evals (dry-run report-only, invalid-name rejection, batched-gh status + graceful degrade) | | docs-hygiene | 0.4.0 | Two self-contained fixture-backed cases (compress classification-table, declutter opt-out/section-exemption) — fixtures empirically verified against `detect.sh`; rename-references "add an eval case" clauses | | review-toolkit | 0.6.0 | code-review-fanout evals 6 → 20: dedup/severity-derivation, fix-pass safety fence (correctness never routed to /simplify), run-everything null-reconciliation + priority-ordering; 2 medley cases skipped (fixed-roster counts deliberately generalized away), their surviving assertions folded in | ## Verification - All 8 plugins pass `claude plugin validate`; `scripts/validate-plugin-contracts.mjs` passes (1311 files) - Every evals.json jq-parses and validates against the schema (ajv/check-jsonschema) - markdownlint-cli2 0 errors on new fixtures + CHANGELOGs; coupling grep (medley/consumer refs) clean - Rebased onto main post-#192; per-plugin validate re-run green after rebase 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_011xHkkNc7CR98L8Xz9Mu7ZA --------- Co-authored-by: Claude Fable 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