Skip to content

Roadmap: judge modularization and module depth #20

Closed

Description

@typeweaver

Context

codeheat 0.1.0 shows file-level hotspots and change coupling. The next question it should answer is how well a codebase is modularized: whether changes stay inside modules, whether modules are deep (small stable interface, large implementation), and whether that improves. It should treat monorepos deliberately rather than by accident.

Goal

A release line that lets humans and agents judge module structure from the same report, starting with history-only, language-agnostic signals and adding code-aware ones after.

Milestones

  1. Show module cohesion and cross-module coupling, aware of workspace packages #15 — Module view: cohesion and cross-module coupling, aware of workspace packages
  2. Compare interface churn with implementation churn to spot shallow modules #16 — Interface churn against implementation churn (deep modules from history)
  3. Flag hidden coupling: files that change together without importing each other #17 — Hidden coupling: co-change without an import relation (TS/JS first)
  4. Measure module depth as implementation size per exported symbol #18 — Module depth from the code: implementation per exported symbol
  5. Show whether hotspots and module cohesion improve over time #19 — Trends: are hotspots and cohesion improving?

1 and 2 need only git data and ship together as the next release. Related: #6 (hub files), #9 (large-monorepo performance).

Acceptance criteria

Activity

  1. typeweaver commented on Oct 1, 2026

    @typeweaver
    MemberAuthor

    All milestones are closed: module view and cohesion (#15, PR #32), interface churn (#16, PR #33), hidden coupling (#17, PR #45), module depth (#18, PR #50), trends (#19, PR #37), plus hub files (#6, PR #28) and large-monorepo performance (#9, PR #27). Follow-ups: #47 (more import resolution), #48 (parser memory), #51 (exact depth in more cases).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions