contextgit 0.1.9 → 0.2.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 CHANGED
@@ -30,8 +30,6 @@ When an agent calls `project_memory_load`, it gets a snapshot like this:
30
30
  ```
31
31
  ## Project State
32
32
  Auth module complete. API routes tested. Database schema finalized.
33
-
34
- ## Current Branch: Context: main
35
33
  Implementing payment integration. Stripe SDK configured.
36
34
 
37
35
  ## Recent Activity
File without changes
@@ -1,6 +1,6 @@
1
1
  export declare const CLAUDE_MD_SENTINEL_START = "<!-- contextgit:start -->";
2
2
  export declare const CLAUDE_MD_SENTINEL_END = "<!-- contextgit:end -->";
3
- export declare const CLAUDE_MD_FRAGMENT = "\n<!-- contextgit:start -->\n## ContextGit Memory\n\nThis project uses ContextGit for persistent AI memory across sessions.\n\n## Session Start (do this every time)\n\nCall `project_memory_load` immediately.\nDo not ask questions first. Read the snapshot, then start working.\nStart the next specific task from the snapshot \u2014 not an entire feature or milestone.\nOne task per session unless it is trivially small.\n\n## After EVERY completed task\n\nDo not wait to be asked. Every git commit = immediate context commit.\nDo not proceed to the next task until both are done.\n\n1. `git add . && git commit -m \"feat/fix: <what was done>\"`\n2. Call `project_memory_save` immediately after with:\n - One-line summary of what was done\n - What was decided and why\n - What was built (files changed, approach taken)\n - Open questions\n - Git branch and commit hash\n - The next concrete task\n\nThese two always go together. Never git commit without a context commit.\n\n## Session End (do this every time)\n\nBefore stopping work for any reason, call `project_memory_save` with:\n- What was built this session\n- Key decisions and why\n- Open threads and blockers\n- The first concrete task for the next session\n\nDo not end a session without a context commit. The next session starts blind without it.\n\n## Before risky exploration\n\nCall `project_memory_branch` to create an isolated context workspace before trying anything uncertain.\n\n## Before starting a task (multi-agent)\n\nCall `project_task_claim` to prevent other agents from duplicating your work.\n\n## When scope changes mid-session\n\nWrite a `project_memory_save` with replan: prefix BEFORE building new scope:\n`project_memory_save \"replan: <what changed and why>\"`\nThen build the new scope. Then write a normal context commit when done.\n<!-- contextgit:end -->\n";
3
+ export declare const CLAUDE_MD_FRAGMENT = "\n<!-- contextgit:start -->\n## ContextGit Memory\n\nThis project uses ContextGit for persistent AI memory across sessions.\n\n## Session Start (do this every time)\n\nCall `project_memory_load` immediately.\nDo not ask questions first. Read the snapshot, then start working.\nStart the next specific task from the snapshot \u2014 not an entire feature or milestone.\nOne task per session unless it is trivially small.\n\n## When to save context\n\nSave once per commit. Every git commit deserves a paired `project_memory_save`.\nSkipping commits leaves their history blind \u2014 the diff survives, the *reason*\ndoes not. The save's body is what makes the commit binding worth pulling in\nthree weeks.\n\nWhat the save body carries:\n- The **decision** behind the change \u2014 why this approach, not the other.\n- Any **approach abandoned** along the way (use `replan:` prefix if scope shifted).\n- The **open question** the commit raises \u2014 what is still unresolved.\n\nThe body is NOT a restatement of the diff. Git already has the diff.\n\nBad save: \"Implemented apiFetch wrapper\" \u2014 paraphrases the commit; git has it.\n\nGood save: \"apiFetch wrapper \u2014 chose X-User-Id header over cookie auth because\nthe extension can't share the host session cookie. Open: needs 401 handling.\"\n\n## Before risky exploration\n\nCall `project_memory_branch` to create an isolated context workspace before trying anything uncertain.\n\n## Before starting a task (multi-agent)\n\nCall `project_task_claim` to prevent other agents from duplicating your work.\n\n## When scope changes mid-session\n\nWrite a `project_memory_save` with replan: prefix BEFORE building new scope:\n`project_memory_save \"replan: <what changed and why>\"`\nThen build the new scope. Then write a normal context commit when done.\n<!-- contextgit:end -->\n";
4
4
  /**
5
5
  * Write the ContextGit CLAUDE.md fragment into the given directory.
6
6
  * Idempotent: skips if sentinel already present.
@@ -10,7 +10,7 @@ export declare function writeClaude(projectDir: string): {
10
10
  status: 'written' | 'already-present' | 'error';
11
11
  reason?: string;
12
12
  };
13
- export declare const CONTEXT_COMMIT_SKILL = "---\nname: context-commit\ndescription: \"MANDATORY: Save project memory after completing ANY work. Use this skill after EVERY completed task and EVERY git commit \u2014 finished implementing a feature, resolved a bug, made a decision, closed a thread, completed a review, or ending a session. Every git commit must be followed immediately by a context commit. Do not wait to be asked. Do not proceed to the next task until both git commit and context commit are done. Triggers: git commit made, task complete, 'that's working', 'let's move on', 'I'm done', session ending. Skipping this means the next session starts completely blind.\"\n---\n\n# ContextGit \u2014 Context Commit Discipline\n\n## RULE: Every git commit = immediate context commit\n\nDo not wait to be asked. Do not batch. Do not skip.\nAfter every git commit, call `project_memory_save` immediately.\nDo not proceed to the next task until both git commit and context commit are done.\nThese two always go together. Never git commit without a context commit.\n\n## When to commit context\n\nCall `project_memory_save` (MCP tool) after:\n- Every git commit (mandatory \u2014 these always go together)\n- Completing a feature or task (before moving to the next)\n- Making an architectural decision or choosing between options\n- Resolving a bug, blocker, or open question\n- Closing a thread\n- Before ending the session for any reason\n\n## What makes a good commit message\n\nA context commit message is a future-you briefing. Write it so the next agent session (or the next developer) can pick up exactly where this one left off.\n\nStructure:\n```\n<one-line summary of what was done>\n\nWhat was decided: <the decision and why>\nWhat was built: <files changed, approach taken>\nOpen questions: <anything unresolved>\nNext task: <the first concrete thing the next session should do>\nGit: <branch> | <commit hash if available>\n```\n\n## How to call it\n\nUse the `project_memory_save` MCP tool (alias: `context_commit`). Pass the full message as the `message` argument.\n\nDo not skip this step when the work feels small. Small decisions compound. The next session starts blind without them.\n";
13
+ export declare const CONTEXT_COMMIT_SKILL = "---\nname: context-commit\ndescription: \"Save project memory once per git commit. Every commit deserves a paired save; the body carries what git cannot reconstruct \u2014 the decision behind the change, any approach abandoned (use replan: prefix), the open question the commit raises. The body is never a paraphrase of the diff.\"\n---\n\n# ContextGit \u2014 Context Commit Discipline\n\n## When to save context\n\nSave once per commit. Every git commit deserves a paired `project_memory_save`.\nSkipping commits leaves their history blind \u2014 the diff survives, the *reason*\ndoes not. The save's body is what makes the commit binding worth pulling in\nthree weeks.\n\nWhat the save body carries:\n- The **decision** behind the change \u2014 why this approach, not the other.\n- Any **approach abandoned** along the way (use `replan:` prefix if scope shifted).\n- The **open question** the commit raises \u2014 what is still unresolved.\n\nThe body is NOT a restatement of the diff. Git already has the diff.\n\nBad save: \"Implemented apiFetch wrapper\" \u2014 paraphrases the commit; git has it.\n\nGood save: \"apiFetch wrapper \u2014 chose X-User-Id header over cookie auth because\nthe extension can't share the host session cookie. Open: needs 401 handling.\"\n\n## What makes a good commit message\n\nA context commit message is a future-you briefing. Write it so the next agent session (or the next developer) can pick up exactly where this one left off.\n\nStructure:\n```\n<one-line summary of what was done>\n\nWhat was decided: <the decision and why>\nWhat was built: <files changed, approach taken>\nOpen questions: <anything unresolved>\nNext task: <the first concrete thing the next session should do>\nGit: <branch> | <commit hash if available>\n```\n\n## How to call it\n\nUse the `project_memory_save` MCP tool (alias: `context_commit`). Pass the full message as the `message` argument.\n\nDo not skip this step when the work feels small. Small decisions compound. The next session starts blind without them.\n";
14
14
  export declare const CONTEXT_BRANCH_SKILL = "---\nname: context-branch\ndescription: \"Create an isolated context branch before risky or experimental work. Use this skill when the agent is about to explore something uncertain, experimental, or potentially breaking \u2014 trying an approach that might not work, refactoring something risky, exploring an architectural alternative, or doing anything that should be isolatable and reversible. Triggers on: 'let me try', 'what if we', 'I want to explore', 'let's experiment', 'alternative approach', or any phrasing that signals exploration rather than execution.\"\n---\n\n# ContextGit \u2014 Context Branch Discipline\n\n## When to branch context\n\nCall `project_memory_branch` (MCP tool) before:\n- Trying an approach you're not sure will work\n- Refactoring something that touches many files\n- Exploring an architectural alternative to the current plan\n- Doing anything you'd want to be able to roll back semantically (not just via git)\n\n## Why this matters\n\nA context branch creates an isolated snapshot workspace. If the exploration fails, you can return to the main branch context without polluting the session history with dead-end decisions.\n\nIt's cheap. It takes one tool call. The cost of not doing it is re-explaining to the next session why you abandoned the approach you just spent an hour on.\n\n## How to call it\n\nUse the `project_memory_branch` MCP tool (alias: `context_branch`). Pass a short descriptive name:\n\n```\nproject_memory_branch name=\"explore-queue-based-concurrency\"\n```\n\nWhen the exploration concludes:\n- If it worked: `project_memory_save` your findings and merge back\n- If it failed: `project_memory_save` a brief note (\"explored X, abandoned because Y\") and switch back to main branch\n\nThe failure note is as valuable as the success note. The next session needs to know not to try the same dead end.\n";
15
15
  /**
16
16
  * Register contextgit-mcp in ~/.claude.json under mcpServers.
@@ -1 +1 @@
1
- {"version":3,"file":"init-helpers.d.ts","sourceRoot":"","sources":["../../src/lib/init-helpers.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,wBAAwB,8BAA8B,CAAA;AACnE,eAAO,MAAM,sBAAsB,4BAA4B,CAAA;AAE/D,eAAO,MAAM,kBAAkB,m0DAqD9B,CAAA;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CACzB,UAAU,EAAE,MAAM,GACjB;IAAE,MAAM,EAAE,SAAS,GAAG,iBAAiB,GAAG,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAgBtE;AAID,eAAO,MAAM,oBAAoB,wnEA4ChC,CAAA;AAED,eAAO,MAAM,oBAAoB,y0DAkChC,CAAA;AAID;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,cAAc,SAAqC,GAClD;IAAE,MAAM,EAAE,YAAY,GAAG,iBAAiB,GAAG,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAoBzE;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CACzB,UAAU,EAAE,MAAM,GACjB;IAAE,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAYlD;AAqCD;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,GACjB;IAAE,MAAM,EAAE,SAAS,GAAG,iBAAiB,GAAG,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAqBtE;AAID;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,SAAS,GAAG,iBAAiB,GAAG,SAAS,CAAA;CAAE,CAiBjG"}
1
+ {"version":3,"file":"init-helpers.d.ts","sourceRoot":"","sources":["../../src/lib/init-helpers.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,wBAAwB,8BAA8B,CAAA;AACnE,eAAO,MAAM,sBAAsB,4BAA4B,CAAA;AAE/D,eAAO,MAAM,kBAAkB,ozDA8C9B,CAAA;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CACzB,UAAU,EAAE,MAAM,GACjB;IAAE,MAAM,EAAE,SAAS,GAAG,iBAAiB,GAAG,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAgBtE;AAID,eAAO,MAAM,oBAAoB,s/DA8ChC,CAAA;AAED,eAAO,MAAM,oBAAoB,y0DAkChC,CAAA;AAID;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,cAAc,SAAqC,GAClD;IAAE,MAAM,EAAE,YAAY,GAAG,iBAAiB,GAAG,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAoBzE;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CACzB,UAAU,EAAE,MAAM,GACjB;IAAE,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAYlD;AAwBD;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,GACjB;IAAE,MAAM,EAAE,SAAS,GAAG,iBAAiB,GAAG,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAoBtE;AAID;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,SAAS,GAAG,iBAAiB,GAAG,SAAS,CAAA;CAAE,CAiBjG"}
@@ -18,31 +18,24 @@ Do not ask questions first. Read the snapshot, then start working.
18
18
  Start the next specific task from the snapshot — not an entire feature or milestone.
19
19
  One task per session unless it is trivially small.
20
20
 
21
- ## After EVERY completed task
21
+ ## When to save context
22
22
 
23
- Do not wait to be asked. Every git commit = immediate context commit.
24
- Do not proceed to the next task until both are done.
23
+ Save once per commit. Every git commit deserves a paired \`project_memory_save\`.
24
+ Skipping commits leaves their history blind the diff survives, the *reason*
25
+ does not. The save's body is what makes the commit binding worth pulling in
26
+ three weeks.
25
27
 
26
- 1. \`git add . && git commit -m "feat/fix: <what was done>"\`
27
- 2. Call \`project_memory_save\` immediately after with:
28
- - One-line summary of what was done
29
- - What was decided and why
30
- - What was built (files changed, approach taken)
31
- - Open questions
32
- - Git branch and commit hash
33
- - The next concrete task
28
+ What the save body carries:
29
+ - The **decision** behind the change — why this approach, not the other.
30
+ - Any **approach abandoned** along the way (use \`replan:\` prefix if scope shifted).
31
+ - The **open question** the commit raises — what is still unresolved.
34
32
 
35
- These two always go together. Never git commit without a context commit.
33
+ The body is NOT a restatement of the diff. Git already has the diff.
36
34
 
37
- ## Session End (do this every time)
35
+ Bad save: "Implemented apiFetch wrapper" paraphrases the commit; git has it.
38
36
 
39
- Before stopping work for any reason, call \`project_memory_save\` with:
40
- - What was built this session
41
- - Key decisions and why
42
- - Open threads and blockers
43
- - The first concrete task for the next session
44
-
45
- Do not end a session without a context commit. The next session starts blind without it.
37
+ Good save: "apiFetch wrapper chose X-User-Id header over cookie auth because
38
+ the extension can't share the host session cookie. Open: needs 401 handling."
46
39
 
47
40
  ## Before risky exploration
48
41
 
@@ -86,27 +79,29 @@ export function writeClaude(projectDir) {
86
79
  // ── Skills ────────────────────────────────────────────────────────────────────
87
80
  export const CONTEXT_COMMIT_SKILL = `---
88
81
  name: context-commit
89
- description: "MANDATORY: Save project memory after completing ANY work. Use this skill after EVERY completed task and EVERY git commit — finished implementing a feature, resolved a bug, made a decision, closed a thread, completed a review, or ending a session. Every git commit must be followed immediately by a context commit. Do not wait to be asked. Do not proceed to the next task until both git commit and context commit are done. Triggers: git commit made, task complete, 'that's working', 'let's move on', 'I'm done', session ending. Skipping this means the next session starts completely blind."
82
+ description: "Save project memory once per git commit. Every commit deserves a paired save; the body carries what git cannot reconstruct the decision behind the change, any approach abandoned (use replan: prefix), the open question the commit raises. The body is never a paraphrase of the diff."
90
83
  ---
91
84
 
92
85
  # ContextGit — Context Commit Discipline
93
86
 
94
- ## RULE: Every git commit = immediate context commit
87
+ ## When to save context
88
+
89
+ Save once per commit. Every git commit deserves a paired \`project_memory_save\`.
90
+ Skipping commits leaves their history blind — the diff survives, the *reason*
91
+ does not. The save's body is what makes the commit binding worth pulling in
92
+ three weeks.
93
+
94
+ What the save body carries:
95
+ - The **decision** behind the change — why this approach, not the other.
96
+ - Any **approach abandoned** along the way (use \`replan:\` prefix if scope shifted).
97
+ - The **open question** the commit raises — what is still unresolved.
95
98
 
96
- Do not wait to be asked. Do not batch. Do not skip.
97
- After every git commit, call \`project_memory_save\` immediately.
98
- Do not proceed to the next task until both git commit and context commit are done.
99
- These two always go together. Never git commit without a context commit.
99
+ The body is NOT a restatement of the diff. Git already has the diff.
100
100
 
101
- ## When to commit context
101
+ Bad save: "Implemented apiFetch wrapper" — paraphrases the commit; git has it.
102
102
 
103
- Call \`project_memory_save\` (MCP tool) after:
104
- - Every git commit (mandatory these always go together)
105
- - Completing a feature or task (before moving to the next)
106
- - Making an architectural decision or choosing between options
107
- - Resolving a bug, blocker, or open question
108
- - Closing a thread
109
- - Before ending the session for any reason
103
+ Good save: "apiFetch wrapper — chose X-User-Id header over cookie auth because
104
+ the extension can't share the host session cookie. Open: needs 401 handling."
110
105
 
111
106
  ## What makes a good commit message
112
107
 
@@ -229,18 +224,6 @@ const CONTEXTGIT_HOOKS = {
229
224
  ],
230
225
  },
231
226
  ],
232
- PostToolUse: [
233
- {
234
- matcher: 'Bash',
235
- if: 'Bash(git commit*)',
236
- hooks: [
237
- {
238
- type: 'command',
239
- command: `printf '{"hookSpecificOutput":{"hookEventName":"PostToolUse","additionalContext":"MANDATORY: Call project_memory_save NOW before proceeding to any next task. Every git commit must be paired with project_memory_save immediately after."}}'`,
240
- },
241
- ],
242
- },
243
- ],
244
227
  };
245
228
  /**
246
229
  * Merge ContextGit hooks into <projectDir>/.claude/settings.json.
@@ -258,7 +241,6 @@ export function patchClaudeSettings(projectDir) {
258
241
  }
259
242
  const hooks = json['hooks'] ?? {};
260
243
  hooks['SessionStart'] = [...(hooks['SessionStart'] ?? []), ...CONTEXTGIT_HOOKS.SessionStart];
261
- hooks['PostToolUse'] = [...(hooks['PostToolUse'] ?? []), ...CONTEXTGIT_HOOKS.PostToolUse];
262
244
  json['hooks'] = hooks;
263
245
  mkdirSync(join(projectDir, '.claude'), { recursive: true });
264
246
  writeFileSync(settingsPath, JSON.stringify(json, null, 2) + '\n');
@@ -1 +1 @@
1
- {"version":3,"file":"init-helpers.js","sourceRoot":"","sources":["../../src/lib/init-helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init-helpers.js","sourceRoot":"","sources":["../../src/lib/init-helpers.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import { describe, it, expect, beforeEach, afterEach } from 'vitest';
2
2
  import { mkdtempSync, rmSync, writeFileSync, readFileSync, existsSync } from 'fs';
3
3
  import { tmpdir } from 'os';
4
4
  import { join } from 'path';
5
- import { writeClaude, writeSkills, registerMcp, patchGitignore, patchClaudeSettings, CLAUDE_MD_SENTINEL_START, CLAUDE_MD_SENTINEL_END, } from './init-helpers.js';
5
+ import { writeClaude, writeSkills, registerMcp, patchGitignore, patchClaudeSettings, CLAUDE_MD_SENTINEL_START, CLAUDE_MD_SENTINEL_END, CLAUDE_MD_FRAGMENT, CONTEXT_COMMIT_SKILL, } from './init-helpers.js';
6
6
  let tmpDir;
7
7
  beforeEach(() => {
8
8
  tmpDir = mkdtempSync(join(tmpdir(), 'contextgit-init-test-'));
@@ -105,20 +105,17 @@ describe('registerMcp', () => {
105
105
  });
106
106
  // ── patchClaudeSettings ───────────────────────────────────────────────────────
107
107
  describe('patchClaudeSettings', () => {
108
- it('creates .claude/settings.json with both hooks when file does not exist', () => {
108
+ it('creates .claude/settings.json with SessionStart hook and no PostToolUse hook', () => {
109
109
  const result = patchClaudeSettings(tmpDir);
110
110
  expect(result.status).toBe('patched');
111
111
  const settingsPath = join(tmpDir, '.claude', 'settings.json');
112
112
  expect(existsSync(settingsPath)).toBe(true);
113
113
  const json = JSON.parse(readFileSync(settingsPath, 'utf-8'));
114
- // SessionStart (not UserPromptSubmit)
114
+ // SessionStart hook present
115
115
  expect(json.hooks.SessionStart).toHaveLength(1);
116
116
  expect(json.hooks.SessionStart[0].hooks[0].command).toContain('project_memory_load');
117
- // PostToolUse with native if condition
118
- expect(json.hooks.PostToolUse).toHaveLength(1);
119
- expect(json.hooks.PostToolUse[0].matcher).toBe('Bash');
120
- expect(json.hooks.PostToolUse[0].if).toBe('Bash(git commit*)');
121
- expect(json.hooks.PostToolUse[0].hooks[0].command).toContain('project_memory_save');
117
+ // No PostToolUse hook git commits no longer trigger mandatory saves
118
+ expect(json.hooks.PostToolUse).toBeUndefined();
122
119
  // No UserPromptSubmit
123
120
  expect(json.hooks.UserPromptSubmit).toBeUndefined();
124
121
  });
@@ -130,7 +127,7 @@ describe('patchClaudeSettings', () => {
130
127
  const json = JSON.parse(readFileSync(settingsPath, 'utf-8'));
131
128
  expect(json.permissions.allow).toContain('Bash(git:*)');
132
129
  expect(json.hooks.SessionStart).toBeDefined();
133
- expect(json.hooks.PostToolUse).toBeDefined();
130
+ expect(json.hooks.PostToolUse).toBeUndefined();
134
131
  });
135
132
  it('is idempotent — returns already-present on second call', () => {
136
133
  patchClaudeSettings(tmpDir);
@@ -141,6 +138,42 @@ describe('patchClaudeSettings', () => {
141
138
  expect(json.hooks.SessionStart).toHaveLength(1);
142
139
  });
143
140
  });
141
+ // ── save-rhythm content checks ────────────────────────────────────────────────
142
+ describe('save-rhythm content', () => {
143
+ it('CLAUDE_MD_FRAGMENT contains "Save once per commit" (commit-binding model)', () => {
144
+ expect(CLAUDE_MD_FRAGMENT).toContain('Save once per commit');
145
+ });
146
+ it('CONTEXT_COMMIT_SKILL description does not contain "Do not batch"', () => {
147
+ expect(CONTEXT_COMMIT_SKILL).not.toContain('Do not batch');
148
+ });
149
+ });
150
+ // ── save-rhythm commit-binding model (03 DELTA Fix 3) ─────────────────────────
151
+ describe('save-rhythm commit-binding model (03 DELTA Fix 3)', () => {
152
+ it('CLAUDE_MD_FRAGMENT states save-per-commit + body-carries-intent', () => {
153
+ expect(CLAUDE_MD_FRAGMENT).toContain('Save once per commit');
154
+ expect(CLAUDE_MD_FRAGMENT).toContain('Bad save:');
155
+ expect(CLAUDE_MD_FRAGMENT).toContain('Good save:');
156
+ expect(CLAUDE_MD_FRAGMENT).toContain('decision');
157
+ expect(CLAUDE_MD_FRAGMENT).toContain('open question');
158
+ });
159
+ it('CLAUDE_MD_FRAGMENT no longer contains the 02-rhythm text', () => {
160
+ expect(CLAUDE_MD_FRAGMENT).not.toContain('3–5 genuinely open threads');
161
+ expect(CLAUDE_MD_FRAGMENT).not.toContain('only when project state changes in a way');
162
+ expect(CLAUDE_MD_FRAGMENT).not.toContain('Do not save merely because a git commit happened');
163
+ });
164
+ it('CONTEXT_COMMIT_SKILL states save-per-commit + body-carries-intent', () => {
165
+ expect(CONTEXT_COMMIT_SKILL).toContain('Save once per commit');
166
+ expect(CONTEXT_COMMIT_SKILL).toContain('Bad save:');
167
+ expect(CONTEXT_COMMIT_SKILL).toContain('Good save:');
168
+ });
169
+ it('CONTEXT_COMMIT_SKILL description embodies commit-binding (not the 02 rhythm)', () => {
170
+ expect(CONTEXT_COMMIT_SKILL).toMatch(/description:\s*"[^"]*once per git commit/);
171
+ expect(CONTEXT_COMMIT_SKILL).not.toContain('Do not save merely because a git commit happened');
172
+ });
173
+ it('CONTEXT_COMMIT_SKILL no longer contains the 02-rhythm text', () => {
174
+ expect(CONTEXT_COMMIT_SKILL).not.toContain('3–5 genuinely open threads');
175
+ });
176
+ });
144
177
  // ── patchGitignore ────────────────────────────────────────────────────────────
145
178
  describe('patchGitignore', () => {
146
179
  it('creates .gitignore when none exists', () => {
@@ -1 +1 @@
1
- {"version":3,"file":"init-helpers.test.js","sourceRoot":"","sources":["../../src/lib/init-helpers.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init-helpers.test.js","sourceRoot":"","sources":["../../src/lib/init-helpers.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "contextgit",
3
- "version": "0.1.9",
3
+ "version": "0.2.0",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "contextgit": "./bin/run.js",
@@ -33,10 +33,10 @@
33
33
  "typecheck": "tsc --noEmit"
34
34
  },
35
35
  "dependencies": {
36
- "@contextgit/core": "0.1.9",
37
- "@contextgit/store": "0.1.9",
38
- "@contextgit/api": "0.1.9",
39
- "@contextgit/mcp": "0.1.9",
36
+ "@contextgit/core": "0.2.0",
37
+ "@contextgit/store": "0.2.0",
38
+ "@contextgit/api": "0.2.0",
39
+ "@contextgit/mcp": "0.2.0",
40
40
  "@oclif/core": "^3.27.0",
41
41
  "nanoid": "^5.0.0",
42
42
  "simple-git": "^3.27.0"