- 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>
4.3 KiB
4.3 KiB
Claude Code-plugin — konvensjoner
Ikke-forhandlbare beslutninger for plugins i ktg-privat-mønsteret. Avvik krever en 00-context/pack-overrides.md-oppføring.
Mappestruktur
plugin-name/
├── .claude-plugin/plugin.json # Manifest (auto_discover: true)
├── commands/ # Slash-commands → /plugin:command
├── agents/ # Subagenter med frontmatter
├── skills/ # skill-name/SKILL.md + references/
├── hooks/
│ ├── hooks.json # Hook-konfig (auto-discovered)
│ └── scripts/ # Executable scripts (.mjs)
├── templates/ # Prosjekt-templates (valgfri)
├── README.md # Plugin-dokumentasjon
├── CLAUDE.md # Plugin-instruksjoner
└── plugin.local.md # Lokal konfig (gitignored)
Navnekonvensjoner
| Komponent | Mønster | Eksempel |
|---|---|---|
| Commands | command.md |
build.md → /plugin:build |
| Agents | descriptive-name-agent.md |
gap-analysis-agent.md |
| Skills | skill-name/SKILL.md |
prd-writing/SKILL.md |
| References | skill-name/references/*.md |
prd-writing/references/task-format.md |
Frontmatter
Commands:
---
name: plugin:command
description: Short description
allowed-tools: Read, Write, Bash, Task
model: sonnet
---
Agents:
---
name: agent-name
description: |
Multi-line description for WHEN to use this agent (triggering matters).
model: opus|sonnet|haiku
color: blue|green|yellow|purple|cyan
tools: ["Read", "Glob", "Task"]
---
Skills: SKILL.md har name + en description som avgjør triggering — beskriv hva skillen gjør og når den skal aktiveres. Bruk progressive disclosure: kompakt SKILL.md + references/ for detaljer.
Hooks-format
hookser et objekt med event-nøkler (SessionStart,UserPromptSubmit,PreToolUse,PostToolUse,Stop, …) — ikke en array.matcherer en enkel string ("Bash","Write|Edit") — ikke et nestet objekt.- Bruk
${CLAUDE_PLUGIN_ROOT}for script-stier. - Ikke deklarer
"hooks"iplugin.json— Claude Code auto-discovererhooks/hooks.json. - Runtime-hooks er Node.js
.mjs(cross-platform: macOS/Linux/Windows) — ingen bash/Python-runtime-avhengighet.
{
"hooks": {
"PreToolUse": [
{ "matcher": "Bash",
"hooks": [{ "type": "command", "command": "node ${CLAUDE_PLUGIN_ROOT}/hooks/scripts/firewall.mjs" }] }
],
"Stop": [
{ "hooks": [{ "type": "prompt", "prompt": "Reminder text." }] }
]
}
}
Context-budget-regler (gjelder alle plugins)
- Max 3 knowledge-filer per agent-invokasjon — les kun det oppgaven trenger.
- Aldri last hele kataloger — navngi spesifikke filer, ikke
references/. - Bruk registrerte
subagent_type— ikkegeneral-purpose+ "les agentfilen". - Sekvensiell agent-spawning som default; parallell kun med begrunnelse.
- Supplementære filer (templates, matrices) lastes kun ved eksplisitt behov.
- SKILL.md = progressive disclosure (kompakt oversikt +
references/). - Plugin-
CLAUDE.mdunder 100 linjer — tabeller, ikke prosa. Påkrevde seksjoner: tittel/beskrivelse, commands-tabell, agents-tabell, hooks-tabell, arkitektur, state-håndtering.
Guardrails
CLAUDE.mdoppdateres i samme commit som endringen den dokumenterer — ny agent → agent-tabell; ny command → command-tabell; ny hook → hook-oversikt; strukturendring → relevant seksjon. Ikke batch dokumentasjon til en separat commit.- Plugin-
CLAUDE.mdskal score Grade B (70+/100) på config-audit-kvalitetsvurderingen. - Bash 3.2-kompatibilitet for alle shell-/hook-scripts (macOS-default): ingen
declare -A, ingenreadarray/mapfile, ingen|&. (Foretrekk.mjs.) - Conventional Commits:
type(scope): beskrivelse.
core / supplementary
pack.json → components er autoritativ. 00-context/-snapshotet inkluderer core (conventions.md, gotchas.md, checklist.md); supplementary lastes on-demand.