awesome-slash 2.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. package/.claude-plugin/marketplace.json +54 -0
  2. package/.claude-plugin/plugin.json +11 -0
  3. package/.mcp.json +8 -0
  4. package/CHANGELOG.md +261 -0
  5. package/LICENSE +21 -0
  6. package/README.md +363 -0
  7. package/SECURITY.md +101 -0
  8. package/adapters/README.md +256 -0
  9. package/adapters/codex/README.md +272 -0
  10. package/adapters/codex/install.sh +179 -0
  11. package/adapters/opencode/README.md +301 -0
  12. package/adapters/opencode/install.sh +223 -0
  13. package/lib/patterns/review-patterns.js +511 -0
  14. package/lib/patterns/slop-patterns.js +647 -0
  15. package/lib/platform/detect-platform.js +535 -0
  16. package/lib/platform/verify-tools.js +235 -0
  17. package/lib/state/workflow-state.js +635 -0
  18. package/lib/state/workflow-state.schema.json +282 -0
  19. package/lib/utils/context-optimizer.js +227 -0
  20. package/mcp-server/index.js +303 -0
  21. package/mcp-server/package.json +23 -0
  22. package/package.json +63 -0
  23. package/plugins/deslop-around/.claude-plugin/plugin.json +20 -0
  24. package/plugins/deslop-around/commands/deslop-around.md +220 -0
  25. package/plugins/deslop-around/lib/patterns/review-patterns.js +511 -0
  26. package/plugins/deslop-around/lib/patterns/slop-patterns.js +641 -0
  27. package/plugins/deslop-around/lib/platform/detect-platform.js +514 -0
  28. package/plugins/deslop-around/lib/platform/verify-tools.js +235 -0
  29. package/plugins/deslop-around/lib/state/workflow-state.js +635 -0
  30. package/plugins/deslop-around/lib/state/workflow-state.schema.json +282 -0
  31. package/plugins/deslop-around/lib/utils/context-optimizer.js +222 -0
  32. package/plugins/next-task/.claude-plugin/plugin.json +24 -0
  33. package/plugins/next-task/agents/ci-fixer.md +236 -0
  34. package/plugins/next-task/agents/ci-monitor.md +291 -0
  35. package/plugins/next-task/agents/delivery-validator.md +451 -0
  36. package/plugins/next-task/agents/deslop-work.md +272 -0
  37. package/plugins/next-task/agents/docs-updater.md +506 -0
  38. package/plugins/next-task/agents/exploration-agent.md +277 -0
  39. package/plugins/next-task/agents/implementation-agent.md +427 -0
  40. package/plugins/next-task/agents/planning-agent.md +236 -0
  41. package/plugins/next-task/agents/policy-selector.md +248 -0
  42. package/plugins/next-task/agents/review-orchestrator.md +521 -0
  43. package/plugins/next-task/agents/simple-fixer.md +136 -0
  44. package/plugins/next-task/agents/task-discoverer.md +357 -0
  45. package/plugins/next-task/agents/test-coverage-checker.md +447 -0
  46. package/plugins/next-task/agents/worktree-manager.md +419 -0
  47. package/plugins/next-task/commands/delivery-approval.md +331 -0
  48. package/plugins/next-task/commands/next-task.md +627 -0
  49. package/plugins/next-task/commands/update-docs-around.md +418 -0
  50. package/plugins/next-task/hooks/hooks.json +14 -0
  51. package/plugins/next-task/lib/patterns/review-patterns.js +511 -0
  52. package/plugins/next-task/lib/patterns/slop-patterns.js +641 -0
  53. package/plugins/next-task/lib/platform/detect-platform.js +514 -0
  54. package/plugins/next-task/lib/platform/verify-tools.js +235 -0
  55. package/plugins/next-task/lib/state/tasks-registry.schema.json +85 -0
  56. package/plugins/next-task/lib/state/workflow-state.js +635 -0
  57. package/plugins/next-task/lib/state/workflow-state.schema.json +282 -0
  58. package/plugins/next-task/lib/state/worktree-status.schema.json +219 -0
  59. package/plugins/next-task/lib/utils/context-optimizer.js +222 -0
  60. package/plugins/project-review/.claude-plugin/plugin.json +20 -0
  61. package/plugins/project-review/commands/project-review-agents.md +286 -0
  62. package/plugins/project-review/commands/project-review-github.md +142 -0
  63. package/plugins/project-review/commands/project-review.md +273 -0
  64. package/plugins/project-review/lib/patterns/review-patterns.js +511 -0
  65. package/plugins/project-review/lib/patterns/slop-patterns.js +641 -0
  66. package/plugins/project-review/lib/platform/detect-platform.js +514 -0
  67. package/plugins/project-review/lib/platform/verify-tools.js +235 -0
  68. package/plugins/project-review/lib/state/workflow-state.js +635 -0
  69. package/plugins/project-review/lib/state/workflow-state.schema.json +282 -0
  70. package/plugins/project-review/lib/utils/context-optimizer.js +222 -0
  71. package/plugins/reality-check/.claude-plugin/plugin.json +23 -0
  72. package/plugins/reality-check/README.md +156 -0
  73. package/plugins/reality-check/agents/code-explorer.md +353 -0
  74. package/plugins/reality-check/agents/doc-analyzer.md +337 -0
  75. package/plugins/reality-check/agents/issue-scanner.md +231 -0
  76. package/plugins/reality-check/agents/plan-synthesizer.md +479 -0
  77. package/plugins/reality-check/commands/scan.md +242 -0
  78. package/plugins/reality-check/commands/set.md +203 -0
  79. package/plugins/reality-check/lib/state/reality-check-state.js +509 -0
  80. package/plugins/reality-check/skills/reality-analysis/SKILL.md +317 -0
  81. package/plugins/ship/.claude-plugin/plugin.json +21 -0
  82. package/plugins/ship/commands/ship-ci-review-loop.md +443 -0
  83. package/plugins/ship/commands/ship-deployment.md +330 -0
  84. package/plugins/ship/commands/ship-error-handling.md +254 -0
  85. package/plugins/ship/commands/ship.md +370 -0
  86. package/plugins/ship/lib/patterns/review-patterns.js +511 -0
  87. package/plugins/ship/lib/patterns/slop-patterns.js +641 -0
  88. package/plugins/ship/lib/platform/detect-platform.js +514 -0
  89. package/plugins/ship/lib/platform/verify-tools.js +235 -0
  90. package/plugins/ship/lib/state/workflow-state.js +635 -0
  91. package/plugins/ship/lib/state/workflow-state.schema.json +282 -0
  92. package/plugins/ship/lib/utils/context-optimizer.js +222 -0
  93. package/scripts/install/claude.sh +50 -0
  94. package/scripts/install/codex.sh +181 -0
  95. package/scripts/install/opencode.sh +211 -0
