Testing bramble
Test bramble CLI features and spec output. Use when verifying CLI flags, spec format converters, or TUI behavior.From its SKILL.md
npx -y skills add wevial/bramble --skill testing-brambleAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
2.2 KB, as published. Nobody here has run it
Testing Bramble
Prerequisites
- bun must be installed (
curl -fsSL https://bun.sh/install | bash, thensource ~/.bash_profile) - Run
bun installin the repo root - No API keys needed for fake-agent mode (the default)
Running Tests
Unit Tests
bun run test # all tests
bun run test -- <file> # single file, e.g. src/docs/format.test.ts
Typecheck
bun run typecheck
Known Pre-Existing Test Failures
The 6 UI test files (ConversationPane, FlowSidebar, SetupScreen, SpecPane, StatusStrip, markdown) may fail with a .scm file extension error from @opentui/core. These are pre-existing and unrelated to feature changes.
Testing CLI Flags
CLI flags can be tested directly:
bun src/index.tsx --help # verify flag appears in help
bun src/index.tsx --format pdf 2>&1 # verify invalid values error
Testing Format Converters
The spec converters (src/docs/format.ts) can be tested via:
- Unit tests in
src/docs/format.test.ts - Integration scripts that import and call the converters with realistic spec content
A realistic test spec is the "Authentication Spec" that the fake agents produce (visible in the canned responses in src/index.tsx).
Testing the TUI
The TUI uses alternate-screen mode and requires a TTY. To test interactively:
bun run dev -- "design an auth system" # fake agents
bun run dev -- --format json "design an auth system" # test with format flag
After a session completes, check output files in .bramble/<session-name>/:
spec.md(orspec.xml,spec.json,spec.htmldepending on--format)debate.md,interview.md,transcript.jsonl
Key Architecture Notes
- Internal spec representation is always Markdown (agents use find/replace patches)
- Format conversion happens at the persistence layer (
writeSpeccall inApp.tsx) sessionPaths()insrc/sessions/list.tscontrols file extensions- CLI flag parsing is in
src/index.tsx(manual argv loop, not a flag library)