dna_clean_code 0.1.0 copy "dna_clean_code: ^0.1.0" to clipboard
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 once
  • dna/doc/guides/code-guide-dart.md, dna/doc/guides/code-guide-typescript.md — what that means in each language
  • dna/doc/guides/test-guide.md — mirroring the source tree, real types over mocks, asserting on structure, 100 percent coverage
  • dna/doc/guides/test-guide-dart.md, dna/doc/guides/test-guide-typescript.md — the same, per language
  • dna/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 /simplify and /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.md replaces the file
  • a dna/doc/guides/code-guide-typescript.overrides.md patches 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.

0
likes
150
points
391
downloads

Documentation

API reference

Publisher

verified publisherinlavigo.com

Weekly Downloads

DNA layer: clean code and test conventions, language neutral plus Dart and TypeScript

Repository (GitHub)
View/report issues

License

MIT (license)

More

Packages that depend on dna_clean_code