Skip to content

[DIC-20] transitive-impact-set CLI flag for aragora decay-monitor - #9697

Draft
an0mium wants to merge 2 commits into
mainfrom
vision-incubator/dic-20-transitive-impact-cli
Draft

[DIC-20] transitive-impact-set CLI flag for aragora decay-monitor#9697
an0mium wants to merge 2 commits into
mainfrom
vision-incubator/dic-20-transitive-impact-cli

Conversation

@an0mium

@an0mium an0mium commented Aug 2, 2026

Copy link
Copy Markdown
Collaborator

Slice

Exposes the existing compute_decay_impact_set (with transitive=True) through the aragora decay-monitor CLI by collecting loaded ProofCarryingCodeUnit objects, building a ProofUnitConstraintGraph, and emitting the impacted unit IDs when any claim decay is detected. The result appears under "transitive_impact_set" in JSON output and as a "Transitive impact" section in text output.

Gating

  • Default: OFF — transitive_impact flag must be set explicitly in the argparse.Namespace; the underlying ARAGORA_DECAY_MONITOR_ENABLED env gate continues to guard the entire command
  • Live queue effect: none — report-only; no state mutation, no issue creation
  • Advances issue: [DIC-20] Add epistemic decay monitor for proof-carrying code #6031 (DIC-20)

Tests

  • test_transitive_impact_off_by_default_no_key_in_json — JSON output lacks transitive_impact_set without the flag
  • test_transitive_impact_no_failures_no_key_in_json — flag on but no failing claims → key absent (no false positives)
  • test_transitive_impact_failing_claim_includes_unit_id — failed claim marks its owning unit in the impact set
  • test_transitive_impact_stale_claim_included — stale claims also contribute (same reason classes as evaluate_unit)
  • test_transitive_impact_result_sorted — two units sharing a failing claim both appear; list is deterministically sorted
  • test_transitive_impact_text_output_contains_header — text path prints the header and unit ID

All 22 tests in tests/cli/test_dic20_decay_monitor.py pass (6 pre-existing + 6 new transitive-impact tests + the unchanged pyyaml/flag tests).

Validation

  • pytest tests/cli/test_dic20_decay_monitor.py --noconftest — 22 passed
  • ruff check aragora/cli/commands/dic20_decay_monitor.py tests/cli/test_dic20_decay_monitor.py — clean
  • mypy aragora/cli/commands/dic20_decay_monitor.py --ignore-missing-imports — clean

Out of scope

  • Multi-hop dependency edges from manifests (no YAML field for edges yet; ProofUnitConstraintGraph constructed without dependency_edges, so transitive walk equals single-hop — backward-compatible)
  • Wiring --transitive-impact into the top-level argparse parser (the namespace flag is consumed; argparse registration is a follow-up CLI-parser slice)
  • DIC-21/22 quarantine and repair paths that act on the impact set

Generated by Claude Code

Extends `aragora decay-monitor` with a `transitive_impact` namespace
flag that computes the ProofUnitConstraintGraph impact set for any
failing/stale claims across loaded units, surfacing the result in both
JSON (`transitive_impact_set`) and text output.

Flag: ARAGORA_DECAY_MONITOR_ENABLED (inherited from the existing gate).
Live queue effect: none — read-only report path only.
Advances: #6031 (DIC-20).

Co-Authored-By: Claude <noreply@anthropic.com>
@an0mium an0mium added the vision-layer label Aug 2, 2026 — with Claude
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants