checks.check_decisions

checks.check_decisions(spec, today=None)

Check every provenance record: evidence resolves, review dates, orphans.

Evidence prefixes: file: must exist in the repository, commit: must be a commit of the repository, KB: must be an entry in the spot-knowledge directory (REGEN_KB_DIR, checked only when that directory exists), url: is not fetched.

Parameters

Name Type Description Default
spec RegenSpec The loaded spec. required
today date | None Reference date for review deadlines. Defaults to today. None

Returns

Name Type Description
list[Finding] list[Finding]: PROV02 errors for unresolved evidence, PROV03 warnings for records past review_after, PROV05 warnings for records neither a unit nor the architecture cites, PROV01 errors for unknown decisions cited by the architecture.

Examples

from datetime import date
from pathlib import Path
from tempfile import TemporaryDirectory

from spotregen import check_decisions, load_spec, make_sample_repo

with TemporaryDirectory() as tmp:
    spec = load_spec(make_sample_repo(Path(tmp) / "demo"))
    print(check_decisions(spec, today=date(2026, 10, 1)))
    for finding in check_decisions(spec, today=date(2100, 1, 1)):
        print(finding.format().replace(tmp, "<tmp>"))
[]
WARNING PROV03  regen/decisions/why-add.toml: review was due 2099-01-01: do the assumptions still hold? ['integers only']