@hyperlynq/synaptic 0.7.2 → 0.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/.claude-plugin/plugin.json +21 -0
  2. package/.mcp.json +8 -0
  3. package/README.md +26 -7
  4. package/build/src/cli/commit-msg.d.ts +9 -0
  5. package/build/src/cli/commit-msg.js +70 -0
  6. package/build/src/cli/commit-msg.js.map +1 -0
  7. package/build/src/cli/init.js +29 -1
  8. package/build/src/cli/init.js.map +1 -1
  9. package/build/src/cli/pre-commit.js +4 -3
  10. package/build/src/cli/pre-commit.js.map +1 -1
  11. package/build/src/cli/rule-patterns.d.ts +16 -0
  12. package/build/src/cli/rule-patterns.js +56 -0
  13. package/build/src/cli/rule-patterns.js.map +1 -0
  14. package/build/src/hooks/session-start.js +14 -0
  15. package/build/src/hooks/session-start.js.map +1 -1
  16. package/build/src/hooks/stop.js +61 -5
  17. package/build/src/hooks/stop.js.map +1 -1
  18. package/build/src/storage/git.js +11 -6
  19. package/build/src/storage/git.js.map +1 -1
  20. package/build/src/storage/markdown.js +2 -1
  21. package/build/src/storage/markdown.js.map +1 -1
  22. package/build/src/storage/paths.js +6 -3
  23. package/build/src/storage/paths.js.map +1 -1
  24. package/build/src/storage/project.js +2 -2
  25. package/build/src/storage/project.js.map +1 -1
  26. package/build/src/storage/session.js +3 -4
  27. package/build/src/storage/session.js.map +1 -1
  28. package/build/src/storage/sqlite.d.ts +5 -1
  29. package/build/src/storage/sqlite.js +70 -17
  30. package/build/src/storage/sqlite.js.map +1 -1
  31. package/build/src/storage/transcript.d.ts +12 -0
  32. package/build/src/storage/transcript.js +82 -7
  33. package/build/src/storage/transcript.js.map +1 -1
  34. package/build/src/tools/context-archive.js +2 -1
  35. package/build/src/tools/context-archive.js.map +1 -1
  36. package/build/src/tools/context-chain.js +1 -0
  37. package/build/src/tools/context-chain.js.map +1 -1
  38. package/build/src/tools/context-cochanges.js +1 -1
  39. package/build/src/tools/context-cochanges.js.map +1 -1
  40. package/build/src/tools/context-delete-rule.js +1 -1
  41. package/build/src/tools/context-delete-rule.js.map +1 -1
  42. package/build/src/tools/context-dna.js +19 -2
  43. package/build/src/tools/context-dna.js.map +1 -1
  44. package/build/src/tools/context-git-index.js +22 -2
  45. package/build/src/tools/context-git-index.js.map +1 -1
  46. package/build/src/tools/context-resolve-pattern.js +1 -1
  47. package/build/src/tools/context-resolve-pattern.js.map +1 -1
  48. package/build/src/tools/context-save-rule.js +2 -2
  49. package/build/src/tools/context-save-rule.js.map +1 -1
  50. package/build/src/tools/context-save.js +5 -2
  51. package/build/src/tools/context-save.js.map +1 -1
  52. package/build/src/tools/context-search.js +1 -1
  53. package/build/src/tools/context-search.js.map +1 -1
  54. package/build/src/tools/context-session.js +1 -0
  55. package/build/src/tools/context-session.js.map +1 -1
  56. package/hooks/hooks.json +38 -0
  57. package/package.json +4 -1
