akm-cli 0.9.0-rc.9 → 0.9.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 (450) hide show
  1. package/CHANGELOG.md +1063 -44
  2. package/README.md +51 -25
  3. package/SECURITY.md +14 -1
  4. package/STABILITY.md +497 -0
  5. package/dist/akm +148 -35
  6. package/dist/{akm-migrate-storage → akm-migrate} +6 -9
  7. package/dist/assets/hints/cli-hints-full.md +223 -95
  8. package/dist/assets/hints/cli-hints-short.md +85 -22
  9. package/dist/assets/improve-strategies/default.json +1 -1
  10. package/dist/assets/improve-strategies/reflect-distill.json +1 -1
  11. package/dist/assets/prompts/memory-infer-user.md +2 -3
  12. package/dist/assets/stash-skeleton/README.md +6 -5
  13. package/dist/assets/stash-skeleton/facts/conventions/assets/agent.md +2 -0
  14. package/dist/assets/stash-skeleton/facts/conventions/assets/command.md +2 -0
  15. package/dist/assets/stash-skeleton/facts/conventions/assets/fact.md +2 -0
  16. package/dist/assets/stash-skeleton/facts/conventions/assets/knowledge.md +2 -0
  17. package/dist/assets/stash-skeleton/facts/conventions/assets/lesson.md +2 -0
  18. package/dist/assets/stash-skeleton/facts/conventions/assets/memory.md +2 -0
  19. package/dist/assets/stash-skeleton/facts/conventions/assets/script.md +2 -0
  20. package/dist/assets/stash-skeleton/facts/conventions/assets/skill.md +2 -0
  21. package/dist/assets/stash-skeleton/facts/conventions/assets/workflow.md +2 -0
  22. package/dist/assets/stash-skeleton/facts/conventions/backlinks.md +2 -0
  23. package/dist/assets/stash-skeleton/facts/conventions/domains.md +2 -0
  24. package/dist/assets/stash-skeleton/facts/conventions/organization.md +20 -9
  25. package/dist/assets/tasks/core/extract.yml +1 -1
  26. package/dist/assets/tasks/core/version-check.yml +1 -1
  27. package/dist/assets/tasks/improve/akm-graph-refresh-weekly.yml +5 -0
  28. package/dist/assets/tasks/improve/akm-improve-catchup.yml +8 -0
  29. package/dist/assets/tasks/improve/akm-improve-consolidate.yml +5 -0
  30. package/dist/assets/tasks/improve/akm-improve-frequent.yml +5 -0
  31. package/dist/assets/tasks/improve/akm-improve-nightly.yml +5 -0
  32. package/dist/assets/templates/html/health.html +1 -3
  33. package/dist/assets/workflows/workflow-template.md +32 -15
  34. package/dist/cli/invocation.js +40 -15
  35. package/dist/cli/parse-args.js +0 -22
  36. package/dist/cli/retired-commands.js +121 -0
  37. package/dist/cli/shared.js +154 -22
  38. package/dist/cli/unknown-flags.js +236 -0
  39. package/dist/cli-node.mjs +2 -1
  40. package/dist/cli.js +696 -258
  41. package/dist/commands/agent/agent-dispatch.js +14 -3
  42. package/dist/commands/agent/contribute-cli.js +73 -88
  43. package/dist/commands/completions.js +79 -22
  44. package/dist/commands/config-cli.js +17 -150
  45. package/dist/commands/env/env-cli.js +59 -143
  46. package/dist/commands/env/env.js +12 -163
  47. package/dist/commands/env/marker-path.js +6 -0
  48. package/dist/commands/env/secret-cli.js +36 -66
  49. package/dist/commands/env/secret.js +24 -57
  50. package/dist/commands/feedback-cli.js +141 -87
  51. package/dist/commands/health/accept-rate.js +58 -0
  52. package/dist/commands/health/advisories.js +3 -4
  53. package/dist/commands/health/checks.js +85 -23
  54. package/dist/commands/health/html-report.js +7 -10
  55. package/dist/commands/health/improve-metrics.js +25 -83
  56. package/dist/commands/health/md-report.js +5 -9
  57. package/dist/commands/health/metrics.js +62 -20
  58. package/dist/commands/health/renderers.js +47 -0
  59. package/dist/commands/health/report-view-model.js +4 -5
  60. package/dist/commands/health/stash-exposure.js +1 -1
  61. package/dist/commands/health/surfaces.js +3 -48
  62. package/dist/commands/health/task-runs.js +3 -67
  63. package/dist/commands/health/types-improve.js +7 -0
  64. package/dist/commands/health.js +99 -28
  65. package/dist/commands/improve/anti-collapse.js +2 -2
  66. package/dist/commands/improve/autonomy-gate.js +68 -0
  67. package/dist/commands/improve/collapse-detector.js +41 -40
  68. package/dist/commands/improve/consolidate/eligibility.js +1 -23
  69. package/dist/commands/improve/consolidate/merge.js +4 -0
  70. package/dist/commands/improve/consolidate.js +140 -1000
  71. package/dist/commands/improve/distill/promote-memory.js +12 -12
  72. package/dist/commands/improve/distill/quality-gate.js +6 -6
  73. package/dist/commands/improve/distill.js +58 -69
  74. package/dist/commands/improve/eligibility.js +95 -55
  75. package/dist/commands/improve/extract-cli.js +14 -133
  76. package/dist/commands/improve/improve-cli.js +98 -114
  77. package/dist/commands/improve/improve-result-file.js +1 -28
  78. package/dist/commands/improve/improve-strategies.js +8 -5
  79. package/dist/commands/improve/improve.js +128 -91
  80. package/dist/commands/improve/loop-stages.js +182 -20
  81. package/dist/commands/improve/memory/derived-ref.js +45 -43
  82. package/dist/commands/improve/memory/memory-belief.js +1 -1
  83. package/dist/commands/improve/memory/memory-contradiction-detect.js +4 -12
  84. package/dist/commands/improve/memory/memory-improve.js +6 -5
  85. package/dist/commands/improve/outcome-loop.js +22 -65
  86. package/dist/commands/improve/preparation.js +114 -123
  87. package/dist/commands/improve/proactive-maintenance.js +2 -5
  88. package/dist/commands/improve/reflect.js +56 -160
  89. package/dist/commands/improve/salience.js +11 -122
  90. package/dist/commands/improve/source-identity.js +10 -38
  91. package/dist/commands/lint/base-linter.js +20 -124
  92. package/dist/commands/lint/env-key-rules.js +31 -47
  93. package/dist/commands/lint/index.js +249 -43
  94. package/dist/commands/{events.js → log.js} +33 -38
  95. package/dist/commands/migrate-cli.js +92 -12
  96. package/dist/commands/migration-tool.js +46 -0
  97. package/dist/commands/observability-cli.js +70 -209
  98. package/dist/commands/proposal/drain.js +101 -29
  99. package/dist/commands/proposal/proposal-cli.js +76 -48
  100. package/dist/commands/proposal/proposal.js +54 -18
  101. package/dist/commands/proposal/propose-cli.js +88 -0
  102. package/dist/commands/proposal/propose.js +23 -15
  103. package/dist/commands/proposal/repository.js +701 -278
  104. package/dist/commands/proposal/validators/proposal-quality-validators.js +2 -8
  105. package/dist/commands/proposal/validators/proposal-validators.js +55 -7
  106. package/dist/commands/proposal/validators/proposals.js +4 -7
  107. package/dist/commands/read/curate.js +34 -53
  108. package/dist/commands/read/knowledge.js +150 -95
  109. package/dist/commands/read/registry-search.js +2 -2
  110. package/dist/commands/read/remember-cli.js +42 -15
  111. package/dist/commands/read/search-cli.js +180 -78
  112. package/dist/commands/read/search.js +58 -43
  113. package/dist/commands/read/show.js +197 -141
  114. package/dist/commands/registry-cli.js +12 -51
  115. package/dist/commands/remember.js +14 -57
  116. package/dist/commands/sources/add-cli.js +100 -31
  117. package/dist/commands/sources/bundle-cli.js +166 -0
  118. package/dist/commands/sources/bundle-config-ops.js +7 -2
  119. package/dist/commands/sources/info.js +18 -5
  120. package/dist/commands/sources/init.js +12 -12
  121. package/dist/commands/sources/installed-stashes.js +382 -98
  122. package/dist/commands/sources/schema-repair.js +3 -2
  123. package/dist/commands/sources/self-update.js +131 -38
  124. package/dist/commands/sources/source-add.js +72 -17
  125. package/dist/commands/sources/source-clone.js +129 -45
  126. package/dist/commands/sources/source-manage.js +43 -23
  127. package/dist/commands/sources/sources-cli.js +57 -208
  128. package/dist/commands/sources/stash-cli.js +46 -53
  129. package/dist/commands/tasks/tasks-cli.js +91 -97
  130. package/dist/commands/tasks/tasks.js +276 -421
  131. package/dist/commands/workflow-cli.js +175 -450
  132. package/dist/core/adapter/adapters/akm-adapter.js +47 -28
  133. package/dist/core/adapter/adapters/akm-lint.js +42 -27
  134. package/dist/core/adapter/adapters/akm-metadata.js +15 -44
  135. package/dist/core/adapter/adapters/akm-task-adapter.js +15 -13
  136. package/dist/core/adapter/adapters/akm-workflow-adapter.js +55 -71
  137. package/dist/core/adapter/adapters/dotenv-adapter.js +1 -1
  138. package/dist/core/adapter/adapters/generic-files-adapter.js +2 -0
  139. package/dist/core/adapter/adapters/index.js +6 -6
  140. package/dist/core/adapter/adapters/llm-wiki-adapter.js +14 -8
  141. package/dist/core/adapter/adapters/okf-adapter.js +187 -19
  142. package/dist/core/adapter/adapters/shared.js +3 -19
  143. package/dist/core/adapter/adapters/tool-dir-shared.js +8 -3
  144. package/dist/core/adapter/adapters/website-snapshot-adapter.js +1 -0
  145. package/dist/core/adapter/detect-adapter.js +17 -0
  146. package/dist/core/adapter/recognize-match.js +6 -4
  147. package/dist/core/adapter/validate-context.js +214 -0
  148. package/dist/core/asset/akm-markdown.js +63 -0
  149. package/dist/core/asset/asset-placement.js +20 -6
  150. package/dist/core/asset/asset-ref.js +11 -9
  151. package/dist/core/asset/frontmatter-lint.js +30 -0
  152. package/dist/core/asset/frontmatter.js +25 -9
  153. package/dist/core/asset/markdown.js +40 -51
  154. package/dist/core/asset/resolve-ref.js +89 -18
  155. package/dist/core/asset/stash-meta.js +1 -1
  156. package/dist/core/bundle-id.js +51 -0
  157. package/dist/core/common.js +152 -38
  158. package/dist/core/config/config-io.js +12 -1
  159. package/dist/core/config/config-schema.js +35 -8
  160. package/dist/core/config/config-sources.js +55 -11
  161. package/dist/core/config/config-walker.js +25 -9
  162. package/dist/core/config/config.js +9 -48
  163. package/dist/core/config/experimental.js +21 -0
  164. package/dist/core/config/schema/embedding.js +5 -1
  165. package/dist/core/config/schema/experimental.js +30 -0
  166. package/dist/core/config/schema/improve-processes.js +0 -6
  167. package/dist/core/config/schema/improve.js +21 -3
  168. package/dist/core/config/schema/index-config.js +8 -15
  169. package/dist/core/config/schema/output.js +4 -1
  170. package/dist/core/config/schema/setup.js +9 -18
  171. package/dist/core/config/schema/sources-bundles.js +49 -33
  172. package/dist/core/config/schema/workflow.js +3 -3
  173. package/dist/core/env-secret-ref.js +76 -46
  174. package/dist/core/errors.js +18 -12
  175. package/dist/core/events.js +46 -128
  176. package/dist/core/file-change.js +6 -5
  177. package/dist/core/fs-txn.js +83 -7
  178. package/dist/core/git-message.js +2 -2
  179. package/dist/core/improve-result.js +1 -100
  180. package/dist/core/lesson-lint.js +1 -17
  181. package/dist/core/logs-db.js +2 -1
  182. package/dist/core/migration-operation.js +16 -0
  183. package/dist/core/mutation-target.js +78 -0
  184. package/dist/core/parse.js +4 -1
  185. package/dist/core/paths.js +17 -20
  186. package/dist/core/recognition-util.js +12 -14
  187. package/dist/core/redaction.js +34 -0
  188. package/dist/core/standards/resolve-standards-context.js +2 -14
  189. package/dist/core/standards/resolve-stash-standards.js +2 -2
  190. package/dist/core/standards/resolve-type-conventions.js +2 -2
  191. package/dist/core/state/migrations.js +41 -18
  192. package/dist/core/state-db.js +5 -14
  193. package/dist/core/structured.js +1 -1
  194. package/dist/core/subprocess.js +6 -4
  195. package/dist/core/text-truncation.js +9 -5
  196. package/dist/core/type-presentation.js +3 -3
  197. package/dist/core/warn.js +0 -3
  198. package/dist/core/write-source.js +771 -95
  199. package/dist/indexer/bundle-identity-guard.js +3 -2
  200. package/dist/indexer/db/graph-db.js +0 -24
  201. package/dist/indexer/ensure-index.js +1 -0
  202. package/dist/indexer/graph/graph-boost.js +9 -34
  203. package/dist/indexer/graph/graph-extraction.js +8 -5
  204. package/dist/indexer/index-writer-lock.js +53 -17
  205. package/dist/indexer/index-written-assets.js +16 -22
  206. package/dist/indexer/indexer.js +497 -239
  207. package/dist/indexer/installations.js +14 -96
  208. package/dist/indexer/passes/dir-staleness.js +16 -9
  209. package/dist/indexer/passes/memory-inference.js +11 -9
  210. package/dist/indexer/passes/metadata.js +113 -47
  211. package/dist/indexer/scan/doc-to-entry.js +38 -1
  212. package/dist/indexer/scan/drain-dir.js +13 -23
  213. package/dist/indexer/search/db-search.js +99 -54
  214. package/dist/indexer/search/fts-query.js +47 -24
  215. package/dist/indexer/search/ranking-contributors.js +42 -20
  216. package/dist/indexer/search/ranking.js +18 -99
  217. package/dist/indexer/search/search-fields.js +7 -2
  218. package/dist/indexer/search/search-source.js +82 -93
  219. package/dist/indexer/usage/usage-events.js +0 -89
  220. package/dist/indexer/walk/file-context.js +2 -1
  221. package/dist/indexer/walk/matchers.js +30 -43
  222. package/dist/indexer/walk/path-resolver.js +7 -2
  223. package/dist/indexer/walk/walker.js +38 -12
  224. package/dist/integrations/agent/builders.js +0 -6
  225. package/dist/integrations/agent/config.js +2 -2
  226. package/dist/integrations/agent/detect.js +49 -19
  227. package/dist/integrations/agent/engine-fallback.js +76 -0
  228. package/dist/integrations/agent/profiles.js +14 -0
  229. package/dist/integrations/agent/prompts.js +12 -8
  230. package/dist/integrations/agent/runner-dispatch.js +4 -2
  231. package/dist/integrations/agent/runner.js +0 -1
  232. package/dist/integrations/agent/spawn.js +5 -6
  233. package/dist/integrations/github.js +1 -1
  234. package/dist/integrations/harnesses/aider/agent-builder.js +6 -4
  235. package/dist/integrations/harnesses/amazonq/agent-builder.js +7 -4
  236. package/dist/integrations/harnesses/claude/session-log.js +0 -10
  237. package/dist/integrations/harnesses/codex/agent-builder.js +5 -2
  238. package/dist/integrations/harnesses/copilot/agent-builder.js +5 -3
  239. package/dist/integrations/harnesses/gemini/agent-builder.js +5 -3
  240. package/dist/integrations/harnesses/index.js +3 -7
  241. package/dist/integrations/harnesses/opencode/agent-builder.js +21 -2
  242. package/dist/integrations/harnesses/opencode/session-log.js +0 -15
  243. package/dist/integrations/harnesses/opencode-sdk/sdk-runner.js +13 -4
  244. package/dist/integrations/harnesses/openhands/agent-builder.js +9 -6
  245. package/dist/integrations/harnesses/pi/agent-builder.js +6 -4
  246. package/dist/integrations/lockfile.js +88 -7
  247. package/dist/integrations/session-logs/index.js +3 -28
  248. package/dist/llm/client.js +136 -100
  249. package/dist/llm/embedders/remote.js +13 -5
  250. package/dist/llm/feature-gate.js +4 -12
  251. package/dist/llm/graph-extract.js +5 -11
  252. package/dist/llm/memory-infer.js +144 -1
  253. package/dist/llm/metadata-enhance.js +5 -7
  254. package/dist/llm/structured-call.js +1 -1
  255. package/dist/llm/usage-persist.js +26 -5
  256. package/dist/llm/usage-telemetry.js +25 -2
  257. package/dist/output/cli-hints.js +1 -2
  258. package/dist/output/context.js +22 -7
  259. package/dist/output/format-exempt.js +80 -0
  260. package/dist/output/generic-render.js +259 -0
  261. package/dist/output/render-registry.js +57 -0
  262. package/dist/output/renderers.js +14 -36
  263. package/dist/output/shapes/curate.js +10 -1
  264. package/dist/output/shapes/events.js +12 -7
  265. package/dist/output/shapes/helpers.js +56 -83
  266. package/dist/output/shapes/migrate.js +8 -0
  267. package/dist/output/shapes/passthrough.js +7 -41
  268. package/dist/output/shapes/proposal/producer.js +15 -7
  269. package/dist/output/shapes.js +2 -9
  270. package/dist/output/text/{init.js → bundle-create.js} +3 -1
  271. package/dist/output/text/bundle-show.js +7 -0
  272. package/dist/output/text/command-format.js +164 -96
  273. package/dist/output/text/env.js +1 -3
  274. package/dist/output/text/events.js +8 -7
  275. package/dist/output/text/health-format.js +103 -0
  276. package/dist/output/text/health.js +7 -0
  277. package/dist/output/text/helpers.js +10 -8
  278. package/dist/output/text/lint-format.js +43 -0
  279. package/dist/output/text/{save.js → lint.js} +2 -2
  280. package/dist/output/text/migrate.js +88 -0
  281. package/dist/output/text/proposal/producer.js +4 -2
  282. package/dist/output/text/proposal-format.js +44 -72
  283. package/dist/output/text/registry-commands.js +1 -2
  284. package/dist/output/text/show-directives.js +15 -7
  285. package/dist/output/text/status-list.js +32 -0
  286. package/dist/output/text/sync.js +5 -0
  287. package/dist/output/text/workflow-format.js +24 -203
  288. package/dist/output/text/workflow.js +1 -7
  289. package/dist/output/text.js +16 -17
  290. package/dist/registry/factory.js +4 -6
  291. package/dist/registry/origin-resolve.js +16 -27
  292. package/dist/registry/providers/skills-sh.js +3 -3
  293. package/dist/registry/providers/static-index.js +13 -23
  294. package/dist/registry/resolve.js +42 -7
  295. package/dist/registry/semver.js +34 -84
  296. package/dist/runtime.js +2 -23
  297. package/dist/scripts/akm-migrate-node.js +60290 -0
  298. package/dist/scripts/akm-migrate.js +59628 -0
  299. package/dist/setup/detect.js +42 -15
  300. package/dist/setup/registry-stash-loader.js +2 -2
  301. package/dist/setup/setup.js +236 -136
  302. package/dist/setup/steps/connection.js +7 -9
  303. package/dist/setup/steps/platforms.js +9 -9
  304. package/dist/setup/steps/semantic.js +15 -3
  305. package/dist/setup/steps/sources.js +12 -13
  306. package/dist/setup/steps/stashdir.js +2 -3
  307. package/dist/setup/steps/tasks.js +237 -120
  308. package/dist/sources/freshness.js +1 -1
  309. package/dist/sources/provider-factory.js +11 -17
  310. package/dist/sources/providers/filesystem.js +2 -3
  311. package/dist/sources/providers/git-install.js +278 -34
  312. package/dist/sources/providers/git-provider.js +25 -23
  313. package/dist/sources/providers/git-stash.js +395 -106
  314. package/dist/sources/providers/git.js +2 -2
  315. package/dist/sources/providers/npm.js +16 -19
  316. package/dist/sources/providers/provider-utils.js +7 -4
  317. package/dist/sources/providers/sync-from-ref.js +3 -9
  318. package/dist/sources/providers/website.js +6 -1
  319. package/dist/sources/resolve.js +6 -5
  320. package/dist/sources/snapshot-fetchers/bluesky.js +146 -0
  321. package/dist/sources/snapshot-fetchers/content-extract.js +566 -0
  322. package/dist/sources/snapshot-fetchers/fetcher-util.js +41 -0
  323. package/dist/sources/snapshot-fetchers/github.js +100 -0
  324. package/dist/sources/snapshot-fetchers/host-guard.js +291 -0
  325. package/dist/sources/snapshot-fetchers/registry.js +17 -1
  326. package/dist/sources/snapshot-fetchers/robots.js +348 -0
  327. package/dist/sources/snapshot-fetchers/rss.js +282 -0
  328. package/dist/sources/snapshot-fetchers/secret-seam.js +42 -0
  329. package/dist/sources/snapshot-fetchers/website-ingest.js +566 -268
  330. package/dist/sources/snapshot-fetchers/x.js +910 -0
  331. package/dist/storage/database.js +7 -0
  332. package/dist/storage/engines/sqlite-migrations.js +23 -111
  333. package/dist/storage/managed-db.js +2 -2
  334. package/dist/storage/repositories/canaries-repository.js +1 -1
  335. package/dist/storage/repositories/events-repository.js +27 -11
  336. package/dist/storage/repositories/improve-runs-repository.js +6 -12
  337. package/dist/storage/repositories/index-connection.js +17 -6
  338. package/dist/storage/repositories/index-entries-repository.js +151 -240
  339. package/dist/storage/repositories/index-entry-mapper.js +15 -11
  340. package/dist/storage/repositories/index-fts-repository.js +5 -2
  341. package/dist/storage/repositories/index-llm-cache-repository.js +0 -1
  342. package/dist/storage/repositories/index-meta-repository.js +2 -3
  343. package/dist/storage/repositories/index-schema.js +10 -25
  344. package/dist/storage/repositories/index-utility-repository.js +15 -28
  345. package/dist/storage/repositories/index-vec-repository.js +6 -1
  346. package/dist/storage/repositories/outcome-repository.js +119 -0
  347. package/dist/storage/repositories/proposals-repository.js +296 -59
  348. package/dist/storage/repositories/registry-cache.js +19 -0
  349. package/dist/storage/repositories/salience-repository.js +172 -0
  350. package/dist/storage/repositories/task-history-repository.js +15 -13
  351. package/dist/storage/repositories/workflow-runs-repository.js +52 -40
  352. package/dist/tasks/backends/cron.js +105 -15
  353. package/dist/tasks/backends/index.js +1 -1
  354. package/dist/tasks/backends/launchd.js +85 -38
  355. package/dist/tasks/backends/schtasks.js +135 -15
  356. package/dist/tasks/embedded.js +56 -40
  357. package/dist/tasks/parser.js +7 -157
  358. package/dist/tasks/resolve-akm-bin.js +137 -59
  359. package/dist/tasks/runner.js +79 -42
  360. package/dist/tasks/scheduler-invocation.js +220 -10
  361. package/dist/tasks/schema.js +24 -1
  362. package/dist/tasks/task-id.js +1 -3
  363. package/dist/tasks/validator.js +20 -6
  364. package/dist/workflows/authoring/authoring.js +94 -143
  365. package/dist/workflows/authoring/scope-key.js +1 -1
  366. package/dist/workflows/exec/frozen-judge.js +28 -2
  367. package/dist/workflows/exec/native-executor.js +77 -57
  368. package/dist/workflows/exec/param-secrets.js +9 -9
  369. package/dist/workflows/exec/run-workflow.js +133 -79
  370. package/dist/workflows/exec/step-work.js +219 -346
  371. package/dist/{migrate-storage-node.mjs → workflows/exec/unit-dispatch.js} +1 -5
  372. package/dist/workflows/ir/compile.js +141 -270
  373. package/dist/workflows/ir/freeze.js +40 -30
  374. package/dist/workflows/ir/params.js +135 -11
  375. package/dist/workflows/ir/plan-hash.js +1 -1
  376. package/dist/workflows/ir/schema.js +25 -26
  377. package/dist/workflows/parser.js +872 -307
  378. package/dist/workflows/program/expressions.js +20 -208
  379. package/dist/workflows/program/schema.js +7 -10
  380. package/dist/workflows/renderer.js +95 -68
  381. package/dist/workflows/resource-limits.js +2 -0
  382. package/dist/workflows/runtime/checkin.js +3 -3
  383. package/dist/workflows/runtime/plan-classifier.js +16 -75
  384. package/dist/workflows/runtime/runs.js +186 -127
  385. package/dist/workflows/runtime/unit-checkin.js +1 -1
  386. package/dist/workflows/runtime/unit-phases.js +2 -2
  387. package/dist/workflows/runtime/workflow-asset-loader.js +232 -83
  388. package/dist/workflows/schema.js +1 -11
  389. package/dist/workflows/validate-summary.js +30 -36
  390. package/dist/workflows/validator.js +21 -62
  391. package/docs/README.md +68 -0
  392. package/docs/migration/README.md +8 -0
  393. package/docs/migration/release-notes/0.7.0.md +11 -11
  394. package/docs/migration/release-notes/0.9.0.md +208 -27
  395. package/docs/migration/v0.7-to-v0.8.md +46 -47
  396. package/docs/migration/v0.8-to-v0.9.md +564 -208
  397. package/docs/migration/v0.9.0-troubleshooting.md +561 -0
  398. package/docs/reference/README.md +12 -0
  399. package/docs/reference/cli.md +2253 -0
  400. package/docs/reference/configuration.md +358 -0
  401. package/docs/reference/data-and-telemetry.md +105 -42
  402. package/docs/reference/workflows.md +647 -0
  403. package/package.json +22 -11
  404. package/schemas/akm-asset-envelope.json +93 -0
  405. package/schemas/akm-config.json +81 -128
  406. package/schemas/akm-workflow.json +74 -73
  407. package/dist/assets/tasks/core/backup.yml +0 -5
  408. package/dist/assets/tasks/graph-refresh-weekly.yml +0 -10
  409. package/dist/cli/config-migrate.js +0 -1878
  410. package/dist/cli/config-validate.js +0 -41
  411. package/dist/commands/backup-cli.js +0 -56
  412. package/dist/commands/bundle/bundle-cli.js +0 -68
  413. package/dist/commands/bundle/bundle.js +0 -219
  414. package/dist/commands/graph/graph-cli.js +0 -124
  415. package/dist/commands/graph/graph.js +0 -489
  416. package/dist/commands/improve/extract-watch.js +0 -140
  417. package/dist/commands/mv-cli.js +0 -1221
  418. package/dist/commands/sources/history.js +0 -201
  419. package/dist/commands/tasks/default-tasks.js +0 -186
  420. package/dist/core/migration-backup.js +0 -1231
  421. package/dist/indexer/usage/unmigrated-vaults-guard.js +0 -95
  422. package/dist/llm/memory-infer-impl.js +0 -138
  423. package/dist/migrate/legacy/config-source-migration.js +0 -257
  424. package/dist/migrate/legacy/content-migration.js +0 -350
  425. package/dist/migrate/legacy/legacy-layout.js +0 -779
  426. package/dist/migrate/legacy/legacy-paths.js +0 -25
  427. package/dist/migrate/legacy/legacy-stash-json.js +0 -80
  428. package/dist/migrate/legacy/proposal-fs-import.js +0 -168
  429. package/dist/migrate/legacy/task-target-ref-migration.js +0 -278
  430. package/dist/migrate/legacy/three-db-cutover.js +0 -845
  431. package/dist/migrate/legacy/workflow-migrations-bodies.js +0 -52
  432. package/dist/migrate/legacy/workflow-migrations-frozen.js +0 -21
  433. package/dist/migrate/legacy-ref-grammar.js +0 -214
  434. package/dist/output/shapes/distill.js +0 -14
  435. package/dist/output/shapes/history.js +0 -11
  436. package/dist/output/text/distill.js +0 -6
  437. package/dist/output/text/enable-disable.js +0 -8
  438. package/dist/output/text/history.js +0 -6
  439. package/dist/registry/build-index.js +0 -382
  440. package/dist/schemas/akm-config.json +0 -4704
  441. package/dist/schemas/akm-task.json +0 -87
  442. package/dist/schemas/akm-workflow.json +0 -372
  443. package/dist/scripts/migrate-storage.js +0 -3816
  444. package/dist/workflows/authoring/workflow-program-template.yaml +0 -31
  445. package/dist/workflows/cli.js +0 -53
  446. package/dist/workflows/exec/brief.js +0 -481
  447. package/dist/workflows/exec/report.js +0 -1460
  448. package/dist/workflows/exec/watch.js +0 -116
  449. package/dist/workflows/program/parser.js +0 -813
  450. package/dist/workflows/program/project.js +0 -104
