Skip to content

Discussion: Plugin Architecture #89

@outslept

Description

@outslept

I want to lock in a “cleanup‑first” default for e18e and make the deep analyzers optional. Right now the most useful work we do is replacing packages (X → Y, where X is usually heavy and Y is a lighter alternative), pointing out duplicates, and sometimes giving practical hints. Publint and attw are excellent, but they’re heavy in a sense and not something everyone needs on every run. So the proposal is simple: keep cleanup as the core experience, and only run publint/attw when they’re installed.

Concretely, we’ll move publint, @arethetypeswrong/core into optional peerDependencies. Inside their plugins we’ll switch to dynamic imports and soft‑skip if a module isn’t present. No noise in normal mode, a single helpful line in debug, and if a user explicitly asks for a plugin in a strict context we’ll error with a clear install hint. We won’t enable publint by default.

On the core side, nothing changes philosophically. Replacements and duplicate detection stay front and center, fast and light.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions