---
name: IJFW Preflight
slug: ijfw-preflight
category: Quality
description: IJFW Preflight runs 11 local quality checks in order and stops on blockers. Use it before release, after script or dependency changes, or in CI to validate the project.
github: "https://github.com/FerroxLabs/ijfw/tree/main/claude/skills/ijfw-preflight"
language: JavaScript
stars: 210
forks: 40
install: "npx degit https://github.com/FerroxLabs/ijfw/tree/main/claude/skills/ijfw-preflight ~/.claude/skills/ijfw-preflight"
installs_to: ~/.claude/skills/ijfw-preflight
source_path: claude/skills/ijfw-preflight/SKILL.md
collection_size: 25
category_size: 1557
collection_url: "https://dirskills.com/collections/FerroxLabs/ijfw"
added: 2026-09-04T05:26:38.027Z
last_synced: 2026-09-04T05:26:38.027Z
canonical_url: "https://dirskills.com/skills/ijfw-preflight"
---

# IJFW Preflight

IJFW Preflight runs 11 local quality checks in order and stops on blockers. Use it before release, after script or dependency changes, or in CI to validate the project.

**Install:**

```bash
npx degit https://github.com/FerroxLabs/ijfw/tree/main/claude/skills/ijfw-preflight ~/.claude/skills/ijfw-preflight
```

## README

# IJFW Preflight

Runs 11 deterministic quality gates locally. Ordered fast-to-slow, fail-fast on blockers. Returns exit 0 on clean, exit 1 on findings.

## Usage

```
ijfw preflight
```

## What it checks

1. shellcheck -- shell script correctness
2. oxlint -- fast JS/TS linting
3. eslint-security -- high-signal JS security rules
4. psscriptanalyzer -- PowerShell scripts, with static fallback when pwsh is absent
5. publint -- package.json publish hygiene
6. gitleaks -- secret / credential scan
7. audit-ci -- npm dependency vulnerability check
8. knip -- dead code and unused exports
9. license-check -- dependency license compatibility
10. pack-smoke -- `npm pack` roundtrip + `ijfw --help` assert
11. upgrade-smoke -- upgrade from floor version, assert settings key survives

## Behavior

- Each gate degrades gracefully to "skipped: tool not installed" when its CLI is absent (except blockers, which print actionable install hints).
- All output uses positive framing. No "failed" headers -- findings are reported as "surfaced N points".
- Runs under 90s on M-series laptop with warm caches.
- Pinned tool versions tracked in `.ijfw/preflight-versions.json`.

## When to run

- Before every `git tag` / release.
- After any change to shell scripts, package.json, or dependency list.
- In CI (`.github/workflows/ci.yml` runs `ijfw preflight` on every push).