@@ -1,6 +1,6 @@
1
1
  # akm CLI — Full Reference
2
2
 
3
- You have access to a searchable library of scripts, skills, commands, agents, knowledge documents, workflows, and memories via `akm`. Search your sources first before writing something from scratch.
3
+ You have access to a searchable library of scripts, skills, commands, agents, knowledge documents, workflows, env files, secrets, lessons, and memories via `akm`. Search your sources first before writing something from scratch.
4
4
 
5
5
  ## Search
6
6
 
@@ -8,28 +8,34 @@ You have access to a searchable library of scripts, skills, commands, agents, kn
8
8
  akm search "<query>" # Search all sources
9
9
  akm curate "<task>" # Curate the best matches for a task
10
10
  akm search "<query>" --type workflow # Filter by asset type
11
- akm search "<query>" --source both # Also search registries
12
- akm search "<query>" --source registry # Search registries only
11
+ akm search "<query>" --from all # Also search registries
12
+ akm search "<query>" --from registry # Search registries only
13
13
  akm search "<query>" --limit 10 # Limit results
14
14
  akm search "<query>" --detail full # Include scores, paths, timing
15
- akm search "memory:projectA/" # Enumerate a typed subtree (ref-prefix; trailing slash required)
16
- akm search "knowledge:" # List every asset of a type
15
+ akm search "memories/projectA/" # Enumerate a subtree (conceptId prefix; trailing slash required)
16
+ akm search "knowledge/" # List every knowledge item
17
+ akm search "team-catalog//" # List every item in one bundle
17
18
  ```
18
19
 
19
20
  | Flag | Values | Default |
20
21
  | --- | --- | --- |
21
- | `--type` | `skill`, `command`, `agent`, `knowledge`, `workflow`, `script`, `memory`, `env`, `secret`, `any` | `any` |
22
- | `--source` | `stash`, `registry`, `both` | `stash` |
22
+ | `--type` | free-form. Built-ins: `skill`, `command`, `agent`, `knowledge`, `workflow`, `script`, `memory`, `lesson`, `task`, `session`, `fact`, `env`, `secret`, `instruction` — plus any adapter-defined type (`website`, `wiki-source`, a wiki `pageKind`). Exact match; an unknown type returns no hits. | `any` |
23
+ | `--from` | `local`, `registry`, `all`, or a configured bundle name | `local` |
23
24
  | `--limit` | number | `20` |
24
- | `--format` | `json`, `jsonl`, `text`, `yaml` | `json` |
25
+ | `--format` | `json`, `jsonl`, `text`, `yaml`, `md`, `html` | `json` |
25
26
  | `--detail` | `brief`, `normal`, `full` | `brief` |
26
27
  | `--shape` | `human`, `agent`, `summary` (`summary` only on `show`) | `human` |
27
28
 
28
- Ref-prefix queries (`"<type>:<prefix>/"` or a bare `"<type>:"`) return a
29
- deterministic listing, not a relevance ranking. Drop the trailing slash and the
30
- same text becomes an ordinary keyword search — resolving a single asset by its
31
- `<subdir>/<name>` id is `akm show`'s job and an explicit `--type` flag wins
32
- over the type parsed from the query.
29
+ Ref-prefix queries (a conceptId prefix ending in `/`, optionally bundle-qualified)
30
+ return a deterministic listing, not a relevance ranking. Drop the trailing slash
31
+ and the same text becomes an ordinary keyword search — resolving a single asset
32
+ by its `<subdir>/<name>` id is `akm show`'s job. Because prefixes match
33
+ conceptIds, you can paste a ref prefix straight from search output back into a
34
+ query.
35
+
36
+ `search` and `curate` results include an additive `tip` field (a plain-text
37
+ suggestion, e.g. "Run `akm index` to build one" or "No matching assets were
38
+ found") whenever the result set is empty; it is omitted when there are hits.
33
39
 
34
40
  ## Curate
35
41
 
@@ -43,7 +49,8 @@ akm curate "review architecture" --type workflow # Restrict to one asset type
43
49
 
44
50
  ## Show
45
51
 
46
- Display an asset by ref. Knowledge assets support view modes as positional arguments.
52
+ Display an asset by ref from the local index and materialized bundle files only.
53
+ On a markdown document `#fragment` selects one section by heading slug.
47
54
 
