🎯

vsa-boundary-modeler

🎯Skill

from akiramei/blazor-enterprise-architecture-poc

VibeIndex|
What it does

Models and defines architectural boundaries and contexts for vertical slice architecture (VSA) in enterprise software design, helping to organize and separate domain-specific components and respons...

📦

Part of

akiramei/blazor-enterprise-architecture-poc(4 items)

vsa-boundary-modeler

Installation

Install ScriptRun install script
curl -LsSf https://astral.sh/uv/install.sh | sh
git cloneClone repository
git clone https://github.com/akiramei/blazor-enterprise-architecture-poc temp-catalog
1Installs
-
AddedFeb 4, 2026

Skill Details

SKILL.md

Overview

# Blazor Enterprise Architecture Catalog

アプリの仕様を自然言語で書いて、AIと一緒にソフトウェアを作るためのカタログ

---

🚀 5分で始める

必要なもの

以下を先にインストールしてください:

  1. Claude Code: https://claude.ai/download (AI コーディングツール)
  2. uv: 以下のコマンドでインストール

```bash

# macOS / Linux

curl -LsSf https://astral.sh/uv/install.sh | sh

# Windows (PowerShell)

powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

```

  1. .NET 10 SDK: https://dotnet.microsoft.com/download/dotnet/10.0

Step 1: spec-kit をインストール

```bash

uv tool install specify-cli --from git+https://github.com/github/spec-kit.git

```

> PATHが通らない場合: specify が見つからない場合は uvx 経由で実行できます:

> ```bash

> uvx specify-cli -- init . --ai claude

> ```

Step 2: spec-kit を初期化

```bash

mkdir MyApp

cd MyApp

specify init . --ai claude

```

> Windows ユーザーへ: specify init が止まる場合は、以下を試してください:

> ```powershell

> $env:PYTHONUTF8=1

> specify init . --ai claude

> ```

Step 3: カタログを追加

Linux / macOS (bash):

```bash

git clone https://github.com/akiramei/blazor-enterprise-architecture-poc temp-catalog

cp -r temp-catalog/catalog ./catalog

mkdir -p .claude/commands

mkdir -p .claude/skills

mkdir -p memory

cp catalog/speckit-extensions/commands/*.md .claude/commands/

cp -r catalog/skills/* .claude/skills/

cat catalog/speckit-extensions/constitution-additions.md >> memory/constitution.md

rm -rf temp-catalog

```

Windows (PowerShell):

```powershell

git clone https://github.com/akiramei/blazor-enterprise-architecture-poc temp-catalog

Copy-Item temp-catalog/catalog ./catalog -Recurse

New-Item -ItemType Directory -Force -Path .claude/commands

New-Item -ItemType Directory -Force -Path .claude/skills

New-Item -ItemType Directory -Force -Path memory

Copy-Item catalog/speckit-extensions/commands/*.md .claude/commands/

Copy-Item catalog/skills/* .claude/skills/ -Recurse

Get-Content catalog/speckit-extensions/constitution-additions.md | Add-Content memory/constitution.md

Remove-Item temp-catalog -Recurse -Force

```

Step 4: Claude Code を起動

```bash

claude

```

Step 5: アプリを作る

Claude Code で以下のように話しかけてください:

```

/speckit.specify 図書館の貸出管理アプリを作りたい。

会員がバーコードで本を借りて、返却期限を管理できる。

1人5冊まで借りられる。

```

> より詳細な要求仕様の例: [図書館貸出管理システム要求仕様](docs/samples/library-loan-system-requirements.md)

>

> 上記ファイルには、ドメインモデル、機能要件、ビジネスルールが詳細に記載されています。

> 本格的なシステムを作る場合は、このような詳細仕様を /speckit.specify に渡すことで、

> AI がより正確に意図を理解できます。

AI が仕様書を作成したら、続けて:

```

/speckit.plan

```

技術計画ができたら:

```

/speckit.tasks

```

タスクが分解されたら:

```

/speckit.implement

```

