Files
0pt/AGENTS.md
T

2.6 KiB
Raw Blame History

AGENTS.md — 0pt

Operativ brief för AI-agenter (Claude Code / opencode / liknande) som arbetar i detta repo. Läs CLAUDE.md + docs/compliance/ innan du gör ändringar.

Vad det här är

0pt = SIAX Clouds Data OS: företags-/kontakt-/fordonsdata, enrichment, entity-resolution, provenance per fält, adaptive router, orderflöde med 50/50-escrow. Next.js 16-webapp + FastAPI-engine + Python-skrapmotor i samma träd.

Första steget

  1. git pull (Gitea: git.siax.io/sax3l/0pt — det är canonical remote, ej GitHub).
  2. Läs CLAUDE.md (kontraktet), docs/architecture/ARCHITECTURE.md (vad koden verkligen gör, inkl. kända luckor S1–S12), docs/compliance/ (status).
  3. Kontrollera senaste CI-run (Gitea Actions) om du ska verifiera "grön".

Viktiga förhållanden

  • Bypass-stacken (services/scrapers/*, waf_bypass.py, data-stack-compose, adaptive_router.py) är medvetet behållen per användarbeslut — rör den inte, och nämn alltid "medvetet användarbeslut" om den dyker upp i compliance-rapporter.
  • Auth: /api/0pt/* fail-closed i kod (Zitadel via middleware), men live-instansen svarade 2026-08-10 anonymt 200 (lucka S1 — rotorsaksanalys ej klar). Påstå aldrig att produktionen är skyddad innan en anonym request fått 401.
  • Tenant-id får aldrig tas från request-body — idag gör handlers det (S2); nya handlers ska läsa x-0pt-verified-tenant-headern.
  • Sanning: repot har en stark anti-fabricering-konvention (docs korrigerar README). Om något påstås vara byggt men inte finns: skriv "inte byggt", fabricera inte.
  • Skyddade sökvägar: .gitea/workflows/** + .gitignore — ändringar går via PR.
  • Fonts: självhämtade via @fontsource-variable/* — lägg aldrig tillbaka next/font/google eller @vercel/*.
  • Secrets: aldrig i repo. Infisical (vault.siax.io), env via process.env.*.
  • Docker: multi-stage, icke-root (USER node), ingen tsx i prod, healthcheck mot /api/health.

Grindar (kör före push)

pnpm run typecheck && pnpm run test && pnpm run build   # blocking
pnpm run lint                                           # advisory

Commit & push

  • Conventional Commits. Push direkt till main är OK för icke-skyddade filer, men om du rör skyddade sökvägar: branch → PR.
  • Lämna aldrig en förgrenad origin/github.com-remote som sanningskälla — Gitea är primärt (Simon-direktiv 2026-07-14).

Vid osäkerhet

Fråga Simon (simon@siax.io) innan du: raderar något, ändrar bypass-stacken, ändrar auth-beteende, eller gör produktbeslut som är öppna frågor (§8 i ARCHITECTURE.md).