Skip to content

ui(lint): adopt ui.* components, colors, and outcome glyphs instead of [MISS]/=== format #238

Description

@codeaholicguy

Current output

=== Base Structure ===
[MISS]  docs/ai/requirements/README.md
       Run: npx ai-devkit@latest init
[MISS]  docs/ai/design/README.md
       Run: npx ai-devkit@latest init
...

5 required check(s) failed.

Problems

  1. Completely different visual language from the rest of the CLI: === Base Structure === headers and [MISS] tags use no ui.* components, no color, and no glyphs — every other command uses bold headers, ✔/⚠/✖ prefixes, and colored statuses. lint output looks like a different tool.
  2. No color anywhere: [MISS] (required failure), warning-level checks, and the pass state are visually identical; the severity mapping only exists in LINT_STATUS_LABEL.
  3. Summary line has no outcome signal: All checks passed. and 5 required check(s) failed. are plain text — no / glyph, no green/red, though this is the single most important line for CI and humans.
  4. Naive pluralization: check(s) failed., warning(s) reported.
  5. Magic 7-space fix indentation: Run: npx ai-devkit@latest init aligns to a hand-counted offset that breaks if LINT_STATUS_LABEL widths change; no dim styling to de-emphasize the hint.
  6. === decoration collides with the bold-header convention used by channel list (Configured Channels:), status, and agent list.

Expectation

Base Structure
  ✖ docs/ai/requirements/README.md
    Fix: npx ai-devkit@latest init

✔ All checks passed.
  • Route output through ui.* (ui.table or styled ui.text): bold section titles (no ===), colored status glyphs ( red for required misses, yellow for warnings, /dim for passes when not --quiet).
  • Fix hints on their own dim line with a Fix: prefix — indentation derived from the glyph column, not a literal.
  • Pluralized summary via the shared helper, colored by outcome, with the existing exit-code behavior unchanged (process.exitCode = report.exitCode).
  • Keep --json output byte-identical (it is already a separate branch).

Files: packages/cli/src/commands/lint.ts (renderLintReport, printSection, printRows), packages/cli/src/services/lint/constants.ts (LINT_STATUS_LABEL)

Activity

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

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions