Skip to content

DID Surface Change Discipline ​

Use this guide before changing contract circuits, generated artifacts, package exports, local runners, or CI workflow behavior.

Target branch ​

Use develop for ordinary DID repository PRs.

What counts as a surface change ​

SurfaceExamples
Contractpackages/contract/src/did.compact, generated managed artifacts, circuit names
Package APIdomain, did, api, and jubjub-schnorr exports
Runtime behaviorprovider setup, DID update orchestration, and resolution helpers
Local workflow./run.sh, split runners, metrics output, artifact packaging
CI and docsbranch filters, docs publication, PR checklist expectations

Required updates ​

  • Add a CHANGELOG.md entry for behavior, packaging, or workflow changes.
  • Update the README or docs page that explains the changed surface.
  • Add tests or guard coverage for the new contract.
  • Complete the DID Surface Checklist in the PR template.

Guard command ​

bash
pnpm run check:did-surface-discipline

The guard checks that the repository keeps develop branch validation, packaging manifests, docs links, PR checklist language, and package export maps in sync.

For full local confidence:

bash
./run.sh --light --strict --metrics

Midnight DID reference implementation