--- name: prepare-pr description: Open, update, title, review, or prepare libcrafter pull requests so commits are ready for rebase-and-fast-forward landing and required validation is documented. --- # Prepare PR Use this skill whenever you open, update, title, review, or prepare a pull request for this repository. ## Branch Name Branches created for PR work must follow the repo-local `create-branch` skill: ```text kind/short-slug ``` Use typed names such as `feature/complete-oracle` or `fix/normalize-tcp-options`, not bare task names such as `complete-oracle`. ## PR Title The PR title summarizes the preserved commit series and must follow the same Conventional Commits policy as regular commits: ```text type(scope): subject ``` Allowed types are `build`, `chore`, `ci`, `docs`, `feat`, `fix`, `perf`, `refactor`, `revert`, `style`, and `test`. Scopes are required. Use the narrowest useful scope, such as `ci`, `pcap`, `validation`, `interop`, `docs`, `net`, or a protocol family. Do not include PR numbers, reviewer thanks, or branch metadata in the title. ## PR Body Fill the template with: - a concise summary of behavior and scope - exact validation commands and their results - notes about any skipped validation or known residual risk Do not mention internal agent workflow unless the user explicitly asks for it. ## Merge Expectations PRs should be rebased onto the latest protected base branch and then landed by fast-forwarding the base branch to the PR head. Do not use GitHub squash merge for normal PR landing. Every commit in the PR range must pass: ```sh .agents/scripts/check-conventional-commits --range origin/master..HEAD ``` If a PR targets a renamed default branch such as `main`, substitute that base in the range. If a PR accumulates noisy work-in-progress commits, fix up, squash, or reword them before marking the PR ready, then rebase again onto the latest protected base.