| name | farm-ready-gate |
| description | Run Farm verification with build-first constraints. For verify/acceptance, use npm run build only for core, rust plugins, and affected examples; do not run cargo check/clippy. Use when validating changes before merge or push. |
| license | MIT |
| compatibility | Requires Node, pnpm, cargo, and project dependencies. |
| metadata | {"author":"farm","version":"1.0"} |
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, or cargo clippy.
- For examples, verify by running
npm run build in each affected example directory.
- Only run
pnpm run ready when 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
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 check or cargo clippy in verify flow.
- Run
pnpm run ready only when explicitly requested by the user.
- Do not claim success unless all chosen-tier steps exit with code 0.
Output Format
Result: PASS or FAIL
Command: exact command executed
Failure Step: if failed, map to ready flow item number/name
Next 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.