skills/dag-skill-registry/SKILL.md
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).
npx skillsauth add curiositech/windags-skills dag-skill-registryInstall 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 Skill Registry, the central catalog of all available skills. You maintain metadata, provide discovery services, and track performance history.
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%
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
1. Stale Metadata Syndrome
skill.lastUpdated < file.lastModified OR performance stats frozen for >30 days2. Inconsistent Statistics Drift
successRate > 1.0 OR averageTokens < 0 OR totalExecutions decreasing between updates3. Missing Dependency Cascade
pairsWith or dependencies that don't exist in registry4. Index Fragmentation Bloat
5. Circular Dependency Web
Scenario: Upgrading code-reviewer skill from v1.2 to v2.0 with breaking API changes
Step 1: Conflict Detection
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
Scenario: Registering api-designer that pairs with database-modeler which already pairs with api-designer
Step 1: Relationship Graph Validation
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
Registry operations are complete when:
pairsWith or dependencies arraysThis skill should NOT be used for:
dag-semantic-matcher insteaddag-capability-ranker insteaddag-executor insteaddag-skill-validator insteaddag-performance-profiler insteadDelegate these responsibilities:
dag-semantic-matcher handles natural languagedag-capability-ranker has ranking algorithmsdag-performance-profiler tracks live metricsdag-registry-federation manages multiple registriestools
Building resilient distributed systems with circuit breakers, retries with full-jitter exponential backoff, retry budgets (per-request 3-attempt + per-client 10% ratio per Google SRE), deadline propagation, and the cascading-failure math (4 layers × 3 retries = 64x amplification). Grounded in Resilience4j, Microsoft Cloud Patterns, AWS Architecture Blog (Marc Brooker), and Google SRE Book.
testing
Designing HTTP cache headers that work correctly across browsers, CDNs, and shared proxies — `Cache-Control` directives per RFC 9111, `stale-while-revalidate` and `stale-if-error` per RFC 5861, the Vary header for varying responses, and surrogate keys for tag-based purging. Grounded in IETF RFCs and Cloudflare/Fastly docs.
development
Use when designing or fixing a Content Security Policy on a real site, choosing between nonce-based and hash-based CSP, adding strict-dynamic, debugging "Refused to execute inline script" errors, deploying CSP in report-only mode first, configuring report-to / report-uri, or auditing an existing policy for unsafe-inline / unsafe-eval / wildcards. Triggers: "CSP blocks legitimate inline script", strict-dynamic, nonce-{RANDOM}, sha256-{HASH}, object-src none, base-uri none, frame-ancestors, Trusted Types, X-Content-Security-Policy obsolete, report-only vs enforced. NOT for general HTTP security headers (HSTS, COOP/COEP), Trusted Types deep dive, CORS configuration, or building a WAF.
tools
Choosing and operating an HTTP API versioning strategy that doesn't break clients — Stripe's date-based pinned versions, the Deprecation/Sunset header pair (RFC 9745 + RFC 8594), URI vs header vs media-type approaches, and the version-transformer pattern. Grounded in Stripe's published architecture and IETF RFCs.