From just-ship
Initializes projects by auto-detecting stack from files (Shopify variants first, then JS/TS/Python/Go/Rust via package.json/tsconfig/etc.), creating project.json, generating CLAUDE.md. Non-interactive setup without overwriting.
How this skill is triggered — by the user, by Claude, or both
Slash command
/just-ship:initThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Initialisiert ein Projekt f\u00fcr Just Ship: erstellt `project.json` mit auto-detected Stack, generiert `CLAUDE.md` aus Template. Nicht-interaktiv, keine R\u00fcckfragen.
Initialisiert ein Projekt f\u00fcr Just Ship: erstellt project.json mit auto-detected Stack, generiert CLAUDE.md aus Template. Nicht-interaktiv, keine R\u00fcckfragen.
Board-Verbindung erfolgt separat via /connect-board.
project.json wird NICHT \u00fcberschrieben. Falls vorhanden: \u2713 project.json existiert bereits \u2014 \u00fcbersprungen und weiter zu Schritt 3 (CLAUDE.md).CLAUDE.md wird NICHT \u00fcberschrieben. Falls vorhanden: \u2713 CLAUDE.md existiert bereits \u2014 \u00fcbersprungen.project.json bereits Stack-Felder hat (stack.language oder stack.framework non-empty): Ausgabe \u2713 Projekt bereits initialisiert und beenden.Lies die vorhandenen Dateien im Projekt-Root um den Stack zu erkennen. Keine R\u00fcckfragen \u2014 nur Dateisystem-Analyse.
1a) Shopify-Erkennung (h\u00f6chste Priorit\u00e4t):
Shopify-Projekte haben spezifische Dateimuster. Pr\u00fcfe in dieser Reihenfolge (erster Treffer gewinnt):
| Signal | Variante | Store-Quelle |
|---|---|---|
shopify.app.toml existiert | shopify-app (Remix) | shopify.app.toml |
hydrogen.config.ts existiert ODER @shopify/hydrogen in package.json | shopify-hydrogen | .env / .env.local (PUBLIC_STORE_DOMAIN oder SHOPIFY_STORE_DOMAIN) |
sections/ dir UND layout/theme.liquid existieren | shopify-theme (Liquid) | shopify.theme.toml |
Falls Shopify erkannt:
{
"stack": {
"language": "<liquid f\u00fcr shopify-theme, typescript f\u00fcr shopify-app und shopify-hydrogen>",
"framework": "shopify",
"platform": "shopify",
"variant": "<shopify-theme|shopify-app|shopify-hydrogen>"
}
}
Sprache je Variante: shopify-theme \u2192 liquid, shopify-app \u2192 typescript, shopify-hydrogen \u2192 typescript.
Build-Commands je Variante:
| Variante | build.dev | build.web | build.install |
|---|---|---|---|
shopify-theme | shopify theme dev | shopify theme check --fail-level error | \u2014 |
shopify-app | shopify app dev | npm run build | npm install |
shopify-hydrogen | npm run dev | npm run build | npm install |
1b) Allgemeine Stack-Erkennung (falls kein Shopify):
Package Manager (aus Lock-Datei):
pnpm-lock.yaml \u2192 pnpmyarn.lock \u2192 yarnbun.lockb oder bun.lock \u2192 bunpackage-lock.json \u2192 npmpackage.json existiert \u2192 npmSprache:
tsconfig.json existiert \u2192 TypeScriptpackage.json existiert (ohne tsconfig) \u2192 JavaScriptpyproject.toml / requirements.txt / Pipfile \u2192 Pythongo.mod \u2192 GoCargo.toml \u2192 RustFramework (aus package.json Dependencies oder Dateistruktur):
next in dependencies \u2192 Next.js (pr\u00fcfe src/app/ f\u00fcr App Router vs src/pages/ f\u00fcr Pages Router)nuxt \u2192 Nuxt@angular/core \u2192 Angularsvelte / @sveltejs/kit \u2192 SvelteKitreact (ohne next/remix) \u2192 Reactvue (ohne nuxt) \u2192 Vueexpress / fastify / hono \u2192 Node Backend (jeweiliges Framework)django / flask / fastapi \u2192 Python BackendBackend:
@supabase/supabase-js oder supabase/ dir \u2192 Supabaseprisma/ dir \u2192 Prismadrizzle.config.* \u2192 DrizzleBuild-Commands aus package.json scripts ableiten:
build Script vorhanden \u2192 {pkg_manager} run builddev Script vorhanden \u2192 {pkg_manager} run devtest Script vorhanden \u2192 {pkg_manager} run testPfade (nur setzen wenn Verzeichnis tatsächlich existiert):
src/app/, app/ \u2192 paths.srcsrc/components/, components/ \u2192 paths.componentssrc/lib/, lib/ \u2192 paths.libtests/, test/, __tests__/ \u2192 paths.testsFalls project.json NICHT existiert:
Lies templates/project.json als Referenz f\u00fcr die Struktur. Falls die Datei nicht existiert, nutze die untenstehende JSON-Struktur direkt.
Erstelle project.json basierend auf der Template-Struktur und f\u00fclle die erkannten Werte ein:
{
"name": "<aus package.json name, oder Verzeichnisname kebab-case>",
"description": "<aus package.json description, oder leer>",
"stack": {
"language": "<erkannte Sprache>",
"framework": "<erkanntes Framework>",
"backend": "<erkanntes Backend>",
"package_manager": "<erkannter Package Manager>",
"platform": "<shopify falls Shopify, sonst leer>",
"variant": "<Shopify-Variante falls Shopify, sonst leer>"
},
"build": {
"web": "<erkannter Build-Command>",
"test": "<erkannter Test-Command>",
"dev": "<erkannter Dev-Command>",
"dev_port": null,
"install": "<erkannter Install-Command>",
"verify": ""
},
"hosting": {
"provider": "",
"project_id": "",
"team_id": "",
"coolify_url": "",
"coolify_app_uuid": ""
},
"shopify": {
"store": "<erkannter Store falls Shopify, sonst leer>"
},
"skills": {
"domain": [],
"custom": []
},
"paths": {
"src": "<erkannter Pfad>",
"tests": "<erkannter Pfad>"
},
"supabase": {
"project_id": ""
},
"pipeline": {
"workspace_id": "",
"project_id": "",
"project_name": null,
"skip_agents": [],
"timeouts": {}
},
"conventions": {
"commit_format": "conventional",
"language": "de"
}
}
Regeln:
Ausgabe: \u2713 project.json erstellt ({erkannter Stack Zusammenfassung})
Falls kein Stack erkannt: \u2713 project.json erstellt (Stack nicht erkannt \u2014 manuell erg\u00e4nzen oder /setup-just-ship ausf\u00fchren)
Falls CLAUDE.md NICHT existiert:
Lies templates/CLAUDE.md und ersetze Platzhalter:
{{PROJECT_NAME}} \u2192 Projektname aus project.json name FeldTODO: Kurze Projektbeschreibung hier einf\u00fcgen. \u2192 project.json description (falls non-empty), sonst Platzhalter belassenTODO: Code-Konventionen hier einf\u00fcgen \u2192 Erkannte Konventionen basierend auf Stack (z.B. TypeScript, Next.js, Tailwind CSS, pnpm). Falls nichts erkannt: Platzhalter belassenTODO: Projektstruktur hier einf\u00fcgen. \u2192 Top-Level-Verzeichnisstruktur (2-3 Ebenen). Nur tats\u00e4chlich vorhandene Verzeichnisse. Falls leer: Platzhalter belassenSchreibe die Datei als CLAUDE.md im Projekt-Root.
Ausgabe: \u2713 CLAUDE.md generiert
Zeige eine gebrandete, informative Zusammenfassung. Nutze Box-Drawing-Characters fuer visuelle Struktur.
Immer zuerst den Banner:
┌─────────────────────────────────────────────┐
│ │
│ _ _ _ ____ _____ ____ _ _ ___ ____ │
│ | | | | / ___|_ _| / ___| | | |_ _| _ \ │
│ _ | | | | \___ \ | | \___ \ |_| || || |_) |│
│ | |_| | |_| |___) || | ___) | _ || || __/ │
│ \___/ \___/|____/ |_| |____/|_| |_|___|_| │
│ │
│ Your dev team. Always shipping. │
│ │
└─────────────────────────────────────────────┘
Dann die Projekt-Info:
Falls Stack erkannt:
┌─ {name}
│
│ Stack {framework} + {language}
│ Package Mgr {package_manager}
│ Build {build.web}
│ Test {build.test}
│
│ ✓ project.json erstellt
│ ✓ CLAUDE.md generiert
│
├─ Bereit
│
│ Just Ship gibt dir 10 Agents, 37 Skills und
│ 18 Commands — alles was du brauchst um von
│ Ticket zu PR autonom zu arbeiten.
│
├─ Naechster Schritt
│
│ Das Board ist dein Projekt-Dashboard —
│ Tickets, Pipeline-Status und KPIs auf einen Blick.
│
│ Board verbinden → /connect-board
│ Erstes Ticket → /ticket
│ Loslegen → /develop
│
└─────────────────────────────────────────────
Falls weder Stack noch Framework erkannt:
┌─ {name}
│
│ ✓ project.json erstellt
│ ✓ CLAUDE.md generiert
│
│ Stack noch nicht erkannt — kein Problem.
│ Installiere deine Dependencies und
│ lauf /init nochmal — der Stack wird
│ automatisch erkannt.
│
├─ Bereit
│
│ Just Ship gibt dir 10 Agents, 37 Skills und
│ 18 Commands — alles was du brauchst um von
│ Ticket zu PR autonom zu arbeiten.
│
├─ Naechster Schritt
│
│ Das Board ist dein Projekt-Dashboard —
│ Tickets, Pipeline-Status und KPIs auf einen Blick.
│
│ Board verbinden → /connect-board
│ Erstes Ticket → /ticket
│ Loslegen → /develop
│
└─────────────────────────────────────────────
Regeln fuer die Zusammenfassung:
/connect-board verwenden./just-ship-vps verwenden.setup.sh oder das Plugin-System.npx claudepluginhub yves-s/just-ship --plugin just-shipInstalls Just Ship globally if needed, auto-detects project tech stack, populates project.json and CLAUDE.md, connects to Just Ship Board via flags.
Generates boilerplate for common project types (API, web app, CLI, library, monorepo) with best-practice defaults. Includes decision trees and stack selection matrices.
Scaffolds a complete project from a PRD and stack template, creating directory structure, configs, CLAUDE.md, git repo, and GitHub push. Studies existing projects via SoloGraph for consistent patterns.