sdd-init について
sdd-initは、プロジェクトにSpec-Driven Development(SDD)を導入する開発者向けのスキルです。技術スタックや規約、アーキテクチャを検出し、Constitution文書とナレッジグラフを初期化します。
主な機能
- 01言語、フレームワーク、ツールの検出
- 02プロジェクト規約と構成の把握
- 03Constitution文書の初期化
- 04ナレッジグラフの作成・更新
- 05既存データの保持とJSON検証
活用シーン
- 01既存プロジェクトのSDDコンテキスト整備
- 02プロジェクトの技術スタックと構成の調査
- 03仕様文書とナレッジグラフの初期化
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ giuseppe-trisciuoglio/ developer-kit --skill sdd-initインストール後、Claude Code で/sdd-initを入力して読み込まれたか確認します。
詳細
SDD 初期化スキル
現在のプロジェクトで仕様駆動開発(SDD)を初期化します。技術スタック、規約、アーキテクチャパターンを検出し、すべての永続化バックエンド(Constitution + Knowledge Graph)をブートストラップします。
使用するタイミング
トリガーフレーズ:
- 「sdd-init」、「sdd を初期化」、「sdd をセットアップ」
- 「sdd を初期化する」、「プロジェクトをセットアップする」、「プロジェクトコンテキストを初期化する」
- 「sdd をブートストラップする」、「sdd を開始する」
- 「プロジェクトのスタックを検出する」、「技術スタックを検出する」
ワークフロー
1. Detect Project Context
├── Scan tech stack (languages, frameworks, tools)
├── Identify conventions (folder structure, patterns, configs)
└── Detect architecture (monolith, microservices, serverless)
2. Bootstrap Constitution
├── Check if docs/specs/architecture.md exists
├── If missing → ask user to create with constitution skill
└── If exists → show current state
3. Bootstrap Knowledge Graph
├── Check if docs/specs/knowledge-graph.json exists
├── Create with initial discoveries (stack, patterns, conventions)
└── Link to Constitution
4. Return Structured Result
└── status, executive_summary, artifacts, next_recommended
フェーズ 1:プロジェクトコンテキストを検出する
1.1 技術スタックをスキャンする
主要な言語とフレームワークを検出します。
# Detect language (priority order)
ls *.go *.rs *.ts *.js *.py *.java *.cs *.rb *.php *.cpp *.c 2>/dev/null | head -1
# Detect framework/type
ls package.json pyproject.toml Cargo.toml go.mod pom.xml *.csproj Gemfile composer.json 2>/dev/null
# Detect project type
ls -la src/ lib/ app/ cmd/ internal/ pkg/ services/ 2>/dev/null
1.2 規約を特定する
既存のパターンをスキャンします。
# Folder structure
find . -maxdepth 2 -type d -name "src" -o -name "lib" -o -name "app" -o -name "cmd" | head -10
# Config files
ls -la *.yaml *.yml *.toml *.json *.env* Makefile 2>/dev/null
# Testing patterns
find . -name "*_test.*" -o -name "test_*.py" -o -name "*_test.go" -o -name "*.spec.ts" 2>/dev/null | head -10
# Build system
ls Makefile Dockerfile docker-compose*.yml *.mk 2>/dev/null
# CI/CD
ls .github/workflows/ .gitlab-ci.yml .circleci/ 2>/dev/null
1.3 アーキテクチャスタイルを検出する
プロジェクト構造を分析して、アーキテクチャパターンを特定します。
# Microservices vs Monolith
ls services/ microservices/ cmd/ api/ internal/ 2>/dev/null
# Serverless
ls functions/ lambda/ handlers/ 2>/dev/null
# Layered architecture
ls controllers/ services/ repositories/ models/ 2>/dev/null
# Hexagonal/Ports & Adapters
ls ports/ adapters/ domain/ infrastructure/ 2>/dev/null
フェーズ 2:Constitution をブートストラップする
2.1 存在を確認する
# Check if Constitution files exist
[ -f docs/specs/architecture.md ] && echo "architecture:exists" || echo "architecture:missing"
[ -f docs/specs/ontology.md ] && echo "ontology:exists" || echo "ontology:missing"
2.2 存在しない場合 → ユーザーに確認する
AskUserQuestion を使用して、次の選択肢を提示します。
Constitution ファイル(architecture.md、ontology.md)がまだ存在しません。
オプション 1: 両方を作成する(推奨)— アーキテクチャの DNA とドメイン言語を設定します オプション 2: architecture.md のみ作成する オプション 3: ontology.md のみ作成する
オプション 4: 今はスキップする — コンテキストは検出しますが、Constitution はスキップします
ユーザーがオプション 1~3 を選択した場合は、検出したコンテキストを渡して /developer-kit-specs:constitution create に委任します。
2.3 存在する場合 → 現在の状態を表示する
現在の Constitution ファイルを読み取り、比較対象として検出したコンテキストとともに表示します。
フェーズ 3:Knowledge Graph をブートストラップする
3.1 存在を確認する
# Check if KG exists
ls docs/specs/knowledge-graph.json 2>/dev/null
3.2 KG を作成/更新する
初期調査結果を含めて docs/specs/knowledge-graph.json を作成または更新します。
{
"metadata": {
"spec_id": "project-init",
"version": "1.0.0",
"created": "{{ISO_DATE}}",
"project": "{{PROJECT_NAME}}",
"type": "initial-discovery"
},
"context": {
"workingDirectory": "{{PWD}}",
"projectName": "{{PROJECT_NAME}}"
},
"stack": {
"primaryLanguage": "{{DETECTED_LANGUAGE}}",
"framework": "{{DETECTED_FRAMEWORK}}",
"buildSystem": "{{DETECTED_BUILD_SYSTEM}}"
},
"conventions": {
"folderStructure": ["{{FOLDERS}}"],
"namingPatterns": ["{{PATTERNS}}"],
"configFiles": ["{{CONFIGS}}"],
"testingPattern": "{{TESTING_PATTERN}}"
},
"architecture": {
"style": "{{MONOLITH|MICROSERVICE|SERVERLESS|LAYERED|HEXAGONAL}}",
"layers": ["{{LAYERS}}"],
"patterns": ["{{ARCHITECTURAL_PATTERNS}}"]
},
"references": {
"constitution": "docs/specs/architecture.md",
"ontology": "docs/specs/ontology.md"
},
"source": "sdd-init"
}
3.3 検証
KG の作成後、ファイルが存在し、有効な JSON であることを検証します。
# Validate KG
cat docs/specs/knowledge-graph.json | python3 -m json.tool > /dev/null && echo "KG:valid" || echo "KG:invalid"
フェーズ 4:構造化された結果を返す
次の内容を含む JSON オブジェクトを返します。
{
"status": "success|partial|skipped",
"executive_summary": "Brief description of what was detected and initialized",
"artifacts": [
{
"path": "docs/specs/architecture.md",
"action": "created|existing|skipped",
"summary": "What this file contains"
},
{
"path": "docs/specs/ontology.md",
"action": "created|existing|skipped",
"summary": "What this file contains"
},
{
"path": "docs/specs/knowledge-graph.json",
"action": "created|updated",
"summary": "What was discovered and stored"
}
],
"next_recommended": [
"Review Constitution if just created",
"Run brainstorm to start first spec",
"Check knowledge-graph.json for detected patterns"
]
}
出力形式
構造化された形式で結果を表示します。
══════════════════════════════════════════════════
SDD Init — {{PROJECT_NAME}}
══════════════════════════════════════════════════
STATUS: {{status}}
TECH STACK DETECTED:
Language: {{language}}
Framework: {{framework}}
Build: {{build_system}}
ARCHITECTURE:
Style: {{architecture_style}}
Patterns: {{patterns}}
ARTIFACTS:
✓ Constitution (architecture.md) — {{status}}
✓ Constitution (ontology.md) — {{status}}
✓ Knowledge Graph — {{status}}
NEXT STEPS:
{{next_recommended}}
══════════════════════════════════════════════════
他のスキルとの連携
| スキル | 連携ポイント |
|---|---|
constitution | 存在しない場合、sdd-init が作成/更新します |
knowledge-graph | sdd-init が初期調査結果を登録します |
brainstorm | 開始前に Constitution を読み取る必要があります |
spec-to-tasks | KG と Constitution に照らして検証する必要があります |
task-implementation | 既存のパターンを KG で確認する必要があります |
制約と警告
- 読み取り専用の検出 — ソースコードは変更しません
- 非破壊的 — 新しいファイルのみを作成し、既存の内容は上書きしません
- 権限の確認 — docs/specs/ を作成できない場合は警告します
- KG のバックアップ — 既存の KG を更新する場合は、既存のデータを保持します
エラー処理
| エラー | 対処 |
|---|---|
| docs/specs/ を作成できない | ユーザーにディレクトリを手動で作成するよう依頼します |
| KG の JSON が無効 | エラーを表示し、未加工のファイルを保持して、検証を提案します |
| Constitution への委任に失敗 | テンプレートを使ったインライン作成に切り替えます |