github GanyuanRan/Aegis v2.1.8
v2.1.8 — Root-Cause Claim Disciplin

latest releases: v2.15.1, v2.15.0, v2.14.3...
4 months ago

Root-Cause Claim Discipline

This release makes a structural fix to the most common debugging failure pattern: stopping at an intermediate breakpoint or ripple and presenting it as the root cause. It does so by turning the stop condition from a self-judged claim into a set of mechanical, falsifiable checks, and by replacing the implicit single-root default with explicit causal topology classification.

This is method-pack advisory discipline. It is not a GateDecision, PolicySnapshot, or completion authority (per ADR-0001).

Pre-Claim Gate (systematic-debugging Phase 3.5)

When a patch-shape signal fires — the candidate fix is a guard, fallback, consumer/caller patch, artifact/cache patch, or sample-only naming — the agent must pass five mechanical checks before claiming a root cause or entering the fix phase:

  1. Causal Closure — every causal edge from symptom to claimed root has an evidence anchor; one "probably" edge leaves the chain open.
  2. Falsifier Checked — state "if X were not the root cause, observable F would appear," and confirm F was checked and absent.
  3. Adversarial Self-Refutation — generate the strongest single argument that this root cause is wrong, and show why it does not hold.
  4. Causal Topology Gate — classify the topology explicitly (see below).
  5. Layer Ceiling Proof — if the claim stops at L?, show why L?+1 is unreachable by concrete constraint, not by omission.

The quick bug lane is exempt when no patch-shape signal fires, so fast-path cheapness is preserved.

Causal Topology Gate

Replaces the implicit "single-root" default with explicit classification into six causal topologies. The default is unknown; the agent must actively exclude the multi-root topologies before collapsing to a single-root claim.

Topology | Structure | Repair shape -- | -- | -- single-root | A → symptom | fix A single-root-multi-symptom | A → B, C, D | fix A; symptoms self-resolve chain | A → B → C → symptom | drill to A, fix A independent-compound | A → symptom, Y → symptom, A ⊥ Y | fix A and Y; missing one leaves symptom conjunctive-cluster | A ∧ B ∧ C → symptom (each necessary, none sufficient) | fix all members disjunctive-or | A ∨ B → symptom (any one suffices) | fix one; enumerate rest for defense-in-depth

Boundary

This is advisory method-pack discipline. A method pack cannot enforce the gate at runtime; it can only make a gate-miss visible so a human partner can catch it. Reducing the failure rate to zero requires runtime enforcement, which ADR-0001 reserves for a future independent runtime core.

Known limitations

  • Necessity tests for large clusters are conceptual proofs, not empirical test runs — a method-pack ceiling.
  • Cyclic causation (A → B → A) is not covered by the six topologies; the doc flags this for extension if a domain has feedback loops.

Verification

All automated checks pass:

  • tests/e2e/layer1-fast-check.sh --host-profile none — 25/25
  • tests/e2e/boundary-compliance-check.sh — pass (advisory wording not flagged)
  • tests/e2e/debugging-patch-shape-gate-check.sh — 35 assertions
  • tests/e2e/workflow-quality-check.sh — pass
  • tests/helpers/validate_workflow_quality_matrix.py — pass

Don't miss a new Aegis release

NewReleases is sending notifications on new releases.