48
55
  ```sh
49
56
  akm show scripts/deploy.sh # Show script (returns run command)
@@ -51,10 +58,10 @@ akm show skills/code-review # Show skill (returns full content
51
58
  akm show commands/release # Show command (returns template)
52
59
  akm show agents/architect # Show agent (returns system prompt)
53
60
  akm show workflows/ship-release # Show parsed workflow steps
54
- akm show knowledge/guide toc # Table of contents
55
- akm show knowledge/guide section "Auth" # Specific section
56
- akm show knowledge/guide lines 10 30 # Line range
57
- akm show knowledge/my-doc # Show content (local or remote)
61
+ akm show knowledge/guide # Whole document
62
+ akm show knowledge/guide#auth # Just the "Auth" section
63
+ akm show knowledge/guide#nope # Lists the available fragment slugs
64
+ akm show knowledge/my-doc # Show materialized local content
58
65
  ```
59
66
 
60
67
  | Type | Key fields returned |
@@ -63,18 +70,19 @@ akm show knowledge/my-doc # Show content (local or remote)
63
70
  | skill | `content` (full SKILL.md) |
64
71
  | command | `template`, `description`, `parameters` |
65
72
  | agent | `prompt`, `description`, `modelHint`, `toolPolicy` |
66
- | knowledge | `content` (with view modes: `full`, `toc`, `frontmatter`, `section`, `lines`) |
73
+ | knowledge | `content` (whole document, or one section via `#fragment`) |
67
74
  | workflow | `workflowTitle`, `workflowParameters`, `steps` |
