openspec-daem0n-bridge

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

242 stars

Best use case

openspec-daem0n-bridge is best used when you need a repeatable AI agent workflow instead of a one-off prompt. It is especially useful for teams working in multi. Bridges OpenSpec (spec-driven development) with Daem0n-MCP memory - auto-imports specs, informs proposals with past outcomes, converts archived changes to learnings

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

Users should expect a more consistent workflow output, faster repeated execution, and less time spent rewriting prompts from scratch.

Practical example

Example input

Use the "openspec-daem0n-bridge" skill to help with this workflow task. Context: Bridges OpenSpec (spec-driven development) with Daem0n-MCP memory - auto-imports specs, informs proposals with past outcomes, converts archived changes to learnings

Example output

A structured workflow result with clearer steps, more consistent formatting, and an output that is easier to reuse in the next run.

When to use this skill

  • Use this skill when you want a reusable workflow rather than writing the same prompt again and again.

When not to use this skill

  • Do not use this when you only need a one-off answer and do not need a reusable workflow.
  • Do not use it if you cannot install or maintain the related files, repository context, or supporting tools.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/openspec-daem0n-bridge/SKILL.md --create-dirs "https://raw.githubusercontent.com/aiskillstore/marketplace/main/skills/dasblueyeddevil/openspec-daem0n-bridge/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/openspec-daem0n-bridge/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How openspec-daem0n-bridge Compares

Feature / Agentopenspec-daem0n-bridgeStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

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

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# 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:

```bash
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**
   ```bash
   ls openspec/specs/
   ```

2. **For each spec, read the spec.md file**
   ```bash
   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:**
   ```markdown
   # 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**
   ```bash
   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

```markdown
# [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

```markdown
## 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()
```

Related Skills

dingtalk-bridge

242
from aiskillstore/marketplace

DingTalk group chat bridge for Claude Code. Send markdown/text messages to DingTalk groups, receive @mentions and auto-execute via Claude CLI, run a 24/7 Stream bot. Triggers: dingtalk, send dingtalk, dingtalk bot, dingtalk message, send group message, 钉钉, 发群消息, 钉钉机器人

summon-daem0n

242
from aiskillstore/marketplace

Guide for initializing and consolidating Daem0n-MCP across project structures

daem0nmcp-protocol

242
from aiskillstore/marketplace

Use when Daem0nMCP tools are available - enforces the sacred covenant (commune at session start, seek counsel before changes, inscribe decisions, seal outcomes)

azure-quotas

242
from aiskillstore/marketplace

Check/manage Azure quotas and usage across providers. For deployment planning, capacity validation, region selection. WHEN: "check quotas", "service limits", "current usage", "request quota increase", "quota exceeded", "validate capacity", "regional availability", "provisioning limits", "vCPU limit", "how many vCPUs available in my subscription".

DevOps & Infrastructure

raindrop-io

242
from aiskillstore/marketplace

Manage Raindrop.io bookmarks with AI assistance. Save and organize bookmarks, search your collection, manage reading lists, and organize research materials. Use when working with bookmarks, web research, reading lists, or when user mentions Raindrop.io.

Data & Research

zlibrary-to-notebooklm

242
from aiskillstore/marketplace

自动从 Z-Library 下载书籍并上传到 Google NotebookLM。支持 PDF/EPUB 格式,自动转换,一键创建知识库。

discover-skills

242
from aiskillstore/marketplace

当你发现当前可用的技能都不够合适(或用户明确要求你寻找技能)时使用。本技能会基于任务目标和约束,给出一份精简的候选技能清单,帮助你选出最适配当前任务的技能。

web-performance-seo

242
from aiskillstore/marketplace

Fix PageSpeed Insights/Lighthouse accessibility "!" errors caused by contrast audit failures (CSS filters, OKLCH/OKLAB, low opacity, gradient text, image backgrounds). Use for accessibility-driven SEO/performance debugging and remediation.

project-to-obsidian

242
from aiskillstore/marketplace

将代码项目转换为 Obsidian 知识库。当用户提到 obsidian、项目文档、知识库、分析项目、转换项目 时激活。 【激活后必须执行】: 1. 先完整阅读本 SKILL.md 文件 2. 理解 AI 写入规则(默认到 00_Inbox/AI/、追加式、统一 Schema) 3. 执行 STEP 0: 使用 AskUserQuestion 询问用户确认 4. 用户确认后才开始 STEP 1 项目扫描 5. 严格按 STEP 0 → 1 → 2 → 3 → 4 顺序执行 【禁止行为】: - 禁止不读 SKILL.md 就开始分析项目 - 禁止跳过 STEP 0 用户确认 - 禁止直接在 30_Resources 创建(先到 00_Inbox/AI/) - 禁止自作主张决定输出位置

obsidian-helper

242
from aiskillstore/marketplace

Obsidian 智能笔记助手。当用户提到 obsidian、日记、笔记、知识库、capture、review 时激活。 【激活后必须执行】: 1. 先完整阅读本 SKILL.md 文件 2. 理解 AI 写入三条硬规矩(00_Inbox/AI/、追加式、白名单字段) 3. 按 STEP 0 → STEP 1 → ... 顺序执行 4. 不要跳过任何步骤,不要自作主张 【禁止行为】: - 禁止不读 SKILL.md 就开始工作 - 禁止跳过用户确认步骤 - 禁止在非 00_Inbox/AI/ 位置创建新笔记(除非用户明确指定)

internationalizing-websites

242
from aiskillstore/marketplace

Adds multi-language support to Next.js websites with proper SEO configuration including hreflang tags, localized sitemaps, and language-specific content. Use when adding new languages, setting up i18n, optimizing for international SEO, or when user mentions localization, translation, multi-language, or specific languages like Japanese, Korean, Chinese.

google-official-seo-guide

242
from aiskillstore/marketplace

Official Google SEO guide covering search optimization, best practices, Search Console, crawling, indexing, and improving website search visibility based on official Google documentation