@kontextmind/kxm 0.6.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.
Files changed (227) hide show
  1. package/.claude-plugin/marketplace.json +19 -0
  2. package/.kxm/README.md +14 -0
  3. package/.kxm/assets/README.md +5 -0
  4. package/.kxm/assets/retrospectives/README.md +5 -0
  5. package/.kxm/config/README.md +5 -0
  6. package/.kxm/config/agents.json +43 -0
  7. package/.kxm/config/env.example +56 -0
  8. package/.kxm/config/update.example.yaml +9 -0
  9. package/.kxm/config/workflows/fix.json +160 -0
  10. package/.kxm/config/workflows/jira-development.json +116 -0
  11. package/.kxm/config/workflows/provenance-quorum.json +150 -0
  12. package/.kxm/config/workflows/v04-dogfood.json +72 -0
  13. package/CHANGELOG.md +465 -0
  14. package/LICENSE +21 -0
  15. package/README.md +306 -0
  16. package/SECURITY.md +72 -0
  17. package/docs/README.md +48 -0
  18. package/docs/agent-communication-envelopes-and-gates.md +553 -0
  19. package/docs/architecture.md +242 -0
  20. package/docs/assignment-runner.md +241 -0
  21. package/docs/configuration.md +361 -0
  22. package/docs/continuous-improvement.md +114 -0
  23. package/docs/getting-started.md +253 -0
  24. package/docs/kxm-handbook.md +1090 -0
  25. package/docs/operations.md +205 -0
  26. package/docs/provenance-gates.md +291 -0
  27. package/docs/skills.md +45 -0
  28. package/docs/templates/README.md +95 -0
  29. package/docs/templates/adr.md +88 -0
  30. package/docs/templates/architecture.md +120 -0
  31. package/docs/templates/bug-fix.md +109 -0
  32. package/docs/templates/feature.md +108 -0
  33. package/docs/templates/handoff.md +72 -0
  34. package/docs/templates/postmortem.md +77 -0
  35. package/docs/templates/research.md +100 -0
  36. package/docs/templates/review.md +85 -0
  37. package/docs/templates/runbook.md +73 -0
  38. package/docs/templates/test-plan.md +87 -0
  39. package/docs/templates/test-report.md +72 -0
  40. package/docs/test-matrix.md +121 -0
  41. package/docs/troubleshooting.md +249 -0
  42. package/docs/vnext/README.md +62 -0
  43. package/docs/vnext/architecture.md +185 -0
  44. package/docs/vnext/effects-and-recovery.md +172 -0
  45. package/docs/vnext/lifecycles.md +235 -0
  46. package/docs/vnext/migration.md +220 -0
  47. package/docs/vnext/routing.md +184 -0
  48. package/docs/vnext/synchronization.md +172 -0
  49. package/docs/vnext/terminology.md +240 -0
  50. package/docs/vnext/validation.md +335 -0
  51. package/docs/webhook-workflows.md +240 -0
  52. package/docs/workflow-guide.md +1150 -0
  53. package/examples/README.md +102 -0
  54. package/examples/provenance-workflow.json +40 -0
  55. package/examples/requester.ts +30 -0
  56. package/examples/reviewer-agent.ts +29 -0
  57. package/examples/roundtrip.ts +46 -0
  58. package/examples/vnext/.kxm/agents/coordinator.yaml +16 -0
  59. package/examples/vnext/.kxm/agents/critic-1.yaml +16 -0
  60. package/examples/vnext/.kxm/agents/critic-2.yaml +15 -0
  61. package/examples/vnext/.kxm/agents/critic-3.yaml +15 -0
  62. package/examples/vnext/.kxm/agents/implementer.yaml +15 -0
  63. package/examples/vnext/.kxm/agents/planner.yaml +13 -0
  64. package/examples/vnext/.kxm/agents/reproducer.yaml +15 -0
  65. package/examples/vnext/.kxm/agents/reviewer.yaml +15 -0
  66. package/examples/vnext/.kxm/gates.yaml +8 -0
  67. package/examples/vnext/.kxm/models/critic-claude.yaml +11 -0
  68. package/examples/vnext/.kxm/models/critic-gemini.yaml +11 -0
  69. package/examples/vnext/.kxm/models/critic-grok.yaml +12 -0
  70. package/examples/vnext/.kxm/models/implementation.yaml +14 -0
  71. package/examples/vnext/.kxm/models/primary.yaml +17 -0
  72. package/examples/vnext/.kxm/prices.yaml +111 -0
  73. package/examples/vnext/.kxm/project/env.yaml +7 -0
  74. package/examples/vnext/.kxm/project.yaml +32 -0
  75. package/examples/vnext/.kxm/repo/repo.yaml +8 -0
  76. package/examples/vnext/.kxm/workflows/default.yaml +92 -0
  77. package/examples/vnext/.kxm/workflows/fix.yaml +376 -0
  78. package/examples/vnext/.kxm/workflows/improve.yaml +57 -0
  79. package/examples/vnext/README.md +53 -0
  80. package/examples/vnext/records/assignment-result-recorded.json +63 -0
  81. package/examples/vnext/records/assignment-result.json +46 -0
  82. package/examples/vnext/records/context-candidate.json +42 -0
  83. package/examples/vnext/records/delivery-manifest.json +66 -0
  84. package/examples/vnext/records/effect-uncertainty-resolved-sync.json +67 -0
  85. package/examples/vnext/records/effect-uncertainty-resolved.json +62 -0
  86. package/examples/vnext/records/run-created.json +54 -0
  87. package/examples/vnext/records/sync-event.json +65 -0
  88. package/examples/vnext/repositories/api/.kxm/repo/env.yaml +7 -0
  89. package/examples/vnext/repositories/api/.kxm/repo/repo.yaml +8 -0
  90. package/examples/vnext/repositories/web/.kxm/repo/repo.yaml +8 -0
  91. package/examples/workflow-signal.ts +63 -0
  92. package/package.json +129 -0
  93. package/plugins/kxm/.claude-plugin/plugin.json +73 -0
  94. package/plugins/kxm/.mcp.json +19 -0
  95. package/plugins/kxm/README.md +93 -0
  96. package/plugins/kxm/dist/cli.js +42853 -0
  97. package/plugins/kxm/dist/client.js +416 -0
  98. package/plugins/kxm/dist/core.js +1823 -0
  99. package/plugins/kxm/dist/extension.js +3797 -0
  100. package/plugins/kxm/dist/mcp-server.js +17104 -0
  101. package/plugins/kxm/dist/runtime.js +23361 -0
  102. package/plugins/kxm/dist/server.js +13640 -0
  103. package/plugins/kxm/dist/vnext-runtime-supervisor.js +21109 -0
  104. package/plugins/kxm/package.json +12 -0
  105. package/plugins/kxm/skills/kxm/SKILL.md +97 -0
  106. package/plugins/kxm/skills/kxm/references/protocol.md +103 -0
  107. package/plugins/kxm/skills/kxm-session/SKILL.md +53 -0
  108. package/plugins/kxm/src/arbiter.ts +355 -0
  109. package/plugins/kxm/src/artifacts-exist.ts +62 -0
  110. package/plugins/kxm/src/autocomplete.ts +236 -0
  111. package/plugins/kxm/src/cli.ts +3707 -0
  112. package/plugins/kxm/src/client.ts +614 -0
  113. package/plugins/kxm/src/commands.ts +1063 -0
  114. package/plugins/kxm/src/config.ts +290 -0
  115. package/plugins/kxm/src/context/providers.ts +101 -0
  116. package/plugins/kxm/src/context-packet.ts +332 -0
  117. package/plugins/kxm/src/context.ts +499 -0
  118. package/plugins/kxm/src/core.ts +6 -0
  119. package/plugins/kxm/src/database.ts +563 -0
  120. package/plugins/kxm/src/diagnostics.ts +184 -0
  121. package/plugins/kxm/src/envelope.ts +118 -0
  122. package/plugins/kxm/src/extension.ts +895 -0
  123. package/plugins/kxm/src/external-effects.ts +299 -0
  124. package/plugins/kxm/src/github-watch.ts +255 -0
  125. package/plugins/kxm/src/hub-binding.ts +160 -0
  126. package/plugins/kxm/src/hub.ts +2502 -0
  127. package/plugins/kxm/src/improve.ts +383 -0
  128. package/plugins/kxm/src/inbox.ts +10 -0
  129. package/plugins/kxm/src/kxm-install-kind.ts +113 -0
  130. package/plugins/kxm/src/kxm-update-config.ts +39 -0
  131. package/plugins/kxm/src/kxm-update.ts +238 -0
  132. package/plugins/kxm/src/local-snapshot.ts +406 -0
  133. package/plugins/kxm/src/logger.ts +198 -0
  134. package/plugins/kxm/src/mcp-server.ts +143 -0
  135. package/plugins/kxm/src/memory.ts +385 -0
  136. package/plugins/kxm/src/nous-pi.ts +287 -0
  137. package/plugins/kxm/src/nous-provider.ts +729 -0
  138. package/plugins/kxm/src/price-calc.ts +87 -0
  139. package/plugins/kxm/src/prices.ts +121 -0
  140. package/plugins/kxm/src/protocol.ts +172 -0
  141. package/plugins/kxm/src/recovery.ts +211 -0
  142. package/plugins/kxm/src/redact.ts +26 -0
  143. package/plugins/kxm/src/retrospective.ts +400 -0
  144. package/plugins/kxm/src/routing.ts +830 -0
  145. package/plugins/kxm/src/runtime.ts +9 -0
  146. package/plugins/kxm/src/server.ts +117 -0
  147. package/plugins/kxm/src/session-work.ts +571 -0
  148. package/plugins/kxm/src/session.ts +184 -0
  149. package/plugins/kxm/src/skills.ts +535 -0
  150. package/plugins/kxm/src/state.ts +326 -0
  151. package/plugins/kxm/src/store.ts +637 -0
  152. package/plugins/kxm/src/studio-layout.ts +268 -0
  153. package/plugins/kxm/src/suggest.ts +162 -0
  154. package/plugins/kxm/src/task-manager.ts +244 -0
  155. package/plugins/kxm/src/telemetry.ts +116 -0
  156. package/plugins/kxm/src/tui.ts +1046 -0
  157. package/plugins/kxm/src/vnext-bindings.ts +403 -0
  158. package/plugins/kxm/src/vnext-config.ts +1646 -0
  159. package/plugins/kxm/src/vnext-engine-artifacts.ts +86 -0
  160. package/plugins/kxm/src/vnext-engine-command.ts +533 -0
  161. package/plugins/kxm/src/vnext-engine-compile.ts +722 -0
  162. package/plugins/kxm/src/vnext-engine-evidence.ts +273 -0
  163. package/plugins/kxm/src/vnext-engine-fold.ts +1400 -0
  164. package/plugins/kxm/src/vnext-engine-gate-records.ts +583 -0
  165. package/plugins/kxm/src/vnext-engine-plan.ts +717 -0
  166. package/plugins/kxm/src/vnext-engine.ts +2458 -0
  167. package/plugins/kxm/src/vnext-gate-hash.ts +10 -0
  168. package/plugins/kxm/src/vnext-harness.ts +1142 -0
  169. package/plugins/kxm/src/vnext-init.ts +430 -0
  170. package/plugins/kxm/src/vnext-migrate.ts +1848 -0
  171. package/plugins/kxm/src/vnext-oneshot-producer.ts +424 -0
  172. package/plugins/kxm/src/vnext-permission.ts +936 -0
  173. package/plugins/kxm/src/vnext-pi-producer.ts +628 -0
  174. package/plugins/kxm/src/vnext-repair.ts +1094 -0
  175. package/plugins/kxm/src/vnext-runtime-owner.ts +320 -0
  176. package/plugins/kxm/src/vnext-runtime-store.ts +1560 -0
  177. package/plugins/kxm/src/vnext-runtime-supervisor.ts +586 -0
  178. package/plugins/kxm/src/vnext-runtime.ts +663 -0
  179. package/plugins/kxm/src/vnext-template.ts +247 -0
  180. package/plugins/kxm/src/wiki.ts +313 -0
  181. package/plugins/kxm/src/workflow.ts +1548 -0
  182. package/schemas/vnext/README.md +46 -0
  183. package/schemas/vnext/agent.schema.json +40 -0
  184. package/schemas/vnext/assignment-result.schema.json +66 -0
  185. package/schemas/vnext/backup-manifest.schema.json +89 -0
  186. package/schemas/vnext/candidate.schema.json +109 -0
  187. package/schemas/vnext/common.schema.json +422 -0
  188. package/schemas/vnext/context-candidate.schema.json +76 -0
  189. package/schemas/vnext/context-packet.schema.json +192 -0
  190. package/schemas/vnext/delivery-manifest.schema.json +159 -0
  191. package/schemas/vnext/environment.schema.json +66 -0
  192. package/schemas/vnext/gate-registry.schema.json +109 -0
  193. package/schemas/vnext/handoff-manifest.schema.json +146 -0
  194. package/schemas/vnext/init-operation.schema.json +61 -0
  195. package/schemas/vnext/local-repository-bindings.schema.json +30 -0
  196. package/schemas/vnext/memory-record.schema.json +45 -0
  197. package/schemas/vnext/migration-decision.schema.json +26 -0
  198. package/schemas/vnext/migration-plan.schema.json +123 -0
  199. package/schemas/vnext/migration-receipt.schema.json +52 -0
  200. package/schemas/vnext/model.schema.json +42 -0
  201. package/schemas/vnext/permission-diff.schema.json +57 -0
  202. package/schemas/vnext/prices.schema.json +115 -0
  203. package/schemas/vnext/project.schema.json +85 -0
  204. package/schemas/vnext/repository.schema.json +24 -0
  205. package/schemas/vnext/run-event.schema.json +460 -0
  206. package/schemas/vnext/session-brief.schema.json +153 -0
  207. package/schemas/vnext/sync-event.schema.json +234 -0
  208. package/schemas/vnext/template-provenance.schema.json +38 -0
  209. package/schemas/vnext/workflow.schema.json +248 -0
  210. package/scripts/assignment-run.d.mts +354 -0
  211. package/scripts/assignment-run.mjs +4451 -0
  212. package/scripts/build-runtime.mjs +56 -0
  213. package/scripts/check-generated.mjs +77 -0
  214. package/scripts/check-versions.mjs +34 -0
  215. package/scripts/emit-codex-artifacts.d.mts +9 -0
  216. package/scripts/emit-codex-artifacts.mjs +91 -0
  217. package/scripts/harness-run.d.mts +83 -0
  218. package/scripts/harness-run.mjs +2095 -0
  219. package/scripts/kxm-hub.mjs +105 -0
  220. package/scripts/kxm-publish-npm.mjs +327 -0
  221. package/scripts/kxm-release-github.mjs +472 -0
  222. package/scripts/kxm-runtime-supervisor.mjs +7 -0
  223. package/scripts/kxm-worker.mjs +1127 -0
  224. package/scripts/kxm.mjs +27 -0
  225. package/scripts/roster-policy.d.mts +20 -0
  226. package/scripts/roster-policy.mjs +161 -0
  227. package/scripts/smoke-multi-pi.mjs +479 -0