68
75
  | memory | `content` (recalled context) |
69
76
  | env | `keys` (key names only — values and comment text never returned) |
70
77
  | secret | `name` only (the whole file is the value — never returned) |
78
+ | lesson | `content` plus `action` (rendered from the `when_to_use` frontmatter) — read both before applying the lesson |
71
79
 
72
80
  ## Capture Knowledge While You Work
73
81
 
74
82
  ```sh
75
- akm remember "Deployment needs VPN access" # Record a memory in your stash
83
+ akm remember "Deployment needs VPN access" # Record a memory in your bundle
76
84
  akm remember --name release-retro < notes.md # Save multiline memory from stdin
77
- akm remember "note" --target my-other-stash # Route write to a named writable stash source
85
+ akm remember "note" --bundle my-other-bundle # Route write to a named writable bundle source
78
86
  akm remember "note" --xref knowledge/auth-flow # Cite provenance in frontmatter xrefs (repeatable; ref must resolve)
79
87
  akm remember "fix" --supersedes memories/old-note # Write a correction AND demote the old asset (beliefState: superseded)
80
88
  akm import ./docs/auth-flow.md # Import a file as knowledge
@@ -82,12 +90,12 @@ akm import ./doc.md --xref knowledge/auth-flow # Merge provenance xrefs into the
82
90
  akm import ./new.md --supersedes knowledge/old # Import a correction AND demote the doc it replaces
83
91
  akm import - --name scratch-notes < notes.md # Import stdin as a knowledge doc
84
92
  akm import https://example.com/docs/auth # Fetch one URL and import it as knowledge
85
- akm import ./doc.md --target my-other-stash # Route import to a named writable stash source
86
- akm workflow create ship-release # Create a workflow asset in the stash
87
- akm workflow validate workflows/foo.yaml # Validate a YAML v2/markdown workflow or ref; lists every error
88
- akm workflow next workflows/ship-release # Start or resume the next workflow step
93
+ akm import ./doc.md --target my-other-bundle # Route import to a named writable bundle source
94
+ akm workflow create ship-release # Create a workflow asset in the bundle
95
+ akm lint --type workflows # Parse and compile every unified markdown workflow; list every error
96
+ akm workflow run workflows/ship-release # Start or resume and execute the workflow
89
97
  akm feedback skills/code-review --positive # Record that an asset helped
90
- akm feedback agents/reviewer --negative # Record that an asset missed the mark
98
+ akm feedback agents/reviewer --negative --reason "wrong framework" # Record why an asset missed the mark
91
99
  akm feedback memories/deployment-notes --positive # Works for memories too
92
100
  akm feedback env/prod --positive # Records env feedback without surfacing values
93
101
  ```
