You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(decomposer): granularity-qualified cycle findings with real edge evidence
Review of the v0.1.0 self-decomposition found the cycle findings citing
fabricated evidence: the rendered "cycle path" was the alphabetically
sorted SCC joined with arrows, asserting import edges that do not exist,
graded certain/error on a self-declared probable module model.
- Compute cycles at file AND directory granularity. File-level cycles are
error/certain with inducing file edges attached; directory-level cycles
become an explicitly labeled directory_aggregation_cycle gate at
warning/probable (confidence capped at the module model's), citing every
real module edge with weights plus sample file edges.
- New granularity_divergence finding when the file graph is a DAG but
directory cycles exist, so DAG-vs-cycles disagreements between pipeline
artifacts surface as findings instead of passing silently.
- shared_kernel independence check now catches sibling-package imports
(was top-level-only, missing the real shared_kernel -> inspection edge
that pyproject's import-linter contract exempts via ignore_imports).
- Bidirectional-coupling violations cite file edges in both directions.
- Interface fallback honors its documented contract: file basenames only
when no symbol xrefs cross in (was mixing filenames with symbols).
- test_gap gate restricted to TESTABLE_LANGUAGES, dropping docker/proto
false positives while keeping domain/ports and ui/views signal.
- Report: bundle provenance line (path, run_manifest sha256, generated_at,
extensions), unique part ids in tables, domain overlays out of the parts
inventory, gate example subjects, {a <-> b} cycle groups in build order,
full column legend and ABox confidence-vocabulary mapping.
- model/parts: operational + documentation part kinds from a parallel
session's work on parts.py; included to keep the committed tree coherent.
10 new regression tests (test_cycle_findings.py) plus 7 report-contract
assertions in the smoke suite; full suite 95 passed.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
0 commit comments