Files
0pt/CONTRIBUTING.md
T
adminandClaude Sonnet 5 2393f52768
CI (SIAX Cloud) / security (push) Successful in 20s
Security Scan (SIAX Cloud) / security (push) Successful in 20s
CI (SIAX Cloud) / quality (push) Successful in 41s
CI (SIAX Cloud) / security (pull_request) Successful in 20s
Security Scan (SIAX Cloud) / security (pull_request) Successful in 20s
CI (SIAX Cloud) / quality (pull_request) Successful in 41s
docs(compliance): finish attributing the evasion-stack keep decision
PR #15 already fixed AGENTS.md/SECURITY.md with a dated, attributed
statement of the account owner's 2026-08-11 decision (Simon Axelsson, via
an interactive decision prompt, responding to this repo's own removal
proposal PR #7 which was verified clean/128 tests and closed unmerged --
no rationale beyond "keep it" was given or is invented). This PR finds and
fixes every other place in the repo that still carried the earlier
unattributed "medvetet anvandarbeslut" / "deliberate user decision" claim
a compliance audit flagged as unverifiable:

- docs/compliance/GOLDEN-STANDARD-REPORT.md: control C6 row + the
  "Bypass-undantag" formal section (the two places this doc was explicitly
  named to need checking) -- header gains a dated update note, C6 row and
  the section body get the same attributed statement as AGENTS.md/SECURITY.md.
- docs/compliance/SLUTRAPPORT.md, docs/compliance/INVENTORY.md: historical
  session doc keeps its original text and gains a dated correction
  addendum; the INVENTORY.md evidence bullet is corrected in place.
- docs/slo.md, CONTRIBUTING.md, prompts/002-compliance-audit.md,
  renovate.json, .gitea/workflows/security.yml: direct/living references
  to the exemption get the same attributed, dated pointer instead of the
  unattributed phrase.

CLAUDE.md's general §1 anti-evasion policy text is untouched, per instruction
-- this is a scoped exception note, not a change to the normative rule. No
code changes.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-11 13:34:13 +02:00

2.8 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 kontoägarens daterade beslut (Simon Axelsson, 2026-08-11 — se SECURITY.md/AGENTS.md) — 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.