@@ -0,0 +1,21 @@
1
+ {
2
+ "name": "synaptic",
3
+ "description": "Persistent local memory for Claude Code — cross-session context, semantic search, zero cloud",
4
+ "version": "0.8.0",
5
+ "author": {
6
+ "name": "HYPERLYNQ",
7
+ "email": "hyperlynq@gmail.com"
8
+ },
9
+ "homepage": "https://github.com/HYPERLYNQ/synaptic",
10
+ "repository": "https://github.com/HYPERLYNQ/synaptic",
11
+ "license": "SEE LICENSE IN LICENSE",
12
+ "keywords": [
13
+ "memory",
14
+ "context",
15
+ "mcp",
16
+ "persistent-memory",
17
+ "semantic-search",
18
+ "claude-code",
19
+ "model-context-protocol"
20
+ ]
21
+ }
package/.mcp.json ADDED
@@ -0,0 +1,8 @@
1
+ {
2
+ "mcpServers": {
3
+ "synaptic": {
4
+ "command": "node",
5
+ "args": ["--no-warnings", "${CLAUDE_PLUGIN_ROOT}/build/src/index.js"]
6
+ }
7
+ }
8
+ }
package/README.md CHANGED
@@ -13,8 +13,8 @@
13
13
 
14
14
  **Claude forgets everything between sessions. Synaptic fixes that.**
15
15
 
