feat: add deterministic boundary-quality eval for architecture plans (#316)#333
Conversation
…316) Add src/mapify_cli/boundary_quality_report.py — a pure-Python advisory evaluator that works from blueprint.json data alone (no network, no model calls, no structural code-map required). Checks - FILE_SHARED_ACROSS_BOUNDARIES (warn): same file in two unrelated subtasks - CROSS_BOUNDARY_DEP_PRESSURE (warn): high-risk/large subtasks share a directory prefix but have no declared dependency - REFACTOR_WITHOUT_TEST_PAIR (info): refactor subtask with no tests subtask that depends on it - LOW_COHESION_SUBTASK (info): affected_files span 3+ top-level directories for non-permissive concern types; suppressed for refactor/docs/release/config Public API - is_architecture_heavy(blueprint) -> bool - report_boundary_quality(blueprint) -> BoundaryQualityReport - BoundaryQualityReport.as_dict() -> JSON-serializable dict All findings are warn/info (advisory only); hard errors remain in validate_blueprint_contract. Related subtasks (dep edge in either direction) suppress file-sharing and pressure warnings. Tests: 33 tests in tests/test_boundary_quality_report.py covering VC1-VC14: architecture-heavy detection, all four checks (positive + suppressed paths), clean blueprint zero-findings, and JSON serialisability. Full suite: 3342 passed / 0 failures. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HZ3wHDow49xBGUwWFPH2mD
|
Warning Review limit reached
Next review available in: 21 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (2)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Summary
Implements #316 — adds a deterministic
boundary_quality_reportmodule that evaluates architectural decomposition plans for boundary quality. Works fromblueprint.jsondata alone: no network, no model calls, no optional structural code-map (#310) required.Changes
src/mapify_cli/boundary_quality_report.py(new module)is_architecture_heavy(blueprint)— detects refactor+large or 3+ arch-concern subtasksreport_boundary_quality(blueprint) -> BoundaryQualityReport— runs all four advisory checksBoundaryQualityReport.as_dict()— JSON-serializable outputFour advisory checks (warn/info only — hard errors stay in
validate_blueprint_contract):Related subtasks (dependency edge in either direction) suppress FILE_SHARED and CROSS_BOUNDARY warnings.
tests/test_boundary_quality_report.py(new, 33 tests)Acceptance criteria
boundary_quality_reportfor fixture blueprints without network or model callsTest results
Generated by Claude Code