Skip to content

Superpowers ワークフローの統合

このレッスンでできること

  • Superpowers ワークフローの価値と適用シーンを理解する
  • Superpowers モードを正しくインストール・設定する
  • ツールマッピングとスキルの名前空間システムを理解する
  • コンテキスト圧縮時の Superpowers 自動注入メカニズムを習得する

現在の課題

あなたは以下の問題に直面しているかもしれません:

  • ワークフローが標準化されていない:チームメンバーの開発習慣が統一されておらず、コード品質にばらつきがある
  • 厳格なプロセスが欠けている:スキルライブラリはあるが、AI アシスタントに明確なプロセス指導がない
  • ツール呼び出しが混乱している:Superpowers で定義されたツールと OpenCode のネイティブツール名が異なり、呼び出しに失敗する
  • 移行コストが高い:既に Superpowers を使用しており、OpenCode に切り替えた後の再設定を懸念している

これらの問題は開発効率とコード品質に影響します。

コアコンセプト

Superpowers とは?

Superpowers は完全なソフトウェア開発ワークフローフレームワークであり、合成可能なスキルを通じて厳格なワークフロー指導を提供します。標準的な開発ステップ、ツール呼び出し方式、名前空間システムを定義しています。

OpenCode Agent Skills は Superpowers のシームレスな統合を提供します。環境変数を有効にすると、自動的に完全なワークフロー指導が注入されます。これには以下が含まれます:

  1. using-superpowers スキルコンテンツ:Superpowers のコアワークフロー指示
  2. ツールマッピング:Superpowers で定義されたツール名を OpenCode ネイティブツールにマッピング
  3. スキル名前空間:スキルの優先順位と参照方法を明確化

🎒 開始前の準備

開始する前に、以下を確認してください:

前提条件チェック

実践してみましょう

ステップ 1:Superpowers のインストール

理由 Superpowers プロジェクトを先にインストールする必要があります。これにより、本プラグインが using-superpowers スキルを発見できるようになります。

操作方法

ニーズに応じて、以下のいずれかの方法で Superpowers をインストールします:

bash
// Superpowers 公式ドキュメントに従ってインストール
// https://github.com/obra/superpowers
// スキルは自動的に ~/.claude/plugins/... に配置されます
bash
// 手動で 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 モードの有効化を伝えると、プラグインはセッション初期化時に自動的に関連コンテンツを注入します。

操作方法

一時的に有効化(現在のターミナルセッションのみ):

bash
export OPENCODE_AGENT_SKILLS_SUPERPOWERS_MODE=true
opencode

永続的に有効化(シェル設定ファイルに追加):

bash
echo 'export OPENCODE_AGENT_SKILLS_SUPERPOWERS_MODE=true' >> ~/.bashrc
source ~/.bashrc
zsh
echo 'export OPENCODE_AGENT_SKILLS_SUPERPOWERS_MODE=true' >> ~/.zshrc
source ~/.zshrc
powershell
[System.Environment]::SetEnvironmentVariable('OPENCODE_AGENT_SKILLS_SUPERPOWERS_MODE', 'true', 'User')

期待される結果

  • echo $OPENCODE_AGENT_SKILLS_SUPERPOWERS_MODE を入力すると true が表示される

ステップ 3:自動注入の検証

理由 プラグインが Superpowers スキルを正しく認識し、新しいセッション開始時に自動的にコンテンツを注入することを確認します。

操作方法

  1. OpenCode を再起動
  2. 新しいセッションを作成
  3. 新しいセッションで任意のメッセージを入力(例:「こんにちは」)
  4. セッションコンテキストを確認(OpenCode がサポートしている場合)

期待される結果

  • プラグインがバックグラウンドで以下のコンテンツを自動的に注入(XML フォーマット):
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_MODEtrue を出力
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 ツール説明
TodoWritetodowriteTodo 書き込みツール
Task (subagents 付き)task + subagent_typeサブエージェント呼び出し
Skilluse_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 の継続的な可用性を確保します:

  1. イベント監視:プラグインが session.compacted イベントを監視
  2. 再注入:圧縮完了後、Superpowers コンテンツを自動的に再注入
  3. シームレスな切り替え:AI のワークフロー指導が常に存在し、圧縮による中断を回避

まとめ

Superpowers 統合は厳格なワークフロー指導を提供します。重要ポイント:

  • Superpowers のインストール:Claude Code プラグインまたは OpenCode スキルのいずれかの方法を選択
  • 環境変数の有効化OPENCODE_AGENT_SKILLS_SUPERPOWERS_MODE=true を設定
  • 自動注入:プラグインがセッション初期化と圧縮後に自動的にコンテンツを注入
  • ツールマッピング:Superpowers ツール名を OpenCode ネイティブツールに自動マッピング
  • 名前空間の優先順位:プロジェクトレベルのスキルがユーザーレベルのスキルより優先

次のレッスンの予告

次のレッスンでは 名前空間とスキルの優先順位 を学びます。

学べること:

  • スキルの名前空間システムと発見優先順位ルールの理解
  • 名前空間を使用してスキルのソースを明示的に指定する方法
  • 同名スキルの上書きと競合処理メカニズムの理解

付録:ソースコード参照

クリックしてソースコードの場所を表示

更新日時:2026-01-24

機能ファイルパス行番号
Superpowers 統合モジュールsrc/superpowers.ts1-59
ツールマッピング定義src/superpowers.ts12-16
スキル名前空間定義src/superpowers.ts18-25
Superpowers コンテンツ注入関数src/superpowers.ts31-58
環境変数チェックsrc/superpowers.ts37
セッション初期化注入呼び出しsrc/plugin.ts101
圧縮後の再注入src/plugin.ts148

重要な定数

  • OPENCODE_AGENT_SKILLS_SUPERPOWERS_MODE:環境変数。'true' に設定すると Superpowers モードが有効化

重要な関数

  • maybeInjectSuperpowersBootstrap():環境変数とスキルの存在をチェックし、Superpowers コンテンツを注入
  • discoverAllSkills():利用可能なすべてのスキルを発見(using-superpowers の検索に使用)
  • injectSyntheticContent():コンテンツを synthetic メッセージとしてセッションに注入