SPB Git

Repository Public MIT

CONTRIBUTING.md 2.4 KB 49 lines markdown

1# Contributing23Thank you for looking. This project is maintained by one person with heavy use of Claude Code; clear, small changes are the easiest to accept.45## Two ways to contribute67**Publish an artifact.** Accounts and namespaces are created by the operator in V1. Write to contact@spboucher.ai with the namespace you would like and a line about what you plan to publish. Then follow `/docs/publishing`.89**Change the registry itself.** Read `CLAUDE.md`, `docs/IMPLEMENTATION_PLAN.md` and the ADRs first. Open an issue or email before a large change.1011## Local setup1213Requirements: Node 20 or newer (developed on 26), pnpm 11, PostgreSQL 17 running locally with the `citext` and `pg_trgm` extensions available.1415```bash16pnpm install17createdb skills_dev18cp .env.example .env && chmod 600 .env     # fill DATABASE_URL, TOKEN_PEPPER (openssl rand -hex 32), DATA_DIR19pnpm db:migrate20pnpm admin:bootstrap --email you@example.org --name "You" --namespace yourns21pnpm dev22```2324## Checks before you propose a change2526```bash27pnpm typecheck28pnpm test          # unit + integration; needs a local PostgreSQL where you can create databases29pnpm test:e2e      # when you touched the UI30```3132Integration tests create a database named `skills_test_<random>` and a temporary data directory per test file and drop both afterwards. Set `TEST_ADMIN_DATABASE_URL` if your PostgreSQL is not on the default socket.3334## Rules3536- No feature without a test when it touches authentication, authorization, upload handling, release state or audit. Look at `tests/integration` for the style: tests go through `handleApi` like a real client.37- Never weaken or skip a security test to get green.38- Never edit an applied migration; add a new numbered file.39- Shared limits, scopes and enumerations belong in `packages/registry-core/src/constants.ts`.40- Authorization is enforced in services, not in UI code.41- No secrets in code, tests, fixtures, docs or commit messages. Test fixtures that need token-shaped strings build them at runtime.42- No fabricated numbers, ratings or testimonials anywhere in the product or docs.43- Update `docs/IMPLEMENTATION_PLAN.md` when a status changes, and add an ADR when you make a decision someone will later ask "why" about.44- Keep documentation honest about what is implemented, tested and planned.4546## Licence4748By contributing you agree that your contribution is licensed under the MIT licence of this repository. Artifacts you publish to the registry keep the licence you declare for them.49
Files main
Menu

Theme