Skip to content

Auto-suggest refactors from introspection output #87

@tonydspaniard

Description

@tonydspaniard

Out-of-scope follow-up from #71.

#71's introspection commands answer "what is?". This issue is the "what should be?" companion: an analyser that walks the introspection output and surfaces actionable suggestions.

Examples of what it could suggest

  • A binding has 0 dependents → flag as dead code
  • A service has >5 transitive dependencies → suggest splitting
  • An event has 0 listeners → flag as dead
  • A route is registered but no scaffolded spec covers it → suggest scaffolding
  • A middleware is declared but not in any pipeline → flag as dead
  • A config key is read nowhere → flag as dead env var

Scope (high-level)

  • `bin/altair doctor:suggest` (or extend the existing `doctor` command if/when it lands)
  • One `SuggestionRule` per heuristic, swappable
  • `--severity=warning|info` filter
  • `--format=json` for MCP / CI consumption

Why deferred (out of scope for #71)

#71 ships the primitive: a stable, deterministic introspection surface. Building suggestions on top is a separate, layered concern — and the rules need to bed in against real codebases before they're worth shipping.

This is downstream of `bin/altair doctor` more broadly (correctness checks), which is itself a candidate for its own issue.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions