- domain-packs/ios-app/: komplett referanse-pakke (8 komponenter) — pack.json med components-map, conventions.md, 4 patterns/, gotchas.md, checklist.md splittet i 3 (App Store-submission + security-privacy/MASVS 2.1 + accessibility/WCAG 2.2 AA), 3 scaffold/-maler (PrivacyInfo.xcprivacy-plist, NSUsageDescription-inventar, ASC-metadata), eksempel-feature-brief i Voyage strict-mode-format, glossary.md. Hver teknisk påstand verifisert mot Apple Developer / W3C WAI / OWASP MAS. - domain-packs/claude-code-plugin/: stub — pack.json + conventions.md + gotchas.md + checklist.md + glossary.md ferdige (ekstrahert fra ktg-privat-konvensjoner); patterns/scaffold/examples er stubs. - docs/domain-pack-spec.md: § D2/D3/D4/D7 + restrisiko oppdatert — pack.json components-felt, core/supplementary låst til manifestet, checklist-splitt-konvensjon, snapshot-materialiserings-mekanikk presisert, iOS-versjons-korreksjon (iOS 26, ikke "iOS 18/19"), D7 → "forfattet i S6". - prototype-run/friksjon.md: #9 (Akashic-briefen refererer "iOS 19" som ikke finnes — rettes i S7) + S6-prosessnotater (checklist-splitt bekreftet nødvendig, components-gap fylt, verifiserings-asymmetri ios-app vs claude-code-plugin notert). - CLAUDE.md: peker til domain-packs/ under § Status. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
35 lines
2.8 KiB
Markdown
35 lines
2.8 KiB
Markdown
<!-- domain-pack: claude-code-plugin · component: gotchas · core -->
|
|
<!-- Ekstrahert 2026-05-12 fra ktg-privat CLAUDE.md + .claude/rules/hook-format.md. -->
|
|
|
|
# Claude Code-plugin — gotchas ("ikke gjør dette")
|
|
|
|
Feil som faktisk har brutt plugins i dette repoet.
|
|
|
|
## Hooks
|
|
|
|
- **`hooks` som array.** Det er et **objekt** med event-nøkler (`PreToolUse`, `PostToolUse`, `Stop`, `SessionStart`, `UserPromptSubmit`, …). En array feiler stille / lastes ikke.
|
|
- **`matcher` som nestet objekt.** Det er en **enkel string** — `"Bash"`, `"Write|Edit"`. Et objekt der er feil.
|
|
- **Deklarere `"hooks"` i `plugin.json`.** Ikke gjør det — Claude Code auto-discoverer `hooks/hooks.json`. Dobbel-deklarasjon = uforutsigbar oppførsel.
|
|
- **Hardkode stier i hook-commands.** Bruk `${CLAUDE_PLUGIN_ROOT}` — plugin-roten varierer per installasjon.
|
|
- **Bash-/Python-avhengige hooks.** Runtime-hooks skal være Node.js `.mjs` (cross-platform). Hvis du *må* bruke bash: bash 3.2-kompatibel (ingen `declare -A`, `readarray`/`mapfile`, `|&`) — macOS-default er 3.2.
|
|
|
|
## Context-budget
|
|
|
|
- **Laste en hel katalog** (`references/`, `references/ai-security/`). Navngi spesifikke filer. Hele kataloger sprenger budsjettet for nedstrøms-arbeid.
|
|
- **Bruke `general-purpose` + "les agentfilen X"** i stedet for en registrert `subagent_type`. Det dobler kostnaden og hopper over agent-definisjonens egen verktøy-/modell-konfig.
|
|
- **Preloade "i tilfelle".** Max-3-filer-per-invokasjon. Trenger du en fjerde, les den når behovet oppstår.
|
|
- **Parallell agent-spawning uten grunn.** Sekvensiell er default; parallell krever begrunnelse (uavhengige oppgaver, ikke "raskere").
|
|
- **Plugin-`CLAUDE.md` som prosa-essay.** Under 100 linjer, tabell-basert. Lang = ignorert (samme dynamikk som Cursor-regler).
|
|
|
|
## Manifest & struktur
|
|
|
|
- **`plugin.json` uten `auto_discover`** (eller med komponenter både auto-discovered *og* manuelt deklarert). Hold det konsistent — auto-discovery for commands/agents/skills/hooks.
|
|
- **Feil filnavn-mønster.** Agenter: `descriptive-name-agent.md`. Commands: `command.md`. Skills: `skill-name/SKILL.md`. Avvik = komponenten oppdages ikke.
|
|
- **Skill-`description` som bare sier hva, ikke når.** Triggering avhenger av at description-en beskriver *aktiveringssituasjonen*. "Does X" trigges ikke; "Use when the user asks to X / mentions Y" trigges.
|
|
- **Agent-`description` uten when-to-use.** Samme: agenten velges på description-en. Inkluder konkrete triggere / eksempler.
|
|
|
|
## Prosess
|
|
|
|
- **Oppdatere `CLAUDE.md` i en separat commit etterpå.** Samme commit som endringen — ny agent + agent-tabell, ny command + command-tabell, ny hook + hook-oversikt.
|
|
- **Glemme versjonssync.** Versjonsbump? Oppdater package.json/`plugin.json`, README-badges, CHANGELOG, konstanter — alle i samme commit.
|
|
- **Skrive kode i andre repos / utvide scope etter godkjent plan** uten eksplisitt klarsignal.
|