Skip to content

Contributing

Local Workflow

bash
npm install
npm run check
npm test
npm run dashboard:build

Use rg for search and keep changes scoped to the active task.

CLI Checks

bash
npm run cli -- --help
npm run cli -- pull --dry-run --demo

For real Postgres dry-run work, use a temporary project with proofmark.json and a disposable Postgres database.

Test Expectations

Add focused tests when changing:

  • config loading
  • Prisma schema parsing
  • SQL construction
  • masking behavior
  • evidence/certificate output
  • dashboard server function behavior

Run these before handing off:

bash
npm run check
npm test
npm run dashboard:build

Docs Site Freshness

The VitePress docs are built into site/docs/, which is committed because the Cloudflare deploy serves ./site directly with no build step. After editing any source under docs/, rebuild and commit the output:

bash
npm run docs:build
git add site/docs

npm run docs:check rebuilds and fails if site/docs/ has drifted from source. A pre-push hook runs it automatically — enable it once per clone with:

bash
git config core.hooksPath scripts/hooks

Docs Boundary

Repo docs are for contributors and maintainers. Keep private stakeholder decks, customer discovery notes, pricing, positioning, and market strategy out of this repo.

The root DECK.md is the exception: it is a public forwarding deck for the current product story, and it should link back to canonical docs instead of copying implementation details.

Use /home/watthem/Vaults/projects/proofmark for internal business material.

Review Priorities

  1. Does the change preserve local-first behavior?
  2. Does dry-run remain read-only?
  3. Are demo paths explicit?
  4. Are source values and credentials kept out of logs?
  5. Are tests scoped to the changed behavior?

MIT licensed. Built by Matthew Hendricks.