@@ -108,10 +116,10 @@ Install one as a source, then search and read its pages with the ordinary
108
116
  commands — no wiki-specific verbs:
109
117
 
110
118
  ```sh
111
- akm add owner/llm-wiki-repo # Install an LLM Wiki bundle as a source (npm, GitHub, git, or local dir)
119
+ akm bundle add owner/llm-wiki-repo # Install an LLM Wiki bundle as a source (npm, GitHub, git, or local dir)
112
120
  akm search "attention" # Wiki pages surface in ordinary search results
113
121
  akm show team-catalog//pages/attention # Read a page by its bundle//conceptId ref (copy the ref from search)
114
- akm list # Confirm the bundle is installed
122
+ akm bundle list # Confirm the bundle is installed
115
123
  ```
116
124
 
117
125
  Files under the bundle's `raw/` directory and the wiki infrastructure files
@@ -120,8 +128,8 @@ search results. No `--llm` anywhere — akm never reasons about page content.
120
128
 
121
129
  ## Env files
122
130
 
123
- A group of related CONFIGURATION for an app/service in one `.env` file at
124
- `<stash>/env/<name>.env`, sourced/injected wholesale. Key names are
131
+ Configuration an app or service loads together, in one `.env` file at
132
+ `<bundle>/env/<name>.env`, sourced/injected wholesale. Key names are
125
133
  discoverable; values and comment text stay on disk and never reach stdout or
