jpskill.com
💼 ビジネス コミュニティ

openspec-daem0n-bridge

OpenSpecの仕様駆動開発とDaem0n-MCPのメモリを連携させ、仕様の自動インポート、過去の成果に基づく提案、変更履歴の学習への変換を支援することで、開発効率と品質向上に貢献するSkill。

📜 元の英語説明(参考)

Bridges OpenSpec (spec-driven development) with Daem0n-MCP memory - auto-imports specs, informs proposals with past outcomes, converts archived changes to learnings

🇯🇵 日本人クリエイター向け解説

一言でいうと

OpenSpecの仕様駆動開発とDaem0n-MCPのメモリを連携させ、仕様の自動インポート、過去の成果に基づく提案、変更履歴の学習への変換を支援することで、開発効率と品質向上に貢献するSkill。

※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。

⚡ おすすめ: コマンド1行でインストール(60秒)

下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。

🍎 Mac / 🐧 Linux
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o openspec-daem0n-bridge.zip https://jpskill.com/download/18304.zip && unzip -o openspec-daem0n-bridge.zip && rm openspec-daem0n-bridge.zip
🪟 Windows (PowerShell)
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/18304.zip -OutFile "$d\openspec-daem0n-bridge.zip"; Expand-Archive "$d\openspec-daem0n-bridge.zip" -DestinationPath $d -Force; ri "$d\openspec-daem0n-bridge.zip"

完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。

💾 手動でダウンロードしたい(コマンドが難しい人向け)
  1. 1. 下の青いボタンを押して openspec-daem0n-bridge.zip をダウンロード
  2. 2. ZIPファイルをダブルクリックで解凍 → openspec-daem0n-bridge フォルダができる
  3. 3. そのフォルダを C:\Users\あなたの名前\.claude\skills\(Win)または ~/.claude/skills/(Mac)へ移動
  4. 4. Claude Code を再起動

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。

詳しい使い方ガイドを見る →
最終更新
2026-05-18
取得日時
2026-05-18
同梱ファイル
1

📖 Skill本文(日本語訳)

※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。

OpenSpec-Daem0n Bridge

概要

このスキルは、以下の間の双方向ブリッジを作成します。

  • OpenSpec: 正式な変更提案による仕様駆動開発
  • Daem0n-MCP: セマンティック検索と成果追跡を備えたAIメモリシステム

フィードバックループ:

OpenSpec specs ──────► Daem0n patterns/rules
       ▲                        │
       │                        ▼
  Future specs ◄────── Past outcomes/failures

自動検出

セッション開始時、get_briefing() の後:

プロジェクトルートに openspec/ ディレクトリが存在するかどうかを確認します。

ls openspec/specs/ 2>/dev/null

OpenSpec が検出され、かつ仕様がまだインポートされていない場合:

  1. アナウンス: "OpenSpec を検出しました。仕様を Daem0n メモリに同期しています..."
  2. ワークフロー 1 (インポート) を自動的に実行します。
  3. インポートされた仕様とルールの概要を報告します。

既にインポートされているかどうかの確認方法:

recall(topic="openspec", tags=["spec"], limit=1)

結果が最近のタイムスタンプで存在する場合は、インポートをスキップします。

ワークフロー 1: 仕様をメモリにインポート

トリガー:

  • 自動: 最初のセッションで OpenSpec ディレクトリが検出された場合
  • 手動: "sync specs to memory"、"import openspec"、"refresh openspec"

手順

  1. すべての仕様ディレクトリをリストします

    ls openspec/specs/
  2. 各仕様について、spec.md ファイルを読み取ります

    cat openspec/specs/[name]/spec.md
  3. 次のパターンを使用して要件を解析します:

    パターン 抽出先
    MUSTSHALLREQUIRED rule.must_do
    MUST NOTSHALL NOTPROHIBITED rule.must_not
    SHOULDRECOMMENDED pattern
    SHOULD NOTNOT RECOMMENDED warning
    ## Purpose セクション pattern (概要)
  4. remember_batch を介してメモリを作成します

    mcp__daem0nmcp__remember_batch(memories=[
        {
            "category": "pattern",
            "content": "[spec-name]: [overview/purpose summary]",
            "rationale": "OpenSpec specification - source of truth",
            "tags": ["openspec", "spec", "[spec-name]"],
            "file_path": "openspec/specs/[spec-name]/spec.md",
            "context": {
                "openspec_type": "spec",
                "imported_at": "[ISO timestamp]"
            }
        }
        // ... 仕様ごとに1つ
    ])
  5. MUST/MUST NOT からルールを作成します

    mcp__daem0nmcp__add_rule(
        trigger="implementing [spec-name] feature",
        must_do=["[extracted MUST items]"],
        must_not=["[extracted MUST NOT items]"],
        ask_first=["Does this align with the spec?"]
    )
  6. 概要を報告します

    Imported [N] specs as patterns
    Created [M] rules with [X] must_do and [Y] must_not constraints
    Use recall("openspec") to query

