Repository navigation
docs: add CLAUDE.md onboarding guide - #30
Merged
Merged
Conversation
Captures the non-obvious pieces of the repo so future Claude Code sessions don't have to reverse-engineer them: make targets (including single-test invocation), entry-point discovery and topo-sorted lifecycle hooks, LIFO middleware pipeline, per-module DB isolation, host-owned Alembic migrations, Inertia page-key mapping, the SQLModel-everywhere rule, the 300-line file cap, the SM_<MODULE>_* settings convention, and the ty rules deliberately disabled for SQLModel. Points at docs/framework-conventions.md and docs/module-authoring.md as the source of truth rather than duplicating them.
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.
Summary
Adds a top-level
CLAUDE.mdso future Claude Code sessions can be productive without reverse-engineering the repo.What's in it
maketargets a session will actually invoke, including how to run a singlepytest/vitesttest.__tablename__prefix), host-owned Alembic migrations with per-modulebranch_labels, and the Inertia page-key mapping (<ModuleName>/<PageName>→modules/<name>/<name>/pages/<PageName>.tsx).BaseModelorDeclarativeBase), the 300-line file cap,SM_<MODULE>_*settings convention, the framework→plugin import ban (SM009), the Zod-inside-useT()gotcha, and thetyrules deliberately disabled for SQLModel.SM001–SM016) that show up inmake doctor.conftest.pyactually provides (db_session,client,authenticated_clientwith forged session cookie + CSRF).docs/framework-conventions.md,docs/module-authoring.md,docs/e2e-testing.md, anddocs/plans/as source of truth rather than duplicating them.Why
Without this, a fresh Claude Code session spends its first several turns re-discovering the module system, the
SM*diagnostic codes, the LIFO middleware ordering, and the SQLModel-vs-Pydantic rule. The doc consolidates what's non-obvious and links to the authoritative references for everything else.Test plan
cat CLAUDE.mdrenders the expected sectionsdocs/framework-conventions.md,docs/module-authoring.md,docs/e2e-testing.md,docs/plans/)