126
134
  the index (comments can contain commented-out credentials). akm does not edit
127
135
  entries — you edit the file with your own editor and akm loads it.
@@ -129,7 +137,7 @@ entries — you edit the file with your own editor and akm loads it.
129
137
  ```sh
130
138
  akm env create prod # Create an empty env file
131
139
  akm env create prod --from-file ./.env # Ingest an existing .env
132
- akm env list # List all env files across stashes with key names
140
+ akm env list # List all env files across bundles with key names
133
141
  akm show env/prod # Inspect key names (never values or comments)
134
142
  akm env run env/prod -- ./deploy.sh # Run a command with the whole .env injected (the safe path)
135
143
  akm env run env/prod -- $SHELL # Open an interactive shell with values injected
@@ -141,31 +149,28 @@ akm env remove env/prod # Delete the env file
141
149
  ## Secrets
142
150
 
143
151
  A single sensitive value used on its own for authentication (a token, key, or
144
- cert) — one file = one value at `<stash>/secrets/<name>`. The ENTIRE file is
152
+ cert) — one file = one value at `<bundle>/secrets/<name>`. The ENTIRE file is
145
153
  the value; only the name is ever surfaced.
146
154
 
147
155
  ```sh
148
156
  printf '%s' "$TOKEN" | akm secret set secrets/deploy-token # Store a single value
149
157
  akm secret list # List secrets (names only)
150
- akm secret path secrets/deploy-token # Print the file path (Docker `_FILE`)
151
158
  akm secret run secrets/deploy-token GITHUB_TOKEN -- gh release create v1.0.0 # Inject into one env var
152
- akm secret remove secrets/deploy-token # Delete the secret
153
159
  ```
154
160
 
155
161
  ## Workflows
156
162
 
157
- Workflows live under `<stash>/workflows/` as markdown or YAML v2 (`.yaml`/`.yml`).
163
+ Workflows live under `<bundle>/workflows/` as unified markdown assets.
158
164
 
159
165
  Ref-based workflow commands are scoped to the current project/worktree/directory,
160
166
  so one active run does not block unrelated directories from starting the same
161
167
  workflow. Direct run-id commands still target the exact run.
162
168
 
163
169
  ```sh
164
- akm workflow template # Print a starter workflow template
170
+ akm workflow create ship-release --print # Print a starter workflow template, without writing
165
171
  akm workflow create ship-release # Scaffold a new workflow asset
166
- akm workflow start workflows/ship-release # Start a new run in the current scope
167
- akm workflow next workflows/ship-release # Advance to the next step (or auto-start) in the current scope
168
- akm workflow complete <run-id> # Mark a step complete and advance
172
+ akm workflow run workflows/ship-release --version=1.2.3 # Start and execute with exact-name parameter flags
173
+ akm workflow run <run-id> --max-retries 2 --timeout 10m # Resume with invocation-wide controls
169
174
  akm workflow status <run-id> # Show the exact run by id
170
175
  akm workflow resume <run-id> # Resume a blocked or failed run
171
176
  akm workflow list # List workflow runs in the current scope
@@ -173,93 +178,97 @@ akm workflow list # List workflow runs in the current
173
178
 
174
179
  ## Clone
175
180
 
176
- Copy an asset to the working stash or a custom destination for editing.
181
+ Copy an asset to the working bundle or a custom destination for editing.
177
182
 
178
183
  ```sh
179
- akm clone <ref> # Clone to working stash
184
+ akm clone <ref> # Clone to working bundle
180
185
  akm clone <ref> --name new-name # Rename on clone
181
186
  akm clone <ref> --dest ./project/.claude # Clone to custom location
182
187
  akm clone <ref> --force # Overwrite existing
183
188
  akm clone "npm:@scope/pkg//scripts/deploy.sh" # Clone from remote package
184
189
  ```
185
190
 
186
- When `--dest` is provided, `akm init` is not required first.
191
+ When `--dest` is provided, `akm bundle create` is not required first.
187
192
 
188
- ## Move / Rename (Experimental)
193
+ ## Move / Rename
189
194
 
190
- Rename an asset within its type directory in the primary writable stash. Prefer
191
- NOT renaming (a ref is chosen once); when a rename is forced, `akm mv` does the
192
- whole convention pass: it moves the file (a memory's `.derived.md` twin moves
193
- together), rewrites inbound refs across the writable stash — body prose,
194
- frontmatter ref lists (`xrefs:`/`refs:`/`supersededBy:`), and fenced examples —
195
- and re-keys the index row in place so the asset's learned ranking history
196
- survives.
195
+ **A rename is delete plus create**: the new path is a new identity, so the
196
+ destination starts with fresh learned state (utility, salience, usage history)
197
+ and inbound refs to the old path dangle. Prefer NOT renaming — a ref is chosen
198
+ once. When a rename is unavoidable:
197
199
 
198
200
  ```sh
199
- akm mv memories/projectA/old-note projectA/new-note # Rename; subdirectories allowed in the new name
200
- akm mv memories/solo memories/renamed-solo # Same-type ref-shaped target also accepted
201
+ mv ~/akm/memories/projectA/old-note.md ~/akm/memories/projectA/new-note.md
202
+ # update any intentional refs (fully qualified: bundle//memories/projectA/old-note)
203
+ akm index
204
+ akm lint # confirms nothing dangles
201
205
  ```
202
206
 
203
- Cross-type targets, existing targets, `../` escapes, non-canonical
204
- source spellings (the error names the canonical ref), `.derived` twin sources
205
- (rename the base — the twin follows), and `.derived`-suffixed target names are
206
- rejected (exit 2, nothing moved). Read-only sources are scanned but never
207
- writtentheir citing files come back in `readOnlyCiters` as manual
208
- follow-ups. Verify with `akm lint` (missing-ref) afterwards.
207
+ A memory's `.derived.md` twin must move with its base. Moving an item between
208
+ bundles is `akm clone` (or a copy) followed by deleting the source both the
209
+ bundle and the concept identity change.
210
+
211
+ There is no `akm mv` the procedure above is the whole story. To carry an
212
+ asset's earned signal (feedback, usage, salience/outcome history) across the
213
+ rename instead of starting fresh, run `bun scripts/rekey-asset-ref.ts <old-ref>
214
+ <new-ref>` from a source clone after the move and before `akm index`
215
+ (`--dry-run` previews the row counts).
209
216
 
210
217
  ## Sync
211
218
 
212
- Commit local changes in a git-backed stash. Behaviour adapts automatically.
219
+ Commit local changes in a git-backed bundle. Behaviour adapts automatically.
213
220
  (`akm save` was the pre-0.8 spelling; it was removed in 0.9.0 — use `akm sync`.)
214
221
 
