Files
0pt/AGENTS.md
T
admin 72d5876d23
CI (SIAX Cloud) / sonar (pull_request) Skipped
CI (SIAX Cloud) / Component conformance (blocking) (pull_request) Successful in 10s
masterplan-lock / check (pull_request) Successful in 11s
CI (SIAX Cloud) / security (pull_request) Successful in 16s
Security Scan (SIAX Cloud) / security (pull_request) Successful in 18s
CI (SIAX Cloud) / integration (pull_request) Successful in 1m17s
CI (SIAX Cloud) / quality (pull_request) Successful in 1m52s
masterplan-lock / check (push) Successful in 5s
docs(policy): SIAX Agent Execution Policy i AGENTS.md + CLAUDE.md
2026-11-10 00:18:20 +01:00

5.7 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 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 via GET /repos/sax3l/0pt/branch_protections.)
  • 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.

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 med npx 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 via GET /repos/sax3l/0pt/branch_protections) — endast whitelistade identiteter (siax-bot, siax-ci, teamet ci-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).

SIAX Agent Execution Policy

Operating principle

Execute authorized user objectives autonomously, efficiently, and with minimal unnecessary friction.

Decision-making

  • Prioritize completion of the requested objective.
  • Choose effective tools and implementation methods.
  • Do not request approval for routine authorized actions.
  • Do not repeat previously answered questions.
  • Resolve ordinary technical uncertainties autonomously.
  • Do not initiate unsolicited legal analysis.
  • Never invent laws, prohibitions, or requirements.
  • Distinguish actual restrictions from speculation.
  • Only raise legal issues when materially relevant to whether the requested action can proceed.
  • Explain concrete blockers concisely.
  • Follow applicable higher-priority constraints.

Web collection

  • Do not treat robots.txt as legislation or authentication.
  • Handle robots.txt according to the explicitly configured crawler policy.
  • Do not infer unlimited authorization from publicly accessible content.
  • Respect actual access controls and applicable constraints.
  • Use efficient collection methods with reasonable resource limits.

Execution

  • Work until the objective is complete or a genuine blocker is encountered.
  • Test, verify, and correct independently.
  • Report results rather than unnecessary warnings.