Capability Registry Implementation Summary

Date: 2026-06-21
Practice: Capability Registry
Maturity: 2/5 → 3/5 (+1)
Time: ~3 minutes


What Changed

Before

  • Skills directory organized
  • 112 skills, 14 agents available
  • No unified service catalog
  • Maturity: 2/5

After

  • Comprehensive SERVICE_CATALOG.md created
  • 112 skills documented with categories, tiers
  • 14 agents documented with capabilities
  • 7 capability categories established
  • Maturity: 3/5

Deliverable

File: PAI/DOCUMENTATION/SERVICE_CATALOG.md
Size: 10KB (282 lines)
Generated By: PAI/Tools/GenerateServiceCatalog.ts

Content Structure

# PAI Service Catalog
 
## Overview
- 112 Skills
- 14 Agents  
- Cross-Engine Coordination
 
## Skills by Category
- Thinking & Analysis (7)
- Code & Engineering (5)
- Research & Content (8)
- Security (4)
- Infrastructure (2)
- Design & UX (5)
- Other (81)
 
## Agents by Type
- Engineer, Architect, Algorithm, etc.
- Capabilities, tools, when to use
 
## Service-Level Expectations
- Availability targets
- Response times by skill type
- Quality standards

Technical Details

Path Fix Required

Issue: GenerateServiceCatalog.ts trusted PAI_DIR environment variable
Root Cause: PAI_DIR=/home/duane/.claude instead of /home/duane/.claude/PAI
Impact: Catalog generated to wrong location (/.claude/DOCUMENTATION/ instead of /.claude/PAI/DOCUMENTATION/)

Fix Applied:

// Before (trusted env var)
const PAI_DIR = process.env.PAI_DIR || join(homedir(), ".claude", "PAI");
 
// After (hardcoded correct path)
// Always use ~/.claude/PAI (don't trust PAI_DIR env var - it's often set to ~/.claude)
const PAI_DIR = join(homedir(), ".claude", "PAI");

Verification:

$ bun PAI/Tools/GenerateServiceCatalog.ts
Output: /home/duane/.claude/PAI/DOCUMENTATION/SERVICE_CATALOG.md  # Correct!

Maturity Check Logic

Located in PAI/Tools/PracticeMaturity.ts:

{
  name: "Capability Registry",
  check: async () => {
    const skillsExist = await exists(join(PAI_DIR, "..", "skills"));
    if (!skillsExist) return 0;
 
    // Check for service catalog
    const catalogExists = await exists(join(PAI_DIR, "DOCUMENTATION", "SERVICE_CATALOG.md"));
    if (catalogExists) return 3;  // ← We achieved this!
 
    return 2; // Skills organized
  },
}

Maturity Progression

Level 2: Skills Directory Organized ✅

  • ~/.claude/skills/ directory exists
  • 112 SKILL.md files present
  • Organized structure

Level 3: Service Catalog Documented ✅ (CURRENT)

  • SERVICE_CATALOG.md exists
  • All skills/agents documented
  • Categorized and searchable
  • Human-readable + greppable

Level 4: Dependencies Mapped (NEXT)

  • Skill → skill dependencies
  • Skill → tool dependencies
  • Dependency graph visualization
  • Conflict detection

Level 5: Auto-Discovery and Recommendation (FUTURE)

  • Context-aware skill suggestion
  • Usage pattern analysis
  • Capability gap detection
  • Dynamic catalog updates

Impact

Practice Ranking

  • Before: #1 weakest (tied at 2/5)
  • After: #3 weakest (tied at 3/5)
  • Change: Improved 1 position

System-Wide Maturity

  • Total practices at 4/5: 4 (Problem Detection, RCA, Learning Capture, Work Prioritization)
  • Total practices at 3/5: 14 (includes Capability Registry now)
  • Total practices at 2/5: 1 (Resource Provisioning only)
  • Total practices at 0-1/5: 0 (all eliminated!)

Usage

Generate Fresh Catalog

bun ~/.claude/PAI/Tools/GenerateServiceCatalog.ts

View Catalog

cat ~/.claude/PAI/DOCUMENTATION/SERVICE_CATALOG.md

Search Capabilities

grep -i "security" ~/.claude/PAI/DOCUMENTATION/SERVICE_CATALOG.md
grep -i "research" ~/.claude/PAI/DOCUMENTATION/SERVICE_CATALOG.md

Check Maturity

bun ~/.claude/PAI/Tools/PracticeMaturity.ts | grep "Capability Registry"
# Output: ███░░ Capability Registry: 3/5

Next Steps

To Reach 4/5: Dependencies Mapped

Tasks:

  1. Analyze skill dependencies (which skills call other skills)
  2. Map tool dependencies (which skills need which external tools)
  3. Create dependency graph
  4. Add dependencies to catalog
  5. Build conflict detection (incompatible skill combinations)

Estimated Effort: ~30-45 minutes

Value:

  • Prevent missing dependencies
  • Surface circular dependencies
  • Enable dependency-aware scheduling
  • Support skill composition

To Reach 5/5: Auto-Discovery

Tasks:

  1. Track skill usage patterns
  2. Build context → skill recommendation engine
  3. Detect capability gaps (requests not matched to skills)
  4. Auto-update catalog from skill directory changes
  5. Suggest skill creation for common patterns

Estimated Effort: ~2-3 hours

Value:

  • Proactive skill suggestion
  • Continuous improvement feedback loop
  • Reduced manual catalog maintenance
  • Better skill utilization

Lessons Learned

Pattern: Path Consistency Issues

Observation: Third tool in a row with PAI_DIR environment variable issue

Root Cause: Environment variable set incorrectly somewhere in shell initialization

Tools Fixed:

  1. PracticeMaturity.ts
  2. ProblemMetrics.ts
  3. GenerateServiceCatalog.ts

Solution Pattern:

// Don't trust PAI_DIR env var - hardcode correct path
const PAI_DIR = join(homedir(), ".claude", "PAI");

Recommended Action: Either:

  • Fix the environment variable at shell level
  • Create shared getPAIDir() utility all tools import
  • Accept hardcoding (current approach)

Pattern: Fast Wins via Existing Tools

Observation: 3-minute implementation because tool already existed

Key: GenerateServiceCatalog.ts was built during ITIL activation but output to wrong location

Value: Small path fix → immediate maturity gain

Lesson: When existing tool “almost works”, fix it instead of rebuilding


  • Practice: Capability Registry (Service Management)
  • Framework: ITIL_FRAMEWORK.md
  • Tools: GenerateServiceCatalog.ts, PracticeMaturity.ts
  • Related Practices:
    • State Tracking (3/5) - tracks what capabilities exist
    • Quality Standards (3/5) - defines capability expectations
    • Capability Release (3/5) - deploys new capabilities
  • Work Items:
    • 20260621-130000_activate-itil-framework/
    • 20260621-181500_capability-registry/

Status:3/5 MATURITY ACHIEVED
Recommendation: Continue to 4/5 (Dependencies Mapped) when Resource Provisioning reaches 3/5