adr-rubber-duck
ADR(Architecture Decision Record)の壁打ち相手としてヒアリングを通じて意思決定を整理し、ADRドラフトを作成する
プロジェクトの初期設定として技術スタックの選定をします。既にCLAUDE.mdがある場合は省略できます
> /plugin marketplace add classmethod/tsumiki > /plugin install tsumiki@tsumiki
How it fires
How this command gets triggered: by you, by Claude, or both.
/init-tech-stackContext preview
What this command does when you run it.
プロジェクトの初期設定として技術スタックの選定をします。既にCLAUDE.mdがある場合は省略できます
description: プロジェクトの初期設定として技術スタックの選定をします。既にCLAUDE.mdがある場合は省略できます
ユーザとのインタラクティブなやりとりを通じて、プロジェクトに最適な技術スタック定義を作成し、`docs/tech-stack.md` ファイルを生成します。
このコマンドは、**AskUserQuestionツール**を使用して段階的にヒアリングを行います。
まず、以下の3つの質問をAskUserQuestionツールで同時に提示してください:
AskUserQuestion({
questions: [
{
question: "プロジェクトのタイプを教えてください",
header: "プロジェクト",
multiSelect: false,
options: [
{ label: "Webアプリケーション", description: "ブラウザで動作するアプリケーション" },
{ label: "モバイルアプリ", description: "スマートフォン/タブレット向けアプリ" },
{ label: "API/バックエンド", description: "API提供がメインのサービス" },
{ label: "デスクトップアプリ", description: "PC向けネイティブアプリ" },
{ label: "ライブラリ/SDK", description: "他の開発者向けのツール" },
{ label: "フルスタック", description: "フロントエンドとバックエンドの両方" }
]
},
{
question: "開発チームの規模を教えてください",
header: "チーム規模",
multiSelect: false,
options: [
{ label: "個人開発", description: "1人で開発" },
{ label: "小規模チーム", description: "2-5人" },
{ label: "中規模チーム", description: "6-15人" },
{ label: "大規模チーム", description: "16人以上" }
]
},
{
question: "予定している開発期間はどの程度ですか?",
header: "開発期間",
multiSelect: false,
options: [
{ label: "プロトタイプ/MVP", description: "1-2ヶ月" },
{ label: "短期プロジェクト", description: "3-6ヶ月" },
{ label: "中期プロジェクト", description: "6ヶ月-1年" },
{ label: "長期プロジェクト", description: "1年以上" }
]
}
]
})次に、以下の3つの質問をAskUserQuestionツールで同時に提示してください:
AskUserQuestion({
questions: [
{
question: "既存のシステムやデータベースとの連携はありますか?",
header: "既存連携",
multiSelect: false,
options: [
{ label: "新規構築", description: "全て新しく作成" },
{ label: "既存DB連携", description: "既存データベースを使用" },
{ label: "既存API連携", description: "既存のAPIと連携" },
{ label: "レガシー移行", description: "既存システムからの移行" }
]
},
{
question: "想定される負荷や性能要件を教えてください",
header: "パフォーマンス",
multiSelect: false,
options: [
{ label: "軽負荷", description: "同時利用者数10人以下、レスポンス3秒以内" },
{ label: "中負荷", description: "同時利用者数100人程度、レスポンス1秒以内" },
{ label: "高負荷", description: "同時利用者数1000人以上、レスポンス0.5秒以内" },
{ label: "未定/不明", description: "まだ詳細は決まっていない" }
]
},
{
question: "セキュリティの重要度を教えてください",
header: "セキュリティ",
multiSelect: false,
options: [
{ label: "基本レベル", description: "一般的なWebセキュリティ対策" },
{ label: "高度", description: "個人情報取り扱い、金融系など" },
{ label: "エンタープライズ", description: "企業向け、コンプライアンス要件あり" },
{ label: "未定/不明", description: "まだ詳細は決まっていない" }
]
}
]
})次に、以下の2つの質問をAskUserQuestionツールで同時に提示してください:
AskUserQuestion({
questions: [
{
question: "チームメンバーの技術経験を教えてください(複数選択可)",
header: "技術スキル",
multiSelect: true,
options: [
{ label: "JavaScript/TypeScript", description: "経験豊富" },
{ label: "Python", description: "経験豊富" },
{ label: "Java/Kotlin", description: "経験豊富" },
{ label: "C#/.NET", description: "経験豊富" },
{ label: "Go/Rust", description: "経験豊富" },
{ label: "React/Vue/Angular", description: "経験豊富" },
{ label: "データベース設計", description: "経験豊富" },
{ label: "クラウド(AWS/Azure/GCP)", description: "経験豊富" },
{ label: "Docker/Kubernetes", description: "経験豊富" },
{ label: "技術スキル限定的", description: "学習しながら進めたい" }
]
},
{
question: "新しい技術の習得についてどう考えますか?",
header: "学習コスト",
multiSelect: false,
options: [
{ label: "積極的に新技術", description: "最新技術でチャレンジしたい" },
{ label: "バランス重視", description: "新技術と安定技術のバランス" },
{ label: "安定技術優先", description: "枯れた技術で確実に開発" },
{ label: "既存スキル活用", description: "チームの知識を最大限活用" }
]
}
]
})最後に、以下の2つの質問をAskUserQuestionツールで同時に提示してください:
AskUserQuestion({
questions: [
{
question: "アプリケーションをどこで動かす予定ですか?",
header: "ホスティング",
multiSelect: false,
options: [
{ label: "クラウド", description: "AWS/Azure/GCP" },
{ label: "PaaS", description: "Vercel/Netlify/Heroku" },
{ label: "VPS/専用サーバー", description: "自前サーバー" },
{ label: "オンプレミス", description: "社内サーバー" },
{ label: "未定", description: "まだ決まっていない" }
]
},
{
question: "開発・運用コストについて教えてください",
header: "予算制約",
multiSelect: false,
options: [
{ label: "コスト最小化", description: "無料・低コストツール優先" },
{ label: "バランス重視", description: "適度なコストは許容" },
{ label: "品質重視", description: "コストより品質・効率を優先" },
{ label: "予算潤沢", description: "最適なツールを選択可能" }
]
}
]
})全ての回答を収集した後、以下のロジックで技術を推奨してください:
IF プロジェクトタイプ == "Webアプリケーション" OR "フルスタック"
IF チーム経験に "React/Vue/Angular" あり
IF 学習コスト許容度 == "積極的に新技術"
推奨: React 19 + TypeScript 5.7+ + Vite 6 (最新技術)
ELSE
推奨: React 18.3 + TypeScript 5.7+ + Vite 6 (安定性重視)
ELSE IF "JavaScript/TypeScript" 経験あり
推奨: Vue 3.5+ + TypeScript 5.7+ + Vite 6 (学習コスト低)
ELSE
推奨: Next.js 15 + TypeScript 5.7+ (フルスタック簡単)IF "JavaScript/TypeScript" 経験豊富
IF 学習コスト許容度 == "積極的に新技術"
推奨: Node.js 22 LTS + Fastify 5 + TypeScript 5.7+ (高速)
ELSE
推奨: Node.js 22 LTS + Express 5 + TypeScript 5.7+ (安定)
ELSE IF "Python" 経験豊富
IF パフォーマンス要件 == "高負荷"
推奨: FastAPI 0.115+ (Python 3.12+) (高速API)
ELSE
推奨: Django 5.1+ (Python 3.12+) (フルフィーチャー)
ELSE IF "Java/Kotlin" 経験豊富
推奨: Spring Boot 3.4+ (Kotlin 2.1+, Java 21+)
ELSE IF "C#/.NET" 経験豊富
推奨: ASP.NET Core 9 (.NET 9)
ELSE IF "Go/Rust" 経験豊富
推奨: Go 1.23+ (Gin 1.10+ / Fiber 3) または Rust 1.83+ (Actix-web 4)
ELSE
推奨: Node.js 22 LTS + Express 5 (フロントエンドとの統一)IF パフォーマンス要件 == "高負荷" 推奨: PostgreSQL 17+
TsumikiはAI駆動開発のためのフレームワークです。要件定義から実装まで、AIを活用した効率的な開発プロセスを提供します。 基本的にClaude Codeをサポートしますが、それ以外のツールでも使用できます。Claude Code以外のツールでtsumikiを使用する を参照してください。
Repo: classmethod/tsumiki
ADR(Architecture Decision Record)の壁打ち相手としてヒアリングを通じて意思決定を整理し、ADRドラフトを作成する
テストエラーを解消するための自動デバッグプロセス。全テストケースの確認からエラー原因の調査、修正まで段階的に実行し、テストケースの成功率向上を目指します。
ビルドエラー(コンパイルエラー、型エラー、依存パッケージ未解決)を自動的に分析・修正します。auto-debugから委譲される他、ユーザが直接呼び出すことも可能です。
システムの各レイヤーにおける包括的なエッジケース・エラー状態を詳細に分析し、見落としがちな異常系シナリオを洗い出します