@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
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Cairnkeep feature guide
|
|
2
2
|
|
|
3
|
-
**Baseline:** Cairnkeep 2.
|
|
3
|
+
**Baseline:** Cairnkeep 2.8.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
|
|
@@ -32,8 +32,9 @@ Run setup in that order, then confirm `cairn doctor`, `cairn sync --check`, and
|
|
|
32
32
|
| 5 | Trajectories, notes, compaction, artifacts | Local session evidence has an explicit retention purpose |
|
|
33
33
|
| 6 | Typed nodes and capability governance | Filtering and centrally inspectable feature state are needed |
|
|
34
34
|
| 7 | Evaluation and ablation | A concrete change needs bounded measurement |
|
|
35
|
+
| 8 | Validated skill improvement | Repeated resolved hindsight warrants a measured skill change |
|
|
35
36
|
|
|
36
|
-
Every stage is independently useful. Stages 4-
|
|
37
|
+
Every stage is independently useful. Stages 4-8 are opt-in and are not
|
|
37
38
|
prerequisites for ordinary memory.
|
|
38
39
|
|
|
39
40
|
## Core and derived knowledge
|
|
@@ -43,7 +44,7 @@ prerequisites for ordinary memory.
|
|
|
43
44
|
| Scoped memory | `/remember`, `/recall`, MCP memory tools | Available after MCP registration; named/global DBs under `CAIRN_AGENTFS_BASE_DIR`, project DB under `<server-cwd>/.agentfs/` | Recall in a new session; use reviewed delete/supersession rather than filesystem removal | `course-02-memory` |
|
|
44
45
|
| Memory lifecycle | `/memory-review`, `memory_supersede`, `memory_history`, reviewed apply/invalidate tools | Durable history; no automatic promotion | Inspect key history and provenance | `course-02-memory` |
|
|
45
46
|
| Wiki and alignment | `/wiki-ingest`, `/wiki-query`, `/wiki-lint`, alignment files | Written only when invoked; reviewable `.planning/` artifacts | Re-run lint, inspect source citations, revert tracked changes normally | `course-02-memory` |
|
|
46
|
-
|
|
|
47
|
+
| Local code graph | `cairn graph build|query|status|diff|explain|path`; `/graphify` delegates | Default off; optional isolated `graphify` executable; incremental work under `graphify-out/`, published view under `.planning/graphs/` | Ignore both derived locations; check status and source before trusting a result; use `--force` only after intentional deletion; uninstall adapters separately | `course-08-graph` |
|
|
47
48
|
| Repository quality | `/repo-review`, `/security-audit` | On-demand workflow; findings are hypotheses until reproduced | Require file/line evidence and regression tests | `course-03-quality` |
|
|
48
49
|
|
|
49
50
|
## Storage and optional topology
|
|
@@ -70,13 +71,15 @@ prerequisites for ordinary memory.
|
|
|
70
71
|
| Typed nodes/import | `CAIRN_TYPED_MEMORY_NODES=1` | Restart MCP server; tool schema changes | Hard-filter search; dry-run, replay-safe import; `cairn doctor --repair` only for derived state | `course-05-evidence` |
|
|
71
72
|
| Capability contract | `CAIRN_CAPABILITY_CONTRACT=1` | MCP changes require restart; operating changes apply next invocation | `cairn capabilities list|status|enable|disable|reset|logging`; digest identifies state only | `course-06-governance` |
|
|
72
73
|
| Evaluation | `CAIRN_EVAL=1` for the coordinator process | No harness chosen by Cairnkeep | `validate` before `run`; inspect report, missingness and evidence scope; dry-run prune/delete | `course-07-evaluation` |
|
|
73
|
-
|
|
|
74
|
+
| Validated skill improvement | Reviewed recurring hindsight; proposal adapter; `CAIRN_EVAL=1` for evaluation | No server restart; explicit subprocesses only | `cairn skill list|show`; exact-digest apply; concurrent-edit-safe rollback | Planned: `course-09-skill` |
|
|
75
|
+
| General meta-agent loop | Not shipped | Not applicable | Skill-file lifecycle only; no generic configuration loop or scheduler | `course-07-evaluation` |
|
|
74
76
|
|
|
75
77
|
## Harness and maintenance checks
|
|
76
78
|
|
|
77
79
|
- Use a generated launcher so project environment and hooks are repeatable.
|
|
78
80
|
- 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.
|
|
81
|
+
- Run `cairn sync-pi --check` when the optional Pi capture/graph adapter is installed.
|
|
82
|
+
- Run `cairn sync-kimi --check` when the optional Kimi graph Skill is installed.
|
|
80
83
|
- Use `cairn doctor --repair` only after preserving the affected store and only
|
|
81
84
|
for repairable derived indexes/metadata.
|
|
82
85
|
- 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
|
|
|
@@ -48,6 +48,8 @@ expanded according to the [production plan](PRODUCTION-PLAN.md).
|
|
|
48
48
|
| L15 | [Capability governance](lessons/L15-capability-governance.md) | Brief | 35 min |
|
|
49
49
|
| L16 | [Evaluation and ablation](lessons/L16-evaluation.md) | Brief | 50 min |
|
|
50
50
|
| L17 | [The agent boundary](lessons/L17-agent-boundary.md) | Brief | 25 min |
|
|
51
|
+
| L18 | [Local code graph](lessons/L18-local-code-graph.md) | Brief | 35 min |
|
|
52
|
+
| L19 | [Validated skill improvement](lessons/L19-validated-skill-improvement.md) | Brief | 50 min |
|
|
51
53
|
|
|
52
54
|
The [curriculum coverage map](CURRICULUM-MAP.md) records where every public
|
|
53
55
|
feature is introduced, practised, and operated. It also marks design-only work
|
|
@@ -62,16 +64,16 @@ Every complete lesson contains:
|
|
|
62
64
|
3. A hands-on exercise using non-sensitive sample data.
|
|
63
65
|
4. Verification and recovery steps.
|
|
64
66
|
5. A privacy or security boundary.
|
|
65
|
-
6.
|
|
67
|
+
6. Release compatibility metadata for completed exercises.
|
|
66
68
|
|
|
67
69
|
The learner should never need optional infrastructure to complete L00-L06.
|
|
68
|
-
Remote memory, RAG, routing, containers,
|
|
69
|
-
capability governance, and evaluation are separate opt-in modules.
|
|
70
|
+
Remote memory, RAG, routing, containers, graph indexing, structured capture,
|
|
71
|
+
typed nodes, capability governance, and evaluation are separate opt-in modules.
|
|
70
72
|
|
|
71
73
|
## For contributors
|
|
72
74
|
|
|
73
|
-
Use [the lesson template](templates/lesson-template.md)
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
75
|
+
Use [the lesson template](templates/lesson-template.md). Commands in finished
|
|
76
|
+
lessons must be tested against the current release before publication.
|
|
77
|
+
Unpublished editorial plans and recording scripts are intentionally maintained
|
|
78
|
+
outside the public product repository; stable video links or transcripts can
|
|
79
|
+
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.8.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.8.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.8.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.8.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.8.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.8.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.8.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)
|
|
@@ -33,11 +33,6 @@ invalidation. Disable the binary and verify standalone Cairnkeep remains usable.
|
|
|
33
33
|
- The learner distinguishes exploration output from durable memory.
|
|
34
34
|
- An unavailable explorer fails locally without breaking memory operations.
|
|
35
35
|
|
|
36
|
-
## Planned video
|
|
37
|
-
|
|
38
|
-
Compare a broad manual search with one cited exploration result. Target 10
|
|
39
|
-
minutes and keep routing as a separate optional chapter.
|
|
40
|
-
|
|
41
36
|
## Source material
|
|
42
37
|
|
|
43
38
|
- [Operating guide](../../operating.md#exploration-cache-context_explore-on-by-default)
|
|
@@ -32,11 +32,6 @@ only the course resources.
|
|
|
32
32
|
volume is deliberately removed.
|
|
33
33
|
- The learner can enumerate every mount and network boundary.
|
|
34
34
|
|
|
35
|
-
## Planned video
|
|
36
|
-
|
|
37
|
-
Use a diagram first, then replace a running container while retaining its
|
|
38
|
-
volume. Target 15 minutes.
|
|
39
|
-
|
|
40
35
|
## Source material
|
|
41
36
|
|
|
42
37
|
- [Containers](../../containers.md)
|
|
@@ -33,12 +33,6 @@ upgrades the pin, verifies fleet status, and rolls one project back.
|
|
|
33
33
|
- Effective storage and service destinations are explainable before launch.
|
|
34
34
|
- Upgrade and rollback preserve the disposable memory store.
|
|
35
35
|
|
|
36
|
-
## Planned video
|
|
37
|
-
|
|
38
|
-
Show the same project under public core and a generic managed overlay, then
|
|
39
|
-
explain the small delta. Target 15 minutes; keep registry administration in the
|
|
40
|
-
written operator lab.
|
|
41
|
-
|
|
42
36
|
## Source material
|
|
43
37
|
|
|
44
38
|
- [Building a private overlay](../../building-an-overlay.md)
|
|
@@ -57,12 +57,6 @@ cairn artifact list --json
|
|
|
57
57
|
memory by purpose, store, lifecycle, and trust level.
|
|
58
58
|
- Cleanup targets only the disposable course evidence.
|
|
59
59
|
|
|
60
|
-
## Planned video
|
|
61
|
-
|
|
62
|
-
Draw the evidence lifecycle, capture one synthetic session, inspect the redacted
|
|
63
|
-
record, and find the resulting failure note. Target 14 minutes. Treat compaction
|
|
64
|
-
and Pi as short boundary chapters rather than requiring three harness demos.
|
|
65
|
-
|
|
66
60
|
## Source material
|
|
67
61
|
|
|
68
62
|
- [Operating guide: structured trajectories](../../operating.md#structured-session-trajectories-opt-in)
|
|
@@ -38,12 +38,6 @@ import.
|
|
|
38
38
|
- Imported values never appear in command diagnostics or course screenshots.
|
|
39
39
|
- The learner does not present a logical note address as a host path.
|
|
40
40
|
|
|
41
|
-
## Planned video
|
|
42
|
-
|
|
43
|
-
Use a small type-and-tag diagram, then demonstrate filtered discovery and the
|
|
44
|
-
dry-run/replay sequence. Target 12 minutes. Keep the full import limits in the
|
|
45
|
-
written lesson rather than narrating a table of numbers.
|
|
46
|
-
|
|
47
41
|
## Source material
|
|
48
42
|
|
|
49
43
|
- [Operating guide: typed memory nodes](../../operating.md#typed-memory-nodes-and-note-address-spaces-opt-in)
|
|
@@ -43,12 +43,6 @@ CAIRN_CAPABILITY_CONTRACT=1 cairn capabilities logging enable
|
|
|
43
43
|
- No callback record contains prompts, tool arguments, results, or memory values.
|
|
44
44
|
- Disabling an optional capability does not break standalone memory.
|
|
45
45
|
|
|
46
|
-
## Planned video
|
|
47
|
-
|
|
48
|
-
Show precedence as three stacked layers, then perform one disable/reset cycle.
|
|
49
|
-
Target 11 minutes. Use JSON status for evidence and avoid presenting a digest as
|
|
50
|
-
a security signature or performance result.
|
|
51
|
-
|
|
52
46
|
## Source material
|
|
53
47
|
|
|
54
48
|
- [Operating guide: managed capability contract](../../operating.md#managed-capability-contract-opt-in)
|
|
@@ -52,13 +52,6 @@ after the lab is rehearsed from the packaged CLI rather than a source clone.
|
|
|
52
52
|
without claiming causality, significance, or product improvement.
|
|
53
53
|
- Course cleanup is limited to its temporary contained experiment root.
|
|
54
54
|
|
|
55
|
-
## Planned video
|
|
56
|
-
|
|
57
|
-
Start with the claim boundary, validate before running, inspect one two-pass
|
|
58
|
-
report, and close by marking the fixture `offline-framework`. Target 16 minutes.
|
|
59
|
-
Publish ablation as a second short video if the complete schedule obscures the
|
|
60
|
-
measurement concepts.
|
|
61
|
-
|
|
62
55
|
## Source material
|
|
63
56
|
|
|
64
57
|
- [Operating guide: evaluation harness](../../operating.md#evaluation-harness-opt-in)
|
|
@@ -6,23 +6,25 @@
|
|
|
6
6
|
|
|
7
7
|
## Outcome
|
|
8
8
|
|
|
9
|
-
Separate Cairnkeep's shipped evidence
|
|
10
|
-
design-only
|
|
11
|
-
remains with the operator and external harness.
|
|
9
|
+
Separate Cairnkeep's shipped evidence, evaluation, and narrow skill-file
|
|
10
|
+
lifecycle from the design-only general meta-agent proposal, and identify which
|
|
11
|
+
authority always remains with the operator and external harness.
|
|
12
12
|
|
|
13
13
|
## Planned lesson
|
|
14
14
|
|
|
15
15
|
- Current facts: typed capability state, local evidence, immutable evaluation
|
|
16
16
|
inputs, isolated schedules, independent verification, and canonical reports.
|
|
17
|
-
-
|
|
18
|
-
candidate
|
|
19
|
-
rollback ledgers.
|
|
17
|
+
- Shipped in 2.8.0: reviewed hindsight candidates, bounded edits to one existing
|
|
18
|
+
`SKILL.md`, isolated baseline/candidate comparison, held-out confirmation,
|
|
19
|
+
exact-digest application, and rollback ledgers.
|
|
20
|
+
- Design only: general natural-language configuration compilation, arbitrary
|
|
21
|
+
target types, autonomous scheduling, and an owner inference loop.
|
|
20
22
|
- Cairnkeep coordinates evidence; it does not own a harness inference loop.
|
|
21
23
|
- Natural language is untrusted proposal data, not executable authorization.
|
|
22
24
|
- Separate human gates for form, evaluation, application, confirmation, and
|
|
23
25
|
rollback.
|
|
24
|
-
- Why
|
|
25
|
-
proposed meta-agent loop.
|
|
26
|
+
- Why the shipped `cairn skill` command does not authorize or imply the broader
|
|
27
|
+
proposed meta-agent loop or a product quality claim.
|
|
26
28
|
|
|
27
29
|
## Hands-on lab
|
|
28
30
|
|
|
@@ -36,6 +38,8 @@ be required before any future implementation could act.
|
|
|
36
38
|
|
|
37
39
|
- No learner attempts to invoke a meta-agent command or treats an illustrative
|
|
38
40
|
block as a supported schema.
|
|
41
|
+
- The learner can distinguish supported `cairn skill` operations from the
|
|
42
|
+
broader design-only proposal.
|
|
39
43
|
- Every inference execution remains owned by an operator-configured adapter.
|
|
40
44
|
- A capability digest is not treated as approval, identity proof, or evidence
|
|
41
45
|
of improvement.
|
|
@@ -43,12 +47,6 @@ be required before any future implementation could act.
|
|
|
43
47
|
- The learner can name at least one explicit future prerequisite and one
|
|
44
48
|
unconditional human stop point.
|
|
45
49
|
|
|
46
|
-
## Planned video
|
|
47
|
-
|
|
48
|
-
Use one ownership diagram and one fictional proposal. Target 9 minutes. Put a
|
|
49
|
-
persistent `DESIGN ONLY` label on every future component and end on the exact
|
|
50
|
-
current-versus-future boundary.
|
|
51
|
-
|
|
52
50
|
## Source material
|
|
53
51
|
|
|
54
52
|
- [Meta-agent design contract](../../design/meta-agent.md)
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# L18 - Local code graph
|
|
2
|
+
|
|
3
|
+
**Status:** Brief
|
|
4
|
+
**Track:** Practitioner
|
|
5
|
+
**Planned time:** 35 minutes
|
|
6
|
+
**Introduced in:** Cairnkeep 2.7.0
|
|
7
|
+
|
|
8
|
+
## Outcome
|
|
9
|
+
|
|
10
|
+
Build and inspect an optional local structural graph without confusing derived
|
|
11
|
+
graph data with canonical source code or granting an external tool ownership of
|
|
12
|
+
the Cairnkeep operating layer.
|
|
13
|
+
|
|
14
|
+
## Planned lesson
|
|
15
|
+
|
|
16
|
+
- When a structural graph answers a code-navigation question better than
|
|
17
|
+
durable memory, the wiki, or broad text search.
|
|
18
|
+
- Why the graph capability is disabled unless the managed capability contract
|
|
19
|
+
enables `graph` or the compatibility setting `graphify.enabled` is true.
|
|
20
|
+
- How to install only the isolated `graphify` executable with `uv tool install
|
|
21
|
+
graphifyy` or `pipx install graphifyy`. Do not run `graphify install` because
|
|
22
|
+
Cairnkeep owns the harness commands, policies, and lifecycle.
|
|
23
|
+
- How `cairn graph build`, `cairn graph status`, `cairn graph query`,
|
|
24
|
+
`cairn graph explain`, `cairn graph path`, and `cairn graph diff` share one
|
|
25
|
+
portable owner across harnesses and the shell.
|
|
26
|
+
- Why builds index local code only, use a reduced subprocess environment, avoid
|
|
27
|
+
provider credentials and semantic document extraction, and publish validated
|
|
28
|
+
artifacts atomically under `.planning/graphs/` while Graphify maintains its
|
|
29
|
+
separate incremental work directory under `graphify-out/`.
|
|
30
|
+
- How the previous successful graph snapshot supports `diff`, and why `--force`
|
|
31
|
+
is appropriate only when an intentional code deletion reduces the graph.
|
|
32
|
+
- Why exact symbols and narrow terms are more reliable than broad prose, and
|
|
33
|
+
why every graph result must be checked against canonical source files.
|
|
34
|
+
- How Claude Code and OpenCode receive managed `/graphify` wrappers while
|
|
35
|
+
`cairn sync-kimi --apply` and `cairn sync-pi --apply` install thin delegates
|
|
36
|
+
that call only `cairn graph`.
|
|
37
|
+
|
|
38
|
+
## Hands-on lab
|
|
39
|
+
|
|
40
|
+
Use the synthetic course repository at checkpoint `course-08-graph` in a
|
|
41
|
+
disposable clone. Confirm that a disabled graph fails before Graphify or graph
|
|
42
|
+
artifacts are accessed. Install only the isolated executable, enable the graph
|
|
43
|
+
through one documented capability path, and then run:
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
cairn graph build
|
|
47
|
+
cairn graph status
|
|
48
|
+
cairn graph query addItem
|
|
49
|
+
cairn graph explain addItem
|
|
50
|
+
cairn graph path addItem writeLedger
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Make one reversible change to the synthetic ledger, rebuild, and inspect
|
|
54
|
+
`cairn graph diff`. Revert the source change, rebuild again, and verify the
|
|
55
|
+
status. Inspect `.planning/graphs/` and `graphify-out/` without adding either
|
|
56
|
+
derived location to Git.
|
|
57
|
+
|
|
58
|
+
## Acceptance criteria
|
|
59
|
+
|
|
60
|
+
- The disabled-path check creates or changes no graph artifact.
|
|
61
|
+
- `status` identifies whether the published graph is present and current.
|
|
62
|
+
- `query`, `explain`, and `path` return structural discovery evidence that the
|
|
63
|
+
learner verifies against `src/trail-ledger.mjs`.
|
|
64
|
+
- A second successful build produces a snapshot-backed diff.
|
|
65
|
+
- The learner can explain why `--force` is not a generic retry flag.
|
|
66
|
+
- The repository contains no Graphify-owned harness assets and neither
|
|
67
|
+
`graphify-out/` nor a published graph artifact is staged for commit.
|
|
68
|
+
- The learner can distinguish graph storage and subprocess data flow from
|
|
69
|
+
Cairnkeep memory storage and optional embedding traffic.
|
|
70
|
+
|
|
71
|
+
## Common failures
|
|
72
|
+
|
|
73
|
+
- If `graphify` is missing, install the isolated CLI and verify it is on
|
|
74
|
+
`PATH`; do not run its harness installer.
|
|
75
|
+
- If the capability is disabled, enable it through the managed contract or the
|
|
76
|
+
compatibility setting rather than bypassing the owner.
|
|
77
|
+
- If no previous snapshot exists, make a successful build after a real code
|
|
78
|
+
change before requesting `diff`.
|
|
79
|
+
- If a path or explanation is empty, retry with exact symbol names and verify
|
|
80
|
+
the source directly instead of treating a broad query as proof.
|
|
81
|
+
|
|
82
|
+
## Privacy and trust boundary
|
|
83
|
+
|
|
84
|
+
The managed build passes the repository path to a local Graphify subprocess and
|
|
85
|
+
publishes a validated view locally. Its reduced environment excludes provider
|
|
86
|
+
credentials, and the managed workflow does not perform semantic document
|
|
87
|
+
extraction. Graphify's incremental `graphify-out/` workspace and Cairnkeep's
|
|
88
|
+
published `.planning/graphs/` view can both contain sensitive structural data.
|
|
89
|
+
Keep both local by default, review ignore rules, and never present the graph as
|
|
90
|
+
canonical evidence.
|
|
91
|
+
|
|
92
|
+
## Source material
|
|
93
|
+
|
|
94
|
+
- [Operating guide](../../operating.md#optional-graphify-workflow)
|
|
95
|
+
- [Harness compatibility](../../harness-compatibility.md)
|
|
96
|
+
- [Privacy and data flow](../../privacy-and-data-flow.md)
|
|
97
|
+
- [L15 - Capability governance](L15-capability-governance.md)
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# L19 - Validated skill improvement
|
|
2
|
+
|
|
3
|
+
**Status:** Brief
|
|
4
|
+
**Track:** Evidence and Evaluation
|
|
5
|
+
**Planned time:** 50 minutes
|
|
6
|
+
**Introduced in:** Cairnkeep 2.8.0
|
|
7
|
+
|
|
8
|
+
## Outcome
|
|
9
|
+
|
|
10
|
+
Turn repeated failure and demonstrated resolution evidence into one reviewed
|
|
11
|
+
skill proposal, measure it on separate exploration and confirmation tasks,
|
|
12
|
+
apply only the exact eligible digest, and prove rollback without risking a real
|
|
13
|
+
project.
|
|
14
|
+
|
|
15
|
+
## Planned lesson
|
|
16
|
+
|
|
17
|
+
- Why harvest requires failures from at least two sessions and at least one
|
|
18
|
+
recorded resolution.
|
|
19
|
+
- How `harvest`, `show`, and `review --approve` keep evidence local until the
|
|
20
|
+
learner consents to proposal-adapter egress.
|
|
21
|
+
- How the strict proposal adapter receives a bounded request, a private process
|
|
22
|
+
environment, and an edit budget for one existing `SKILL.md`.
|
|
23
|
+
- Why proposal generation and evaluation never modify the live target.
|
|
24
|
+
- How separate committed sets with at least two disjoint task IDs and
|
|
25
|
+
definitions each, one immutable source revision, fresh Git worktrees, exact
|
|
26
|
+
adapter digests, and an independent verifier protect the gate.
|
|
27
|
+
- Why improvements count distinct tasks, any regressed task rejects the
|
|
28
|
+
candidate, and small passing fixtures are not universal quality proof.
|
|
29
|
+
- How full proposal-digest confirmation, backup-first atomic replacement, and
|
|
30
|
+
concurrent-edit-safe rollback limit application authority.
|
|
31
|
+
|
|
32
|
+
## Hands-on lab
|
|
33
|
+
|
|
34
|
+
Use a future disposable `course-09-skill` checkpoint containing synthetic
|
|
35
|
+
hindsight evidence, a small `SKILL.md`, deterministic proposal and evaluation
|
|
36
|
+
adapters, and separate committed task sets. The lab will run:
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
cairn skill harvest --project . --json
|
|
40
|
+
cairn skill show --kind candidate --id CANDIDATE_ID
|
|
41
|
+
cairn skill review --candidate CANDIDATE_ID --approve --json
|
|
42
|
+
cairn skill propose --candidate CANDIDATE_ID --target skills/demo/SKILL.md \
|
|
43
|
+
--adapter fixtures/proposal-adapter.json --json
|
|
44
|
+
|
|
45
|
+
export CAIRN_EVAL=1
|
|
46
|
+
cairn skill evaluate --proposal PROPOSAL_ID \
|
|
47
|
+
--exploration-task-set eval/exploration.json \
|
|
48
|
+
--confirmation-task-set eval/confirmation.json \
|
|
49
|
+
--adapter eval/adapter.json --repetitions 2 --yes --json
|
|
50
|
+
|
|
51
|
+
cairn skill apply --proposal PROPOSAL_ID --evaluation EVALUATION_ID \
|
|
52
|
+
--confirm FULL_PROPOSAL_DIGEST --json
|
|
53
|
+
cairn skill rollback --application APPLICATION_ID --confirm --json
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
The lesson remains a Brief until that checkpoint is public and every command is
|
|
57
|
+
rehearsed against the release package.
|
|
58
|
+
|
|
59
|
+
## Acceptance criteria
|
|
60
|
+
|
|
61
|
+
- No candidate exists for repeated failure without resolution evidence.
|
|
62
|
+
- Proposal execution cannot inherit unapproved credentials or isolation-owned
|
|
63
|
+
environment variables.
|
|
64
|
+
- The live `SKILL.md` is byte-identical before and after propose/evaluate.
|
|
65
|
+
- Overlapping task IDs, changed adapters, unknown verifier results, and any
|
|
66
|
+
regression fail closed.
|
|
67
|
+
- Apply rejects a wrong digest or changed target.
|
|
68
|
+
- Rollback restores the original bytes and refuses to overwrite a later edit.
|
|
69
|
+
- The learner can explain why an eligible small task set supports one local
|
|
70
|
+
decision but not a universal performance claim.
|
|
71
|
+
|
|
72
|
+
## Privacy and trust boundary
|
|
73
|
+
|
|
74
|
+
Hindsight excerpts and skill content remain local until candidate approval.
|
|
75
|
+
Approval permits those exact fields to enter the explicitly configured proposal
|
|
76
|
+
adapter. Evaluation adapters receive isolated worktrees with baseline or
|
|
77
|
+
candidate skill bytes, not the hindsight evidence. Candidate, proposal,
|
|
78
|
+
evaluation, application, backup, and report artifacts remain sensitive local
|
|
79
|
+
project state under `.agentfs/`.
|
|
80
|
+
|
|
81
|
+
## Source material
|
|
82
|
+
|
|
83
|
+
- [Validated skill improvement](../../skill-improvement.md)
|
|
84
|
+
- [Evaluation and ablation](L16-evaluation.md)
|
|
85
|
+
- [The agent boundary](L17-agent-boundary.md)
|
|
86
|
+
- [Storage](../../storage.md#validated-skill-storage)
|
|
87
|
+
- [Privacy and data flow](../../privacy-and-data-flow.md#validated-skill-improvement-flow)
|