SuperAPI AI Directory

preflight

Deployment & operations

View repository

Updated 10-15 20:08

About this skill

Preflight Checks

Run all preflight checks to make sure the current work is ready for review. Execute each step sequentially and stop immediately if any step fails.

Arguments

  • all — Run all test suites (brave_browser_tests, brave_unit_tests, brave_component_unittests) without filters, instead of only running tests affected by the change. Usage: /preflight all

Current State

  • Branch: !git branch --show-current
  • Status: !git status --short

Steps

0. Check branch

If on master, create a new branch off of master before proceeding (use a descriptive branch name based on the changes).

1. Format code

Run pnpm run format. If formatting changes any files, stage and include them in the commit later.

2. GN check

Run pnpm run gn_check. Fix any issues found and re-run until it passes.

Skip this step if the only changes are to test filter files (test/filters/*.filter) — filter files don't affect GN build configuration.

3. Presubmit

Run pnpm run presubmit. Fix any issues found and re-run until it passes.

Presubmit checks only consider checked-in changes. Any revisions in the working directory won't be seen.

4. Commit if needed

Check git status. If there are any uncommitted changes (staged, unstaged, or untracked files relevant to the work), create a commit. The commit message should be short and succinct, describing what was done. If there are no changes, skip this step.

5. Build

Run pnpm run build to make sure the code builds. If it fails, fix the build errors, amend the commit, and retry.

If work is targeting a different platform, follow the build instructions at README.md or confirm with the user which build arguments or technique to use.

6. Run tests

If the all argument was provided: Run all test suites without filters:

  • pnpm run test brave_browser_tests
  • pnpm run test brave_unit_tests
  • pnpm run test brave_component_unittests
  • pnpm run test-unit

Otherwise (default): Determine which test suites are affected by the changes in this branch (compare against master). Look at the changed files and identify the corresponding test suites and relevant test filters.

  • pnpm run test [test suite] --filter="..."

where test suite is any of:

  • brave_components_unittests (C++ unit tests in brave/components)
  • brave_unit_tests (C++ unit tests anywhere else in brave/)
  • brave_browser_tests
  • chromium_unit_tests (Chromium C++ unit tests in src/)
  • browser_tests (Chromium browser tests in src/)

Or pnpm run test-unit [path blob filter] to run jest for any *.test.{ts,tsx} files.

If no tests are affected, note that and move on.

7. Re-run checks if fixes were needed

If any step required fixes (build errors, test failures, format/lint issues), amend the commit with the fixes and re-run checks until everything passes cleanly.

Important

  • Stop and report if any step fails after exhausting reasonable fix attempts.
  • Report a summary of results when all steps complete successfully.