215
222
  - **No `.git` directory** — no-op (silent skip)
216
- - **Git repo, no remote** — stage and commit only (the default stash always falls here)
223
+ - **Git repo, no remote** — stage and commit only (the default bundle always falls here)
217
224
  - **Git repo, has remote, not writable** — stage and commit only
218
225
  - **Git repo, has remote, `writable: true`** — stage, commit, and push
219
226
  - **Any writable repo with `--no-push`** — stage and commit only
220
227
 
221
228
  ```sh
222
- akm sync # Sync primary stash (timestamp message)
229
+ akm sync # Sync primary bundle (timestamp message)
223
230
  akm sync -m "Add deploy skill" # Sync with explicit message
224
231
  akm sync --no-push # Commit only; never push
225
- akm sync my-skills # Sync a named writable git stash
226
- akm sync my-skills -m "Update patterns" # Sync named stash with message
232
+ akm sync my-skills # Sync a named writable git bundle
233
+ akm sync my-skills -m "Update patterns" # Sync named bundle with message
227
234
  ```
228
235
 
229
- `akm improve` also performs an end-of-run batch commit for git-backed stashes.
236
+ `akm improve` also performs an end-of-run batch commit for git-backed bundles.
230
237
  The `--sync` / `--no-sync` and `--push` / `--no-push` flags control this:
231
238
 
232
239
  ```sh
233
- akm improve # auto-sync per strategy default (default/thorough: on; quick/memory-focus: off)
240
+ akm improve # auto-sync per strategy default (most strategies: on; proactive-maintenance/reflect-distill: off)
234
241
  akm improve --no-sync # skip the end-of-run commit
235
242
  akm improve --no-push # commit but skip push for this run
236
243
  akm improve --sync # force sync even on strategies that disable it
237
244
  ```
238
245
 
239
- Strategy sync defaults: `default` and `thorough` auto-commit + push; `quick` and
240
- `memory-focus` skip sync entirely. Override with `--sync` / `--no-sync` flags.
246
+ Strategy sync defaults: `catchup`, `consolidate`, `default`, `frequent`,
247
+ `graph-refresh`, `memory-focus`, `quick`, and `thorough` auto-commit + push;
248
+ `proactive-maintenance` and `reflect-distill` skip sync entirely. Override
249
+ with `--sync` / `--no-sync` flags.
241
250
 
242
- The `--writable` flag on `akm add` opts a remote git stash into push-on-sync:
251
+ The `--writable` flag on `akm bundle add` opts a remote git bundle into push-on-sync:
243
252
 
244
253
  ```sh
245
- akm add git@github.com:org/skills.git --provider git --name my-skills --writable
254
+ akm bundle add git@github.com:org/skills.git --provider git --name my-skills --writable
246
255
  ```
247
256
 
248
257
  ## Add & Manage Sources
249
258
 
250
259
  ```sh
251
- akm add <ref> # Add a source
252
- akm add @scope/stash # From npm (managed)
253
- akm add owner/repo # From GitHub (managed)
254
- akm add ./path/to/local/stash # Local directory
255
- akm add git@github.com:org/repo.git --provider git --name my-skills --writable
256
- akm config enable skills.sh # Enable the skills.sh registry
257
- akm config disable skills.sh # Disable the skills.sh registry
258
- akm list # List all sources
259
- akm list --kind managed # List managed sources only
260
- akm remove <target> # Remove by id, ref, path, or name
261
- akm update --all # Update all managed sources
262
- akm update <target> --force # Force re-download
260
+ akm bundle add <ref> # Add a source
261
+ akm bundle add @scope/pkg # From npm (managed)
262
+ akm bundle add owner/repo # From GitHub (managed)
263
+ akm bundle add ./path/to/local/bundle # Local directory
264
+ akm bundle add git@github.com:org/repo.git --provider git --name my-skills --writable
265
+ akm registry add https://skills.sh --name skills.sh --provider skills-sh # Add the skills.sh registry
266
+ akm registry remove skills.sh # Remove the skills.sh registry
267
+ akm bundle list # List all sources
268
+ akm bundle list --kind git # Filter by provider (filesystem, git, npm, website)
269
+ akm bundle remove <target> # Remove by id, ref, path, or name
270
+ akm bundle update --all # Update all managed sources
271
+ akm bundle update <target> --force # Force re-download
263
272
  ```
264
273
 
265
274
  ## Registries
@@ -270,10 +279,8 @@ akm registry add <url> # Add a registry
270
279
  akm registry add <url> --name my-team # Add with label
271
280
  akm registry add <url> --provider skills-sh # Specify provider type
272
281
  akm registry remove <url-or-name> # Remove a registry
273
- akm registry search "<query>" # Search all registries
274
- akm registry search "<query>" --assets # Include asset-level results
275
- akm registry build-index # Build the default cache-backed index.json
276
- akm registry build-index --out dist/index.json # Build to a custom path
282
+ akm search "<query>" --from registry # Search all registries (registry search was folded into search)
283
+ akm search "<query>" --from registry --assets # Include asset-level results
277
284
  ```
278
285
 
279
286
  ## Configuration
@@ -289,18 +296,31 @@ akm config path --all # Show all config paths
289
296
  ## Other Commands
290
297
 
291
298
  ```sh
292
- akm init # Initialize working stash
299
+ akm bundle create # Initialize working bundle (scaffold only)
300
+ akm setup # Interactive wizard: bundle + LLM/embedding + agent + registry config
301
+ akm setup --dir ~/custom-bundle # Run the wizard against a custom bundle path
302
+ akm setup --yes # Non-interactive, accepts all defaults
293
303
  akm index # Rebuild search index (metadata enrichment when configured)
294
304
  akm index --full # Full reindex (metadata enrichment when configured)
295
- akm list # List all sources
305
+ akm bundle list # List all sources
306
+ akm lint # Structural lint over the bundle; exits 0 regardless of findings
307
+ akm lint --fix # Auto-fix Tier 1 issues
308
+ akm lint --fail-on-flagged # Exit non-zero when summary.flagged > 0 (CI-friendly)
296
309
  akm upgrade # Upgrade akm using its install method
297
310
  akm upgrade --check # Check for updates
298
311
  akm help migrate 0.6.0 # Print migration notes for a release (or: latest)
299
- akm hints # Print this reference
312
+ akm help bundle # Print options and subcommands for one command
313
+ akm help agents --full # Print this reference
314
+ akm hints # Print this complete agent guide
300
315
  akm completions # Print bash completion script
301
316
  akm completions --install # Install completions
302
317
  ```
303
318
 
319
+ `akm bundle create` only scaffolds the bundle directory and registers it in config;
320
+ `akm setup` additionally walks through embedding/LLM connections, agent
321
+ profiles, sources, and registries. Use `setup` for first-time onboarding,
322
+ `bundle create` when you just need a bare bundle.
323
+
304
324
  ## Proposals & Improvement (0.8.0+)
305
325
 
306
326
  ```sh
@@ -310,28 +330,75 @@ akm proposal show <id> # Render the proposal bo
310
330
  akm proposal diff <ref-or-id> # Diff by ref, UUID, or 8-char prefix
311
331
  akm proposal diff skills/akm-dream # Diff by asset ref
312
332
  akm proposal accept 7c115132 # Accept by UUID prefix
313
- akm proposal accept <id> --target team-stash # Accept to a named writable stash source
333
+ akm proposal accept <id> --target team-bundle # Accept to a named writable bundle source
314
334
  akm proposal reject skills/my-skill --reason "not ready" # Reject by asset ref
315
335
  akm proposal reject <id> --reason "..." # Archive with a reason
316
336
  akm proposal revert <id> # Restore the pre-promotion content