16
- [![Version](https://img.shields.io/badge/version-0.7.2-blue)](https://github.com/HYPERLYNQ/synaptic)
17
- [![Tests](https://img.shields.io/badge/tests-164%20passing-brightgreen)](https://github.com/HYPERLYNQ/synaptic)
16
+ [![Version](https://img.shields.io/badge/version-0.8.0-blue)](https://github.com/HYPERLYNQ/synaptic)
17
+ [![Tests](https://img.shields.io/badge/tests-175%20passing-brightgreen)](https://github.com/HYPERLYNQ/synaptic)
18
18
  [![Node](https://img.shields.io/badge/node-22%2B-339933)](https://nodejs.org)
19
19
  [![License](https://img.shields.io/badge/license-source--available-orange)](LICENSE)
20
20
 
@@ -75,6 +75,7 @@ Claude's auto-memory (`~/.claude/memory/`) saves short notes to files. But there
75
75
  | Memory cleanup | Manual | Grows forever | Auto-decay by tier |
76
76
  | Pattern detection | None | None | Tracks recurring failures |
77
77
  | Auto-capture | None | None | Detects declarations, preferences, corrections |
78
+ | Rule enforcement | None | None | Hard (commit-msg hook) + soft (violation detection) |
78
79
  | Transcript scanning | None | None | Passively captures from conversation history |
79
80
  | Predictive context | None | None | Surfaces relevant history at session start |
80
81
 
@@ -108,6 +109,7 @@ That's it. The `init` command auto-detects your environment (Linux, macOS, WSL)
108
109
  - **MCP server** — so Claude can use Synaptic's tools
109
110
  - **3 lifecycle hooks** — auto-load on start, preserve on compress, save on stop
110
111
  - **Git pre-commit hook** — captures test/lint failures into memory
112
+ - **Git commit-msg hook** — blocks commits that violate your rules
111
113
  - **Project directory** — `.synaptic/` for local config
112
114
 
113
115
  > Skip git hook and project dir with `npx synaptic init --global`
@@ -287,6 +289,23 @@ More examples: `"never auto-commit"` · `"use bun instead of npm"` · `"always w
287
289
 
288
290
  <br>
289
291
 
292
+ ### Rule Enforcement
293
+
294
+ Rules aren't just suggestions — Synaptic enforces them at multiple levels:
295
+
296
+ **Hard enforcement** — A `commit-msg` git hook extracts forbidden patterns from your rules (quoted strings, negative directives like "never add X") and blocks commits that contain violations. The commit is rejected with a clear error showing which rule was broken.
297
+
298
+ **Soft enforcement** — The stop hook scans the conversation transcript for `git commit` tool calls and checks their messages against rules. Violations are saved as pinned issues.
299
+
300
+ **Violation surfacing** — At session start, recent violations are shown as warnings above the rules section. Claude sees what it got wrong recently and is reminded to be extra careful.
301
+
302
+ ```
303
+ ⚠ RECENT RULE VIOLATIONS — you broke these rules recently, be extra careful:
304
+ - Rule "no-co-author": commit message contained "Co-Authored-By" (today)
305
+ ```
306
+
307
+ <br>
308
+
290
309
  ### Memory Tiers
291
310
 
292
311
  Not everything lasts forever. Synaptic manages it for you:
@@ -336,8 +355,8 @@ Three hooks handle the lifecycle automatically:
336
355
  ```
337
356
  ┌─────────────────────────────────────────────────────┐
338
357
  │ │
339
- │ START ──→ Injects rules, predicted focus,
340
- recent context, last handoff
358
+ │ START ──→ Injects rules, violation warnings,
359
+ predicted focus, recent context
341
360
  │ │
342
361
  │ WORK ───→ Claude saves and searches context │
343
362
  │ Git watcher auto-indexes in background │
@@ -345,8 +364,8 @@ Three hooks handle the lifecycle automatically:
345
364
  │ COMPRESS → Preserves important context before │
346
365
  │ conversation is compressed │
347
366
  │ │
348
- │ END ────→ Scans transcript, saves handoff,
349
- │ detects corrections & preferences
367
+ │ END ────→ Scans transcript, checks rule violations,
368
+ saves handoff, detects corrections │
350
369
  │ │
351
370
  └─────────────────────────────────────────────────────┘
352
371
  ```
@@ -406,7 +425,7 @@ Interested in Synaptic for your team? **[Get in touch →](mailto:hyperlynq@gmai
406
425
 
407
426
  ```bash
408
427
  npm run build # Compile TypeScript
409
- npm run smoke-test # Build + run all 164 tests
428
+ npm run smoke-test # Build + run all 175 tests
410
429
  ```
411
430
 
412
431
  <br>
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Synaptic commit-msg hook.
4
+ * Called by .git/hooks/commit-msg with the commit message file path as $1.
5
+ *
6
+ * Reads the commit message, loads rules, extracts forbidden patterns from
7
+ * negative rules, and blocks commits that contain violations.
8
+ */
9
+ export {};
@@ -0,0 +1,70 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Synaptic commit-msg hook.
4
+ * Called by .git/hooks/commit-msg with the commit message file path as $1.
5
+ *
6
+ * Reads the commit message, loads rules, extracts forbidden patterns from
7
+ * negative rules, and blocks commits that contain violations.
8
+ */
9
+ import { readFileSync } from "node:fs";
10
+ import { resolve, join } from "node:path";
11
+ import { ContextIndex } from "../storage/sqlite.js";
12
+ import { ensureDirs } from "../storage/paths.js";
13
+ import { extractCheckPatterns, checkMessageAgainstPatterns } from "./rule-patterns.js";
14
+ async function main() {
15
+ const commitMsgFile = process.argv[2];
16
+ if (!commitMsgFile) {
17
+ // No file argument — don't block
18
+ process.exit(0);
19
+ }
20
+ // Validate the file path is within .git/ to prevent arbitrary file reads
21
+ const resolvedPath = resolve(commitMsgFile);
22
+ const gitDir = join(process.cwd(), ".git");
23
+ if (resolvedPath !== gitDir && !resolvedPath.startsWith(gitDir + "/")) {
24
+ process.exit(0);
25
+ }
26
+ let message;
27
+ try {
28
+ message = readFileSync(resolvedPath, "utf-8");
29
+ }
30
+ catch {
31
+ // Can't read message file — don't block
32
+ process.exit(0);
33
+ }
34
+ let rules;
35
+ try {
36
+ ensureDirs();
37
+ const index = new ContextIndex();
38
+ try {
39
+ rules = index.listRules();
40
+ }
41
+ finally {
42
+ index.close();
43
+ }
44
+ }
45
+ catch {
46
+ // DB error — don't block
47
+ process.exit(0);
48
+ }
49
+ if (rules.length === 0) {
50
+ process.exit(0);
51
+ }
52
+ // Check each rule's patterns against the commit message
53
+ for (const rule of rules) {
54
+ const patterns = extractCheckPatterns(rule.content);
55
+ const violation = checkMessageAgainstPatterns(message, patterns);
56
+ if (violation) {
57
+ console.error(`\n[Synaptic] Commit blocked by rule "${rule.label}":`);
58
+ console.error(` Rule: ${rule.content}`);
59
+ console.error(` Found: "${violation}" in commit message`);
60
+ console.error("");
61
+ process.exit(1);
62
+ }
63
+ }
64
+ process.exit(0);
65
+ }
66
+ main().catch(() => {
67
+ // Unexpected error — don't block
68
+ process.exit(0);
69
+ });
70
+ //# sourceMappingURL=commit-msg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commit-msg.js","sourceRoot":"","sources":["../../../src/cli/commit-msg.ts"],"names":[],"mappings":";AAEA;;;;;;GAMG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AAEvF,KAAK,UAAU,IAAI;IACjB,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACtC,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,iCAAiC;QACjC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,yEAAyE;IACzE,MAAM,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC;IAC3C,IAAI,YAAY,KAAK,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,MAAM,GAAG,GAAG,CAAC,EAAE,CAAC;QACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,OAAe,CAAC;IACpB,IAAI,CAAC;QACH,OAAO,GAAG,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;IAAC,MAAM,CAAC;QACP,wCAAwC;QACxC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,KAAgD,CAAC;IACrD,IAAI,CAAC;QACH,UAAU,EAAE,CAAC;QACb,MAAM,KAAK,GAAG,IAAI,YAAY,EAAE,CAAC;QACjC,IAAI,CAAC;YACH,KAAK,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;QAC5B,CAAC;gBAAS,CAAC;YACT,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,yBAAyB;QACzB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,wDAAwD;IACxD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpD,MAAM,SAAS,GAAG,2BAA2B,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACjE,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,CAAC,KAAK,CAAC,wCAAwC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;YACtE,OAAO,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;YACzC,OAAO,CAAC,KAAK,CAAC,aAAa,SAAS,qBAAqB,CAAC,CAAC;YAC3D,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAClB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE;IAChB,iCAAiC;IACjC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -45,6 +45,7 @@ export async function initCommand(args) {
45
45
  setupHooks(env);
46
46
  if (!isGlobal) {
47
47
  setupGitHook(env);
48
+ setupCommitMsgHook(env);
48
49
  setupProjectDir();
49
50
  }
50
51
  console.log("\nDone.");
@@ -199,13 +200,40 @@ function setupGitHook(env) {
199
200
  const preCommitPath = join(env.buildDir, "src", "cli", "pre-commit.js");
200
201
  const script = `#!/bin/sh
201
202
  # synaptic pre-commit hook
202
- node --no-warnings ${preCommitPath}
203
+ node --no-warnings "${preCommitPath}"
203
204
  `;
204
205
  mkdirSync(hooksDir, { recursive: true });
205
206
  writeFileSync(hookPath, script, "utf-8");
206
207
  chmodSync(hookPath, 0o755);
207
208
  console.log(" [done] Git pre-commit hook installed.");
208
209
  }
210
+ function setupCommitMsgHook(env) {
211
+ const gitDir = join(process.cwd(), ".git");
212
+ if (!existsSync(gitDir)) {
213
+ console.log(" [skip] No .git/ directory found, skipping commit-msg hook.");
214
+ return;
215
+ }
216
+ const hooksDir = join(gitDir, "hooks");
217
+ const hookPath = join(hooksDir, "commit-msg");
218
+ if (existsSync(hookPath)) {
219
+ const existing = readFileSync(hookPath, "utf-8");
220
+ if (existing.includes("synaptic")) {
221
+ console.log(" [skip] Git commit-msg hook already contains synaptic.");
222
+ return;
223
+ }
224
+ console.log(" [skip] Existing commit-msg hook found (not synaptic), leaving untouched.");
225
+ return;
226
+ }
227
+ const commitMsgPath = join(env.buildDir, "src", "cli", "commit-msg.js");
228
+ const script = `#!/bin/sh
229
+ # synaptic commit-msg hook
230
+ node --no-warnings "${commitMsgPath}" "$1"
231
+ `;
232
+ mkdirSync(hooksDir, { recursive: true });
233
+ writeFileSync(hookPath, script, "utf-8");
234
+ chmodSync(hookPath, 0o755);
235
+ console.log(" [done] Git commit-msg hook installed.");
236
+ }
209
237
  function setupProjectDir() {
210
238
  const dir = join(process.cwd(), ".synaptic");
211
239
  const configPath = join(dir, "config.json");
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/init.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@
5
5
  */
6
6
  import { existsSync, readFileSync } from "node:fs";
7
7
  import { join } from "node:path";
8
- import { execSync } from "node:child_process";
8
+ import { execFileSync } from "node:child_process";
9
9
  import { randomBytes } from "node:crypto";
10
10
  import { ContextIndex } from "../storage/sqlite.js";
11
11
  import { Embedder } from "../storage/embedder.js";
@@ -42,7 +42,7 @@ function detectScripts(cwd) {
42
42
  }
43
43
  function getStagedFiles() {
44
44
  try {
45
- const output = execSync("git diff --cached --name-only", {
45
+ const output = execFileSync("git", ["diff", "--cached", "--name-only"], {
46
46
  encoding: "utf-8",
47
47
  timeout: 5000,
48
48
  }).trim();
@@ -54,11 +54,12 @@ function getStagedFiles() {
54
54
  }
55
55
  function runCheck(script, label, cwd) {
56
56
  try {
57
- const output = execSync(`npm run ${script} 2>&1`, {
57
+ const output = execFileSync("npm", ["run", script], {
58
58
  cwd,
59
59
  encoding: "utf-8",
60
60
  timeout: 120000,
61
61
  maxBuffer: 5 * 1024 * 1024,
62
+ stdio: ["pipe", "pipe", "pipe"],
62
63
  });
63
64
  return { command: `npm run ${script}`, label, success: true, output: output.slice(-2000) };
64
65
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pre-commit.js","sourceRoot":"","sources":["../../../src/cli/pre-commit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pre-commit.js","sourceRoot":"","sources":["../../../src/cli/pre-commit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Shared utilities for rule enforcement.
3
+ * Used by commit-msg hook, stop hook, and smoke tests.
4
+ */
5
+ /**
6
+ * Extract check patterns from a rule's content.
7
+ * Looks for:
8
+ * 1. Quoted strings → extract as literal patterns
9
+ * 2. Negative rules ("never/don't/do not [verb] X") → extract the forbidden term
10
+ */
11
+ export declare function extractCheckPatterns(ruleContent: string): string[];
12
+ /**
13
+ * Check a message against extracted patterns (case-insensitive substring match).
14
+ * Returns the first matching pattern, or null if clean.
15
+ */
16
+ export declare function checkMessageAgainstPatterns(message: string, patterns: string[]): string | null;
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Shared utilities for rule enforcement.
3
+ * Used by commit-msg hook, stop hook, and smoke tests.
4
+ */
5
+ /**
6
+ * Extract check patterns from a rule's content.
7
+ * Looks for:
8
+ * 1. Quoted strings → extract as literal patterns
9
+ * 2. Negative rules ("never/don't/do not [verb] X") → extract the forbidden term
10
+ */
11
+ export function extractCheckPatterns(ruleContent) {
12
+ const patterns = [];
13
+ // 1. Extract double-quoted strings
14
+ const doubleQuoted = ruleContent.matchAll(/"([^"]+)"/g);
15
+ for (const m of doubleQuoted) {
16
+ const inner = m[1].trim();
17
+ if (inner.length >= 2) {
18
+ patterns.push(inner);
19
+ }
20
+ }
21
+ // 2. Extract single-quoted strings (skip apostrophes in contractions like don't/can't)
22
+ const singleQuoted = ruleContent.matchAll(/(?:^|[\s(])'([^']+)'/g);
23
+ for (const m of singleQuoted) {
24
+ const inner = m[1].trim();
25
+ if (inner.length >= 2 && !patterns.some(p => p.toLowerCase() === inner.toLowerCase())) {
26
+ patterns.push(inner);
27
+ }
28
+ }
29
+ // 3. Extract forbidden terms from negative rules
30
+ // Matches: "never/don't/do not/must not/should not [verb] [term]"
31
+ const negativePattern = /\b(?:never|don't|do\s+not|must\s+not|should\s+not|cannot|can't)\s+(?:\w+\s+)?(.+)/gi;
32
+ let match;
33
+ while ((match = negativePattern.exec(ruleContent)) !== null) {
34
+ const rest = match[1].trim();
35
+ // Take the meaningful noun phrase — stop at sentence boundaries
36
+ const term = rest.replace(/[.!,;].*$/, "").trim();
37
+ if (term.length >= 2 && !patterns.some(p => p.toLowerCase() === term.toLowerCase())) {
38
+ patterns.push(term);
39
+ }
40
+ }
41
+ return patterns;
42
+ }
43
+ /**
44
+ * Check a message against extracted patterns (case-insensitive substring match).
45
+ * Returns the first matching pattern, or null if clean.
46
+ */
47
+ export function checkMessageAgainstPatterns(message, patterns) {
48
+ const lower = message.toLowerCase();
49
+ for (const pattern of patterns) {
50
+ if (lower.includes(pattern.toLowerCase())) {
51
+ return pattern;
52
+ }
53
+ }
54
+ return null;
55
+ }
56
+ //# sourceMappingURL=rule-patterns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rule-patterns.js","sourceRoot":"","sources":["../../../src/cli/rule-patterns.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,WAAmB;IACtD,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,mCAAmC;IACnC,MAAM,YAAY,GAAG,WAAW,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IACxD,KAAK,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC1B,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACtB,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAED,uFAAuF;IACvF,MAAM,YAAY,GAAG,WAAW,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC;IACnE,KAAK,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC1B,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YACtF,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAED,iDAAiD;IACjD,kEAAkE;IAClE,MAAM,eAAe,GAAG,qFAAqF,CAAC;IAC9G,IAAI,KAA6B,CAAC;IAClC,OAAO,CAAC,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAC5D,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC7B,gEAAgE;QAChE,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAClD,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YACpF,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,2BAA2B,CACzC,OAAe,EACf,QAAkB;IAElB,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IACpC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YAC1C,OAAO,OAAO,CAAC;QACjB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -55,6 +55,20 @@ async function main() {
55
55
  }
56
56
  const lines = [];
57
57
  let charCount = 0;
58
+ // --- SECTION 0: Recent rule violations (always shown, never truncated) ---
59
+ const recentViolations = index.list({ days: 7 })
60
+ .filter(e => e.tags.includes("rule-violation") && !e.archived);
61
+ if (recentViolations.length > 0) {
62
+ lines.push("# ⚠ RECENT RULE VIOLATIONS — you broke these rules recently, be extra careful:");
63
+ for (const v of recentViolations.slice(0, 3)) {
64
+ const ruleTag = v.tags.find(t => t.startsWith("rule:"));
65
+ const ruleLabel = ruleTag ? ruleTag.replace("rule:", "") : "unknown";
66
+ const daysAgo = Math.floor((Date.now() - new Date(v.date).getTime()) / (1000 * 60 * 60 * 24));
67
+ const when = daysAgo === 0 ? "today" : `${daysAgo}d ago`;
68
+ lines.push(`- Rule "${ruleLabel}": ${v.content.split(".")[0]} (${when})`);
69
+ }
70
+ lines.push("");
71
+ }
58
72
  // --- SECTION 1: Rules (always full, never truncated) ---
59
73
  const rules = index.listRules();
60
74
  if (rules.length > 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"session-start.js","sourceRoot":"","sources":["../../../src/hooks/session-start.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-start.js","sourceRoot":"","sources":["../../../src/hooks/session-start.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@
8
8
  *
9
9
  * Receives JSON on stdin: { stop_hook_active: boolean, ... }
10
10
  */
11
- import { existsSync, readFileSync, writeFileSync } from "node:fs";
11
+ import { readFileSync, writeFileSync } from "node:fs";
12
12
  import { join } from "node:path";
13
13
  import { appendEntry } from "../storage/markdown.js";
14
14
  import { ContextIndex } from "../storage/sqlite.js";
@@ -16,15 +16,14 @@ import { Embedder } from "../storage/embedder.js";
16
16
  import { ensureDirs, DB_DIR } from "../storage/paths.js";
17
17
  import { detectProject } from "../storage/project.js";
18
18
  import { getSessionId } from "../storage/session.js";
19
- import { findCurrentTranscript, readCursor, writeCursor, readNewMessages, } from "../storage/transcript.js";
19
+ import { findCurrentTranscript, readCursor, writeCursor, readNewMessages, readToolUseActions, } from "../storage/transcript.js";
20
+ import { extractCheckPatterns, checkMessageAgainstPatterns } from "../cli/rule-patterns.js";
20
21
  const DEBOUNCE_FILE = join(DB_DIR, ".last-handoff");
21
22
  const DEBOUNCE_MS = 5 * 60 * 1000; // 5 minutes
22
23
  function shouldDebounce() {
23
- if (!existsSync(DEBOUNCE_FILE))
24
- return false;
25
24
  try {
26
25
  const last = parseInt(readFileSync(DEBOUNCE_FILE, "utf-8").trim(), 10);
27
- return Date.now() - last < DEBOUNCE_MS;
26
+ return !isNaN(last) && Date.now() - last < DEBOUNCE_MS;
28
27
  }
29
28
  catch {
30
29
  return false;
@@ -84,6 +83,56 @@ async function scanTranscript(index, embedder, enrichInsert) {
84
83
  // 8. Update cursor
85
84
  writeCursor({ file: transcriptFile, offset: newOffset });
86
85
  }
86
+ /**
87
+ * Check recent transcript for git commit tool calls that violate rules.
88
+ * Saves violations as pinned issue entries for session-start surfacing.
89
+ */
90
+ function checkRuleViolations(index, enrichInsert) {
91
+ const rules = index.listRules();
92
+ if (rules.length === 0)
93
+ return;
94
+ const transcriptFile = findCurrentTranscript();
95
+ if (!transcriptFile)
96
+ return;
97
+ const cursor = readCursor();
98
+ // Read from start of file to catch everything (violations are rare, cost is low)
99
+ const { actions } = readToolUseActions(transcriptFile, 0);
100
+ for (const action of actions) {
101
+ // Look for Bash tool calls containing git commit
102
+ if (action.tool !== "Bash")
103
+ continue;
104
+ const command = action.input.command ?? "";
105
+ if (!command.includes("git commit"))
106
+ continue;
107
+ // Extract the -m message
108
+ // Guard against catastrophic backtracking on very long commands
109
+ const cmdSlice = command.slice(0, 2000);
110
+ const msgMatch = cmdSlice.match(/git\s+commit\s[^"']*-m\s+(?:"([^"]*)"|'([^']*)'|(\S+))/);
111
+ if (!msgMatch)
112
+ continue;
113
+ const commitMsg = msgMatch[1] ?? msgMatch[2] ?? msgMatch[3] ?? "";
114
+ // Also handle heredoc-style messages: -m "$(cat <<'EOF'\n...\nEOF\n)"
115
+ const heredocMatch = cmdSlice.match(/cat\s+<<['"]?EOF['"]?\n([\s\S]*?)\nEOF/);
116
+ const fullMsg = heredocMatch ? heredocMatch[1] : commitMsg;
117
+ if (!fullMsg)
118
+ continue;
119
+ for (const rule of rules) {
120
+ const patterns = extractCheckPatterns(rule.content);
121
+ const violation = checkMessageAgainstPatterns(fullMsg, patterns);
122
+ if (violation) {
123
+ // Check if we already logged this violation recently (dedup)
124
+ const recent = index.list({ days: 1 })
125
+ .filter(e => e.tags.includes("rule-violation") && e.tags.includes(`rule:${rule.label}`));
126
+ if (recent.length > 0)
127
+ continue;
128
+ const entry = appendEntry(`Rule "${rule.label}" violated: commit message contained "${violation}". Rule: ${rule.content}`, "issue", ["rule-violation", `rule:${rule.label}`]);
129
+ entry.tier = "working";
130
+ entry.pinned = true;
131
+ enrichInsert(entry);
132
+ }
133
+ }
134
+ }
135
+ }
87
136
  async function main() {
88
137
  ensureDirs();
89
138
  let input = {};
@@ -123,6 +172,13 @@ async function main() {
123
172
  catch {
124
173
  // Don't fail the hook if transcript scanning errors
125
174
  }
175
+ // Rule violation detection (soft enforcement)
176
+ try {
177
+ checkRuleViolations(index, enrichInsert);
178
+ }
179
+ catch {
180
+ // Don't fail the hook if violation checking errors
181
+ }
126
182
  // Debounce: skip handoff if one was saved recently
127
183
  if (shouldDebounce()) {
128
184
  return;