docs: add the CLAUDE.md this package never had - #15
Conversation
magic_devtools is the only package in the ecosystem with no project
instructions at all, while magic's own CLAUDE.md points at it by name ("the
dev-tooling adapters live in the sibling magic_devtools package"). Anybody
sent here arrived with nothing to read but the README.
Written from the source rather than from the sibling files: barrel list and
their purposes from the four library docblocks, 14 enrichers and 5 watchers
counted from the install bodies, CI gates from ci.yml, SDK floors from
pubspec.yaml, the preview release boundary from preview_routes.dart.
The load-bearing parts are the ones a reader gets wrong on their own: why the
package exists at all (magic core keeps zero dependency on dusk and telescope,
so a production app does not resolve an E2E driver), why the kDebugMode guard
lives at the consumer call site and must never move inward, and why the
two-phase install cannot be collapsed into one call. The rule for deciding
which half new wiring belongs to is stated, because that is the question the
next change here will actually ask.
No .claude/rules/ yet. Five source files do not have a directory-spanning
invariant that a root spec cannot hold, and a rule arrives with the subsystem
it governs rather than ahead of it.
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
|
Note Kodizm (AI-generated). May contain mistakes; verify before acting. Docs-only, and the load-bearing numbers check out (14 enrichers, 5 watchers, four barrels, both SDK floors, all three CI gates), but four claims do not match the source they describe, and a rule file that misnames an API is worse than no rule file. Major
Minor
TestsNone, and none is right: this adds no source. Correctly no Checks I ran
|
What
A root
CLAUDE.mdformagic_devtools. Documentation only, no source touched.Covers what this package is for and why it is a package at all, the stack, the commands and CI gates, the four-barrel split, the two-phase install contract, the enricher and watcher contracts, the preview catalog's release boundary, the golden rules, branching, and style.
Why
magic_devtoolsis the only package in the ecosystem with no project instructions at all, whilemagic's ownCLAUDE.mdpoints at it by name ("the dev-tooling adapters live in the siblingmagic_devtoolspackage"). Anybody sent here arrived with nothing but the README.The parts worth writing down are the ones a reader gets wrong unaided:
magiccore keeps zero dependency on dusk and telescope so a production app does not resolve an E2E driver and a runtime inspector. That is the reason for the whole shape, and it is invisible from inside the code.kDebugModeguard sits at the consumer call site. Moving it inward defeats the release tree-shake, which is the single failure this arrangement prevents.Testing
Every number and claim was read out of the source, not carried over from a sibling repo's file:
MagicHttpFacadeAdaptercounted from the install bodies.github/workflows/ci.ymlpubspec.yamlkReleaseModeearly return,PREVIEW_ENABLEDdart-define,addRoutethrowingStateErroronce the router is built) frompreview_routes.dartNot included
No
.claude/rules/directory. Five source files do not carry a directory-spanning invariant that a root spec cannot hold, and the ecosystem convention is that a rule arrives with the subsystem it governs rather than ahead of it.This branch is cut from
master, so it describesmaster. The performance data path in #14 is not covered; that PR addsMagicPerfIntegrationand a section for it follows once #14 lands.