Skip to main content
Use recursive-status to get a high-level view of a run’s progress and health. Use lint-recursive-run to validate artifact structure in detail before locking a phase.

recursive-status

recursive-status shows the current state of a run: which phases are complete, which are locked, which have audit blockers, and whether the lock chain is intact.

What it shows

  • Phase-by-phase status (draft, pass, locked)
  • Lock-chain validity for each locked artifact
  • Audit blockers that would prevent a phase from passing
  • Missing required fields or malformed lock fields

Usage

python scripts/recursive-status.py --repo-root . --run-id <run-id>
Replace <run-id> with the run directory name under /.recursive/run/ (for example, 2026-04-09-add-search).

Output

The script prints a summary for each phase artifact found in the run directory. For each artifact you will see:
  • The phase filename and its current Status field value
  • Whether the phase is LOCKED and whether the LockHash is still valid
  • Any audit blockers (for example, a missing Audit: PASS line, an undeclared TDD mode, or a requirement with no disposition)
Run recursive-status before starting a new phase to confirm all upstream artifacts are locked and their hashes are intact.

lint-recursive-run

lint-recursive-run performs a thorough structural audit of all phase artifacts in a run. It checks artifact headers, required sections, gate completeness, lock fields, and audit-discipline rules.

What it checks

  • Required header fields are present and non-empty
  • Audited phases include all required audit sections (Audit Context, Effective Inputs Re-read, and others)
  • Gate fields (Coverage, Approval, Audit) are present and hold valid values
  • Status: LOCKED artifacts have both LockedAt and LockHash fields
  • Requirement traceability entries exist for every in-scope R# in the applicable artifacts
  • TDD mode is declared in 03-implementation-summary.md
  • QA execution mode is declared in 05-manual-qa.md
  • Diff basis fields are present in all diff-audited artifacts

Usage

python scripts/lint-recursive-run.py --repo-root . --run-id <run-id>

When to run lint

Run lint-recursive-run before locking any phase artifact. Locking a phase that has lint failures will result in a LockHash that is computed from an incomplete or non-conforming artifact, which is harder to correct after the fact.
recursive-status and lint-recursive-run check overlapping but distinct things. The status script focuses on lock-chain integrity and high-level phase progression; the lint script checks structural conformance in detail. Run both before locking a phase.
Late-phase artifacts (phases 6, 7, and 8) are compact delta receipts that point to control-plane docs. Some audit-section requirements apply to these phases; check the lint output message for the specific field or heading that is missing.