mix surfex.completeness [--format json] scores how much is covered by validated relations, per kind and overall, and lists each incomplete item with what it lacks.

  • A spec unit is complete when a validated test verifies it (or a unit inside it) and any code implementing it is validated. A heading-only section isn't counted.
  • A test is complete when it verifies a unit and exercises code (or verifies only units no code implements).
  • Code is complete when validated and exercised by a test, or excused by a class.

completeness: [min: N] in .surfex.exs makes mix surfex.status fail below N percent. goldens: [:completeness] commits the report as COMPLETENESS.md.

The JSON form is the work list: kind, id, what it lacks, location. Work it one item at a time through the process.