story-research-zapwall/CONTRIBUTING.md
2025-12-23 02:20:57 +01:00

1.1 KiB

Contributing to zapwall4science

Principles

  • No fallbacks or silent failures.
  • No analytics; no tests added unless explicitly requested.
  • Respect lint, type-check, accessibility and exactOptionalPropertyTypes.
  • No ts-ignore, no untyped any, no console logs if a logger exists.

Setup

  • Node 18+, npm
  • npm install
  • npm run lint
  • npm run type-check

Coding guidelines

  • Split large components/functions to stay within lint limits (max-lines, max-lines-per-function).
  • Prefer typed helpers/hooks; avoid duplication.
  • Errors must surface with clear messages; do not swallow exceptions.
  • Storage: IndexedDB encrypted (AES-GCM) via lib/storage/cryptoHelpers.ts; use provided helpers.
  • Nostr: use lib/articleMutations.ts and lib/nostr*.ts helpers; no direct fallbacks.

Workflow

  • Branch from main; keep commits focused.
  • Run lint + type-check before PR.
  • Document fixes in fixKnowledge/ and features in features/.

Accessibility

  • Respect ARIA, keyboard, contrast requirements; no regressions.

What not to do

  • No analytics, no ad-hoc tests, no environment overrides, no silent retry/fallback.