メモリマッピングリファレンス

OpenSpec 要素 Daem0n カテゴリ タグ
spec.md 概要 pattern openspec, spec, [name]
MUST 要件 rule.must_do (ルール内、メモリ内ではない)
MUST NOT 制約 rule.must_not (ルール内、メモリ内ではない)
既知の制限事項 warning openspec, limitation, [name]
設計の根拠 learning openspec, rationale, [name]

ワークフロー 2: 提案作成を通知

トリガー:

  • "prepare proposal for [feature]"
  • "check before proposing [feature]"
  • "what do I need to know before proposing [feature]"

手順

  1. 関連するメモリをリコールします

    mcp__daem0nmcp__recall(
        topic="[feature description]",
        categories=["pattern", "warning", "decision"]
    )
  2. 適用可能なルールを確認します

    mcp__daem0nmcp__check_rules(
        action="proposing change for [feature]"
    )
  3. OpenSpec 固有のコンテキストをリコールします

    mcp__daem0nmcp__recall(
        topic="openspec [feature]",
        tags=["openspec"]
    )
  4. 特定のファイルが影響を受ける場合は、それらを確認します

    mcp__daem0nmcp__recall_for_file(
        file_path="openspec/specs/[affected-spec]/spec.md"
    )
  5. 次の形式でユーザーに調査結果を提示します:

    # Memory Context for Proposal: [feature]
    
    ## Relevant Specs
    - [spec-name]: [summary]
    
    ## Patterns to Follow
    - [pattern 1]
    - [pattern 2]
    
    ## Warnings to Consider
    - [warning 1] (from past failure)
    
    ## Past Decisions That May Apply
    - [decision] - worked: [true/false]
    
    ## Rules to Follow
    When implementing this:
    - MUST: [list]
    - MUST NOT: [list]
    - ASK FIRST: [list]
  6. ユーザーが続行する場合は、意図を記録します

    mcp__daem0nmcp__remember(
        category="decision",
        content="Creating OpenSpec proposal for [feature]: [brief description]",
        rationale="[user's stated rationale]",
        tags=["openspec", "proposal", "pending"],
        context={
            "openspec_type": "proposal",
            "feature": "[feature]",
            "change_id": "[generated-id or TBD]"
        }
    )

    MEMORY ID を保存します - ワークフロー 3 で必要です。

ワークフロー 3: 学習内容をアーカイブ

トリガー:

  • openspec archive [id] が完了した後
  • "record outcome for [change-id]"
  • "convert archived change [id] to learnings"

