This kit is for developers and founders who use AI coding agents and need a small, repeatable release check before publishing work.
1. Build with your AI coding agent.
2. Run your normal tests and project checks.
3. Run Repo Preflight.
4. Read the blocker list.
5. Fix or consciously accept each finding.
6. Re-run before merge, demo, or public export.
List the available local CLI profiles without running a scan:
python3 repo_preflight.py --list-profilesUse strict for normal release-discipline checks before a merge, demo, handoff, or internal release artifact. It checks process files, unchecked release gates, risky public claims, generated artifacts, and AI/process drift markers. It does not add the extra public-publication checks from public-export.
python3 repo_preflight.py --repo . --profile strictwith:
repo: "."
profile: strictUse docs when scanning template-heavy documentation, sample reports, or user instructions where unchecked boxes, sample claims, and old generated artifacts would create too much noise. It is a low-noise documentation pass, not a release gate for code or public artifacts.
python3 repo_preflight.py --repo . --profile docswith:
repo: "."
profile: docsUse dora-ai-readiness when a team wants to know whether an AI-assisted repo has documented evidence for the seven DORA AI capability surfaces: AI stance, data boundary, AI-accessible context, version-control and rollback path, small-batch delivery, user or user focus, and internal-platform verification.
python3 repo_preflight.py --repo . --profile dora-ai-readiness --out-md dora-ai-readiness.mdpython3 repo_preflight.py \
--repo . \
--profile dora-ai-readiness \
--out-md dora-ai-readiness.md \
--out-json dora-ai-readiness.json \
--out-sarif dora-ai-readiness.sarifwith:
repo: "."
profile: dora-ai-readiness
out-md: dora-ai-readiness.md
out-json: dora-ai-readiness.jsonThis profile checks for explicit documentation evidence. It emits one DORA finding per capability: an info finding when evidence is found, or a blocker when evidence is missing. It does not certify DORA maturity, DORA metric performance, security, compliance, governance approval, model safety, production readiness, public-export safety, or secret hygiene.
See the profile guide in ../dora-ai-readiness-profile.md for the SDLC boundary and evidence-term rules.
Use fieldheld-portfolio for AI-assisted repositories that need documentation-evidence checks. It combines AI capability documentation-evidence checks (AI stance, data boundary, rollback path, small-batch delivery, user or buyer focus, and verification evidence) with standard release-discipline blockers (missing process files, unchecked gates, risky public claims, secret-bearing filenames, and generated artifacts).
python3 repo_preflight.py \
--repo . \
--profile fieldheld-portfolio \
--config configs/fieldheld-portfolio.jsonwith:
repo: "."
profile: fieldheld-portfolio
config: configs/fieldheld-portfolio.jsonThis profile is documentation-evidence and release-discipline only. It does not certify or guarantee DORA maturity, compliance, security, or production readiness.
Use public-export before publishing a repository, package, GitHub Action, template, or downloadable product. It includes the strict checks and adds public-export hygiene checks for private planning paths, tracked report outputs, tracked secret-bearing filenames, high-confidence secret literals, and sensitive public-export terms. Use --paranoid or paranoid: true when the report may leave a private workspace.
python3 repo_preflight.py --repo . --profile public-export --paranoidwith:
repo: "."
profile: public-export
paranoid: trueProfile selection is about scan intent, not proof of safety. A clean report only means this deterministic preflight did not find the specific release-discipline problems it checks for.
- Markdown: human-readable fix list.
- JSON: machine-readable results for automation or baselines. See JSON report schema for the
docs/report.schema.jsonartifact path, validation flow, and compatibility boundaries. - HTML: shareable local report.
- SARIF: code-scanning compatible format for CI review surfaces. See SARIF output.
Use JSON rule packs with --config to add team-specific terms, generated directories, exclusions, and required process-file labels. See rule packs for supported keys and merge behavior.
After a known report is saved, compare a future run against it:
python3 repo_preflight.py \
--repo . \
--baseline-json previous/REPO_PREFLIGHT_REPORT.json \
--out-json REPO_PREFLIGHT_REPORT.jsonThis helps separate new drift from already-known drift.
For a legacy repository with accepted existing blockers, use the baseline-aware gate to fail only when a blocker is new versus the saved baseline:
python3 repo_preflight.py \
--repo . \
--baseline-json previous/REPO_PREFLIGHT_REPORT.json \
--fail-on-new-blockers-onlyThis does not change the report decision; it only changes the CLI exit gate. Keep baseline privacy options consistent between runs, because path and evidence changes can affect finding matching.
For reports that may leave your machine or private repository:
python3 repo_preflight.py --repo . --paranoid --path-mode basename --no-evidenceUse the redaction option when a term should never appear in evidence snippets.
Do not treat this kit as proof that a repository is safe. Treat it as a fast, deterministic preflight for obvious release-discipline failures.