Superpowers ワークフローの統合
このレッスンでできること
- Superpowers ワークフローの価値と適用シーンを理解する
- Superpowers モードを正しくインストール・設定する
- ツールマッピングとスキルの名前空間システムを理解する
- コンテキスト圧縮時の Superpowers 自動注入メカニズムを習得する
現在の課題
あなたは以下の問題に直面しているかもしれません:
- ワークフローが標準化されていない:チームメンバーの開発習慣が統一されておらず、コード品質にばらつきがある
- 厳格なプロセスが欠けている:スキルライブラリはあるが、AI アシスタントに明確なプロセス指導がない
- ツール呼び出しが混乱している:Superpowers で定義されたツールと OpenCode のネイティブツール名が異なり、呼び出しに失敗する
- 移行コストが高い:既に Superpowers を使用しており、OpenCode に切り替えた後の再設定を懸念している
これらの問題は開発効率とコード品質に影響します。
コアコンセプト
Superpowers とは?
Superpowers は完全なソフトウェア開発ワークフローフレームワークであり、合成可能なスキルを通じて厳格なワークフロー指導を提供します。標準的な開発ステップ、ツール呼び出し方式、名前空間システムを定義しています。
OpenCode Agent Skills は Superpowers のシームレスな統合を提供します。環境変数を有効にすると、自動的に完全なワークフロー指導が注入されます。これには以下が含まれます:
- using-superpowers スキルコンテンツ:Superpowers のコアワークフロー指示
- ツールマッピング:Superpowers で定義されたツール名を OpenCode ネイティブツールにマッピング
- スキル名前空間:スキルの優先順位と参照方法を明確化
🎒 開始前の準備
開始する前に、以下を確認してください:
前提条件チェック
- ✅ opencode-agent-skills プラグイン がインストール済み
- ✅ 基本的なスキル発見メカニズムに慣れている
実践してみましょう
ステップ 1:Superpowers のインストール
理由 Superpowers プロジェクトを先にインストールする必要があります。これにより、本プラグインが using-superpowers スキルを発見できるようになります。
操作方法
ニーズに応じて、以下のいずれかの方法で Superpowers をインストールします:
// Superpowers 公式ドキュメントに従ってインストール
// https://github.com/obra/superpowers
// スキルは自動的に ~/.claude/plugins/... に配置されます// 手動で OpenCode スキルとしてインストール
mkdir -p ~/.config/opencode/skills
git clone https://github.com/obra/superpowers ~/.config/opencode/skills/superpowers
// スキルは .opencode/skills/superpowers/ (プロジェクトレベル) または ~/.config/opencode/skills/superpowers/ (ユーザーレベル) に配置されます期待される結果:
- インストール後、Superpowers のスキルディレクトリに
using-superpowers/SKILL.mdファイルが含まれている
ステップ 2:Superpowers モードの有効化
理由 環境変数を通じてプラグインに Superpowers モードの有効化を伝えると、プラグインはセッション初期化時に自動的に関連コンテンツを注入します。
操作方法
一時的に有効化(現在のターミナルセッションのみ):
export OPENCODE_AGENT_SKILLS_SUPERPOWERS_MODE=true
opencode永続的に有効化(シェル設定ファイルに追加):
echo 'export OPENCODE_AGENT_SKILLS_SUPERPOWERS_MODE=true' >> ~/.bashrc
source ~/.bashrcecho 'export OPENCODE_AGENT_SKILLS_SUPERPOWERS_MODE=true' >> ~/.zshrc
source ~/.zshrc[System.Environment]::SetEnvironmentVariable('OPENCODE_AGENT_SKILLS_SUPERPOWERS_MODE', 'true', 'User')期待される結果:
echo $OPENCODE_AGENT_SKILLS_SUPERPOWERS_MODEを入力するとtrueが表示される
ステップ 3:自動注入の検証
理由 プラグインが Superpowers スキルを正しく認識し、新しいセッション開始時に自動的にコンテンツを注入することを確認します。
操作方法
- OpenCode を再起動
- 新しいセッションを作成
- 新しいセッションで任意のメッセージを入力(例:「こんにちは」)
- セッションコンテキストを確認(OpenCode がサポートしている場合)
期待される結果:
- プラグインがバックグラウンドで以下のコンテンツを自動的に注入(XML フォーマット):
<EXTREMELY_IMPORTANT>
You have superpowers.
**IMPORTANT: The using-superpowers skill content is included below. It is ALREADY LOADED - do not call use_skill for it again. Use use_skill only for OTHER skills.**
[using-superpowers スキルの実際のコンテンツ...]
**Tool Mapping for OpenCode:**
- `TodoWrite` → `todowrite`
- `Task` tool with subagents → Use `task` tool with `subagent_type`
- `Skill` tool → `use_skill`
- `Read`, `Write`, `Edit`, `Bash`, `Glob`, `Grep`, `WebFetch` → Use native lowercase OpenCode tools
**Skill namespace priority:**
1. Project: `project:skill-name`
2. Claude project: `claude-project:skill-name`
3. User: `skill-name`
4. Claude user: `claude-user:skill-name`
5. Marketplace: `claude-plugins:skill-name`
The first discovered match wins.
</EXTREMELY_IMPORTANT>チェックポイント ✅
上記の手順を完了したら、以下を検証します:
| チェック項目 | 期待される結果 |
|---|---|
| 環境変数が正しく設定されている | echo $OPENCODE_AGENT_SKILLS_SUPERPOWERS_MODE が true を出力 |
| Superpowers スキルが発見可能 | get_available_skills() を呼び出すと using-superpowers が見える |
| 新しいセッションで自動注入 | 新しいセッションを作成後、AI が自分が superpowers を持っていることを認識 |
よくある落とし穴
❌ エラー 1:スキルが発見されない
現象:環境変数を有効にしたが、プラグインが Superpowers コンテンツを注入しない。
原因:Superpowers のインストール場所がスキル発見パスに含まれていない。
解決策:
- Superpowers が以下のいずれかの場所にインストールされていることを確認:
.claude/plugins/...(Claude Code プラグインキャッシュ).opencode/skills/...(OpenCode スキルディレクトリ)~/.config/opencode/skills/...(OpenCode ユーザースキル)~/.claude/skills/...(Claude ユーザースキル)
get_available_skills()を実行してusing-superpowersがリストにあるか確認
❌ エラー 2:ツール呼び出しの失敗
現象:AI が TodoWrite または Skill ツールを呼び出そうとし、ツールが存在しないというエラーが表示される。
原因:AI がツールマッピングを適用しておらず、まだ Superpowers で定義された名前を使用している。
解決策:
- プラグインはツールマッピングを自動的に注入します。
<EXTREMELY_IMPORTANT>タグが正しく注入されていることを確認 - 問題が続く場合、環境変数を有効にした後に作成されたセッションか確認
❌ エラー 3:圧縮後の Superpowers 消失
現象:長時間のセッション後、AI が Superpowers ワークフローに従わなくなる。
原因:コンテキスト圧縮により、以前注入されたコンテンツがクリアされた。
解決策:
- プラグインは
session.compactedイベント後に自動的に Superpowers コンテンツを再注入 - 問題が続く場合、プラグインがイベントを正常に監視しているか確認
ツールマッピングの詳細
プラグインは以下のツールマッピングを自動的に注入し、AI が OpenCode ツールを正しく呼び出せるようにします:
| Superpowers ツール | OpenCode ツール | 説明 |
|---|---|---|
TodoWrite | todowrite | Todo 書き込みツール |
Task (subagents 付き) | task + subagent_type | サブエージェント呼び出し |
Skill | use_skill | スキルの読み込み |
Read / Write / Edit | ネイティブ小文字ツール | ファイル操作 |
Bash / Glob / Grep / WebFetch | ネイティブ小文字ツール | システム操作 |
なぜツールマッピングが必要?
Superpowers のネイティブデザインは Claude Code に基づいており、ツール名は OpenCode と一致しません。自動マッピングにより、AI は手動での変換なしに OpenCode のネイティブツールをシームレスに使用できます。
スキル名前空間の優先順位
複数のソースに同名のスキルが存在する場合、プラグインは以下の優先順位で選択します:
1. project:skill-name (プロジェクトレベル OpenCode スキル)
2. claude-project:skill-name (プロジェクトレベル Claude スキル)
3. skill-name (ユーザーレベル OpenCode スキル)
4. claude-user:skill-name (ユーザーレベル Claude スキル)
5. claude-plugins:skill-name (プラグインマーケットスキル)名前空間参照
名前空間を明示的に指定できます:use_skill("project:my-skill")
またはプラグインに自動一致させます:use_skill("my-skill")
最初に見つかった一致が有効になり、後続の同名スキルは無視されます。これにより、プロジェクトレベルのスキルがユーザーレベルのスキルを上書きできます。
圧縮回復メカニズム
長時間のセッションでは、OpenCode はトークンを節約するためにコンテキスト圧縮を実行します。プラグインは以下のメカニズムで Superpowers の継続的な可用性を確保します:
- イベント監視:プラグインが
session.compactedイベントを監視 - 再注入:圧縮完了後、Superpowers コンテンツを自動的に再注入
- シームレスな切り替え:AI のワークフロー指導が常に存在し、圧縮による中断を回避
まとめ
Superpowers 統合は厳格なワークフロー指導を提供します。重要ポイント:
- Superpowers のインストール:Claude Code プラグインまたは OpenCode スキルのいずれかの方法を選択
- 環境変数の有効化:
OPENCODE_AGENT_SKILLS_SUPERPOWERS_MODE=trueを設定 - 自動注入:プラグインがセッション初期化と圧縮後に自動的にコンテンツを注入
- ツールマッピング:Superpowers ツール名を OpenCode ネイティブツールに自動マッピング
- 名前空間の優先順位:プロジェクトレベルのスキルがユーザーレベルのスキルより優先
次のレッスンの予告
次のレッスンでは 名前空間とスキルの優先順位 を学びます。
学べること:
- スキルの名前空間システムと発見優先順位ルールの理解
- 名前空間を使用してスキルのソースを明示的に指定する方法
- 同名スキルの上書きと競合処理メカニズムの理解
付録:ソースコード参照
クリックしてソースコードの場所を表示
更新日時:2026-01-24
| 機能 | ファイルパス | 行番号 |
|---|---|---|
| Superpowers 統合モジュール | src/superpowers.ts | 1-59 |
| ツールマッピング定義 | src/superpowers.ts | 12-16 |
| スキル名前空間定義 | src/superpowers.ts | 18-25 |
| Superpowers コンテンツ注入関数 | src/superpowers.ts | 31-58 |
| 環境変数チェック | src/superpowers.ts | 37 |
| セッション初期化注入呼び出し | src/plugin.ts | 101 |
| 圧縮後の再注入 | src/plugin.ts | 148 |
重要な定数:
OPENCODE_AGENT_SKILLS_SUPERPOWERS_MODE:環境変数。'true'に設定すると Superpowers モードが有効化
重要な関数:
maybeInjectSuperpowersBootstrap():環境変数とスキルの存在をチェックし、Superpowers コンテンツを注入discoverAllSkills():利用可能なすべてのスキルを発見(using-superpowersの検索に使用)injectSyntheticContent():コンテンツを synthetic メッセージとしてセッションに注入