手順

  1. アーカイブされた変更を読み取ります

    cat openspec/changes/archive/[id]/proposal.md
    cat openspec/changes/archive/[id]/tasks.md
    ls openspec/changes/archive/[id]/specs/
  2. 元の決定メモリを見つけます

    mcp__daem0nmcp__search_memories(
        query="OpenSpec proposal [id]"
    )

    または、ID が記録されていない場合は、機能名で検索します。

  3. 結果を記録します

    mcp__daem0nmcp__record_outcome(
        memory_id=[found decision id],
        outcome="Completed and archived. [summary of what was implemented]",
        worked=true  // または問題があった場合は false
    )
  4. 完了した作業から学習内容を作成します

    mcp__daem0nmcp__remember_batch(memories=[
        {
            "category": "learning",
            "content": "[change-id]: [key lesson from implementation]",
            "rationale": "Extracted from completed OpenSpec change",
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開

OpenSpec-Daem0n Bridge

Overview

This skill creates a bidirectional bridge between:

  • OpenSpec: Spec-driven development with formal change proposals
  • Daem0n-MCP: AI memory system with semantic search and outcome tracking

The feedback loop:

OpenSpec specs ──────► Daem0n patterns/rules
       ▲                        │
       │                        ▼
  Future specs ◄────── Past outcomes/failures

Auto-Detection

On session start, after get_briefing():

Check if openspec/ directory exists in the project root:

ls openspec/specs/ 2>/dev/null

If OpenSpec detected AND specs not yet imported:

  1. Announce: "OpenSpec detected. Syncing specs to Daem0n memory..."
  2. Execute Workflow 1 (Import) automatically
  3. Report summary of imported specs and rules

How to check if already imported:

recall(topic="openspec", tags=["spec"], limit=1)

If results exist with recent timestamps, skip import.

Workflow 1: Import Specs to Memory

Triggers:

  • Auto: OpenSpec directory detected on first session
  • Manual: "sync specs to memory", "import openspec", "refresh openspec"

Steps

  1. List all spec directories

    ls openspec/specs/
  2. For each spec, read the spec.md file

    cat openspec/specs/[name]/spec.md
  3. Parse requirements using these patterns:

    Pattern Extract As
    MUST, SHALL, REQUIRED rule.must_do
    MUST NOT, SHALL NOT, PROHIBITED rule.must_not
    SHOULD, RECOMMENDED pattern
    SHOULD NOT, NOT RECOMMENDED warning
    ## Purpose section pattern (overview)
  4. Create memories via remember_batch

    mcp__daem0nmcp__remember_batch(memories=[
        {
            "category": "pattern",
            "content": "[spec-name]: [overview/purpose summary]",
            "rationale": "OpenSpec specification - source of truth",
            "tags": ["openspec", "spec", "[spec-name]"],
            "file_path": "openspec/specs/[spec-name]/spec.md",
            "context": {
                "openspec_type": "spec",
                "imported_at": "[ISO timestamp]"
            }
        }
        // ... one per spec
    ])
  5. Create rules from MUST/MUST NOT

    mcp__daem0nmcp__add_rule(
        trigger="implementing [spec-name] feature",
        must_do=["[extracted MUST items]"],
        must_not=["[extracted MUST NOT items]"],
        ask_first=["Does this align with the spec?"]
    )
  6. Report summary

    Imported [N] specs as patterns
    Created [M] rules with [X] must_do and [Y] must_not constraints
    Use recall("openspec") to query

Memory Mapping Reference

OpenSpec Element Daem0n Category Tags
spec.md overview pattern openspec, spec, [name]
MUST requirements rule.must_do (in rule, not memory)
MUST NOT constraints rule.must_not (in rule, not memory)
Known limitations warning openspec, limitation, [name]
Design rationale learning openspec, rationale, [name]

Workflow 2: Inform Proposal Creation

Triggers:

  • "prepare proposal for [feature]"
  • "check before proposing [feature]"
  • "what do I need to know before proposing [feature]"

Steps

  1. Recall relevant memories

    mcp__daem0nmcp__recall(
        topic="[feature description]",
        categories=["pattern", "warning", "decision"]
    )
  2. Check applicable rules

    mcp__daem0nmcp__check_rules(
        action="proposing change for [feature]"
    )
  3. Recall OpenSpec-specific context

    mcp__daem0nmcp__recall(
        topic="openspec [feature]",
        tags=["openspec"]
    )
  4. If specific files are affected, check them

    mcp__daem0nmcp__recall_for_file(
        file_path="openspec/specs/[affected-spec]/spec.md"
    )
  5. Present findings to user in this format:

    # Memory Context for Proposal: [feature]
    
    ## Relevant Specs
    - [spec-name]: [summary]
    
    ## Patterns to Follow
    - [pattern 1]
    - [pattern 2]
    
    ## Warnings to Consider
    - [warning 1] (from past failure)
    
    ## Past Decisions That May Apply
    - [decision] - worked: [true/false]
    
    ## Rules to Follow
    When implementing this:
    - MUST: [list]
    - MUST NOT: [list]
    - ASK FIRST: [list]
  6. If user proceeds, record the intent

    mcp__daem0nmcp__remember(
        category="decision",
        content="Creating OpenSpec proposal for [feature]: [brief description]",
        rationale="[user's stated rationale]",
        tags=["openspec", "proposal", "pending"],
        context={
            "openspec_type": "proposal",
            "feature": "[feature]",
            "change_id": "[generated-id or TBD]"
        }
    )

    SAVE THE MEMORY ID - needed for Workflow 3.

Workflow 3: Archive to Learnings

Triggers:

  • After openspec archive [id] completes
  • "record outcome for [change-id]"
  • "convert archived change [id] to learnings"

Steps

  1. Read the archived change

    cat openspec/changes/archive/[id]/proposal.md
    cat openspec/changes/archive/[id]/tasks.md
    ls openspec/changes/archive/[id]/specs/
  2. Find the original decision memory

    mcp__daem0nmcp__search_memories(
        query="OpenSpec proposal [id]"
    )

    Or search by feature name if ID wasn't recorded.

  3. Record the outcome

    mcp__daem0nmcp__record_outcome(
        memory_id=[found decision id],
        outcome="Completed and archived. [summary of what was implemented]",
        worked=true  // or false if there were issues
    )
  4. Create learnings from the completed work

    mcp__daem0nmcp__remember_batch(memories=[
        {
            "category": "learning",
            "content": "[change-id]: [key lesson from implementation]",
            "rationale": "Extracted from completed OpenSpec change",
            "tags": ["openspec", "completed", "[feature-name]"],
            "context": {
                "openspec_type": "archived_change",
                "change_id": "[id]",
                "archived_at": "[timestamp]"
            }
        }
        // ... one learning per significant insight
    ])
  5. Link the memories to create causal chain

    mcp__daem0nmcp__link_memories(
        source_id=[proposal decision id],
        target_id=[learning id],
        relationship="led_to",
        description="Proposal implementation led to these learnings"
    )
  6. If spec deltas were applied, update spec memories

    For each delta in openspec/changes/archive/[id]/specs/:

    • ADDED requirements: Create new pattern memories
    • MODIFIED requirements: Update or supersede existing
    • REMOVED requirements: Create warning memories noting removal

Tags Convention

Tag Meaning When Used
openspec Memory from OpenSpec integration All OpenSpec memories
spec From spec.md source of truth Workflow 1
proposal From change proposal Workflow 2
pending Proposal not yet archived Workflow 2
completed From archived change Workflow 3
limitation Known constraint Workflow 1
rationale Design reasoning Workflow 1

Integration with Sacred Covenant

This skill respects the Daem0n's Sacred Covenant:

  1. COMMUNE - get_briefing() must be called first (auto-detection happens after)
  2. SEEK COUNSEL - Workflow 2 IS the counsel-seeking step for proposals
  3. INSCRIBE - remember() records proposal decisions
  4. SEAL - record_outcome() closes the loop when changes are archived

Enforcement:

  • Workflow 1 (Import) requires communion (get_briefing called)
  • Workflow 2 (Inform) calls context_check internally
  • Workflow 3 (Archive) requires the original decision memory to exist

Parsing OpenSpec Spec Files

Spec Format Reference

# [Spec Title]

## Purpose
[Description - extract as pattern overview]

## Requirements

### Requirement: [Name]
[Text containing MUST/MUST NOT/SHOULD]

#### Scenario: [Description]
- **GIVEN** [condition]
- **WHEN** [action]
- **THEN** [result]

Extraction Regex Patterns

MUST requirements:     /(?:MUST|SHALL|REQUIRED):\s*(.+)/gi
MUST NOT constraints:  /(?:MUST NOT|SHALL NOT|PROHIBITED):\s*(.+)/gi
SHOULD patterns:       /(?:SHOULD|RECOMMENDED):\s*(.+)/gi
SHOULD NOT warnings:   /(?:SHOULD NOT|NOT RECOMMENDED):\s*(.+)/gi

Spec Delta Format

## ADDED
### Requirement: [New requirement]

## MODIFIED
### Requirement: [Changed requirement]

## REMOVED
- Requirement: [Removed name]

## RENAMED
FROM: ### Requirement: OldName
TO: ### Requirement: NewName

Example Session

[Session starts]
User: Let's work on the authentication feature

Claude: [Calls get_briefing()]
        [Detects openspec/ directory]

        OpenSpec detected. Syncing specs to Daem0n memory...

        Imported 5 specs as patterns:
        - authentication (3 MUST, 2 MUST NOT)
        - api-endpoints (5 MUST, 1 MUST NOT)
        - error-handling (2 MUST)
        - ...

        Created 5 rules for spec enforcement.

User: I want to propose adding OAuth support

Claude: [Workflow 2: Inform]
        Querying memory before proposal...

        # Memory Context for Proposal: OAuth support

        ## Relevant Specs
        - authentication: "All auth must be stateless for scaling"

        ## Warnings
        - Previous session-based auth was rejected (worked=false)

        ## Rules
        MUST: Use JWT tokens, Support token refresh
        MUST NOT: Store sessions server-side

        Shall I proceed with recording this proposal intent?

User: Yes, proceed

Claude: [Records decision with openspec/proposal/pending tags]
        Recorded. Memory ID: 1847

        Now create your proposal at openspec/changes/add-oauth-support/

[Later, after implementation]

User: I've archived the OAuth change, record it

Claude: [Workflow 3: Archive]
        Reading openspec/changes/archive/add-oauth-support/...

        Recording outcome for decision #1847...
        - Outcome: Completed successfully with OAuth2 + PKCE
        - Worked: true

        Created 2 learnings:
        - OAuth2 PKCE flow works well for SPAs
        - Token refresh needs 5-minute buffer

        Linked proposal -> learnings via "led_to"

        The Daem0n will remember this for future auth work.

Troubleshooting

"No OpenSpec specs found"

Check that openspec/specs/ directory exists and contains spec directories.

"Already imported" but specs are stale

Use "refresh openspec" to force re-import. Old memories will be superseded.

"Can't find proposal decision"

Search with broader terms:

mcp__daem0nmcp__search_memories(query="[feature keywords]", tags=["openspec"])

Rules not matching

Check rule triggers match your action descriptions:

mcp__daem0nmcp__list_rules()