Skip to content

ci: add Conventional Commits PR-title gate - #13

Merged
kyle-sexton merged 1 commit into
mainfrom
ci/pr-title-gate
Jun 27, 2026
Merged

ci: add Conventional Commits PR-title gate#13
kyle-sexton merged 1 commit into
mainfrom
ci/pr-title-gate

Conversation

@kyle-sexton

Copy link
Copy Markdown
Contributor

Summary

Adopt the shared semantic-pr reusable workflow from ci-workflows as a thin pr-title.yml caller, pinned to ci-workflows@f82733b. This repo squash-merges with the squash title set to PR_TITLE, so the PR title becomes the default-branch subject — this gates a Conventional-Commits history.

  • Gating; triggers on [opened, edited, reopened, synchronize] (edited re-validates on re-title).
  • Emitted required check: pr-title / pr-title (to be required in the github-iac ruleset only after this is merged and emitting).

🤖 Generated with Claude Code

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>
@kyle-sexton
kyle-sexton merged commit 6bd4c95 into main Jun 27, 2026
15 checks passed
@kyle-sexton
kyle-sexton deleted the ci/pr-title-gate branch June 27, 2026 23:12

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 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:

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge 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 👍 / 👎.

kyle-sexton added a commit that referenced this pull request Jul 15, 2026
## 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>
kyle-sexton added a commit that referenced this pull request Aug 4, 2026
…ive pages (#1920)

## Summary

Doc-alignment roster row 16: **Prompt caching (API)** — first captures
of both the API page (152,223 B) and its harness sibling (29,721 B),
with a hard surface-scoping discipline (API vs harness caching semantics
are different products' claims). Seven repo surfaces stating caching
facts swept; five verified clean and left alone (including boris's
$12.50/$1 figures — confirmed contextually right for subagent
orchestration, where the five-minute TTL governs); two carried real
defects:

**playbooks 0.6.15** — `orchestration.md`'s continue-an-oriented-worker
rationale claimed "accumulated context is a cache read". Wrong in the
chapter's own modal case: the harness page states subagents build their
own cache *and* use the five-minute TTL even on subscription, so a
worker resumed after a longer fan-out wave re-writes its whole context
at the five-minute cache-write rate ("1.25 times the base input tokens
price"), not a cache-read rate. The recommendation stands; the reason is
now the re-derivation saved (a replacement pays the same tokens plus the
rediscovery tool turns), with the TTL and pricing anchors cited.

**docs-hygiene 0.9.5** — `extract-ssot`'s anti-pattern #9 ("Cache
invalidation cascade") rested on a mechanism that is dead on the skill's
own declared surface: the harness page states mid-session edits of
always-loaded files keep the cache (the edit just doesn't apply), and
cross-session sharing keys on the git-status snapshot, which any commit
breaks. Rewritten in place as **"Always-loaded SSOT propagation lag"** —
corrections ship that live sessions don't see until
`/clear`/`/compact`/restart — with a scope fence for the API surface
(where prefix volatility genuinely costs an Agent SDK fleet), scoped to
*unscoped* rules files (path-scoped rules load lazily; pre-load edits
apply), and slot 9 preserved because #10#13 are cited by number in
eight places. The dead vocabulary survives only in the changelog, quoted
as removed.

Routed, not acted on: the owner's dotfiles CLAUDE.md caching claim
verified correct with one additive omission (fast mode is a third
cache-key element) — recorded for dotfiles routing; the API page's
explicit-default-effort no-invalidate row flagged as a future I17-b
enrichment parallel.

## Test plan

- Docs-only; markdownlint 0 errors; version/changelog parity both
plugins; scripted quote fidelity 11/11 against the captured pages.
- Orchestrator-commissioned Fable verifier: both live fetches (MD5s
exact), both correction logics reconstructed, the slot-9 citation count
independently verified, both contested calls upheld — substance PASS
with 1 real defect (a surviving dead-mechanism table row in the same
file) + 2 precision nits (cache-write rate; unscoped-rules scoping), all
three fixed and re-checked **ALL PASS** including an independent
dead-vocabulary sweep.

## Related

- No linked issue.
- Doc-alignment loop, roster row 16. Predecessors: #1908#1919.

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

https://claude.ai/code/session_019gaVX25Txd6GXdiu9HEH3X

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant