From lakebase-app-dev-kit
System-level engineering canon, the architecture counterpart to software-design-principles. Layered architecture + dependency direction, ports and adapters (repository / ORM-as-adapter), the twelve-factor app for cloud-native development, evolutionary architecture with fitness functions, and evolutionary database design (schema that evolves by migration on paired branches). Imported by workflow skills (lakebase-sftdd-workflows, lakebase-scm-workflows, lakebase-release-workflows). Use when: shaping a system boundary, deciding what is a backing service, mapping config to the environment, or authoring the fitness functions that keep the architecture honest as it evolves.
How this skill is triggered — by the user, by Claude, or both
Slash command
/lakebase-app-dev-kit:architectural-design-principlesThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Canon for decisions above the function and class. `software-design-principles` governs how a unit of code is written (SOLID, DRY, clean code); this skill governs how the system is shaped: layers, boundaries, its relationship to the platform, and how those properties stay true over time. Read it alongside that skill, not instead of it.
Canon for decisions above the function and class. software-design-principles governs how a unit of code is written (SOLID, DRY, clean code); this skill governs how the system is shaped: layers, boundaries, its relationship to the platform, and how those properties stay true over time. Read it alongside that skill, not instead of it.
Markdown only, no scripts: consulted, not invoked. Its job is to point each architectural rule at the fitness function that enforces it. A rule no test defends is advisory; a rule a fitness function defends is part of the build.
lakebase-sftdd-workflows Architect Reviewer reviews every design against layering + twelve-factor; the Test Strategist authors the fitness functions named here).Confirm each row before declaring the design done. A blank row is fine when scope justifies it; an unconsidered row is a smell.
| Property | The rule | Enforced by (fitness function) |
|---|---|---|
| Layer direction | Dependencies point inward; infrastructure never imports service, service never imports HTTP | import-linter (or equivalent) contract, in CI + the TDD cycle |
| Persistence boundary | All DB access through the repository layer via the ORM; no raw SQL outside it | "raw-SQL-location" + "ORM-only" checks |
| Config in environment | No host, secret, or per-environment value hardcoded | "no-hardcoded-config" grep/AST check |
| Statelessness | A process holds no session state another instance would need; state lives in a backing service | review + a restart-survives-request test where it matters |
| Backing services attached | DB, object store, queue are URL/config-addressed, swappable without code change | dev/prod parity: the same code path runs against the paired Lakebase branch |
| Mock policy | Mocks only where there's no real backing resource; the database is never mocked | "no-mock-for-DB" check (see test-strategy) |
| NFR budgets | Performance / scalability / security budgets stated and measured | NFR budget tests (see software-design-principles NFRs) |
A property with no clear owner or no fitness function: resolve it before merging.
lakebase-sftdd-workflows – Architect Reviewer imports this in architectural review (layering + twelve-factor); Test Strategist authors the fitness functions as RED tests; Navigator imports in PLAN; Driver keeps them green through REFACTOR.lakebase-scm-workflows – branch PRs reviewed against layering + the fitness-function suite in CI.lakebase-release-workflows – the NFR budget fitness functions are part of the release gate.npx claudepluginhub databricks-solutions/lakebase-app-dev-kit --plugin lakebase-app-dev-kitCreates bite-sized, testable implementation plans from specs or requirements, with file structure and task decomposition. Activates before coding multi-step tasks.