@@ -0,0 +1,253 @@
1
+ # Getting started
2
+
3
+ This guide takes you from a clean machine to a successful peer request. Allow about ten minutes once Node.js, Git, and your agent harnesses are installed.
4
+
5
+ ## Before you begin
6
+
7
+ You need:
8
+
9
+ - Node.js 22.19 or newer on the 22.x line, or Node.js 24 or newer;
10
+ - Git;
11
+ - GitHub CLI for the command-first release install;
12
+ - Pi for Pi agents;
13
+ - Claude Code only if you want a mixed Pi/Claude pool;
14
+ - access to `kontextmind/kxm` while the repository is private.
15
+
16
+ All agents in one pool must use the same hub URL, project token, and project name. Keep the hub/operator administrative token separate. Every active agent in that project must have a unique name.
17
+
18
+ ## 1. Install
19
+
20
+ Pi's Git package installation supplies the extension and Agent Skill but does
21
+ not add `kxm` to `PATH`. Download the packed release through an authenticated
22
+ GitHub CLI session and install that local tarball. Run `gh auth login` first if
23
+ necessary.
24
+
25
+ PowerShell:
26
+
27
+ ```powershell
28
+ $version = "<release-version>"
29
+ $asset = "kxm-$version.tgz"
30
+ $releaseDir = Join-Path $PWD ".kxm-release"
31
+ New-Item -ItemType Directory -Force -Path $releaseDir | Out-Null
32
+ gh release download "v$version" --repo kontextmind/kxm --pattern $asset --dir $releaseDir --clobber
33
+ npm install --global --omit=peer (Join-Path $releaseDir $asset)
34
+ pi install git:github.com/kontextmind/kxm@main
35
+ kxm --help
36
+ ```
37
+
38
+ Bash:
39
+
40
+ ```bash
41
+ version='<release-version>'
42
+ asset="kxm-${version}.tgz"
43
+ mkdir -p .kxm-release
44
+ gh release download "v${version}" --repo kontextmind/kxm \
45
+ --pattern "$asset" --dir .kxm-release --clobber
46
+ npm install --global --omit=peer ".kxm-release/$asset"
47
+ pi install git:github.com/kontextmind/kxm@main
48
+ kxm --help
49
+ ```
50
+
51
+ Do not substitute a global `git+https` npm install; the supported global
52
+ operator package is the versioned release tarball. To run from source instead,
53
+ clone the repository, run `npm ci`, and use `node scripts/kxm.mjs` in place
54
+ of `kxm`.
55
+
56
+ ## 2. Initialize the project
57
+
58
+ ```text
59
+ kxm init
60
+ ```
61
+
62
+ `kxm init` never copies the package repository's dogfood roster or workflows into a consumer workspace.
63
+
64
+ ## 3. Start the hub in another terminal
65
+
66
+ `kxm hub start` is foreground. Keep that terminal running.
67
+
68
+ PowerShell:
69
+
70
+ ```powershell
71
+ $env:KXM_AUTH_TOKEN = "replace-with-an-admin-token"
72
+ $env:KXM_PROJECT_TOKENS = '{"demo":"replace-with-a-demo-project-token"}'
73
+ kxm hub start
74
+ ```
75
+
76
+ Bash:
77
+
78
+ ```bash
79
+ export KXM_AUTH_TOKEN="replace-with-an-admin-token"
80
+ export KXM_PROJECT_TOKENS='{"demo":"replace-with-a-demo-project-token"}'
81
+ kxm hub start
82
+ ```
83
+
84
+ A successful start prints:
85
+
86
+ ```text
87
+ kxm hub listening at http://127.0.0.1:7331; storage=<workspace>/.kxm/state/kxm.db
88
+ ```
89
+
90
+ The default database survives hub restarts and is ignored by Git.
91
+
92
+ ## 4. Bind this machine to the hub
93
+
94
+ ```text
95
+ kxm hub bind http://127.0.0.1:7331
96
+ ```
97
+
98
+ ## 5. Confirm the session
99
+
100
+ ```text
101
+ kxm session brief
102
+ ```
103
+
104
+ ## 6. Open Pi and check the hub
105
+
106
+ Set an identity and start the first agent. Do not give agents the administrative token.
107
+
108
+ PowerShell:
109
+
110
+ ```powershell
111
+ $env:KXM_SERVER_URL = "http://127.0.0.1:7331"
112
+ $env:KXM_AUTH_TOKEN = "replace-with-a-demo-project-token"
113
+ $env:KXM_PROJECT = "demo"
114
+ $env:KXM_AGENT_NAME = "planner"
115
+ $env:KXM_AGENT_PURPOSE = "Plans work and coordinates handoffs"
116
+ pi
117
+ ```
118
+
119
+ Bash:
120
+
121
+ ```bash
122
+ export KXM_SERVER_URL=http://127.0.0.1:7331
123
+ export KXM_AUTH_TOKEN="replace-with-a-demo-project-token"
124
+ export KXM_PROJECT=demo
125
+ export KXM_AGENT_NAME=planner
126
+ export KXM_AGENT_PURPOSE="Plans work and coordinates handoffs"
127
+ pi
128
+ ```
129
+
130
+ In Pi, run `/kxm hub`. It should show the connected identity and server.
131
+
132
+ Open a second terminal, repeat the settings, and change only the identity:
133
+
134
+ ```powershell
135
+ $env:KXM_AGENT_NAME = "reviewer"
136
+ $env:KXM_AGENT_PURPOSE = "Reviews plans and code for correctness risks"
137
+ pi
138
+ ```
139
+
140
+ Ask the planner:
141
+
142
+ ```text
143
+ Use the kxm skill. List peers, ask reviewer to examine the current
144
+ plan for its three highest correctness risks, and wait for the response.
145
+ ```
146
+
147
+ The planner should call `kxm_list`, `kxm_send`, and `kxm_await`. The reviewer receives an agent turn and its settled response returns to the planner.
148
+
149
+ For an executable transport-only demonstration, run `npm run example`. It starts a temporary in-memory hub, completes a planner-to-reviewer round trip, and exits without changing the normal database.
150
+
151
+ ## Connect Claude Code
152
+
153
+ Keep the same hub running. Inside Claude Code, add the marketplace and install the plugin:
154
+
155
+ ```text
156
+ /plugin marketplace add kontextmind/kxm
157
+ /plugin install kxm
158
+ /reload-plugins
159
+ ```
160
+
161
+ Configure these values when prompted:
162
+
163
+ | Setting | Example |
164
+ |---|---|
165
+ | KXM server URL | `http://127.0.0.1:7331` |
166
+ | Authentication token | The `demo` project token, not the administrative token |
167
+ | Agent name | `claude-reviewer` |
168
+ | Agent purpose | `Reviews implementation and tests` |
169
+ | Project | `demo` |
170
+
171
+ Restart Claude Code after configuration. Ask it to use `kxm_list`; the connected Pi agents should appear.
172
+
173
+ ### Optional pushed delivery
174
+
175
+ Claude channels can inject an inbound request into a running session. They are currently a research-preview feature, and a community channel must be explicitly trusted at launch:
176
+
177
+ ```text
178
+ claude --dangerously-load-development-channels plugin:kxm
179
+ ```
180
+
181
+ Review the trust prompt before accepting it. If an organization administrator has approved the plugin through `allowedChannelPlugins`, use:
182
+
183
+ ```text
184
+ claude --channels plugin:kxm
185
+ ```
186
+
187
+ Without channel mode, Claude can still send requests and receive them by calling `kxm_inbox`, then answer with `kxm_reply`.
188
+
189
+ ## Your first useful topology
190
+
191
+ Start with two or three purposeful roles:
192
+
193
+ | Role | Good responsibilities |
194
+ |---|---|
195
+ | Planner | Break down work, define ownership, collect results |
196
+ | Builder | Implement one bounded change |
197
+ | Reviewer | Check correctness, tests, security, or documentation |
198
+
199
+ Avoid assigning two agents to edit the same files in one checkout. Use separate Git worktrees or give one agent write ownership.
200
+
201
+ ## Next steps
202
+
203
+ - Use the wiki-ready [KXM Handbook](kxm-handbook.md) for the complete CLI, Pi, Claude, workflow, gate, and recovery reference.
204
+ - Adjust names, project isolation, and network settings in [Configuration](configuration.md).
205
+ - Learn the request lifecycle in [Architecture](architecture.md).
206
+ - Read [Operations](operations.md) before binding beyond localhost.
207
+ - Review the [Test matrix](test-matrix.md) for verified features and example coverage.
208
+ - Start a long-lived coordinator from Jira with [Webhook workflows](webhook-workflows.md).
209
+ - Use [Troubleshooting](troubleshooting.md) if an agent does not appear or a request does not arrive.
210
+
211
+ ## Try the v0.5 context features
212
+
213
+ With a hub running (`kxm hub start`):
214
+
215
+ ```bash
216
+ # Role-aware context packet for the current project
217
+ kxm context get my-project --role planner --task "plan the CI migration" --budget 8192
218
+
219
+ # Search durable context records (metadata only)
220
+ kxm context recall my-project --query "flaky"
221
+
222
+ # Explain evidence and lineage for one context item
223
+ kxm context explain my-project ctx_item_abc123
224
+
225
+ # Authoritative temporal state (and historical queries)
226
+ kxm context state my-project ci.pipeline
227
+ kxm context state my-project ci.pipeline --as-of 2026-01-15T00:00:00.000Z
228
+
229
+ # Episodic learning from workflow journals
230
+ kxm context episode my-project
231
+
232
+ # Compile and lint the knowledge wiki
233
+ kxm context wiki-compile my-project
234
+ kxm context wiki-lint my-project
235
+
236
+ # Routing telemetry per behavioral configuration
237
+ kxm routing report
238
+ ```
239
+
240
+ State changes follow a propose-then-promote flow: agents propose through the
241
+ `kxm_promote` Pi/MCP tool (or the context API), and an operator promotes with
242
+ durable evidence:
243
+
244
+ ```bash
245
+ kxm context promote my-project ctx_prop_abc123 --evidence "receipt:run_9/verify"
246
+ ```
247
+
248
+ Role-aware packets differ by role: repro agents see prior reproductions and
249
+ incidents; planners see current state and decisions; critics see
250
+ contradictions; implementers see the approved plan and skills; verifiers see
251
+ acceptance evidence. The same requests through Pi (`kxm_context`) or Claude
252
+ Code (MCP) return the same packets — agents never talk to a memory backend
253
+ directly.