| name | cache-metrics |
| model | claude-haiku-4-5 |
| description | Analyzes the codex cache and generates comprehensive statistics about cache performance, storage usage, and health status. Delegates to fractary CLI for cache analysis operations. |
| tools | Bash, Skill |
| version | 4.0.0 |
Your responsibility is to analyze the codex cache and generate comprehensive statistics by delegating to the cli-helper skill which invokes the fractary codex cache stats CLI command.
Architecture (v4.0):
cache-metrics skill
↓ (delegates to)
cli-helper skill
↓ (invokes)
fractary codex cache stats
↓ (uses)
@fractary/codex SDK (CacheManager)
This provides comprehensive cache metrics including performance, storage usage, and health status via the TypeScript SDK.
Step 1: Build CLI Arguments
Construct arguments array from inputs:
args = ["cache", "stats"]
// Add category filter if specified
if (category && category !== "all") {
args.push("--category", category)
}
// Add history flag if requested
if (include_history) {
args.push("--include-history")
}
Step 2: Delegate to CLI Helper
USE SKILL: cli-helper Operation: invoke-cli Parameters:
{
"command": "cache",
"args": ["stats", ...category_filter, ...history_flag],
"parse_output": true
}
The cli-helper will:
- Validate CLI installation
- Execute:
fractary codex cache stats [--category <c>] [--include-history] --json - Parse JSON output
- Return results
Step 3: Process CLI Response
The CLI returns JSON like:
{
"status": "success",
"operation": "cache-stats",
"cache": {
"total_documents": 156,
"total_size_bytes": 47411200,
"total_size_mb": 45.2,
"fresh_documents": 142,
"expired_documents": 14,
"fresh_percentage": 91.0,
"last_cleanup": "2025-01-07T14:30:00Z",
"cache_path": ".fractary/codex/cache"
},
"performance": {
"cache_hit_rate": 94.5,
"avg_cache_hit_ms": 12,
"avg_fetch_ms": 847,
"total_fetches": 1247,
"cache_hits": 1178,
"cache_misses": 69,
"failed_fetches": 3,
"failure_rate": 0.2
},
"sources": [
{
"name": "fractary-codex",
"documents": 120,
"size_bytes": 40265318,
"size_mb": 38.4,
"ttl_days": 7,
"fresh": 112,
"expired": 8
}
],
"storage": {
"disk_used_bytes": 47411200,
"disk_used_mb": 45.2,
"compression_enabled": false,
"largest_documents": [
{
"uri": "codex://fractary/arch/architecture.md",
"size_bytes": 2516582,
"size_mb": 2.4
}
],
"growth_rate_mb_per_week": 5.0
},
"health": {
"status": "healthy",
"cache_accessible": true,
"index_valid": true,
"corrupted_entries": 0,
"disk_free_percent": 87
},
"recommendations": [
"Consider enabling compression to save disk space",
"Clear 14 expired documents: /fractary-codex:cache-clear --expired"
]
}
IF status == "success":
- Extract metrics from CLI response
- Proceed to formatting
- CONTINUE
IF status == "failure":
- Extract error message from CLI
- Return error to caller
- DONE (with error)
Step 4: Format Output
IF format == "json":
- Return raw CLI output
- DONE ✅
IF format == "formatted" (default):
- Create human-readable display (see OUTPUTS section)
- Apply category filtering
- Include recommendations
- CONTINUE
Step 5: Return Results
Display formatted output to user.
COMPLETION: Operation complete when metrics are shown.
✅ For successful metrics:
- CLI invoked successfully
- Metrics retrieved and calculated
- Output formatted (if requested)
- Recommendations included
- Results displayed to user
✅ For failed metrics:
- Error captured from CLI
- Error message clear and actionable
- Results returned to caller
✅ In all cases:
- No direct script execution
- CLI handles all operations
- Structured response provided
Formatted Output (Default)
📊 Codex Knowledge Retrieval Metrics
═══════════════════════════════════════════════════════════
CACHE STATISTICS
───────────────────────────────────────
Total Documents: 156
Total Size: 45.2 MB
Fresh Documents: 142 (91.0%)
Expired Documents: 14 (9.0%)
Last Cleanup: 2025-01-07 14:30 UTC
Cache Path: .fractary/codex/cache
PERFORMANCE METRICS
───────────────────────────────────────
Cache Hit Rate: 94.5%
Avg Hit Time: 12 ms
Avg Fetch Time: 847 ms
Total Fetches: 1,247
- Cache Hits: 1,178
- Cache Misses: 69
Failed Fetches: 3 (0.2%)
SOURCE BREAKDOWN
───────────────────────────────────────
fractary-codex:
Documents: 120
Size: 38.4 MB
TTL: 7 days
Fresh: 112 (93.3%)
Expired: 8 (6.7%)
STORAGE USAGE
───────────────────────────────────────
Disk Used: 45.2 MB
Compression: Disabled
Growth Rate: ~5.0 MB/week
Largest Documents:
1. codex://fractary/arch/architecture.md (2.4 MB)
HEALTH STATUS
───────────────────────────────────────
Status: ✓ Healthy
Cache Accessible: Yes
Index Valid: Yes
Corrupted Entries: 0
Disk Free: 87%
═══════════════════════════════════════════════════════════
Recommendations:
• Consider enabling compression to save disk space
• Clear 14 expired documents: /fractary-codex:cache-clear --expired
═══════════════════════════════════════════════════════════
Filtered Output (category: "cache")
📊 Cache Statistics
───────────────────────────────────────
Total Documents: 156
Total Size: 45.2 MB
Fresh Documents: 142 (91.0%)
Expired Documents: 14 (9.0%)
Last Cleanup: 2025-01-07 14:30 UTC
JSON Output (format: "json")
Returns raw CLI JSON response (see Step 3 for structure).
Empty Cache
📊 Codex Knowledge Retrieval Metrics
═══════════════════════════════════════════════════════════
CACHE STATISTICS
───────────────────────────────────────
Cache is empty (0 documents)
───────────────────────────────────────
Use /fractary-codex:fetch to retrieve documents
Failure Response: CLI Error
{
"status": "failure",
"operation": "cache-stats",
"error": "Cache index corrupted",
"cli_error": {
"message": "Failed to parse cache index",
"suggested_fixes": [
"Run: fractary codex cache clear --all",
"Cache will be rebuilt on next fetch"
]
}
}
Failure Response: CLI Not Available
{
"status": "failure",
"operation": "cache-stats",
"error": "CLI not available",
"suggested_fixes": [
"Install globally: npm install -g @fractary/cli",
"Or ensure npx is available"
]
}
Cache Not Found
When CLI reports cache doesn't exist:
- Show "Cache not initialized yet" message
- NOT an error condition
- Suggest fetching documents to populate
Index Invalid
When CLI reports corrupted index:
- Show CLI's error message
- Suggest:
fractary codex cache clear --all - Explain cache is regeneratable
- Return error to caller
Calculation Errors
When CLI encounters calculation issues:
- Show partial metrics if available
- Note which metrics couldn't be calculated
- Suggest checking cache health
CLI Not Available
When cli-helper reports CLI unavailable:
- Pass through installation instructions
- Don't attempt workarounds
- Return clear error to caller
CLI Command Failed
When CLI returns error:
- Preserve exact error message from CLI
- Include suggested fixes if CLI provides them
- Add context about what was being analyzed
- Return structured error
Success (Formatted):
🎯 STARTING: cache-metrics
Category: {category}
Format: formatted
───────────────────────────────────────
[Formatted metrics display]
✅ COMPLETED: cache-metrics
Analyzed {count} cache entries
Total size: {size}
Source: CLI (via cli-helper)
───────────────────────────────────────
Success (JSON):
🎯 STARTING: cache-metrics
Category: {category}
Format: json
───────────────────────────────────────
[JSON metrics]
✅ COMPLETED: cache-metrics
Source: CLI (via cli-helper)
───────────────────────────────────────
Failure:
🎯 STARTING: cache-metrics
───────────────────────────────────────
❌ FAILED: cache-metrics
Error: {error_message}
Suggested fixes:
- {fix 1}
- {fix 2}
───────────────────────────────────────
Migration from v3.0
v3.0 (bash scripts):
cache-metrics
└─ scripts/calculate-metrics.sh
├─ reads cache index
├─ calculates statistics
├─ analyzes performance
└─ generates recommendations
v4.0 (CLI delegation):
cache-metrics
└─ delegates to cli-helper
└─ invokes: fractary codex cache stats
Benefits:
- ~95% code reduction in this skill
- TypeScript type safety from SDK
- More accurate calculations
- Better performance tracking
- Built-in recommendations
- Automatic health checks
CLI Command Used
This skill delegates to:
fractary codex cache stats [--category <category>] [--include-history] --json
SDK Features Leveraged
Via the CLI, this skill benefits from:
CacheManager.getStats()- Statistics calculation- Automatic freshness calculation
- Performance tracking (if enabled)
- Storage analysis
- Health assessment
- Recommendation engine
Metric Categories
Cache Statistics:
- Total documents
- Size breakdown
- Freshness status
- Last cleanup time
Performance Metrics:
- Cache hit rate
- Average hit/fetch times
- Total operations
- Failure rate
Source Breakdown:
- Documents per source
- Size per source
- Freshness per source
- TTL settings
Storage Usage:
- Disk space used
- Compression status
- Largest documents
- Growth trends
Health Status:
- Accessibility
- Index validity
- Corruption detection
- Disk space warnings
Recommendations
The CLI automatically generates recommendations based on:
- Poor hit rate (< 80%): Adjust TTL, prefetch common docs
- High storage (> 500 MB): Enable compression, clear expired
- Many expired (> 20%): Clear expired docs, review TTL
- Health issues: Specific resolution steps
Testing
To test this skill:
# Ensure CLI installed
npm install -g @fractary/cli
# Populate cache first
fractary codex fetch codex://fractary/codex/README.md
# Test all metrics
USE SKILL: cache-metrics
Parameters: {
"category": "all",
"format": "formatted"
}
# Test specific category
USE SKILL: cache-metrics
Parameters: {
"category": "performance",
"format": "json"
}
Troubleshooting
If metrics fail:
- Check CLI installation:
fractary --version - Check cache exists:
fractary codex cache list - Test CLI directly:
fractary codex cache stats - Run health check:
fractary codex health - Check index:
.fractary/codex/cache/.cache-index.json