dna_clean_code 0.1.0
dna_clean_code: ^0.1.0 copied to clipboard
DNA layer: clean code and test conventions, language neutral plus Dart and TypeScript
dna_clean_code #
The DNA layer for how code is written and tested — the rules that hold in every language, plus the specifics of the languages we use.
Guides #
dna/doc/guides/code-guide.md— layout, API shape, naming, small functions, saying it oncedna/doc/guides/code-guide-dart.md,dna/doc/guides/code-guide-typescript.md— what that means in each languagedna/doc/guides/test-guide.md— mirroring the source tree, real types over mocks, asserting on structure, 100 percent coveragedna/doc/guides/test-guide-dart.md,dna/doc/guides/test-guide-typescript.md— the same, per languagedna/doc/guides/for-ai/ai-review-guide.md,dna/doc/guides/for-ai/review-heavy-guide.md— the review checklist an agent works through
Skills #
/code— checks the repo against the code guide/test— checks the tests against the test guide/review-light— reviews the current changes/review-heavy— the same, plus/simplifyand/code-review
Layers #
Orthogonal — it declares no parents and is inherited by the umbrella layer of each organization.
Variables #
dnaCopyrightHolder— the name in the license header of every file
Adapting it #
The language guides are ordinary DNA files, so a later layer can replace or patch them:
- a same-path
dna/doc/guides/code-guide-typescript.mdreplaces the file - a
dna/doc/guides/code-guide-typescript.overrides.mdpatches only the sections it names
The neutral guides mark their exchangeable sections with @ tags —
@layout, @imports, @api, @naming, @nesting, @coverage,
@performance, @security — so an override can replace one section
without restating the rest.
Usage #
Declare it as a dev-dependency and initialize once:
pnpm add -D @ggdna/dna-clean-code # TypeScript projects
dart pub add dev:dna_clean_code # Dart projects
gg dna init
The placed test instantiates and verifies the DNA on every test run.
Development #
The dna/ folder is hand-authored source and is never generated. The repo
instantiates its own DNA — run dart test after changes; commit first, a
file the DNA would overwrite must not carry uncommitted work.