@hivehub/rulebook 3.4.2 → 4.1.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/continue.md +33 -0
- package/.claude-plugin/marketplace.json +28 -29
- package/.claude-plugin/plugin.json +8 -8
- package/README.md +66 -144
- package/dist/agents/ralph-parser.d.ts +41 -1
- package/dist/agents/ralph-parser.d.ts.map +1 -1
- package/dist/agents/ralph-parser.js +202 -14
- package/dist/agents/ralph-parser.js.map +1 -1
- package/dist/cli/commands.d.ts +65 -0
- package/dist/cli/commands.d.ts.map +1 -1
- package/dist/cli/commands.js +837 -61
- package/dist/cli/commands.js.map +1 -1
- package/dist/core/agent-manager.d.ts +7 -0
- package/dist/core/agent-manager.d.ts.map +1 -1
- package/dist/core/agent-manager.js +150 -3
- package/dist/core/agent-manager.js.map +1 -1
- package/dist/core/claude-mcp.d.ts +17 -0
- package/dist/core/claude-mcp.d.ts.map +1 -1
- package/dist/core/claude-mcp.js +90 -6
- package/dist/core/claude-mcp.js.map +1 -1
- package/dist/core/config-manager.d.ts.map +1 -1
- package/dist/core/config-manager.js +40 -0
- package/dist/core/config-manager.js.map +1 -1
- package/dist/core/cursor-mdc-generator.d.ts +30 -0
- package/dist/core/cursor-mdc-generator.d.ts.map +1 -0
- package/dist/core/cursor-mdc-generator.js +98 -0
- package/dist/core/cursor-mdc-generator.js.map +1 -0
- package/dist/core/detector.d.ts +25 -1
- package/dist/core/detector.d.ts.map +1 -1
- package/dist/core/detector.js +321 -1
- package/dist/core/detector.js.map +1 -1
- package/dist/core/generator.d.ts +10 -0
- package/dist/core/generator.d.ts.map +1 -1
- package/dist/core/generator.js +177 -3
- package/dist/core/generator.js.map +1 -1
- package/dist/core/github-issues-importer.d.ts +82 -0
- package/dist/core/github-issues-importer.d.ts.map +1 -0
- package/dist/core/github-issues-importer.js +161 -0
- package/dist/core/github-issues-importer.js.map +1 -0
- package/dist/core/health-scorer.d.ts +39 -0
- package/dist/core/health-scorer.d.ts.map +1 -1
- package/dist/core/health-scorer.js +256 -13
- package/dist/core/health-scorer.js.map +1 -1
- package/dist/core/indexer/background-indexer.d.ts +27 -0
- package/dist/core/indexer/background-indexer.d.ts.map +1 -0
- package/dist/core/indexer/background-indexer.js +135 -0
- package/dist/core/indexer/background-indexer.js.map +1 -0
- package/dist/core/indexer/file-parser.d.ts +28 -0
- package/dist/core/indexer/file-parser.d.ts.map +1 -0
- package/dist/core/indexer/file-parser.js +171 -0
- package/dist/core/indexer/file-parser.js.map +1 -0
- package/dist/core/indexer/indexer-types.d.ts +35 -0
- package/dist/core/indexer/indexer-types.d.ts.map +1 -0
- package/dist/core/indexer/indexer-types.js +8 -0
- package/dist/core/indexer/indexer-types.js.map +1 -0
- package/dist/core/iteration-tracker.d.ts +28 -0
- package/dist/core/iteration-tracker.d.ts.map +1 -1
- package/dist/core/iteration-tracker.js +86 -0
- package/dist/core/iteration-tracker.js.map +1 -1
- package/dist/core/multi-tool-generator.d.ts +59 -0
- package/dist/core/multi-tool-generator.d.ts.map +1 -0
- package/dist/core/multi-tool-generator.js +157 -0
- package/dist/core/multi-tool-generator.js.map +1 -0
- package/dist/core/override-manager.d.ts +23 -0
- package/dist/core/override-manager.d.ts.map +1 -0
- package/dist/core/override-manager.js +82 -0
- package/dist/core/override-manager.js.map +1 -0
- package/dist/core/plans-manager.d.ts +46 -0
- package/dist/core/plans-manager.d.ts.map +1 -0
- package/dist/core/plans-manager.js +158 -0
- package/dist/core/plans-manager.js.map +1 -0
- package/dist/core/prd-generator.d.ts +12 -0
- package/dist/core/prd-generator.d.ts.map +1 -1
- package/dist/core/prd-generator.js +91 -2
- package/dist/core/prd-generator.js.map +1 -1
- package/dist/core/ralph-manager.d.ts +47 -1
- package/dist/core/ralph-manager.d.ts.map +1 -1
- package/dist/core/ralph-manager.js +107 -0
- package/dist/core/ralph-manager.js.map +1 -1
- package/dist/core/ralph-parallel.d.ts +55 -0
- package/dist/core/ralph-parallel.d.ts.map +1 -0
- package/dist/core/ralph-parallel.js +201 -0
- package/dist/core/ralph-parallel.js.map +1 -0
- package/dist/core/ralph-plan-checkpoint.d.ts +58 -0
- package/dist/core/ralph-plan-checkpoint.d.ts.map +1 -0
- package/dist/core/ralph-plan-checkpoint.js +154 -0
- package/dist/core/ralph-plan-checkpoint.js.map +1 -0
- package/dist/core/ralph-scripts.d.ts +12 -0
- package/dist/core/ralph-scripts.d.ts.map +1 -0
- package/dist/core/ralph-scripts.js +49 -0
- package/dist/core/ralph-scripts.js.map +1 -0
- package/dist/core/review-manager.d.ts +74 -0
- package/dist/core/review-manager.d.ts.map +1 -0
- package/dist/core/review-manager.js +371 -0
- package/dist/core/review-manager.js.map +1 -0
- package/dist/index.js +94 -2
- package/dist/index.js.map +1 -1
- package/dist/mcp/rulebook-server.d.ts.map +1 -1
- package/dist/mcp/rulebook-server.js +117 -8
- package/dist/mcp/rulebook-server.js.map +1 -1
- package/dist/memory/memory-manager.d.ts +4 -1
- package/dist/memory/memory-manager.d.ts.map +1 -1
- package/dist/memory/memory-manager.js +33 -4
- package/dist/memory/memory-manager.js.map +1 -1
- package/dist/memory/memory-search.d.ts +2 -2
- package/dist/memory/memory-search.d.ts.map +1 -1
- package/dist/memory/memory-search.js +19 -0
- package/dist/memory/memory-search.js.map +1 -1
- package/dist/memory/memory-store.d.ts +13 -0
- package/dist/memory/memory-store.d.ts.map +1 -1
- package/dist/memory/memory-store.js +92 -1
- package/dist/memory/memory-store.js.map +1 -1
- package/dist/memory/memory-types.d.ts +15 -0
- package/dist/memory/memory-types.d.ts.map +1 -1
- package/dist/types.d.ts +55 -2
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/templates/agents/implementer.md +35 -0
- package/templates/agents/researcher.md +34 -0
- package/templates/agents/team-lead.md +34 -0
- package/templates/agents/tester.md +42 -0
- package/templates/ci/rulebook-review.yml +26 -0
- package/templates/commands/rulebook-task-archive.md +24 -0
- package/templates/core/AGENTS_LEAN.md +25 -0
- package/templates/core/AGENTS_OVERRIDE.md +16 -0
- package/templates/core/MULTI_AGENT.md +74 -0
- package/templates/core/PLANS.md +28 -0
- package/templates/core/RALPH.md +45 -4
- package/templates/core/RULEBOOK.md +42 -0
- package/templates/ides/CONTINUE_RULES.md +16 -0
- package/templates/ides/COPILOT_INSTRUCTIONS.md +23 -0
- package/templates/ides/GEMINI_RULES.md +17 -0
- package/templates/ides/WINDSURF_RULES.md +14 -0
- package/templates/ides/cursor-mdc/go.mdc +24 -0
- package/templates/ides/cursor-mdc/python.mdc +24 -0
- package/templates/ides/cursor-mdc/quality.mdc +25 -0
- package/templates/ides/cursor-mdc/ralph.mdc +39 -0
- package/templates/ides/cursor-mdc/rulebook.mdc +38 -0
- package/templates/ides/cursor-mdc/rust.mdc +24 -0
- package/templates/ides/cursor-mdc/typescript.mdc +25 -0
- package/templates/modules/sequential-thinking.md +42 -0
- package/templates/ralph/ralph-history.bat +4 -0
- package/templates/ralph/ralph-history.sh +5 -0
- package/templates/ralph/ralph-init.bat +5 -0
- package/templates/ralph/ralph-init.sh +5 -0
- package/templates/ralph/ralph-pause.bat +5 -0
- package/templates/ralph/ralph-pause.sh +5 -0
- package/templates/ralph/ralph-run.bat +5 -0
- package/templates/ralph/ralph-run.sh +5 -0
- package/templates/ralph/ralph-status.bat +4 -0
- package/templates/ralph/ralph-status.sh +5 -0
- package/templates/services/DATADOG.md +26 -0
- package/templates/services/DOCKER.md +124 -0
- package/templates/services/DOCKER_COMPOSE.md +168 -0
- package/templates/services/HELM.md +194 -0
- package/templates/services/KUBERNETES.md +208 -0
- package/templates/services/OPENTELEMETRY.md +25 -0
- package/templates/services/PINO.md +24 -0
- package/templates/services/PROMETHEUS.md +33 -0
- package/templates/services/SENTRY.md +23 -0
- package/templates/services/WINSTON.md +30 -0
- package/dist/core/openspec-manager.d.ts +0 -133
- package/dist/core/openspec-manager.d.ts.map +0 -1
- package/dist/core/openspec-manager.js +0 -596
- package/dist/core/openspec-manager.js.map +0 -1
- package/dist/core/openspec-migrator.d.ts +0 -27
- package/dist/core/openspec-migrator.d.ts.map +0 -1
- package/dist/core/openspec-migrator.js +0 -262
- package/dist/core/openspec-migrator.js.map +0 -1
- package/dist/core/test-task-manager.d.ts +0 -49
- package/dist/core/test-task-manager.d.ts.map +0 -1
- package/dist/core/test-task-manager.js +0 -121
- package/dist/core/test-task-manager.js.map +0 -1
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
<!-- PINO:START -->
|
|
2
|
+
# Pino — Structured Logging
|
|
3
|
+
|
|
4
|
+
## Configuration
|
|
5
|
+
- Create singleton logger instance: `const logger = pino({ level: process.env.LOG_LEVEL || 'info' })`
|
|
6
|
+
- Use child loggers for request context: `req.log = logger.child({ requestId: req.id })`
|
|
7
|
+
- Configure pretty print for development only: `transport: { target: 'pino-pretty' }` (only when `NODE_ENV !== 'production'`)
|
|
8
|
+
|
|
9
|
+
## Log Levels
|
|
10
|
+
- `error`: Unexpected errors requiring immediate attention
|
|
11
|
+
- `warn`: Recoverable errors, deprecated usage, approaching limits
|
|
12
|
+
- `info`: Significant state changes, important business events
|
|
13
|
+
- `debug`: Detailed flow for troubleshooting (disabled in production)
|
|
14
|
+
- `trace`: High-frequency diagnostic data (never in production)
|
|
15
|
+
|
|
16
|
+
## Structured Fields
|
|
17
|
+
- Always include: `{ service, version, requestId, userId }` in request context
|
|
18
|
+
- Never log: passwords, tokens, credit cards, PII fields
|
|
19
|
+
- Log all outgoing HTTP calls with: `{ method, url, statusCode, duration }`
|
|
20
|
+
|
|
21
|
+
## Performance
|
|
22
|
+
- Avoid `JSON.stringify()` in log calls — pino handles serialization
|
|
23
|
+
- Use `logger.isLevelEnabled('debug')` before expensive debug computations
|
|
24
|
+
<!-- PINO:END -->
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
<!-- PROMETHEUS:START -->
|
|
2
|
+
# Prometheus — Metrics
|
|
3
|
+
|
|
4
|
+
## Setup
|
|
5
|
+
```typescript
|
|
6
|
+
import { Registry, collectDefaultMetrics } from 'prom-client';
|
|
7
|
+
const registry = new Registry();
|
|
8
|
+
collectDefaultMetrics({ register: registry });
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
Expose metrics endpoint:
|
|
12
|
+
```typescript
|
|
13
|
+
app.get('/metrics', async (req, res) => {
|
|
14
|
+
res.set('Content-Type', registry.contentType);
|
|
15
|
+
res.end(await registry.metrics());
|
|
16
|
+
});
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Metric Types
|
|
20
|
+
- **Counter**: Monotonically increasing values (`http_requests_total`)
|
|
21
|
+
- **Gauge**: Values that go up and down (`active_connections`, memory usage)
|
|
22
|
+
- **Histogram**: Duration/size distributions (`http_request_duration_seconds`)
|
|
23
|
+
- **Summary**: Percentile calculations (use Histogram instead when possible)
|
|
24
|
+
|
|
25
|
+
## Naming Conventions
|
|
26
|
+
- Format: `<namespace>_<metric_name>_<unit>` (e.g., `app_http_request_duration_seconds`)
|
|
27
|
+
- Use `_total` suffix for counters
|
|
28
|
+
- Include all relevant labels: `{ method, route, status_code }`
|
|
29
|
+
|
|
30
|
+
## Alerting
|
|
31
|
+
- Define recording rules for frequently queried expressions
|
|
32
|
+
- Set alert thresholds: error rate > 5%, p99 latency > 2s, memory > 80%
|
|
33
|
+
<!-- PROMETHEUS:END -->
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
<!-- SENTRY:START -->
|
|
2
|
+
# Sentry — Error Tracking
|
|
3
|
+
|
|
4
|
+
## Configuration
|
|
5
|
+
- Initialize Sentry at application entry point BEFORE other imports
|
|
6
|
+
- Set `dsn` from environment variable: `process.env.SENTRY_DSN`
|
|
7
|
+
- Configure `environment` from `NODE_ENV`
|
|
8
|
+
- Enable `tracesSampleRate: 0.1` in production (not 1.0)
|
|
9
|
+
|
|
10
|
+
## Error Capture
|
|
11
|
+
- Wrap route handlers with Sentry error middleware
|
|
12
|
+
- Use `Sentry.captureException(err)` in catch blocks for unexpected errors
|
|
13
|
+
- Add custom context: `Sentry.setContext('user', { id, email })`
|
|
14
|
+
- Never log sensitive data (passwords, tokens) in Sentry context
|
|
15
|
+
|
|
16
|
+
## Release Tracking
|
|
17
|
+
- Set `release` using git commit SHA: `process.env.SENTRY_RELEASE`
|
|
18
|
+
- Run `sentry-cli releases` in CI to associate commits with releases
|
|
19
|
+
|
|
20
|
+
## Performance
|
|
21
|
+
- Use `Sentry.startTransaction()` for tracking custom operations
|
|
22
|
+
- Add distributed tracing headers to internal service calls
|
|
23
|
+
<!-- SENTRY:END -->
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
<!-- WINSTON:START -->
|
|
2
|
+
# Winston — Logging
|
|
3
|
+
|
|
4
|
+
## Configuration
|
|
5
|
+
```typescript
|
|
6
|
+
const logger = winston.createLogger({
|
|
7
|
+
level: process.env.LOG_LEVEL || 'info',
|
|
8
|
+
format: winston.format.combine(
|
|
9
|
+
winston.format.timestamp(),
|
|
10
|
+
winston.format.json() // Always JSON in production
|
|
11
|
+
),
|
|
12
|
+
transports: [
|
|
13
|
+
new winston.transports.Console(),
|
|
14
|
+
new winston.transports.File({ filename: 'logs/error.log', level: 'error' }),
|
|
15
|
+
],
|
|
16
|
+
});
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Log Levels
|
|
20
|
+
- Use semantic levels: `error`, `warn`, `info`, `http`, `debug`
|
|
21
|
+
- Set `level: 'info'` in production; `level: 'debug'` in development
|
|
22
|
+
|
|
23
|
+
## Metadata
|
|
24
|
+
- Include structured metadata: `logger.info('message', { userId, requestId, duration })`
|
|
25
|
+
- Never log sensitive data (tokens, passwords, credit card numbers)
|
|
26
|
+
|
|
27
|
+
## Custom Transports
|
|
28
|
+
- Add external service transports (Datadog, Loggly) as additional transports
|
|
29
|
+
- Always keep console transport as fallback
|
|
30
|
+
<!-- WINSTON:END -->
|
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
import type { OpenSpecData, OpenSpecTask } from '../types.js';
|
|
2
|
-
export declare class OpenSpecManager {
|
|
3
|
-
private openspecPath;
|
|
4
|
-
private changesPath;
|
|
5
|
-
private data;
|
|
6
|
-
private onLog?;
|
|
7
|
-
constructor(projectRoot: string);
|
|
8
|
-
/**
|
|
9
|
-
* Set callback for logging (used by watcher UI)
|
|
10
|
-
*/
|
|
11
|
-
setLogCallback(callback: (type: 'info' | 'success' | 'warning' | 'error', message: string) => void): void;
|
|
12
|
-
/**
|
|
13
|
-
* Initialize OpenSpec directory structure (deprecated - no longer creates directories)
|
|
14
|
-
* OpenSpec is legacy; only operates on existing directories.
|
|
15
|
-
*/
|
|
16
|
-
initialize(): Promise<void>;
|
|
17
|
-
/**
|
|
18
|
-
* Load OpenSpec data from changes directory
|
|
19
|
-
*/
|
|
20
|
-
loadOpenSpec(): Promise<OpenSpecData>;
|
|
21
|
-
/**
|
|
22
|
-
* Save OpenSpec data (tasks are managed in changes, so this is mostly for metadata)
|
|
23
|
-
*/
|
|
24
|
-
saveOpenSpec(): Promise<void>;
|
|
25
|
-
/**
|
|
26
|
-
* Sync task status on agent start
|
|
27
|
-
* Loads all tasks and ensures the data is fresh
|
|
28
|
-
*/
|
|
29
|
-
syncTaskStatus(): Promise<void>;
|
|
30
|
-
/**
|
|
31
|
-
* Load tasks from all changes directories
|
|
32
|
-
*/
|
|
33
|
-
private loadTasksFromChanges;
|
|
34
|
-
/**
|
|
35
|
-
* Parse tasks from markdown content
|
|
36
|
-
*/
|
|
37
|
-
private parseTasksFromMarkdown;
|
|
38
|
-
/**
|
|
39
|
-
* Get tasks ordered by priority
|
|
40
|
-
*/
|
|
41
|
-
getTasksByPriority(): Promise<OpenSpecTask[]>;
|
|
42
|
-
/**
|
|
43
|
-
* Get current active task
|
|
44
|
-
*/
|
|
45
|
-
getCurrentTask(): Promise<OpenSpecTask | null>;
|
|
46
|
-
/**
|
|
47
|
-
* Set current task
|
|
48
|
-
*/
|
|
49
|
-
setCurrentTask(taskId: string): Promise<void>;
|
|
50
|
-
/**
|
|
51
|
-
* Update task status
|
|
52
|
-
*/
|
|
53
|
-
updateTaskStatus(taskId: string, status: OpenSpecTask['status']): Promise<void>;
|
|
54
|
-
/**
|
|
55
|
-
* Mark task as complete
|
|
56
|
-
*/
|
|
57
|
-
markTaskComplete(taskId: string): Promise<void>;
|
|
58
|
-
/**
|
|
59
|
-
* Update task status in markdown files
|
|
60
|
-
*/
|
|
61
|
-
private updateMarkdownTaskStatus;
|
|
62
|
-
/**
|
|
63
|
-
* Update task status in markdown content
|
|
64
|
-
*/
|
|
65
|
-
private updateTaskInMarkdown;
|
|
66
|
-
/**
|
|
67
|
-
* Add new task
|
|
68
|
-
*/
|
|
69
|
-
addTask(task: Omit<OpenSpecTask, 'id' | 'createdAt' | 'updatedAt' | 'attempts'>): Promise<string>;
|
|
70
|
-
/**
|
|
71
|
-
* Get task by ID
|
|
72
|
-
*/
|
|
73
|
-
getTask(taskId: string): Promise<OpenSpecTask | null>;
|
|
74
|
-
/**
|
|
75
|
-
* Get task dependencies
|
|
76
|
-
*/
|
|
77
|
-
getTaskDependencies(taskId: string): Promise<OpenSpecTask[]>;
|
|
78
|
-
/**
|
|
79
|
-
* Check if task dependencies are satisfied
|
|
80
|
-
*/
|
|
81
|
-
areDependenciesSatisfied(taskId: string): Promise<boolean>;
|
|
82
|
-
/**
|
|
83
|
-
* Get next available task
|
|
84
|
-
*/
|
|
85
|
-
getNextTask(): Promise<OpenSpecTask | null>;
|
|
86
|
-
/**
|
|
87
|
-
* Increment task attempts
|
|
88
|
-
*/
|
|
89
|
-
incrementTaskAttempts(taskId: string): Promise<void>;
|
|
90
|
-
/**
|
|
91
|
-
* Get task statistics
|
|
92
|
-
*/
|
|
93
|
-
getTaskStats(): Promise<{
|
|
94
|
-
total: number;
|
|
95
|
-
pending: number;
|
|
96
|
-
inProgress: number;
|
|
97
|
-
completed: number;
|
|
98
|
-
failed: number;
|
|
99
|
-
skipped: number;
|
|
100
|
-
}>;
|
|
101
|
-
/**
|
|
102
|
-
* Generate ASCII dependency tree
|
|
103
|
-
*/
|
|
104
|
-
generateDependencyTree(): Promise<string>;
|
|
105
|
-
/**
|
|
106
|
-
* Validate dependency graph for cycles
|
|
107
|
-
*/
|
|
108
|
-
validateDependencyGraph(): Promise<{
|
|
109
|
-
valid: boolean;
|
|
110
|
-
cycles: string[][];
|
|
111
|
-
}>;
|
|
112
|
-
/**
|
|
113
|
-
* Get tasks that can be executed in parallel
|
|
114
|
-
*/
|
|
115
|
-
getParallelExecutableTasks(): Promise<OpenSpecTask[][]>;
|
|
116
|
-
/**
|
|
117
|
-
* Get execution order respecting dependencies
|
|
118
|
-
*/
|
|
119
|
-
getExecutionOrder(): Promise<OpenSpecTask[]>;
|
|
120
|
-
/**
|
|
121
|
-
* Check if task can be started (dependencies satisfied)
|
|
122
|
-
*/
|
|
123
|
-
canStartTask(taskId: string): Promise<boolean>;
|
|
124
|
-
/**
|
|
125
|
-
* Get blocking tasks (tasks that block the given task)
|
|
126
|
-
*/
|
|
127
|
-
getBlockingTasks(taskId: string): Promise<OpenSpecTask[]>;
|
|
128
|
-
}
|
|
129
|
-
/**
|
|
130
|
-
* Create a new OpenSpecManager instance
|
|
131
|
-
*/
|
|
132
|
-
export declare function createOpenSpecManager(projectRoot: string): OpenSpecManager;
|
|
133
|
-
//# sourceMappingURL=openspec-manager.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"openspec-manager.d.ts","sourceRoot":"","sources":["../../src/core/openspec-manager.ts"],"names":[],"mappings":"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"}
|