@hivehub/rulebook 5.2.0 → 5.3.0

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 (157) hide show
  1. package/.claude/commands/analysis.md +35 -0
  2. package/.claude/commands/rulebook-task-apply.md +7 -25
  3. package/.claude/commands/rulebook-task-archive.md +10 -19
  4. package/.claude/commands/rulebook-task-create.md +1 -1
  5. package/README.md +354 -965
  6. package/dist/cli/commands/analysis.d.ts +8 -0
  7. package/dist/cli/commands/analysis.d.ts.map +1 -0
  8. package/dist/cli/commands/analysis.js +78 -0
  9. package/dist/cli/commands/analysis.js.map +1 -0
  10. package/dist/cli/commands/context-intelligence.d.ts +33 -0
  11. package/dist/cli/commands/context-intelligence.d.ts.map +1 -0
  12. package/dist/cli/commands/context-intelligence.js +181 -0
  13. package/dist/cli/commands/context-intelligence.js.map +1 -0
  14. package/dist/cli/commands/index.d.ts +19 -0
  15. package/dist/cli/commands/index.d.ts.map +1 -0
  16. package/dist/cli/commands/index.js +19 -0
  17. package/dist/cli/commands/index.js.map +1 -0
  18. package/dist/cli/commands/init.d.ts +15 -0
  19. package/dist/cli/commands/init.d.ts.map +1 -0
  20. package/dist/cli/commands/init.js +608 -0
  21. package/dist/cli/commands/init.js.map +1 -0
  22. package/dist/cli/commands/mcp.d.ts +10 -0
  23. package/dist/cli/commands/mcp.d.ts.map +1 -0
  24. package/dist/cli/commands/mcp.js +128 -0
  25. package/dist/cli/commands/mcp.js.map +1 -0
  26. package/dist/cli/commands/memory.d.ts +24 -0
  27. package/dist/cli/commands/memory.d.ts.map +1 -0
  28. package/dist/cli/commands/memory.js +265 -0
  29. package/dist/cli/commands/memory.js.map +1 -0
  30. package/dist/cli/commands/misc.d.ts +33 -0
  31. package/dist/cli/commands/misc.d.ts.map +1 -0
  32. package/dist/cli/commands/misc.js +576 -0
  33. package/dist/cli/commands/misc.js.map +1 -0
  34. package/dist/cli/commands/plans.d.ts +15 -0
  35. package/dist/cli/commands/plans.d.ts.map +1 -0
  36. package/dist/cli/commands/plans.js +266 -0
  37. package/dist/cli/commands/plans.js.map +1 -0
  38. package/dist/cli/commands/ralph.d.ts +45 -0
  39. package/dist/cli/commands/ralph.d.ts.map +1 -0
  40. package/dist/cli/commands/ralph.js +694 -0
  41. package/dist/cli/commands/ralph.js.map +1 -0
  42. package/dist/cli/commands/skills.d.ts +9 -0
  43. package/dist/cli/commands/skills.d.ts.map +1 -0
  44. package/dist/cli/commands/skills.js +249 -0
  45. package/dist/cli/commands/skills.js.map +1 -0
  46. package/dist/cli/commands/task.d.ts +16 -0
  47. package/dist/cli/commands/task.d.ts.map +1 -0
  48. package/dist/cli/commands/task.js +256 -0
  49. package/dist/cli/commands/task.js.map +1 -0
  50. package/dist/cli/commands/update.d.ts +14 -0
  51. package/dist/cli/commands/update.d.ts.map +1 -0
  52. package/dist/cli/commands/update.js +636 -0
  53. package/dist/cli/commands/update.js.map +1 -0
  54. package/dist/cli/commands/workspace.d.ts +6 -0
  55. package/dist/cli/commands/workspace.d.ts.map +1 -0
  56. package/dist/cli/commands/workspace.js +141 -0
  57. package/dist/cli/commands/workspace.js.map +1 -0
  58. package/dist/core/agent-template-engine.js +28 -28
  59. package/dist/core/analysis-manager.d.ts +56 -0
  60. package/dist/core/analysis-manager.d.ts.map +1 -0
  61. package/dist/core/analysis-manager.js +218 -0
  62. package/dist/core/analysis-manager.js.map +1 -0
  63. package/dist/core/claude-md-generator.d.ts +52 -0
  64. package/dist/core/claude-md-generator.d.ts.map +1 -0
  65. package/dist/core/claude-md-generator.js +104 -0
  66. package/dist/core/claude-md-generator.js.map +1 -0
  67. package/dist/core/claude-settings-manager.d.ts +37 -0
  68. package/dist/core/claude-settings-manager.d.ts.map +1 -0
  69. package/dist/core/claude-settings-manager.js +168 -0
  70. package/dist/core/claude-settings-manager.js.map +1 -0
  71. package/dist/core/compact-context-manager.d.ts +34 -0
  72. package/dist/core/compact-context-manager.d.ts.map +1 -0
  73. package/dist/core/compact-context-manager.js +60 -0
  74. package/dist/core/compact-context-manager.js.map +1 -0
  75. package/dist/core/doctor.d.ts +19 -0
  76. package/dist/core/doctor.d.ts.map +1 -0
  77. package/dist/core/doctor.js +163 -0
  78. package/dist/core/doctor.js.map +1 -0
  79. package/dist/core/generator.js +28 -28
  80. package/dist/core/mcp-reference-generator.d.ts +13 -0
  81. package/dist/core/mcp-reference-generator.d.ts.map +1 -0
  82. package/dist/core/mcp-reference-generator.js +66 -0
  83. package/dist/core/mcp-reference-generator.js.map +1 -0
  84. package/dist/core/merger.d.ts +35 -0
  85. package/dist/core/merger.d.ts.map +1 -1
  86. package/dist/core/merger.js +120 -0
  87. package/dist/core/merger.js.map +1 -1
  88. package/dist/core/prd-generator.d.ts.map +1 -1
  89. package/dist/core/prd-generator.js +7 -1
  90. package/dist/core/prd-generator.js.map +1 -1
  91. package/dist/core/ralph-manager.d.ts.map +1 -1
  92. package/dist/core/ralph-manager.js +17 -0
  93. package/dist/core/ralph-manager.js.map +1 -1
  94. package/dist/core/rules-generator.d.ts +73 -0
  95. package/dist/core/rules-generator.d.ts.map +1 -0
  96. package/dist/core/rules-generator.js +201 -0
  97. package/dist/core/rules-generator.js.map +1 -0
  98. package/dist/core/state-writer.d.ts +35 -0
  99. package/dist/core/state-writer.d.ts.map +1 -0
  100. package/dist/core/state-writer.js +81 -0
  101. package/dist/core/state-writer.js.map +1 -0
  102. package/dist/core/task-manager.d.ts +35 -0
  103. package/dist/core/task-manager.d.ts.map +1 -1
  104. package/dist/core/task-manager.js +137 -38
  105. package/dist/core/task-manager.js.map +1 -1
  106. package/dist/core/telemetry.d.ts +29 -0
  107. package/dist/core/telemetry.d.ts.map +1 -0
  108. package/dist/core/telemetry.js +57 -0
  109. package/dist/core/telemetry.js.map +1 -0
  110. package/dist/core/workflow-generator.d.ts.map +1 -1
  111. package/dist/core/workflow-generator.js +2 -177
  112. package/dist/core/workflow-generator.js.map +1 -1
  113. package/dist/index.js +28 -1
  114. package/dist/index.js.map +1 -1
  115. package/dist/mcp/rulebook-server.d.ts.map +1 -1
  116. package/dist/mcp/rulebook-server.js +190 -7
  117. package/dist/mcp/rulebook-server.js.map +1 -1
  118. package/dist/memory/memory-store.js +91 -91
  119. package/dist/types.d.ts +11 -0
  120. package/dist/types.d.ts.map +1 -1
  121. package/dist/utils/gitignore.d.ts +10 -0
  122. package/dist/utils/gitignore.d.ts.map +1 -0
  123. package/dist/utils/gitignore.js +38 -0
  124. package/dist/utils/gitignore.js.map +1 -0
  125. package/package.json +1 -1
  126. package/templates/compact-context/_default.md +23 -0
  127. package/templates/compact-context/cpp.md +26 -0
  128. package/templates/compact-context/go.md +26 -0
  129. package/templates/compact-context/python.md +26 -0
  130. package/templates/compact-context/rust.md +28 -0
  131. package/templates/compact-context/typescript.md +29 -0
  132. package/templates/core/CLAUDE_MD_v2.md +71 -0
  133. package/templates/hooks/check-context-and-handoff.ps1 +50 -0
  134. package/templates/hooks/check-context-and-handoff.sh +69 -0
  135. package/templates/hooks/enforce-mcp-for-tasks.sh +31 -0
  136. package/templates/hooks/enforce-no-deferred.sh +21 -0
  137. package/templates/hooks/enforce-no-shortcuts.sh +31 -0
  138. package/templates/hooks/enforce-team-for-background-agents.ps1 +63 -0
  139. package/templates/hooks/enforce-team-for-background-agents.sh +55 -0
  140. package/templates/hooks/on-compact-reinject.sh +34 -0
  141. package/templates/hooks/resume-from-handoff.ps1 +33 -0
  142. package/templates/hooks/resume-from-handoff.sh +55 -0
  143. package/templates/rules/consult-analysis-before-implementing.md +23 -0
  144. package/templates/rules/cpp.md +46 -0
  145. package/templates/rules/csharp.md +44 -0
  146. package/templates/rules/diagnostic-first.md +39 -0
  147. package/templates/rules/fail-twice-escalate.md +46 -0
  148. package/templates/rules/go.md +40 -0
  149. package/templates/rules/java.md +43 -0
  150. package/templates/rules/javascript.md +39 -0
  151. package/templates/rules/multi-agent-teams.md +75 -0
  152. package/templates/rules/python.md +43 -0
  153. package/templates/rules/respect-handoff-trigger.md +41 -0
  154. package/templates/rules/rust.md +40 -0
  155. package/templates/rules/typescript.md +40 -0
  156. package/templates/skills/dev/analysis/SKILL.md +19 -0
  157. package/templates/skills/dev/handoff/SKILL.md +27 -0
