audit: summary + group-by report options #35

Closed
opened 2026-06-08 18:02:57 +00:00 by KofTwentyTwo · 0 comments
KofTwentyTwo commented 2026-06-08 18:02:57 +00:00 (Migrated from github.com)

The text/markdown audit report always emits a flat per-file list, burying the grouped rollups. Add opt-in human-readable summary views.

Flags (audit, shared with check):

  • --summary — counts only; suppress the per-file list, per-dependency list, and pending diffs. Keep findings + rollups + violations.
  • --group-by <dim> — license|category|type|directory. Organize source files under each value of the dimension (per-group counts), replacing the flat file list. Unknown value is a usage error (exit 2). directory groups by top-level path segment.

Composition: none = today's full report (unchanged); --summary = counts only; --group-by X = files nested under X; --summary --group-by X = per-group counts only.

Scope: group-by applies to source files; dependency section unaffected (full, or counts under --summary). Affects text, markdown, and JSON (JSON gains an optional groups array and trims detail under --summary; default JSON unchanged).

Approach: render-time grouping — keep model.Report frozen; add pure GroupFiles + RenderOptions threaded into report.Render. Design: docs/DESIGN-audit-summary-reports.md.

The text/markdown audit report always emits a flat per-file list, burying the grouped rollups. Add opt-in human-readable summary views. **Flags (audit, shared with check):** - `--summary` — counts only; suppress the per-file list, per-dependency list, and pending diffs. Keep findings + rollups + violations. - `--group-by <dim>` — `license|category|type|directory`. Organize source files under each value of the dimension (per-group counts), replacing the flat file list. Unknown value is a usage error (exit 2). `directory` groups by top-level path segment. **Composition:** none = today's full report (unchanged); `--summary` = counts only; `--group-by X` = files nested under X; `--summary --group-by X` = per-group counts only. **Scope:** group-by applies to source files; dependency section unaffected (full, or counts under --summary). Affects text, markdown, and JSON (JSON gains an optional `groups` array and trims detail under --summary; default JSON unchanged). **Approach:** render-time grouping — keep model.Report frozen; add pure GroupFiles + RenderOptions threaded into report.Render. Design: docs/DESIGN-audit-summary-reports.md.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: KofTwentyTwo/license-tool#35