Skip to content

feat: add bootcamp styles command to list built-in style packs#53

Merged
Arthur742Ramos merged 1 commit into
mainfrom
arthur742ramos/styles-command
Jun 11, 2026
Merged

feat: add bootcamp styles command to list built-in style packs#53
Arthur742Ramos merged 1 commit into
mainfrom
arthur742ramos/styles-command

Conversation

@Arthur742Ramos

Copy link
Copy Markdown
Owner

Summary

Adds a bootcamp styles command (alias style) that lists the built-in style packs and the documentation sections each one enables.

Style packs (corporate, startup, oss, academic, minimal) control which docs a run emits — Runbook, Security, Dependencies, Radar, Impact, Metrics, Health — plus tone, section depth, emoji usage, and starter-task count. Until now the only way to discover what each --style actually does was to read src/plugins.ts. This makes the packs first-class and discoverable from the CLI.

What it does

  • Human report — a per-pack summary (description, tone, depth, emoji, first-task count, enabled sections) followed by a section-coverage matrix, with the default pack (oss) clearly flagged.
  • --json — a stable, machine-readable payload (default pack, count, and the full config surface per style) for scripting.
  • Alias — reachable as bootcamp style too.

Example:

$ bootcamp styles
Built-in style packs
Use with: bootcamp <repo-url> --style <name>   (default: oss)

  corporate
    Structured, policy-aligned onboarding documentation
    tone: formal   depth: deep   emoji: no   first tasks: 10
    sections: Runbook, Security, Deps, Radar, Impact, Metrics, Health
  ...
Section coverage

STYLE      Runbook  Security  Deps  Radar  Impact  Metrics  Health
corporate     ✓        ✓       ✓      ✓      ✓        ✓       ✓
startup       ✓        ·       ·      ✓      ·        ✓       ✓
oss           ·        ✓       ✓      ✓      ·        ✓       ✓
academic      ·        ✓       ✓      ·      ✓        ✓       ✓
minimal       ·        ·       ·      ·      ·        ·       ·

Implementation notes

  • The renderer reads the existing STYLE_PACKS registry directly, so the output can never drift from the packs themselves — adding/changing a pack automatically updates this command.
  • All formatting helpers (buildStylesJson, buildHumanOutput, renderSectionMatrix, enabledSectionLabels) are pure and exported, following the same DI/testability pattern as cache list and doctor.
  • Column alignment is computed on plain text with color applied last, so ANSI codes never break the matrix.

Testing

  • 16 unit tests (test/styles-command.test.ts) pinning the JSON payload, matrix, and human report.
  • 3 E2E tests (test/e2e/styles-command.e2e.test.ts) spawning the real CLI for the human report, --json, and the style alias.
  • Full suite green: npm test → 1078 passing; typecheck + lint clean; build passes.

🤖 Generated with Claude Code

Style packs control which documentation sections a run emits (Runbook,
Security, Dependencies, Radar, Impact, Metrics, Health) plus tone, depth,
emoji, and first-task count. Until now the only way to see what each `--style`
does was to read `src/plugins.ts`.

`bootcamp styles` (alias `style`) renders a per-pack summary and a
section-coverage matrix, flags the default pack (`oss`), and supports `--json`
for scripting. The renderer reuses the existing `STYLE_PACKS` registry, so the
output can never drift from the packs themselves.

All formatting helpers are pure and exported for unit testing (16 unit tests),
with 3 real-process E2E tests covering the human report, JSON payload, and the
`style` alias.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@Arthur742Ramos Arthur742Ramos merged commit 9887363 into main Jun 11, 2026
25 of 26 checks passed
@Arthur742Ramos Arthur742Ramos deleted the arthur742ramos/styles-command branch June 11, 2026 18:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants