feat: add bootcamp styles command to list built-in style packs#53
Merged
Conversation
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a
bootcamp stylescommand (aliasstyle) 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--styleactually does was to readsrc/plugins.ts. This makes the packs first-class and discoverable from the CLI.What it does
oss) clearly flagged.--json— a stable, machine-readable payload (default pack, count, and the full config surface per style) for scripting.bootcamp styletoo.Example:
Implementation notes
STYLE_PACKSregistry directly, so the output can never drift from the packs themselves — adding/changing a pack automatically updates this command.buildStylesJson,buildHumanOutput,renderSectionMatrix,enabledSectionLabels) are pure and exported, following the same DI/testability pattern ascache listanddoctor.Testing
test/styles-command.test.ts) pinning the JSON payload, matrix, and human report.test/e2e/styles-command.e2e.test.ts) spawning the real CLI for the human report,--json, and thestylealias.npm test→ 1078 passing; typecheck + lint clean; build passes.🤖 Generated with Claude Code