docs: branch-naming convention and the ergoExo contract in CLAUDE.md - #331
Merged
Conversation
joglekara
force-pushed
the
claude/adept-claude-md-docs-5d74c7
branch
from
August 10, 2026 15:37
fa032b3 to
7300e36
Compare
Two rules that were tribal knowledge: - branches and commit scopes are named after the solver being touched (`feat/vlasov1d-...`, `feat(vlasov1d): ...`), with `ci/`/`docs/`/`chore/` for repo-wide work - solvers run only through ergoExo, so record the lifecycle order and the constraints it implies: later steps read only what earlier ones built, the scalar/array split between get_derived_quantities and get_solver_quantities exists because the former is logged to MLflow, vg() raises without a metric, and _get_adept_module_ is a hand-written registry keyed per runnable module rather than per directory (vlasov-1d and vlasov-1d-iaw share a directory) dev_guide.md, rewritten around the same lifecycle in #330, stays the canonical step-by-step for adding a solver; CLAUDE.md points at it instead of keeping a second copy of the list to drift against. Adds the one step it was missing: the paths filter and job in cpu-tests.yaml, without which a new solver's tests silently never run in CI. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
joglekara
force-pushed
the
claude/adept-claude-md-docs-5d74c7
branch
from
August 10, 2026 15:43
7300e36 to
af63b26
Compare
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.
Writes down two rules that were tribal knowledge, so agents and new contributors pick them up without being told.
Branch names
Branches and commit scopes are named after the solver being touched — the convention already visible in the log (
feat/vlasov1d-dougherty-nodrag,fix/vlasov1d-v0-units,feat(vlasov1d): ...). Repo-wide work with no solver uses the area instead:ci/,docs/,chore/.Everything is built on ergoExo
Solvers are never invoked directly, so the section records the contract rather than just naming it: the
ADEPTModulelifecycle calls in the orderergoExo#_setup_()andergoExo#__call__()make them, plus the constraints that follow from that order.init_state_and_args()if nothing put it incfgduringget_solver_quantities()get_derived_quantities()andget_solver_quantities()is load-bearing: the former'scfggoes to MLflow param logging, which arrays breakvg(), which raises unless the module implements a metric_get_adept_module_is a hand-written registry with no autodiscovery, keyed per runnable module rather than per directory —vlasov-1dandvlasov-1d-iawboth live in_vlasov1dRelationship to dev_guide.md
#330 rewrote
docs/source/dev_guide.mdaround this same lifecycle, so CLAUDE.md deliberately does not carry a second copy of the "adding a solver" list — it points at dev_guide.md as canonical. Two doc sources drifting apart is the trap #330 called out about Read the Docs, and it applies here too.What CLAUDE.md keeps in its own words is the lifecycle order and the failure modes above, because CLAUDE.md is always in an agent's context and dev_guide.md is not.
The one step dev_guide.md was missing is added to it directly: a paths filter and a test job in
.github/workflows/cpu-tests.yaml. CI only runs suites for solvers it detects as changed (#302), so a newtests/test_<solver>/without them silently never runs.Docs only, no code changes.
One thing to settle: this branch is
claude/adept-claude-md-docs-5d74c7, which the new rule would have asdocs/.... Theclaude/*names are harness-generated — worth an explicit exemption in the convention if that's fine as-is.🤖 Generated with Claude Code