@hivehub/rulebook 4.4.1 → 5.0.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.
- package/.claude-plugin/plugin.json +1 -1
- package/README.md +45 -4
- package/dist/cli/commands.d.ts.map +1 -1
- package/dist/cli/commands.js +86 -0
- package/dist/cli/commands.js.map +1 -1
- package/dist/core/agent-template-engine.d.ts +51 -0
- package/dist/core/agent-template-engine.d.ts.map +1 -0
- package/dist/core/agent-template-engine.js +273 -0
- package/dist/core/agent-template-engine.js.map +1 -0
- package/dist/core/complexity-detector.d.ts +36 -0
- package/dist/core/complexity-detector.d.ts.map +1 -0
- package/dist/core/complexity-detector.js +254 -0
- package/dist/core/complexity-detector.js.map +1 -0
- package/dist/core/generator.d.ts +1 -0
- package/dist/core/generator.d.ts.map +1 -1
- package/dist/core/generator.js +21 -3
- package/dist/core/generator.js.map +1 -1
- package/dist/core/indexer/background-indexer.d.ts +2 -2
- package/dist/core/indexer/background-indexer.d.ts.map +1 -1
- package/dist/core/indexer/background-indexer.js +55 -61
- package/dist/core/indexer/background-indexer.js.map +1 -1
- package/dist/core/rule-engine.d.ts +64 -0
- package/dist/core/rule-engine.d.ts.map +1 -0
- package/dist/core/rule-engine.js +333 -0
- package/dist/core/rule-engine.js.map +1 -0
- package/dist/core/task-manager.d.ts +4 -0
- package/dist/core/task-manager.d.ts.map +1 -1
- package/dist/core/task-manager.js +39 -24
- package/dist/core/task-manager.js.map +1 -1
- package/dist/index.js +182 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp/rulebook-server.d.ts.map +1 -1
- package/dist/mcp/rulebook-server.js +278 -26
- package/dist/mcp/rulebook-server.js.map +1 -1
- package/dist/memory/hnsw-index.d.ts +3 -1
- package/dist/memory/hnsw-index.d.ts.map +1 -1
- package/dist/memory/hnsw-index.js +121 -18
- package/dist/memory/hnsw-index.js.map +1 -1
- package/dist/memory/memory-manager.d.ts +2 -0
- package/dist/memory/memory-manager.d.ts.map +1 -1
- package/dist/memory/memory-manager.js +16 -7
- package/dist/memory/memory-manager.js.map +1 -1
- package/dist/memory/memory-store.d.ts +15 -3
- package/dist/memory/memory-store.d.ts.map +1 -1
- package/dist/memory/memory-store.js +327 -274
- package/dist/memory/memory-store.js.map +1 -1
- package/dist/types.d.ts +17 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +8 -3
- package/templates/agents/compiler/codegen-debugger.md +34 -0
- package/templates/agents/compiler/stdlib-engineer.md +28 -0
- package/templates/agents/compiler/test-coverage-guardian.md +31 -0
- package/templates/agents/game-engine/cpp-core-expert.md +35 -0
- package/templates/agents/game-engine/render-engineer.md +22 -0
- package/templates/agents/game-engine/shader-engineer.md +38 -0
- package/templates/agents/game-engine/systems-integration.md +43 -0
- package/templates/agents/generic/code-reviewer.md +39 -0
- package/templates/agents/generic/docs-writer.md +25 -0
- package/templates/agents/generic/project-manager.md +34 -0
- package/templates/agents/generic/researcher.md +34 -0
- package/templates/agents/generic/test-engineer.md +40 -0
- package/templates/agents/mobile/platform-specialist.md +22 -0
- package/templates/agents/mobile/ui-engineer.md +22 -0
- package/templates/agents/web-app/api-designer.md +22 -0
- package/templates/agents/web-app/backend-engineer.md +30 -0
- package/templates/agents/web-app/database-engineer.md +22 -0
- package/templates/agents/web-app/frontend-engineer.md +29 -0
- package/templates/agents/web-app/security-reviewer.md +32 -0
- package/templates/core/AGENT_AUTOMATION.md +8 -0
- package/templates/core/RULEBOOK.md +12 -0
- package/templates/core/TIER1_PROHIBITIONS.md +154 -0
- package/templates/core/TOKEN_OPTIMIZATION.md +49 -0
- package/templates/git/GIT_WORKFLOW.md +35 -0
- package/templates/rules/follow-task-sequence.md +36 -0
- package/templates/rules/git-safety.md +29 -0
- package/templates/rules/incremental-tests.md +29 -0
- package/templates/rules/no-deferred.md +31 -0
- package/templates/rules/no-shortcuts.md +30 -0
- package/templates/rules/research-first.md +30 -0
- package/templates/rules/sequential-editing.md +21 -0
- package/templates/rules/session-workflow.md +24 -0
- package/templates/rules/task-decomposition.md +32 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "rulebook",
|
|
3
3
|
"description": "Standardize AI-generated projects with Ralph autonomous loop, persistent memory, and quality gates. Supports 28 languages, 17 frameworks, 13 MCP modules, and 20 services.",
|
|
4
|
-
"version": "
|
|
4
|
+
"version": "5.0.0",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "HiveLLM"
|
|
7
7
|
}
|
package/README.md
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
[](https://github.com/hivellm/rulebook/actions/workflows/build.yml)
|
|
12
12
|
[](https://github.com/hivellm/rulebook/actions/workflows/lint.yml)
|
|
13
13
|
|
|
14
|
-
>
|
|
14
|
+
> 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.
|
|
15
15
|
|
|
16
16
|
---
|
|
17
17
|
|
|
@@ -35,23 +35,64 @@ By giving LLMs a clear "rulebook" to follow, you ensure that every piece of gene
|
|
|
35
35
|
## Quick Start
|
|
36
36
|
|
|
37
37
|
```bash
|
|
38
|
-
# New project — auto-detects languages,
|
|
38
|
+
# New project — auto-detects languages, tools, and complexity
|
|
39
39
|
npx @hivehub/rulebook@latest init
|
|
40
40
|
|
|
41
|
+
# Target specific AI tools
|
|
42
|
+
npx @hivehub/rulebook@latest init --tools claude-code,cursor,gemini
|
|
43
|
+
|
|
44
|
+
# Assess project complexity before configuring
|
|
45
|
+
npx @hivehub/rulebook@latest assess
|
|
46
|
+
|
|
41
47
|
# Minimal setup (essentials only)
|
|
42
48
|
npx @hivehub/rulebook@latest init --minimal
|
|
43
49
|
|
|
44
50
|
# Lean mode — AGENTS.md as <3KB index (fast AI loading)
|
|
45
51
|
npx @hivehub/rulebook@latest init --lean
|
|
46
52
|
|
|
47
|
-
# Update existing project
|
|
53
|
+
# Update existing project (re-projects rules to all detected tools)
|
|
48
54
|
npx @hivehub/rulebook@latest update
|
|
55
|
+
|
|
56
|
+
# Manage canonical rules
|
|
57
|
+
npx @hivehub/rulebook@latest rules list # List rules by tier
|
|
58
|
+
npx @hivehub/rulebook@latest rules add no-shortcuts # Install from library
|
|
59
|
+
npx @hivehub/rulebook@latest rules project # Project to all tools
|
|
49
60
|
```
|
|
50
61
|
|
|
51
62
|
## What's New
|
|
52
63
|
|
|
53
64
|
See the full [CHANGELOG](CHANGELOG.md) for details.
|
|
54
65
|
|
|
66
|
+
### v5.0.0 — Multi-Tool AI Framework
|
|
67
|
+
|
|
68
|
+
The biggest release yet. Rulebook becomes a **tool-agnostic AI development framework** — same quality directives for every AI tool, with graceful degradation.
|
|
69
|
+
|
|
70
|
+
**One Source, Multiple Projections**
|
|
71
|
+
- Canonical rules live in `.rulebook/rules/` with YAML frontmatter
|
|
72
|
+
- `rulebook update` projects them to **6 tool formats simultaneously**:
|
|
73
|
+
- Claude Code (`.claude/rules/*.md`), Cursor (`.cursor/rules/*.mdc`), Gemini (`GEMINI.md`), Copilot (`.github/copilot-instructions.md`), Windsurf (`.windsurf/rules/`), Continue.dev (`.continue/rules/`)
|
|
74
|
+
|
|
75
|
+
**Adaptive Agent Framework**
|
|
76
|
+
- 15 agent templates across 5 project types (game-engine, compiler, web-app, mobile, generic)
|
|
77
|
+
- Claude Code: full agents with memory directories
|
|
78
|
+
- Cursor: contextual `.mdc` rules activated by file glob patterns
|
|
79
|
+
- Gemini/Codex: inline conditional sections
|
|
80
|
+
|
|
81
|
+
**7 Tier 1 Prohibitions** (auto-installed, universal)
|
|
82
|
+
- No shortcuts/stubs/TODOs, git safety allow-list, no delete without authorization, research-first, sequential editing, no deferred tasks, **follow task sequence** (no cherry-picking)
|
|
83
|
+
|
|
84
|
+
**Project Complexity Detection**
|
|
85
|
+
- `rulebook assess` — auto-detects LOC, languages, structure
|
|
86
|
+
- Calibrated init: small projects get Tier 1 only, large/complex projects get full agent framework + Tier 2 rules
|
|
87
|
+
|
|
88
|
+
**Critical Performance Fixes**
|
|
89
|
+
- Replaced sql.js (WASM) with better-sqlite3 (native) — eliminates 100-500MB memory copies per save
|
|
90
|
+
- Replaced fs.watch with chokidar — stops node_modules event flood
|
|
91
|
+
- HNSW search optimized with MinHeap/MaxHeap (~100x faster)
|
|
92
|
+
|
|
93
|
+
**New MCP Tools**: `rulebook_session_start`, `rulebook_session_end`, `rulebook_rules_list`, `rulebook_blockers`
|
|
94
|
+
**New CLI**: `rulebook assess`, `rulebook rules list|add|project`, `rulebook task blockers|blocked-by`
|
|
95
|
+
|
|
55
96
|
### v4.4.0 — Context Intelligence Layer
|
|
56
97
|
|
|
57
98
|
- 🧠 **Decision Records**: `rulebook decision create|list|show|supersede` — Architecture Decision Records with auto-numbering and status lifecycle
|
|
@@ -131,7 +172,7 @@ Every time you open a new tab or restart your editor, the AI loses all context a
|
|
|
131
172
|
### How It Works
|
|
132
173
|
|
|
133
174
|
```
|
|
134
|
-
Session 1: "
|
|
175
|
+
Session 1: "Chose event sourcing over CRUD for the audit trail"
|
|
135
176
|
→ Saved to memory automatically
|
|
136
177
|
|
|
137
178
|
Session 2 (new tab, days later):
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/cli/commands.ts"],"names":[],"mappings":"AAgEA,wBAAsB,WAAW,CAAC,OAAO,EAAE;IACzC,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/cli/commands.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/commands.js
CHANGED
|
@@ -54,6 +54,10 @@ export async function initCommand(options) {
|
|
|
54
54
|
const spinner = ora('Detecting project structure...').start();
|
|
55
55
|
const detection = await detectProject(cwd);
|
|
56
56
|
spinner.succeed('Project detection complete');
|
|
57
|
+
// Assess project complexity for calibrated generation (v5)
|
|
58
|
+
const { assessComplexity } = await import('../core/complexity-detector.js');
|
|
59
|
+
const complexity = assessComplexity(cwd);
|
|
60
|
+
console.log(chalk.gray(` Complexity: ${complexity.tier.toUpperCase()} (${complexity.metrics.estimatedLoc.toLocaleString()} LOC, ${complexity.metrics.languageCount} languages)`));
|
|
57
61
|
// Show detection results
|
|
58
62
|
if (detection.languages.length > 0) {
|
|
59
63
|
console.log(chalk.green('\n✓ Detected languages:'));
|
|
@@ -265,6 +269,43 @@ export async function initCommand(options) {
|
|
|
265
269
|
// Write AGENTS.md
|
|
266
270
|
await writeFile(agentsPath, finalContent);
|
|
267
271
|
console.log(chalk.green(`\n✅ AGENTS.md written to ${agentsPath}`));
|
|
272
|
+
// Install canonical rules based on complexity tier (v5)
|
|
273
|
+
{
|
|
274
|
+
const { installRule, projectRules } = await import('../core/rule-engine.js');
|
|
275
|
+
const { getTemplatesDir } = await import('../core/generator.js');
|
|
276
|
+
const templatesDir = getTemplatesDir();
|
|
277
|
+
// Tier 1 rules — always installed
|
|
278
|
+
const tier1Rules = ['no-shortcuts', 'git-safety', 'sequential-editing', 'research-first', 'follow-task-sequence'];
|
|
279
|
+
// Tier 2 rules — installed for medium+ complexity
|
|
280
|
+
const tier2Rules = ['task-decomposition', 'incremental-tests', 'no-deferred', 'session-workflow'];
|
|
281
|
+
const rulesToInstall = [...tier1Rules];
|
|
282
|
+
if (complexity.recommendations.tier2Rules) {
|
|
283
|
+
rulesToInstall.push(...tier2Rules);
|
|
284
|
+
}
|
|
285
|
+
let installedCount = 0;
|
|
286
|
+
for (const name of rulesToInstall) {
|
|
287
|
+
const result = await installRule(cwd, name, templatesDir);
|
|
288
|
+
if (result)
|
|
289
|
+
installedCount++;
|
|
290
|
+
}
|
|
291
|
+
if (installedCount > 0) {
|
|
292
|
+
console.log(chalk.gray(` • Installed ${installedCount} canonical rules to .rulebook/rules/`));
|
|
293
|
+
}
|
|
294
|
+
// Project rules to detected tools
|
|
295
|
+
const ruleResult = await projectRules(cwd, {
|
|
296
|
+
claudeCode: existsSync(path.join(cwd, '.claude')) || existsSync(path.join(cwd, 'CLAUDE.md')),
|
|
297
|
+
cursor: detection.cursor?.detected,
|
|
298
|
+
gemini: detection.geminiCli?.detected,
|
|
299
|
+
windsurf: detection.windsurf?.detected,
|
|
300
|
+
copilot: detection.githubCopilot?.detected,
|
|
301
|
+
continueDev: detection.continueDev?.detected,
|
|
302
|
+
});
|
|
303
|
+
const totalProjected = ruleResult.claudeCode.length + ruleResult.cursor.length + ruleResult.gemini.length +
|
|
304
|
+
ruleResult.copilot.length + ruleResult.windsurf.length + ruleResult.continueDev.length;
|
|
305
|
+
if (totalProjected > 0) {
|
|
306
|
+
console.log(chalk.gray(` • Projected rules to ${totalProjected} tool-specific files`));
|
|
307
|
+
}
|
|
308
|
+
}
|
|
268
309
|
// Show Cursor MDC feedback
|
|
269
310
|
if (detection.cursor?.detected) {
|
|
270
311
|
if (detection.cursor.hasMdcRules) {
|
|
@@ -1588,6 +1629,51 @@ async function updateSingleProject(cwd, options) {
|
|
|
1588
1629
|
const mergedContent = await mergeFullAgents(detection.existingAgents, config, cwd);
|
|
1589
1630
|
await writeFile(agentsPath, mergedContent);
|
|
1590
1631
|
mergeSpinner.succeed('AGENTS.md updated');
|
|
1632
|
+
// Install + project canonical rules to all detected tools (v5 rule engine)
|
|
1633
|
+
// On update: if .rulebook/rules/ is empty (v4 project), auto-install based on complexity
|
|
1634
|
+
{
|
|
1635
|
+
const { projectRules, installRule, loadCanonicalRules } = await import('../core/rule-engine.js');
|
|
1636
|
+
const existingRules = await loadCanonicalRules(cwd);
|
|
1637
|
+
if (existingRules.length === 0) {
|
|
1638
|
+
// v4 project upgrading to v5 — install canonical rules based on complexity
|
|
1639
|
+
const { assessComplexity } = await import('../core/complexity-detector.js');
|
|
1640
|
+
const { getTemplatesDir } = await import('../core/generator.js');
|
|
1641
|
+
const complexity = assessComplexity(cwd);
|
|
1642
|
+
const templatesDir = getTemplatesDir();
|
|
1643
|
+
const tier1 = ['no-shortcuts', 'git-safety', 'sequential-editing', 'research-first', 'follow-task-sequence'];
|
|
1644
|
+
const tier2 = ['task-decomposition', 'incremental-tests', 'no-deferred', 'session-workflow'];
|
|
1645
|
+
const toInstall = [...tier1];
|
|
1646
|
+
if (complexity.recommendations.tier2Rules) {
|
|
1647
|
+
toInstall.push(...tier2);
|
|
1648
|
+
}
|
|
1649
|
+
let installed = 0;
|
|
1650
|
+
for (const name of toInstall) {
|
|
1651
|
+
const result = await installRule(cwd, name, templatesDir);
|
|
1652
|
+
if (result)
|
|
1653
|
+
installed++;
|
|
1654
|
+
}
|
|
1655
|
+
if (installed > 0) {
|
|
1656
|
+
console.log(chalk.gray(` • Installed ${installed} v5 canonical rules (${complexity.tier} project, ${complexity.metrics.estimatedLoc.toLocaleString()} LOC)`));
|
|
1657
|
+
}
|
|
1658
|
+
}
|
|
1659
|
+
const ruleResult = await projectRules(cwd, {
|
|
1660
|
+
claudeCode: existsSync(path.join(cwd, '.claude')) || existsSync(path.join(cwd, 'CLAUDE.md')),
|
|
1661
|
+
cursor: detection.cursor?.detected,
|
|
1662
|
+
gemini: detection.geminiCli?.detected,
|
|
1663
|
+
windsurf: detection.windsurf?.detected,
|
|
1664
|
+
copilot: detection.githubCopilot?.detected,
|
|
1665
|
+
continueDev: detection.continueDev?.detected,
|
|
1666
|
+
});
|
|
1667
|
+
const totalProjected = ruleResult.claudeCode.length +
|
|
1668
|
+
ruleResult.cursor.length +
|
|
1669
|
+
ruleResult.gemini.length +
|
|
1670
|
+
ruleResult.copilot.length +
|
|
1671
|
+
ruleResult.windsurf.length +
|
|
1672
|
+
ruleResult.continueDev.length;
|
|
1673
|
+
if (totalProjected > 0) {
|
|
1674
|
+
console.log(chalk.gray(` • Projected ${totalProjected} canonical rules to detected tools`));
|
|
1675
|
+
}
|
|
1676
|
+
}
|
|
1591
1677
|
// Show multi-tool config feedback (update command)
|
|
1592
1678
|
if (detection.geminiCli?.detected) {
|
|
1593
1679
|
console.log(chalk.gray(' • Gemini CLI config updated: GEMINI.md'));
|