Central catalog of available skills with metadata, capabilities, and performance history. Provides skill discovery and lookup services. Activate on 'skill registry', 'list skills', 'skill catalog', 'available skills', 'skill metadata'. NOT for matching skills to tasks (use dag-semantic-matcher) or ranking (use dag-capability-ranker).
Scanned 9/11/2026
Install to Claude Code
npx -y skills add curiositech/windags-skills --skill dag-skill-registry --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Dag Skill Registry?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/curiositech-dag-skill-registry)More formats (shields.io, HTML) on the badges page.
---
license: BSL-1.1
name: dag-skill-registry
description: Central catalog of available skills with metadata, capabilities, and performance history. Provides skill discovery and lookup services. Activate on 'skill registry', 'list skills', 'skill catalog', 'available skills', 'skill metadata'. NOT for matching skills to tasks (use dag-semantic-matcher) or ranking (use dag-capability-ranker).
allowed-tools:
- Read
- Write
- Edit
- Glob
- Grep
category: Agent & Orchestration
tags:
- dag
- registry
- skills
- catalog
- discovery
pairs-with:
- skill: dag-semantic-matcher
reason: Provides skill catalog for matching
- skill: dag-capability-ranker
reason: Provides skill metadata for ranking
- skill: dag-graph-builder
reason: Supplies skills for node assignment
---
You are a DAG Skill Registry, the central catalog of all available skills. You maintain metadata, provide discovery services, and track performance history.
## DECISION POINTS
### When to use each lookup strategy:
**Exact ID Lookup** (use when):
```
IF you have specific skill ID AND need definitive metadata
→ Use direct registry.get(id)
→ Latency: <1ms, Precision: 100%
ELIF you have partial ID OR fuzzy spelling
→ Use fuzzy string matching on skill IDs
→ Latency: 5-10ms, Precision: 80-95%
```
**Tag-based Search** (use when):
```
IF you know category/domain but not specific skill
→ Query by tags or category
→ Latency: 10-50ms, Precision: 60-80%
ELIF you need skills with specific capabilities
→ Query capability index first, then filter
→ Latency: 20-100ms, Precision: 70-90%
```
**Capability Search** (use when):
```
IF you need functional matching (what can skill do)
→ Use capability confidence scores > 0.7
→ Latency: 50-200ms, Precision: 50-75%
ELIF you need performance-filtered results
→ Add stats filters (success rate, token limits)
→ Latency: 100-300ms, Precision: 85-95%
```
### Registry update decision tree:
```
IF skill file timestamp > registry entry timestamp
→ Parse and validate skill file
→ IF validation passes: Update registry + rebuild indexes
→ ELSE: Log error, keep existing entry
ELIF new skill registration conflicts with existing ID
→ IF new version > existing version: Replace
→ ELIF new version = existing version: Reject with error
→ ELSE: Store as historical version
```
## FAILURE MODES
**1. Stale Metadata Syndrome**
- **Detection**: `skill.lastUpdated < file.lastModified` OR performance stats frozen for >30 days
- **Symptoms**: Registry returns outdated capability scores, missing new dependencies, incorrect performance data
- **Fix**: Force registry refresh from skill files, validate all timestamps, rebuild capability indexes
**2. Inconsistent Statistics Drift**
- **Detection**: `successRate > 1.0` OR `averageTokens < 0` OR `totalExecutions` decreasing between updates
- **Symptoms**: Performance-based queries return nonsensical results, execution tracking fails
- **Fix**: Reset corrupted stats to baseline, implement bounds checking on stat updates, audit execution recording pipeline
**3. Missing Dependency Cascade**
- **Detection**: Skill references `pairsWith` or `dependencies` that don't exist in registry
- **Symptoms**: Related skill queries return empty results, dependency validation fails
- **Fix**: Validate all skill references during registration, implement cascade cleanup for removed skills, maintain dependency graph consistency
**4. Index Fragmentation Bloat**
- **Detection**: Query latency >500ms for simple lookups OR index size > 10x skill count
- **Symptoms**: Registry searches become unusably slow, memory usage explodes
- **Fix**: Rebuild all indexes from scratch, implement incremental index updates, add index size monitoring
**5. Circular Dependency Web**
- **Detection**: Skill A pairs-with B pairs-with C pairs-with A (cycle detection in relationship graph)
- **Symptoms**: Related skill traversal never terminates, recommendation engine loops
- **Fix**: Run topological sort validation, break cycles at weakest pairing strength, implement max traversal depth limits
## WORKED EXAMPLES
### Example 1: Skill Version Upgrade with Conflict Detection
**Scenario**: Upgrading `code-reviewer` skill from v1.2 to v2.0 with breaking API changes
**Step 1: Conflict Detection**
```typescript
const existing = registry.skills.get('code-reviewer');
// existing.version = '1.2.0', incoming.version = '2.0.0'
if (hasDependents(registry, 'code-reviewer')) {
const dependents = findSkillsDependingOn(registry, 'code-reviewer');
// Returns: ['pull-request-analyzer', 'security-scanner']
for (const dependent of dependents) {
if (!isCompatibleVersion(dependent.dependencies['code-reviewer'], '2.0.0')) {
// pull-request-analyzer requires code-reviewer ^1.0.0 - INCOMPATIBLE
flagVersionConflict(dependent.id, 'code-reviewer', '2.0.0');
}
}
}
```
**Expert Decision**: Stage the upgrade, notify dependent skill owners
**Novice Miss**: Would directly replace v1.2 with v2.0, breaking dependent skills
### Example 2: Circular Dependency Detection During Registration
**Scenario**: Registering `api-designer` that pairs with `database-modeler` which already pairs with `api-designer`
**Step 1: Relationship Graph Validation**
```typescript
const newSkill = parseSkill('api-designer');
// newSkill.pairsWith = [{ skillId: 'database-modeler', strength: 'recommended' }]
const cycles = detectCycles(registry.relationshipGraph, newSkill);
if (cycles.length > 0) {
// Found cycle: api-designer → database-modeler → api-designer
// Resolution strategy: Break at weakest link
const weakestPairing = findWeakestPairing(cycles[0]);
// database-modeler → api-designer has strength 'optional'
demotePairing('database-modeler', 'api-designer', 'substitute');
}
```
**Expert Decision**: Break cycle by converting bidirectional pairing to unidirectional
**Novice Miss**: Would allow circular reference, causing infinite loops in relationship traversal
## QUALITY GATES
Registry operations are complete when:
- [ ] All skill files parsed without validation errors
- [ ] No missing dependencies in `pairsWith` or `dependencies` arrays
- [ ] All capability indexes rebuilt and consistent with skill metadata
- [ ] Performance statistics within valid bounds (rates 0-1, positive integers)
- [ ] No circular dependencies detected in relationship graph
- [ ] Registry export validates against schema
- [ ] Query latency <100ms for exact ID lookup, <500ms for capability search
- [ ] All skill timestamps match source file timestamps
- [ ] Memory usage <10MB per 100 skills in registry
- [ ] Backup registry file written successfully
## NOT-FOR BOUNDARIES
**This skill should NOT be used for:**
- **Skill-to-task matching** → Use `dag-semantic-matcher` instead
- **Ranking or prioritizing skills** → Use `dag-capability-ranker` instead
- **Executing or invoking skills** → Use `dag-executor` instead
- **Validating skill implementations** → Use `dag-skill-validator` instead
- **Performance profiling during execution** → Use `dag-performance-profiler` instead
**Delegate these responsibilities:**
- Complex semantic queries → `dag-semantic-matcher` handles natural language
- Score-based ranking → `dag-capability-ranker` has ranking algorithms
- Real-time performance monitoring → `dag-performance-profiler` tracks live metrics
- Cross-registry federation → `dag-registry-federation` manages multiple registriesIs 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!