@hivehub/rulebook 2.0.0 → 3.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/README.md +779 -654
- package/dist/cli/commands.d.ts +22 -0
- package/dist/cli/commands.d.ts.map +1 -1
- package/dist/cli/commands.js +291 -8
- package/dist/cli/commands.js.map +1 -1
- package/dist/core/claude-mcp.d.ts +32 -0
- package/dist/core/claude-mcp.d.ts.map +1 -0
- package/dist/core/claude-mcp.js +92 -0
- package/dist/core/claude-mcp.js.map +1 -0
- package/dist/core/config-manager.d.ts.map +1 -1
- package/dist/core/config-manager.js +27 -6
- package/dist/core/config-manager.js.map +1 -1
- package/dist/core/generator.d.ts.map +1 -1
- package/dist/core/generator.js +98 -49
- package/dist/core/generator.js.map +1 -1
- package/dist/core/migrator.d.ts +13 -0
- package/dist/core/migrator.d.ts.map +1 -1
- package/dist/core/migrator.js +76 -9
- package/dist/core/migrator.js.map +1 -1
- package/dist/core/openspec-migrator.d.ts +1 -1
- package/dist/core/openspec-migrator.d.ts.map +1 -1
- package/dist/core/openspec-migrator.js +14 -7
- package/dist/core/openspec-migrator.js.map +1 -1
- package/dist/core/workflow-generator.js +297 -176
- package/dist/core/workflow-generator.js.map +1 -1
- package/dist/index.js +40 -1
- package/dist/index.js.map +1 -1
- package/dist/mcp/rulebook-server.d.ts.map +1 -1
- package/dist/mcp/rulebook-server.js +255 -74
- package/dist/mcp/rulebook-server.js.map +1 -1
- package/dist/memory/hnsw-index.d.ts +63 -0
- package/dist/memory/hnsw-index.d.ts.map +1 -0
- package/dist/memory/hnsw-index.js +421 -0
- package/dist/memory/hnsw-index.js.map +1 -0
- package/dist/memory/memory-cache.d.ts +33 -0
- package/dist/memory/memory-cache.d.ts.map +1 -0
- package/dist/memory/memory-cache.js +85 -0
- package/dist/memory/memory-cache.js.map +1 -0
- package/dist/memory/memory-hooks.d.ts +42 -0
- package/dist/memory/memory-hooks.d.ts.map +1 -0
- package/dist/memory/memory-hooks.js +193 -0
- package/dist/memory/memory-hooks.js.map +1 -0
- package/dist/memory/memory-manager.d.ts +55 -0
- package/dist/memory/memory-manager.d.ts.map +1 -0
- package/dist/memory/memory-manager.js +209 -0
- package/dist/memory/memory-manager.js.map +1 -0
- package/dist/memory/memory-search.d.ts +42 -0
- package/dist/memory/memory-search.d.ts.map +1 -0
- package/dist/memory/memory-search.js +166 -0
- package/dist/memory/memory-search.js.map +1 -0
- package/dist/memory/memory-store.d.ts +59 -0
- package/dist/memory/memory-store.d.ts.map +1 -0
- package/dist/memory/memory-store.js +394 -0
- package/dist/memory/memory-store.js.map +1 -0
- package/dist/memory/memory-types.d.ts +69 -0
- package/dist/memory/memory-types.d.ts.map +1 -0
- package/dist/memory/memory-types.js +7 -0
- package/dist/memory/memory-types.js.map +1 -0
- package/dist/memory/memory-vectorizer.d.ts +29 -0
- package/dist/memory/memory-vectorizer.d.ts.map +1 -0
- package/dist/memory/memory-vectorizer.js +104 -0
- package/dist/memory/memory-vectorizer.js.map +1 -0
- package/dist/types.d.ts +7 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +107 -106
- package/templates/cli/CLAUDE_CODE.md +114 -13
- package/templates/commands/rulebook-memory-save.md +48 -0
- package/templates/commands/rulebook-memory-search.md +47 -0
- package/templates/commands/rulebook-task-apply.md +2 -2
- package/templates/commands/rulebook-task-archive.md +2 -2
- package/templates/commands/rulebook-task-create.md +2 -2
- package/templates/commands/rulebook-task-list.md +2 -2
- package/templates/commands/rulebook-task-show.md +2 -2
- package/templates/commands/rulebook-task-validate.md +2 -2
- package/templates/git/CI_CD_PATTERNS.md +4 -4
- package/templates/git/GITHUB_ACTIONS.md +3 -3
- package/templates/git/GITLAB_CI.md +4 -4
- package/templates/git/SECRETS_MANAGEMENT.md +4 -4
- package/templates/hooks/COMMIT_MSG.md +4 -4
- package/templates/hooks/POST_CHECKOUT.md +3 -3
- package/templates/hooks/PREPARE_COMMIT_MSG.md +3 -3
- package/templates/hooks/PRE_COMMIT.md +4 -4
- package/templates/hooks/PRE_PUSH.md +4 -4
- package/templates/modules/MEMORY.md +63 -0
- package/templates/skills/cli/aider/SKILL.md +59 -0
- package/templates/skills/cli/amazon-q/SKILL.md +35 -0
- package/templates/skills/cli/auggie/SKILL.md +42 -0
- package/templates/skills/cli/claude/SKILL.md +42 -0
- package/templates/skills/cli/claude-code/SKILL.md +146 -0
- package/templates/skills/cli/cline/SKILL.md +42 -0
- package/templates/skills/cli/codebuddy/SKILL.md +30 -0
- package/templates/skills/cli/codeium/SKILL.md +30 -0
- package/templates/skills/cli/codex/SKILL.md +31 -0
- package/templates/skills/cli/continue/SKILL.md +44 -0
- package/templates/skills/cli/cursor-cli/SKILL.md +38 -0
- package/templates/skills/cli/factory/SKILL.md +28 -0
- package/templates/skills/cli/gemini/SKILL.md +45 -0
- package/templates/skills/cli/kilocode/SKILL.md +28 -0
- package/templates/skills/cli/opencode/SKILL.md +28 -0
- package/templates/skills/core/agent-automation/SKILL.md +194 -0
- package/templates/skills/core/dag/SKILL.md +314 -0
- package/templates/skills/core/documentation-rules/SKILL.md +47 -0
- package/templates/skills/core/quality-enforcement/SKILL.md +78 -0
- package/templates/skills/frameworks/angular/SKILL.md +46 -0
- package/templates/skills/frameworks/django/SKILL.md +93 -0
- package/templates/skills/frameworks/electron/SKILL.md +157 -0
- package/templates/skills/frameworks/flask/SKILL.md +48 -0
- package/templates/skills/frameworks/flutter/SKILL.md +65 -0
- package/templates/skills/frameworks/jquery/SKILL.md +42 -0
- package/templates/skills/frameworks/laravel/SKILL.md +48 -0
- package/templates/skills/frameworks/nestjs/SKILL.md +53 -0
- package/templates/skills/frameworks/nextjs/SKILL.md +137 -0
- package/templates/skills/frameworks/nuxt/SKILL.md +50 -0
- package/templates/skills/frameworks/rails/SKILL.md +76 -0
- package/templates/skills/frameworks/react/SKILL.md +48 -0
- package/templates/skills/frameworks/react-native/SKILL.md +57 -0
- package/templates/skills/frameworks/spring/SKILL.md +49 -0
- package/templates/skills/frameworks/symfony/SKILL.md +46 -0
- package/templates/skills/frameworks/vue/SKILL.md +46 -0
- package/templates/skills/frameworks/zend/SKILL.md +45 -0
- package/templates/skills/ides/copilot/SKILL.md +47 -0
- package/templates/skills/ides/cursor/SKILL.md +53 -0
- package/templates/skills/ides/jetbrains-ai/SKILL.md +45 -0
- package/templates/skills/ides/replit/SKILL.md +46 -0
- package/templates/skills/ides/tabnine/SKILL.md +39 -0
- package/templates/skills/ides/vscode/SKILL.md +50 -0
- package/templates/skills/ides/windsurf/SKILL.md +46 -0
- package/templates/skills/ides/zed/SKILL.md +42 -0
- package/templates/skills/languages/ada/SKILL.md +68 -0
- package/templates/skills/languages/c/SKILL.md +343 -0
- package/templates/skills/languages/cpp/SKILL.md +753 -0
- package/templates/skills/languages/csharp/SKILL.md +427 -0
- package/templates/skills/languages/dart/SKILL.md +342 -0
- package/templates/skills/languages/elixir/SKILL.md +464 -0
- package/templates/skills/languages/erlang/SKILL.md +371 -0
- package/templates/skills/languages/go/SKILL.md +655 -0
- package/templates/skills/languages/haskell/SKILL.md +187 -0
- package/templates/skills/languages/java/SKILL.md +617 -0
- package/templates/skills/languages/javascript/SKILL.md +641 -0
- package/templates/skills/languages/julia/SKILL.md +107 -0
- package/templates/skills/languages/kotlin/SKILL.md +521 -0
- package/templates/skills/languages/lisp/SKILL.md +110 -0
- package/templates/skills/languages/lua/SKILL.md +84 -0
- package/templates/skills/languages/objectivec/SKILL.md +100 -0
- package/templates/skills/languages/php/SKILL.md +426 -0
- package/templates/skills/languages/python/SKILL.md +692 -0
- package/templates/skills/languages/r/SKILL.md +360 -0
- package/templates/skills/languages/ruby/SKILL.md +431 -0
- package/templates/skills/languages/rust/SKILL.md +487 -0
- package/templates/skills/languages/sas/SKILL.md +83 -0
- package/templates/skills/languages/scala/SKILL.md +358 -0
- package/templates/skills/languages/solidity/SKILL.md +590 -0
- package/templates/skills/languages/sql/SKILL.md +147 -0
- package/templates/skills/languages/swift/SKILL.md +476 -0
- package/templates/skills/languages/zig/SKILL.md +275 -0
- package/templates/skills/modules/atlassian/SKILL.md +265 -0
- package/templates/skills/modules/context7/SKILL.md +64 -0
- package/templates/skills/modules/figma/SKILL.md +277 -0
- package/templates/skills/modules/github-mcp/SKILL.md +74 -0
- package/templates/skills/modules/grafana/SKILL.md +338 -0
- package/templates/skills/modules/memory/SKILL.md +73 -0
- package/templates/skills/modules/notion/SKILL.md +257 -0
- package/templates/skills/modules/playwright/SKILL.md +100 -0
- package/templates/skills/modules/rulebook-mcp/SKILL.md +166 -0
- package/templates/skills/modules/serena/SKILL.md +347 -0
- package/templates/skills/modules/supabase/SKILL.md +233 -0
- package/templates/skills/modules/synap/SKILL.md +79 -0
- package/templates/skills/modules/vectorizer/SKILL.md +73 -0
- package/templates/skills/services/azure-blob/SKILL.md +194 -0
- package/templates/skills/services/cassandra/SKILL.md +249 -0
- package/templates/skills/services/dynamodb/SKILL.md +318 -0
- package/templates/skills/services/elasticsearch/SKILL.md +357 -0
- package/templates/skills/services/gcs/SKILL.md +188 -0
- package/templates/skills/services/influxdb/SKILL.md +275 -0
- package/templates/skills/services/kafka/SKILL.md +351 -0
- package/templates/skills/services/mariadb/SKILL.md +193 -0
- package/templates/skills/services/memcached/SKILL.md +252 -0
- package/templates/skills/services/minio/SKILL.md +211 -0
- package/templates/skills/services/mongodb/SKILL.md +278 -0
- package/templates/skills/services/mysql/SKILL.md +368 -0
- package/templates/skills/services/neo4j/SKILL.md +257 -0
- package/templates/skills/services/oracle/SKILL.md +300 -0
- package/templates/skills/services/postgresql/SKILL.md +336 -0
- package/templates/skills/services/rabbitmq/SKILL.md +296 -0
- package/templates/skills/services/redis/SKILL.md +302 -0
- package/templates/skills/services/s3/SKILL.md +308 -0
- package/templates/skills/services/sqlite/SKILL.md +304 -0
- package/templates/skills/services/sqlserver/SKILL.md +304 -0
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Memory System Type Definitions
|
|
3
|
+
*
|
|
4
|
+
* Core types for the persistent memory system with BM25 + HNSW hybrid search.
|
|
5
|
+
*/
|
|
6
|
+
export type MemoryType = 'bugfix' | 'feature' | 'refactor' | 'decision' | 'discovery' | 'change' | 'observation';
|
|
7
|
+
export type SearchMode = 'bm25' | 'vector' | 'hybrid';
|
|
8
|
+
export interface Memory {
|
|
9
|
+
id: string;
|
|
10
|
+
type: MemoryType;
|
|
11
|
+
title: string;
|
|
12
|
+
content: string;
|
|
13
|
+
project: string;
|
|
14
|
+
tags: string[];
|
|
15
|
+
sessionId?: string;
|
|
16
|
+
createdAt: number;
|
|
17
|
+
updatedAt: number;
|
|
18
|
+
accessedAt: number;
|
|
19
|
+
}
|
|
20
|
+
export interface MemorySession {
|
|
21
|
+
id: string;
|
|
22
|
+
project: string;
|
|
23
|
+
status: 'active' | 'completed';
|
|
24
|
+
startedAt: number;
|
|
25
|
+
endedAt?: number;
|
|
26
|
+
summary?: string;
|
|
27
|
+
toolCalls: number;
|
|
28
|
+
}
|
|
29
|
+
export interface MemorySearchResult {
|
|
30
|
+
id: string;
|
|
31
|
+
title: string;
|
|
32
|
+
type: MemoryType;
|
|
33
|
+
score: number;
|
|
34
|
+
matchType: 'bm25' | 'vector' | 'both';
|
|
35
|
+
createdAt: number;
|
|
36
|
+
}
|
|
37
|
+
export interface MemorySearchOptions {
|
|
38
|
+
query: string;
|
|
39
|
+
mode?: SearchMode;
|
|
40
|
+
type?: MemoryType;
|
|
41
|
+
limit?: number;
|
|
42
|
+
project?: string;
|
|
43
|
+
}
|
|
44
|
+
export interface MemoryConfig {
|
|
45
|
+
enabled?: boolean;
|
|
46
|
+
dbPath?: string;
|
|
47
|
+
maxSizeBytes?: number;
|
|
48
|
+
autoCapture?: boolean;
|
|
49
|
+
vectorDimensions?: number;
|
|
50
|
+
}
|
|
51
|
+
export interface MemoryStats {
|
|
52
|
+
dbSizeBytes: number;
|
|
53
|
+
memoryCount: number;
|
|
54
|
+
sessionCount: number;
|
|
55
|
+
oldestMemory?: number;
|
|
56
|
+
newestMemory?: number;
|
|
57
|
+
maxSizeBytes: number;
|
|
58
|
+
usagePercent: number;
|
|
59
|
+
indexHealth: 'good' | 'degraded' | 'needs-rebuild';
|
|
60
|
+
}
|
|
61
|
+
export interface TimelineEntry {
|
|
62
|
+
id: string;
|
|
63
|
+
title: string;
|
|
64
|
+
type: MemoryType;
|
|
65
|
+
createdAt: number;
|
|
66
|
+
position: 'before' | 'anchor' | 'after';
|
|
67
|
+
distanceFromAnchor: number;
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=memory-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-types.d.ts","sourceRoot":"","sources":["../../src/memory/memory-types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,MAAM,UAAU,GAClB,QAAQ,GACR,SAAS,GACT,UAAU,GACV,UAAU,GACV,WAAW,GACX,QAAQ,GACR,aAAa,CAAC;AAElB,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEtD,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,QAAQ,GAAG,WAAW,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;IACtC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,GAAG,UAAU,GAAG,eAAe,CAAC;CACpD;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,UAAU,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;IACxC,kBAAkB,EAAE,MAAM,CAAC;CAC5B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-types.js","sourceRoot":"","sources":["../../src/memory/memory-types.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TF-IDF Vectorizer with Feature Hashing (FNV1a)
|
|
3
|
+
*
|
|
4
|
+
* Generates fixed-dimension text embeddings using TF-IDF weighting
|
|
5
|
+
* with feature hashing (hashing trick). Zero external dependencies.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* FNV-1a hash function - fast, simple, good distribution
|
|
9
|
+
*/
|
|
10
|
+
export declare function fnv1a(str: string): number;
|
|
11
|
+
/**
|
|
12
|
+
* Tokenize text: lowercase, split on non-word chars, remove stop words
|
|
13
|
+
*/
|
|
14
|
+
export declare function tokenize(text: string): string[];
|
|
15
|
+
/**
|
|
16
|
+
* Vectorize text using TF-IDF with feature hashing
|
|
17
|
+
*
|
|
18
|
+
* 1. Tokenize and compute term frequencies
|
|
19
|
+
* 2. Hash each token to a bucket via FNV1a
|
|
20
|
+
* 3. Apply TF weight (1 + log(tf)) to bucket
|
|
21
|
+
* 4. L2-normalize the result
|
|
22
|
+
*/
|
|
23
|
+
export declare function vectorize(text: string, dimensions?: number): Float32Array;
|
|
24
|
+
/**
|
|
25
|
+
* Cosine similarity between two vectors
|
|
26
|
+
* Returns value between -1 and 1 (1 = identical, 0 = orthogonal)
|
|
27
|
+
*/
|
|
28
|
+
export declare function cosineSimilarity(a: Float32Array, b: Float32Array): number;
|
|
29
|
+
//# sourceMappingURL=memory-vectorizer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-vectorizer.d.ts","sourceRoot":"","sources":["../../src/memory/memory-vectorizer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAoBH;;GAEG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAOzC;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAK/C;AAED;;;;;;;GAOG;AACH,wBAAgB,SAAS,CACvB,IAAI,EAAE,MAAM,EACZ,UAAU,GAAE,MAA2B,GACtC,YAAY,CAqCd;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,GAAG,MAAM,CAmBzE"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TF-IDF Vectorizer with Feature Hashing (FNV1a)
|
|
3
|
+
*
|
|
4
|
+
* Generates fixed-dimension text embeddings using TF-IDF weighting
|
|
5
|
+
* with feature hashing (hashing trick). Zero external dependencies.
|
|
6
|
+
*/
|
|
7
|
+
const DEFAULT_DIMENSIONS = 256;
|
|
8
|
+
const STOP_WORDS = new Set([
|
|
9
|
+
'a', 'an', 'the', 'and', 'or', 'but', 'in', 'on', 'at', 'to', 'for',
|
|
10
|
+
'of', 'with', 'by', 'from', 'is', 'it', 'as', 'be', 'was', 'were',
|
|
11
|
+
'been', 'are', 'am', 'do', 'does', 'did', 'have', 'has', 'had',
|
|
12
|
+
'will', 'would', 'could', 'should', 'may', 'might', 'shall', 'can',
|
|
13
|
+
'not', 'no', 'nor', 'so', 'if', 'then', 'than', 'that', 'this',
|
|
14
|
+
'these', 'those', 'what', 'which', 'who', 'whom', 'when', 'where',
|
|
15
|
+
'why', 'how', 'all', 'each', 'every', 'both', 'few', 'more', 'most',
|
|
16
|
+
'some', 'any', 'such', 'only', 'own', 'same', 'too', 'very',
|
|
17
|
+
'just', 'about', 'above', 'after', 'again', 'also', 'because',
|
|
18
|
+
'before', 'between', 'during', 'into', 'out', 'over', 'under',
|
|
19
|
+
'up', 'down', 'here', 'there', 'other', 'its', 'my', 'your',
|
|
20
|
+
'his', 'her', 'our', 'their', 'i', 'you', 'he', 'she', 'we', 'they',
|
|
21
|
+
'me', 'him', 'us', 'them',
|
|
22
|
+
]);
|
|
23
|
+
/**
|
|
24
|
+
* FNV-1a hash function - fast, simple, good distribution
|
|
25
|
+
*/
|
|
26
|
+
export function fnv1a(str) {
|
|
27
|
+
let hash = 0x811c9dc5; // FNV offset basis (32-bit)
|
|
28
|
+
for (let i = 0; i < str.length; i++) {
|
|
29
|
+
hash ^= str.charCodeAt(i);
|
|
30
|
+
hash = (hash * 0x01000193) | 0; // FNV prime, force 32-bit
|
|
31
|
+
}
|
|
32
|
+
return hash >>> 0; // unsigned
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Tokenize text: lowercase, split on non-word chars, remove stop words
|
|
36
|
+
*/
|
|
37
|
+
export function tokenize(text) {
|
|
38
|
+
return text
|
|
39
|
+
.toLowerCase()
|
|
40
|
+
.split(/\W+/)
|
|
41
|
+
.filter((token) => token.length > 1 && !STOP_WORDS.has(token));
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Vectorize text using TF-IDF with feature hashing
|
|
45
|
+
*
|
|
46
|
+
* 1. Tokenize and compute term frequencies
|
|
47
|
+
* 2. Hash each token to a bucket via FNV1a
|
|
48
|
+
* 3. Apply TF weight (1 + log(tf)) to bucket
|
|
49
|
+
* 4. L2-normalize the result
|
|
50
|
+
*/
|
|
51
|
+
export function vectorize(text, dimensions = DEFAULT_DIMENSIONS) {
|
|
52
|
+
const vector = new Float32Array(dimensions);
|
|
53
|
+
const tokens = tokenize(text);
|
|
54
|
+
if (tokens.length === 0) {
|
|
55
|
+
return vector;
|
|
56
|
+
}
|
|
57
|
+
// Compute term frequencies
|
|
58
|
+
const tf = new Map();
|
|
59
|
+
for (const token of tokens) {
|
|
60
|
+
tf.set(token, (tf.get(token) || 0) + 1);
|
|
61
|
+
}
|
|
62
|
+
// Hash tokens to buckets with TF-IDF weight
|
|
63
|
+
for (const [token, count] of tf) {
|
|
64
|
+
const bucket = fnv1a(token) % dimensions;
|
|
65
|
+
const weight = 1 + Math.log(count); // TF weight: 1 + log(tf)
|
|
66
|
+
// Use sign hashing to reduce collision bias
|
|
67
|
+
const sign = fnv1a(token + '_sign') % 2 === 0 ? 1 : -1;
|
|
68
|
+
vector[bucket] += sign * weight;
|
|
69
|
+
}
|
|
70
|
+
// L2 normalize
|
|
71
|
+
let magnitude = 0;
|
|
72
|
+
for (let i = 0; i < dimensions; i++) {
|
|
73
|
+
magnitude += vector[i] * vector[i];
|
|
74
|
+
}
|
|
75
|
+
magnitude = Math.sqrt(magnitude);
|
|
76
|
+
if (magnitude > 0) {
|
|
77
|
+
for (let i = 0; i < dimensions; i++) {
|
|
78
|
+
vector[i] /= magnitude;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
return vector;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Cosine similarity between two vectors
|
|
85
|
+
* Returns value between -1 and 1 (1 = identical, 0 = orthogonal)
|
|
86
|
+
*/
|
|
87
|
+
export function cosineSimilarity(a, b) {
|
|
88
|
+
if (a.length !== b.length) {
|
|
89
|
+
throw new Error(`Vector dimensions mismatch: ${a.length} vs ${b.length}`);
|
|
90
|
+
}
|
|
91
|
+
let dot = 0;
|
|
92
|
+
let magA = 0;
|
|
93
|
+
let magB = 0;
|
|
94
|
+
for (let i = 0; i < a.length; i++) {
|
|
95
|
+
dot += a[i] * b[i];
|
|
96
|
+
magA += a[i] * a[i];
|
|
97
|
+
magB += b[i] * b[i];
|
|
98
|
+
}
|
|
99
|
+
const denominator = Math.sqrt(magA) * Math.sqrt(magB);
|
|
100
|
+
if (denominator === 0)
|
|
101
|
+
return 0;
|
|
102
|
+
return dot / denominator;
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=memory-vectorizer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-vectorizer.js","sourceRoot":"","sources":["../../src/memory/memory-vectorizer.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -123,6 +123,13 @@ export interface RulebookConfig {
|
|
|
123
123
|
tasksDir?: string;
|
|
124
124
|
archiveDir?: string;
|
|
125
125
|
};
|
|
126
|
+
memory?: {
|
|
127
|
+
enabled?: boolean;
|
|
128
|
+
dbPath?: string;
|
|
129
|
+
maxSizeBytes?: number;
|
|
130
|
+
autoCapture?: boolean;
|
|
131
|
+
vectorDimensions?: number;
|
|
132
|
+
};
|
|
126
133
|
skills?: {
|
|
127
134
|
enabled: string[];
|
|
128
135
|
disabled?: string[];
|
package/dist/types.d.ts.map
CHANGED
|
@@ -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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"}
|
package/package.json
CHANGED
|
@@ -1,106 +1,107 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@hivehub/rulebook",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "Standardize AI-generated projects with automated templates, quality gates, and framework detection for 28 languages, 17 frameworks,
|
|
5
|
-
"type": "module",
|
|
6
|
-
"main": "dist/index.js",
|
|
7
|
-
"bin": {
|
|
8
|
-
"rulebook": "./dist/index.js",
|
|
9
|
-
"rulebook-mcp": "./dist/mcp/rulebook-server.js"
|
|
10
|
-
},
|
|
11
|
-
"scripts": {
|
|
12
|
-
"build": "tsc",
|
|
13
|
-
"dev": "tsx src/index.ts",
|
|
14
|
-
"test": "vitest run --no-watch",
|
|
15
|
-
"test:watch": "vitest",
|
|
16
|
-
"test:coverage": "vitest run --coverage --no-watch",
|
|
17
|
-
"test:agent": "node scripts/test-agent-simple.mjs",
|
|
18
|
-
"test:agent:quick": "node scripts/test-agent-simple.mjs",
|
|
19
|
-
"test:agent:full": "node scripts/test-agent-manager.js all",
|
|
20
|
-
"test:agent:comprehensive": "npx vitest run tests/agent-manager-comprehensive.test.ts",
|
|
21
|
-
"setup:mcp": "node scripts/setup-mcp-config.js",
|
|
22
|
-
"lint": "npx eslint src/**/*.ts --quiet",
|
|
23
|
-
"lint:fix": "npx eslint src/**/*.ts --fix --quiet",
|
|
24
|
-
"format": "npx prettier --write \"src/**/*.ts\" \"tests/**/*.ts\"",
|
|
25
|
-
"type-check": "tsc --noEmit",
|
|
26
|
-
"prepublishOnly": "npm run build",
|
|
27
|
-
"publish:wsl": "export BROWSER=wslview && npm publish",
|
|
28
|
-
"mcp-server": "node dist/mcp/rulebook-server.js"
|
|
29
|
-
},
|
|
30
|
-
"keywords": [
|
|
31
|
-
"ai",
|
|
32
|
-
"automation",
|
|
33
|
-
"templates",
|
|
34
|
-
"rules",
|
|
35
|
-
"standards",
|
|
36
|
-
"cli",
|
|
37
|
-
"npx",
|
|
38
|
-
"agents",
|
|
39
|
-
"cursor",
|
|
40
|
-
"windsurf",
|
|
41
|
-
"git-hooks",
|
|
42
|
-
"frameworks",
|
|
43
|
-
"nestjs",
|
|
44
|
-
"django",
|
|
45
|
-
"nextjs",
|
|
46
|
-
"mcp",
|
|
47
|
-
"typescript",
|
|
48
|
-
"rust",
|
|
49
|
-
"python"
|
|
50
|
-
],
|
|
51
|
-
"author": "HiveLLM Team",
|
|
52
|
-
"license": "Apache-2.0",
|
|
53
|
-
"engines": {
|
|
54
|
-
"node": ">=20.0.0"
|
|
55
|
-
},
|
|
56
|
-
"dependencies": {
|
|
57
|
-
"@modelcontextprotocol/sdk": "^1.22.0",
|
|
58
|
-
"@types/blessed": "^0.1.26",
|
|
59
|
-
"ansi-escapes": "^7.2.0",
|
|
60
|
-
"blessed": "^0.1.81",
|
|
61
|
-
"chalk": "^5.3.0",
|
|
62
|
-
"cli-cursor": "^5.0.0",
|
|
63
|
-
"commander": "^14.0.2",
|
|
64
|
-
"execa": "^9.6.0",
|
|
65
|
-
"glob": "^13.0.0",
|
|
66
|
-
"inquirer": "^13.0.1",
|
|
67
|
-
"js-yaml": "^4.1.1",
|
|
68
|
-
"node-notifier": "^10.0.1",
|
|
69
|
-
"ora": "^9.0.0",
|
|
70
|
-
"picocolors": "^1.0.0",
|
|
71
|
-
"
|
|
72
|
-
"
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
"@
|
|
77
|
-
"@types/
|
|
78
|
-
"@types/
|
|
79
|
-
"@types/
|
|
80
|
-
"@
|
|
81
|
-
"@
|
|
82
|
-
"
|
|
83
|
-
"@typescript-eslint/parser": "^8.47.0",
|
|
84
|
-
"@vitest/coverage-v8": "^4.0.13",
|
|
85
|
-
"eslint": "^9.37.0",
|
|
86
|
-
"
|
|
87
|
-
"
|
|
88
|
-
"
|
|
89
|
-
"
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
"
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
"
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "@hivehub/rulebook",
|
|
3
|
+
"version": "3.0.0",
|
|
4
|
+
"description": "Standardize AI-generated projects with automated templates, quality gates, persistent memory, and framework detection for 28 languages, 17 frameworks, 13 MCP modules, and 20 services",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"bin": {
|
|
8
|
+
"rulebook": "./dist/index.js",
|
|
9
|
+
"rulebook-mcp": "./dist/mcp/rulebook-server.js"
|
|
10
|
+
},
|
|
11
|
+
"scripts": {
|
|
12
|
+
"build": "tsc",
|
|
13
|
+
"dev": "tsx src/index.ts",
|
|
14
|
+
"test": "vitest run --no-watch",
|
|
15
|
+
"test:watch": "vitest",
|
|
16
|
+
"test:coverage": "vitest run --coverage --no-watch",
|
|
17
|
+
"test:agent": "node scripts/test-agent-simple.mjs",
|
|
18
|
+
"test:agent:quick": "node scripts/test-agent-simple.mjs",
|
|
19
|
+
"test:agent:full": "node scripts/test-agent-manager.js all",
|
|
20
|
+
"test:agent:comprehensive": "npx vitest run tests/agent-manager-comprehensive.test.ts",
|
|
21
|
+
"setup:mcp": "node scripts/setup-mcp-config.js",
|
|
22
|
+
"lint": "npx eslint src/**/*.ts --quiet",
|
|
23
|
+
"lint:fix": "npx eslint src/**/*.ts --fix --quiet",
|
|
24
|
+
"format": "npx prettier --write \"src/**/*.ts\" \"tests/**/*.ts\"",
|
|
25
|
+
"type-check": "tsc --noEmit",
|
|
26
|
+
"prepublishOnly": "npm run build",
|
|
27
|
+
"publish:wsl": "export BROWSER=wslview && npm publish",
|
|
28
|
+
"mcp-server": "node dist/mcp/rulebook-server.js"
|
|
29
|
+
},
|
|
30
|
+
"keywords": [
|
|
31
|
+
"ai",
|
|
32
|
+
"automation",
|
|
33
|
+
"templates",
|
|
34
|
+
"rules",
|
|
35
|
+
"standards",
|
|
36
|
+
"cli",
|
|
37
|
+
"npx",
|
|
38
|
+
"agents",
|
|
39
|
+
"cursor",
|
|
40
|
+
"windsurf",
|
|
41
|
+
"git-hooks",
|
|
42
|
+
"frameworks",
|
|
43
|
+
"nestjs",
|
|
44
|
+
"django",
|
|
45
|
+
"nextjs",
|
|
46
|
+
"mcp",
|
|
47
|
+
"typescript",
|
|
48
|
+
"rust",
|
|
49
|
+
"python"
|
|
50
|
+
],
|
|
51
|
+
"author": "HiveLLM Team",
|
|
52
|
+
"license": "Apache-2.0",
|
|
53
|
+
"engines": {
|
|
54
|
+
"node": ">=20.0.0"
|
|
55
|
+
},
|
|
56
|
+
"dependencies": {
|
|
57
|
+
"@modelcontextprotocol/sdk": "^1.22.0",
|
|
58
|
+
"@types/blessed": "^0.1.26",
|
|
59
|
+
"ansi-escapes": "^7.2.0",
|
|
60
|
+
"blessed": "^0.1.81",
|
|
61
|
+
"chalk": "^5.3.0",
|
|
62
|
+
"cli-cursor": "^5.0.0",
|
|
63
|
+
"commander": "^14.0.2",
|
|
64
|
+
"execa": "^9.6.0",
|
|
65
|
+
"glob": "^13.0.0",
|
|
66
|
+
"inquirer": "^13.0.1",
|
|
67
|
+
"js-yaml": "^4.1.1",
|
|
68
|
+
"node-notifier": "^10.0.1",
|
|
69
|
+
"ora": "^9.0.0",
|
|
70
|
+
"picocolors": "^1.0.0",
|
|
71
|
+
"sql.js": "^1.14.0",
|
|
72
|
+
"uuid": "^13.0.0",
|
|
73
|
+
"zod": "^3.25.76"
|
|
74
|
+
},
|
|
75
|
+
"devDependencies": {
|
|
76
|
+
"@eslint/js": "^9.37.0",
|
|
77
|
+
"@types/inquirer": "^9.0.0",
|
|
78
|
+
"@types/js-yaml": "^4.0.0",
|
|
79
|
+
"@types/node": "^24.10.1",
|
|
80
|
+
"@types/node-notifier": "^8.0.5",
|
|
81
|
+
"@types/uuid": "^10.0.0",
|
|
82
|
+
"@typescript-eslint/eslint-plugin": "^8.47.0",
|
|
83
|
+
"@typescript-eslint/parser": "^8.47.0",
|
|
84
|
+
"@vitest/coverage-v8": "^4.0.13",
|
|
85
|
+
"eslint": "^9.37.0",
|
|
86
|
+
"globals": "^15.11.0",
|
|
87
|
+
"prettier": "^3.2.0",
|
|
88
|
+
"tsx": "^4.7.0",
|
|
89
|
+
"typescript": "^5.3.3",
|
|
90
|
+
"vitest": "^4.0.13"
|
|
91
|
+
},
|
|
92
|
+
"publishConfig": {
|
|
93
|
+
"access": "public"
|
|
94
|
+
},
|
|
95
|
+
"files": [
|
|
96
|
+
"dist",
|
|
97
|
+
"templates"
|
|
98
|
+
],
|
|
99
|
+
"repository": {
|
|
100
|
+
"type": "git",
|
|
101
|
+
"url": "https://github.com/hivellm/rulebook.git"
|
|
102
|
+
},
|
|
103
|
+
"bugs": {
|
|
104
|
+
"url": "https://github.com/hivellm/rulebook/issues"
|
|
105
|
+
},
|
|
106
|
+
"homepage": "https://github.com/hivellm/rulebook#readme"
|
|
107
|
+
}
|
|
@@ -1,35 +1,136 @@
|
|
|
1
1
|
<!-- CLAUDE_CODE:START -->
|
|
2
2
|
# Claude Code CLI Rules
|
|
3
3
|
|
|
4
|
-
**Tool**: Anthropic Claude
|
|
4
|
+
**Tool**: Anthropic Claude Code CLI (`npm install -g @anthropic-ai/claude-code`)
|
|
5
5
|
|
|
6
6
|
## Quick Start
|
|
7
7
|
|
|
8
8
|
```bash
|
|
9
9
|
export ANTHROPIC_API_KEY=your_key
|
|
10
|
-
claude
|
|
10
|
+
claude --model claude-sonnet-4-20250514
|
|
11
11
|
```
|
|
12
12
|
|
|
13
13
|
## Essential Usage
|
|
14
14
|
|
|
15
15
|
```bash
|
|
16
|
-
#
|
|
17
|
-
claude
|
|
16
|
+
# Always read AGENTS.md and CLAUDE.md first
|
|
17
|
+
claude "Read AGENTS.md and CLAUDE.md, then implement [feature] with tests"
|
|
18
18
|
|
|
19
19
|
# Key flags:
|
|
20
|
-
--model claude-
|
|
21
|
-
--
|
|
22
|
-
--
|
|
23
|
-
--verbose # Debug mode
|
|
20
|
+
--model claude-sonnet-4-20250514 # Model selection (default: sonnet)
|
|
21
|
+
--dangerously-skip-permissions # Skip permission prompts (use with caution)
|
|
22
|
+
--verbose # Debug mode
|
|
24
23
|
```
|
|
25
24
|
|
|
25
|
+
## ⚠️ CRITICAL: File Editing Rules
|
|
26
|
+
|
|
27
|
+
**MANDATORY**: When editing multiple files, Claude Code MUST edit files **SEQUENTIALLY**, one at a time.
|
|
28
|
+
|
|
29
|
+
### Why Sequential Editing is Required
|
|
30
|
+
|
|
31
|
+
Claude Code's Edit tool uses exact string matching for replacements. When multiple files are edited in parallel:
|
|
32
|
+
- The tool may fail to find the exact string in some files
|
|
33
|
+
- Race conditions can cause partial or corrupted edits
|
|
34
|
+
- Error recovery becomes impossible
|
|
35
|
+
|
|
36
|
+
### Correct File Editing Pattern
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
✅ CORRECT (Sequential):
|
|
40
|
+
1. Edit file A → Wait for confirmation
|
|
41
|
+
2. Edit file B → Wait for confirmation
|
|
42
|
+
3. Edit file C → Wait for confirmation
|
|
43
|
+
|
|
44
|
+
❌ WRONG (Parallel):
|
|
45
|
+
1. Edit files A, B, C simultaneously → Failures likely
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### Implementation Rules
|
|
49
|
+
|
|
50
|
+
1. **NEVER call multiple Edit tools in parallel** for different files
|
|
51
|
+
2. **ALWAYS wait for each edit to complete** before starting the next
|
|
52
|
+
3. **Verify each edit succeeded** before proceeding
|
|
53
|
+
4. **If an edit fails**, retry that specific edit before moving on
|
|
54
|
+
|
|
55
|
+
## ⚠️ CRITICAL: Test Implementation Rules
|
|
56
|
+
|
|
57
|
+
**MANDATORY**: When implementing tests, Claude Code MUST write **complete, production-quality tests**.
|
|
58
|
+
|
|
59
|
+
### Forbidden Test Patterns
|
|
60
|
+
|
|
61
|
+
```typescript
|
|
62
|
+
// ❌ NEVER do this - placeholder tests
|
|
63
|
+
it('should work', () => {
|
|
64
|
+
expect(true).toBe(true);
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
// ❌ NEVER do this - skipped tests
|
|
68
|
+
it.skip('should handle edge case', () => {});
|
|
69
|
+
|
|
70
|
+
// ❌ NEVER do this - incomplete assertions
|
|
71
|
+
it('should return data', () => {
|
|
72
|
+
const result = getData();
|
|
73
|
+
expect(result).toBeDefined(); // Too weak!
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
// ❌ NEVER do this - "simplify" by removing test cases
|
|
77
|
+
// Original had 10 test cases, don't reduce to 3
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### Required Test Patterns
|
|
81
|
+
|
|
82
|
+
```typescript
|
|
83
|
+
// ✅ CORRECT - complete test with proper assertions
|
|
84
|
+
it('should return user data with correct structure', () => {
|
|
85
|
+
const result = getUserById(1);
|
|
86
|
+
expect(result).toEqual({
|
|
87
|
+
id: 1,
|
|
88
|
+
name: 'John Doe',
|
|
89
|
+
email: 'john@example.com',
|
|
90
|
+
createdAt: expect.any(Date),
|
|
91
|
+
});
|
|
92
|
+
});
|
|
93
|
+
|
|
94
|
+
// ✅ CORRECT - test edge cases and error paths
|
|
95
|
+
it('should throw NotFoundError when user does not exist', () => {
|
|
96
|
+
expect(() => getUserById(999)).toThrow(NotFoundError);
|
|
97
|
+
});
|
|
98
|
+
|
|
99
|
+
// ✅ CORRECT - test all branches
|
|
100
|
+
describe('validateEmail', () => {
|
|
101
|
+
it('should return true for valid email', () => {...});
|
|
102
|
+
it('should return false for missing @', () => {...});
|
|
103
|
+
it('should return false for missing domain', () => {...});
|
|
104
|
+
it('should return false for empty string', () => {...});
|
|
105
|
+
});
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### Test Implementation Rules
|
|
109
|
+
|
|
110
|
+
1. **NEVER simplify tests** - Implement the full, complete test as originally designed
|
|
111
|
+
2. **NEVER skip test cases** - Every test case in the spec must be implemented
|
|
112
|
+
3. **NEVER use placeholder assertions** - Each assertion must verify actual behavior
|
|
113
|
+
4. **ALWAYS test error paths** - Exceptions, edge cases, and failure modes
|
|
114
|
+
5. **ALWAYS maintain coverage** - Tests must achieve the project's coverage threshold
|
|
115
|
+
|
|
26
116
|
## Workflow
|
|
27
117
|
|
|
28
|
-
1. Always
|
|
29
|
-
2.
|
|
30
|
-
3.
|
|
31
|
-
4.
|
|
118
|
+
1. **Always read AGENTS.md and CLAUDE.md first** for project standards
|
|
119
|
+
2. **Plan file changes before editing** - List all files that need modification
|
|
120
|
+
3. **Edit files sequentially** - One file at a time, verify each edit
|
|
121
|
+
4. **Write complete tests** - No placeholders, no simplifications
|
|
122
|
+
5. **Run quality checks**: `npm run lint && npm test`
|
|
123
|
+
6. **Verify coverage threshold** is met before committing
|
|
124
|
+
|
|
125
|
+
## Quality Gates
|
|
126
|
+
|
|
127
|
+
Before completing any task:
|
|
128
|
+
- [ ] All files edited successfully (sequential editing)
|
|
129
|
+
- [ ] All tests implemented completely (no placeholders)
|
|
130
|
+
- [ ] Linting passes with zero warnings
|
|
131
|
+
- [ ] All tests pass (100% pass rate)
|
|
132
|
+
- [ ] Coverage threshold met (check AGENTS.md for threshold)
|
|
32
133
|
|
|
33
|
-
**Critical**: Reference AGENTS.md in prompts for consistent code generation.
|
|
134
|
+
**Critical**: Reference AGENTS.md and CLAUDE.md in prompts for consistent code generation.
|
|
34
135
|
|
|
35
136
|
<!-- CLAUDE_CODE:END -->
|