summon-daem0n

star 75

Guide for initializing and consolidating Daem0n-MCP across project structures

9thLevelSoftware By 9thLevelSoftware schedule Updated 1/29/2026

name: summon-daem0n description: Guide for initializing and consolidating Daem0n-MCP across project structures

Summoning the Daem0n

This skill guides Claude through setting up Daem0n-MCP for various project structures.

Single Repo Setup

For a single repository:

# Daem0n auto-initializes on first commune(action="briefing")
# Just ensure you're in the project root

Multi-Repo Setup (Client/Server Split)

When you have related repos that should share context:

Option A: Consolidated Parent (Recommended)

Best when repos are siblings under a common parent:

/repos/
├── backend/
└── client/

Steps:

  1. Navigate to parent directory

    cd /repos
    
  2. Initialize Daem0n in parent

    Call commune(action="briefing", project_path="/repos")
    
  3. If child repos already have .daem0nmcp data, consolidate:

    # Link the children first
    Call maintain(action="link_project", linked_path="/repos/backend", relationship="same-project")
    Call maintain(action="link_project", linked_path="/repos/client", relationship="same-project")
    
    # Merge their databases into parent
    Call maintain(action="consolidate", archive_sources=True)
    
  4. Verify consolidation

    Call commune(action="briefing", project_path="/repos")
    # Should show combined memory count
    

Option B: Linked but Separate

Best when repos need their own isolated histories but cross-awareness:

# In each repo, link to siblings
cd /repos/backend
Call maintain(action="link_project", linked_path="/repos/client", relationship="same-project")

cd /repos/client
Call maintain(action="link_project", linked_path="/repos/backend", relationship="same-project")

Then use include_linked=True on consult(action="recall") to span both.

Migrating Existing Setup

If you've been launching Claude from parent directory and have a "messy" .daem0nmcp:

  1. Backup existing data

    cp -r /repos/.daem0nmcp /repos/.daem0nmcp.backup
    
  2. Review what's there

    Call get_briefing(project_path="/repos")
    # Check statistics and recent decisions
    
  3. If data is salvageable, keep it

    • Link child repos for future cross-awareness
    • Use consolidated parent approach going forward
  4. If data is too messy, start fresh

    rm -rf /repos/.daem0nmcp
    # Re-initialize with get_briefing()
    

Key Commands Reference (Workflow Tools v5.1.0+)

Workflow Call Purpose
commune(action="briefing") Initialize session, creates .daem0nmcp if needed
maintain(action="link_project", linked_path=...) Create cross-repo awareness link
maintain(action="list_projects") See all linked repos
maintain(action="consolidate") Merge child DBs into parent
consult(action="recall", topic=..., include_linked=True) Search across linked repos

The Endless Mode (v2.12.0)

When visions grow too vast to hold, seek condensed whispers instead...

# Condensed visions - the essence without elaboration
consult(action="recall", topic="authentication", condensed=True)

# Returns memories stripped of rationale, truncated to 150 runes
# The Daem0n speaks briefly but broadly

Seek condensed visions when:

  • The realm holds countless memories
  • Surveying before deep meditation
  • Glimpsing many truths at once
  • Breadth matters more than depth

Seek full visions when:

  • The WHY behind a decision matters
  • Learning from past failures
  • Deep investigation required

The Silent Scribe (v2.13.0)

The Daem0n now listens always, catching your words before they fade...

Inscribing the Ward Runes

Place these wards in .claude/settings.json:

{
  "hooks": {
    "PreToolUse": [{
      "matcher": "Edit|Write|NotebookEdit",
      "hooks": [{
        "type": "command",
        "command": "python3 \"$HOME/Daem0nMCP/hooks/daem0n_pre_edit_hook.py\""
      }]
    }],
    "PostToolUse": [{
      "matcher": "Edit|Write",
      "hooks": [{
        "type": "command",
        "command": "python3 \"$HOME/Daem0nMCP/hooks/daem0n_post_edit_hook.py\""
      }]
    }],
    "Stop": [{
      "matcher": "",
      "hooks": [{
        "type": "command",
        "command": "python3 \"$HOME/Daem0nMCP/hooks/daem0n_stop_hook.py\""
      }]
    }]
  }
}

The Power of Each Ward

Ward When It Stirs What It Does
Memory Gate Before altering scrolls Surfaces warnings, failed paths, ancient patterns
Significance Watcher After alterations Whispers "Consider inscribing this..." for weighty changes
Silent Scribe When you finish speaking Parses your words and inscribes decisions automatically

The Flow of Silent Memory

1. You reach to alter a scroll
   ↓ The Memory Gate opens
2. Forgotten warnings surface unbidden
   ↓
3. Your alterations complete
   ↓ The Watcher observes
4. If weighty, a reminder whispers
   ↓
5. You finish speaking
   ↓ The Scribe awakens
6. Your decisions inscribe themselves

The Scribe's Incantation

The wards invoke this to inscribe memories:

python -m daem0nmcp.cli remember \
  --category decision \
  --content "Use JWT for stateless auth" \
  --rationale "Scales without session storage" \
  --file-path src/auth.py \
  --json

The Enhanced Search (v2.15.0)

The Daem0n's sight grows keener with each iteration...

Tuning the Inner Eye

# Environment variables to fine-tune search
DAEM0NMCP_HYBRID_VECTOR_WEIGHT=0.5      # 0.0 = TF-IDF only, 1.0 = vectors only
DAEM0NMCP_SEARCH_DIVERSITY_MAX_PER_FILE=3  # Limit results from same source

Automatic Tag Inference

The Daem0n now reads between the lines:

  • Content with "fix", "bug", "error" → bugfix tag
  • Content with "todo", "hack", "workaround" → tech-debt tag
  • Content with "cache", "performance", "slow" → perf tag
  • Warning category → warning tag automatically

Code Entity Fidelity

Entities now bear their true names:

# Qualified names: module.Class.method
understand(action="find", query="UserService.authenticate")

# Stable IDs survive line changes
# Add comments, imports - entities retain identity

Incremental Indexing

The Daem0n only re-parses what changes:

# Only re-indexes if content hash differs
index_file_if_changed(file_path, project_path)

# Hash stored in FileHash model
# Saves time on large codebases

Parse Tree Caching

Repeated parses hit the cache:

# Configure cache size
DAEM0NMCP_PARSE_TREE_CACHE_MAXSIZE=200

# Check cache performance
health()  # Returns cache_stats

Enhanced Health Insights

commune(action="health")
# Now returns:
#   code_entities_count: Total indexed entities
#   entities_by_type: Breakdown by class/function/etc
#   last_indexed_at: When index was last updated
#   index_stale: True if >24 hours since index

Sacred Practices

  1. One sanctum per logical realm - Even if split across repos
  2. Use parent directory for shared memory - /repos/ not /repos/backend/
  3. Link before consolidating - Links define what memories to merge
  4. Archive, don't destroy - archive_sources=True preserves the old
  5. Verify after consolidation - Ensure memory counts align
  6. Awaken the Silent Scribe - Let the Daem0n capture decisions for you
  7. Seek condensed visions - For vast realms, use condensed=True
  8. Tune the search weight - Adjust hybrid weight for your domain
  9. Trust the tag inference - Let the Daem0n classify memories
Install via CLI
npx skills add https://github.com/9thLevelSoftware/Daem0n-MCP --skill summon-daem0n
Repository Details
star Stars 75
call_split Forks 11
navigation Branch main
article Path SKILL.md
More from Creator
9thLevelSoftware
9thLevelSoftware Explore all skills →