skills/dag-semantic-matcher/SKILL.md
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).
npx skillsauth add curiositech/windags-skills dag-semantic-matcherInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
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.
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
Synonym Blindness
Threshold Rigidity
Overfitting Penalty
Intent Misalignment
Context Abandonment
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.
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.
data-ai
license: Apache-2.0 NOT for unrelated tasks outside this domain.
development
Use when designing caching strategies (cache-aside, write-through, write-behind), implementing distributed locks, building rate limiters, leaderboards, real-time streams (XADD/consumer groups), pub/sub, or tuning eviction policies. Triggers: thundering-herd on cache miss, dogpile on key expiry, Redlock vs SET-NX-PX choice, sliding-window rate limiter, hot-key on a single cluster slot, big-key blowup, MULTI/EXEC across slots, KEYS in production. NOT for Redis Cluster operations/admin (different domain), embedded KV (SQLite, leveldb), in-process LRU caches, or Memcached.
tools
Drawing the `'use client'` boundary correctly in React Server Components apps (Next.js App Router, RSC frameworks) — leaf-pushing, slot composition, serialization rules, and environment poisoning prevention. Grounded in react.dev and Next.js 16 docs.
development
Use when designing rate limiting for an API, choosing between token bucket / sliding window / leaky bucket / fixed window, implementing it in Redis, deciding edge (Cloudflare/Upstash) vs origin enforcement, sizing per-user vs per-IP vs per-endpoint quotas, returning the right 429 response with Retry-After, or fixing the boundary-burst bug in fixed-window limiters. Triggers: 429 too many requests, INCR + EXPIRE, ZADD + ZREMRANGEBYSCORE + ZCARD, X-RateLimit-Remaining header, Cloudflare WAF rate limiting rules, Upstash @upstash/ratelimit, leaky bucket shaping vs policing, distributed rate limiter consistency. NOT for DDoS mitigation specifically (different scale), CAPTCHA / bot management, full WAF design, or per-user quota billing.