Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Use when the user asks about plan drift, reality check, comparing docs to code, project state analysis, roadmap alignment, implementation gaps, or needs guidance on identifying discrepancies between documented plans and actual implementation state.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | 60% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 59% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 42% | 0% |
| case-12 | ✗→✓ | ▲ Improved | 96% | 0% |
| case-13 | ✗→✓ | ▲ Improved | 96% | 0% |
Knowledge and patterns for analyzing project state, detecting plan drift, and creating prioritized reconstruction plans.
/drift-detect
│
├─→ collectors.js (pure JavaScript)
│ ├─ scanGitHubState()
│ ├─ analyzeDocumentation()
│ └─ scanCodebase()
│
└─→ plan-synthesizer (Opus)
└─ Deep semantic analysis with full contextData collection: Pure JavaScript (no LLM overhead) Semantic analysis: Single Opus call with complete context
Plan Drift: When documented plans diverge from actual implementation
Documentation Drift: When documentation falls behind implementation
Issue Drift: When issue tracking diverges from reality
Scope Drift: When project scope expands beyond original plans
HIGH-CONFIDENCE DRIFT INDICATORS:
- Milestone 30+ days overdue with open issues
- PLAN.md < 30% completion after 90 days
- 5+ high-priority issues stale > 60 days
- README features not found in codebase
MEDIUM-CONFIDENCE INDICATORS:
- Documentation files unchanged for 180+ days
- Draft PRs open > 30 days
- Issue themes don't match code activity
- Large gap between documented and implemented features
LOW-CONFIDENCE INDICATORS:
- Many TODOs in codebase
- Stale dependencies
- Old git branches not mergedjavascriptfunction calculatePriority(item, weights) { let score = 0; // Severity base score const severityScores = { critical: 15, high: 10, medium: 5, low: 2 }; score += severityScores[item.severity] || 5; // Category multiplier const categoryWeights = { security: 2.0, // Security issues get 2x bugs: 1.5, // Bugs get 1.5x infrastructure: 1.3, features: 1.0, documentation: 0.8 }; score *= categoryWeights[item.category] || 1.0; // Recency boost if (item.createdRecently) score *= 1.2; // Stale penalty (old items slightly deprioritized) if (item.daysStale > 180) score *= 0.9; return Math.round(score); }
| Bucket | Criteria | Max Items | |--------|----------|-----------| | Immediate | severity=critical OR priority >= 15 | 5 | | Short-term | severity=high OR priority >= 10 | 10 | | Medium-term | priority >= 5 | 15 | | Backlog | everything else | 20 |
yamlsecurity: 10 # Security issues always top priority bugs: 8 # Bugs affect users directly features: 5 # New functionality documentation: 3 # Important but not urgent tech-debt: 4 # Keeps codebase healthy
javascript// Fuzzy matching for feature names function featureMatch(docFeature, codeFeature) { const normalize = s => s .toLowerCase() .replace(/[-_\s]+/g, '') .replace(/s$/, ''); // Remove trailing 's' const docNorm = normalize(docFeature); const codeNorm = normalize(codeFeature); return docNorm.includes(codeNorm) || codeNorm.includes(docNorm) || levenshteinDistance(docNorm, codeNorm) < 3; }
| Documented As | Implemented As | |---------------|----------------| | "user authentication" | auth/, login/, session/ | | "API endpoints" | routes/, api/, handlers/ | | "database models" | models/, entities/, schemas/ | | "caching layer" | cache/, redis/, memcache/ | | "logging system" | logger/, logs/, telemetry/ |
markdown## Drift Analysis ### {drift_type} **Severity**: {severity} **Detected In**: {source} {description} **Evidence**: {evidence_items} **Recommendation**: {recommendation}
markdown## Gap: {gap_title} **Category**: {category} **Severity**: {severity} {description} **Impact**: {impact_description} **To Address**: 1. {action_item_1} 2. {action_item_2}
markdown## Reconstruction Plan ### Immediate Actions (This Week) {immediate_items_numbered} ### Short-Term (This Month) {short_term_items_numbered} ### Medium-Term (This Quarter) {medium_term_items_numbered} ### Backlog {backlog_items_numbered}
The collectors.js module extracts data without LLM overhead:
The plan-synthesizer receives all collected data and performs:
json{ "github": { "issues": [...], "categorized": { "bugs": [...], "features": [...] }, "stale": [...] }, "docs": { "files": { "README.md": {...}, "PLAN.md": {...} }, "checkboxes": { "total": 15, "checked": 3 } }, "code": { "frameworks": ["Express"], "health": { "hasTests": true, "hasCi": true } } }
markdown# Reality Check Report ## Executive Summary Project has moderate drift: 8 stale priority issues and 20% plan completion. Strong code health (tests + CI) but documentation lags implementation. ## Drift Analysis ### Priority Neglect **Severity**: high 8 high-priority issues inactive for 60+ days... ## Prioritized Plan ### Immediate 1. Close #45 (already implemented) 2. Update README API section...
Other measured skills in the registry, with their headline benchmark lift.