@cairnkeep/cli 2.6.0 → 2.7.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/CHANGELOG.md +14 -1
- package/README.md +22 -8
- package/bin/cairn +15 -3
- package/claude/commands/graphify.md +46 -55
- package/docs/harness-compatibility.md +13 -5
- package/docs/learning/CURRICULUM-MAP.md +3 -1
- package/docs/learning/FEATURE-GUIDE.md +3 -2
- package/docs/learning/README.md +12 -12
- package/docs/learning/lessons/L00-why-cairnkeep.md +1 -5
- package/docs/learning/lessons/L01-safe-trial.md +3 -7
- package/docs/learning/lessons/L02-installation.md +6 -8
- package/docs/learning/lessons/L03-first-project.md +1 -5
- package/docs/learning/lessons/L04-memory-fundamentals.md +0 -6
- package/docs/learning/lessons/L05-daily-workflow.md +0 -5
- package/docs/learning/lessons/L06-repository-quality.md +0 -6
- package/docs/learning/lessons/L07-privacy-and-storage.md +0 -5
- package/docs/learning/lessons/L08-multiple-machines.md +0 -5
- package/docs/learning/lessons/L09-domain-knowledge.md +0 -5
- package/docs/learning/lessons/L10-context-exploration.md +0 -5
- package/docs/learning/lessons/L11-containers.md +0 -5
- package/docs/learning/lessons/L12-managed-overlays.md +0 -6
- package/docs/learning/lessons/L13-session-evidence.md +0 -6
- package/docs/learning/lessons/L14-typed-memory.md +0 -6
- package/docs/learning/lessons/L15-capability-governance.md +0 -6
- package/docs/learning/lessons/L16-evaluation.md +0 -7
- package/docs/learning/lessons/L17-agent-boundary.md +0 -6
- package/docs/learning/templates/lesson-template.md +0 -4
- package/docs/operating.md +79 -9
- package/docs/privacy-and-data-flow.md +1 -0
- package/examples/eval/bundled-fake.json +1 -1
- package/kimi/skills/graphify/SKILL.md +33 -0
- package/mcp-memory-server/dist/capability-registry.js +2 -2
- package/mcp-memory-server/dist/graph-cli.js +386 -0
- package/mcp-memory-server/package.json +2 -1
- package/opencode/command/graphify.md +48 -58
- package/package.json +2 -1
- package/pi/prompts/graphify.md +32 -0
- package/scripts/bootstrap.sh +2 -1
- package/scripts/completion.sh +17 -6
- package/scripts/smoke-bash32.sh +1 -0
- package/scripts/sync-kimi-assets.sh +77 -0
- package/scripts/sync-pi-assets.sh +52 -31
- package/scripts/test-bootstrap-untracked.sh +21 -0
- package/scripts/test-cli-dispatch.sh +4 -0
- package/scripts/test-completion.sh +5 -0
- package/scripts/test-graph-harness-adapters.sh +46 -0
- package/scripts/test-launcher-hooks.sh +4 -2
- package/scripts/test-learning-docs.sh +2 -9
- package/scripts/test-package-install.sh +6 -0
- package/scripts/test-trajectory-hooks.sh +5 -1
- package/scripts/test-uninstall.sh +12 -2
- package/scripts/uninstall.sh +11 -4
- package/templates/graph-policy.md.template +23 -4
- package/docs/learning/PRODUCTION-PLAN.md +0 -153
- package/docs/learning/instructor-guide.md +0 -66
- package/docs/learning/templates/video-script-template.md +0 -50
- package/docs/learning/video-scripts/L00-why-cairnkeep.md +0 -80
- package/docs/learning/video-scripts/L01-safe-trial.md +0 -78
- package/docs/learning/video-scripts/L02-installation.md +0 -97
- package/docs/learning/video-scripts/L03-first-project.md +0 -99
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,18 @@ All notable user-facing changes are documented here. This project follows
|
|
|
5
5
|
|
|
6
6
|
## [Unreleased]
|
|
7
7
|
|
|
8
|
+
## [2.7.0] - 2026-08-02
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- Add a Cairnkeep-owned `cairn graph build|query|status|diff|explain|path`
|
|
13
|
+
workflow, matching Claude Code and OpenCode `/graphify` modes, shell
|
|
14
|
+
completion, local-only code indexing, atomic publication, and snapshot diffs
|
|
15
|
+
without installing Graphify-owned harness assets or re-indexing generated
|
|
16
|
+
graph artifacts; add thin Pi prompt and Kimi Skill adapters that expose
|
|
17
|
+
`/graphify` while delegating exclusively to `cairn graph`, with explicit sync,
|
|
18
|
+
uninstall, package, and shell-completion coverage.
|
|
19
|
+
|
|
8
20
|
## [2.6.0] - 2026-07-29
|
|
9
21
|
|
|
10
22
|
### Added
|
|
@@ -220,7 +232,8 @@ stored memories.
|
|
|
220
232
|
- Preserve executable permissions and Bash 3.2 portability on macOS.
|
|
221
233
|
- Add backup-first uninstall and SQLite-safe memory export/import guidance.
|
|
222
234
|
|
|
223
|
-
[Unreleased]: https://github.com/cairnkeep/cairnkeep/compare/v2.
|
|
235
|
+
[Unreleased]: https://github.com/cairnkeep/cairnkeep/compare/v2.7.0...HEAD
|
|
236
|
+
[2.7.0]: https://github.com/cairnkeep/cairnkeep/compare/v2.6.0...v2.7.0
|
|
224
237
|
[2.6.0]: https://github.com/cairnkeep/cairnkeep/compare/v2.5.0...v2.6.0
|
|
225
238
|
[2.5.0]: https://github.com/cairnkeep/cairnkeep/compare/v2.4.0...v2.5.0
|
|
226
239
|
[2.4.0]: https://github.com/cairnkeep/cairnkeep/compare/v2.3.1...v2.4.0
|
package/README.md
CHANGED
|
@@ -14,12 +14,12 @@ Qwen Code, Pi, and other MCP clients).
|
|
|
14
14
|
|
|
15
15
|
## Status
|
|
16
16
|
|
|
17
|
-
Shipped: the memory server, the `cairn` CLI (`bootstrap`, `memory-server`, `sync`, `sync-pi`,
|
|
17
|
+
Shipped: the memory server, the `cairn` CLI (`bootstrap`, `memory-server`, `sync`, `sync-pi`, `sync-kimi`,
|
|
18
18
|
`doctor`, `trajectory`, `artifact`, `notes`, `memory`, `eval`, `audit-timer`, `completion`, `uninstall`) installable via
|
|
19
19
|
`npm i -g @cairnkeep/cli`, and the
|
|
20
20
|
operating layer (commands,
|
|
21
21
|
agents, hooks) installed on Claude Code and OpenCode, plus a native Pi
|
|
22
|
-
trajectory extension. The generic launchers
|
|
22
|
+
trajectory extension and thin Pi/Kimi graph adapters. The generic launchers
|
|
23
23
|
expose wrapper seams (`.ai/pre-launch.sh`, `CAIRN_EXTRA_SETTINGS`,
|
|
24
24
|
`.ai/post-exit.sh`) so an enterprise wrapper can add provider/credential setup
|
|
25
25
|
without forking them. Also shipped: context exploration (`/context-explore`) and
|
|
@@ -37,13 +37,18 @@ and 20 are end-of-life upstream.
|
|
|
37
37
|
|---|---|
|
|
38
38
|
| Claude Code on Linux/macOS | Memory server plus commands, agents, hooks, and launchers |
|
|
39
39
|
| OpenCode on Linux/macOS | Memory server plus commands, plugins, hooks, and launchers |
|
|
40
|
-
| Kimi Code on Linux/macOS | Memory MCP server
|
|
40
|
+
| Kimi Code on Linux/macOS | Memory MCP server, project launcher, and opt-in `/graphify` Skill |
|
|
41
41
|
| Qwen Code on Linux/macOS | Memory MCP server plus project launcher; no Cairnkeep operating-layer assets yet |
|
|
42
|
-
| Pi on Linux/macOS | Native opt-in trajectory extension and
|
|
42
|
+
| Pi on Linux/macOS | Native opt-in trajectory extension, launcher, and `/graphify` prompt; no bundled MCP bridge |
|
|
43
43
|
| Codex CLI | Memory MCP server; no Cairnkeep operating-layer assets |
|
|
44
44
|
| Other MCP clients | Memory and optional domain-knowledge MCP tools |
|
|
45
45
|
| Native Windows | Not supported by the Bash-based installer; use WSL (not yet CI-verified) |
|
|
46
46
|
|
|
47
|
+
The `cairn graph` CLI is harness-independent and can be run from a project
|
|
48
|
+
shell used by Kimi Code, Pi, Qwen Code, Codex, or another client. Claude Code,
|
|
49
|
+
OpenCode, Pi, and Kimi can receive thin `/graphify` adapters; those adapters do
|
|
50
|
+
not imply equivalent hooks, agents, or MCP support.
|
|
51
|
+
|
|
47
52
|
Linux, macOS, Bash 3.2 portability, and clean Node 22/24/26 runtime checks
|
|
48
53
|
are exercised in CI.
|
|
49
54
|
|
|
@@ -79,13 +84,17 @@ storage paths, secrets, and private derived images, see
|
|
|
79
84
|
`cairn artifact list|show|delete|prune` manages opt-in local artifacts;
|
|
80
85
|
`cairn eval validate|run|ablate|report|prune|delete` coordinates explicit
|
|
81
86
|
local two-pass and one-capability-at-a-time measurements;
|
|
87
|
+
`cairn graph build|query|status|diff|explain|path` owns the local Graphify
|
|
88
|
+
workflow from any project shell without installing Graphify-owned harness
|
|
89
|
+
assets; Claude Code, OpenCode, Pi, and Kimi add thin `/graphify` wrappers;
|
|
82
90
|
`cairn notes distill|search-error|promote|doctor` compiles and searches
|
|
83
91
|
default-off local hindsight notes outside the online agent path;
|
|
84
92
|
`cairn memory export|import` relocates the durable store between machines
|
|
85
93
|
(`export` requires the optional `sqlite3` CLI);
|
|
86
94
|
`cairn audit-timer` installs the scheduled memory+wiki audit;
|
|
87
95
|
`cairn completion bash|zsh|fish` generates shell completion definitions; and
|
|
88
|
-
`cairn sync-pi` installs the native Pi trajectory extension;
|
|
96
|
+
`cairn sync-pi` installs the native Pi trajectory extension and graph prompt;
|
|
97
|
+
`cairn sync-kimi` installs the Kimi graph Skill;
|
|
89
98
|
`cairn uninstall` reverses the install (backup-first, revertible).
|
|
90
99
|
- **`templates/`** — project scaffolding (generic launchers, env) plus the
|
|
91
100
|
derived-knowledge layer (wiki, alignment, graph, security, planning).
|
|
@@ -160,6 +169,10 @@ configuration requires a literal URL and supports a token reference through
|
|
|
160
169
|
`bearerTokenEnvVar`; it does not expand `${VAR}` in the URL. See
|
|
161
170
|
[Harness compatibility](docs/harness-compatibility.md#kimi-code).
|
|
162
171
|
|
|
172
|
+
Install Kimi's thin graph Skill separately with `cairn sync-kimi --apply`.
|
|
173
|
+
It registers `/graphify` (also `/skill:graphify`) and delegates every supported
|
|
174
|
+
operation exclusively to `cairn graph`.
|
|
175
|
+
|
|
163
176
|
For Qwen Code, use project `.qwen/settings.json`: local stdio launches
|
|
164
177
|
`cairn memory-server`, while remote HTTP uses `httpUrl` and environment-expanded
|
|
165
178
|
headers. Review and approve project MCP configuration with
|
|
@@ -174,9 +187,10 @@ cairn bootstrap /path/to/project
|
|
|
174
187
|
cd /path/to/project && ./.ai/start-pi.sh
|
|
175
188
|
```
|
|
176
189
|
|
|
177
|
-
This installs trajectory capture
|
|
178
|
-
|
|
179
|
-
|
|
190
|
+
This installs trajectory capture plus the thin `/graphify` prompt. The prompt
|
|
191
|
+
delegates exclusively to `cairn graph`. Cairnkeep does not bundle or select a
|
|
192
|
+
Pi MCP bridge; configure a user-chosen bridge separately if you also want the
|
|
193
|
+
MCP memory tools inside Pi.
|
|
180
194
|
|
|
181
195
|
Closed trajectories can be compiled into local hindsight notes without a model
|
|
182
196
|
or embedding service. Capture and distillation are separate opt-ins:
|
package/bin/cairn
CHANGED
|
@@ -33,8 +33,11 @@ Usage:
|
|
|
33
33
|
agents, hooks) into ~/.claude, or into DIR for a single
|
|
34
34
|
project (--live-root <project>/.claude).
|
|
35
35
|
cairn sync-pi [--apply] [--live-root DIR]
|
|
36
|
-
Install/update the Pi trajectory extension
|
|
37
|
-
~/.pi/agent
|
|
36
|
+
Install/update the Pi trajectory extension and thin
|
|
37
|
+
/graphify prompt into ~/.pi/agent or isolated DIR.
|
|
38
|
+
cairn sync-kimi [--apply] [--live-root DIR]
|
|
39
|
+
Install/update the thin Kimi /graphify Skill into
|
|
40
|
+
$KIMI_CODE_HOME, ~/.kimi-code, or isolated DIR.
|
|
38
41
|
cairn doctor Health-check the memory server and configured LLM /
|
|
39
42
|
embedding endpoints, git provider, and stores.
|
|
40
43
|
Use --repair for derived trajectory/typed metadata,
|
|
@@ -56,6 +59,9 @@ Usage:
|
|
|
56
59
|
cairn eval <validate|run|ablate|report|prune|delete>
|
|
57
60
|
Validate or run default-off local evaluations, inspect
|
|
58
61
|
reports, and manage retained experiment results.
|
|
62
|
+
cairn graph <build|query|status|diff|explain|path>
|
|
63
|
+
Build the local code graph, inspect freshness and
|
|
64
|
+
changes, or query exact symbols and paths.
|
|
59
65
|
cairn memory <path|export|import>
|
|
60
66
|
Relocate global-scope memory. `path` prints its location;
|
|
61
67
|
`export <file.tgz>` takes a WAL-safe snapshot (requires
|
|
@@ -64,7 +70,7 @@ Usage:
|
|
|
64
70
|
Install (opt-in) a systemd user timer that runs the
|
|
65
71
|
memory+wiki audit on a schedule; prints a cron alternative.
|
|
66
72
|
cairn uninstall [--dry-run] [--yes] [--purge-memory] [--live-root DIR]
|
|
67
|
-
[--pi-live-root DIR] [PROJECT ...]
|
|
73
|
+
[--pi-live-root DIR] [--kimi-live-root DIR] [PROJECT ...]
|
|
68
74
|
Reverse what cairnkeep installed/modified (operating
|
|
69
75
|
layer, hook registrations, MCP registration, audit
|
|
70
76
|
timer, and any given projects' bootstrap scaffold).
|
|
@@ -110,12 +116,18 @@ case "$cmd" in
|
|
|
110
116
|
eval)
|
|
111
117
|
exec node "$CAIRN_ROOT/mcp-memory-server/dist/eval-cli.js" "$@"
|
|
112
118
|
;;
|
|
119
|
+
graph)
|
|
120
|
+
exec node "$CAIRN_ROOT/mcp-memory-server/dist/graph-cli.js" "$@"
|
|
121
|
+
;;
|
|
113
122
|
sync)
|
|
114
123
|
exec "$CAIRN_ROOT/scripts/sync-claude-assets.sh" "$@"
|
|
115
124
|
;;
|
|
116
125
|
sync-pi)
|
|
117
126
|
exec "$CAIRN_ROOT/scripts/sync-pi-assets.sh" "$@"
|
|
118
127
|
;;
|
|
128
|
+
sync-kimi)
|
|
129
|
+
exec "$CAIRN_ROOT/scripts/sync-kimi-assets.sh" "$@"
|
|
130
|
+
;;
|
|
119
131
|
audit-timer)
|
|
120
132
|
exec "$CAIRN_ROOT/scripts/install-audit-timer.sh" "$@"
|
|
121
133
|
;;
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: "Build, rebuild, query, and inspect the project knowledge graph in .planning/graphs/"
|
|
3
|
-
argument-hint: "[build [--force]|query <term>|status|diff]"
|
|
3
|
+
argument-hint: "[build [--force]|query <term>|explain <symbol>|path <from> <to>|status|diff]"
|
|
4
4
|
allowed-tools: Read, Bash
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
**STOP -- DO NOT READ THIS FILE. You are already reading it. This prompt was injected into your context by Claude Code's command system. Using the Read tool on this file wastes tokens. Begin executing Step 0 immediately.**
|
|
8
8
|
|
|
9
|
-
**
|
|
9
|
+
**graph workflow:** Cairnkeep owns this surface through `cairn graph`. The
|
|
10
|
+
operator installs only the isolated `graphify` executable; do not invoke
|
|
11
|
+
Graphify's harness installer.
|
|
10
12
|
|
|
11
13
|
## Step 0 -- Banner
|
|
12
14
|
|
|
@@ -18,29 +20,13 @@ GRAPHIFY
|
|
|
18
20
|
|
|
19
21
|
Then proceed to Step 1.
|
|
20
22
|
|
|
21
|
-
## Step 1 --
|
|
23
|
+
## Step 1 -- Capability ownership
|
|
22
24
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
2. If the file does not exist: display the disabled message below and **STOP**
|
|
29
|
-
3. Parse the JSON content. Check if `config.graphify && config.graphify.enabled === true`
|
|
30
|
-
4. If `graphify.enabled` is NOT explicitly `true`: display the disabled message below and **STOP**
|
|
31
|
-
5. If `graphify.enabled` is `true`: proceed to Step 2
|
|
32
|
-
|
|
33
|
-
**Disabled message:**
|
|
34
|
-
|
|
35
|
-
```
|
|
36
|
-
GRAPHIFY
|
|
37
|
-
|
|
38
|
-
Knowledge graph is disabled. To activate:
|
|
39
|
-
|
|
40
|
-
gsd-tools config-set graphify.enabled true
|
|
41
|
-
|
|
42
|
-
Then run /graphify build to create the initial graph.
|
|
43
|
-
```
|
|
25
|
+
Do not implement a separate configuration gate in the prompt. Every
|
|
26
|
+
`cairn graph` operation enforces the typed `graph` capability and its legacy
|
|
27
|
+
`graphify.enabled` compatibility default before Graphify or graph-file I/O.
|
|
28
|
+
Proceed directly to Step 2; if the owner reports a disabled capability, display
|
|
29
|
+
its fixed remediation message and **STOP**.
|
|
44
30
|
|
|
45
31
|
---
|
|
46
32
|
|
|
@@ -52,6 +38,8 @@ Parse `$ARGUMENTS` to determine the operation mode:
|
|
|
52
38
|
|----------|--------|
|
|
53
39
|
| `build` or `build --force` | Run inline build (Step 3) |
|
|
54
40
|
| `query <term>` | Run inline query (Step 2a) |
|
|
41
|
+
| `explain <symbol>` | Explain one exact symbol (Step 2d) |
|
|
42
|
+
| `path <from> <to>` | Find the shortest path between two exact symbols (Step 2e) |
|
|
55
43
|
| `status` | Run inline status check (Step 2b) |
|
|
56
44
|
| `diff` | Run inline diff check (Step 2c) |
|
|
57
45
|
| No argument or unknown | Show usage message |
|
|
@@ -66,6 +54,8 @@ Usage: /graphify <mode>
|
|
|
66
54
|
Modes:
|
|
67
55
|
build [--force] Build or rebuild the knowledge graph
|
|
68
56
|
query <term> Search the graph for a term
|
|
57
|
+
explain <symbol> Explain one exact symbol and its relationships
|
|
58
|
+
path <from> <to> Find the shortest path between two exact symbols
|
|
69
59
|
status Show graph freshness and statistics
|
|
70
60
|
diff Show changes since last build
|
|
71
61
|
```
|
|
@@ -75,28 +65,39 @@ Modes:
|
|
|
75
65
|
Run:
|
|
76
66
|
|
|
77
67
|
```bash
|
|
78
|
-
|
|
68
|
+
cairn graph query <term>
|
|
79
69
|
```
|
|
80
70
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
- If the output contains `"error"` field, display the error message and **STOP**
|
|
84
|
-
- If no nodes found, display: `No graph matches for '<term>'. Try /graphify build to create or rebuild the graph.`
|
|
85
|
-
- Otherwise, display matched nodes grouped by type, with edge relationships and confidence tiers (EXTRACTED/INFERRED/AMBIGUOUS)
|
|
71
|
+
Pass the parsed term as exactly one argument and display the result verbatim.
|
|
72
|
+
On failure, display the error without retrying or changing configuration.
|
|
86
73
|
|
|
87
74
|
**STOP** after displaying results. Do not spawn an agent.
|
|
88
75
|
|
|
76
|
+
### Step 2d -- Explain
|
|
77
|
+
|
|
78
|
+
Run `cairn graph explain <symbol>`, passing the parsed symbol as exactly one
|
|
79
|
+
argument. Display Graphify's explanation verbatim. On failure, display the
|
|
80
|
+
error and suggest `/graphify build` only when the published graph is missing.
|
|
81
|
+
|
|
82
|
+
**STOP** after displaying the result. Do not spawn an agent.
|
|
83
|
+
|
|
84
|
+
### Step 2e -- Path
|
|
85
|
+
|
|
86
|
+
Run `cairn graph path <from> <to>`, passing each parsed symbol as exactly one
|
|
87
|
+
argument. Display Graphify's path result verbatim. On failure, display the
|
|
88
|
+
error and suggest `/graphify build` only when the published graph is missing.
|
|
89
|
+
|
|
90
|
+
**STOP** after displaying the result. Do not spawn an agent.
|
|
91
|
+
|
|
89
92
|
### Step 2b -- Status
|
|
90
93
|
|
|
91
94
|
Run:
|
|
92
95
|
|
|
93
96
|
```bash
|
|
94
|
-
|
|
97
|
+
cairn graph status
|
|
95
98
|
```
|
|
96
99
|
|
|
97
|
-
|
|
98
|
-
- If `exists: false`, display the message field
|
|
99
|
-
- Otherwise show last build time, node/edge/hyperedge counts, and STALE or FRESH indicator
|
|
100
|
+
Display the local node/edge counts and freshness result verbatim.
|
|
100
101
|
|
|
101
102
|
**STOP** after displaying status. Do not spawn an agent.
|
|
102
103
|
|
|
@@ -105,14 +106,11 @@ Parse the JSON output and display:
|
|
|
105
106
|
Run:
|
|
106
107
|
|
|
107
108
|
```bash
|
|
108
|
-
|
|
109
|
+
cairn graph diff
|
|
109
110
|
```
|
|
110
111
|
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
- Otherwise show node and edge change counts (added/removed/changed)
|
|
114
|
-
|
|
115
|
-
If no snapshot exists, suggest running `build` twice (first to create, second to generate a diff baseline).
|
|
112
|
+
Display the node and edge change counts verbatim. If no snapshot exists,
|
|
113
|
+
suggest rebuilding after the next code change.
|
|
116
114
|
|
|
117
115
|
**STOP** after displaying diff. Do not spawn an agent.
|
|
118
116
|
|
|
@@ -123,20 +121,14 @@ If no snapshot exists, suggest running `build` twice (first to create, second to
|
|
|
123
121
|
Run:
|
|
124
122
|
|
|
125
123
|
```bash
|
|
126
|
-
|
|
124
|
+
cairn graph build [--force]
|
|
127
125
|
```
|
|
128
126
|
|
|
129
|
-
|
|
130
|
-
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
This command now performs the full pipeline directly:
|
|
135
|
-
- runs `graphify update .` with legacy fallback to `graphify . --update`
|
|
136
|
-
- when `--force` is present, clears `graphify-out/`, published graph artifacts, and `.planning/graphs/.last-build-snapshot.json` first
|
|
137
|
-
- validates `graphify-out/graph.json`
|
|
138
|
-
- copies `graph.json`, `graph.html`, and `GRAPH_REPORT.md` into `.planning/graphs/`
|
|
139
|
-
- writes `.planning/graphs/.last-build-snapshot.json`
|
|
127
|
+
Display the build summary verbatim. This managed path runs Graphify's local
|
|
128
|
+
code-only `update`, strips provider credentials from its subprocess
|
|
129
|
+
environment, validates the resulting graph, atomically publishes available
|
|
130
|
+
artifacts into `.planning/graphs/`, and snapshots the previous graph for diff.
|
|
131
|
+
`--force` permits a rebuilt graph with fewer nodes after code deletion.
|
|
140
132
|
|
|
141
133
|
**STOP** after displaying the build result. Do not spawn an agent.
|
|
142
134
|
|
|
@@ -144,7 +136,6 @@ This command now performs the full pipeline directly:
|
|
|
144
136
|
|
|
145
137
|
## Anti-Patterns
|
|
146
138
|
|
|
147
|
-
1. DO NOT spawn an agent for graphify operations -- build/query/status/diff are handled directly
|
|
139
|
+
1. DO NOT spawn an agent for graphify operations -- build/query/explain/path/status/diff are handled directly
|
|
148
140
|
2. DO NOT modify graph files directly outside the graphify CLI path
|
|
149
|
-
3. DO NOT
|
|
150
|
-
4. DO NOT use gsd-tools config get-value for the config gate -- it exits on missing keys
|
|
141
|
+
3. DO NOT duplicate capability parsing in the prompt -- `cairn graph` owns it
|
|
@@ -10,16 +10,24 @@ commands, hooks, plugins, or trajectory adapters.
|
|
|
10
10
|
|---|---|---|
|
|
11
11
|
| Claude Code | Memory MCP, commands, agents, hooks, launcher | Exercised by Cairnkeep tests |
|
|
12
12
|
| OpenCode | Memory MCP, commands, workflows, plugins, launcher | Exercised by Cairnkeep tests |
|
|
13
|
-
| Kimi Code | Memory MCP, `AGENTS.md`, launcher | Launcher tested; remote MCP tested with Kimi Code 0.30.0 |
|
|
13
|
+
| Kimi Code | Memory MCP, `AGENTS.md`, launcher, opt-in graph Skill | Launcher tested; remote MCP tested with Kimi Code 0.30.0; graph Skill contract-tested |
|
|
14
14
|
| Qwen Code | Memory MCP, launcher | Launcher tested; stdio and remote MCP tested with Qwen Code 0.21.1 |
|
|
15
|
-
| Pi | Native opt-in trajectory extension and
|
|
15
|
+
| Pi | Native opt-in trajectory extension, launcher, and graph prompt | Exercised by Cairnkeep tests; no bundled MCP bridge |
|
|
16
16
|
| Codex CLI | Memory MCP | Configuration supported; no Cairnkeep operating-layer assets or launcher |
|
|
17
17
|
| Other MCP clients | Memory and optional domain-knowledge tools | Protocol-compatible; not automatically runtime-tested |
|
|
18
18
|
|
|
19
19
|
Only Claude Code and OpenCode currently receive the complete operating layer.
|
|
20
|
-
Kimi
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
Kimi receives one narrow graph Skill, while Pi receives one narrow graph prompt;
|
|
21
|
+
neither is equivalent to the full commands, agents, hooks, and plugins surface.
|
|
22
|
+
Qwen skills and hooks still require harness-specific adaptation and validation.
|
|
23
|
+
|
|
24
|
+
`cairn graph` is a separate, harness-independent project-shell CLI. Kimi Code,
|
|
25
|
+
Pi, Qwen Code, Codex, and other shell-capable clients can invoke
|
|
26
|
+
`cairn graph build|query|status|diff|explain|path` when `cairn` and the isolated
|
|
27
|
+
`graphify` executable are on `PATH`. `cairn sync-kimi --apply` registers a Kimi
|
|
28
|
+
Skill as `/graphify` (or `/skill:graphify`), and `cairn sync-pi --apply`
|
|
29
|
+
registers a Pi prompt template as `/graphify`; both delegate exclusively to
|
|
30
|
+
that CLI. Neither adds an MCP bridge to Pi or expands the other support levels.
|
|
23
31
|
|
|
24
32
|
## Kimi Code
|
|
25
33
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Curriculum Coverage Map
|
|
2
2
|
|
|
3
|
-
**Baseline:** Cairnkeep 2.
|
|
3
|
+
**Baseline:** Cairnkeep 2.7.0
|
|
4
4
|
**Last reviewed:** 2026-07-29
|
|
5
5
|
|
|
6
6
|
This map prevents the course from drifting behind the product. It assigns each
|
|
@@ -70,12 +70,14 @@ against `cairn help` so a new command cannot bypass a curriculum decision.
|
|
|
70
70
|
| `cairn memory-server` | L02 |
|
|
71
71
|
| `cairn sync` | L02 |
|
|
72
72
|
| `cairn sync-pi` | L13 |
|
|
73
|
+
| `cairn sync-kimi` | L02 |
|
|
73
74
|
| `cairn doctor` | L03; advanced repair in L13-L14 |
|
|
74
75
|
| `cairn trajectory` | L13 |
|
|
75
76
|
| `cairn artifact` | L13 |
|
|
76
77
|
| `cairn capabilities` | L15 |
|
|
77
78
|
| `cairn notes` | L13 |
|
|
78
79
|
| `cairn eval` | L16 |
|
|
80
|
+
| `cairn graph` | L05-L06 |
|
|
79
81
|
| `cairn memory` | L07-L08 |
|
|
80
82
|
| `cairn audit-timer` | L05 and L13 |
|
|
81
83
|
| `cairn uninstall` | L02 and L11-L12 |
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Cairnkeep feature guide
|
|
2
2
|
|
|
3
|
-
**Baseline:** Cairnkeep 2.
|
|
3
|
+
**Baseline:** Cairnkeep 2.7.0
|
|
4
4
|
|
|
5
5
|
This is the step-back map for choosing and operating Cairnkeep features. The
|
|
6
6
|
[course labs](https://github.com/cairnkeep/cairnkeep-course-labs) provide one
|
|
@@ -76,7 +76,8 @@ prerequisites for ordinary memory.
|
|
|
76
76
|
|
|
77
77
|
- Use a generated launcher so project environment and hooks are repeatable.
|
|
78
78
|
- Run `cairn sync --check` after every core upgrade; apply only reported drift.
|
|
79
|
-
- Run `cairn sync-pi --check` when the optional Pi capture adapter is installed.
|
|
79
|
+
- Run `cairn sync-pi --check` when the optional Pi capture/graph adapter is installed.
|
|
80
|
+
- Run `cairn sync-kimi --check` when the optional Kimi graph Skill is installed.
|
|
80
81
|
- Use `cairn doctor --repair` only after preserving the affected store and only
|
|
81
82
|
for repairable derived indexes/metadata.
|
|
82
83
|
- Use `cairn uninstall --dry-run` before uninstall; durable memory is retained
|
package/docs/learning/README.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# Learn Cairnkeep
|
|
2
2
|
|
|
3
|
-
This learning path teaches Cairnkeep through small, verifiable outcomes.
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
This public learning path teaches Cairnkeep through small, verifiable outcomes.
|
|
4
|
+
It is the technical source for guides, workshops, and independently reviewed
|
|
5
|
+
publication material.
|
|
6
6
|
|
|
7
7
|
## Start here
|
|
8
8
|
|
|
@@ -22,9 +22,9 @@ The public [course labs](https://github.com/cairnkeep/cairnkeep-course-labs)
|
|
|
22
22
|
provide one synthetic project with tagged checkpoints shared by lessons,
|
|
23
23
|
articles, workshops, and videos.
|
|
24
24
|
|
|
25
|
-
Lessons marked **Ready** include a complete exercise
|
|
26
|
-
|
|
27
|
-
expanded
|
|
25
|
+
Lessons marked **Ready** include a complete, release-verified exercise. Lessons
|
|
26
|
+
marked **Brief** define public outcomes and acceptance criteria and will be
|
|
27
|
+
expanded only after their labs are executable.
|
|
28
28
|
|
|
29
29
|
## Curriculum
|
|
30
30
|
|
|
@@ -62,7 +62,7 @@ Every complete lesson contains:
|
|
|
62
62
|
3. A hands-on exercise using non-sensitive sample data.
|
|
63
63
|
4. Verification and recovery steps.
|
|
64
64
|
5. A privacy or security boundary.
|
|
65
|
-
6.
|
|
65
|
+
6. Release compatibility metadata for completed exercises.
|
|
66
66
|
|
|
67
67
|
The learner should never need optional infrastructure to complete L00-L06.
|
|
68
68
|
Remote memory, RAG, routing, containers, structured capture, typed nodes,
|
|
@@ -70,8 +70,8 @@ capability governance, and evaluation are separate opt-in modules.
|
|
|
70
70
|
|
|
71
71
|
## For contributors
|
|
72
72
|
|
|
73
|
-
Use [the lesson template](templates/lesson-template.md)
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
73
|
+
Use [the lesson template](templates/lesson-template.md). Commands in finished
|
|
74
|
+
lessons must be tested against the current release before publication.
|
|
75
|
+
Unpublished editorial plans and recording scripts are intentionally maintained
|
|
76
|
+
outside the public product repository; stable video links or transcripts can
|
|
77
|
+
be added here after publication.
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
**Status:** Ready
|
|
4
4
|
**Track:** Quickstart
|
|
5
5
|
**Time:** 10 minutes
|
|
6
|
-
**Tested with:** Cairnkeep 2.
|
|
6
|
+
**Tested with:** Cairnkeep 2.7.0
|
|
7
7
|
|
|
8
8
|
## Outcome
|
|
9
9
|
|
|
@@ -93,7 +93,3 @@ configuration and are taught later.
|
|
|
93
93
|
- Optional services are not prerequisites.
|
|
94
94
|
|
|
95
95
|
Next: [L01 - Try it safely](L01-safe-trial.md).
|
|
96
|
-
|
|
97
|
-
## Video
|
|
98
|
-
|
|
99
|
-
Use [the L00 presenter script](../video-scripts/L00-why-cairnkeep.md).
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
**Status:** Ready
|
|
4
4
|
**Track:** Quickstart
|
|
5
5
|
**Time:** 15 minutes
|
|
6
|
-
**Tested with:** Cairnkeep 2.
|
|
6
|
+
**Tested with:** Cairnkeep 2.7.0
|
|
7
7
|
|
|
8
8
|
## Outcome
|
|
9
9
|
|
|
@@ -26,7 +26,7 @@ ephemeral; the named course volume is persistent.
|
|
|
26
26
|
1. Pull the public image:
|
|
27
27
|
|
|
28
28
|
```bash
|
|
29
|
-
podman pull ghcr.io/cairnkeep/cairnkeep:2.
|
|
29
|
+
podman pull ghcr.io/cairnkeep/cairnkeep:2.7.0
|
|
30
30
|
```
|
|
31
31
|
|
|
32
32
|
2. Start the stdio server with a read-only root filesystem and no Linux
|
|
@@ -38,7 +38,7 @@ ephemeral; the named course volume is persistent.
|
|
|
38
38
|
--read-only --cap-drop=all --security-opt=no-new-privileges \
|
|
39
39
|
--tmpfs=/tmp:rw,noexec,nosuid,size=64m,mode=1777 \
|
|
40
40
|
--volume cairnkeep-course-data:/data:Z,U \
|
|
41
|
-
ghcr.io/cairnkeep/cairnkeep:2.
|
|
41
|
+
ghcr.io/cairnkeep/cairnkeep:2.7.0 stdio
|
|
42
42
|
```
|
|
43
43
|
|
|
44
44
|
3. The process waits quietly for MCP input. Press `Ctrl-C` after confirming it
|
|
@@ -90,7 +90,3 @@ podman volume rm cairnkeep-course-data
|
|
|
90
90
|
- Persistence belongs to an explicitly named volume.
|
|
91
91
|
|
|
92
92
|
Next: [L02 - Install the local workflow](L02-installation.md).
|
|
93
|
-
|
|
94
|
-
## Video
|
|
95
|
-
|
|
96
|
-
Use [the L01 presenter script](../video-scripts/L01-safe-trial.md).
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
**Status:** Ready
|
|
4
4
|
**Track:** Quickstart
|
|
5
5
|
**Time:** 25 minutes
|
|
6
|
-
**Tested with:** Cairnkeep 2.
|
|
6
|
+
**Tested with:** Cairnkeep 2.7.0 and Node.js 22 or newer
|
|
7
7
|
|
|
8
8
|
## Outcome
|
|
9
9
|
|
|
@@ -41,7 +41,7 @@ machine-level steps.
|
|
|
41
41
|
2. Install Cairnkeep:
|
|
42
42
|
|
|
43
43
|
```bash
|
|
44
|
-
npm install --global @cairnkeep/cli@2.
|
|
44
|
+
npm install --global @cairnkeep/cli@2.7.0
|
|
45
45
|
cairn --version
|
|
46
46
|
```
|
|
47
47
|
|
|
@@ -99,14 +99,16 @@ installation.
|
|
|
99
99
|
This registration starts `cairn memory-server` locally as a stdio child. It
|
|
100
100
|
does not discover a server, send memory to a remote host, configure embeddings,
|
|
101
101
|
enable session capture, or enable an optional document-RAG integration. Pi uses
|
|
102
|
-
the separate `cairn sync-pi` trajectory adapter and still needs
|
|
103
|
-
bridge if Pi should expose MCP memory tools.
|
|
102
|
+
the separate `cairn sync-pi` trajectory and graph-prompt adapter and still needs
|
|
103
|
+
a user-selected bridge if Pi should expose MCP memory tools.
|
|
104
104
|
|
|
105
105
|
Kimi Code can use the same memory server through its generated
|
|
106
106
|
`.ai/start-kimi.sh` launcher, but its HTTP MCP configuration requires a literal
|
|
107
107
|
URL rather than `${CAIRN_MEMORY_REMOTE_URL}`. Keep the resolved URL in a private
|
|
108
108
|
`.kimi-code/mcp.json` and keep the bearer token in the environment. See
|
|
109
109
|
[Harness compatibility](../../harness-compatibility.md#kimi-code).
|
|
110
|
+
Its optional `cairn sync-kimi` Skill adds only the local `/graphify` delegate;
|
|
111
|
+
it does not change memory transport or send graph data to a new destination.
|
|
110
112
|
|
|
111
113
|
Qwen Code can use the generated `.ai/start-qwen.sh` launcher. Its project
|
|
112
114
|
`.qwen/settings.json` supports environment references for both the remote URL
|
|
@@ -135,7 +137,3 @@ Do not delete memory stores as part of a course cleanup.
|
|
|
135
137
|
- Default stdio memory is local.
|
|
136
138
|
|
|
137
139
|
Next: [L03 - Bootstrap the first project](L03-first-project.md).
|
|
138
|
-
|
|
139
|
-
## Video
|
|
140
|
-
|
|
141
|
-
Use [the L02 presenter script](../video-scripts/L02-installation.md).
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
**Status:** Ready
|
|
4
4
|
**Track:** Quickstart
|
|
5
5
|
**Time:** 25 minutes
|
|
6
|
-
**Tested with:** Cairnkeep 2.
|
|
6
|
+
**Tested with:** Cairnkeep 2.7.0
|
|
7
7
|
|
|
8
8
|
## Outcome
|
|
9
9
|
|
|
@@ -115,7 +115,3 @@ inspect `.git/info/exclude` to see how contributor mode avoids shared changes.
|
|
|
115
115
|
- Persistence is proven only after a new session recalls the accepted fact.
|
|
116
116
|
|
|
117
117
|
Next: [L04 - Memory fundamentals](L04-memory-fundamentals.md).
|
|
118
|
-
|
|
119
|
-
## Video
|
|
120
|
-
|
|
121
|
-
Use [the L03 presenter script](../video-scripts/L03-first-project.md).
|
|
@@ -35,12 +35,6 @@ candidate.
|
|
|
35
35
|
- No extracted candidate becomes durable without an explicit review action.
|
|
36
36
|
- Enabling typed nodes changes discovery structure, not the authority of a fact.
|
|
37
37
|
|
|
38
|
-
## Planned video
|
|
39
|
-
|
|
40
|
-
Open with two contradictory memories, demonstrate search and superseding, then
|
|
41
|
-
finish with the review queue. Target 12-15 minutes. Write the complete script in
|
|
42
|
-
Wave 2 after the lab fixture is executable.
|
|
43
|
-
|
|
44
38
|
## Source material
|
|
45
39
|
|
|
46
40
|
- [Operating guide](../../operating.md#the-workflow)
|
|
@@ -35,11 +35,6 @@ queue before exiting.
|
|
|
35
35
|
- The learner can describe what to do at session start, before editing, and at
|
|
36
36
|
session end.
|
|
37
37
|
|
|
38
|
-
## Planned video
|
|
39
|
-
|
|
40
|
-
Follow one small feature from session start to reviewed handoff. Target 15
|
|
41
|
-
minutes and split wiki maintenance into a second video if rehearsal runs long.
|
|
42
|
-
|
|
43
38
|
## Source material
|
|
44
39
|
|
|
45
40
|
- [Operating guide](../../operating.md#the-workflow)
|
|
@@ -33,12 +33,6 @@ solution branch.
|
|
|
33
33
|
- No scan reaches outside the disposable repository or its local processes.
|
|
34
34
|
- The lab passes after remediation and fails in its tagged starter state.
|
|
35
35
|
|
|
36
|
-
## Planned video
|
|
37
|
-
|
|
38
|
-
This is the flagship value demonstration. Show one serious synthetic defect
|
|
39
|
-
from discovery through validation and fix. Target 15 minutes; publish the full
|
|
40
|
-
45-minute exercise as a workshop.
|
|
41
|
-
|
|
42
36
|
## Source material
|
|
43
37
|
|
|
44
38
|
- [Operating guide](../../operating.md#the-workflow)
|
|
@@ -34,11 +34,6 @@ names, and prove that no remote destination was discovered.
|
|
|
34
34
|
- The learner can stop when an effective destination is ambiguous.
|
|
35
35
|
- Independent feature flags are not treated as one blanket consent switch.
|
|
36
36
|
|
|
37
|
-
## Planned video
|
|
38
|
-
|
|
39
|
-
Use two simple diagrams and one terminal preflight. Target 10 minutes. Do not
|
|
40
|
-
demonstrate real endpoints or credentials.
|
|
41
|
-
|
|
42
37
|
## Source material
|
|
43
38
|
|
|
44
39
|
- [Privacy and data flow](../../privacy-and-data-flow.md)
|
|
@@ -31,11 +31,6 @@ the pre-import backup.
|
|
|
31
31
|
- The learner verifies counts and exact synthetic values on both sides.
|
|
32
32
|
- No remote service is introduced merely to complete the migration lab.
|
|
33
33
|
|
|
34
|
-
## Planned video
|
|
35
|
-
|
|
36
|
-
Record the backup, migration, verification, and rollback without cuts that hide
|
|
37
|
-
state transitions. Target 12 minutes.
|
|
38
|
-
|
|
39
34
|
## Source material
|
|
40
35
|
|
|
41
36
|
- [Storage and deployment](../../storage.md#inspecting-and-moving-memory)
|
|
@@ -32,11 +32,6 @@ verify the new answer. Then unset the integration and prove memory still works.
|
|
|
32
32
|
- Updated content replaces stale retrieval results.
|
|
33
33
|
- Disabling RAG leaves `/remember` and `/recall` healthy.
|
|
34
34
|
|
|
35
|
-
## Planned video
|
|
36
|
-
|
|
37
|
-
Lead with “optional, not required”, show query then sync, and finish by disabling
|
|
38
|
-
the integration. Target 12 minutes.
|
|
39
|
-
|
|
40
35
|
## Source material
|
|
41
36
|
|
|
42
37
|
- [Domain knowledge](../../domain-knowledge.md)
|