Skip to content

Definition of Done

The Definition of Done is blocking. No push or merge request creation may happen until all checks are satisfied.

Every modified package must have its *.Tests project updated. All tests must pass with zero failures:

Terminal window
dotnet test

Any change to a public API, new feature, or behavior modification must be reflected in the documentation.

Code formatting must pass with zero issues:

Terminal window
dotnet format --verify-no-changes

Every modified .md file must pass markdownlint:

Terminal window
npx markdownlint-cli2 "path/to/file.md"

Any dependency added, removed, or updated must be reflected in THIRD-PARTY-NOTICES.md:

  • Add/modify/remove the package entry with its name, version, license (SPDX identifier), and copyright holder
  • Update the summary table at the top if the license count changes
  • Update the Last updated date

Required checks — frontend (TypeScript / React)

Section titled “Required checks — frontend (TypeScript / React)”

If you are also modifying frontend code:

  1. pnpm test — zero failures
  2. pnpm lint — ESLint --max-warnings 0 passes
  3. pnpm exec tsc --noEmit — compiles without error
  4. npx prettier --check "src/**/*.{ts,tsx,css}" — passes
  5. npx markdownlint-cli2 "path/to/file.md" — passes
  6. Every new visible component has a Storybook story
  7. THIRD-PARTY-NOTICES.md updated if dependencies changed

Run all backend checks in sequence:

Terminal window
dotnet build && \
dotnet test && \
dotnet format --verify-no-changes && \
npx markdownlint-cli2 "docs/**/*.md"

If a push is requested without the DoD being satisfied, the missing checks must be identified and resolved first. The DoD can only be overridden by explicit, per-item acknowledgement.

In addition to the DoD, verify before every push:

  • No hardcoded secrets or credentials in the code
  • No PII logged in plain text
  • Sensitive data encrypted at rest and in transit
  • Audit trail maintained for sensitive operations

These are not optional — they are compliance requirements (ISO 27001, GDPR).