337
+ akm proposal new <type> <name> --task "..." # Agent-author a NEW asset as a proposal
338
+ akm proposal extract --auto # Mine native session files into proposals
339
+ akm proposal extract --type claude-code # Restrict extraction to one harness
317
340
  ```
318
341
 
319
342
  The flat verbs `akm proposals` / `akm show proposal` / `akm accept` /
320
343
  `akm reject` / `akm diff` / `akm revert` were removed in 0.9.0 — use the
321
- `akm proposal <verb>` forms above.
344
+ `akm proposal <verb>` forms above. `akm extract` and `akm propose` moved
345
+ here as `proposal extract` / `proposal new`.
346
+
347
+ ## Scheduled Tasks
348
+
349
+ Tasks are pure-YAML assets at `<bundle>/tasks/<id>.yml`, bound to the OS
350
+ scheduler (cron / launchd / schtasks). The file is the source of truth:
351
+ `task sync` reconciles files to scheduler entries, so editing or deleting a
352
+ file plus one `sync` is a complete workflow.
353
+
354
+ ```sh
355
+ akm task add nightly-improve --schedule "@daily" --command "akm improve --strategy frequent"
356
+ akm task add briefing --schedule "0 9 * * *" --prompt agents/briefer # Agent-target task
357
+ akm task sync # Reconcile task files with the OS scheduler
358
+ akm task sync --rebind # Also re-pin the scheduler's akm binary/spelling
359
+ akm task doctor # Scheduler binding + runtime eligibility diagnosis
360
+ akm task history # Recent run rows (status, timing)
361
+ akm task run <id> # Run one task immediately (works when disabled)
362
+ akm search --type task # Enumerate task assets (there is no `task list`)
363
+ ```
322
364
 
323
- Per-task `timeoutMs`: task markdown frontmatter may set `timeoutMs: null` to
324
- disable the agent kill timer for long-running local-model tasks, or a number
325
- (milliseconds) to override `config.agent.timeoutMs` for that task only.
365
+ To disable a task, set `enabled: false` in its YAML and run `akm task sync`
366
+ (the cron line stays, commented). To remove one, delete the YAML and run
367
+ `akm task sync` the scheduler entry is unbound. Per-task `timeoutMs` in
368
+ the YAML may be `null` (disable the agent kill timer for long local-model
369
+ runs) or a number of milliseconds overriding the selected engine invocation timeout.
370
+
371
+ ## Agent Dispatch
372
+
373
+ ```sh
374
+ akm agent --prompt "summarize open proposals" # Dispatch the configured agent CLI
375
+ akm agent agents/architect --prompt "..." # Embody a bundle agent asset (system prompt, model, tool policy)
376
+ akm agent --workflow workflows/ship-release # Load the task from a workflow asset
377
+ akm agent --model sonnet --prompt "..." # Model override (aliases or exact IDs)
378
+ ```
379
+
380
+ ## Health, Info, and the Event Log
381
+
382
+ ```sh
383
+ akm info # Capabilities, bundle dir, index stats, semantic-search status
384
+ akm health # Runtime diagnostics; exit 0 ok / 4 warn / 1 fail
385
+ akm health --report # Adds accept-rate and graph-coverage metrics
386
+ akm log # Append-only event stream (mutations, feedback, indexing)
387
+ akm log --ref <ref> # One asset's event trail
388
+ akm log --since @offset:<id> # Durable row-id cursor — poll this to follow the stream
389
+ akm log --run <run-id> # Events for one workflow-engine run
390
+ ```
326
391
 
327
392
  ## Output Control
328
393
 
329
- All commands accept `--format`, `--detail`, and `--shape` flags:
394
+ Result-envelope commands accept `--format`, `--detail`, and `--shape` flags:
330
395
 
331
396
  - `--format json` (default) — structured JSON
332
397
  - `--format jsonl` — one JSON object per line (streaming-friendly)
333
398
  - `--format text` — human-readable plain text
334
399
  - `--format yaml` — YAML output
400
+ - `--format md` — Markdown output
401
+ - `--format html` — HTML output
335
402
  - `--detail brief` (default) — compact output
336
403
  - `--detail normal` — adds tags, refs, origins
337
404
  - `--detail full` — includes scores, paths, timing, debug info
@@ -339,4 +406,65 @@ All commands accept `--format`, `--detail`, and `--shape` flags:
339
406
  - `--shape agent` — agent-optimized output: strips non-actionable fields
340
407
  - `--shape summary` — metadata only (no content/template/prompt), under 200 tokens; only valid on `akm show`
341
408
 
342
- Run `akm -h` or `akm <command> -h` for per-command help.
409
+ Run `akm help <command>` or `akm <command> -h` for per-command help. Run
410
+ `akm --help` for the sectioned command overview.
411
+
412
+ ### Piping JSON to jq
413
+
414
+ For any akm command emitting more than ~64KB of JSON, prefer
415
+ `akm <cmd> | cat | jq …` over the direct pipe. A known Bun stdout chunking
416
+ interaction with `jq 1.6` can truncate the stream mid-document on direct
417
+ pipes; `cat` re-buffers and presents a clean pipe to jq. `jq 1.7+` tolerates
418
+ the chunked writes without the workaround.
419
+
420
+ ## Error Shapes and Exit Codes
421
+
422
+ Every command returns JSON by default. On success, the shape is command-specific.
423
+ On failure, every command emits a JSON envelope on **stderr** (stdout is
424
+ normally left empty):
425
+
426
+ ```json
427
+ {"ok": false, "error": "<message>", "code": "<optional machine-readable code>", "hint": "<optional remediation hint>"}
428
+ ```
429
+
430
+ `code` is present for errors akm classifies (e.g. `INVALID_FLAG_VALUE`,
431
+ `ASSET_NOT_FOUND`, `UNKNOWN_COMMAND`); an unexpected internal error omits it.
432
+ The `hint` field is present only when there is an actionable next step (a
433
+ suggested flag or alternate command).
434
+
435
+ Exit codes:
436
+
437
+ | Code | Meaning | Error class |
438
+ | --- | --- | --- |
439
+ | 0 | Success | — |
440
+ | 1 | Not found or command-reported failure | `NotFoundError`, command result |
441
+ | 2 | Usage / bad input | `UsageError` |
442
+ | 4 | Health warning (`akm health` only) | — |
443
+ | 70 | Internal / unclassified error | unexpected throw |
444
+ | 78 | Configuration error | `ConfigError` |
445
+
446
+ To detect failure reliably, check either:
447
+
448
+ - `ok === false` in the parsed JSON response, or
449
+ - a non-zero exit code (`$?` in shell, process exit code in SDK calls)
450
+
451
+ On result-envelope surfaces, both signals are always set consistently. The JSON
452
+ envelope is the preferred signal for agents parsing output programmatically;
453
+ the exit code is the preferred signal for shell scripts. Passthrough surfaces
454
+ below preserve the child's own streams and status instead.
455
+
456
+ `env run`, `secret run`, and `migrate` are process passthroughs and preserve
457
+ the spawned process's exact status. `task run` preserves configuration failures
458
+ as exit 78; successful task results exit 0 and other failures exit 1, while a
459
+ command child's exact status remains in `result.detail.exitCode`. `agent` maps
460
+ a failed dispatch to 1 and retains the child status in its final result envelope.
461
+
462
+ `akm lint` is the one command that does not follow the exit-code table above:
463
+ it exits **0 on every successful run regardless of findings**. Read
464
+ `summary.flagged` to detect issues, or pass `--fail-on-flagged` to opt into
465
+ the CI-friendly "exit 1 when findings exist" behavior:
466
+
467
+ ```sh
468
+ akm lint | jq '.summary.flagged' # always exit 0; read the count
469
+ akm lint --fail-on-flagged && deploy # exit 1 if any flagged issues
470
+ ```