@cairnkeep/cli 2.6.0 → 2.8.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 +35 -1
- package/README.md +45 -8
- package/bin/cairn +21 -3
- package/claude/commands/graphify.md +46 -55
- package/docs/design/meta-agent.md +39 -35
- package/docs/harness-compatibility.md +13 -5
- package/docs/learning/CURRICULUM-MAP.md +10 -3
- package/docs/learning/FEATURE-GUIDE.md +8 -5
- package/docs/learning/README.md +16 -14
- 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 +12 -14
- package/docs/learning/lessons/L18-local-code-graph.md +97 -0
- package/docs/learning/lessons/L19-validated-skill-improvement.md +87 -0
- package/docs/learning/templates/lesson-template.md +0 -4
- package/docs/learning/tracks/evidence-and-evaluation.md +5 -3
- package/docs/learning/tracks/practitioner.md +5 -4
- package/docs/operating.md +102 -9
- package/docs/privacy-and-data-flow.md +42 -0
- package/docs/skill-improvement.md +124 -0
- package/docs/storage.md +25 -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/eval-plan.js +22 -5
- package/mcp-memory-server/dist/eval-process.js +31 -0
- package/mcp-memory-server/dist/eval-runner.js +10 -4
- package/mcp-memory-server/dist/eval-schema.js +1 -1
- package/mcp-memory-server/dist/eval-workspace.js +50 -1
- package/mcp-memory-server/dist/graph-cli.js +386 -0
- package/mcp-memory-server/dist/skill-cli.js +236 -0
- package/mcp-memory-server/dist/skill-evaluation.js +244 -0
- package/mcp-memory-server/dist/skill-schema.js +164 -0
- package/mcp-memory-server/dist/skill-store.js +583 -0
- package/mcp-memory-server/package.json +3 -1
- package/opencode/command/graphify.md +48 -58
- package/package.json +2 -1
- package/pi/prompts/graphify.md +32 -0
- package/schemas/eval-report.schema.json +1 -1
- package/schemas/skill-adapter.schema.json +39 -0
- package/schemas/skill-proposal-protocol.schema.json +97 -0
- package/scripts/bootstrap.sh +2 -1
- package/scripts/completion.sh +55 -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 +16 -0
- package/scripts/test-graph-harness-adapters.sh +46 -0
- package/scripts/test-launcher-hooks.sh +4 -2
- package/scripts/test-learning-docs.sh +13 -11
- package/scripts/test-package-install.sh +24 -0
- package/scripts/test-skill-cli.sh +30 -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 +26 -5
- 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,38 @@ All notable user-facing changes are documented here. This project follows
|
|
|
5
5
|
|
|
6
6
|
## [Unreleased]
|
|
7
7
|
|
|
8
|
+
## [2.8.0] - 2026-08-03
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- Add `cairn skill harvest|list|show|review|propose|evaluate|apply|rollback`
|
|
13
|
+
for turning recurring hindsight evidence into explicitly reviewed, bounded,
|
|
14
|
+
independently evaluated, reversible skill-file improvements.
|
|
15
|
+
- Add strict proposal-adapter schemas and environment allowlisting, immutable
|
|
16
|
+
baseline/candidate worktree overlays, disjoint exploration and confirmation
|
|
17
|
+
gates, exact-digest application, private backups, and concurrent-edit-safe
|
|
18
|
+
rollback.
|
|
19
|
+
- Add installed-style CLI and shell-completion coverage, an end-to-end Git
|
|
20
|
+
worktree evaluation fixture, and documentation for consent, storage,
|
|
21
|
+
inference ownership, evaluation limits, and recovery.
|
|
22
|
+
|
|
23
|
+
The lifecycle is local and operator-controlled. It performs no proposal call
|
|
24
|
+
before evidence approval, evaluation remains disabled unless `CAIRN_EVAL=1`,
|
|
25
|
+
and no candidate is applied automatically. Existing MCP tools, memory storage,
|
|
26
|
+
remote HTTP clients, and project launchers are unchanged.
|
|
27
|
+
|
|
28
|
+
## [2.7.0] - 2026-08-02
|
|
29
|
+
|
|
30
|
+
### Added
|
|
31
|
+
|
|
32
|
+
- Add a Cairnkeep-owned `cairn graph build|query|status|diff|explain|path`
|
|
33
|
+
workflow, matching Claude Code and OpenCode `/graphify` modes, shell
|
|
34
|
+
completion, local-only code indexing, atomic publication, and snapshot diffs
|
|
35
|
+
without installing Graphify-owned harness assets or re-indexing generated
|
|
36
|
+
graph artifacts; add thin Pi prompt and Kimi Skill adapters that expose
|
|
37
|
+
`/graphify` while delegating exclusively to `cairn graph`, with explicit sync,
|
|
38
|
+
uninstall, package, and shell-completion coverage.
|
|
39
|
+
|
|
8
40
|
## [2.6.0] - 2026-07-29
|
|
9
41
|
|
|
10
42
|
### Added
|
|
@@ -220,7 +252,9 @@ stored memories.
|
|
|
220
252
|
- Preserve executable permissions and Bash 3.2 portability on macOS.
|
|
221
253
|
- Add backup-first uninstall and SQLite-safe memory export/import guidance.
|
|
222
254
|
|
|
223
|
-
[Unreleased]: https://github.com/cairnkeep/cairnkeep/compare/v2.
|
|
255
|
+
[Unreleased]: https://github.com/cairnkeep/cairnkeep/compare/v2.8.0...HEAD
|
|
256
|
+
[2.8.0]: https://github.com/cairnkeep/cairnkeep/compare/v2.7.0...v2.8.0
|
|
257
|
+
[2.7.0]: https://github.com/cairnkeep/cairnkeep/compare/v2.6.0...v2.7.0
|
|
224
258
|
[2.6.0]: https://github.com/cairnkeep/cairnkeep/compare/v2.5.0...v2.6.0
|
|
225
259
|
[2.5.0]: https://github.com/cairnkeep/cairnkeep/compare/v2.4.0...v2.5.0
|
|
226
260
|
[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,20 @@ 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 skill harvest|list|show|review|propose|evaluate|apply|rollback`
|
|
88
|
+
turns recurring hindsight evidence into reviewed, measured, reversible
|
|
89
|
+
skill-file improvements;
|
|
90
|
+
`cairn graph build|query|status|diff|explain|path` owns the local Graphify
|
|
91
|
+
workflow from any project shell without installing Graphify-owned harness
|
|
92
|
+
assets; Claude Code, OpenCode, Pi, and Kimi add thin `/graphify` wrappers;
|
|
82
93
|
`cairn notes distill|search-error|promote|doctor` compiles and searches
|
|
83
94
|
default-off local hindsight notes outside the online agent path;
|
|
84
95
|
`cairn memory export|import` relocates the durable store between machines
|
|
85
96
|
(`export` requires the optional `sqlite3` CLI);
|
|
86
97
|
`cairn audit-timer` installs the scheduled memory+wiki audit;
|
|
87
98
|
`cairn completion bash|zsh|fish` generates shell completion definitions; and
|
|
88
|
-
`cairn sync-pi` installs the native Pi trajectory extension;
|
|
99
|
+
`cairn sync-pi` installs the native Pi trajectory extension and graph prompt;
|
|
100
|
+
`cairn sync-kimi` installs the Kimi graph Skill;
|
|
89
101
|
`cairn uninstall` reverses the install (backup-first, revertible).
|
|
90
102
|
- **`templates/`** — project scaffolding (generic launchers, env) plus the
|
|
91
103
|
derived-knowledge layer (wiki, alignment, graph, security, planning).
|
|
@@ -160,6 +172,10 @@ configuration requires a literal URL and supports a token reference through
|
|
|
160
172
|
`bearerTokenEnvVar`; it does not expand `${VAR}` in the URL. See
|
|
161
173
|
[Harness compatibility](docs/harness-compatibility.md#kimi-code).
|
|
162
174
|
|
|
175
|
+
Install Kimi's thin graph Skill separately with `cairn sync-kimi --apply`.
|
|
176
|
+
It registers `/graphify` (also `/skill:graphify`) and delegates every supported
|
|
177
|
+
operation exclusively to `cairn graph`.
|
|
178
|
+
|
|
163
179
|
For Qwen Code, use project `.qwen/settings.json`: local stdio launches
|
|
164
180
|
`cairn memory-server`, while remote HTTP uses `httpUrl` and environment-expanded
|
|
165
181
|
headers. Review and approve project MCP configuration with
|
|
@@ -174,9 +190,10 @@ cairn bootstrap /path/to/project
|
|
|
174
190
|
cd /path/to/project && ./.ai/start-pi.sh
|
|
175
191
|
```
|
|
176
192
|
|
|
177
|
-
This installs trajectory capture
|
|
178
|
-
|
|
179
|
-
|
|
193
|
+
This installs trajectory capture plus the thin `/graphify` prompt. The prompt
|
|
194
|
+
delegates exclusively to `cairn graph`. Cairnkeep does not bundle or select a
|
|
195
|
+
Pi MCP bridge; configure a user-chosen bridge separately if you also want the
|
|
196
|
+
MCP memory tools inside Pi.
|
|
180
197
|
|
|
181
198
|
Closed trajectories can be compiled into local hindsight notes without a model
|
|
182
199
|
or embedding service. Capture and distillation are separate opt-ins:
|
|
@@ -377,6 +394,25 @@ descendant-process-tree termination is not guaranteed. See the
|
|
|
377
394
|
[storage contract](docs/storage.md#evaluation-report-and-note-snapshot-storage),
|
|
378
395
|
and [privacy flow](docs/privacy-and-data-flow.md#evaluation-adapter-and-report-flow).
|
|
379
396
|
|
|
397
|
+
### Validated skill improvement (opt-in)
|
|
398
|
+
|
|
399
|
+
`cairn skill` promotes repeated, resolved hindsight evidence through a guarded
|
|
400
|
+
lifecycle: local harvest, explicit evidence review, bounded proposal generation,
|
|
401
|
+
separate exploration and confirmation evaluations, exact-digest application,
|
|
402
|
+
and backup-first rollback. Cairnkeep never rewrites a live skill during proposal
|
|
403
|
+
or evaluation, never sends evidence to the proposal adapter before approval,
|
|
404
|
+
and never applies a candidate automatically.
|
|
405
|
+
|
|
406
|
+
Proposal generation uses an explicit strict adapter configuration with an
|
|
407
|
+
environment allowlist. Evaluation remains disabled unless `CAIRN_EVAL=1`, uses
|
|
408
|
+
the existing isolated worktree runner and independent verifier, and requires
|
|
409
|
+
disjoint committed task sets bound to one immutable source revision. A
|
|
410
|
+
candidate is eligible only when both stages meet the configured improvement
|
|
411
|
+
floor with no regression or unknown pair. See the
|
|
412
|
+
[validated skill guide](docs/skill-improvement.md),
|
|
413
|
+
[storage contract](docs/storage.md#validated-skill-storage), and
|
|
414
|
+
[privacy flow](docs/privacy-and-data-flow.md#validated-skill-improvement-flow).
|
|
415
|
+
|
|
380
416
|
### Typed memory nodes and structured import (opt-in)
|
|
381
417
|
|
|
382
418
|
`CAIRN_TYPED_MEMORY_NODES=1` adds schema-v1 `node_type`, canonical `tags`,
|
|
@@ -446,6 +482,7 @@ exposes trajectory data. See the [operating guide](docs/operating.md#compaction-
|
|
|
446
482
|
- **Memory storage and deployment** — [docs/storage.md](docs/storage.md)
|
|
447
483
|
- **Podman and OCI containers** — [docs/containers.md](docs/containers.md)
|
|
448
484
|
- **Privacy and data flow** — [docs/privacy-and-data-flow.md](docs/privacy-and-data-flow.md)
|
|
485
|
+
- **Validated skill improvement** — [docs/skill-improvement.md](docs/skill-improvement.md)
|
|
449
486
|
- **Git providers** — [docs/git-providers.md](docs/git-providers.md)
|
|
450
487
|
- **Support** — [SUPPORT.md](SUPPORT.md)
|
|
451
488
|
- **Contributing** — [CONTRIBUTING.md](CONTRIBUTING.md)
|
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,12 @@ 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 skill <harvest|list|show|review|propose|evaluate|apply|rollback>
|
|
63
|
+
Turn recurring hindsight evidence into reviewed,
|
|
64
|
+
evaluated, reversible skill-file improvements.
|
|
65
|
+
cairn graph <build|query|status|diff|explain|path>
|
|
66
|
+
Build the local code graph, inspect freshness and
|
|
67
|
+
changes, or query exact symbols and paths.
|
|
59
68
|
cairn memory <path|export|import>
|
|
60
69
|
Relocate global-scope memory. `path` prints its location;
|
|
61
70
|
`export <file.tgz>` takes a WAL-safe snapshot (requires
|
|
@@ -64,7 +73,7 @@ Usage:
|
|
|
64
73
|
Install (opt-in) a systemd user timer that runs the
|
|
65
74
|
memory+wiki audit on a schedule; prints a cron alternative.
|
|
66
75
|
cairn uninstall [--dry-run] [--yes] [--purge-memory] [--live-root DIR]
|
|
67
|
-
[--pi-live-root DIR] [PROJECT ...]
|
|
76
|
+
[--pi-live-root DIR] [--kimi-live-root DIR] [PROJECT ...]
|
|
68
77
|
Reverse what cairnkeep installed/modified (operating
|
|
69
78
|
layer, hook registrations, MCP registration, audit
|
|
70
79
|
timer, and any given projects' bootstrap scaffold).
|
|
@@ -110,12 +119,21 @@ case "$cmd" in
|
|
|
110
119
|
eval)
|
|
111
120
|
exec node "$CAIRN_ROOT/mcp-memory-server/dist/eval-cli.js" "$@"
|
|
112
121
|
;;
|
|
122
|
+
skill)
|
|
123
|
+
exec node "$CAIRN_ROOT/mcp-memory-server/dist/skill-cli.js" "$@"
|
|
124
|
+
;;
|
|
125
|
+
graph)
|
|
126
|
+
exec node "$CAIRN_ROOT/mcp-memory-server/dist/graph-cli.js" "$@"
|
|
127
|
+
;;
|
|
113
128
|
sync)
|
|
114
129
|
exec "$CAIRN_ROOT/scripts/sync-claude-assets.sh" "$@"
|
|
115
130
|
;;
|
|
116
131
|
sync-pi)
|
|
117
132
|
exec "$CAIRN_ROOT/scripts/sync-pi-assets.sh" "$@"
|
|
118
133
|
;;
|
|
134
|
+
sync-kimi)
|
|
135
|
+
exec "$CAIRN_ROOT/scripts/sync-kimi-assets.sh" "$@"
|
|
136
|
+
;;
|
|
119
137
|
audit-timer)
|
|
120
138
|
exec "$CAIRN_ROOT/scripts/install-audit-timer.sh" "$@"
|
|
121
139
|
;;
|
|
@@ -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
|
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
# Meta-agent design contract
|
|
2
2
|
|
|
3
|
-
> **
|
|
4
|
-
>
|
|
5
|
-
>
|
|
6
|
-
>
|
|
7
|
-
>
|
|
8
|
-
>
|
|
3
|
+
> **General-loop design status.** Cairnkeep 2.8.0 ships a narrower validated
|
|
4
|
+
> lifecycle for one existing `SKILL.md`; see
|
|
5
|
+
> [Validated skill improvement](../skill-improvement.md). It does not ship the
|
|
6
|
+
> general natural-language configuration compiler, autonomous search loop,
|
|
7
|
+
> arbitrary target policy, or capability optimizer specified here. Requirements
|
|
8
|
+
> in this document remain future work except where a paragraph explicitly names
|
|
9
|
+
> the 2.8.0 skill-file lifecycle as current behavior.
|
|
9
10
|
|
|
10
11
|
## Status and normative language
|
|
11
12
|
|
|
12
|
-
This document specifies a future, bounded build-test-improve
|
|
13
|
-
loop. It
|
|
14
|
-
|
|
13
|
+
This document specifies a future, general bounded build-test-improve
|
|
14
|
+
configuration loop. It is not the executable interface for `cairn skill`; the
|
|
15
|
+
skill schemas and operating guide are authoritative for that narrower surface.
|
|
16
|
+
In future requirements, **MUST**, **MUST NOT**, **REQUIRED**, and **SHALL** are normative;
|
|
15
17
|
**SHOULD** and **MAY** describe constrained choices. Statements explicitly
|
|
16
18
|
labelled current describe accepted Phase 18 or Phase 19 behavior rather than
|
|
17
19
|
new behavior.
|
|
@@ -24,11 +26,12 @@ authority.
|
|
|
24
26
|
## Paper concept and Cairnkeep boundary
|
|
25
27
|
|
|
26
28
|
The paper's build-test-improve concept motivates a future bounded configuration
|
|
27
|
-
loop, but does not redefine Cairnkeep's ownership.
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
It must not own a harness
|
|
31
|
-
the authority over
|
|
29
|
+
loop, but does not redefine Cairnkeep's ownership. The shipped skill lifecycle
|
|
30
|
+
can propose one bounded `SKILL.md` candidate through an operator-configured
|
|
31
|
+
adapter. Cairnkeep may eventually compile a broader operator objective into a
|
|
32
|
+
reviewable form and coordinate general candidates. It must not own a harness
|
|
33
|
+
inference loop. Existing repository contracts remain the authority over
|
|
34
|
+
external design inspiration.
|
|
32
35
|
|
|
33
36
|
Natural-language objectives are untrusted proposal data. They never authorize
|
|
34
37
|
repository reads, writes, commands, network use, evaluation, or application.
|
|
@@ -159,9 +162,12 @@ untrusted objective
|
|
|
159
162
|
-> accept | inconclusive | no_eligible_candidate | rollback
|
|
160
163
|
```
|
|
161
164
|
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
+
For the future general loop, there is no direct inference edge from a
|
|
166
|
+
Cairnkeep-owned generator, selector, applier, or rollback operation. The shipped
|
|
167
|
+
skill lifecycle has one explicit exception: its operator-configured proposal
|
|
168
|
+
adapter may perform candidate-generation inference through a strict bounded
|
|
169
|
+
process contract. Evaluation still uses the Phase 19 coordinator and external
|
|
170
|
+
adapter; Cairnkeep owns neither inference loop.
|
|
165
171
|
|
|
166
172
|
| Actor or component | May do | Must not do | Required authority |
|
|
167
173
|
|---|---|---|---|
|
|
@@ -189,12 +195,12 @@ diagnostics or model output.
|
|
|
189
195
|
| Concern | Current accepted Phase 18/19 behavior | Missing future contract; not shipped by Phase 20 |
|
|
190
196
|
|---|---|---|
|
|
191
197
|
| Capability identity | `expected_capability_digest` and `observed_capability_digest` bind the complete Phase 18 effective state. | Candidate-overlay identity and expected/observed candidate digests for arbitrary prompt/config candidates. |
|
|
192
|
-
| Adapter identity | `adapter_config_digest` binds the operator adapter configuration.
|
|
193
|
-
| Request surface | Phase 19 sends experiment/task identity, arm, repetition, pass, isolated paths, fixed input, limits, seed, expected capability digest, and output path. | Phase 19 has no arbitrary
|
|
198
|
+
| Adapter identity | `adapter_config_digest` binds the operator adapter configuration. The 2.8.0 skill lifecycle additionally binds proposal and evaluation adapter executable digests. | These identities grant no general selection or apply authority. |
|
|
199
|
+
| Request surface | Phase 19 sends experiment/task identity, arm, repetition, pass, isolated paths, fixed input, limits, seed, expected capability digest, and output path. The skill lifecycle overlays exact baseline/candidate `SKILL.md` bytes before invocation. | Phase 19 has no public arbitrary configuration-overlay protocol or adapter-selected target. |
|
|
194
200
|
| Result surface | Strict results may report bounded metrics, identities, references, and `observed_capability_digest`. | There is no observed candidate-overlay digest, and no candidate pass/approval field. |
|
|
195
201
|
| Ablation | `runCapabilityAblation()` compares an all-enabled baseline with exactly one disabled capability and requires four invocations per task/repetition: two passes in each of two arms. | It is not generic prompt search, arbitrary configuration injection, or a multi-capability candidate arm. |
|
|
196
|
-
| Scheduling | Deterministic, serial, immutable, paired schedules and fresh isolated workspaces are current.
|
|
197
|
-
| Report | Canonical reports preserve observations, aggregates, condition levels, eligible pairs, missingness, warnings, intervals, evidence scope, and provenance. |
|
|
202
|
+
| Scheduling | Deterministic, serial, immutable, paired schedules and fresh isolated workspaces are current. The skill lifecycle coordinates separate disjoint exploration and confirmation sets. | Adaptive general candidate generation and search remain absent. |
|
|
203
|
+
| Report | Canonical reports preserve observations, aggregates, condition levels, eligible pairs, missingness, warnings, intervals, evidence scope, and provenance. A separate skill evaluation artifact applies the narrow no-regression gate. | Evaluation reports themselves do not authorize application or general configuration selection. |
|
|
198
204
|
|
|
199
205
|
Exploration and held-out confirmation task sets MUST be separate, committed,
|
|
200
206
|
immutable, non-overlapping, and digest-bound. Exploration results may inform the
|
|
@@ -357,14 +363,14 @@ not backlog rows.
|
|
|
357
363
|
Each row is future work requiring separate approval. The list is exactly nine
|
|
358
364
|
items; Phase 20 delivers none of them.
|
|
359
365
|
|
|
360
|
-
| # |
|
|
366
|
+
| # | General-loop capability | Accepted substrate it may reuse | Delivery status |
|
|
361
367
|
|---|---|---|---|
|
|
362
368
|
| 1 | Natural-language-to-form compiler and validator | Strict versioning, canonical digests, and path validation patterns | Future work requiring separate approval; not delivered by Phase 20 |
|
|
363
|
-
| 2 | Bounded candidate generator | Phase 18 typed capability identities and retained evidence |
|
|
364
|
-
| 3 | Candidate-config injection contract for external adapters | Phase 19 adapter seam and Phase 18 capability digests
|
|
365
|
-
| 4 | Scoped proposal/artifact schema | Existing strict versioned local artifacts and canonical reports |
|
|
366
|
-
| 5 | Backup-first patch applier and rollback ledger | Existing backup-first uninstall/revert and atomic single-file write precedents |
|
|
367
|
-
| 6 | Exploration and held-out committed task sets | Current committed task-set schema, exact revisions, and verifier |
|
|
369
|
+
| 2 | Bounded candidate generator | Phase 18 typed capability identities and retained evidence | Narrow skill proposer shipped; general objective compiler and candidate search remain future work |
|
|
370
|
+
| 3 | Candidate-config injection contract for external adapters | Phase 19 adapter seam and Phase 18 capability digests | Exact coordinator-owned `SKILL.md` overlays shipped; arbitrary configuration overlays remain future work |
|
|
371
|
+
| 4 | Scoped proposal/artifact schema | Existing strict versioned local artifacts and canonical reports | Narrow candidate/proposal/evaluation/application artifacts shipped; general proposal bundles remain future work |
|
|
372
|
+
| 5 | Backup-first patch applier and rollback ledger | Existing backup-first uninstall/revert and atomic single-file write precedents | One-file exact-digest skill apply/rollback shipped; arbitrary patches remain future work |
|
|
373
|
+
| 6 | Exploration and held-out committed task sets | Current committed task-set schema, exact revisions, and verifier | Shipped for the skill lifecycle; general campaigns remain future work |
|
|
368
374
|
| 7 | Selection policy accounting for uncertainty and repeated comparisons | Phase 19 condition levels, paired estimates, missingness, warnings, and intervals | Future work requiring separate approval; not delivered by Phase 20 |
|
|
369
375
|
| 8 | Sufficient live baseline evidence | Validator-checked evidence scope and exact-source runtime provenance; existing offline evidence is framework-only | Future work requiring separate approval; not delivered by Phase 20 |
|
|
370
376
|
| 9 | Dedicated privacy/security threat review | Current local privacy, bounded storage, secret exclusion, and public hygiene guards | Future work requiring separate approval; not delivered by Phase 20 |
|
|
@@ -377,12 +383,10 @@ items; Phase 20 delivers none of them.
|
|
|
377
383
|
- Architect-style in-loop compression is outside this design and Phase 20.
|
|
378
384
|
- Trace UI is outside this design and Phase 20.
|
|
379
385
|
- Eval UI is outside this design and Phase 20.
|
|
380
|
-
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
- Phase 20 adds no symbol, command, flag, package, dependency, test source,
|
|
385
|
-
executable interface, release, publication, or automatic product claim.
|
|
386
|
+
- Cairnkeep 2.8.0 implements only the reviewed `SKILL.md` lifecycle documented
|
|
387
|
+
separately. It adds no general objective compiler, autonomous scheduler,
|
|
388
|
+
capability optimizer, arbitrary patch surface, UI, or automatic product
|
|
389
|
+
claim.
|
|
386
390
|
|
|
387
391
|
All excluded implementation work requires a new plan, threat review, approval,
|
|
388
392
|
tests, and evidence. Naming a future contract here does not reserve a public
|
|
@@ -394,12 +398,12 @@ interface or represent it as delivered.
|
|
|
394
398
|
|---|---|---|
|
|
395
399
|
| META-01 | Natural-language specification → strict form | Untrusted prose can become only a complete, versioned, fail-closed future form. |
|
|
396
400
|
| META-02 | Ownership; evaluation; proposal; state machine | Candidates are bounded, measured only through Phase 19/adapters, and separately approved for application. |
|
|
397
|
-
| META-03 | Prerequisites; explicit exclusions |
|
|
401
|
+
| META-03 | Prerequisites; explicit exclusions | Narrow skill delivery is separated from remaining general-loop prerequisites and prohibited ownership/UI behavior. |
|
|
398
402
|
| D-01 | Natural-language specification → strict form | Natural language is untrusted proposal data, never executable control. |
|
|
399
403
|
| D-02 | Required configuration fields | Scope, revisions, paths, resources, safety, capabilities, tasks, evaluation, selection, mutation, and authority are required. |
|
|
400
404
|
| D-03 | Admission is fail closed | Omissions, unknowns, unsafe paths, unresolved revisions, non-finite resources, and inferred defaults invalidate. |
|
|
401
405
|
| D-04 | Admission; privacy invariants | Only value-free operator-owned references are allowed; secret/endpoint/environment values are forbidden. |
|
|
402
|
-
| D-05 | Status and normative language | The artifact is design-only; examples are non-normative;
|
|
406
|
+
| D-05 | Status and normative language | The general-loop artifact is design-only; examples are non-normative; the separate narrow skill schema and CLI do not imply broader delivery. |
|
|
403
407
|
| D-06 | Ownership and authority | Phase 19 is the sole execution/measurement seam and the external adapter owns inference. |
|
|
404
408
|
| D-07 | Candidate evaluation | Source, tasks, verifier, adapter identity, schedule, limits, seeds, and digests are frozen and comparable. |
|
|
405
409
|
| D-08 | Candidate evaluation | Canonical terminal/pass states, condition levels, missingness, uncertainty, and evidence scope remain authoritative. |
|
|
@@ -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,7 +1,7 @@
|
|
|
1
1
|
# Curriculum Coverage Map
|
|
2
2
|
|
|
3
|
-
**Baseline:** Cairnkeep 2.
|
|
4
|
-
**Last reviewed:** 2026-
|
|
3
|
+
**Baseline:** Cairnkeep 2.8.0
|
|
4
|
+
**Last reviewed:** 2026-08-03
|
|
5
5
|
|
|
6
6
|
This map prevents the course from drifting behind the product. It assigns each
|
|
7
7
|
user-facing surface to a lesson and records whether the lesson is complete or
|
|
@@ -16,7 +16,8 @@ been rehearsed.
|
|
|
16
16
|
| Local stdio memory and MCP registration | L00-L02 | L03-L04 | L00-L03 Ready; L04 Brief |
|
|
17
17
|
| Project bootstrap, launchers, and contributor mode | L02-L03 | L05 | L02-L03 Ready; L05 Brief |
|
|
18
18
|
| Memory scopes, keys, search, supersession, and history | L04 | L04-L05 | Brief |
|
|
19
|
-
| Wiki, alignment,
|
|
19
|
+
| Wiki, alignment, and repository quality workflows | L05-L06 | L05-L06 | Brief |
|
|
20
|
+
| Optional local code graph, graph inspection, and harness delegates | L18 | L18 | Brief; default off |
|
|
20
21
|
| Storage placement, export/import, and authenticated remote memory | L07 | L07-L08 | Brief |
|
|
21
22
|
| Document RAG | L00 | L09 | Brief; optional |
|
|
22
23
|
| token-miser exploration and routing | L00 | L10 | Brief; optional |
|
|
@@ -30,6 +31,7 @@ been rehearsed.
|
|
|
30
31
|
| Deterministic two-pass evaluation and one-capability ablation | L16 | L16 | Brief; default off |
|
|
31
32
|
| Shell completion | L02 | L02 | Ready; optional convenience |
|
|
32
33
|
| Bounded meta-agent configuration loop | L17 | None | Design-only; not shipped |
|
|
34
|
+
| Reviewed, evaluated, reversible skill-file improvement | L19 | L19 | Brief; explicit and default off |
|
|
33
35
|
|
|
34
36
|
## Release Review
|
|
35
37
|
|
|
@@ -58,6 +60,8 @@ repository remains the canonical source for explanations and scripts.
|
|
|
58
60
|
| `course-05-evidence` | L13-L14 | Evidence lifecycle and typed memory |
|
|
59
61
|
| `course-06-governance` | L15 | Capability precedence and restart boundaries |
|
|
60
62
|
| `course-07-evaluation` | L16-L17 | Package-owned offline fixture and design boundary |
|
|
63
|
+
| `course-08-graph` | L18 | Optional local structural graph workflow |
|
|
64
|
+
| Planned: `course-09-skill` | L19 | Validated skill improvement after a disposable lab exists |
|
|
61
65
|
|
|
62
66
|
## Command Ownership
|
|
63
67
|
|
|
@@ -70,12 +74,15 @@ against `cairn help` so a new command cannot bypass a curriculum decision.
|
|
|
70
74
|
| `cairn memory-server` | L02 |
|
|
71
75
|
| `cairn sync` | L02 |
|
|
72
76
|
| `cairn sync-pi` | L13 |
|
|
77
|
+
| `cairn sync-kimi` | L02 |
|
|
73
78
|
| `cairn doctor` | L03; advanced repair in L13-L14 |
|
|
74
79
|
| `cairn trajectory` | L13 |
|
|
75
80
|
| `cairn artifact` | L13 |
|
|
76
81
|
| `cairn capabilities` | L15 |
|
|
77
82
|
| `cairn notes` | L13 |
|
|
78
83
|
| `cairn eval` | L16 |
|
|
84
|
+
| `cairn skill` | L19 |
|
|
85
|
+
| `cairn graph` | L18 |
|
|
79
86
|
| `cairn memory` | L07-L08 |
|
|
80
87
|
| `cairn audit-timer` | L05 and L13 |
|
|
81
88
|
| `cairn uninstall` | L02 and L11-L12 |
|