Thanks for helping make private self-hosted storage easier to run and maintain.
Bento uses a contract-first workflow:
- Read the relevant source-of-truth document before changing behavior.
- If an API contract changes, update
openapi/openapi.yamlfirst. - Keep each PR small: one task, one behavior change, or one focused documentation improvement.
- Add or update CLI evidence when behavior changes.
- Do not mix feature work with refactoring in the same PR.
The main source-of-truth files are:
openapi/openapi.yamlfor API paths, schemas, error codes, state machines, and DB expectations.docs/NAS_SelfHosted_DDD_Spec_FINAL.mdfor domain model and policy rationale.docs/NAS_OpenClaw_TDD_Addendum_FINAL.mdfor evidence and pass/fail rules.docs/ui/IA_NAV_SSOT.mdanddocs/ui/COPY_KEYS_SSOT.mdfor UI routes and copy keys.
Run the smallest validation that proves your change, then mention it in the PR.
pnpm install --frozen-lockfile
pnpm --filter @nimbus/ui-kit --filter @nimbus/ui run typecheck
pnpm -C packages/ui lint
node scripts/check-i18n-sync.js
bash scripts/enforce-tokens.shFor UI or behavior changes, also run the relevant package tests or evidence script.
PRs should include:
- problem statement;
- source-of-truth files checked;
- implementation summary;
- validation commands and results;
- risks and rollback notes.
Generated code or Codex-assisted changes are welcome when they are reviewed, scoped, and validated like human-written changes.