Skip to content

feat: add --quiet flag for scriptable, low-noise runs#55

Merged
Arthur742Ramos merged 1 commit into
mainfrom
arthur742ramos/quiet-flag
Jun 11, 2026
Merged

feat: add --quiet flag for scriptable, low-noise runs#55
Arthur742Ramos merged 1 commit into
mainfrom
arthur742ramos/quiet-flag

Conversation

@Arthur742Ramos

Copy link
Copy Markdown
Owner

Summary

Adds a --quiet / -q flag to the main bootcamp <repo-url> command for scripting and CI. It suppresses all decorative output — the ASCII banner, run header, detected-stack table, progress spinners, score summary, and the generated-files tree — and prints only the output directory path on stdout.

OUT=$(bootcamp https://github.com/owner/repo --quiet)
open "$OUT/BOOTCAMP.md"

Failures and warnings are still written to stderr, so problems remain visible even when the chrome is gone. --quiet and --verbose are mutually exclusive (passing both exits 1 with a clear message).

Why

The full run prints a lot of human-friendly chrome that's noise in a pipeline. Until now there was no way to get a clean, parseable result. --quiet makes the command composable: capture the path, gate on exit code, and keep logs tidy.

Implementation

  • BootcampOptions.quiet plumbed from the CLI.
  • ProgressTracker gains a quiet mode: the spinner is silenced via ora's isSilent, but fail/warn fall back to direct stderr writes so failures are never swallowed.
  • main-command.ts gates every decorative console.log behind !quiet, and prints the output dir as the final stdout line.
  • agent.ts ("Using model" / tools banner) and output-writer.ts (diagram render messages) honor quiet too, so stray lines don't leak.

Testing

  • 4 unit tests on ProgressTracker quiet mode: spinner stays silent for normal phases; fail/warn still reach stderr; tool-call bookkeeping is preserved.
  • 1 main-command behavior test: with quiet: true the banner/stack/success-box/next-step are absent and the output directory is printed.
  • 2 E2E tests (real CLI via the test LLM harness): quiet stdout's last line is exactly the output dir and the docs are still written; --quiet --verbose exits 1 with "mutually exclusive".
  • Full suite green: npm test → 1067 passing; typecheck + lint + build clean.

šŸ¤– Generated with Claude Code

@Arthur742Ramos Arthur742Ramos force-pushed the arthur742ramos/quiet-flag branch from 0ceb8cf to dc8a1e6 Compare June 11, 2026 18:33
`bootcamp <repo-url> --quiet` (`-q`) suppresses the banner, run header,
detected-stack table, progress spinners, score summary, and file-tree
listing, emitting only the output directory path on stdout. This makes the
command compose cleanly in scripts and CI:

    OUT=$(bootcamp https://github.com/owner/repo --quiet)
    open "$OUT/BOOTCAMP.md"

Failures and warnings are still written to stderr so problems remain visible.
`--quiet` and `--verbose` are mutually exclusive and error out together.

Implementation:
- BootcampOptions.quiet; ProgressTracker gains a quiet mode (silent spinner
  via ora isSilent, but fail/warn still print to stderr)
- main-command gates all decorative console output behind !quiet
- agent.ts "Using model"/tools banner and output-writer diagram messages
  honor quiet too

Tests: 4 ProgressTracker unit tests (silence + stderr fail/warn), 1
main-command behavior test (banner suppressed, output dir printed), 2 E2E
tests (quiet stdout is just the path; --quiet --verbose rejected).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@Arthur742Ramos Arthur742Ramos force-pushed the arthur742ramos/quiet-flag branch from dc8a1e6 to a7d5e94 Compare June 11, 2026 18:36
@Arthur742Ramos Arthur742Ramos merged commit 6dd2c8c into main Jun 11, 2026
13 checks passed
@Arthur742Ramos Arthur742Ramos deleted the arthur742ramos/quiet-flag branch June 11, 2026 18:56
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

⚔