これで AI がコードを生成します。

Step 6: アプリを起動

```bash

dotnet run --project Application

```

ブラウザで表示された URL(例: https://localhost:5001)を開きます。

---

🤖 ヘッドレスモード(コンテナ環境専用)

対話なしで自動実行するには --dangerously-skip-permissions が必要です。

このフラグはコンテナ環境以外では危険なため、podman/Docker での実行を前提としています。

セキュリティ設計: ホストへのアクセスは認証情報ディレクトリのみ。

作業はコンテナ内で完結し、成果物は最後に明示的にコピーします。

Containerfile

```Dockerfile

FROM mcr.microsoft.com/dotnet/sdk:10.0

RUN apt-get update && apt-get install -y git curl ca-certificates sudo && rm -rf /var/lib/apt/lists/*

# 非rootユーザーを作成(--dangerously-skip-permissions はroot不可のため)

RUN useradd -m -s /bin/bash developer && \

echo "developer ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers

# claude CLI インストール(npm経由、グローバル)

RUN curl -fsSL https://deb.nodesource.com/setup_22.x | bash - && \

apt-get install -y nodejs && \

npm install -g @anthropic-ai/claude-code

# 以降は developer ユーザーで実行

USER developer

WORKDIR /home/developer

# uv インストール

RUN curl -LsSf https://astral.sh/uv/install.sh | sh

ENV PATH="/home/developer/.local/bin:$PATH"

# specify-cli インストール

RUN /home/developer/.local/bin/uv tool install specify-cli --from git+https://github.com/github/spec-kit.git

WORKDIR /workspace

```

ビルド

```bash

podman build -t spec-kit-env .

```

Step 1: コンテナを起動

認証情報ディレクトリをマウントし、作業ディレクトリはマウントしません。

Linux / macOS (bash):

```bash

# Max プラン(事前にホスト側で claude login を実行しておく)

podman run -it --name spec-kit-work \

-v "${HOME}/.claude":/home/developer/.claude \

spec-kit-env bash

# API キープラン

podman run -it --name spec-kit-work \

-e ANTHROPIC_API_KEY="${ANTHROPIC_API_KEY}" \

spec-kit-env bash

```

Windows (PowerShell):

```powershell

# Max プラン(事前にホスト側で claude login を実行しておく)

podman run -it --name spec-kit-work `

-v "$env:USERPROFILE/.claude:/home/developer/.claude" `

spec-kit-env bash

# API キープラン

podman run -it --name spec-kit-work `

-e ANTHROPIC_API_KEY="$env:ANTHROPIC_API_KEY" `

spec-kit-env bash

```

Step 2: コンテナ内で実行

```bash

# 初期化

specify init . --ai claude

# カタログを追加

git clone https://github.com/akiramei/blazor-enterprise-architecture-poc /tmp/temp-catalog

cp -r /tmp/temp-catalog/catalog ./catalog

cp -r /tmp/temp-catalog/docs ./docs

mkdir -p .claude/commands .claude/skills memory

cp /tmp/temp-catalog/catalog/speckit-extensions/commands/*.md .claude/commands/

cp -r /tmp/temp-catalog/catalog/skills/* .claude/skills/

cat /tmp/temp-catalog/catalog/speckit-extensions/constitution-additions.md >> memory/constitution.md

rm -rf /tmp/temp-catalog

# 自動実行(1セッションで全工程を実行)

# ※ 以下はサンプル仕様書を使用した例です。

# 実際には自分の要求仕様ファイルを指定してください。

claude --dangerously-skip-permissions -p "

/speckit.specify $(cat docs/samples/library-loan-system-requirements.md)

/speckit.specify が完了したら、同じセッションの中で次を順番に実行してください:

  1. /speckit.plan
  2. /speckit.tasks
  3. /speckit.implement

途中で質問せず、自動で最後まで実行してください。

実装はドメイン層だけで止めず、Application 層と UI 層(Blazor)まで完了させてください。

"

# 完了後、コンテナを終了

exit

```

Step 3: 成果物をホストにコピー

```bash

# 成果物をホストにコピー

podman cp spec-kit-work:/workspace/src ./src

# 必要に応じて他のファイルもコピー

podman cp spec-kit-work:/workspace/specs ./specs

podman cp spec-kit-work:/workspace/manifests ./manifests

# コンテナを削除

podman rm spec-kit-work

```

> セキュリティメリット:

> - ホストへの書き込みアクセスは認証情報ディレクトリのみ

> - 作業ディレクトリはコンテナ内で完結

> - 必要な成果物だけを明示的にコピー

>

> 注意: --continue で複数セッションに分割すると、AIの内部コンテキストが

> リセットされ、ドメイン層だけで実装が止まることがあります。

> 上記のように1回のコマンドで全工程を指示してください。

>

> エラー時のリカバリ: 途中でエラーになった場合は、生成されたファイルを削除して最初からやり直すのが確実です:

> ```bash

> rm -rf src/ specs/ manifests/ memory/project-*.md

> # 再度 claude コマンドを実行

> ```

---

📖 開発の流れ

```

あなたの頭の中のアイデア

/speckit.specify 「〇〇を作りたい」と自然言語で伝える

/speckit.plan AI が技術計画を立てる(カタログのパターンを選択)

/speckit.tasks タスクを分解する

/speckit.implement コードを生成する

動くソフトウェア

```

困ったときは

| 状況 | 対処 |

|------|------|

| 仕様が曖昧と言われた | /speckit.clarify で AI に質問してもらう |

| 計画を確認したい | /speckit.analyze で整合性をチェック |

| テスト項目を作りたい | /speckit.checklist でチェックリスト生成 |

---

🔄 再現性のある実装(workpacks)

仕様が確定した後、再現性のある方法で実装したい場合は workpacks を使います。

workpacks とは?

```

通常の対話 workpacks

↓ ↓

「〇〇を作って」 workpack(5ファイル)

↓ ↓

対話しながら claude -p でステートレス実行

↓ ↓

コード生成 unified diff を出力

```

| 比較項目 | 通常の対話 | workpacks |

|---------|-----------|-----------|

| 再現性 | 低い(会話に依存) | 高い(同一入力→同一出力) |

| レビュー | 会話ログを追う | diff をレビュー |

| CI統合 | 難しい | 容易(exit code で判定) |

| 用途 | 探索的・仕様策定 | 確定仕様の量産 |

いつ使う?

```

仕様が確定している?

→ Yes → workpacks が効果的

→ No → 通常の対話(speckit.specify → plan → implement)

```

Step by Step で試す

以下は、カタログ追加済み(Step 3 完了)の状態から始めます。

> すぐ試したい場合: サンプルが用意されています。手動でYAML作成は不要です。

#### Step 1: サンプルを確認

workpacks にはすぐ動くサンプルが用意されています:

  • specs/_samples/ - サンプル仕様(spec, guardrails, manifest)
  • workpacks/_samples/ - 生成済みワークパック

まずサンプルで動作確認し、その後独自のspecを作成してください。

#### Step 2: workpack を準備

パターンA: 生成済みサンプルを使う(推奨)

```bash

cp -r workpacks/_samples/T001-create-todo workpacks/active/

```

パターンB: spec から生成する

```

/workpack.generate -TaskId "T002-create-todo" -SpecPath "specs/_samples/CreateTodo"

```

生成される workpack:

```

workpacks/active/T001-create-todo/

├── task.md # タスク定義

├── spec.extract.md # 仕様抽出

├── policy.yaml # 実装ポリシー

├── guardrails.yaml # 禁止事項

└── repo.snapshot.md # 既存コード参照

```

#### Step 3: ステートレス実行(Dry Run で確認)

まず Dry Run で確認:

```

/workpack.run -TaskId "T001-create-todo" -DryRun

```

プロンプトの組み立て結果を確認できます。

#### Step 4: 実行

```

/workpack.run -TaskId