@neikyun/ciel 6.9.1 → 6.10.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.
@@ -33,6 +33,11 @@ declare -a SOURCES=(
33
33
  # .claude/rules/*.md detected separately (variable count)
34
34
  RULES_DIR="$PROJECT_DIR/.claude/rules"
35
35
 
36
+ # Claude Code's per-project auto-memory dir. Lives OUTSIDE the repo, derived
37
+ # from cwd with `/` replaced by `-`. Tests override via CIEL_AUTO_MEMORY_DIR.
38
+ # Pattern: ~/.claude/projects/-Users-foo-Projects-Bar/memory/
39
+ AUTO_MEMORY_DIR="${CIEL_AUTO_MEMORY_DIR:-$HOME/.claude/projects/$(echo "$PROJECT_DIR" | sed 's|/|-|g')/memory}"
40
+
36
41
  # ─── Helpers ─────────────────────────────────────────────────────────────────
37
42
 
38
43
  scan_sources() {
@@ -58,6 +63,17 @@ scan_sources() {
58
63
  fi
59
64
  fi
60
65
 
66
+ # Claude Code auto-memory — excludes the MEMORY.md index file (just a TOC,
67
+ # not memory content). Each *.md sibling is a discrete entry to migrate.
68
+ if [[ -d "$AUTO_MEMORY_DIR" ]]; then
69
+ local auto_count
70
+ auto_count=$(find "$AUTO_MEMORY_DIR" -maxdepth 1 -name "*.md" -type f -not -name "MEMORY.md" 2>/dev/null | wc -l | tr -d ' ')
71
+ if [[ "$auto_count" -gt 0 ]]; then
72
+ echo " ✓ $AUTO_MEMORY_DIR/ ($auto_count Claude Code auto-memory entries — to migrate to .ciel/memory/)"
73
+ found=$((found + auto_count))
74
+ fi
75
+ fi
76
+
61
77
  echo ""
62
78
  if [[ "$found" -eq 0 ]]; then
63
79
  echo "No ingestable sources found. The cued-recall memory will populate"
@@ -51,20 +51,29 @@ except: print(0)
51
51
  fi
52
52
  fi
53
53
 
54
- # ─── Cued-recall: intervention pattern detection ─────────────────────────────
55
- # When the user message contains a clear correction/intervention pattern,
56
- # suggest capturing it as a memory. Patterns are intentionally narrow to keep
57
- # false-positive rate low generic words like "wait" / "stop" / "actually"
58
- # are NOT triggers on their own; they must combine with a negation/correction
59
- # adjacent. Never auto-silent the model surfaces a question to the user.
60
- # See ADR-0001 and skill `memoire`.
54
+ # ─── Cued-recall: intervention + explicit-save detection ─────────────────────
55
+ # Two narrow buckets, BOTH high-precision (POSIX-ERE, no PCRE lookahead):
56
+ # 1. Intervention regex user corrections ("you forgot", "non en fait", …)
57
+ # 2. Explicit save-request regexdirect capture asks ("save this to memory", …)
58
+ # Bare verbs without an explicit memory noun (e.g. "remember to commit",
59
+ # "memorise this") are deliberately NOT triggers an earlier draft used
60
+ # `remember (this|that|it|to)` and fired on every casual "I'll remember to X"
61
+ # prompt, polluting the cued-recall corpus. Each save-request branch REQUIRES
62
+ # the noun `memory`/`mémoire` OR the unambiguous verb+object pair
63
+ # `mémorise <ça/cela/ceci>` / `memorise <this/that/it>`. Anchored to sentence
64
+ # boundary so trailing "remember" never fires. See ADR-0001, skill `memoire`,
65
+ # and packages/ciel/test/hooks-regex.test.ts.
61
66
  INTERVENTION_GATE=""
62
- # POSIX-ERE only (no PCRE lookahead). Patterns are intentionally high-precision
63
- # to avoid false positives on generic words (wait/stop/actually). Each pattern
64
- # is a clear signal of correction or "you missed something".
67
+ # Bucket 1: corrections / "you missed something" (unchanged from v6.2 proven precise)
65
68
  if echo "$PROMPT" | grep -qiE "(tu as oublié|t'as oublié|n'oublie pas (que|de)|non en fait|non,? en fait|attention que|rappelle-toi (que|de)|ici on (fait|utilise) plutôt|non on (fait|utilise) plutôt|en fait c'est pas|c'est pas comme ça|mauvaise approche|tu te trompes|you forgot (to|that)|don't forget (to|that)|that's not (right|correct|how)|that's wrong|no[,]? actually|actually,? no|wait[,—-] (no|don't|you forgot)|stop[,—-] (no|you forgot|don't))"; then
66
69
  INTERVENTION_GATE=" | CAPTURE GATE: intervention pattern detected — propose AskUserQuestion to capture as memory under .ciel/memory/episodes/ (skill: memoire). Never silent-write."
67
70
  fi
71
+ # Bucket 2: explicit save requests — every branch requires the memory noun or
72
+ # unambiguous mémorise/memorise+object. Anchored to start-of-prompt or
73
+ # sentence boundary so "I'll remember the memory of …" never fires.
74
+ if [ -z "$INTERVENTION_GATE" ] && echo "$PROMPT" | grep -qiE "(^|[[:space:].!?])(save (this|that|it) (to|in|into) (the )?memory|put (this|that|it) (in|into) (the )?memory|put (it|this|that) in (the )?memory of ciel|garde (ça|cela|ceci) en (mémoire|memoire)|mets (ça|cela|ceci) en (mémoire|memoire)|enregistre (ça|cela|ceci) (en|dans la|à la) (mémoire|memoire)|sauvegarde (ça|cela|ceci) (en|dans la|à la) (mémoire|memoire)|mémorise (ça|cela|ceci)|memorise (this|that|it))"; then
75
+ INTERVENTION_GATE=" | CAPTURE GATE: explicit save request detected — propose AskUserQuestion then capture as memory under .ciel/memory/episodes/ via memory-engine.py (skill: memoire). NEVER write to Claude Code auto-memory (~/.claude/projects/<slug>/memory/MEMORY.md) — that is a DIFFERENT system and invisible to /ciel-audit. Never silent-write."
76
+ fi
68
77
 
69
78
  # ─── Cued-recall: query memory engine for matching memories ──────────────────
70
79
  # Calls hooks/memory-engine.py if installed and a memory corpus exists. The
@@ -1,5 +1,5 @@
1
1
  {
2
- "autoMemoryEnabled": true,
2
+ "autoMemoryEnabled": false,
3
3
  "permissions": {
4
4
  "allow": [
5
5
  "Bash(npx ciel-init *)",
package/assets/CLAUDE.md CHANGED
@@ -151,6 +151,25 @@ The MEMOIRE step writes to a structured corpus that auto-replays when context cu
151
151
 
152
152
  **Capture is never auto-silent** — the model surfaces a confirmation question to the user before writing a memory.
153
153
 
154
+ ### Ciel memory ≠ Claude Code auto-memory (HARD ROUTING RULE)
155
+
156
+ Claude Code ships an independent **auto-memory** system (`~/.claude/projects/<slug>/memory/MEMORY.md`) that is **NOT** the Ciel cued-recall corpus. They are different stores with different scopes, formats, and consumers.
157
+
158
+ | | Ciel cued-recall | Claude Code auto-memory |
159
+ |--|--|--|
160
+ | Location | `.ciel/memory/episodes/` (in repo) | `~/.claude/projects/<slug>/memory/MEMORY.md` (per machine, outside repo) |
161
+ | Portable | ✅ ships with the project | ❌ machine-local, lost on `git clone` |
162
+ | Seen by `/ciel-audit` | ✅ Dim 9 reads `index.json` | ❌ invisible |
163
+ | Cued retrieval | ✅ auto-replays on path/symbol/intent match | ❌ broad context injection only |
164
+ | Write API | `python3 hooks/memory-engine.py capture …` | Internal Claude Code tool |
165
+
166
+ **Routing rule (mandatory)**: when the user says "save to memory", "remember this", "put it in memory", "mémoire", "retiens", "enregistre", "garde en mémoire", or any synonym in any language:
167
+
168
+ 1. The target is **always** `.ciel/memory/episodes/` via `memory-engine.py capture` — never the Claude Code auto-memory.
169
+ 2. Confirm with `AskUserQuestion` first (capture is never silent — see ADR-0001).
170
+ 3. The `UserPromptSubmit` hook surfaces `CAPTURE GATE: …` when the phrasing matches — follow it.
171
+ 4. If `autoMemoryEnabled` is `true` in `.claude/settings.json` and you find yourself tempted to write to `MEMORY.md`, **STOP**. That setting is opt-in and not used by Ciel. The Ciel template ships with it disabled.
172
+
154
173
  ## Common failures to avoid
155
174
 
156
175
  These are the most frequently skipped pipeline steps. Do NOT fall into these traps:
@@ -123,7 +123,7 @@ Scoring:
123
123
 
124
124
  **Important**: Do NOT check for `.claude/plugins/ciel/platforms/` or `.opencode/platforms/` directories — these are not part of the v6 architecture. Platform files are installed directly into `.claude/` and `.opencode/` respectively. Do NOT check for codex, cursor, kilocode, lmstudio, ollama, or windsurf — these platforms are not yet implemented.
125
125
 
126
- #### Dimension 9: Memory health — penalty up to -10
126
+ #### Dimension 9: Memory health — penalty up to -15
127
127
 
128
128
  Check the cued-recall memory system (see `docs/adrs/0001-cued-recall-memory.md`):
129
129
 
@@ -131,10 +131,12 @@ Check the cued-recall memory system (see `docs/adrs/0001-cued-recall-memory.md`)
131
131
  - **index.json exists but episodes/ empty**: `.ciel/memory/episodes/` has no files. Bootstrap ran but no memories were ingested, or the directory structure is incomplete. **-5**
132
132
  - **Low trigger ratio**: Count memories with `trigger_count > 0` vs total. If < 30% of memories have ever been triggered, the cue-matching system may be misconfigured or the memories are not relevant to actual usage. **-3**
133
133
  - **Stale memories**: Any memory with `stale: true` or with `last_triggered` older than `stale_after_days` (default 90). Stale memories waste index space and should be cleaned up by `memory-engine.py rebuild-index`. **-2**
134
+ - **Auto-memory contamination**: Claude Code's built-in auto-memory (`~/.claude/projects/<slug>/memory/MEMORY.md`) exists for THIS project. This is a DIFFERENT memory store than the Ciel cued-recall corpus. If a user (or the model on their behalf) said "save to memory" and the write landed in `MEMORY.md` instead of `.ciel/memory/episodes/`, that knowledge is invisible to Ciel — not portable across machines, not seen by this audit's cue-matching checks, not replayed when context cues fire. **-5** if `MEMORY.md` is present AND newer than the most recent Ciel episode (suggests recent mis-routed capture).
134
135
 
135
136
  Scoring:
136
137
  - index.json missing: **-10** (blocks all other checks)
137
138
  - index.json present but no episode files: **-5**
139
+ - Auto-memory contamination detected: **-5** (additive)
138
140
  - All checks pass: **0**
139
141
 
140
142
  Run these checks:
@@ -157,6 +159,27 @@ triggered = sum(1 for m in mems.values() if m.get('trigger_count', 0) > 0)
157
159
  stale = sum(1 for m in mems.values() if m.get('stale'))
158
160
  print(f'total: {total}, triggered: {triggered} ({0 if total==0 else triggered*100//total}%), stale: {stale}')
159
161
  " 2>/dev/null || echo "memory check failed (no python3?)"
162
+
163
+ # Detect Claude Code auto-memory contamination
164
+ # The auto-memory slug is the cwd with / replaced by -. If this file exists
165
+ # AND is newer than the most recent Ciel episode, a recent capture was
166
+ # mis-routed to Claude Code auto-memory instead of Ciel's cued-recall store.
167
+ PROJECT_SLUG=$(pwd | sed 's|/|-|g')
168
+ AUTO_MEM="$HOME/.claude/projects/${PROJECT_SLUG}/memory/MEMORY.md"
169
+ if [ -f "$AUTO_MEM" ]; then
170
+ echo "auto-memory: present at $AUTO_MEM"
171
+ LATEST_EPISODE=$(ls -t .ciel/memory/episodes/*.md 2>/dev/null | head -1)
172
+ if [ -z "$LATEST_EPISODE" ] || [ "$AUTO_MEM" -nt "$LATEST_EPISODE" ]; then
173
+ echo "auto-memory: CONTAMINATION — auto-memory newer than latest Ciel episode (mis-routed capture suspected)"
174
+ echo " → root cause: 'autoMemoryEnabled' in .claude/settings.json is enabled."
175
+ echo " fix: set it to false, then migrate entries from $AUTO_MEM"
176
+ echo " to .ciel/memory/episodes/ via memory-engine.py capture"
177
+ else
178
+ echo "auto-memory: present but older than Ciel episodes — likely legacy, no penalty"
179
+ fi
180
+ else
181
+ echo "auto-memory: absent (clean)"
182
+ fi
160
183
  ```
161
184
 
162
185
  ---
@@ -1,10 +1,10 @@
1
1
  ---
2
- description: Scan project for ingestable tribal docs (lessons.md, ciel-overlay.md, .claude/rules/, etc.) and propose ingestion into the cued-recall memory under .ciel/memory/. Reports findings if no sources found. Always confirms each candidate with the user before writing.
2
+ description: Scan project for ingestable tribal docs (lessons.md, ciel-overlay.md, .claude/rules/, Claude Code auto-memory at ~/.claude/projects/<slug>/memory/, etc.) and propose ingestion into the cued-recall memory under .ciel/memory/. Reports findings if no sources found. Always confirms each candidate with the user before writing.
3
3
  ---
4
4
 
5
5
  # /ciel-memory-bootstrap — Initialize Cued-Recall Memory
6
6
 
7
- **Purpose:** First-run scan of an existing project to convert tribal knowledge already documented in `lessons.md`, `ciel-overlay.md`, `.claude/rules/`, and similar files into the structured cued-recall memory at `.ciel/memory/`.
7
+ **Purpose:** First-run scan of an existing project to convert tribal knowledge already documented in `lessons.md`, `ciel-overlay.md`, `.claude/rules/`, Claude Code's per-project auto-memory (`~/.claude/projects/<slug>/memory/`), and similar files into the structured cued-recall memory at `.ciel/memory/`.
8
8
 
9
9
  **Usage:** `/ciel-memory-bootstrap` (no args)
10
10
 
@@ -60,6 +60,39 @@ For each source found in Step 1, `Read` the file fully. Identify candidate memor
60
60
  | `## Heading\n\n- rule\n- rule` (rules.md style) | One memory per rule. |
61
61
  | Numbered lessons in `ciel-overlay.md` "Key Lessons" | One memory per lesson. |
62
62
  | `## section` in CLAUDE.md/AGENTS.md describing a non-obvious convention | One memory per section. |
63
+ | **Claude Code auto-memory** entries (`~/.claude/projects/<slug>/memory/*.md`, excluding `MEMORY.md`) | One memory per file. Title = frontmatter `description`. Cues derived per "Auto-memory mapping" below. |
64
+
65
+ #### Auto-memory mapping (special parser)
66
+
67
+ Claude Code auto-memory uses a different frontmatter than Ciel's cued-recall. Each source file looks like:
68
+
69
+ ```yaml
70
+ ---
71
+ name: feedback-okhttp-cookiejar-override
72
+ description: Neiyomi shared PersistentCookieJar overrides manual Cookie headers via OkHttp BridgeInterceptor
73
+ metadata:
74
+ type: feedback
75
+ ---
76
+
77
+ (body markdown — Context / Why / How to apply sections)
78
+ ```
79
+
80
+ When you encounter a file under `$AUTO_MEMORY_DIR`, map it to a Ciel episode as follows:
81
+
82
+ | Auto-memory field | Ciel frontmatter field | Notes |
83
+ |---|---|---|
84
+ | `description:` | `title:` | one-line summary |
85
+ | `name:` | base of slug for filename | already kebab-case |
86
+ | `metadata.type:` (`user`/`feedback`/`project`/`reference`) | `intents:` `[<type>]` plus topic-specific intents inferred from body | e.g. `feedback` + `okhttp` + `cookie` |
87
+ | body markdown | Ciel episode body, verbatim | preserve Context/Why/How to apply structure |
88
+ | paths cited in body (e.g. `src/`, `*.kt`, `Caddyfile`) | `path_patterns:` | infer from grep — narrow patterns preferred |
89
+ | symbols cited in body (class/function/table names) | `symbols:` | infer from grep |
90
+ | language hint (file extensions in body) | `languages:` | `kotlin`/`typescript`/`python`/`sql`/etc. |
91
+ | `captured_from:` (NEW) | `auto-memory-migration` | distinguishes from user-intervention captures |
92
+
93
+ **Skip `MEMORY.md`** — it's a table-of-contents index, not memory content. The scan already excludes it.
94
+
95
+ **Backup before delete.** After successfully writing an episode file for an auto-memory entry, MOVE (not delete) the source to `$AUTO_MEMORY_DIR/.migrated-to-ciel/<filename>` so the user can audit migration. The MEMORY.md index file itself stays in place — Claude Code may regenerate it on next session.
63
96
 
64
97
  Skip:
65
98
  - The pipeline / workflow descriptions (those belong in CLAUDE.md, not memory)
@@ -152,6 +185,8 @@ Report:
152
185
  | Nothing scanned | No tribal docs in this project | Working as intended; report and end |
153
186
  | Memories all tagged with broad paths | Source content didn't include path hints | Ask user to refine tags after listing |
154
187
  | index.json malformed after rebuild | python3 parse error | Recreate empty index, re-run rebuild step |
188
+ | Auto-memory not detected | Slug derivation mismatch (cwd has unexpected characters) | Override via `CIEL_AUTO_MEMORY_DIR=<absolute-path> bash hooks/memory-bootstrap.sh scan` |
189
+ | Auto-memory file has `name:` but no `description:` | Older auto-memory format | Use first heading or filename as title; ask user to confirm before writing |
155
190
 
156
191
  ## See also
157
192
 
@@ -15,7 +15,7 @@ Usage: `/ciel-status [--check]`
15
15
  ```
16
16
  ## CIEL STATUS
17
17
 
18
- Version: v6.9.1
18
+ Version: v6.10.0
19
19
  Platform: Claude Code
20
20
  Config: .claude/settings.json — OK (4 hooks registered)
21
21
  Skills directory: skills/ — 43 skills loaded
@@ -8,6 +8,9 @@ export interface InstallResult {
8
8
  installed: string[];
9
9
  skipped: string[];
10
10
  }
11
+ export declare const CIEL_HOOK_FILES: string[];
12
+ export declare const CIEL_LEGACY_HOOK_FILES: string[];
13
+ export declare const CIEL_OWNED_SETTINGS_KEYS: readonly ["autoMemoryEnabled"];
11
14
  /**
12
15
  * Detect if the project has Claude Code configuration.
13
16
  */
@@ -16,4 +19,13 @@ export declare function detectClaude(targetDir: string): boolean;
16
19
  * Install Ciel files for Claude Code platform.
17
20
  */
18
21
  export declare function installClaude(opts: ClaudeOptions): InstallResult;
22
+ /**
23
+ * Merge the hooks section of a Ciel settings.json template into an existing
24
+ * settings file. Replaces Ciel-managed hook entries (those whose inner
25
+ * hooks[].command references a known Ciel hook script basename, regardless
26
+ * of path) with the template entries; user-added wrappers are preserved.
27
+ * All other top-level keys (mcpServers, permissions, etc.) are kept from
28
+ * the existing file. Returns null if either file cannot be read or parsed.
29
+ */
30
+ export declare function mergeSettings(existingPath: string, templatePath: string): object | null;
19
31
  //# sourceMappingURL=claude.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../src/cli/claude.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAgBD;;GAEG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAKvD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,aAAa,GAAG,aAAa,CAuIhE"}
1
+ {"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../src/cli/claude.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAMD,eAAO,MAAM,eAAe,UAa3B,CAAC;AAaF,eAAO,MAAM,sBAAsB,UAIlC,CAAC;AAMF,eAAO,MAAM,wBAAwB,gCAK3B,CAAC;AAEX;;GAEG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAKvD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,aAAa,GAAG,aAAa,CAuIhE;AA2BD;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAkEvF"}
@@ -2,16 +2,18 @@
2
2
  // Claude Code platform installer logic
3
3
  // Handles detection, file copy, and config generation for Claude Code projects
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.CIEL_OWNED_SETTINGS_KEYS = exports.CIEL_LEGACY_HOOK_FILES = exports.CIEL_HOOK_FILES = void 0;
5
6
  exports.detectClaude = detectClaude;
6
7
  exports.installClaude = installClaude;
8
+ exports.mergeSettings = mergeSettings;
7
9
  const fs_1 = require("fs");
8
10
  const path_1 = require("path");
9
11
  const utils_1 = require("./utils");
10
- // Hook scripts shipped by Ciel. Used both to copy assets on install
11
- // and to detect Ciel-managed wrappers in mergeSettings — so legacy paths
12
- // (e.g. $CLAUDE_PROJECT_DIR/hooks/x.sh) get migrated on --force upgrade
13
- // rather than preserved alongside the new $CLAUDE_PROJECT_DIR/.claude/hooks/x.sh.
14
- const CIEL_HOOK_FILES = [
12
+ // Hook scripts CURRENTLY shipped by Ciel. Used by BOTH the install copy loop
13
+ // AND mergeSettings() to recognize Ciel-managed wrappers. Anything in this
14
+ // list will be (re)installed on `--force` upgrade.
15
+ // Exported for test/merge-settings.test.ts internal API, not for SDK consumers.
16
+ exports.CIEL_HOOK_FILES = [
15
17
  "check-test-first.sh",
16
18
  "block-destructive.sh",
17
19
  "track-file.sh",
@@ -19,6 +21,37 @@ const CIEL_HOOK_FILES = [
19
21
  "session-version-check.sh",
20
22
  "pre-tool-write.sh",
21
23
  "pre-agent-gate.sh",
24
+ // Cued-recall hooks — ship from `.claude/hooks/` to the same destination.
25
+ "session-start.sh",
26
+ "user-prompt-submit.sh",
27
+ "memory-bootstrap.sh",
28
+ "memory-engine.py",
29
+ ];
30
+ // Legacy hook basenames from PRIOR Ciel versions. Used ONLY by mergeSettings()
31
+ // to evict stale wrappers on `--force` upgrade — NEVER iterated by the install
32
+ // copy loop (assets/ no longer ships these files).
33
+ //
34
+ // IMPORTANT: every entry here is a basename Ciel has owned at some point.
35
+ // Do NOT add basenames that may belong to USER-DEFINED custom hooks (the
36
+ // mergeSettings() filter uses a substring `cmd.includes(name)` check, so
37
+ // adding a user-owned basename here causes silent data loss on `--force`).
38
+ // Specifically: `post-edit-check.sh` is intentionally absent — it has never
39
+ // been a Ciel-shipped hook; it appears in some user settings as a custom
40
+ // post-edit linter wrapper. Preserve it.
41
+ exports.CIEL_LEGACY_HOOK_FILES = [
42
+ "pre-write-gate.sh", // renamed → pre-tool-write.sh in v2.0
43
+ "post-write-relire.sh", // renamed → post-tool-write.sh in v2.0
44
+ "post-tool-write.sh", // removed in v6.x (replaced by track-file + RELIRE gate)
45
+ ];
46
+ // Top-level settings.json keys that Ciel OWNS and SHOULD overwrite on `--force`
47
+ // upgrade, even when the user already has a value. Everything else stays
48
+ // user-controlled (existing wins). Add with care — each entry here is a key
49
+ // the user cannot override via settings.json once they run `ciel-init --force`.
50
+ exports.CIEL_OWNED_SETTINGS_KEYS = [
51
+ // autoMemoryEnabled MUST be false on Ciel projects: Claude Code's auto-memory
52
+ // competes with the cued-recall corpus and is invisible to /ciel-audit.
53
+ // See ADR-0001 and CLAUDE.md "Ciel memory ≠ Claude Code auto-memory".
54
+ "autoMemoryEnabled",
22
55
  ];
23
56
  /**
24
57
  * Detect if the project has Claude Code configuration.
@@ -63,7 +96,7 @@ function installClaude(opts) {
63
96
  }
64
97
  }
65
98
  // Hook files
66
- for (const hook of CIEL_HOOK_FILES) {
99
+ for (const hook of exports.CIEL_HOOK_FILES) {
67
100
  const src = (0, path_1.join)(srcDir, ".claude/hooks", hook);
68
101
  const dest = (0, path_1.join)(hooksDest, hook);
69
102
  if ((0, fs_1.existsSync)(src)) {
@@ -242,12 +275,13 @@ function mergeSettings(existingPath, templatePath) {
242
275
  ...Object.keys(existingHooks),
243
276
  ...Object.keys(templateHooks),
244
277
  ]);
278
+ // A wrapper is Ciel-managed if any inner hook command references a
279
+ // currently-shipped or legacy Ciel basename. Substring match — catches
280
+ // both new `.claude/hooks/x.sh` and legacy `hooks/x.sh` / absolute paths.
281
+ const cielBasenames = [...exports.CIEL_HOOK_FILES, ...exports.CIEL_LEGACY_HOOK_FILES];
245
282
  for (const event of allEvents) {
246
283
  const templateEntries = templateHooks[event] ?? [];
247
284
  const existingEntries = existingHooks[event] ?? [];
248
- // A wrapper is Ciel-managed if any inner hook command references a
249
- // known Ciel hook script basename — matches both new `.claude/hooks/x.sh`
250
- // and legacy `hooks/x.sh` paths so upgrades migrate cleanly.
251
285
  const userEntries = existingEntries.filter((e) => {
252
286
  const wrapper = e;
253
287
  const inner = Array.isArray(wrapper.hooks)
@@ -255,7 +289,7 @@ function mergeSettings(existingPath, templatePath) {
255
289
  : [];
256
290
  return !inner.some((h) => {
257
291
  const cmd = String(h.command ?? "");
258
- return CIEL_HOOK_FILES.some((name) => cmd.includes(name));
292
+ return cielBasenames.some((name) => cmd.includes(name));
259
293
  });
260
294
  });
261
295
  const entries = [...templateEntries, ...userEntries];
@@ -265,6 +299,13 @@ function mergeSettings(existingPath, templatePath) {
265
299
  }
266
300
  merged.hooks = mergedHooks;
267
301
  }
302
+ // Propagate Ciel-owned top-level keys from template — overwrites existing
303
+ // values on `--force`. Without this, flipping a setting in the template
304
+ // (e.g. autoMemoryEnabled false) never reaches users on upgrade.
305
+ for (const k of exports.CIEL_OWNED_SETTINGS_KEYS) {
306
+ if (k in template)
307
+ merged[k] = template[k];
308
+ }
268
309
  return merged;
269
310
  }
270
311
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/cli/claude.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/cli/claude.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@neikyun/ciel",
3
- "version": "6.9.1",
3
+ "version": "6.10.0",
4
4
  "description": "Ciel — Deep-reasoning pipeline for LLM-assisted development. OpenCode plugin + multi-platform CLI (OpenCode, Claude Code, more).",
5
5
  "main": "./dist/plugin/index.js",
6
6
  "types": "./dist/plugin/index.d.ts",