Skip to content

feat(skills): add PR readiness guardrail - #63

Closed
tommy230 wants to merge 5 commits into
kunchenguid:mainfrom
tommy230:add/pr-readiness-skill
Closed

tommy230 wants to merge 5 commits into
kunchenguid:mainfrom
tommy230:add/pr-readiness-skill

Conversation

@tommy230

@tommy230 tommy230 commented Jun 24, 2026 •

Copy link
Copy Markdown

What

Adds a pr-readiness skill and wires firstmate's PR workflow to use it before public PR actions.

The skill is meant to catch the failure mode where a branch or PR is presented to a maintainer while it is stale, conflicting, missing validation evidence, too broad, or still written with private local context that does not belong in public PR text.

Why

Fork/replacement PR work often needs one last maintainer-facing audit after local validation: refresh the actual base repo/ref, check mergeability, compare against current base, look for overlap with recently merged work, verify public text, and stop before asking anyone to review or merge if the PR is not ready.

Changes

  • Adds .agents/skills/pr-readiness/SKILL.md.
  • Covers both existing PRs and unpublished local branches.
  • Handles fork/replacement flows by fetching the actual target base repository/ref instead of assuming origin/main.
  • Defines stop conditions for dirty merge state, missing checks, public-text hygiene problems, broad unrelated scope, and potentially superseded work.
  • Adds a maintainer-facing PR body format.
  • Updates firstmate PR-ready/direct-PR guidance and no-mistakes completion guidance to run the readiness audit before presenting or merging PRs.

Validation

  • Skill validator: quick_validate.py .agents/skills/pr-readiness - passed
  • no-mistakes run 01KVWBJ8EG90PBFPEBP33JW3V8 - checks-passed

The no-mistakes review fixed three issues before final validation:

  • Use the PR's actual base ref instead of assuming main.
  • Add a pre-PR path for unpublished local branches.
  • Fetch fork/replacement PR bases from the actual target repository instead of assuming origin.

GitHub currently reports no status checks configured for this fork PR, so the validation evidence is the local/no-mistakes run above.

@tommy230 tommy230 closed this Jun 24, 2026
@Julian-Dasilva

Copy link
Copy Markdown

No description provided.

iscooter added a commit to iscooter/firstmate that referenced this pull request Sep 21, 2026
Two defects in the test: the always-mode bypass was never triggered (a
ruleset edit is not a PR event), and the window that was exercised had a
behind-branch blocker under strict required status checks.

Corrects the claim that GitHub merges as itself rather than as the App —
merged_by on demo kunchenguid#63/kunchenguid#62 is bankrate-bender[bot].

Demo repo fully restored and verified.

Co-Authored-By: Claude Opus 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.

2 participants