Run repository verification with build-first constraints. For verify/acceptance, default to npm run build only.
Verify Constraints (MANDATORY)
- All build verification for core and Rust plugins must use
npm run build. - Verify flow must not run
cargo build,cargo check, orcargo clippy. - For examples, verify by running
npm run buildin each affected example directory. - Only run
pnpm run readywhen the user explicitly asks for full CI parity.
Tiered Verification (choose one tier before running anything)
Tier 1 — Bug Fixes & Simple/Localized Changes
Use when: fixing a bug, changing a single package/crate/plugin, adding a small localized feature.
Steps (run in order, stop at first failure):
- Build
@farmfe/core(always required — it is the central dependency):
pnpm --filter @farmfe/core run build
- Build affected Rust plugin packages (from each changed plugin directory):
npm run build
- Build affected examples (every example that exercises the changed feature):
cd examples/<name> && npm run build
If all three steps pass, verification is PASS.
Tier 2 — Complex / Multi-Package Changes & Pre-Release Gate
Use when: refactoring across multiple packages/plugins, changing plugin/compiler APIs, touching build infrastructure.
Default verify flow (still build-only):
pnpm --filter @farmfe/core run build
# then run npm run build in each changed rust-plugin/js-plugin/example package
Optional CI parity flow (only if explicitly requested):
pnpm run ready
Do not switch to this flow automatically.
Ready Flow Reference (from scripts/ready.mjs)
When pnpm run ready is explicitly requested, the script runs checks in this order:
- Install dependencies (
pnpm install) - Clean artifacts (
node ./scripts/clean.mjs) - Spell check (
npx cspell "**" --gitignore) - Build core/plugins/cli via
runTaskQueue - Cargo check (
cargo check --color always --all --all-targets) - Cargo clippy (
cargo clippy) - TypeScript checks (
pnpm run --filter "@farmfe/*" type-check) - Unit tests (
pnpm run test) - Rust tests (
cargo test -j <cpu_based_jobs>) - Build core CJS (
buildCoreCjs) - Build examples (
buildExamples) - E2E tests (
pnpm run test-e2e)
Execution Policy
- Determine tier based on change scope before running any commands.
- For verify/acceptance, default to build-only checks using
npm run build. - Do not run
cargo checkorcargo clippyin verify flow. - Run
pnpm run readyonly when explicitly requested by the user. - Do not claim success unless all chosen-tier steps exit with code 0.
Output Format
Result: PASS or FAILCommand: exact command executedFailure Step: if failed, map to ready flow item number/nameNext Action: one concrete fix direction
Guardrails
- Do not skip steps unless user explicitly requests a partial check.
- Preserve current git changes; do not revert files automatically.
- Keep logs summarized; include only the key failing lines.