CI (SIAX Cloud) / integration (push) Has been skipped
masterplan-lock / check (push) Successful in 4s
CI (SIAX Cloud) / security (push) Successful in 16s
Security Scan (SIAX Cloud) / security (push) Successful in 17s
CI (SIAX Cloud) / quality (push) Successful in 36s
masterplan-lock / check (pull_request) Successful in 4s
CI (SIAX Cloud) / security (pull_request) Successful in 14s
Security Scan (SIAX Cloud) / security (pull_request) Successful in 23s
CI (SIAX Cloud) / quality (pull_request) Successful in 39s
CI (SIAX Cloud) / integration (pull_request) Successful in 51s
Rewrite the branch-protection / protected-paths section of AGENTS.md to state the verified-live Gitea branch_protections values instead of stale prose. No behavior change. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
4.3 KiB
4.3 KiB
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
git pull(Gitea:git.siax.io/sax3l/0pt— det är canonical remote, ej GitHub).- Läs
CLAUDE.md(kontraktet),docs/architecture/ARCHITECTURE.md(vad koden verkligen gör, inkl. kända luckor S1–S12),docs/compliance/(status). - 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 behållen — rör den inte. Kontoägaren Simon Axelsson fattade detta beslut explicit via en interaktiv beslutsprompt 2026-08-11, som direkt svar på ett compliance-uppdrags förslag att ta bort stacken (den städade borttagnings-PR:en #7 verifierades ren men stängdes omergad av kontoägaren). Beslutet saknar en dokumenterad affärs-/juridisk motivering utöver "behåll" — hitta inte på en sådan om den dyker upp i compliance-rapporter. Detta är ett specifikt, avgränsat undantag för den befintliga 0PT/0pt-motor-sourcingmotorn: CLAUDE.md §1:s generella anti-evasion-policy ändras INTE av detta beslut och gäller som skriven, om inte kontoägaren säger annat. - 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:
PLAN/**+.gitea/workflows/**+.gitignore— ändringar går via PR. (Verifierat live 2026-09-20 viaGET /repos/sax3l/0pt/branch_protections.) - Fonts: självhämtade via
@fontsource-variable/*— lägg aldrig tillbakanext/font/googleeller@vercel/*. - Secrets: aldrig i repo. Infisical (
vault.siax.io), env viaprocess.env.*. - Docker: multi-stage, icke-root (
USER node), ingen tsx i prod, healthcheck mot/api/health.
Toolchain-ägande (SIAX selected toolchain, 2026-09-14)
mise.toml= task-entry (setup/check/verify/build/release). Ändra inte betydelsen av dessa fem tasks. pnpm@9.15.9 följer packageManager.lefthook.yml= git hooks (pre-commit: typecheck+lint, pre-push: test). Aktiveras mednpx lefthook install.Makefileär legacy-alias ("thin wrappers", se dess header) — nya kommandon läggs ALDRIG dit; mise är kanonisk entry. Makefile städas bort i separat PR med deleteBy-registering.- Pinning mot
sax3l/siax-templates:.siax/template-pin.json(siax.template-pin/v1). Förbjudna duplicerade verktyg: just, Task, Nx, Cypress (Playwright gäller), OpenProject/Leantime/AppFlowy (Plane gäller), Keycloak (Zitadel/ACT0 gäller). - Python-tjänsterna (services/api, services/scrapers) kör requirements.txt; uv-adoption är DEFERRED till en separat lås-migrering.
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 AVSTÄNGT (enable_push: false, verifierat live 2026-09-20 viaGET /repos/sax3l/0pt/branch_protections) — endast whitelistade identiteter (siax-bot,siax-ci, teametci-approvers) kan pusha över huvud taget, oavsett vilken fil det gäller. Alla andra ändringar: 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).