staleness-is-conservative-ci-gate

IN derived (depth 1)

Staleness checking is designed as a safe CI gate: it never mutates state, only checks IN nodes, requires both source fields, and exits nonzero to fail the pipeline

Summary

The staleness checker is intentionally designed to be safe for automated pipelines. It only reads data without changing anything, only looks at active nodes, requires complete source information before flagging anything, and signals failure through its exit code so CI systems can block on it. This makes it a conservative gate that avoids false positives from incomplete data or already-retracted nodes.

Justifications

SL — All four properties are necessary for CI safety — mutation would be dangerous, checking OUT nodes wasteful, missing fields a false positive, and zero-exit a silent pass

Antecedents (all must be IN):

  • check-stale-is-read-only — `check_stale` never mutates the network; it returns a list of stale-node dicts and leaves all nodes unchanged — staleness detection is separated from staleness resolution.
  • check-stale-exits-nonzero — `cmd_check_stale` calls `sys.exit(1)` when any stale nodes are found, making it usable as a CI or pre-commit gate.
  • check-stale-skips-out-nodes — Only nodes with `truth_value == "IN"` are checked for staleness; retracted (OUT) nodes are ignored even if their source file has changed.
  • check-stale-requires-both-source-fields — A node must have both `source` (non-empty) and `source_hash` (non-empty) to be eligible for staleness checking; nodes missing either field are silently skipped.

Dependents

These beliefs depend on this one:

Details