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>
This commit is contained in:
parent
e4ae4ac5b4
commit
2011507ea1
27 changed files with 1059 additions and 17 deletions
101
domain-packs/claude-code-plugin/conventions.md
Normal file
101
domain-packs/claude-code-plugin/conventions.md
Normal file
|
|
@ -0,0 +1,101 @@
|
|||
<!-- domain-pack: claude-code-plugin · component: conventions · core -->
|
||||
<!-- Ekstrahert 2026-05-12 fra ktg-privat CLAUDE.md + .claude/rules/. Re-verifiser plattform-detaljer mot offisiell Claude Code-dokumentasjon. -->
|
||||
|
||||
# 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:**
|
||||
```yaml
|
||||
---
|
||||
name: plugin:command
|
||||
description: Short description
|
||||
allowed-tools: Read, Write, Bash, Task
|
||||
model: sonnet
|
||||
---
|
||||
```
|
||||
|
||||
**Agents:**
|
||||
```yaml
|
||||
---
|
||||
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
|
||||
|
||||
- `hooks` er et **objekt** med event-nøkler (`SessionStart`, `UserPromptSubmit`, `PreToolUse`, `PostToolUse`, `Stop`, …) — **ikke** en array.
|
||||
- `matcher` er en **enkel string** (`"Bash"`, `"Write|Edit"`) — **ikke** et nestet objekt.
|
||||
- Bruk `${CLAUDE_PLUGIN_ROOT}` for script-stier.
|
||||
- **Ikke** deklarer `"hooks"` i `plugin.json` — Claude Code auto-discoverer `hooks/hooks.json`.
|
||||
- Runtime-hooks er Node.js `.mjs` (cross-platform: macOS/Linux/Windows) — ingen bash/Python-runtime-avhengighet.
|
||||
|
||||
```json
|
||||
{
|
||||
"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)
|
||||
|
||||
1. Max **3 knowledge-filer** per agent-invokasjon — les kun det oppgaven trenger.
|
||||
2. Aldri last hele kataloger — navngi spesifikke filer, ikke `references/`.
|
||||
3. Bruk **registrerte `subagent_type`** — ikke `general-purpose` + "les agentfilen".
|
||||
4. **Sekvensiell agent-spawning** som default; parallell kun med begrunnelse.
|
||||
5. Supplementære filer (templates, matrices) lastes kun ved eksplisitt behov.
|
||||
6. SKILL.md = progressive disclosure (kompakt oversikt + `references/`).
|
||||
7. Plugin-`CLAUDE.md` **under 100 linjer** — tabeller, ikke prosa. Påkrevde seksjoner: tittel/beskrivelse, commands-tabell, agents-tabell, hooks-tabell, arkitektur, state-håndtering.
|
||||
|
||||
## Guardrails
|
||||
|
||||
- **`CLAUDE.md` oppdateres 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.md` skal score Grade B (70+/100)** på config-audit-kvalitetsvurderingen.
|
||||
- **Bash 3.2-kompatibilitet** for alle shell-/hook-scripts (macOS-default): ingen `declare -A`, ingen `readarray`/`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.
|
||||
Loading…
Add table
Add a link
Reference in a new issue