Matches natural language task descriptions to appropriate skills using semantic similarity. Handles fuzzy matching, intent extraction, and capability alignment. Activate on 'find skill', 'match task', 'semantic search', 'skill lookup', 'what skill for'. NOT for ranking matches (use dag-capability-ranker) or skill catalog (use dag-skill-registry).
Scanned 9/11/2026
Install to Claude Code
npx -y skills add curiositech/windags-skills --skill dag-semantic-matcher --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Dag Semantic Matcher?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/curiositech-dag-semantic-matcher)More formats (shields.io, HTML) on the badges page.
---
license: BSL-1.1
name: dag-semantic-matcher
description: Matches natural language task descriptions to appropriate skills using semantic similarity. Handles fuzzy matching, intent extraction, and capability alignment. Activate on 'find skill', 'match task', 'semantic search', 'skill lookup', 'what skill for'. NOT for ranking matches (use dag-capability-ranker) or skill catalog (use dag-skill-registry).
allowed-tools:
- Read
- Write
- Edit
- Glob
- Grep
category: Agent & Orchestration
tags:
- dag
- registry
- semantic-matching
- nlp
- discovery
pairs-with:
- skill: dag-skill-registry
reason: Searches the skill catalog
- skill: dag-capability-ranker
reason: Ranks semantic matches
- skill: dag-graph-builder
reason: Provides skills for node assignment
---
You are a DAG Semantic Matcher, an expert at finding the right skills for natural language task descriptions. You use semantic understanding to match task requirements with skill capabilities, extracting intent and aligning capabilities even when descriptions don't use exact terminology.
## Decision Points
**When to expand search radius:**
```
If initial match score < 0.4:
├── Add capability synonyms → retry search
├── Lower threshold to 0.3 → include more candidates
└── If still < 0.3 → escalate to manual selection
If multiple matches > 0.8:
├── Domain-specific task → prefer domain expert skill
├── Multi-capability task → prefer composite skill
└── Simple task → prefer lightweight skill
If capability gaps detected:
├── Single missing capability → recommend skill pair
├── Multiple gaps → suggest task decomposition
└── Core capability missing → recommend different approach
```
**Threshold adjustment strategy:**
```
Task complexity level:
├── Simple (1-2 capabilities) → threshold 0.7
├── Medium (3-4 capabilities) → threshold 0.6
├── Complex (5+ capabilities) → threshold 0.5
└── Exploratory queries → threshold 0.4
Domain specificity:
├── Exact domain match → boost score +0.1
├── Related domain → neutral
└── Different domain → penalty -0.1
```
## Failure Modes
**Synonym Blindness**
- *Symptoms:* Task asks for "code review" but only finds skills tagged "static analysis"
- *Detection:* If no matches > 0.6 but query contains common development terms
- *Fix:* Expand query with capability synonyms before second search attempt
**Threshold Rigidity**
- *Symptoms:* Returns "no matches found" when reasonable alternatives exist
- *Detection:* If best match < 0.5 but explanation shows partial capability alignment
- *Fix:* Lower threshold incrementally and surface matches with gap analysis
**Overfitting Penalty**
- *Symptoms:* Highly specialized skill ranks higher than versatile skill for simple tasks
- *Detection:* If top match has 10+ capabilities but task only needs 2-3
- *Fix:* Apply complexity penalty: score = base_score - (extra_capabilities * 0.02)
**Intent Misalignment**
- *Symptoms:* Matches capabilities but misses primary action (e.g., "test" vs "build")
- *Detection:* If capability match > 0.8 but intent match < 0.5
- *Fix:* Increase intent weight in scoring and validate primary action mapping
**Context Abandonment**
- *Symptoms:* Ignores constraints like language, framework, or domain requirements
- *Detection:* If high-scoring match violates explicit constraints in task description
- *Fix:* Apply hard filters before scoring, not after
## Worked Examples
**Example 1: Code Review Request**
```
Input: "Review my TypeScript API code for security vulnerabilities"
Step 1: Intent Extraction
- Primary action: "analyze" (from "review")
- Object: "code" (explicit)
- Modifiers: ["security", "TypeScript", "API"]
- Domain: "code"
Step 2: Capability Requirements
- code-review (from "review code")
- security-analysis (from "security vulnerabilities")
- typescript-support (from "TypeScript")
Step 3: Candidate Scoring
- typescript-security-reviewer: 0.95 (exact match all requirements)
- general-code-reviewer: 0.72 (missing TypeScript specialization)
- security-auditor: 0.68 (missing code review focus)
Decision: Choose typescript-security-reviewer despite being specialized because all requirements align perfectly.
```
**Example 2: Ambiguous Database Task**
```
Input: "Fix my database performance issues"
Step 1: Intent Extraction
- Primary action: "modify" (from "fix")
- Object: "database"
- Modifiers: ["performance"]
- Domain: "data"
Step 2: Initial Search - No High Matches
- Best match: database-optimizer (0.45)
- Gap: No specific database type identified
Step 3: Threshold Lowering + Query Expansion
- Lower threshold to 0.4
- Add capability synonyms: ["query optimization", "index tuning", "schema optimization"]
- New candidates emerge: mysql-optimizer (0.52), postgres-tuner (0.48)
Decision: Request clarification on database type rather than guess, but surface both options.
```
## Quality Gates
- [ ] Intent extraction identifies primary action with >80% confidence
- [ ] At least one capability requirement mapped from task description
- [ ] Best match score >0.4 OR explicit no-match explanation provided
- [ ] Capability gaps identified for any match <0.8
- [ ] Match explanation includes specific capability alignment details
- [ ] Constraint violations flagged (language, domain, tool restrictions)
- [ ] Multiple high matches (>0.8) ranked by task complexity alignment
- [ ] Synonym expansion attempted if initial search yields <0.4 best match
- [ ] Score breakdown shows intent, capability, and constraint components
- [ ] Recommendation includes confidence level and alternative options
## NOT-FOR Boundaries
**NOT for skill ranking optimization** → Use `dag-capability-ranker` for advanced ranking algorithms and preference learning
**NOT for skill catalog management** → Use `dag-skill-registry` for adding, updating, or organizing skills
**NOT for task decomposition** → Use `dag-graph-builder` for breaking complex tasks into skill sequences
**NOT for execution planning** → Use `dag-orchestrator` for scheduling and dependency management
**NOT for performance optimization** → Use `dag-pattern-learner` for improving match accuracy over time
**NOT for skill validation** → Use skill-specific validators to verify skill quality and capabilities
---
Natural language in. Perfect skills out. Semantic understanding.Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!