Repository navigation
Conversation
Set up btt v0.2.0 (branch tree testing): btt.toml, a project-local lexical Solidity/Foundry pack in .btt/packs/solidity (testX naming, flat trees), and the Claude skill from `btt init --skill` with a Solidity section. Add test/auth/Owned.tree as the worked example and rename the Owned tests to match it (gas snapshot entries renamed accordingly). CI installs the pinned v0.2.0 release tarball (sha256-verified) and runs `btt check test`. Uncovered test files are warnings while adopting. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <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.
Adds btt, which checks each test file against a
.treespec that sits next to it. This PR only sets the tool up and adds one example. Trees for the rest of the suite will come in later PRs.What's included
btt.toml, with the vendored Solidity pack in.btt/packs/solidity. btt only ships Rust and TypeScript packs; this one comes from the Solidity example in btt's README, with two changes: test names use atestprefix to match this repo, and scaffolded bodies userevert("unimplemented")because the forge-std version here has novm.skip.test/auth/Owned.tree. The fourOwnedtests are renamed to match its leaves, and their.gas-snapshotentries are renamed with the gas values unchanged.bttCI job that installsbtt-cli0.2.0 from crates.io with--lockedand runsbtt check test.btt init --skillgenerates, at.claude/skills/btt/SKILL.md.How the trees map to tests
Foo.treesits next toFoo.t.sol, and its first line is the test contract name.it …leaf is one test:test+ the leaf text in PascalCase, e.g. "it lets the owner set a new owner" →testLetsTheOwnerSetANewOwner.when/givenbranches.CI behaviour
Test files without a tree (44 of them for now) are warnings, not errors, so the job passes today. Once every file has a tree,
uncoveredinbtt.tomlcan be changed toerror.Run it as
btt check test, not plainbtt check. There's no exclude option, and plainbtt checkalso scans the.t.solfiles inside thelib/submodules.Testing
btt check test: 1 tree file, 44 uncovered, 0 errors.forge test: 580/580 pass.🤖 Generated with Claude Code