Files
0pt/CONTRIBUTING.md
T

2.7 KiB

Contributing — 0pt

0pt (SIAX Cloud Data OS) är proprietär mjukvara från SIAX Technology AB. Interna bidrag följer konventionerna nedan. Externt: kontakta security@siax.io / simon@siax.io innan bidrag.

Repo-ryggrad

  • Kategori: platform (K1) · Subkategori: data-os · SSOT: siax.repo.json + siax.config.json
  • Kontrakt: contracts/openapi.yaml — alla API-ändringar börjar här (SSOT), sedan routehandler.
  • Dokumentation: CLAUDE.md först, sedan docs/ och docs/compliance/. Om kod och docs avviker: skriv avvikelsen, fabricera inte.

Hårda regler (bryt aldrig)

  1. AR-1 — radera aldrig befintlig funktionalitet/endpoint. Bygg färdigt. Undantag: services/scrapers/* + services/infra/docker-compose.data-stack.yml är medvetet behållna per användarbeslut — rör dem inte.
  2. AR-2 — rör aldrig frysta kundrepon (contentroom, v0-datahub, prt-*, …).
  3. AR-4 — inga betald-SaaS-beroenden; inga Vercel/GCP/Azure/Google Fonts/ next/font/google; Cloudflare endast inom pågående migrering.
  4. AR-5 — bevis, inte påståenden. Märk VERIFIERAT/ANTAGANDE/EJ VERIFIERAT.
  5. AR-6 — aldrig hemligheter i repo (Infisical). Inga NEXT_PUBLIC_*-hemligheter.
  6. AR-8 — beroenden pekar bara nedåt (K1; aldrig kundrepon).
  7. Tenant-id bunden till sessionen — aldrig litat på från request-body.

Arbetsflöde

  1. Branch från main: git switch -c fix/my-change (conventional prefix).
  2. pnpm install --frozen-lockfile (eller --no-frozen-lockfile om lockfilen medvetet uppdateras).
  3. Grindar innan push:
    pnpm run typecheck   # BLOCKERANDE (src/ + tests/)
    pnpm run test        # BLOCKERANDE (vitest)
    pnpm run lint        # rådgivande (legacy-noise finns)
    pnpm run build       # BLOCKERANDE (next build)
    
  4. Conventional Commits: feat: / fix: / docs: / chore: / ci: / refactor:.
  5. .gitea/workflows/** och .gitignore är skyddade på main — ändringar där går via PR (push direkt avvisas av pre-receive-hook).
  6. Öppna PR mot main; CI måste vara grön innan merge.
  7. Commit-meddelanden på engelska; UI-copy på svenska.

Testkonventioner

  • Enheter + capability-tester: tests/{auth,p0,validation}/.
  • Real-infra-tester (*.realinfra.test.ts) skippar ärligt när ST0RE/N0D inte nås.
  • Lägg aldrig till en test som fabricerar påståenden om kod som inte finns.

Merge & release

  • Merge via PR till main (skyddad). CD: .gitea/workflows/cd.yml triggar Coolify-redeploy — fails medvetet tills en Coolify-app provisionerats och COOLIFY_APP_ID/COOLIFY_TOKEN satts.