PR Preflight Checklist
Objective
Reduce PR back-and-forth by running the smallest complete check set before pushing.
Workflow
- Identify changed scope using
git diff --name-only.
- Choose profile:
quick for normal local development loops (default)
strict once before opening/updating a PR
- Map changed files to checks using
references/checklist-matrix.md.
- Run selected checks in fail-fast order:
- run format and static checks first
- for frontend changes, prefer
pnpm run check as the default combined gate
- split frontend commands only when diagnosing a failure or when you intentionally need a narrower rerun (
type-check, lint, or depcruise:frontend)
- build/test next
- strict-only checks last (dependency/license checks included)
- If the PR includes user-facing behavior changes, release-note-worthy fixes, or an intended version bump, add a Knope changeset file under
.changeset/.
- AI agents should write the file directly instead of using the interactive
knope document-change CLI.
- Human contributors may use
knope document-change or write the file manually.
- If Rust IPC signatures changed, run:
pnpm --filter fricon-ui run gen:bindings
git diff --exit-code crates/fricon-ui/frontend/src/shared/lib/bindings.ts
- If workspace structure or workspace metadata semantics changed, also:
- verify whether
WORKSPACE_VERSION must change
- verify docs/rules that describe workspace structure and migration duties
- If Rust IPC/gRPC compatibility semantics changed, also:
- verify whether
IPC_PROTOCOL_VERSION must change
- verify the explicit IPC protocol version/handshake logic changed with the protocol
- Re-run failed checks after fixes, then run the selected profile once end-to-end.
- Report results with explicit pass/fail status and any remaining risk.
Repository Rules To Enforce
- Prefer
pnpm and uv for package management commands.
- Run
uv run maturin develop before uv run pytest for Python binding tests.
- Never hand-edit
crates/fricon-ui/frontend/src/shared/lib/bindings.ts; regenerate it.
- Treat
pnpm run check as the default frontend gate and ensure frontend slice-boundary validation is covered by it or by pnpm run depcruise:frontend when commands are split.
- AI agents should create Knope changeset files directly under
.changeset/ instead of using the interactive knope document-change command.
- Do not place templates, README files, or other helper Markdown files inside
.changeset/; Knope treats them as real changesets. .changeset/.gitkeep is acceptable.
- Workspace structure changes are not complete until migration logic, the
WORKSPACE_VERSION decision, and docs/rules are updated together.
- IPC/gRPC contract changes are not complete until the explicit IPC protocol compatibility rule, the
IPC_PROTOCOL_VERSION decision, and generated bindings/docs are updated together.
Knope Changeset Template
When an AI agent needs to create a Knope changeset, write a Markdown file directly in .changeset/ using this template:
---
default: patch
---
# Short user-facing title
Describe the user-visible change in release-note language.
Guidance:
- Use
major, minor, and patch with standard semantic-versioning intent; Knope will handle 0.x version behavior automatically.
- Prefer concise, user-facing wording over implementation detail.
Optional Alternatives
- If the repository is managed with Jujutsu,
jj diff --name-only can replace git diff --name-only.
- If your environment uses nextest,
cargo nextest run can replace cargo test --workspace.
- If tools are missing locally, run
uv sync --all-groups once instead of CI-style group-specific syncing.
Output Contract
Return a concise preflight summary with:
- changed area classification (Rust, Python, frontend, docs-only, mixed)
- commands executed
- pass/fail result per command
- blocking failures and next fix step
- final readiness:
ready or not ready
Reference
references/checklist-matrix.md
Converted and distributed by TomeVault — claim your Tome and manage your conversions.
1---2name: pr-preflight-checklist3description: Run a pre-pull-request quality gate for the fricon monorepo (Rust, Python bindings, and Tauri frontend). Use when preparing to open or update a PR, marking a PR ready for re-review, or when asked for PR pre-check, pre-commit check, preflight, or checklist. Use when this capability is needed.4---56# PR Preflight Checklist78## Objective910Reduce PR back-and-forth by running the smallest complete check set before pushing.1112## Workflow13141. Identify changed scope using `git diff --name-only`.152. Choose profile:16 - `quick` for normal local development loops (default)17 - `strict` once before opening/updating a PR183. Map changed files to checks using `references/checklist-matrix.md`.194. Run selected checks in fail-fast order:20 - run format and static checks first21 - for frontend changes, prefer `pnpm run check` as the default combined gate22 - split frontend commands only when diagnosing a failure or when you intentionally need a narrower rerun (`type-check`, `lint`, or `depcruise:frontend`)23 - build/test next24 - strict-only checks last (dependency/license checks included)255. If the PR includes user-facing behavior changes, release-note-worthy fixes, or an intended version bump, add a Knope changeset file under `.changeset/`.26 - AI agents should write the file directly instead of using the interactive `knope document-change` CLI.27 - Human contributors may use `knope document-change` or write the file manually.286. If Rust IPC signatures changed, run:29 - `pnpm --filter fricon-ui run gen:bindings`30 - `git diff --exit-code crates/fricon-ui/frontend/src/shared/lib/bindings.ts`317. If workspace structure or workspace metadata semantics changed, also:32 - verify whether `WORKSPACE_VERSION` must change33 - verify docs/rules that describe workspace structure and migration duties348. If Rust IPC/gRPC compatibility semantics changed, also:35 - verify whether `IPC_PROTOCOL_VERSION` must change36 - verify the explicit IPC protocol version/handshake logic changed with the protocol379. Re-run failed checks after fixes, then run the selected profile once end-to-end.3810. Report results with explicit pass/fail status and any remaining risk.3940## Repository Rules To Enforce4142- Prefer `pnpm` and `uv` for package management commands.43- Run `uv run maturin develop` before `uv run pytest` for Python binding tests.44- Never hand-edit `crates/fricon-ui/frontend/src/shared/lib/bindings.ts`; regenerate it.45- Treat `pnpm run check` as the default frontend gate and ensure frontend slice-boundary validation is covered by it or by `pnpm run depcruise:frontend` when commands are split.46- AI agents should create Knope changeset files directly under `.changeset/` instead of using the interactive `knope document-change` command.47- Do not place templates, README files, or other helper Markdown files inside `.changeset/`; Knope treats them as real changesets. `.changeset/.gitkeep` is acceptable.48- Workspace structure changes are not complete until migration logic, the `WORKSPACE_VERSION` decision, and docs/rules are updated together.49- IPC/gRPC contract changes are not complete until the explicit IPC protocol compatibility rule, the `IPC_PROTOCOL_VERSION` decision, and generated bindings/docs are updated together.5051## Knope Changeset Template5253When an AI agent needs to create a Knope changeset, write a Markdown file directly in `.changeset/` using this template:5455```md56---57default: patch58---5960# Short user-facing title6162Describe the user-visible change in release-note language.63```6465Guidance:6667- Use `major`, `minor`, and `patch` with standard semantic-versioning intent; Knope will handle `0.x` version behavior automatically.68- Prefer concise, user-facing wording over implementation detail.6970## Optional Alternatives7172- If the repository is managed with Jujutsu, `jj diff --name-only` can replace `git diff --name-only`.73- If your environment uses nextest, `cargo nextest run` can replace `cargo test --workspace`.74- If tools are missing locally, run `uv sync --all-groups` once instead of CI-style group-specific syncing.7576## Output Contract7778Return a concise preflight summary with:7980- changed area classification (Rust, Python, frontend, docs-only, mixed)81- commands executed82- pass/fail result per command83- blocking failures and next fix step84- final readiness: `ready` or `not ready`8586## Reference8788- `references/checklist-matrix.md`8990---91> Converted and distributed by [TomeVault](https://tomevault.io/claim/kahojyun) — claim your Tome and manage your conversions.92<!-- tomevault:4.0:skill_md:2026-04-13 -->