# Subtraction shapes — synthesized fixture This fixture reproduces the *discriminating shapes* from the hand-built subtraction fasit (økt #40) without reproducing any of the operator's private config text. Every block below exists to make one classification call hard in the same way a real block was hard. Both languages appear on purpose: the config this lens was designed against is Norwegian prose with English identifiers, and a detector that only speaks English would score well here and fail in the field. ## Preferences - Language: Norwegian for dialogue, English for code and documentation. - Tone: direct and technical, minimal ceremony. - Format: be concrete and action-oriented, avoid unnecessary text. - Never say "as an AI I cannot"; skip apologies and over-explanation. ## Kodepreferanser - TypeScript > JavaScript - Readability > cleverness - Conventional Commits: `type(scope): description` ## Oppstart 1. Run `pwd` to see where you are. 2. Read the nearest STATE.md and confirm the active task. 3. Sjekk `git status` mot det STATE.md hevder. 4. Summarize before you do anything. ## Arbeidsregler - Commit often with descriptive messages. - Test incrementally, and ask when blocked. - Tenk før du koder — uttal antakelser eksplisitt og spør ved tvetydighet. - Aldri gjett på rotårsak; undersøk først. ## Defensive shell-scripting - Alltid siter variabel-ekspansjoner (`"$var"`) — en usitert ekspansjon brøt en zsh-loop. - Hold testkode ASCII-ren; et multibyte-tegn krasjet bash 3.2 under `set -u`. ## Anti-patterns - Do not one-shot large features. - Never declare "done" without running the tests. - Aldri jobb i et annet repo enn det økten står i. Hvert repo eier sin egen versjonsplan og sin egen tilstand. Skriver du der, tar du beslutninger på deres vegne uten deres kontekst — `coord-send` er mekanismen, send arbeidet dit i stedet. - Do not refactor as part of a bugfix without approval. ## Git - Aldri GitHub. Kun Forgejo (`git.example-forge.test`). Aldri `gh` CLI. - Etter `git commit`: push til Forgejo umiddelbart. ## Miljø - System bash er **3.2**: ingen `declare -A`, ingen `readarray`. - Alle hook-scripts må være 3.2-kompatible. ## Modellvalg Default for alt arbeid er Opus 4.8 med xhigh effort. Ingen annen modell skal brukes. Sett `model: "opus"` på hver spawn. Haiku: aldri. ## Secrets - ALDRI commit secrets. Bruk `.env`/`.template`-mønsteret. ### The Iron Law: NO PRODUCTION CODE WITHOUT A FAILING TEST FIRST ## Arbeidsflyt Default for alle oppgaver: forstå problemet, vurder alternativer, presenter dem, og vent på bekreftelse før du implementerer. Ved usikkerhet om en oppgave faller i unntakene: den gjør det ikke. **Viktig:** `/harness continue` og andre skills styrer sin egen workflow. ## Kodeblokk ```bash # Never run this in production, and always check every time first. echo "avoid unnecessary output" ``` ## Kontinuitet Konteksten mellom sesjoner hviler på tre lag med hver sin ene jobb: - **`STATE.md`** — current state-of-play der du jobber. Overskrives alltid ved sesjonsslutt. - **`MEMORY.md`** — varige fakta om bruker. Hold den under 200 linjer. ## Verktøy - Deleger arbeid til subagenter, og bruk Explore for søk. - Skriv alltid kortest mulig kode.