@@ -0,0 +1,282 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "workflow-state.schema.json",
4
+ "title": "Workflow State",
5
+ "description": "Schema for next-task workflow orchestration state",
6
+ "type": "object",
7
+ "required": ["version", "workflow"],
8
+ "properties": {
9
+ "version": {
10
+ "type": "string",
11
+ "pattern": "^\\d+\\.\\d+\\.\\d+$",
12
+ "description": "Schema version for migrations"
13
+ },
14
+ "workflow": {
15
+ "type": "object",
16
+ "required": ["id", "type", "status", "startedAt"],
17
+ "properties": {
18
+ "id": {
19
+ "type": "string",
20
+ "pattern": "^workflow-\\d{8}-\\d{6}-[a-z0-9]+$",
21
+ "description": "Unique workflow identifier"
22
+ },
23
+ "type": {
24
+ "type": "string",
25
+ "enum": ["next-task", "ship", "manual"],
26
+ "description": "Workflow type"
27
+ },
28
+ "status": {
29
+ "type": "string",
30
+ "enum": ["pending", "in_progress", "paused", "completed", "failed", "aborted"],
31
+ "description": "Current workflow status"
32
+ },
33
+ "startedAt": {
34
+ "type": "string",
35
+ "format": "date-time",
36
+ "description": "Workflow start timestamp"
37
+ },
38
+ "lastUpdatedAt": {
39
+ "type": "string",
40
+ "format": "date-time",
41
+ "description": "Last state update timestamp"
42
+ },
43
+ "completedAt": {
44
+ "type": ["string", "null"],
45
+ "format": "date-time",
46
+ "description": "Workflow completion timestamp"
47
+ }
48
+ }
49
+ },
50
+ "policy": {
51
+ "type": "object",
52
+ "properties": {
53
+ "taskSource": {
54
+ "type": "string",
55
+ "enum": ["defaults", "gh-issues", "linear", "tasks-md", "custom"],
56
+ "default": "gh-issues"
57
+ },
58
+ "priorityFilter": {
59
+ "type": "string",
60
+ "enum": ["continue", "bugs", "security", "features", "all"],
61
+ "default": "continue"
62
+ },
63
+ "platform": {
64
+ "type": "string",
65
+ "enum": ["detected", "manual"],
66
+ "default": "detected"
67
+ },
68
+ "stoppingPoint": {
69
+ "type": "string",
70
+ "enum": ["implemented", "pr-created", "all-green", "merged", "deployed", "production"],
71
+ "default": "merged"
72
+ },
73
+ "mergeStrategy": {
74
+ "type": "string",
75
+ "enum": ["squash", "merge", "rebase"],
76
+ "default": "squash"
77
+ },
78
+ "autoFix": {
79
+ "type": "boolean",
80
+ "default": true
81
+ },
82
+ "maxReviewIterations": {
83
+ "type": "integer",
84
+ "minimum": 1,
85
+ "maximum": 10,
86
+ "default": 3
87
+ }
88
+ }
89
+ },
90
+ "task": {
91
+ "type": ["object", "null"],
92
+ "properties": {
93
+ "id": {
94
+ "type": "string",
95
+ "description": "Task identifier (issue number, Linear ID, etc.)"
96
+ },
97
+ "source": {
98
+ "type": "string",
99
+ "enum": ["github", "linear", "tasks-md", "manual"]
100
+ },
101
+ "title": {
102
+ "type": "string"
103
+ },
104
+ "description": {
105
+ "type": "string"
106
+ },
107
+ "labels": {
108
+ "type": "array",
109
+ "items": { "type": "string" }
110
+ },
111
+ "url": {
112
+ "type": ["string", "null"],
113
+ "format": "uri"
114
+ },
115
+ "linearId": {
116
+ "type": ["string", "null"]
117
+ }
118
+ }
119
+ },
120
+ "git": {
121
+ "type": ["object", "null"],
122
+ "properties": {
123
+ "originalBranch": {
124
+ "type": "string",
125
+ "description": "Branch before workflow started"
126
+ },
127
+ "workingBranch": {
128
+ "type": "string",
129
+ "description": "Feature branch for this task"
130
+ },
131
+ "worktreePath": {
132
+ "type": ["string", "null"],
133
+ "description": "Path to worktree if using isolated development"
134
+ },
135
+ "baseSha": {
136
+ "type": "string",
137
+ "description": "Base commit SHA when branched"
138
+ },
139
+ "currentSha": {
140
+ "type": "string",
141
+ "description": "Current HEAD commit SHA"
142
+ },
143
+ "isWorktree": {
144
+ "type": "boolean",
145
+ "default": false
146
+ }
147
+ }
148
+ },
149
+ "pr": {
150
+ "type": ["object", "null"],
151
+ "properties": {
152
+ "number": {
153
+ "type": "integer"
154
+ },
155
+ "url": {
156
+ "type": "string",
157
+ "format": "uri"
158
+ },
159
+ "state": {
160
+ "type": "string",
161
+ "enum": ["draft", "open", "merged", "closed"]
162
+ },
163
+ "ciStatus": {
164
+ "type": "string",
165
+ "enum": ["pending", "running", "success", "failure", "unknown"]
166
+ },
167
+ "reviewState": {
168
+ "type": "string",
169
+ "enum": ["pending", "changes_requested", "approved", "dismissed"]
170
+ },
171
+ "lastCheckedAt": {
172
+ "type": "string",
173
+ "format": "date-time"
174
+ },
175
+ "checksWaitingCount": {
176
+ "type": "integer",
177
+ "default": 0
178
+ }
179
+ }
180
+ },
181
+ "phases": {
182
+ "type": "object",
183
+ "properties": {
184
+ "current": {
185
+ "type": "string",
186
+ "enum": [
187
+ "policy-selection",
188
+ "task-discovery",
189
+ "worktree-setup",
190
+ "exploration",
191
+ "planning",
192
+ "user-approval",
193
+ "implementation",
194
+ "review-loop",
195
+ "delivery-approval",
196
+ "ship-prep",
197
+ "create-pr",
198
+ "ci-wait",
199
+ "comment-fix",
200
+ "merge",
201
+ "production-ci",
202
+ "deploy",
203
+ "production-release",
204
+ "complete"
205
+ ]
206
+ },
207
+ "currentIteration": {
208
+ "type": "integer",
209
+ "minimum": 0,
210
+ "default": 0
211
+ },
212
+ "history": {
213
+ "type": "array",
214
+ "items": {
215
+ "type": "object",
216
+ "required": ["phase", "status", "startedAt"],
217
+ "properties": {
218
+ "phase": { "type": "string" },
219
+ "status": {
220
+ "type": "string",
221
+ "enum": ["pending", "in_progress", "completed", "failed", "skipped"]
222
+ },
223
+ "startedAt": { "type": "string", "format": "date-time" },
224
+ "completedAt": { "type": ["string", "null"], "format": "date-time" },
225
+ "duration": { "type": "integer", "description": "Duration in milliseconds" },
226
+ "iteration": { "type": "integer" },
227
+ "result": { "type": "object" }
228
+ }
229
+ }
230
+ }
231
+ }
232
+ },
233
+ "agents": {
234
+ "type": ["object", "null"],
235
+ "properties": {
236
+ "lastRun": {
237
+ "type": "object",
238
+ "additionalProperties": {
239
+ "type": "object",
240
+ "properties": {
241
+ "status": { "type": "string", "enum": ["pending", "running", "completed", "failed"] },
242
+ "issues": { "type": "integer" },
243
+ "critical": { "type": "integer" },
244
+ "high": { "type": "integer" }
245
+ }
246
+ }
247
+ },
248
+ "totalIterations": { "type": "integer", "default": 0 },
249
+ "totalIssuesFound": { "type": "integer", "default": 0 },
250
+ "totalIssuesFixed": { "type": "integer", "default": 0 }
251
+ }
252
+ },
253
+ "checkpoints": {
254
+ "type": "object",
255
+ "properties": {
256
+ "canResume": {
257
+ "type": "boolean",
258
+ "default": true
259
+ },
260
+ "resumeFrom": {
261
+ "type": ["string", "null"],
262
+ "description": "Phase to resume from"
263
+ },
264
+ "resumeContext": {
265
+ "type": ["object", "null"],
266
+ "description": "Additional context needed for resume"
267
+ }
268
+ }
269
+ },
270
+ "metrics": {
271
+ "type": ["object", "null"],
272
+ "properties": {
273
+ "totalDuration": { "type": "integer", "description": "Total duration in milliseconds" },
274
+ "tokensUsed": { "type": "integer" },
275
+ "toolCalls": { "type": "integer" },
276
+ "filesModified": { "type": "integer" },
277
+ "linesAdded": { "type": "integer" },
278
+ "linesRemoved": { "type": "integer" }
279
+ }
280
+ }
281
+ }
282
+ }
@@ -0,0 +1,222 @@
1
+ /**
2
+ * Context Optimizer Utilities
3
+ * Provides optimized git commands to minimize token usage while gathering context
4
+ *
5
+ * Target: Keep command execution under 50k tokens
6
+ *
7
+ * @author Avi Fenesh
8
+ * @license MIT
9
+ */
10
+
11
+ /**
12
+ * Escape shell special characters for safe command interpolation
13
+ * @param {string} str - String to escape
14
+ * @returns {string} Escaped string safe for shell use
15
+ */
16
+ function escapeShell(str) {
17
+ if (typeof str !== 'string') return '';
18
+ // Escape characters that have special meaning in shell
19
+ return str.replace(/["$`\\!]/g, '\\$&');
20
+ }
21
+
22
+ /**
23
+ * Escape single quotes for shell (replace ' with '\''
24
+ * @param {string} str - String to escape
25
+ * @returns {string} Escaped string safe for single-quoted shell use
26
+ */
27
+ function escapeSingleQuotes(str) {
28
+ if (typeof str !== 'string') return '';
29
+ return str.replace(/'/g, "'\\''");
30
+ }
31
+
32
+ /**
33
+ * Validate and sanitize file extension
34
+ * @param {string} ext - Extension to validate
35
+ * @returns {string} Safe extension (alphanumeric only)
36
+ */
37
+ function sanitizeExtension(ext) {
38
+ if (typeof ext !== 'string') return 'ts';
39
+ const safe = ext.replace(/[^a-zA-Z0-9]/g, '');
40
+ return safe || 'ts';
41
+ }
42
+
43
+ /**
44
+ * Git command optimization utilities for context efficiency
45
+ */
46
+ const contextOptimizer = {
47
+ /**
48
+ * Get recent commits with minimal formatting
49
+ * @param {number} limit - Number of commits to retrieve (default: 10)
50
+ * @returns {string} Git command
51
+ */
52
+ recentCommits: (limit = 10) =>
53
+ `git log --oneline --no-decorate -${limit} --format="%h %s"`,
54
+
55
+ /**
56
+ * Get compact git status (untracked files excluded)
57
+ * @returns {string} Git command
58
+ */
59
+ compactStatus: () =>
60
+ 'git status -uno --porcelain',
61
+
62
+ /**
63
+ * Get file changes between refs
64
+ * @param {string} ref - Reference to compare from (default: 'HEAD~5')
65
+ * @returns {string} Git command
66
+ */
67
+ fileChanges: (ref = 'HEAD~5') =>
68
+ `git diff ${ref}..HEAD --name-status`,
69
+
70
+ /**
71
+ * Get current branch name
72
+ * @returns {string} Git command
73
+ */
74
+ currentBranch: () =>
75
+ 'git branch --show-current',
76
+
77
+ /**
78
+ * Get remote information (limited to 2 lines)
79
+ * @returns {string} Git command
80
+ */
81
+ remoteInfo: () =>
82
+ 'git remote -v | head -2',
83
+
84
+ /**
85
+ * Check if there are stashed changes
86
+ * @returns {string} Git command
87
+ */
88
+ hasStashes: () =>
89
+ 'git stash list --oneline | wc -l',
90
+
91
+ /**
92
+ * Get worktree list in porcelain format
93
+ * @returns {string} Git command
94
+ */
95
+ worktreeList: () =>
96
+ 'git worktree list --porcelain',
97
+
98
+ /**
99
+ * Get the age of a specific line (for TODO checking)
100
+ * @param {string} file - File path
101
+ * @param {number} line - Line number
102
+ * @returns {string} Git command
103
+ */
104
+ lineAge: (file, line) => {
105
+ // Validate line is a positive integer
106
+ const lineNum = parseInt(line, 10);
107
+ if (!Number.isInteger(lineNum) || lineNum < 1) {
108
+ throw new Error('Line must be a positive integer');
109
+ }
110
+ // Escape file path for safe shell usage
111
+ const safeFile = escapeShell(file);
112
+ return `git blame -L ${lineNum},${lineNum} "${safeFile}" --porcelain | grep '^committer-time' | cut -d' ' -f2`;
113
+ },
114
+
115
+ /**
116
+ * Find source files by extension
117
+ * @param {string} extension - File extension (e.g., 'ts', 'py', 'rs')
118
+ * @returns {string} Git command
119
+ */
120
+ findSourceFiles: (extension = 'ts') => {
121
+ const safeExt = sanitizeExtension(extension);
122
+ return `git ls-files | grep '\\.${safeExt}$'`;
123
+ },
124
+
125
+ /**
126
+ * Get diff stat summary
127
+ * @param {string} ref - Reference to compare from (default: 'HEAD~5')
128
+ * @returns {string} Git command
129
+ */
130
+ diffStat: (ref = 'HEAD~5') =>
131
+ `git diff ${ref}..HEAD --stat | head -20`,
132
+
133
+ /**
134
+ * Get contributors list (limited to top 10)
135
+ * @returns {string} Git command
136
+ */
137
+ contributors: () =>
138
+ 'git shortlog -sn --no-merges | head -10',
139
+
140
+ /**
141
+ * Get last commit message
142
+ * @returns {string} Git command
143
+ */
144
+ lastCommitMessage: () =>
145
+ 'git log -1 --format=%s',
146
+
147
+ /**
148
+ * Get files changed in last commit
149
+ * @returns {string} Git command
150
+ */
151
+ lastCommitFiles: () =>
152
+ 'git diff-tree --no-commit-id --name-only -r HEAD',
153
+
154
+ /**
155
+ * Get branch list (local only, limited)
156
+ * @param {number} limit - Number of branches (default: 10)
157
+ * @returns {string} Git command
158
+ */
159
+ branches: (limit = 10) =>
160
+ `git branch --format='%(refname:short)' | head -${limit}`,
161
+
162
+ /**
163
+ * Get tags list (limited)
164
+ * @param {number} limit - Number of tags (default: 10)
165
+ * @returns {string} Git command
166
+ */
167
+ tags: (limit = 10) =>
168
+ `git tag --sort=-creatordate | head -${limit}`,
169
+
170
+ /**
171
+ * Get count of commits on current branch since branching from main
172
+ * @param {string} mainBranch - Main branch name (default: 'main')
173
+ * @returns {string} Git command
174
+ */
175
+ commitsSinceBranch: (mainBranch = 'main') =>
176
+ `git rev-list --count ${mainBranch}..HEAD`,
177
+
178
+ /**
179
+ * Check if working directory is clean
180
+ * @returns {string} Git command
181
+ */
182
+ isClean: () =>
183
+ 'git status --porcelain | wc -l',
184
+
185
+ /**
186
+ * Get merge base with main branch
187
+ * @param {string} mainBranch - Main branch name (default: 'main')
188
+ * @returns {string} Git command
189
+ */
190
+ mergeBase: (mainBranch = 'main') =>
191
+ `git merge-base ${mainBranch} HEAD`,
192
+
193
+ /**
194
+ * Get files modified in current branch (since branching)
195
+ * @param {string} mainBranch - Main branch name (default: 'main')
196
+ * @returns {string} Git command
197
+ */
198
+ branchChangedFiles: (mainBranch = 'main') =>
199
+ `git diff ${mainBranch}...HEAD --name-only`,
200
+
201
+ /**
202
+ * Get commit count by author
203
+ * @param {string} author - Author name or email
204
+ * @returns {string} Git command
205
+ */
206
+ authorCommitCount: (author) => {
207
+ const safeAuthor = escapeShell(author);
208
+ return `git log --author="${safeAuthor}" --oneline | wc -l`;
209
+ },
210
+
211
+ /**
212
+ * Check if file exists in repository
213
+ * @param {string} file - File path
214
+ * @returns {string} Git command
215
+ */
216
+ fileExists: (file) => {
217
+ const safeFile = escapeSingleQuotes(file);
218
+ return `git ls-files | grep -q '${safeFile}' && echo 'true' || echo 'false'`;
219
+ }
220
+ };
221
+
222
+ module.exports = contextOptimizer;
@@ -0,0 +1,23 @@
1
+ {
2
+ "name": "reality-check",
3
+ "version": "1.0.0",
4
+ "description": "Deep repository analysis to realign project plans with actual code reality - discovers drift, gaps, and produces prioritized reconstruction plans",
5
+ "author": {
6
+ "name": "Avi Fenesh",
7
+ "email": "[email protected]",
8
+ "url": "https://github.com/avifenesh"
9
+ },
10
+ "homepage": "https://github.com/avifenesh/awesome-slash#reality-check",
11
+ "repository": "https://github.com/avifenesh/awesome-slash",
12
+ "license": "MIT",
13
+ "keywords": [
14
+ "planning",
15
+ "reality-check",
16
+ "drift-detection",
17
+ "prioritization",
18
+ "exploration",
19
+ "documentation",
20
+ "github-issues",
21
+ "project-management"
22
+ ]
23
+ }
@@ -0,0 +1,156 @@
1
+ # reality-check
2
+
3
+ Deep repository analysis to realign project plans with actual code reality.
4
+
5
+ ## Overview
6
+
7
+ The reality-check plugin performs comprehensive analysis of your codebase to identify drift between documented plans and actual implementation. It scans GitHub issues, documentation files, and code structure to produce a prioritized reconstruction plan.
8
+
9
+ ## Features
10
+
11
+ - **Multi-source scanning**: Analyzes GitHub issues, documentation, and codebase in parallel
12
+ - **Drift detection**: Identifies where plans have diverged from reality
13
+ - **Gap analysis**: Finds missing tests, documentation, and implementation
14
+ - **Priority ranking**: Uses configurable weights to prioritize work items
15
+ - **Interactive setup**: First-run wizard with checkbox configuration
16
+ - **Configurable settings**: Persistent settings in `.claude/reality-check.local.md`
17
+
18
+ ## Commands
19
+
20
+ ### `/reality-check:scan`
21
+
22
+ Run a comprehensive reality check scan.
23
+
24
+ ```
25
+ /reality-check:scan
26
+ ```
27
+
28
+ On first run, presents interactive checkboxes to configure:
29
+ - Data sources (GitHub issues, docs, Linear, code exploration)
30
+ - Scan depth (quick, medium, thorough)
31
+ - Output format (file, display, both)
32
+
33
+ ### `/reality-check:set`
34
+
35
+ Configure or update settings interactively.
36
+
37
+ ```
38
+ /reality-check:set
39
+ ```
40
+
41
+ ## Agents
42
+
43
+ | Agent | Purpose | Model |
44
+ |-------|---------|-------|
45
+ | `issue-scanner` | Scans GitHub issues, PRs, milestones | sonnet |
46
+ | `doc-analyzer` | Analyzes documentation files | sonnet |
47
+ | `code-explorer` | Deep codebase structure analysis | sonnet |
48
+ | `plan-synthesizer` | Combines findings, creates plan | opus |
49
+
50
+ ## Workflow
51
+
52
+ ```
53
+ /reality-check:scan
54
+
55
+
56
+ ┌───────────────────┐
57
+ │ Settings Check │ ← First-run setup if needed
58
+ └───────────────────┘
59
+
60
+ ├──────────────────┬──────────────────┐
61
+ ▼ ▼ ▼
62
+ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐
63
+ │ Issue Scanner│ │ Doc Analyzer │ │ Code Explorer│
64
+ └──────────────┘ └──────────────┘ └──────────────┘
65
+ │ │ │
66
+ └──────────────────┴──────────────────┘
67
+
68
+
69
+ ┌──────────────────┐
70
+ │ Plan Synthesizer │
71
+ └──────────────────┘
72
+
73
+
74
+ Prioritized Reality Report
75
+ ```
76
+
77
+ ## Configuration
78
+
79
+ Settings are stored in `.claude/reality-check.local.md`:
80
+
81
+ ```yaml
82
+ ---
83
+ sources:
84
+ github_issues: true
85
+ linear: false
86
+ docs_paths: ["docs/", "README.md", "CLAUDE.md"]
87
+ code_exploration: true
88
+ scan_depth: thorough
89
+ output:
90
+ write_to_file: true
91
+ file_path: "reality-check-report.md"
92
+ display_summary: true
93
+ priority_weights:
94
+ security: 10
95
+ bugs: 8
96
+ features: 5
97
+ docs: 3
98
+ exclusions:
99
+ paths: ["node_modules/", "dist/"]
100
+ labels: ["wontfix", "duplicate"]
101
+ ---
102
+ ```
103
+
104
+ ## Output
105
+
106
+ The scan produces:
107
+
108
+ 1. **Drift Analysis**: Where plans diverge from reality
109
+ 2. **Gap Analysis**: Missing tests, docs, implementation
110
+ 3. **Cross-Reference**: Documented vs. implemented features
111
+ 4. **Reconstruction Plan**: Prioritized action items
112
+
113
+ ### Example Output
114
+
115
+ ```markdown
116
+ ## Reality Check Complete
117
+
118
+ ### Summary
119
+ - Drift Areas: 4
120
+ - Gaps Found: 7
121
+ - Critical Items: 2
122
+ - Aligned Features: 8
123
+
124
+ ### Immediate Actions (This Week)
125
+ 1. Address 3 open security vulnerabilities
126
+ 2. Fix stale milestone "v2.0" (45 days overdue)
127
+
128
+ ### Short-Term (This Month)
129
+ 1. Add test coverage (0% currently)
130
+ 2. Update outdated documentation
131
+ 3. Close 8 stale priority issues
132
+ ```
133
+
134
+ ## Skills
135
+
136
+ ### reality-analysis
137
+
138
+ Provides knowledge for:
139
+ - Drift detection patterns
140
+ - Prioritization framework
141
+ - Cross-reference matching
142
+ - Output templates
143
+
144
+ ## Requirements
145
+
146
+ - GitHub CLI (`gh`) for issue scanning
147
+ - Git repository
148
+ - Node.js for state management
149
+
150
+ ## Installation
151
+
152
+ The plugin is part of the awesome-slash marketplace. Enable it in your Claude Code settings.
153
+
154
+ ## License
155
+
156
+ MIT