--- name: plan-start description: Legt in einem neuen oder leeren Projektordner die standardisierte Dokumentations- und Wegweiser-Struktur an (CLAUDE.md, docs/ mit 00-overview, 10-plan, 20-architecture, 90-status, 30-decisions/, 40-workflows/, sessions/). Nutzt die Templates unter templates/ dieses Skills. Soll nur auf explizite Nutzeranforderung laufen, nie autonom. disable-model-invocation: true argument-hint: "" allowed-tools: - Read - Write - Edit - Bash --- # plan-start — Projekt-Scaffolding ## Wann der Skill läuft Ausschließlich auf expliziten Aufruf, in einem **neuen oder noch leeren Projektordner**. Der Skill legt eine Grundstruktur an und darf vorhandene Dateien nicht überschreiben. ## Was der Skill tut 1. Prüft den aktuellen Arbeitsordner. Wenn dort bereits `CLAUDE.md` oder `docs/` existiert → **abbrechen** und dem Nutzer melden: „Hier liegt schon ein initialisiertes Projekt. `plan-start` ist idempotent nicht — du willst vermutlich `status` oder direkt in `docs/` editieren." 2. Stellt dem Nutzer vor dem Schreiben **kurz und konkret** diese Fragen (eine nach der anderen, nicht als Sammel-Liste): - **Projektname** (wird als Titel in CLAUDE.md und Headings verwendet) - **Ein-Satz-Zweck** („Wofür ist das Projekt da?") - **Aktuelle Phase** (Planung / Build / Wartung — Default: Planung) - **Stack in Stichworten** (z. B. „Python + FastAPI + PocketBase", „NixOS + Caddy + Docker Compose" — darf auch leer sein, wenn noch unklar) 3. Legt folgende Struktur an — relativ zum aktuellen Arbeitsordner: ``` ./CLAUDE.md ./.claude/skills/.gitkeep ./docs/00-overview.md ./docs/10-plan.md ./docs/20-architecture.md ./docs/90-status.md ./docs/30-decisions/README.md ./docs/40-workflows/README.md ./docs/sessions/README.md ``` 4. Befüllt jede Datei aus dem passenden Template unter `./templates/` dieses Skills. Platzhalter werden wie folgt ersetzt: | Platzhalter | Quelle | |---|---| | `{{PROJECT_NAME}}` | aus Frage 1 | | `{{PROJECT_PURPOSE}}` | aus Frage 2 | | `{{PROJECT_PHASE}}` | aus Frage 3 | | `{{PROJECT_STACK}}` | aus Frage 4, leer → `TBD` | | `{{TODAY_ISO}}` | heutiges Datum als `YYYY-MM-DD` via `date +%F` | | `{{USER_NAME}}` | optional: `git config user.name`, sonst leer | 5. Erzeugt `.claude/skills/.gitkeep` als leere Datei, damit das projektspezifische Skill-Verzeichnis unter Versionskontrolle bleibt, auch solange es leer ist. 6. Gibt am Ende eine **kurze Bestandsaufnahme** in 3–5 Zeilen aus: was wurde angelegt, was als Nächstes sinnvoll ist (Empfehlung: `docs/00-overview.md` und `docs/10-plan.md` durchgehen und konkretisieren, dann `handoff`). ## Harte Regeln - **Nie** Dateien überschreiben. Wenn auch nur eine der Zieldateien existiert: komplett abbrechen und den Nutzer informieren. - **Nie** in ein nicht-leeres Git-Repo schreiben, ohne vorher zu warnen. Ein Repo mit einer `.git/`, aber ohne `CLAUDE.md` und ohne `docs/` ist in Ordnung — das heißt der Nutzer hat bereits `git init` gemacht, das ist der Normalfall. - **Nie** `git commit` selbstständig ausführen. Der Nutzer entscheidet, was committet wird. ## Tonfall in den erzeugten Templates - Prosa auf Deutsch, kurz, konkret. - Code, Pfade, Kommandos auf Englisch. - Platzhalter-Abschnitte sind mit `TBD` oder einem sichtbaren HTML-Kommentar `` markiert, damit der Nutzer sofort sieht, was noch gefüllt werden muss. ## Templates Siehe `./templates/` im Skill-Ordner: - `CLAUDE.md.tmpl` - `00-overview.md.tmpl` - `10-plan.md.tmpl` - `20-architecture.md.tmpl` - `90-status.md.tmpl` - `30-decisions.README.md.tmpl` - `40-workflows.README.md.tmpl` - `sessions.README.md.tmpl`