@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
@@ -63,85 +63,85 @@ export class MemoryStore {
63
63
  createSchema() {
64
64
  if (!this.db)
65
65
  throw new Error('Database not initialized');
66
- this.db.exec(`
67
- CREATE TABLE IF NOT EXISTS memories (
68
- id TEXT PRIMARY KEY,
69
- type TEXT NOT NULL,
70
- title TEXT NOT NULL,
71
- content TEXT NOT NULL,
72
- project TEXT NOT NULL DEFAULT '',
73
- tags TEXT NOT NULL DEFAULT '[]',
74
- session_id TEXT,
75
- created_at INTEGER NOT NULL,
76
- updated_at INTEGER NOT NULL,
77
- accessed_at INTEGER NOT NULL
78
- )
66
+ this.db.exec(`
67
+ CREATE TABLE IF NOT EXISTS memories (
68
+ id TEXT PRIMARY KEY,
69
+ type TEXT NOT NULL,
70
+ title TEXT NOT NULL,
71
+ content TEXT NOT NULL,
72
+ project TEXT NOT NULL DEFAULT '',
73
+ tags TEXT NOT NULL DEFAULT '[]',
74
+ session_id TEXT,
75
+ created_at INTEGER NOT NULL,
76
+ updated_at INTEGER NOT NULL,
77
+ accessed_at INTEGER NOT NULL
78
+ )
79
79
  `);
80
- this.db.exec(`
81
- CREATE TABLE IF NOT EXISTS sessions (
82
- id TEXT PRIMARY KEY,
83
- project TEXT NOT NULL DEFAULT '',
84
- status TEXT NOT NULL DEFAULT 'active',
85
- started_at INTEGER NOT NULL,
86
- ended_at INTEGER,
87
- summary TEXT,
88
- tool_calls INTEGER NOT NULL DEFAULT 0
89
- )
80
+ this.db.exec(`
81
+ CREATE TABLE IF NOT EXISTS sessions (
82
+ id TEXT PRIMARY KEY,
83
+ project TEXT NOT NULL DEFAULT '',
84
+ status TEXT NOT NULL DEFAULT 'active',
85
+ started_at INTEGER NOT NULL,
86
+ ended_at INTEGER,
87
+ summary TEXT,
88
+ tool_calls INTEGER NOT NULL DEFAULT 0
89
+ )
90
90
  `);
91
91
  // --- Indexer Extensions ---
92
- this.db.exec(`
93
- CREATE TABLE IF NOT EXISTS code_nodes (
94
- id TEXT PRIMARY KEY,
95
- type TEXT NOT NULL,
96
- name TEXT NOT NULL,
97
- file_path TEXT NOT NULL,
98
- start_line INTEGER NOT NULL,
99
- end_line INTEGER NOT NULL,
100
- content TEXT NOT NULL,
101
- summary TEXT,
102
- hash TEXT NOT NULL,
103
- updated_at INTEGER NOT NULL
104
- )
92
+ this.db.exec(`
93
+ CREATE TABLE IF NOT EXISTS code_nodes (
94
+ id TEXT PRIMARY KEY,
95
+ type TEXT NOT NULL,
96
+ name TEXT NOT NULL,
97
+ file_path TEXT NOT NULL,
98
+ start_line INTEGER NOT NULL,
99
+ end_line INTEGER NOT NULL,
100
+ content TEXT NOT NULL,
101
+ summary TEXT,
102
+ hash TEXT NOT NULL,
103
+ updated_at INTEGER NOT NULL
104
+ )
105
105
  `);
106
- this.db.exec(`
107
- CREATE TABLE IF NOT EXISTS code_edges (
108
- id TEXT PRIMARY KEY,
109
- source_id TEXT NOT NULL,
110
- target_id TEXT NOT NULL,
111
- type TEXT NOT NULL,
112
- weight REAL NOT NULL DEFAULT 1.0,
113
- FOREIGN KEY(source_id) REFERENCES code_nodes(id) ON DELETE CASCADE
114
- )
106
+ this.db.exec(`
107
+ CREATE TABLE IF NOT EXISTS code_edges (
108
+ id TEXT PRIMARY KEY,
109
+ source_id TEXT NOT NULL,
110
+ target_id TEXT NOT NULL,
111
+ type TEXT NOT NULL,
112
+ weight REAL NOT NULL DEFAULT 1.0,
113
+ FOREIGN KEY(source_id) REFERENCES code_nodes(id) ON DELETE CASCADE
114
+ )
115
115
  `);
116
116
  // FTS5 virtual table for BM25 search
117
117
  try {
118
- this.db.exec(`
119
- CREATE VIRTUAL TABLE IF NOT EXISTS memory_fts USING fts5(
120
- title, content, type,
121
- content=memories,
122
- content_rowid=rowid
123
- )
118
+ this.db.exec(`
119
+ CREATE VIRTUAL TABLE IF NOT EXISTS memory_fts USING fts5(
120
+ title, content, type,
121
+ content=memories,
122
+ content_rowid=rowid
123
+ )
124
124
  `);
125
125
  // Triggers to sync FTS with memories table
126
- this.db.exec(`
127
- CREATE TRIGGER IF NOT EXISTS memory_fts_ai AFTER INSERT ON memories BEGIN
128
- INSERT INTO memory_fts(rowid, title, content, type)
129
- VALUES (new.rowid, new.title, new.content, new.type);
130
- END
126
+ this.db.exec(`
127
+ CREATE TRIGGER IF NOT EXISTS memory_fts_ai AFTER INSERT ON memories BEGIN
128
+ INSERT INTO memory_fts(rowid, title, content, type)
129
+ VALUES (new.rowid, new.title, new.content, new.type);
130
+ END
131
131
  `);
132
- this.db.exec(`
133
- CREATE TRIGGER IF NOT EXISTS memory_fts_ad AFTER DELETE ON memories BEGIN
134
- INSERT INTO memory_fts(memory_fts, rowid, title, content, type)
135
- VALUES ('delete', old.rowid, old.title, old.content, old.type);
136
- END
132
+ this.db.exec(`
133
+ CREATE TRIGGER IF NOT EXISTS memory_fts_ad AFTER DELETE ON memories BEGIN
134
+ INSERT INTO memory_fts(memory_fts, rowid, title, content, type)
135
+ VALUES ('delete', old.rowid, old.title, old.content, old.type);
136
+ END
137
137
  `);
138
- this.db.exec(`
139
- CREATE TRIGGER IF NOT EXISTS memory_fts_au AFTER UPDATE ON memories BEGIN
140
- INSERT INTO memory_fts(memory_fts, rowid, title, content, type)
141
- VALUES ('delete', old.rowid, old.title, old.content, old.type);
142
- INSERT INTO memory_fts(rowid, title, content, type)
143
- VALUES (new.rowid, new.title, new.content, new.type);
144
- END
138
+ this.db.exec(`
139
+ CREATE TRIGGER IF NOT EXISTS memory_fts_au AFTER UPDATE ON memories BEGIN
140
+ INSERT INTO memory_fts(memory_fts, rowid, title, content, type)
141
+ VALUES ('delete', old.rowid, old.title, old.content, old.type);
142
+ INSERT INTO memory_fts(rowid, title, content, type)
143
+ VALUES (new.rowid, new.title, new.content, new.type);
144
+ END
145
145
  `);
146
146
  }
147
147
  catch {
@@ -162,7 +162,7 @@ export class MemoryStore {
162
162
  if (!this.db)
163
163
  throw new Error('Database not initialized');
164
164
  this.db
165
- .prepare(`INSERT OR REPLACE INTO memories (id, type, title, content, project, tags, session_id, created_at, updated_at, accessed_at)
165
+ .prepare(`INSERT OR REPLACE INTO memories (id, type, title, content, project, tags, session_id, created_at, updated_at, accessed_at)
166
166
  VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`)
167
167
  .run(memory.id, memory.type, memory.title, memory.content, memory.project, JSON.stringify(memory.tags), memory.sessionId ?? null, memory.createdAt, memory.updatedAt, memory.accessedAt);
168
168
  }
@@ -170,7 +170,7 @@ export class MemoryStore {
170
170
  if (!this.db)
171
171
  throw new Error('Database not initialized');
172
172
  const row = this.db
173
- .prepare(`SELECT id, type, title, content, project, tags, session_id, created_at, updated_at, accessed_at
173
+ .prepare(`SELECT id, type, title, content, project, tags, session_id, created_at, updated_at, accessed_at
174
174
  FROM memories WHERE id = ?`)
175
175
  .get(id);
176
176
  if (!row)
@@ -199,7 +199,7 @@ export class MemoryStore {
199
199
  const limit = options?.limit ?? 100;
200
200
  const offset = options?.offset ?? 0;
201
201
  const rows = this.db
202
- .prepare(`SELECT id, type, title, content, project, tags, session_id, created_at, updated_at, accessed_at
202
+ .prepare(`SELECT id, type, title, content, project, tags, session_id, created_at, updated_at, accessed_at
203
203
  FROM memories ${where} ORDER BY created_at DESC LIMIT ? OFFSET ?`)
204
204
  .all(...params, limit, offset);
205
205
  return rows.map((row) => this.rowToMemory(row));
@@ -229,11 +229,11 @@ export class MemoryStore {
229
229
  if (terms.length === 0)
230
230
  return [];
231
231
  const ftsQuery = terms.map((t) => `"${t}"`).join(' OR ');
232
- let sql = `
233
- SELECT m.id, bm25(memory_fts) as score
234
- FROM memory_fts f
235
- JOIN memories m ON m.rowid = f.rowid
236
- WHERE memory_fts MATCH '${ftsQuery}'
232
+ let sql = `
233
+ SELECT m.id, bm25(memory_fts) as score
234
+ FROM memory_fts f
235
+ JOIN memories m ON m.rowid = f.rowid
236
+ WHERE memory_fts MATCH '${ftsQuery}'
237
237
  `;
238
238
  if (filters?.type) {
239
239
  sql += ` AND m.type = '${filters.type.replace(/'/g, "''")}'`;
@@ -280,7 +280,7 @@ export class MemoryStore {
280
280
  if (!this.db)
281
281
  throw new Error('Database not initialized');
282
282
  this.db
283
- .prepare(`INSERT INTO sessions (id, project, status, started_at, ended_at, summary, tool_calls)
283
+ .prepare(`INSERT INTO sessions (id, project, status, started_at, ended_at, summary, tool_calls)
284
284
  VALUES (?, ?, ?, ?, ?, ?, ?)`)
285
285
  .run(session.id, session.project, session.status, session.startedAt, session.endedAt ?? null, session.summary ?? null, session.toolCalls);
286
286
  }
@@ -295,7 +295,7 @@ export class MemoryStore {
295
295
  if (!this.db)
296
296
  throw new Error('Database not initialized');
297
297
  const row = this.db
298
- .prepare(`SELECT id, project, status, started_at, ended_at, summary, tool_calls
298
+ .prepare(`SELECT id, project, status, started_at, ended_at, summary, tool_calls
299
299
  FROM sessions WHERE status = 'active' ORDER BY started_at DESC LIMIT 1`)
300
300
  .get();
301
301
  if (!row)
@@ -355,17 +355,17 @@ export class MemoryStore {
355
355
  const anchorTs = anchor.created_at;
356
356
  // Get before + anchor + after
357
357
  const rows = this.db
358
- .prepare(`SELECT id, title, type, created_at FROM (
359
- SELECT id, title, type, created_at FROM memories
360
- WHERE created_at <= ?
361
- ORDER BY created_at DESC LIMIT ?
362
- )
363
- UNION ALL
364
- SELECT id, title, type, created_at FROM (
365
- SELECT id, title, type, created_at FROM memories
366
- WHERE created_at > ?
367
- ORDER BY created_at ASC LIMIT ?
368
- )
358
+ .prepare(`SELECT id, title, type, created_at FROM (
359
+ SELECT id, title, type, created_at FROM memories
360
+ WHERE created_at <= ?
361
+ ORDER BY created_at DESC LIMIT ?
362
+ )
363
+ UNION ALL
364
+ SELECT id, title, type, created_at FROM (
365
+ SELECT id, title, type, created_at FROM memories
366
+ WHERE created_at > ?
367
+ ORDER BY created_at ASC LIMIT ?
368
+ )
369
369
  ORDER BY created_at ASC`)
370
370
  .all(anchorTs, window + 1, anchorTs, window);
371
371
  return rows.map((row) => ({
@@ -513,7 +513,7 @@ export class MemoryStore {
513
513
  if (!this.db)
514
514
  throw new Error('Database not initialized');
515
515
  this.db
516
- .prepare(`INSERT OR REPLACE INTO code_nodes (id, type, name, file_path, start_line, end_line, content, summary, hash, updated_at)
516
+ .prepare(`INSERT OR REPLACE INTO code_nodes (id, type, name, file_path, start_line, end_line, content, summary, hash, updated_at)
517
517
  VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`)
518
518
  .run(node.id, node.type, node.name, node.filePath, node.startLine, node.endLine, node.content, node.summary ?? null, node.hash, node.updatedAt);
519
519
  }
@@ -521,7 +521,7 @@ export class MemoryStore {
521
521
  if (!this.db)
522
522
  throw new Error('Database not initialized');
523
523
  this.db
524
- .prepare(`INSERT OR IGNORE INTO code_edges (id, source_id, target_id, type, weight)
524
+ .prepare(`INSERT OR IGNORE INTO code_edges (id, source_id, target_id, type, weight)
525
525
  VALUES (?, ?, ?, ?, ?)`)
526
526
  .run(edge.id, edge.sourceId, edge.targetId, edge.type, edge.weight);
527
527
  }
package/dist/types.d.ts CHANGED
@@ -186,6 +186,17 @@ export interface RulebookConfig {
186
186
  parallel?: ParallelRalphConfig;
187
187
  planCheckpoint?: PlanCheckpointConfig;
188
188
  };
189
+ multiAgent?: {
190
+ enabled?: boolean;
191
+ enforceTeamForBackgroundAgents?: boolean;
192
+ };
193
+ handoff?: {
194
+ enabled?: boolean;
195
+ warnThresholdPct?: number;
196
+ forceThresholdPct?: number;
197
+ tokenizer?: 'auto' | 'chars' | 'tiktoken';
198
+ maxHistoryFiles?: number;
199
+ };
189
200
  skills?: {
190
201
  enabled: string[];
191
202
  disabled?: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Ensure that a `.gitignore` file at the given project root contains
3
+ * all specified entries. Idempotent: existing entries are not duplicated.
4
+ * Preserves any existing content and comments.
5
+ */
6
+ export declare function ensureGitignoreEntries(projectRoot: string, entries: string[]): Promise<{
7
+ path: string;
8
+ added: string[];
9
+ }>;
10
+ //# sourceMappingURL=gitignore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gitignore.d.ts","sourceRoot":"","sources":["../../src/utils/gitignore.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,wBAAsB,sBAAsB,CAC1C,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EAAE,GAChB,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CA+B5C"}
@@ -0,0 +1,38 @@
1
+ import { promises as fs } from 'fs';
2
+ import path from 'path';
3
+ /**
4
+ * Ensure that a `.gitignore` file at the given project root contains
5
+ * all specified entries. Idempotent: existing entries are not duplicated.
6
+ * Preserves any existing content and comments.
7
+ */
8
+ export async function ensureGitignoreEntries(projectRoot, entries) {
9
+ const gitignorePath = path.join(projectRoot, '.gitignore');
10
+ let existing = '';
11
+ try {
12
+ existing = await fs.readFile(gitignorePath, 'utf-8');
13
+ }
14
+ catch {
15
+ // File does not exist — will be created.
16
+ }
17
+ const lines = existing.split('\n');
18
+ const added = [];
19
+ for (const entry of entries) {
20
+ const trimmed = entry.trim();
21
+ if (!trimmed)
22
+ continue;
23
+ // Check if already present (exact match on a trimmed line)
24
+ if (lines.some((l) => l.trim() === trimmed))
25
+ continue;
26
+ lines.push(trimmed);
27
+ added.push(trimmed);
28
+ }
29
+ if (added.length > 0) {
30
+ const final = lines
31
+ .join('\n')
32
+ .replace(/\n{3,}/g, '\n\n')
33
+ .trimEnd() + '\n';
34
+ await fs.writeFile(gitignorePath, final, 'utf-8');
35
+ }
36
+ return { path: gitignorePath, added };
37
+ }
38
+ //# sourceMappingURL=gitignore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gitignore.js","sourceRoot":"","sources":["../../src/utils/gitignore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,WAAmB,EACnB,OAAiB;IAEjB,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IAC3D,IAAI,QAAQ,GAAG,EAAE,CAAC;IAClB,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;IAAC,MAAM,CAAC;QACP,yCAAyC;IAC3C,CAAC;IAED,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAC7B,IAAI,CAAC,OAAO;YAAE,SAAS;QACvB,2DAA2D;QAC3D,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,OAAO,CAAC;YAAE,SAAS;QACtD,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACtB,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,KAAK,GACT,KAAK;aACF,IAAI,CAAC,IAAI,CAAC;aACV,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC;aAC1B,OAAO,EAAE,GAAG,IAAI,CAAC;QACtB,MAAM,EAAE,CAAC,SAAS,CAAC,aAAa,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;AACxC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hivehub/rulebook",
3
- "version": "5.2.0",
3
+ "version": "5.3.0",
4
4
  "description": "Tool-agnostic AI development framework. Standardize projects across Claude Code, Cursor, Gemini, Codex, Windsurf, Copilot with automated templates, quality gates, persistent memory, and framework detection for 28 languages, 17 frameworks, 13 MCP modules, and 20 services",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -0,0 +1,23 @@
1
+ # Post-compaction cheat sheet
2
+
3
+ This file is re-injected after every conversation compaction. Keep it
4
+ **short (≤50 lines)** and only include directives that must survive
5
+ compaction. Everything else belongs in `CLAUDE.md`, `AGENTS.md`, or
6
+ `.claude/rules/`.
7
+
8
+ ## Critical reminders
9
+
10
+ - Read `AGENTS.md` and `AGENTS.override.md` before making changes.
11
+ - Never revert or discard uncommitted work — fix forward.
12
+ - Edit files sequentially, not in parallel (see `.claude/rules/sequential-editing.md`).
13
+ - Run diagnostics (`type-check`, `lint`) before running the full test suite.
14
+ - If a fix fails twice, stop and escalate — do not retry a third time.
15
+ - Prefer MCP tools over shell commands when an equivalent MCP tool exists.
16
+ - Save learnings to `.rulebook/learnings/` at the end of significant work.
17
+
18
+ ## Project-specific reminders
19
+
20
+ (Edit this file to add reminders unique to your project. Examples:
21
+ build command, primary language toolchain, forbidden directories,
22
+ where canonical documentation lives, critical files that must not
23
+ be touched without review.)
@@ -0,0 +1,26 @@
1
+ # Post-compaction cheat sheet (C/C++ project)
2
+
3
+ Re-injected after every compaction. Keep ≤50 lines. Edit freely.
4
+
5
+ ## Critical reminders
6
+
7
+ - Read `AGENTS.md` and `AGENTS.override.md` before changes.
8
+ - `cmake --build <build>` before running tests.
9
+ - Warnings are errors (`-Wall -Wextra -Werror`).
10
+ - Smart pointers only — no raw `new`/`delete` without justification.
11
+ - Edit files sequentially, not in parallel.
12
+ - If a fix fails twice, stop and escalate.
13
+
14
+ ## Build & test quick reference
15
+
16
+ - **Configure**: `cmake -S . -B build -DCMAKE_EXPORT_COMPILE_COMMANDS=ON`
17
+ - **Build**: `cmake --build build -j`
18
+ - **Test**: `ctest --test-dir build --output-on-failure`
19
+ - **Format**: `clang-format -i <files>`
20
+ - **Sanitize (CI)**: `-fsanitize=address,undefined`
21
+
22
+ ## Forbidden
23
+
24
+ - No `using namespace std;` in headers.
25
+ - No undefined behavior shortcuts (strict aliasing, signed overflow).
26
+ - No out-of-source build pollution in `build/` committed.
@@ -0,0 +1,26 @@
1
+ # Post-compaction cheat sheet (Go project)
2
+
3
+ Re-injected after every compaction. Keep ≤50 lines. Edit freely.
4
+
5
+ ## Critical reminders
6
+
7
+ - Read `AGENTS.md` and `AGENTS.override.md` before changes.
8
+ - `go vet ./...` before `go test ./...`.
9
+ - `gofmt -s -w .` on every file you touch.
10
+ - `context.Context` as first parameter for I/O or blocking functions.
11
+ - Edit files sequentially, not in parallel.
12
+ - If a fix fails twice, stop and escalate.
13
+
14
+ ## Build & test quick reference
15
+
16
+ - **Build**: `go build ./...`
17
+ - **Vet**: `go vet ./...`
18
+ - **Test**: `go test -race ./...`
19
+ - **Format**: `gofmt -s -w .` and `goimports -w .`
20
+ - **Mod tidy**: `go mod tidy` after adding imports
21
+
22
+ ## Forbidden
23
+
24
+ - No `_ = err` — handle or wrap every error.
25
+ - No vendored `/vendor/` unless project explicitly vendors.
26
+ - No new modules without authorization.
@@ -0,0 +1,26 @@
1
+ # Post-compaction cheat sheet (Python project)
2
+
3
+ Re-injected after every compaction. Keep ≤50 lines. Edit freely.
4
+
5
+ ## Critical reminders
6
+
7
+ - Read `AGENTS.md` and `AGENTS.override.md` before changes.
8
+ - Type-check (`mypy` / `pyright`) before `pytest`.
9
+ - `ruff check` before committing.
10
+ - Edit files sequentially, not in parallel.
11
+ - Never revert uncommitted work; fix forward.
12
+ - If a fix fails twice, stop and escalate.
13
+
14
+ ## Build & test quick reference
15
+
16
+ - **Install**: `pip install -e .` or `poetry install` or `uv sync`
17
+ - **Type-check**: `mypy .` or `pyright`
18
+ - **Lint**: `ruff check .`
19
+ - **Format**: `ruff format .` or `black .`
20
+ - **Test**: `pytest`
21
+
22
+ ## Forbidden
23
+
24
+ - No bare `except:` — catch specific exceptions.
25
+ - No new dependencies without authorization.
26
+ - No `rm -rf` in this repo.
@@ -0,0 +1,28 @@
1
+ # Post-compaction cheat sheet (Rust project)
2
+
3
+ Re-injected after every compaction. Keep ≤50 lines. Edit freely.
4
+
5
+ ## Critical reminders
6
+
7
+ - Read `AGENTS.md` and `AGENTS.override.md` before changes.
8
+ - `cargo check` before `cargo test` — check is 5–10x faster.
9
+ - `cargo clippy -- -D warnings` must pass.
10
+ - `cargo fmt` before committing — no style debates.
11
+ - Edit files sequentially, not in parallel.
12
+ - Never revert uncommitted work; fix forward.
13
+ - If a fix fails twice, stop and escalate.
14
+
15
+ ## Build & test quick reference
16
+
17
+ - **Check**: `cargo check --all-targets`
18
+ - **Build**: `cargo build`
19
+ - **Test**: `cargo test --all-features`
20
+ - **Lint**: `cargo clippy -- -D warnings`
21
+ - **Format**: `cargo fmt`
22
+ - **Run**: `cargo run`
23
+
24
+ ## Forbidden
25
+
26
+ - No `unwrap()`/`expect()` in non-test code without a safety comment.
27
+ - No `unsafe` without a `// SAFETY:` comment.
28
+ - No new crates without authorization.
@@ -0,0 +1,29 @@
1
+ # Post-compaction cheat sheet (TypeScript project)
2
+
3
+ Re-injected after every compaction. Keep ≤50 lines. Edit freely.
4
+
5
+ ## Critical reminders
6
+
7
+ - Read `AGENTS.md` and `AGENTS.override.md` before changes.
8
+ - `npm run type-check` before `npm test` — type errors are cheaper.
9
+ - `npm run lint` must pass with zero warnings.
10
+ - Edit files sequentially, not in parallel.
11
+ - Never revert uncommitted work; fix forward.
12
+ - If a fix fails twice, stop and escalate.
13
+ - Use MCP tools (`mcp__rulebook__*`) over shell where available.
14
+
15
+ ## Build & test quick reference
16
+
17
+ - **Install**: `npm install`
18
+ - **Build**: `npm run build` (TypeScript → `dist/`)
19
+ - **Type-check**: `npm run type-check`
20
+ - **Lint**: `npm run lint`
21
+ - **Test**: `npm test` (or `npx vitest run <file>` for single file)
22
+ - **Dev**: `npm run dev`
23
+
24
+ ## Forbidden
25
+
26
+ - No `any` without justification.
27
+ - No `// @ts-ignore` without a one-line reason.
28
+ - No new dependencies without explicit authorization.
29
+ - No `rm -rf` in this repo.
@@ -0,0 +1,71 @@
1
+ <!-- RULEBOOK:START v5.3.0 — DO NOT EDIT BY HAND. Regenerated on `rulebook update`.
2
+ Put project-specific content in AGENTS.override.md or CLAUDE.local.md.
3
+ Anything outside the RULEBOOK:START/END sentinels is preserved across updates. -->
4
+
5
+ # CLAUDE.md
6
+
7
+ This project is managed by [@hivehub/rulebook](https://github.com/hivellm/rulebook).
8
+ The authoritative rules come from the imports below. Claude Code loads all of them
9
+ automatically at session start (see [Anthropic memory docs](https://code.claude.com/docs/en/memory#claude-md-imports)).
10
+
11
+ ## Project identity & live state
12
+ @.rulebook/STATE.md
13
+
14
+ ## Core standards (team-shared, versioned)
15
+ @AGENTS.md
16
+
17
+ ## Project-specific overrides (user-owned, survives `rulebook update`)
18
+ @AGENTS.override.md
19
+
20
+ ## Session scratchpad (human notes)
21
+ @.rulebook/PLANS.md
22
+
23
+ ## Critical rules (highest precedence — apply on every turn)
24
+
25
+ 1. **Read `AGENTS.md` and `AGENTS.override.md`** before making changes. These contain project-specific conventions that override generic guidance.
26
+ 2. **Never revert or discard uncommitted work** — fix forward. Treat the working tree as sacred; investigate before destructive operations.
27
+ 3. **Edit files sequentially**, not in parallel. When a task touches 3+ files, decompose into 1–2 file sub-tasks.
28
+ 4. **Run `check`/type-check before `test`** — diagnostic-first. Cheap diagnostics catch issues that expensive test suites miss or take longer to surface.
29
+ 5. **If a fix fails twice, escalate** — stop, research, or open a team. Do not retry the same approach a third time.
30
+ 6. **Prefer MCP tools** (`mcp__rulebook__*` and project-specific MCP servers) over shell commands when the equivalent tool exists.
31
+ 7. **Capture learnings**: at the end of significant work, save patterns and anti-patterns to `.rulebook/knowledge/` and insights to `.rulebook/learnings/`.
32
+ 8. **Never archive a task** without docs updated, tests written, and tests passing — the task tail enforces this structurally.
33
+
34
+ ## Persistent memory
35
+
36
+ This project uses the Rulebook MCP server for persistent memory across sessions.
37
+
38
+ - **Start of session**: `rulebook_memory_search` for relevant prior context.
39
+ - **During work**: `rulebook_memory_save` for decisions, bugs, discoveries, user preferences.
40
+ - **End of session**: `rulebook_session_end` to write a session summary.
41
+
42
+ Memory is auto-captured for tool interactions (task create/update/archive, skill enable/disable). Manual saves are required for everything else worth remembering.
43
+
44
+ ## Knowledge base
45
+
46
+ Before implementing anything non-trivial:
47
+
48
+ - `rulebook_knowledge_list` — check existing patterns and anti-patterns.
49
+ - `rulebook_learn_list` — review past learnings.
50
+ - `rulebook_decision_list` — review architectural decisions.
51
+
52
+ After implementing, capture at least one entry per task:
53
+
54
+ - `rulebook_knowledge_add` for reusable patterns or anti-patterns to avoid.
55
+ - `rulebook_learn_capture` for implementation insights that don't belong in code comments.
56
+ - `rulebook_decision_create` for significant architectural choices.
57
+
58
+ ## Task workflow
59
+
60
+ **MANDATORY: ALWAYS use the Rulebook MCP tools for task management.** Never create task directories or files manually — use `rulebook_task_create`, `rulebook_task_update`, `rulebook_task_archive`, `rulebook_task_list`, `rulebook_task_show`, `rulebook_task_validate`. These tools enforce naming conventions, mandatory tail items, phase structure, and metadata that manual file creation skips.
61
+
62
+ 1. `rulebook_task_list` to see pending work.
63
+ 2. `rulebook_task_create` to create new tasks — **never `mkdir` + `Write` manually**.
64
+ 3. Pick the **first unchecked item from the lowest-numbered phase** — never reorder.
65
+ 4. Read the task's `proposal.md` and `tasks.md` before touching code.
66
+ 5. Implement step by step. Run lint + type-check after each significant change.
67
+ 6. `rulebook_task_update` to change task status as you progress.
68
+ 7. Mark items `[x]` in `tasks.md` as you finish them.
69
+ 8. The mandatory tail (docs + tests + verify) is **not optional** — `rulebook_task_archive` will refuse to close the task otherwise.
70
+
71
+ <!-- RULEBOOK:END -->