app-creator/domain-packs/claude-code-plugin/gotchas.md
Kjell Tore Guttormsen 2011507ea1 design(app-creator): S6 — forfatt ios-app referanse-domain-pack + start claude-code-plugin-pakke
- 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>
2026-05-12 14:06:54 +02:00

2.8 KiB

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 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.