@@ -0,0 +1,576 @@
1
+ import chalk from 'chalk';
2
+ import ora from 'ora';
3
+ import { detectProject } from '../../core/detector.js';
4
+ import { generateWorkflows } from '../../core/workflow-generator.js';
5
+ import { existsSync } from 'fs';
6
+ import path from 'path';
7
+ import { readFile } from '../../utils/file-system.js';
8
+ export async function validateCommand() {
9
+ try {
10
+ const cwd = process.cwd();
11
+ console.log(chalk.bold.blue('\n🔍 Rulebook Project Validator\n'));
12
+ const spinner = ora('Validating project structure...').start();
13
+ const { validateProject } = await import('../../core/validator.js');
14
+ const result = await validateProject(cwd);
15
+ spinner.stop();
16
+ if (result.valid) {
17
+ console.log(chalk.green(`\n✅ Validation passed! Score: ${result.score}/100\n`));
18
+ }
19
+ else {
20
+ console.log(chalk.red(`\n❌ Validation failed. Score: ${result.score}/100\n`));
21
+ }
22
+ if (result.errors.length > 0) {
23
+ console.log(chalk.red.bold('Errors:'));
24
+ for (const error of result.errors) {
25
+ console.log(chalk.red(` ❌ ${error.category}: ${error.message}`));
26
+ if (error.file) {
27
+ console.log(chalk.gray(` File: ${error.file}`));
28
+ }
29
+ }
30
+ console.log('');
31
+ }
32
+ if (result.warnings.length > 0) {
33
+ console.log(chalk.yellow.bold('Warnings:'));
34
+ for (const warning of result.warnings) {
35
+ console.log(chalk.yellow(` ⚠️ ${warning.category}: ${warning.message}`));
36
+ if (warning.file) {
37
+ console.log(chalk.gray(` File: ${warning.file}`));
38
+ }
39
+ }
40
+ console.log('');
41
+ }
42
+ if (result.valid && result.warnings.length === 0) {
43
+ console.log(chalk.green('🎉 Perfect! Your project follows all rulebook standards.\n'));
44
+ }
45
+ else if (result.valid) {
46
+ console.log(chalk.yellow(`✅ Project is valid but has ${result.warnings.length} warnings to address.\n`));
47
+ }
48
+ else {
49
+ console.log(chalk.red(`❌ Project has ${result.errors.length} errors that must be fixed.\n`));
50
+ console.log(chalk.gray('Run "rulebook init" to set up missing standards.\n'));
51
+ }
52
+ process.exit(result.valid ? 0 : 1);
53
+ }
54
+ catch (error) {
55
+ console.error(chalk.red('\n❌ Validation error:'), error);
56
+ process.exit(1);
57
+ }
58
+ }
59
+ export async function workflowsCommand() {
60
+ try {
61
+ const cwd = process.cwd();
62
+ console.log(chalk.bold.blue('\n📦 Generating GitHub Actions Workflows\n'));
63
+ const spinner = ora('Detecting project languages...').start();
64
+ const detection = await detectProject(cwd);
65
+ spinner.succeed('Detection complete');
66
+ if (detection.languages.length === 0) {
67
+ console.log(chalk.yellow('\n⚠ No languages detected. Cannot generate workflows.'));
68
+ console.log(chalk.gray('Ensure you have project files (Cargo.toml, package.json, etc.)\n'));
69
+ return;
70
+ }
71
+ const config = {
72
+ languages: detection.languages.map((l) => l.language),
73
+ modules: [],
74
+ ides: [],
75
+ projectType: 'application',
76
+ coverageThreshold: 95,
77
+ strictDocs: true,
78
+ generateWorkflows: true,
79
+ };
80
+ const workflowSpinner = ora('Generating workflows...').start();
81
+ const workflows = await generateWorkflows(config, cwd);
82
+ workflowSpinner.succeed(`Generated ${workflows.length} workflow files`);
83
+ console.log(chalk.green('\n✅ Workflows generated:\n'));
84
+ for (const workflow of workflows) {
85
+ console.log(chalk.gray(` - ${path.relative(cwd, workflow)}`));
86
+ }
87
+ console.log(chalk.bold.green('\n✨ Done!\n'));
88
+ }
89
+ catch (error) {
90
+ console.error(chalk.red('\n❌ Error:'), error);
91
+ process.exit(1);
92
+ }
93
+ }
94
+ export async function checkDepsCommand() {
95
+ try {
96
+ const cwd = process.cwd();
97
+ console.log(chalk.bold.blue('\n🔍 Checking Dependencies\n'));
98
+ const spinner = ora('Analyzing dependencies...').start();
99
+ const { checkDependencies } = await import('../../core/dependency-checker.js');
100
+ const result = await checkDependencies(cwd);
101
+ spinner.succeed('Analysis complete');
102
+ console.log('');
103
+ console.log(chalk.bold('Dependency Summary:'));
104
+ console.log(chalk.gray(` Total: ${result.total}`));
105
+ console.log(chalk.green(` Up-to-date: ${result.upToDate}`));
106
+ if (result.outdated.length > 0) {
107
+ console.log(chalk.yellow(` Outdated: ${result.outdated.length}`));
108
+ }
109
+ if (result.vulnerable.length > 0) {
110
+ console.log(chalk.red(` Vulnerable: ${result.vulnerable.length}`));
111
+ }
112
+ if (result.outdated.length > 0) {
113
+ console.log('');
114
+ console.log(chalk.yellow.bold('Outdated Dependencies:'));
115
+ for (const dep of result.outdated.slice(0, 10)) {
116
+ console.log(chalk.yellow(` ↑ ${dep.name}: ${dep.current} → ${dep.latest}`));
117
+ }
118
+ if (result.outdated.length > 10) {
119
+ console.log(chalk.gray(` ... and ${result.outdated.length - 10} more`));
120
+ }
121
+ }
122
+ if (result.vulnerable.length > 0) {
123
+ console.log('');
124
+ console.log(chalk.red.bold('Vulnerable Dependencies:'));
125
+ for (const vuln of result.vulnerable.slice(0, 5)) {
126
+ console.log(chalk.red(` ❌ ${vuln.name} (${vuln.severity}): ${vuln.title}`));
127
+ }
128
+ if (result.vulnerable.length > 5) {
129
+ console.log(chalk.gray(` ... and ${result.vulnerable.length - 5} more`));
130
+ }
131
+ console.log('');
132
+ console.log(chalk.red.bold('⚠️ SECURITY: Update vulnerable dependencies immediately!'));
133
+ }
134
+ console.log('');
135
+ if (result.outdated.length === 0 && result.vulnerable.length === 0) {
136
+ console.log(chalk.green('✅ All dependencies are up-to-date and secure!\n'));
137
+ }
138
+ }
139
+ catch (error) {
140
+ console.error(chalk.red('\n❌ Error checking dependencies:'), error);
141
+ process.exit(1);
142
+ }
143
+ }
144
+ export async function checkCoverageCommand(options) {
145
+ try {
146
+ const cwd = process.cwd();
147
+ const threshold = options.threshold || 95;
148
+ console.log(chalk.bold.blue('\n📊 Checking Test Coverage\n'));
149
+ const spinner = ora('Running coverage analysis...').start();
150
+ const { checkCoverage } = await import('../../core/coverage-checker.js');
151
+ const result = await checkCoverage(cwd, threshold);
152
+ spinner.succeed('Coverage analysis complete');
153
+ console.log('');
154
+ console.log(chalk.bold('Coverage Summary:'));
155
+ console.log(chalk.gray(` Threshold: ${threshold}%`));
156
+ console.log(result.meetsThreshold
157
+ ? chalk.green(` Actual: ${result.percentage.toFixed(2)}% ✅`)
158
+ : chalk.red(` Actual: ${result.percentage.toFixed(2)}% ❌`));
159
+ if (result.details) {
160
+ console.log('');
161
+ console.log(chalk.bold('Details:'));
162
+ if (result.details.lines) {
163
+ console.log(chalk.gray(` Lines: ${result.details.lines.toFixed(2)}%`));
164
+ }
165
+ if (result.details.statements) {
166
+ console.log(chalk.gray(` Statements: ${result.details.statements.toFixed(2)}%`));
167
+ }
168
+ if (result.details.functions) {
169
+ console.log(chalk.gray(` Functions: ${result.details.functions.toFixed(2)}%`));
170
+ }
171
+ if (result.details.branches) {
172
+ console.log(chalk.gray(` Branches: ${result.details.branches.toFixed(2)}%`));
173
+ }
174
+ }
175
+ console.log('');
176
+ if (result.meetsThreshold) {
177
+ console.log(chalk.green(`✅ Coverage meets threshold of ${threshold}%!\n`));
178
+ }
179
+ else {
180
+ console.log(chalk.red(`❌ Coverage ${result.percentage.toFixed(2)}% is below threshold ${threshold}%\n`));
181
+ console.log(chalk.gray('Add more tests to increase coverage.\n'));
182
+ process.exit(1);
183
+ }
184
+ }
185
+ catch (error) {
186
+ console.error(chalk.red('\n❌ Error checking coverage:'), error);
187
+ process.exit(1);
188
+ }
189
+ }
190
+ export async function generateDocsCommand(options) {
191
+ try {
192
+ const cwd = process.cwd();
193
+ console.log(chalk.bold.blue('\n📚 Generate Documentation Structure\n'));
194
+ let config;
195
+ if (options.yes) {
196
+ config = {
197
+ projectName: path.basename(cwd),
198
+ description: 'A modern software project',
199
+ author: 'Your Name',
200
+ email: '',
201
+ license: 'MIT',
202
+ };
203
+ console.log(chalk.blue('Using defaults...\n'));
204
+ }
205
+ else {
206
+ const { promptDocsConfig } = await import('../docs-prompts.js');
207
+ config = await promptDocsConfig();
208
+ }
209
+ const spinner = ora('Generating documentation structure...').start();
210
+ const { generateDocsStructure } = await import('../../core/docs-generator.js');
211
+ const generatedFiles = await generateDocsStructure(config, cwd);
212
+ spinner.succeed(`Generated ${generatedFiles.length} files`);
213
+ console.log('');
214
+ console.log(chalk.green('✅ Files created:\n'));
215
+ for (const file of generatedFiles) {
216
+ console.log(chalk.gray(` - ${path.relative(cwd, file)}`));
217
+ }
218
+ console.log('');
219
+ console.log(chalk.bold.green('✨ Documentation structure ready!\n'));
220
+ console.log(chalk.gray('Next steps:'));
221
+ console.log(chalk.gray(' 1. Review and customize generated files'));
222
+ console.log(chalk.gray(' 2. Add your project-specific content'));
223
+ console.log(chalk.gray(' 3. Update ROADMAP.md with your milestones'));
224
+ console.log(chalk.gray(' 4. Document architecture in ARCHITECTURE.md\n'));
225
+ }
226
+ catch (error) {
227
+ console.error(chalk.red('\n❌ Error generating docs:'), error);
228
+ process.exit(1);
229
+ }
230
+ }
231
+ export async function versionCommand(options) {
232
+ try {
233
+ const cwd = process.cwd();
234
+ console.log(chalk.bold.blue('\n📦 Version Bump\n'));
235
+ const { bumpProjectVersion } = await import('../../core/version-bumper.js');
236
+ const spinner = ora('Bumping version...').start();
237
+ const result = await bumpProjectVersion(cwd, options.type);
238
+ spinner.succeed(`Version bumped: ${result.oldVersion} → ${result.newVersion}`);
239
+ console.log('');
240
+ console.log(chalk.green('✅ Files updated:\n'));
241
+ result.filesUpdated.forEach((file) => {
242
+ console.log(chalk.gray(` - ${file}`));
243
+ });
244
+ console.log('');
245
+ console.log(chalk.yellow('Next steps:'));
246
+ console.log(chalk.gray(' 1. Review changes'));
247
+ console.log(chalk.gray(' 2. Update CHANGELOG.md (or run: rulebook changelog)'));
248
+ console.log(chalk.gray(` 3. Commit: git add . && git commit -m "chore: Release version ${result.newVersion}"`));
249
+ console.log(chalk.gray(` 4. Tag: git tag -a v${result.newVersion} -m "Release v${result.newVersion}"`));
250
+ }
251
+ catch (error) {
252
+ console.error(chalk.red('\n❌ Error:'), error.message);
253
+ process.exit(1);
254
+ }
255
+ }
256
+ export async function changelogCommand(options) {
257
+ try {
258
+ const cwd = process.cwd();
259
+ console.log(chalk.bold.blue('\n📝 Changelog Generation\n'));
260
+ const { generateChangelog, getCurrentVersion } = await import('../../core/changelog-generator.js');
261
+ const version = options.version || (await getCurrentVersion(cwd));
262
+ if (!version) {
263
+ console.error(chalk.red('❌ Could not determine version'));
264
+ console.log(chalk.gray(' Specify version with --version flag'));
265
+ process.exit(1);
266
+ }
267
+ const spinner = ora('Generating changelog from commits...').start();
268
+ const section = await generateChangelog(cwd, version);
269
+ spinner.succeed(`Changelog generated for version ${version}`);
270
+ console.log('');
271
+ console.log(chalk.green('✅ Changelog sections:\n'));
272
+ if (section.breaking.length > 0) {
273
+ console.log(chalk.red(' Breaking Changes: ') + section.breaking.length);
274
+ }
275
+ if (section.added.length > 0) {
276
+ console.log(chalk.green(' Added: ') + section.added.length);
277
+ }
278
+ if (section.changed.length > 0) {
279
+ console.log(chalk.blue(' Changed: ') + section.changed.length);
280
+ }
281
+ if (section.fixed.length > 0) {
282
+ console.log(chalk.yellow(' Fixed: ') + section.fixed.length);
283
+ }
284
+ console.log('');
285
+ console.log(chalk.gray('CHANGELOG.md has been updated'));
286
+ console.log(chalk.gray('Review and edit as needed before committing'));
287
+ }
288
+ catch (error) {
289
+ console.error(chalk.red('\n❌ Error:'), error.message);
290
+ process.exit(1);
291
+ }
292
+ }
293
+ export async function healthCommand() {
294
+ try {
295
+ const cwd = process.cwd();
296
+ console.log(chalk.bold.blue('\n🏥 Project Health Check\n'));
297
+ const { calculateHealthScore } = await import('../../core/health-scorer.js');
298
+ const spinner = ora('Analyzing project health...').start();
299
+ const health = await calculateHealthScore(cwd);
300
+ spinner.succeed('Health analysis complete');
301
+ console.log('');
302
+ console.log(chalk.bold(`Overall Health Score: ${health.overall}/100 (${health.grade})`));
303
+ console.log('');
304
+ console.log(chalk.bold('Category Scores:\n'));
305
+ console.log(` 📝 Documentation: ${health.categories.documentation}/100`);
306
+ console.log(` 🧪 Testing: ${health.categories.testing}/100`);
307
+ console.log(` 🎨 Code Quality: ${health.categories.quality}/100`);
308
+ console.log(` 🔒 Security: ${health.categories.security}/100`);
309
+ console.log(` 🔄 CI/CD: ${health.categories.cicd}/100`);
310
+ console.log(` 📦 Dependencies: ${health.categories.dependencies}/100`);
311
+ console.log(` 🤖 AGENTS.md: ${health.categories.agentsMd}/100`);
312
+ console.log(` 🔁 Ralph: ${health.categories.ralph}/100`);
313
+ console.log(` 🧠 Memory: ${health.categories.memory}/100`);
314
+ console.log('');
315
+ if (health.recommendations.length > 0) {
316
+ console.log(chalk.bold.yellow('Recommendations:\n'));
317
+ health.recommendations.forEach((rec) => {
318
+ console.log(chalk.yellow(` ${rec}`));
319
+ });
320
+ console.log('');
321
+ }
322
+ if (health.overall >= 90) {
323
+ console.log(chalk.green('🌟 Excellent! Your project is in great shape!'));
324
+ }
325
+ else if (health.overall >= 70) {
326
+ console.log(chalk.blue('👍 Good project health. A few improvements suggested.'));
327
+ }
328
+ else {
329
+ console.log(chalk.yellow('⚠️ Project health needs improvement.'));
330
+ console.log(chalk.gray(' Run: rulebook fix'));
331
+ console.log(chalk.gray(' To auto-fix common issues.'));
332
+ }
333
+ }
334
+ catch (error) {
335
+ console.error(chalk.red('\n❌ Error:'), error.message);
336
+ process.exit(1);
337
+ }
338
+ }
339
+ export async function fixCommand() {
340
+ try {
341
+ const cwd = process.cwd();
342
+ console.log(chalk.bold.blue('\n🔧 Auto-Fix Common Issues\n'));
343
+ const { autoFixProject, autoFixLint } = await import('../../core/auto-fixer.js');
344
+ const spinner = ora('Analyzing and fixing issues...').start();
345
+ const result = await autoFixProject(cwd);
346
+ spinner.succeed('Auto-fix complete');
347
+ console.log('');
348
+ if (result.applied.length > 0) {
349
+ console.log(chalk.green('✅ Fixed:\n'));
350
+ result.applied.forEach((fix) => {
351
+ console.log(chalk.gray(` - ${fix}`));
352
+ });
353
+ console.log('');
354
+ }
355
+ if (result.skipped.length > 0) {
356
+ console.log(chalk.blue('ℹ️ Skipped:\n'));
357
+ result.skipped.forEach((skip) => {
358
+ console.log(chalk.gray(` - ${skip}`));
359
+ });
360
+ console.log('');
361
+ }
362
+ if (result.failed.length > 0) {
363
+ console.log(chalk.yellow('⚠️ Failed:\n'));
364
+ result.failed.forEach((fail) => {
365
+ console.log(chalk.gray(` - ${fail}`));
366
+ });
367
+ console.log('');
368
+ }
369
+ console.log(chalk.blue('🎨 Attempting to fix lint errors...\n'));
370
+ const lintFixed = await autoFixLint(cwd);
371
+ if (lintFixed) {
372
+ console.log(chalk.green('✅ Lint errors fixed'));
373
+ }
374
+ else {
375
+ console.log(chalk.gray('ℹ️ No lint auto-fix available'));
376
+ }
377
+ console.log('');
378
+ console.log(chalk.bold.green('✨ Auto-fix complete!\n'));
379
+ console.log(chalk.gray('Run: rulebook health'));
380
+ console.log(chalk.gray('To check updated health score.'));
381
+ }
382
+ catch (error) {
383
+ console.error(chalk.red('\n❌ Error:'), error.message);
384
+ process.exit(1);
385
+ }
386
+ }
387
+ export async function watcherCommand() {
388
+ try {
389
+ const cwd = process.cwd();
390
+ const { startWatcher } = await import('../../core/watcher.js');
391
+ console.log(chalk.bold.blue('\n🚀 Starting Modern Console Watcher\n'));
392
+ console.log(chalk.gray('Full-screen interface with system monitoring'));
393
+ console.log(chalk.gray('Press Ctrl+C or F10 to exit\n'));
394
+ await startWatcher(cwd);
395
+ }
396
+ catch (error) {
397
+ console.error(chalk.red('\n❌ Watcher error:'), error);
398
+ process.exit(1);
399
+ }
400
+ }
401
+ export async function agentCommand(options) {
402
+ try {
403
+ const cwd = process.cwd();
404
+ const { startAgent } = await import('../../core/agent-manager.js');
405
+ console.log(chalk.bold.blue('\n🤖 Starting Rulebook Agent\n'));
406
+ const agentOptions = {
407
+ dryRun: options.dryRun || false,
408
+ tool: options.tool,
409
+ maxIterations: options.iterations || 10,
410
+ watchMode: options.watch || false,
411
+ };
412
+ if (agentOptions.dryRun) {
413
+ console.log(chalk.yellow('🔍 DRY RUN MODE - No actual changes will be made\n'));
414
+ }
415
+ await startAgent(cwd, agentOptions);
416
+ }
417
+ catch (error) {
418
+ console.error(chalk.red('\n❌ Agent error:'), error);
419
+ process.exit(1);
420
+ }
421
+ }
422
+ export async function configCommand(options) {
423
+ try {
424
+ const cwd = process.cwd();
425
+ const { createConfigManager } = await import('../../core/config-manager.js');
426
+ const configManager = createConfigManager(cwd);
427
+ if (options.show) {
428
+ const summary = await configManager.getConfigSummary();
429
+ console.log(chalk.bold.blue('\n⚙️ Rulebook Configuration\n'));
430
+ console.log(chalk.white(`Version: ${summary.version}`));
431
+ console.log(chalk.white(`Project ID: ${summary.projectId}`));
432
+ console.log(chalk.white(`Coverage Threshold: ${summary.coverageThreshold}%`));
433
+ console.log(chalk.white(`CLI Tools: ${summary.cliTools.join(', ') || 'None detected'}`));
434
+ console.log(chalk.white(`Enabled Features: ${summary.enabledFeatures.join(', ')}`));
435
+ }
436
+ else if (options.feature && typeof options.enable === 'boolean') {
437
+ await configManager.toggleFeature(options.feature, options.enable);
438
+ console.log(chalk.green(`✅ Feature '${options.feature}' ${options.enable ? 'enabled' : 'disabled'}`));
439
+ }
440
+ else if (options.set) {
441
+ const [key, value] = options.set.split('=');
442
+ if (!key || !value) {
443
+ console.error(chalk.red('Invalid set format. Use: --set key=value'));
444
+ process.exit(1);
445
+ }
446
+ let parsedValue = value;
447
+ if (value === 'true')
448
+ parsedValue = true;
449
+ else if (value === 'false')
450
+ parsedValue = false;
451
+ else if (!isNaN(Number(value)))
452
+ parsedValue = Number(value);
453
+ await configManager.updateConfig({ [key]: parsedValue });
454
+ console.log(chalk.green(`✅ Configuration updated: ${key} = ${value}`));
455
+ }
456
+ else {
457
+ console.log(chalk.bold.blue('\n⚙️ Rulebook Configuration\n'));
458
+ console.log(chalk.gray('Available commands:'));
459
+ console.log(chalk.gray(' --show Show current configuration'));
460
+ console.log(chalk.gray(' --set key=value Set configuration value'));
461
+ console.log(chalk.gray(' --feature name --enable Enable a feature'));
462
+ console.log(chalk.gray(' --feature name --disable Disable a feature'));
463
+ }
464
+ }
465
+ catch (error) {
466
+ console.error(chalk.red('\n❌ Config error:'), error);
467
+ process.exit(1);
468
+ }
469
+ }
470
+ export async function setupClaudeCodePlugin() {
471
+ const oraModule = await import('ora');
472
+ const oraFn = oraModule.default;
473
+ const spinner = oraFn('Setting up Claude Code plugin...').start();
474
+ try {
475
+ const fs = await import('fs/promises');
476
+ const url = await import('url');
477
+ const os = await import('os');
478
+ const packageDir = path.dirname(url.fileURLToPath(import.meta.url));
479
+ const pluginJsonPath = path.join(packageDir, '..', '..', '..', '.claude-plugin', 'plugin.json');
480
+ const pluginJson = JSON.parse(await readFile(pluginJsonPath));
481
+ const homeDir = os.homedir();
482
+ const pluginsDir = path.join(homeDir, '.claude', 'plugins');
483
+ const installedPluginsPath = path.join(pluginsDir, 'installed_plugins.json');
484
+ await fs.mkdir(pluginsDir, { recursive: true });
485
+ let installedPlugins = {
486
+ version: 2,
487
+ plugins: {},
488
+ };
489
+ if (existsSync(installedPluginsPath)) {
490
+ const content = await readFile(installedPluginsPath);
491
+ installedPlugins = JSON.parse(content);
492
+ }
493
+ const pluginKey = `rulebook@hivehub`;
494
+ const version = pluginJson.version || '3.2.1';
495
+ const installPath = path.join(pluginsDir, 'cache', 'hivehub', 'rulebook', version);
496
+ if (!installedPlugins.plugins[pluginKey]) {
497
+ installedPlugins.plugins[pluginKey] = [];
498
+ }
499
+ const entries = installedPlugins.plugins[pluginKey];
500
+ if (entries.length > 0) {
501
+ const originalInstalledAt = entries[0].installedAt;
502
+ installedPlugins.plugins[pluginKey] = [
503
+ {
504
+ scope: 'user',
505
+ installPath: installPath,
506
+ version: version,
507
+ installedAt: originalInstalledAt || new Date().toISOString(),
508
+ lastUpdated: new Date().toISOString(),
509
+ },
510
+ ];
511
+ }
512
+ else {
513
+ entries.push({
514
+ scope: 'user',
515
+ installPath: installPath,
516
+ version: version,
517
+ installedAt: new Date().toISOString(),
518
+ lastUpdated: new Date().toISOString(),
519
+ });
520
+ }
521
+ await fs.writeFile(installedPluginsPath, JSON.stringify(installedPlugins, null, 2));
522
+ spinner.succeed('Claude Code plugin installed');
523
+ console.log(`\n ${chalk.green('✓')} Plugin: ${pluginKey} v${version}`);
524
+ console.log(` ${chalk.gray('Installed to:')} ${installPath}`);
525
+ console.log(`\n ${chalk.blue('Note:')} Restart Claude Code to load the plugin.\n`);
526
+ }
527
+ catch (error) {
528
+ spinner.fail('Failed to install plugin');
529
+ console.error(chalk.red(String(error)));
530
+ process.exit(1);
531
+ }
532
+ }
533
+ export async function migrateMemoryDirectory() {
534
+ const oraModule = await import('ora');
535
+ const oraFn = oraModule.default;
536
+ const spinner = oraFn('Migrating memory directory structure...').start();
537
+ try {
538
+ const { createConfigManager } = await import('../../core/config-manager.js');
539
+ const fs = await import('fs');
540
+ const fsPromises = fs.promises;
541
+ const cwd = process.cwd();
542
+ const oldDir = path.join(cwd, '.rulebook-memory');
543
+ const rulebookDir = path.join(cwd, '.rulebook');
544
+ const newDir = path.join(rulebookDir, 'memory');
545
+ if (!existsSync(oldDir)) {
546
+ spinner.info('No old memory directory found (.rulebook-memory)');
547
+ return;
548
+ }
549
+ if (!existsSync(rulebookDir)) {
550
+ await fsPromises.mkdir(rulebookDir, { recursive: true });
551
+ }
552
+ await fsPromises.mkdir(newDir, { recursive: true });
553
+ const files = await fsPromises.readdir(oldDir);
554
+ for (const file of files) {
555
+ const oldPath = path.join(oldDir, file);
556
+ const newPath = path.join(newDir, file);
557
+ await fsPromises.copyFile(oldPath, newPath);
558
+ }
559
+ await fsPromises.rm(oldDir, { recursive: true, force: true });
560
+ const configManager = createConfigManager(cwd);
561
+ const existingConfig = await configManager.loadConfig();
562
+ if (existingConfig.memory) {
563
+ existingConfig.memory.dbPath = '.rulebook/memory/memory.db';
564
+ }
565
+ await configManager.updateConfig(existingConfig);
566
+ spinner.succeed('Memory directory migrated');
567
+ console.log(`\n ${chalk.green('✓')} Migrated to: ${newDir}`);
568
+ console.log(` ${chalk.gray('Old directory removed: .rulebook-memory')}\n`);
569
+ }
570
+ catch (error) {
571
+ spinner.fail('Failed to migrate memory directory');
572
+ console.error(chalk.red(String(error)));
573
+ process.exit(1);
574
+ }
575
+ }
576
+ //# sourceMappingURL=misc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"misc.js","sourceRoot":"","sources":["../../../src/cli/commands/misc.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ export declare function overrideShowCommand(): Promise<void>;
2
+ export declare function overrideEditCommand(): Promise<void>;
3
+ export declare function overrideClearCommand(): Promise<void>;
4
+ export declare function modeSetCommand(mode: 'lean' | 'full'): Promise<void>;
5
+ export declare function plansShowCommand(): Promise<void>;
6
+ export declare function plansInitCommand(): Promise<void>;
7
+ export declare function plansClearCommand(): Promise<void>;
8
+ export declare function continueCommand(): Promise<void>;
9
+ export declare function reviewCommand(options: {
10
+ output?: 'terminal' | 'github-comment' | 'json';
11
+ failOn?: 'critical' | 'major' | 'minor';
12
+ baseBranch?: string;
13
+ tool?: string;
14
+ }): Promise<void>;
15
+ //# sourceMappingURL=plans.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plans.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/plans.ts"],"names":[],"mappings":"AAIA,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAsBzD;AAED,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAczD;AAED,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAK1D;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAuBzE;AAED,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAgCtD;AAED,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAWtD;AAED,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAMvD;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CA6HrD;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE;IAC3C,MAAM,CAAC,EAAE,UAAU,GAAG,gBAAgB,GAAG,MAAM,CAAC;IAChD,MAAM,CAAC,EAAE,UAAU,GAAG,OAAO,GAAG,OAAO,CAAC;IACxC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GAAG,OAAO,CAAC,IAAI,CAAC,CAgEhB"}