@hivehub/rulebook 5.2.1 → 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.
- package/.claude/commands/analysis.md +35 -0
- package/.claude/commands/rulebook-task-apply.md +7 -25
- package/.claude/commands/rulebook-task-archive.md +10 -19
- package/.claude/commands/rulebook-task-create.md +1 -1
- package/README.md +354 -965
- package/dist/cli/commands/analysis.d.ts +8 -0
- package/dist/cli/commands/analysis.d.ts.map +1 -0
- package/dist/cli/commands/analysis.js +78 -0
- package/dist/cli/commands/analysis.js.map +1 -0
- package/dist/cli/commands/context-intelligence.d.ts +33 -0
- package/dist/cli/commands/context-intelligence.d.ts.map +1 -0
- package/dist/cli/commands/context-intelligence.js +181 -0
- package/dist/cli/commands/context-intelligence.js.map +1 -0
- package/dist/cli/commands/index.d.ts +19 -0
- package/dist/cli/commands/index.d.ts.map +1 -0
- package/dist/cli/commands/index.js +19 -0
- package/dist/cli/commands/index.js.map +1 -0
- package/dist/cli/commands/init.d.ts +15 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +608 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/mcp.d.ts +10 -0
- package/dist/cli/commands/mcp.d.ts.map +1 -0
- package/dist/cli/commands/mcp.js +128 -0
- package/dist/cli/commands/mcp.js.map +1 -0
- package/dist/cli/commands/memory.d.ts +24 -0
- package/dist/cli/commands/memory.d.ts.map +1 -0
- package/dist/cli/commands/memory.js +265 -0
- package/dist/cli/commands/memory.js.map +1 -0
- package/dist/cli/commands/misc.d.ts +33 -0
- package/dist/cli/commands/misc.d.ts.map +1 -0
- package/dist/cli/commands/misc.js +576 -0
- package/dist/cli/commands/misc.js.map +1 -0
- package/dist/cli/commands/plans.d.ts +15 -0
- package/dist/cli/commands/plans.d.ts.map +1 -0
- package/dist/cli/commands/plans.js +266 -0
- package/dist/cli/commands/plans.js.map +1 -0
- package/dist/cli/commands/ralph.d.ts +45 -0
- package/dist/cli/commands/ralph.d.ts.map +1 -0
- package/dist/cli/commands/ralph.js +694 -0
- package/dist/cli/commands/ralph.js.map +1 -0
- package/dist/cli/commands/skills.d.ts +9 -0
- package/dist/cli/commands/skills.d.ts.map +1 -0
- package/dist/cli/commands/skills.js +249 -0
- package/dist/cli/commands/skills.js.map +1 -0
- package/dist/cli/commands/task.d.ts +16 -0
- package/dist/cli/commands/task.d.ts.map +1 -0
- package/dist/cli/commands/task.js +256 -0
- package/dist/cli/commands/task.js.map +1 -0
- package/dist/cli/commands/update.d.ts +14 -0
- package/dist/cli/commands/update.d.ts.map +1 -0
- package/dist/cli/commands/update.js +636 -0
- package/dist/cli/commands/update.js.map +1 -0
- package/dist/cli/commands/workspace.d.ts +6 -0
- package/dist/cli/commands/workspace.d.ts.map +1 -0
- package/dist/cli/commands/workspace.js +141 -0
- package/dist/cli/commands/workspace.js.map +1 -0
- package/dist/core/agent-template-engine.js +28 -28
- package/dist/core/analysis-manager.d.ts +56 -0
- package/dist/core/analysis-manager.d.ts.map +1 -0
- package/dist/core/analysis-manager.js +218 -0
- package/dist/core/analysis-manager.js.map +1 -0
- package/dist/core/claude-md-generator.d.ts +52 -0
- package/dist/core/claude-md-generator.d.ts.map +1 -0
- package/dist/core/claude-md-generator.js +104 -0
- package/dist/core/claude-md-generator.js.map +1 -0
- package/dist/core/claude-settings-manager.d.ts +37 -0
- package/dist/core/claude-settings-manager.d.ts.map +1 -0
- package/dist/core/claude-settings-manager.js +168 -0
- package/dist/core/claude-settings-manager.js.map +1 -0
- package/dist/core/compact-context-manager.d.ts +34 -0
- package/dist/core/compact-context-manager.d.ts.map +1 -0
- package/dist/core/compact-context-manager.js +60 -0
- package/dist/core/compact-context-manager.js.map +1 -0
- package/dist/core/doctor.d.ts +19 -0
- package/dist/core/doctor.d.ts.map +1 -0
- package/dist/core/doctor.js +163 -0
- package/dist/core/doctor.js.map +1 -0
- package/dist/core/generator.js +28 -28
- package/dist/core/mcp-reference-generator.d.ts +13 -0
- package/dist/core/mcp-reference-generator.d.ts.map +1 -0
- package/dist/core/mcp-reference-generator.js +66 -0
- package/dist/core/mcp-reference-generator.js.map +1 -0
- package/dist/core/merger.d.ts +35 -0
- package/dist/core/merger.d.ts.map +1 -1
- package/dist/core/merger.js +120 -0
- package/dist/core/merger.js.map +1 -1
- package/dist/core/prd-generator.d.ts.map +1 -1
- package/dist/core/prd-generator.js +7 -1
- package/dist/core/prd-generator.js.map +1 -1
- package/dist/core/ralph-manager.d.ts.map +1 -1
- package/dist/core/ralph-manager.js +17 -0
- package/dist/core/ralph-manager.js.map +1 -1
- package/dist/core/rules-generator.d.ts +73 -0
- package/dist/core/rules-generator.d.ts.map +1 -0
- package/dist/core/rules-generator.js +201 -0
- package/dist/core/rules-generator.js.map +1 -0
- package/dist/core/state-writer.d.ts +35 -0
- package/dist/core/state-writer.d.ts.map +1 -0
- package/dist/core/state-writer.js +81 -0
- package/dist/core/state-writer.js.map +1 -0
- package/dist/core/task-manager.d.ts +35 -0
- package/dist/core/task-manager.d.ts.map +1 -1
- package/dist/core/task-manager.js +135 -38
- package/dist/core/task-manager.js.map +1 -1
- package/dist/core/telemetry.d.ts +29 -0
- package/dist/core/telemetry.d.ts.map +1 -0
- package/dist/core/telemetry.js +57 -0
- package/dist/core/telemetry.js.map +1 -0
- package/dist/core/workflow-generator.d.ts.map +1 -1
- package/dist/core/workflow-generator.js +2 -177
- package/dist/core/workflow-generator.js.map +1 -1
- package/dist/index.js +28 -1
- package/dist/index.js.map +1 -1
- package/dist/mcp/rulebook-server.d.ts.map +1 -1
- package/dist/mcp/rulebook-server.js +190 -7
- package/dist/mcp/rulebook-server.js.map +1 -1
- package/dist/memory/memory-store.js +91 -91
- package/dist/types.d.ts +11 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/gitignore.d.ts +10 -0
- package/dist/utils/gitignore.d.ts.map +1 -0
- package/dist/utils/gitignore.js +38 -0
- package/dist/utils/gitignore.js.map +1 -0
- package/package.json +1 -1
- package/templates/compact-context/_default.md +23 -0
- package/templates/compact-context/cpp.md +26 -0
- package/templates/compact-context/go.md +26 -0
- package/templates/compact-context/python.md +26 -0
- package/templates/compact-context/rust.md +28 -0
- package/templates/compact-context/typescript.md +29 -0
- package/templates/core/CLAUDE_MD_v2.md +71 -0
- package/templates/hooks/check-context-and-handoff.ps1 +50 -0
- package/templates/hooks/check-context-and-handoff.sh +69 -0
- package/templates/hooks/enforce-mcp-for-tasks.sh +31 -0
- package/templates/hooks/enforce-no-deferred.sh +21 -0
- package/templates/hooks/enforce-no-shortcuts.sh +31 -0
- package/templates/hooks/enforce-team-for-background-agents.ps1 +63 -0
- package/templates/hooks/enforce-team-for-background-agents.sh +55 -0
- package/templates/hooks/on-compact-reinject.sh +34 -0
- package/templates/hooks/resume-from-handoff.ps1 +33 -0
- package/templates/hooks/resume-from-handoff.sh +55 -0
- package/templates/rules/consult-analysis-before-implementing.md +23 -0
- package/templates/rules/cpp.md +46 -0
- package/templates/rules/csharp.md +44 -0
- package/templates/rules/diagnostic-first.md +39 -0
- package/templates/rules/fail-twice-escalate.md +46 -0
- package/templates/rules/go.md +40 -0
- package/templates/rules/java.md +43 -0
- package/templates/rules/javascript.md +39 -0
- package/templates/rules/multi-agent-teams.md +75 -0
- package/templates/rules/python.md +43 -0
- package/templates/rules/respect-handoff-trigger.md +41 -0
- package/templates/rules/rust.md +40 -0
- package/templates/rules/typescript.md +40 -0
- package/templates/skills/dev/analysis/SKILL.md +19 -0
- package/templates/skills/dev/handoff/SKILL.md +27 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/cli/commands/update.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare function workspaceInitCommand(): Promise<void>;
|
|
2
|
+
export declare function workspaceAddCommand(projectPath: string): Promise<void>;
|
|
3
|
+
export declare function workspaceRemoveCommand(projectName: string): Promise<void>;
|
|
4
|
+
export declare function workspaceListCommand(): Promise<void>;
|
|
5
|
+
export declare function workspaceStatusCommand(): Promise<void>;
|
|
6
|
+
//# sourceMappingURL=workspace.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/workspace.ts"],"names":[],"mappings":"AAYA,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAyC1D;AAED,wBAAsB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA8B5E;AAED,wBAAsB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAsB/E;AAED,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAsB1D;AAED,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC,CAiC5D"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import ora from 'ora';
|
|
3
|
+
import path from 'path';
|
|
4
|
+
import { existsSync, readFileSync, writeFileSync } from 'fs';
|
|
5
|
+
import { WorkspaceManager } from '../../core/workspace/workspace-manager.js';
|
|
6
|
+
import { migrateLegacyMcpConfigs } from '../../core/workspace/legacy-migrator.js';
|
|
7
|
+
function getWorkspaceConfigPath(cwd) {
|
|
8
|
+
return path.join(cwd, '.rulebook', 'workspace.json');
|
|
9
|
+
}
|
|
10
|
+
export async function workspaceInitCommand() {
|
|
11
|
+
const cwd = process.cwd();
|
|
12
|
+
const configPath = getWorkspaceConfigPath(cwd);
|
|
13
|
+
if (existsSync(configPath)) {
|
|
14
|
+
console.log(chalk.yellow('Workspace already initialized at .rulebook/workspace.json'));
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
const spinner = ora('Detecting workspace structure...').start();
|
|
18
|
+
let config = WorkspaceManager.findWorkspaceConfig(cwd);
|
|
19
|
+
if (config) {
|
|
20
|
+
spinner.succeed(`Detected workspace: ${config.name} (${config.projects.length} projects)`);
|
|
21
|
+
console.log('\n Projects found:');
|
|
22
|
+
for (const p of config.projects) {
|
|
23
|
+
console.log(` - ${chalk.cyan(p.name)} → ${p.path}`);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
spinner.info('No workspace structure detected. Creating empty workspace config.');
|
|
28
|
+
config = { name: path.basename(cwd), version: '1.0.0', projects: [] };
|
|
29
|
+
}
|
|
30
|
+
const rulebookDir = path.join(cwd, '.rulebook');
|
|
31
|
+
if (!existsSync(rulebookDir)) {
|
|
32
|
+
const { mkdirSync } = await import('fs');
|
|
33
|
+
mkdirSync(rulebookDir, { recursive: true });
|
|
34
|
+
}
|
|
35
|
+
writeFileSync(configPath, JSON.stringify(config, null, 2) + '\n');
|
|
36
|
+
console.log(chalk.green(`\n Created: .rulebook/workspace.json`));
|
|
37
|
+
const migration = await migrateLegacyMcpConfigs(cwd);
|
|
38
|
+
if (migration.migratedFiles.length > 0) {
|
|
39
|
+
console.log(chalk.yellow(`\n Migrated ${migration.migratedFiles.length} legacy .mcp.json files`));
|
|
40
|
+
}
|
|
41
|
+
console.log(chalk.dim('\n Use `rulebook workspace add <path>` to add more projects'));
|
|
42
|
+
console.log(chalk.dim(' Use `rulebook mcp init --workspace` to configure MCP for workspace'));
|
|
43
|
+
}
|
|
44
|
+
export async function workspaceAddCommand(projectPath) {
|
|
45
|
+
const cwd = process.cwd();
|
|
46
|
+
const configPath = getWorkspaceConfigPath(cwd);
|
|
47
|
+
if (!existsSync(configPath)) {
|
|
48
|
+
console.error(chalk.red('No workspace found. Run `rulebook workspace init` first.'));
|
|
49
|
+
process.exit(1);
|
|
50
|
+
}
|
|
51
|
+
const config = JSON.parse(readFileSync(configPath, 'utf-8'));
|
|
52
|
+
const resolvedPath = path.resolve(cwd, projectPath);
|
|
53
|
+
const name = path.basename(resolvedPath);
|
|
54
|
+
if (config.projects.some((p) => p.name === name)) {
|
|
55
|
+
console.error(chalk.red(`Project "${name}" already exists in workspace.`));
|
|
56
|
+
process.exit(1);
|
|
57
|
+
}
|
|
58
|
+
const isSubpath = resolvedPath.startsWith(cwd);
|
|
59
|
+
const storedPath = isSubpath ? path.relative(cwd, resolvedPath) : resolvedPath;
|
|
60
|
+
const project = {
|
|
61
|
+
name,
|
|
62
|
+
path: storedPath.startsWith('.') ? storedPath : `./${storedPath}`,
|
|
63
|
+
};
|
|
64
|
+
config.projects.push(project);
|
|
65
|
+
if (!config.defaultProject)
|
|
66
|
+
config.defaultProject = name;
|
|
67
|
+
writeFileSync(configPath, JSON.stringify(config, null, 2) + '\n');
|
|
68
|
+
console.log(chalk.green(`Added project "${name}" → ${project.path}`));
|
|
69
|
+
}
|
|
70
|
+
export async function workspaceRemoveCommand(projectName) {
|
|
71
|
+
const cwd = process.cwd();
|
|
72
|
+
const configPath = getWorkspaceConfigPath(cwd);
|
|
73
|
+
if (!existsSync(configPath)) {
|
|
74
|
+
console.error(chalk.red('No workspace found. Run `rulebook workspace init` first.'));
|
|
75
|
+
process.exit(1);
|
|
76
|
+
}
|
|
77
|
+
const config = JSON.parse(readFileSync(configPath, 'utf-8'));
|
|
78
|
+
const idx = config.projects.findIndex((p) => p.name === projectName);
|
|
79
|
+
if (idx === -1) {
|
|
80
|
+
console.error(chalk.red(`Project "${projectName}" not found in workspace.`));
|
|
81
|
+
process.exit(1);
|
|
82
|
+
}
|
|
83
|
+
config.projects.splice(idx, 1);
|
|
84
|
+
if (config.defaultProject === projectName)
|
|
85
|
+
config.defaultProject = config.projects[0]?.name;
|
|
86
|
+
writeFileSync(configPath, JSON.stringify(config, null, 2) + '\n');
|
|
87
|
+
console.log(chalk.green(`Removed project "${projectName}" from workspace.`));
|
|
88
|
+
}
|
|
89
|
+
export async function workspaceListCommand() {
|
|
90
|
+
const cwd = process.cwd();
|
|
91
|
+
const config = WorkspaceManager.findWorkspaceConfig(cwd);
|
|
92
|
+
if (!config) {
|
|
93
|
+
console.log(chalk.yellow('No workspace found. Run `rulebook workspace init` to create one.'));
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
console.log(chalk.bold(`\nWorkspace: ${config.name}`));
|
|
97
|
+
console.log(chalk.dim(` Version: ${config.version}`));
|
|
98
|
+
if (config.defaultProject)
|
|
99
|
+
console.log(chalk.dim(` Default: ${config.defaultProject}`));
|
|
100
|
+
console.log();
|
|
101
|
+
for (const p of config.projects) {
|
|
102
|
+
const isDefault = p.name === config.defaultProject;
|
|
103
|
+
const marker = isDefault ? chalk.green(' (default)') : '';
|
|
104
|
+
const disabled = p.enabled === false ? chalk.red(' [disabled]') : '';
|
|
105
|
+
console.log(` ${chalk.cyan(p.name)}${marker}${disabled}`);
|
|
106
|
+
console.log(` ${chalk.dim(p.path)}`);
|
|
107
|
+
}
|
|
108
|
+
console.log(chalk.dim(`\n ${config.projects.length} project(s) total`));
|
|
109
|
+
}
|
|
110
|
+
export async function workspaceStatusCommand() {
|
|
111
|
+
const cwd = process.cwd();
|
|
112
|
+
const config = WorkspaceManager.findWorkspaceConfig(cwd);
|
|
113
|
+
if (!config) {
|
|
114
|
+
console.log(chalk.yellow('No workspace found. Run `rulebook workspace init` to create one.'));
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
const manager = new WorkspaceManager(config, cwd);
|
|
118
|
+
const spinner = ora('Checking workspace status...').start();
|
|
119
|
+
try {
|
|
120
|
+
const status = await manager.getStatus();
|
|
121
|
+
spinner.stop();
|
|
122
|
+
console.log(chalk.bold(`\nWorkspace: ${status.name}`));
|
|
123
|
+
console.log(` Projects: ${status.totalProjects} | Active workers: ${status.activeWorkers}\n`);
|
|
124
|
+
for (const p of status.projects) {
|
|
125
|
+
const configBadge = p.hasRulebookConfig ? chalk.green('.rulebook') : chalk.dim('no config');
|
|
126
|
+
const memBadge = p.memoryEnabled ? chalk.blue('memory') : '';
|
|
127
|
+
const taskBadge = p.taskCount > 0 ? chalk.yellow(`${p.taskCount} tasks`) : '';
|
|
128
|
+
const badges = [configBadge, memBadge, taskBadge].filter(Boolean).join(' ');
|
|
129
|
+
console.log(` ${chalk.cyan(p.name)} ${badges}`);
|
|
130
|
+
console.log(` ${chalk.dim(p.path)}`);
|
|
131
|
+
}
|
|
132
|
+
console.log();
|
|
133
|
+
}
|
|
134
|
+
catch (error) {
|
|
135
|
+
spinner.fail(`Failed: ${String(error)}`);
|
|
136
|
+
}
|
|
137
|
+
finally {
|
|
138
|
+
await manager.shutdownAll();
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=workspace.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../../src/cli/commands/workspace.ts"],"names":[],"mappings":"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"}
|
|
@@ -109,34 +109,34 @@ async function loadFromDir(dir, templates) {
|
|
|
109
109
|
}
|
|
110
110
|
}
|
|
111
111
|
// ── Mandatory Sections ──────────────────────────────────────────────────
|
|
112
|
-
const MANDATORY_FOOTER = `
|
|
113
|
-
## Mandatory Rules (Injected by Rulebook)
|
|
114
|
-
|
|
115
|
-
### No Shortcuts — Quality Over Speed
|
|
116
|
-
NEVER simplify logic, add TODO/FIXME/HACK, create stubs, use placeholders, reduce scope,
|
|
117
|
-
skip edge cases, or deliver partial implementations. Quality is everything.
|
|
118
|
-
|
|
119
|
-
### Incremental Implementation — Step by Step
|
|
120
|
-
NEVER implement everything at once. Decompose into small steps, implement ONE step, test/verify
|
|
121
|
-
immediately, fix errors before proceeding. If stuck after 3 failed attempts on the same error:
|
|
122
|
-
STOP, record the failure as anti-pattern, remove broken code, restart from scratch with a
|
|
123
|
-
different approach. The line between persistence and stubbornness is thin.
|
|
124
|
-
|
|
125
|
-
### Knowledge Base — Check Before, Record After
|
|
126
|
-
BEFORE implementing: check \`.rulebook/knowledge/\` for existing patterns and anti-patterns.
|
|
127
|
-
AFTER implementing: record what worked (pattern) and what failed (anti-pattern).
|
|
128
|
-
After debugging: capture learnings with \`rulebook learn capture\`.
|
|
129
|
-
The knowledge base exists so you don't repeat mistakes across sessions.
|
|
130
|
-
|
|
131
|
-
### Update tasks.md After Every Completion
|
|
132
|
-
After completing ANY task, update the corresponding \`.rulebook/tasks/*/tasks.md\` file.
|
|
133
|
-
Change \`- [ ]\` to \`- [x]\` with a brief description. Do this BEFORE reporting completion.
|
|
134
|
-
|
|
135
|
-
### Never Mark Tasks as Deferred
|
|
136
|
-
If a task is in tasks.md, implement it. If it has a dependency, implement the dependency first.
|
|
137
|
-
|
|
138
|
-
### Research Before Implementing
|
|
139
|
-
NEVER guess. State what you know, what you don't know, research the unknown, then implement.
|
|
112
|
+
const MANDATORY_FOOTER = `
|
|
113
|
+
## Mandatory Rules (Injected by Rulebook)
|
|
114
|
+
|
|
115
|
+
### No Shortcuts — Quality Over Speed
|
|
116
|
+
NEVER simplify logic, add TODO/FIXME/HACK, create stubs, use placeholders, reduce scope,
|
|
117
|
+
skip edge cases, or deliver partial implementations. Quality is everything.
|
|
118
|
+
|
|
119
|
+
### Incremental Implementation — Step by Step
|
|
120
|
+
NEVER implement everything at once. Decompose into small steps, implement ONE step, test/verify
|
|
121
|
+
immediately, fix errors before proceeding. If stuck after 3 failed attempts on the same error:
|
|
122
|
+
STOP, record the failure as anti-pattern, remove broken code, restart from scratch with a
|
|
123
|
+
different approach. The line between persistence and stubbornness is thin.
|
|
124
|
+
|
|
125
|
+
### Knowledge Base — Check Before, Record After
|
|
126
|
+
BEFORE implementing: check \`.rulebook/knowledge/\` for existing patterns and anti-patterns.
|
|
127
|
+
AFTER implementing: record what worked (pattern) and what failed (anti-pattern).
|
|
128
|
+
After debugging: capture learnings with \`rulebook learn capture\`.
|
|
129
|
+
The knowledge base exists so you don't repeat mistakes across sessions.
|
|
130
|
+
|
|
131
|
+
### Update tasks.md After Every Completion
|
|
132
|
+
After completing ANY task, update the corresponding \`.rulebook/tasks/*/tasks.md\` file.
|
|
133
|
+
Change \`- [ ]\` to \`- [x]\` with a brief description. Do this BEFORE reporting completion.
|
|
134
|
+
|
|
135
|
+
### Never Mark Tasks as Deferred
|
|
136
|
+
If a task is in tasks.md, implement it. If it has a dependency, implement the dependency first.
|
|
137
|
+
|
|
138
|
+
### Research Before Implementing
|
|
139
|
+
NEVER guess. State what you know, what you don't know, research the unknown, then implement.
|
|
140
140
|
`;
|
|
141
141
|
// ── Claude Code Agent Generation ────────────────────────────────────────
|
|
142
142
|
/**
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* v5.3.0 F-NEW-4 — `/analysis <topic>` workflow.
|
|
3
|
+
*
|
|
4
|
+
* Creates a `docs/analysis/<slug>/` directory with skeleton files,
|
|
5
|
+
* generates an execution plan, and materializes tasks via the
|
|
6
|
+
* task manager. Findings can be registered in the knowledge base.
|
|
7
|
+
*
|
|
8
|
+
* MVP scope (v5.3.0): scaffold + findings template + plan template.
|
|
9
|
+
* Agent dispatch and parallel investigation are planned for v5.4.
|
|
10
|
+
*/
|
|
11
|
+
export interface AnalysisOptions {
|
|
12
|
+
/** Human-readable topic (e.g. "perf-startup", "auth refactor v2"). */
|
|
13
|
+
topic: string;
|
|
14
|
+
/** Explicit agent list override. Null = auto-select (future). */
|
|
15
|
+
agents?: string[] | null;
|
|
16
|
+
/** Skip task materialization (just produce the analysis directory). */
|
|
17
|
+
noTasks?: boolean;
|
|
18
|
+
}
|
|
19
|
+
export interface AnalysisResult {
|
|
20
|
+
slug: string;
|
|
21
|
+
dir: string;
|
|
22
|
+
files: string[];
|
|
23
|
+
manifestPath: string;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Slugify a topic into a filesystem-safe directory name.
|
|
27
|
+
* Lowercases, replaces spaces/special chars with hyphens, deduplicates
|
|
28
|
+
* consecutive hyphens, trims leading/trailing hyphens.
|
|
29
|
+
*/
|
|
30
|
+
export declare function slugify(topic: string): string;
|
|
31
|
+
/**
|
|
32
|
+
* Scaffold the analysis directory and skeleton files.
|
|
33
|
+
* Idempotent: re-running on an existing slug updates the manifest
|
|
34
|
+
* but does not overwrite existing content files.
|
|
35
|
+
*/
|
|
36
|
+
export declare function createAnalysis(projectRoot: string, options: AnalysisOptions): Promise<AnalysisResult>;
|
|
37
|
+
/**
|
|
38
|
+
* List all existing analyses in `docs/analysis/`.
|
|
39
|
+
*/
|
|
40
|
+
export declare function listAnalyses(projectRoot: string): Promise<Array<{
|
|
41
|
+
slug: string;
|
|
42
|
+
topic: string;
|
|
43
|
+
createdAt: string;
|
|
44
|
+
dir: string;
|
|
45
|
+
}>>;
|
|
46
|
+
/**
|
|
47
|
+
* Read the full content of an analysis for display.
|
|
48
|
+
*/
|
|
49
|
+
export declare function showAnalysis(projectRoot: string, slug: string): Promise<{
|
|
50
|
+
slug: string;
|
|
51
|
+
readme: string;
|
|
52
|
+
findings: string;
|
|
53
|
+
plan: string;
|
|
54
|
+
manifest: string;
|
|
55
|
+
} | null>;
|
|
56
|
+
//# sourceMappingURL=analysis-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analysis-manager.d.ts","sourceRoot":"","sources":["../../src/core/analysis-manager.ts"],"names":[],"mappings":"AAGA;;;;;;;;;GASG;AAEH,MAAM,WAAW,eAAe;IAC9B,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAC;IACd,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACzB,uEAAuE;IACvE,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAO7C;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAClC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,cAAc,CAAC,CAmEzB;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CA+BjF;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC;IACT,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB,GAAG,IAAI,CAAC,CAaR"}
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
import path from 'path';
|
|
2
|
+
import { writeFile, fileExists, ensureDir, readFile } from '../utils/file-system.js';
|
|
3
|
+
/**
|
|
4
|
+
* Slugify a topic into a filesystem-safe directory name.
|
|
5
|
+
* Lowercases, replaces spaces/special chars with hyphens, deduplicates
|
|
6
|
+
* consecutive hyphens, trims leading/trailing hyphens.
|
|
7
|
+
*/
|
|
8
|
+
export function slugify(topic) {
|
|
9
|
+
return topic
|
|
10
|
+
.toLowerCase()
|
|
11
|
+
.replace(/[^a-z0-9]+/g, '-')
|
|
12
|
+
.replace(/-+/g, '-')
|
|
13
|
+
.replace(/^-|-$/g, '')
|
|
14
|
+
.substring(0, 80);
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Scaffold the analysis directory and skeleton files.
|
|
18
|
+
* Idempotent: re-running on an existing slug updates the manifest
|
|
19
|
+
* but does not overwrite existing content files.
|
|
20
|
+
*/
|
|
21
|
+
export async function createAnalysis(projectRoot, options) {
|
|
22
|
+
const slug = slugify(options.topic);
|
|
23
|
+
const dir = path.join(projectRoot, 'docs', 'analysis', slug);
|
|
24
|
+
await ensureDir(dir);
|
|
25
|
+
const files = [];
|
|
26
|
+
// README.md skeleton (only if missing)
|
|
27
|
+
const readmePath = path.join(dir, 'README.md');
|
|
28
|
+
if (!(await fileExists(readmePath))) {
|
|
29
|
+
await writeFile(readmePath, renderReadmeTemplate(options.topic, slug));
|
|
30
|
+
files.push(readmePath);
|
|
31
|
+
}
|
|
32
|
+
// findings.md skeleton
|
|
33
|
+
const findingsPath = path.join(dir, 'findings.md');
|
|
34
|
+
if (!(await fileExists(findingsPath))) {
|
|
35
|
+
await writeFile(findingsPath, renderFindingsTemplate(slug));
|
|
36
|
+
files.push(findingsPath);
|
|
37
|
+
}
|
|
38
|
+
// execution-plan.md skeleton
|
|
39
|
+
const planPath = path.join(dir, 'execution-plan.md');
|
|
40
|
+
if (!(await fileExists(planPath))) {
|
|
41
|
+
await writeFile(planPath, renderExecutionPlanTemplate(slug));
|
|
42
|
+
files.push(planPath);
|
|
43
|
+
}
|
|
44
|
+
// manifest.json (always overwritten — it's metadata, not content)
|
|
45
|
+
const manifestPath = path.join(dir, 'manifest.json');
|
|
46
|
+
const manifest = {
|
|
47
|
+
slug,
|
|
48
|
+
topic: options.topic,
|
|
49
|
+
agents: options.agents ?? ['researcher'],
|
|
50
|
+
noTasks: options.noTasks ?? false,
|
|
51
|
+
createdAt: new Date().toISOString(),
|
|
52
|
+
version: '5.3.0',
|
|
53
|
+
};
|
|
54
|
+
await writeFile(manifestPath, JSON.stringify(manifest, null, 2) + '\n');
|
|
55
|
+
files.push(manifestPath);
|
|
56
|
+
// Auto-capture: save analysis creation as a memory entry so future
|
|
57
|
+
// sessions know this analysis exists and can consult it.
|
|
58
|
+
try {
|
|
59
|
+
const { MemoryStore } = await import('../memory/memory-store.js');
|
|
60
|
+
const dbPath = path.join(projectRoot, '.rulebook', 'memory', 'memory.db');
|
|
61
|
+
if (await fileExists(dbPath)) {
|
|
62
|
+
const store = new MemoryStore(dbPath);
|
|
63
|
+
const now = Date.now();
|
|
64
|
+
store.saveMemory({
|
|
65
|
+
id: `analysis-${slug}-${now}`,
|
|
66
|
+
type: 'observation',
|
|
67
|
+
title: `Analysis created: ${options.topic}`,
|
|
68
|
+
content: `Structured analysis scaffolded at docs/analysis/${slug}/. Contains README.md, findings.md, execution-plan.md. Use rulebook_analysis_show({ slug: "${slug}" }) to review.`,
|
|
69
|
+
project: projectRoot,
|
|
70
|
+
tags: ['analysis', slug],
|
|
71
|
+
createdAt: now,
|
|
72
|
+
updatedAt: now,
|
|
73
|
+
accessedAt: now,
|
|
74
|
+
});
|
|
75
|
+
store.close();
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
catch {
|
|
79
|
+
// Non-fatal — memory capture is best-effort
|
|
80
|
+
}
|
|
81
|
+
return { slug, dir, files, manifestPath };
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* List all existing analyses in `docs/analysis/`.
|
|
85
|
+
*/
|
|
86
|
+
export async function listAnalyses(projectRoot) {
|
|
87
|
+
const baseDir = path.join(projectRoot, 'docs', 'analysis');
|
|
88
|
+
if (!(await fileExists(baseDir)))
|
|
89
|
+
return [];
|
|
90
|
+
const { promises: fs } = await import('fs');
|
|
91
|
+
const entries = await fs.readdir(baseDir, { withFileTypes: true });
|
|
92
|
+
const results = [];
|
|
93
|
+
for (const entry of entries) {
|
|
94
|
+
if (!entry.isDirectory())
|
|
95
|
+
continue;
|
|
96
|
+
const manifestPath = path.join(baseDir, entry.name, 'manifest.json');
|
|
97
|
+
if (!(await fileExists(manifestPath)))
|
|
98
|
+
continue;
|
|
99
|
+
try {
|
|
100
|
+
const raw = JSON.parse(await readFile(manifestPath));
|
|
101
|
+
results.push({
|
|
102
|
+
slug: raw.slug ?? entry.name,
|
|
103
|
+
topic: raw.topic ?? entry.name,
|
|
104
|
+
createdAt: raw.createdAt ?? 'unknown',
|
|
105
|
+
dir: path.join(baseDir, entry.name),
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
catch {
|
|
109
|
+
results.push({
|
|
110
|
+
slug: entry.name,
|
|
111
|
+
topic: entry.name,
|
|
112
|
+
createdAt: 'unknown',
|
|
113
|
+
dir: path.join(baseDir, entry.name),
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
return results.sort((a, b) => b.createdAt.localeCompare(a.createdAt));
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Read the full content of an analysis for display.
|
|
121
|
+
*/
|
|
122
|
+
export async function showAnalysis(projectRoot, slug) {
|
|
123
|
+
const dir = path.join(projectRoot, 'docs', 'analysis', slug);
|
|
124
|
+
if (!(await fileExists(dir)))
|
|
125
|
+
return null;
|
|
126
|
+
const readSafe = async (p) => ((await fileExists(p)) ? await readFile(p) : '(not found)');
|
|
127
|
+
return {
|
|
128
|
+
slug,
|
|
129
|
+
readme: await readSafe(path.join(dir, 'README.md')),
|
|
130
|
+
findings: await readSafe(path.join(dir, 'findings.md')),
|
|
131
|
+
plan: await readSafe(path.join(dir, 'execution-plan.md')),
|
|
132
|
+
manifest: await readSafe(path.join(dir, 'manifest.json')),
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
// ── Template renderers ──────────────────────────────────────────────
|
|
136
|
+
function renderReadmeTemplate(topic, slug) {
|
|
137
|
+
return `# Analysis: ${topic}
|
|
138
|
+
|
|
139
|
+
> Created by \`/analysis ${topic}\` on ${new Date().toISOString().split('T')[0]}
|
|
140
|
+
> Analysis ID: \`${slug}\`
|
|
141
|
+
|
|
142
|
+
## Index
|
|
143
|
+
|
|
144
|
+
| File | Purpose |
|
|
145
|
+
|------|---------|
|
|
146
|
+
| [findings.md](./findings.md) | Numbered findings (F-001 … F-NNN) |
|
|
147
|
+
| [execution-plan.md](./execution-plan.md) | Phased implementation plan |
|
|
148
|
+
| [manifest.json](./manifest.json) | Analysis metadata |
|
|
149
|
+
|
|
150
|
+
## Executive summary
|
|
151
|
+
|
|
152
|
+
(Fill this after the investigation is complete. Top 3–5 findings with one-line justifications.)
|
|
153
|
+
|
|
154
|
+
## Methodology
|
|
155
|
+
|
|
156
|
+
- **Agents used**: (list which agents or manual research was involved)
|
|
157
|
+
- **Scope**: (what was investigated)
|
|
158
|
+
- **Exclusions**: (what was intentionally out of scope)
|
|
159
|
+
|
|
160
|
+
## Conclusion
|
|
161
|
+
|
|
162
|
+
(One-paragraph conclusion synthesizing the findings into an actionable recommendation.)
|
|
163
|
+
`;
|
|
164
|
+
}
|
|
165
|
+
function renderFindingsTemplate(slug) {
|
|
166
|
+
return `# Findings — ${slug}
|
|
167
|
+
|
|
168
|
+
List numbered findings below. Each finding should have:
|
|
169
|
+
- **Title**: one-line description
|
|
170
|
+
- **Evidence**: file:line or URL reference
|
|
171
|
+
- **Impact**: what changes if we act on this (high/medium/low)
|
|
172
|
+
- **Confidence**: how sure we are this is correct (high/medium/low)
|
|
173
|
+
- **Discovered by**: which agent or manual research
|
|
174
|
+
|
|
175
|
+
## F-001 — (title)
|
|
176
|
+
|
|
177
|
+
- **Evidence**: (file:line or reference)
|
|
178
|
+
- **Impact**: (high/medium/low)
|
|
179
|
+
- **Confidence**: (high/medium/low)
|
|
180
|
+
- **Discovered by**: (agent name or "manual")
|
|
181
|
+
|
|
182
|
+
(Description of the finding.)
|
|
183
|
+
|
|
184
|
+
## F-002 — (title)
|
|
185
|
+
|
|
186
|
+
(Add more findings following the same format.)
|
|
187
|
+
`;
|
|
188
|
+
}
|
|
189
|
+
function renderExecutionPlanTemplate(slug) {
|
|
190
|
+
return `# Execution plan — ${slug}
|
|
191
|
+
|
|
192
|
+
Based on the findings in [findings.md](./findings.md), this plan breaks the
|
|
193
|
+
work into phases. Each phase produces tasks via \`rulebook task create\`.
|
|
194
|
+
|
|
195
|
+
## Phase 1 — (title)
|
|
196
|
+
|
|
197
|
+
**Goal**: (what this phase accomplishes)
|
|
198
|
+
**Depends on**: (nothing | Phase N)
|
|
199
|
+
|
|
200
|
+
Tasks:
|
|
201
|
+
- [ ] (task description → will become \`phase1_${slug}-<name>\`)
|
|
202
|
+
- [ ] (task description)
|
|
203
|
+
|
|
204
|
+
## Phase 2 — (title)
|
|
205
|
+
|
|
206
|
+
**Goal**: (what this phase accomplishes)
|
|
207
|
+
**Depends on**: Phase 1
|
|
208
|
+
|
|
209
|
+
Tasks:
|
|
210
|
+
- [ ] (task description)
|
|
211
|
+
- [ ] (task description)
|
|
212
|
+
|
|
213
|
+
## Open questions
|
|
214
|
+
|
|
215
|
+
- (questions that must be resolved before materializing tasks)
|
|
216
|
+
`;
|
|
217
|
+
}
|
|
218
|
+
//# sourceMappingURL=analysis-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analysis-manager.js","sourceRoot":"","sources":["../../src/core/analysis-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* v5.3.0 CLAUDE.md generator.
|
|
3
|
+
*
|
|
4
|
+
* Produces a thin (<150 line) CLAUDE.md composed of `@imports`, aligned with
|
|
5
|
+
* Anthropic's official memory model
|
|
6
|
+
* (https://code.claude.com/docs/en/memory#claude-md-imports).
|
|
7
|
+
*
|
|
8
|
+
* The generated content is wrapped in `<!-- RULEBOOK:START v5.3.0 -->` /
|
|
9
|
+
* `<!-- RULEBOOK:END -->` sentinels so future `rulebook update` runs can
|
|
10
|
+
* regenerate the block in-place while preserving any user content outside
|
|
11
|
+
* the sentinels.
|
|
12
|
+
*/
|
|
13
|
+
export declare const CLAUDE_MD_FILE = "CLAUDE.md";
|
|
14
|
+
export declare const CLAUDE_MD_SENTINEL_START = "<!-- RULEBOOK:START v5.3.0";
|
|
15
|
+
export declare const CLAUDE_MD_SENTINEL_END = "<!-- RULEBOOK:END -->";
|
|
16
|
+
export declare const CLAUDE_MD_TEMPLATE_NAME = "CLAUDE_MD_v2.md";
|
|
17
|
+
export interface ClaudeMdGenerationOptions {
|
|
18
|
+
/**
|
|
19
|
+
* If true, every `@import` line in the template is kept regardless of
|
|
20
|
+
* whether the target file exists. Default false: missing imports are
|
|
21
|
+
* commented out so Claude Code does not warn about broken `@imports`.
|
|
22
|
+
*/
|
|
23
|
+
keepAllImports?: boolean;
|
|
24
|
+
}
|
|
25
|
+
export declare function getClaudeMdPath(projectRoot: string): string;
|
|
26
|
+
/**
|
|
27
|
+
* Read the v5.3.0 CLAUDE.md template from the package's templates directory.
|
|
28
|
+
*/
|
|
29
|
+
export declare function readClaudeMdTemplate(): Promise<string>;
|
|
30
|
+
/**
|
|
31
|
+
* Render the CLAUDE.md body for a given project. The result is the full
|
|
32
|
+
* file contents to write (including the RULEBOOK sentinels). When merging
|
|
33
|
+
* with an existing CLAUDE.md that already has content outside the sentinels,
|
|
34
|
+
* use {@link mergeIntoExisting} via `merger.ts`.
|
|
35
|
+
*/
|
|
36
|
+
export declare function generateClaudeMd(projectRoot: string, options?: ClaudeMdGenerationOptions): Promise<string>;
|
|
37
|
+
/**
|
|
38
|
+
* Write the CLAUDE.md file to disk. Creates a backup snapshot in
|
|
39
|
+
* `.rulebook/backup/` before overwriting. Returns the absolute path
|
|
40
|
+
* to the written file and the backup (if created).
|
|
41
|
+
*/
|
|
42
|
+
export declare function writeClaudeMd(projectRoot: string, content: string): Promise<{
|
|
43
|
+
path: string;
|
|
44
|
+
backupPath: string | null;
|
|
45
|
+
}>;
|
|
46
|
+
/**
|
|
47
|
+
* Detect whether a file's content already contains a v5.3.0-style RULEBOOK
|
|
48
|
+
* block. Used by the merger to decide between in-place block replacement
|
|
49
|
+
* and full-file overwrite.
|
|
50
|
+
*/
|
|
51
|
+
export declare function hasV2Sentinels(content: string): boolean;
|
|
52
|
+
//# sourceMappingURL=claude-md-generator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-md-generator.d.ts","sourceRoot":"","sources":["../../src/core/claude-md-generator.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;GAWG;AAEH,eAAO,MAAM,cAAc,cAAc,CAAC;AAC1C,eAAO,MAAM,wBAAwB,+BAA+B,CAAC;AACrE,eAAO,MAAM,sBAAsB,0BAA0B,CAAC;AAC9D,eAAO,MAAM,uBAAuB,oBAAoB,CAAC;AAYzD,MAAM,WAAW,yBAAyB;IACxC;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED;;GAEG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,MAAM,CAAC,CAM5D;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,yBAA8B,GACtC,OAAO,CAAC,MAAM,CAAC,CAGjB;AA+BD;;;;GAIG;AACH,wBAAsB,aAAa,CACjC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,CAatD;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEvD"}
|