akm-cli 0.9.30 → 0.10.261001-beta

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 (384) hide show
  1. package/CHANGELOG.md +438 -0
  2. package/README.md +10 -10
  3. package/ROADMAP.md +112 -0
  4. package/STABILITY.md +99 -57
  5. package/dist/api-node.mjs +20 -0
  6. package/dist/api.d.ts +23 -0
  7. package/dist/api.js +45 -0
  8. package/dist/assets/hints/cli-hints-full.md +15 -29
  9. package/dist/assets/hints/cli-hints-short.md +2 -2
  10. package/dist/assets/improve-strategies/default.json +3 -3
  11. package/dist/assets/prompts/consolidate-pair.md +9 -7
  12. package/dist/assets/stash-skeleton/README.md +1 -1
  13. package/dist/assets/tasks/improve/akm-improve-consolidate.yml +1 -1
  14. package/dist/cli/shared.js +31 -48
  15. package/dist/cli/unknown-flags.js +6 -43
  16. package/dist/cli.js +8 -34
  17. package/dist/commands/agent/contribute-cli.js +1 -1
  18. package/dist/commands/completions.js +1 -2
  19. package/dist/commands/config-cli.js +5 -28
  20. package/dist/commands/env/env-cli.js +5 -5
  21. package/dist/commands/env/secret-cli.js +2 -2
  22. package/dist/commands/feedback-cli.js +75 -49
  23. package/dist/commands/health/checks.js +41 -16
  24. package/dist/commands/health/plugin-staleness.js +52 -22
  25. package/dist/commands/improve/autonomy-gate.js +5 -3
  26. package/dist/commands/improve/consolidate/chunking.js +3 -10
  27. package/dist/commands/improve/consolidate/continuity-check.js +4 -4
  28. package/dist/commands/improve/consolidate/pair-pass.js +29 -10
  29. package/dist/commands/improve/consolidate.js +10 -65
  30. package/dist/commands/improve/distill/lesson-update.js +91 -0
  31. package/dist/commands/improve/distill-guards.js +1 -43
  32. package/dist/commands/improve/distill.js +148 -21
  33. package/dist/commands/improve/eligibility.js +14 -1
  34. package/dist/commands/improve/extract-cli.js +1 -1
  35. package/dist/commands/improve/extract-prompt.js +17 -7
  36. package/dist/commands/improve/extract.js +5 -7
  37. package/dist/commands/improve/improve-cli.js +125 -118
  38. package/dist/commands/improve/improve-strategies.js +8 -12
  39. package/dist/commands/improve/improve.js +134 -52
  40. package/dist/commands/improve/loop-stages.js +18 -5
  41. package/dist/commands/improve/planner.js +0 -1
  42. package/dist/commands/improve/preparation.js +40 -99
  43. package/dist/commands/improve/proactive-maintenance.js +2 -2
  44. package/dist/commands/improve/reflect-noise.js +3 -55
  45. package/dist/commands/improve/reflect.js +29 -34
  46. package/dist/commands/improve/retrieval-queries.js +37 -0
  47. package/dist/commands/improve/retrieval-scope.js +2 -2
  48. package/dist/commands/improve/salience.js +2 -9
  49. package/dist/commands/improve/session-asset.js +4 -1
  50. package/dist/commands/improve/stage.js +23 -12
  51. package/dist/commands/lint/index.js +5 -20
  52. package/dist/commands/observability-cli.js +3 -9
  53. package/dist/commands/proposal/drain.js +43 -6
  54. package/dist/commands/proposal/proposal-cli.js +11 -31
  55. package/dist/commands/proposal/repository.js +20 -14
  56. package/dist/commands/proposal/validators/proposal-quality-validators.js +0 -3
  57. package/dist/commands/read/knowledge.js +3 -3
  58. package/dist/commands/read/remember-cli.js +0 -13
  59. package/dist/commands/read/search-cli.js +29 -97
  60. package/dist/commands/read/search.js +0 -11
  61. package/dist/commands/read/show.js +0 -19
  62. package/dist/commands/sources/plugin-upgrade.js +164 -101
  63. package/dist/commands/sources/sources-cli.js +1 -15
  64. package/dist/commands/sources/stash-cli.js +6 -14
  65. package/dist/commands/tasks/tasks-cli.js +4 -115
  66. package/dist/commands/workflow/plan.js +11 -33
  67. package/dist/commands/workflow-cli.js +2 -7
  68. package/dist/core/adapter/adapter-ids.js +1 -2
  69. package/dist/core/adapter/adapters/agent-skills-adapter.js +0 -4
  70. package/dist/core/adapter/adapters/akm-adapter.js +9 -48
  71. package/dist/core/adapter/adapters/akm-lint.js +10 -26
  72. package/dist/core/adapter/adapters/akm-metadata.js +2 -72
  73. package/dist/core/adapter/adapters/akm-task-adapter.js +0 -5
  74. package/dist/core/adapter/adapters/akm-workflow-adapter.js +9 -28
  75. package/dist/core/adapter/adapters/dotenv-adapter.js +1 -20
  76. package/dist/core/adapter/adapters/generic-files-adapter.js +0 -10
  77. package/dist/core/adapter/adapters/llm-wiki-adapter.js +0 -4
  78. package/dist/core/adapter/adapters/tool-dir-shared.js +0 -24
  79. package/dist/core/adapter/adapters/website-snapshot-adapter.js +4 -4
  80. package/dist/core/adapter/recognize-match.js +3 -4
  81. package/dist/core/common.js +18 -2
  82. package/dist/core/config/config-schema.js +12 -15
  83. package/dist/core/config/config-types.js +6 -15
  84. package/dist/core/config/config-walker.js +6 -23
  85. package/dist/core/config/config.js +17 -80
  86. package/dist/core/config/engine-semantics.js +7 -3
  87. package/dist/core/config/schema/engines.js +7 -7
  88. package/dist/core/config/schema/improve-processes.js +10 -63
  89. package/dist/core/config/schema/improve.js +2 -21
  90. package/dist/core/config/schema/index-config.js +6 -39
  91. package/dist/core/env-secret-ref.js +2 -45
  92. package/dist/core/errors.js +1 -2
  93. package/dist/core/extra-params.js +2 -86
  94. package/dist/core/file-lock.js +12 -7
  95. package/dist/core/improve-result.js +13 -1
  96. package/dist/core/mutation-target.js +2 -2
  97. package/dist/core/paths.js +4 -0
  98. package/dist/core/recognition-util.js +4 -5
  99. package/dist/core/run-lock.js +1 -1
  100. package/dist/core/subprocess.js +49 -0
  101. package/dist/core/warn.js +21 -4
  102. package/dist/core/write-source.js +3 -3
  103. package/dist/execution/target-ref.js +1 -2
  104. package/dist/indexer/indexer.js +15 -6
  105. package/dist/indexer/passes/memory-inference.js +15 -6
  106. package/dist/indexer/search/db-search.js +49 -36
  107. package/dist/indexer/search/fts-query.js +0 -19
  108. package/dist/indexer/search/ranking.js +29 -1
  109. package/dist/indexer/usage/usage-events.js +21 -16
  110. package/dist/integrations/agent/engine-resolution.js +5 -2
  111. package/dist/integrations/agent/index.js +1 -1
  112. package/dist/integrations/agent/profiles.js +41 -98
  113. package/dist/integrations/agent/request-lowering.js +3 -3
  114. package/dist/integrations/harnesses/aider/index.js +5 -0
  115. package/dist/integrations/harnesses/amazonq/index.js +1 -0
  116. package/dist/integrations/harnesses/claude/config-import.js +2 -3
  117. package/dist/integrations/harnesses/claude/index.js +5 -0
  118. package/dist/integrations/harnesses/codex/index.js +1 -0
  119. package/dist/integrations/harnesses/copilot/index.js +1 -0
  120. package/dist/integrations/harnesses/gemini/index.js +1 -0
  121. package/dist/integrations/harnesses/index.js +18 -39
  122. package/dist/integrations/harnesses/opencode/agent-builder.js +60 -35
  123. package/dist/integrations/harnesses/opencode/config-import.js +121 -52
  124. package/dist/integrations/harnesses/opencode/index.js +22 -0
  125. package/dist/integrations/harnesses/opencode/plugin-layout.js +68 -0
  126. package/dist/integrations/harnesses/opencode/session-log-types.js +12 -0
  127. package/dist/integrations/harnesses/opencode/session-log-v1.js +72 -0
  128. package/dist/integrations/harnesses/opencode/session-log-v2.js +140 -0
  129. package/dist/integrations/harnesses/opencode/session-log.js +104 -115
  130. package/dist/integrations/harnesses/opencode/version.js +98 -0
  131. package/dist/integrations/harnesses/opencode-sdk/{harness.js → index.js} +5 -17
  132. package/dist/integrations/harnesses/opencode-sdk/sdk-runner.js +105 -206
  133. package/dist/integrations/harnesses/opencode-sdk/v1-adapter.js +199 -0
  134. package/dist/integrations/harnesses/opencode-sdk/v2-adapter.js +254 -0
  135. package/dist/integrations/harnesses/opencode-sdk/wire.js +66 -0
  136. package/dist/integrations/harnesses/openhands/index.js +1 -0
  137. package/dist/integrations/harnesses/pi/index.js +1 -0
  138. package/dist/integrations/harnesses/shared.js +2 -0
  139. package/dist/integrations/harnesses/types.js +2 -0
  140. package/dist/llm/client.js +74 -14
  141. package/dist/output/cli-hints.js +1 -1
  142. package/dist/output/context.js +10 -19
  143. package/dist/output/format-exempt.js +5 -8
  144. package/dist/output/shapes/helpers.js +1 -22
  145. package/dist/output/shapes/passthrough.js +0 -1
  146. package/dist/output/shapes.js +3 -31
  147. package/dist/output/stdout.js +5 -1
  148. package/dist/output/text/command-format.js +6 -1
  149. package/dist/output/text/workflow-format.js +4 -22
  150. package/dist/scripts/akm-migrate-node.js +15769 -16731
  151. package/dist/scripts/akm-migrate.js +16339 -17297
  152. package/dist/setup/detect.js +10 -4
  153. package/dist/setup/harness-config-import.js +5 -14
  154. package/dist/setup/setup.js +1 -1
  155. package/dist/setup/steps/tasks.js +12 -13
  156. package/dist/sources/providers/git-stash.js +94 -13
  157. package/dist/storage/repositories/index-utility-repository.js +2 -32
  158. package/dist/storage/repositories/index-vec-repository.js +4 -0
  159. package/dist/storage/repositories/task-history-repository.js +0 -5
  160. package/dist/storage/repositories/workflow-runs-repository.js +5 -15
  161. package/dist/tasks/embedded.js +2 -1
  162. package/dist/tasks/run/run-command-task.js +9 -1
  163. package/dist/tasks/run/run-workflow-task.js +4 -3
  164. package/dist/tasks/run/task-history.js +0 -2
  165. package/dist/tasks/run/task-log.js +38 -1
  166. package/dist/tasks/schedule-gates.js +39 -0
  167. package/dist/tasks/scheduler-binding.js +0 -16
  168. package/dist/tasks/scheduler-sync.js +3 -97
  169. package/dist/tasks/source/bounded-document.js +1 -1
  170. package/dist/tasks/source/task-source-v4.js +2 -12
  171. package/dist/tasks/task-run-reserved-flags.js +2 -31
  172. package/dist/workflows/authoring/authoring.js +6 -6
  173. package/dist/workflows/compile.js +8 -65
  174. package/dist/workflows/exec/child-workflow.js +22 -3
  175. package/dist/workflows/exec/native-executor.js +12 -147
  176. package/dist/workflows/exec/run-workflow.js +31 -103
  177. package/dist/workflows/exec/step-work.js +9 -178
  178. package/dist/workflows/exec/unit-dispatch.js +0 -10
  179. package/dist/workflows/freeze/environment.js +3 -44
  180. package/dist/workflows/freeze/freeze.js +8 -41
  181. package/dist/workflows/freeze/targets/child-workflow.js +27 -63
  182. package/dist/workflows/freeze/targets/command.js +2 -16
  183. package/dist/workflows/freeze/targets/shell.js +0 -2
  184. package/dist/workflows/freeze/task-bindings.js +2 -28
  185. package/dist/workflows/ir/params.js +12 -2
  186. package/dist/workflows/parser.js +82 -232
  187. package/dist/workflows/plan.js +1 -1
  188. package/dist/workflows/renderer.js +10 -19
  189. package/dist/workflows/runtime/run-plan.js +11 -53
  190. package/dist/workflows/runtime/runs.js +4 -27
  191. package/dist/workflows/source-files.js +12 -16
  192. package/dist/workflows/source-semantics.js +1 -93
  193. package/docs/README.md +43 -42
  194. package/docs/agents/README.md +15 -0
  195. package/docs/agents/agent-install.md +14 -0
  196. package/docs/architecture/0.10-process-rules.md +827 -0
  197. package/docs/architecture/README.md +67 -0
  198. package/docs/architecture/adapters.md +258 -0
  199. package/docs/architecture/akm-architecture-decision-history.md +2055 -0
  200. package/docs/architecture/akm-core-principles.md +126 -0
  201. package/docs/architecture/architecture.md +578 -0
  202. package/docs/architecture/comparisons/claude-code-vs-akm-workflows-full.md +550 -0
  203. package/docs/architecture/decisions/0001-no-interpolation-attached-structured-context.md +72 -0
  204. package/docs/architecture/decisions/0002-unit-reuse-and-input-hash-scope.md +142 -0
  205. package/docs/architecture/decisions/0003-child-env-allowlist-and-provenance.md +189 -0
  206. package/docs/architecture/decisions/0004-task-input-contract-and-flag-coercion.md +97 -0
  207. package/docs/architecture/decisions/0005-task-result-vocabulary-and-legacy-read-mapping.md +108 -0
  208. package/docs/architecture/decisions/0006-task-source-version-routing.md +124 -0
  209. package/docs/architecture/decisions/0007-workflow-composition-bounds.md +83 -0
  210. package/docs/architecture/decisions/0008-task-binding-normalization.md +88 -0
  211. package/docs/architecture/decisions/0009-child-run-publication-column-parity.md +80 -0
  212. package/docs/architecture/decisions/0010-driver-protocol-cut.md +36 -0
  213. package/docs/architecture/decisions/0011-engine-run-loop-invariants.md +125 -0
  214. package/docs/architecture/decisions/README.md +62 -0
  215. package/docs/architecture/improvement.md +479 -0
  216. package/docs/architecture/internals/classification.md +154 -0
  217. package/docs/architecture/internals/fresh-host-rebuild-runbook.md +40 -0
  218. package/docs/architecture/internals/functional-contract-patterns.md +340 -0
  219. package/docs/architecture/internals/health-advisories.md +110 -0
  220. package/docs/architecture/internals/improve-workflow.md +719 -0
  221. package/docs/architecture/internals/indexing.md +498 -0
  222. package/docs/architecture/internals/registry-network-boundary.md +57 -0
  223. package/docs/architecture/internals/search.md +248 -0
  224. package/docs/architecture/internals/storage-locations.md +943 -0
  225. package/docs/architecture/persisted-data-compat.md +68 -0
  226. package/docs/architecture/reviews/env-secret-access.md +319 -0
  227. package/docs/architecture/runtime-boundary-design.md +153 -0
  228. package/docs/architecture/specs/0.9.0-close-out-plan.md +361 -0
  229. package/docs/architecture/specs/0.9.0-decisions.md +532 -0
  230. package/docs/architecture/specs/0.9.0-docs-code-drift-register.md +745 -0
  231. package/docs/architecture/specs/0.9.0-open-items-register.md +135 -0
  232. package/docs/architecture/specs/0.9.0-public-api-issue-backlog.md +740 -0
  233. package/docs/architecture/specs/0.9.0-release-surface-review.md +636 -0
  234. package/docs/architecture/specs/agent-command-engine-model-design.md +513 -0
  235. package/docs/architecture/specs/akm-0.9.0-bundle-adapter-spec.md +501 -0
  236. package/docs/architecture/specs/akm-0.9.0-ref-grammar-decision.md +291 -0
  237. package/docs/architecture/specs/akm-format-neutral-bundle-workspace-spec.md +2059 -0
  238. package/docs/architecture/specs/di-seams-plan.md +539 -0
  239. package/docs/architecture/specs/driver-protocol-keep-or-cut.md +275 -0
  240. package/docs/architecture/specs/fact-asset-type.md +142 -0
  241. package/docs/architecture/specs/improve-collapse-churn-detector-design.md +634 -0
  242. package/docs/architecture/specs/okf-support.md +148 -0
  243. package/docs/architecture/specs/ref.md +329 -0
  244. package/docs/architecture/specs/reviews/task-workflow-unification/README.md +72 -0
  245. package/docs/architecture/specs/reviews/task-workflow-unification/findings-consolidated.md +152 -0
  246. package/docs/architecture/specs/reviews/task-workflow-unification/library-eval-alternatives.md +352 -0
  247. package/docs/architecture/specs/reviews/task-workflow-unification/library-eval-bunqueue.md +300 -0
  248. package/docs/architecture/specs/reviews/task-workflow-unification/library-eval-openworkflow.md +402 -0
  249. package/docs/architecture/specs/reviews/task-workflow-unification/opus-review-1.md +758 -0
  250. package/docs/architecture/specs/reviews/task-workflow-unification/opus-review-2.md +645 -0
  251. package/docs/architecture/specs/reviews/task-workflow-unification/opus-review-3.md +602 -0
  252. package/docs/architecture/specs/reviews/task-workflow-unification/panel-r1-adversarial.md +27 -0
  253. package/docs/architecture/specs/reviews/task-workflow-unification/panel-r1-architecture.md +27 -0
  254. package/docs/architecture/specs/reviews/task-workflow-unification/panel-r1-coverage.md +74 -0
  255. package/docs/architecture/specs/reviews/task-workflow-unification/panel-r1-security.md +15 -0
  256. package/docs/architecture/specs/reviews/task-workflow-unification/panel-r2-adversarial.md +132 -0
  257. package/docs/architecture/specs/reviews/task-workflow-unification/panel-r2-verification.md +147 -0
  258. package/docs/architecture/specs/stash-conventions-code-spec.md +275 -0
  259. package/docs/architecture/specs/stash-organization-conventions.md +377 -0
  260. package/docs/architecture/specs/task-workflow-format-unification.md +721 -0
  261. package/docs/architecture/specs/workflow-engine-buy-vs-build.md +231 -0
  262. package/docs/architecture/specs/workflow-format-unification.md +432 -0
  263. package/docs/architecture/testing/manual-testing-checklist.md +3411 -0
  264. package/docs/architecture/testing/okf-v0.2-conformance-runbook.md +924 -0
  265. package/docs/architecture/testing/task-workflow-manual-tests.md +1720 -0
  266. package/docs/architecture/testing/testing-workflow.md +446 -0
  267. package/docs/architecture/workflow-engine.md +223 -0
  268. package/docs/guides/README.md +33 -0
  269. package/docs/guides/author-bundles.md +310 -0
  270. package/docs/guides/author-workflows.md +490 -0
  271. package/docs/guides/bundles.md +323 -0
  272. package/docs/guides/capture-knowledge.md +136 -0
  273. package/docs/guides/claude-code-vs-akm-workflows.md +29 -0
  274. package/docs/guides/concepts.md +93 -0
  275. package/docs/guides/discover-and-load.md +158 -0
  276. package/docs/guides/getting-started.md +240 -0
  277. package/docs/guides/improve-the-library.md +247 -0
  278. package/docs/guides/knowledge-management.md +18 -0
  279. package/docs/guides/recipes/headless-install.md +97 -0
  280. package/docs/guides/recipes/website-source.md +28 -0
  281. package/docs/guides/run-workflows.md +279 -0
  282. package/docs/guides/scheduling.md +131 -0
  283. package/docs/guides/use-with-any-agent.md +174 -0
  284. package/docs/guides/wikis.md +81 -0
  285. package/docs/integration/bundling-akm.md +7 -6
  286. package/docs/maintainers/README.md +19 -0
  287. package/docs/maintainers/curate-workmap.md +335 -0
  288. package/docs/maintainers/eval.md +3 -0
  289. package/docs/maintainers/local-development.md +108 -0
  290. package/docs/maintainers/release-checklist.md +135 -0
  291. package/docs/migration/README.md +4 -2
  292. package/docs/migration/release-notes/0.0.13.md +1 -1
  293. package/docs/migration/release-notes/0.1.0.md +1 -1
  294. package/docs/migration/release-notes/0.10.0.md +201 -0
  295. package/docs/migration/release-notes/0.2.0.md +1 -1
  296. package/docs/migration/release-notes/0.3.0.md +1 -1
  297. package/docs/migration/release-notes/0.5.0.md +1 -1
  298. package/docs/migration/release-notes/0.6.0.md +1 -1
  299. package/docs/migration/release-notes/0.7.0.md +1 -1
  300. package/docs/migration/release-notes/0.7.3.md +2 -2
  301. package/docs/migration/release-notes/0.7.4.md +1 -1
  302. package/docs/migration/release-notes/0.7.5.md +1 -1
  303. package/docs/migration/release-notes/0.8.0.md +1 -1
  304. package/docs/migration/release-notes/0.9.0.md +1 -1
  305. package/docs/migration/release-notes/0.9.14.md +1 -1
  306. package/docs/migration/release-notes/0.9.15.md +1 -1
  307. package/docs/migration/release-notes/0.9.16.md +1 -1
  308. package/docs/migration/release-notes/0.9.17.md +1 -1
  309. package/docs/migration/release-notes/0.9.19.md +1 -1
  310. package/docs/migration/release-notes/0.9.2.md +1 -1
  311. package/docs/migration/release-notes/README.md +28 -31
  312. package/docs/migration/v0.5-to-v0.6.md +759 -0
  313. package/docs/migration/v0.8-to-v0.9.md +1 -1
  314. package/docs/migration/v0.9-to-v0.10.md +507 -0
  315. package/docs/plans/0.9.2-agent-command-workflow-plan.md +423 -0
  316. package/docs/posts/README.md +30 -0
  317. package/docs/posts/akm-command-tour.md +495 -0
  318. package/docs/posts/akm-logo-sized.webp +0 -0
  319. package/docs/posts/belief-aware-memory-12.md +139 -0
  320. package/docs/posts/config-v2-lessons-16.md +191 -0
  321. package/docs/posts/improve-loop-autonomous-10.md +225 -0
  322. package/docs/posts/improve-pipeline-debugging-0803.md +179 -0
  323. package/docs/posts/intro-part-01.md +76 -0
  324. package/docs/posts/intro-part-02.md +221 -0
  325. package/docs/posts/intro-part-03.md +190 -0
  326. package/docs/posts/intro-part-04.md +221 -0
  327. package/docs/posts/llm-mode-reflect-13.md +166 -0
  328. package/docs/posts/openpalm-built-on-akm.md +86 -0
  329. package/docs/posts/progressive-disclosure-06.md +129 -0
  330. package/docs/posts/proposal-safety-net-15.md +112 -0
  331. package/docs/posts/release-0.5.0.md +247 -0
  332. package/docs/posts/release-0.6.0.md +117 -0
  333. package/docs/posts/release-0.7.0.md +159 -0
  334. package/docs/posts/release-0.8.0.md +332 -0
  335. package/docs/posts/scattered-skills-05.md +100 -0
  336. package/docs/posts/task-assets-persistent-workflows-11.md +222 -0
  337. package/docs/posts/team-skills-07.md +198 -0
  338. package/docs/posts/wiki-agent-knowledge-08.md +223 -0
  339. package/docs/posts/workflows-vaults-09.md +321 -0
  340. package/docs/product-surface.md +54 -0
  341. package/docs/reference/README.md +2 -2
  342. package/docs/reference/api.md +65 -0
  343. package/docs/reference/asset-types.md +166 -0
  344. package/docs/reference/bundle-types.md +2 -4
  345. package/docs/reference/cli.md +163 -192
  346. package/docs/reference/configuration.md +101 -20
  347. package/docs/reference/data-and-telemetry.md +2 -2
  348. package/docs/reference/env-and-secrets.md +126 -0
  349. package/docs/reference/memory.md +124 -0
  350. package/docs/reference/refs.md +156 -0
  351. package/docs/reference/registry.md +489 -0
  352. package/docs/reference/supported-formats.md +3 -4
  353. package/docs/reference/tasks.md +12 -19
  354. package/docs/reference/website-sources.md +141 -0
  355. package/docs/reference/workflow-schema.md +89 -317
  356. package/docs/reference/workflows.md +20 -48
  357. package/package.json +23 -16
  358. package/schemas/akm-config.json +2 -243
  359. package/schemas/akm-task.json +2 -3
  360. package/schemas/akm-workflow.json +47 -84
  361. package/dist/assets/improve-strategies/catchup.json +0 -41
  362. package/dist/assets/improve-strategies/proactive-maintenance.json +0 -24
  363. package/dist/assets/improve-strategies/quick.json +0 -17
  364. package/dist/assets/improve-strategies/reflect-distill.json +0 -29
  365. package/dist/assets/improve-strategies/thorough.json +0 -49
  366. package/dist/assets/prompts/retrieval-relevance-judge.md +0 -6
  367. package/dist/assets/tasks/improve/akm-improve-catchup.yml +0 -6
  368. package/dist/assets/tasks/improve/akm-improve-frequent.yml +0 -4
  369. package/dist/assets/tasks/improve/akm-improve-nightly.yml +0 -4
  370. package/dist/cli/retired-commands.js +0 -118
  371. package/dist/commands/improve/retrieval-gate.js +0 -132
  372. package/dist/commands/tasks/validate.js +0 -176
  373. package/dist/core/config/legacy-source-shape-shim.js +0 -117
  374. package/dist/indexer/feedback/utility-policy.js +0 -75
  375. package/dist/integrations/harnesses/ids.js +0 -28
  376. package/dist/tasks/source/task-source-v3-frozen.js +0 -424
  377. package/dist/tasks/source/task-to-v4.js +0 -863
  378. package/dist/workflows/exec/worktree.js +0 -372
  379. package/dist/workflows/freeze/child-output-references.js +0 -83
  380. package/dist/workflows/freeze/identity.js +0 -22
  381. package/dist/workflows/freeze/targets/script.js +0 -50
  382. package/dist/workflows/freeze/targets/task.js +0 -124
  383. package/dist/workflows/github-yaml.js +0 -506
  384. package/dist/workflows/runtime/run-outputs.js +0 -80
@@ -0,0 +1,489 @@
1
+ # Registry
2
+
3
+ A registry is a searchable source of bundles that `akm` can discover and
4
+ install from. The default registry type is a static JSON index, but akm
5
+ supports pluggable **registry providers** that can connect to different
6
+ ecosystems (e.g. skills.sh).
7
+
8
+ ## Official Registry
9
+
10
+ akm ships with the official registry pre-configured:
11
+
12
+ ```text
13
+ https://raw.githubusercontent.com/itlackey/akm-registry/main/index.json
14
+ ```
15
+
16
+ The [akm-registry](https://github.com/itlackey/akm-registry) repo publishes
17
+ a static `index.json` (v3 format). It merges three sources:
18
+
19
+ - npm packages with the `akm-stash` keyword
20
+ - GitHub repos with the `akm-stash` topic
21
+ - `manual-entries.json` for curated additions and overrides
22
+
23
+ To submit a bundle, either tag your repo/package as above (auto-discovery)
24
+ or open a pull request against `manual-entries.json` for a curated entry.
25
+
26
+ ### Official onboarding bundle
27
+
28
+ In addition to the registry, akm has an official onboarding bundle —
29
+ [itlackey/akm-stash](https://github.com/itlackey/akm-stash) — that ships
30
+ skills, commands, knowledge, workflows, and a librarian subagent for
31
+ working with akm itself. Install it with:
32
+
33
+ ```bash
34
+ akm bundle add github:itlackey/akm-stash
35
+ akm index
36
+ akm show skills/akm-quickstart
37
+ ```
38
+
39
+ ## Managing Registries
40
+
41
+ Use the `akm registry` subcommand group to manage configured registries:
42
+
43
+ ```bash
44
+ # List configured registries
45
+ akm registry list
46
+
47
+ # Add a third-party registry (static index)
48
+ akm registry add https://example.com/registry/index.json --name my-team
49
+
50
+ # Add a skills.sh registry
51
+ akm registry add https://skills.sh --name skills.sh --provider skills-sh
52
+
53
+ # Remove a registry by URL or name
54
+ akm registry remove my-team
55
+ ```
56
+
57
+ Registries are stored in the `registries` array in your config file:
58
+
59
+ ```jsonc
60
+ {
61
+ "registries": [
62
+ // Static index (default provider)
63
+ { "url": "https://raw.githubusercontent.com/itlackey/akm-registry/main/index.json", "name": "official" },
64
+ { "url": "https://example.com/registry/index.json", "name": "my-team", "enabled": true },
65
+ // skills.sh provider
66
+ { "url": "https://skills.sh", "name": "skills.sh", "provider": "skills-sh" }
67
+ ]
68
+ }
69
+ ```
70
+
71
+ Each entry supports:
72
+
73
+ | Field | Type | Default | Description |
74
+ | --- | --- | --- | --- |
75
+ | `url` | string | (required) | URL of the registry index or API base |
76
+ | `name` | string | -- | Human-friendly label |
77
+ | `enabled` | boolean | `true` | Whether this registry is active |
78
+ | `provider` | string | `"static-index"` | Provider type (see [Registry Providers](#registry-providers)) |
79
+ | `options` | object | -- | Provider-specific options (passed through to the provider) |
80
+
81
+ Set `enabled: false` to temporarily disable a registry without removing it.
82
+
83
+ Registry URLs must be credential-free: AKM rejects URL userinfo such as
84
+ `https://user:password@example.com/index.json` before it can be saved. The
85
+ built-in `static-index` and `skills-sh` providers do not currently support
86
+ authenticated registry requests, including through `options`; publish the
87
+ index/API at a credential-free HTTPS endpoint or place an authenticated proxy
88
+ in front of it. AKM does not translate URL credentials into request headers.
89
+
90
+ Registry HTTP requests must also resolve to public network addresses. AKM
91
+ rejects loopback, private, link-local, metadata, and reserved destinations on
92
+ the initial URL and every redirect hop. This intentionally means a
93
+ `static-index` or `skills-sh` registry hosted only on localhost or an intranet
94
+ is no longer reachable in 0.9.2; publish it at a publicly routable HTTPS
95
+ endpoint. The only private-network compatibility exception is an npm mirror
96
+ explicitly selected with `AKM_NPM_REGISTRY`; metadata and tarball requests may
97
+ reach that configured mirror, but not link-local or cloud-metadata addresses.
98
+ See [Registry network boundary](../architecture/internals/registry-network-boundary.md)
99
+ for the complete policy and DNS guarantee.
100
+
101
+ ## Searching Registries
102
+
103
+ Search registries alongside or instead of the local bundle:
104
+
105
+ ```bash
106
+ # Search registries only
107
+ akm search "deploy" --from registry
108
+
109
+ # Search both the local bundle library and registries
110
+ akm search "deploy" --from all
111
+
112
+ # Include asset-level results from v3 indexes
113
+ akm search "deploy" --from registry --assets
114
+ ```
115
+
116
+ ### Search Results
117
+
118
+ Each registry hit includes:
119
+
120
+ | Field | Description |
121
+ | --- | --- |
122
+ | `type` | Always `"registry"` |
123
+ | `name` | Bundle display name |
124
+ | `id` | Unique identifier (e.g. `npm:@scope/bundle`) |
125
+ | `description` | Summary from the registry |
126
+ | `action` | Ready-to-run next step such as `akm bundle add ... -> then search again` |
127
+ | `quality` | Optional provenance marker — `"generated"`, `"curated"`, or `"proposed"`. Replaces the legacy `curated` boolean removed in 0.7.0 |
128
+
129
+ Use `--detail full` to include ranking metadata like `score`.
130
+
131
+ ### The `--assets` Flag
132
+
133
+ When a registry publishes a v3 index (see below), `akm search --from
134
+ registry` can return individual asset-level hits in addition to bundle-level
135
+ hits. Pass `--assets` to enable this:
136
+
137
+ ```bash
138
+ akm search "code review" --from registry --assets
139
+ ```
140
+
141
+ Asset hits include `assetType`, `assetName`, `description`, and the parent
142
+ `stash` information, so you can install the right bundle and immediately know
143
+ which asset to use.
144
+
145
+ ## Discovery Filtering
146
+
147
+ Not every npm package or GitHub repo is an akm bundle. To keep results
148
+ relevant, the registry enforces tag-based filtering:
149
+
150
+ - **npm** -- Only packages whose `keywords` array includes `"akm-stash"` appear in search results.
151
+ - **GitHub** -- Only repositories with the topic `akm-stash` appear in search results.
152
+
153
+ > **0.6.0 breaking change:** `akm-cli >= 0.6.0` indexes only the
154
+ > `akm-stash` keyword / topic. The pre-0.6.0 `akm-kit` and `agentikit`
155
+ > keywords/topics are **not** honored as fallbacks. Publishers migrating
156
+ > from 0.5.x must add the new tag — see the
157
+ > [migration guide](../migration/v0.5-to-v0.6.md) for the step-by-step
158
+ > publisher checklist.
159
+
160
+ If you are publishing a bundle, add these tags so it can be discovered:
161
+
162
+ ```jsonc
163
+ // package.json
164
+ {
165
+ "keywords": ["akm-stash", "your-other-tags"]
166
+ }
167
+ ```
168
+
169
+ For GitHub repos, add topics via the repository settings page or the
170
+ `gh repo edit --add-topic akm-stash` command.
171
+
172
+ ## Installing
173
+
174
+ Install a bundle with `akm bundle add` using any supported ref format:
175
+
176
+ ```bash
177
+ # npm package
178
+ akm bundle add npm:@scope/my-bundle
179
+
180
+ # npm package (shorthand)
181
+ akm bundle add @scope/my-bundle
182
+
183
+ # GitHub repo
184
+ akm bundle add github:owner/repo
185
+
186
+ # GitHub repo at a specific tag or branch
187
+ akm bundle add github:owner/repo#v1.2.0
188
+
189
+ # GitHub URL
190
+ akm bundle add https://github.com/owner/repo
191
+
192
+ # Any git repo (GitLab, Bitbucket, Gitea, self-hosted, etc.)
193
+ akm bundle add git+https://gitlab.com/org/bundle
194
+ akm bundle add git+https://gitlab.com/org/bundle#v1.0
195
+ akm bundle add git+ssh://git@gitlab.com/org/bundle.git
196
+
197
+ # URLs on known git hosts are treated as git repos
198
+ akm bundle add https://gitlab.com/org/my-bundle
199
+
200
+ # Local directory (path or file: URI)
201
+ akm bundle add ./path/to/local/bundle
202
+ akm bundle add file:../relative/bundle
203
+ akm bundle add file:///absolute/path/to/bundle
204
+ ```
205
+
206
+ ### What Happens During Install
207
+
208
+ 1. **Ref parsing** -- The ref is classified as npm, GitHub/git, website, or
209
+ local directory. Known git hosts and `.git` URLs are git sources; other
210
+ HTTP(S) URLs are website sources.
211
+ 2. **Artifact resolution** -- For npm, the latest (or requested) version
212
+ tarball URL is resolved. GitHub/git refs prefer a shallow clone at the
213
+ resolved revision so normal git credentials work; GitHub API tarballs are a
214
+ fallback when clone resolution is unavailable.
215
+ 3. **Download and extract** -- The tarball is downloaded (or repo cloned) to a
216
+ cache directory under `~/.cache/akm/registry/` and extracted securely
217
+ (path traversal is rejected).
218
+ 4. **Security audit** -- Before install completes, the extracted bundle's
219
+ `env`/`secret` asset **key names** are checked against a denylist of
220
+ process-execution-hijacking variables -- dynamic-linker hooks
221
+ (`LD_PRELOAD`, `DYLD_INSERT_LIBRARIES`, ...), `PATH`, shell/runtime startup
222
+ hooks (`BASH_ENV`, `PROMPT_COMMAND`, `NODE_OPTIONS`, `PYTHONSTARTUP`, ...),
223
+ and interactive-tool overrides (`EDITOR`, `PAGER`, `GIT_SSH_COMMAND`, ...).
224
+ `akm bundle add` **blocks the install** when a dangerous key is present unless
225
+ `--allow-dangerous-env-keys` is set (or you confirm at an interactive prompt).
226
+ This is a **key-name audit only** (plus the path-traversal rejection in step
227
+ 3) -- akm does **not** scan source files, prompts, metadata, or install
228
+ scripts for prompt-injection phrases, shell pipes, or lifecycle hooks.
229
+ 5. **Bundle root detection** -- The extracted contents are scanned for asset
230
+ type directories (`scripts/`, `skills/`, etc.) or a `.stash/` marker. If the
231
+ bundle nests its bundle under an `opencode/` subdirectory, that is detected
232
+ automatically.
233
+ 6. **Selective include** -- If the package's `package.json` contains an
234
+ `akm.include` array, only the listed paths are copied into the
235
+ install cache. This lets a bundle ship a subset of its repo as the bundle.
236
+ 7. **Config registration** -- The desired source descriptor (`path`/`git`/
237
+ `website`/`npm`, `writable`, the original `registryId`) is saved to
238
+ `config.bundles.<key>`. Resolved cache state -- id, source, ref, resolved
239
+ version/revision, integrity, local materialized root, and install
240
+ timestamp -- is recorded separately in `<dataDir>/akm.lock`, never
241
+ duplicated into `config.json`.
242
+ 8. **Re-index** -- `akm index` runs automatically so the new assets appear in
243
+ search immediately.
244
+
245
+ ### Selective Include
246
+
247
+ A bundle can declare which paths to include via `package.json`:
248
+
249
+ ```jsonc
250
+ {
251
+ "akm": {
252
+ "include": [
253
+ "scripts",
254
+ "skills",
255
+ "commands"
256
+ ]
257
+ }
258
+ }
259
+ ```
260
+
261
+ Only the listed paths are copied into the install cache. Paths must be
262
+ relative to the package root and cannot escape it. The `.git` directory is
263
+ always excluded.
264
+
265
+ ## Managing Managed Sources
266
+
267
+ ```bash
268
+ # List all managed sources with their status
269
+ akm bundle list
270
+
271
+ # Update a specific bundle to its latest version
272
+ akm bundle update npm:@scope/my-bundle
273
+
274
+ # Update all managed sources
275
+ akm bundle update --all
276
+
277
+ # Force fresh download even if version is unchanged
278
+ akm bundle update npm:@scope/my-bundle --force
279
+ akm bundle update --all --force
280
+
281
+ # Remove a bundle
282
+ akm bundle remove npm:@scope/my-bundle
283
+ ```
284
+
285
+ ### Cloning Assets
286
+
287
+ Managed sources are cache-managed and may be overwritten by `akm bundle update`.
288
+ To edit an asset from a managed source, clone it into the working bundle:
289
+
290
+ ```bash
291
+ akm clone "npm:@scope/my-bundle//scripts/deploy.sh"
292
+
293
+ # Clone with a new name
294
+ akm clone "npm:@scope/my-bundle//scripts/deploy.sh" --name my-deploy.sh
295
+ ```
296
+
297
+ The cloned asset lives in the working bundle and takes priority over the
298
+ installed version in search and show.
299
+
300
+ Use `--dest` to clone to a custom directory instead of the working bundle:
301
+
302
+ ```bash
303
+ # Deploy a script directly into a project's .claude directory
304
+ akm clone "npm:@scope/my-bundle//scripts/deploy.sh" --dest ./project/.claude
305
+ ```
306
+
307
+ The type subdirectory (`scripts/`, `skills/`, etc.) is appended automatically,
308
+ so the example above produces `./project/.claude/scripts/deploy.sh`.
309
+
310
+ **Remote clone without install:** If the origin in the ref points to a
311
+ package that is not yet installed, `akm clone` fetches it to the cache
312
+ automatically. Unlike `akm bundle add`, this does **not** register the package as
313
+ a managed source -- it only extracts the single requested asset.
314
+
315
+ ## Search Priority
316
+
317
+ `akm search` and `akm show` query a single local FTS5 index that covers
318
+ every configured source's directory. There is no fixed lookup order —
319
+ results are ranked by relevance and utility, and precedence is expressed
320
+ through ranking rather than a per-source fan-out (see
321
+ [concepts.md](../guides/concepts.md#3-akm-builds-a-local-index-and-uses-progressive-disclosure)).
322
+
323
+ When two sources contain an asset with the same name, the working bundle
324
+ typically wins by convention because its files are usually more recent.
325
+ Use `akm clone` to copy an asset into your working bundle for local
326
+ editing — your edits then override the upstream copy in subsequent
327
+ searches.
328
+
329
+ ## Registry Providers
330
+
331
+ akm uses a pluggable provider system for registries. Each registry entry can
332
+ specify a `provider` type that determines how it is searched. When omitted,
333
+ the provider defaults to `"static-index"`.
334
+
335
+ Registries discover installable source bundles. They never store
336
+ asset content directly — installing a bundle creates a regular `bundles`
337
+ entry that the indexer walks like any other source.
338
+
339
+ ### Built-in Providers
340
+
341
+ #### `static-index` (default)
342
+
343
+ Fetches a static JSON v3 index from the configured URL and performs
344
+ client-side scoring. The index is cached locally with a 1-hour TTL. There is
345
+ currently no fallback to a stale cache row past that TTL on fetch failure —
346
+ `fetchCachedJson` (`src/storage/repositories/registry-index-cache-repository.ts`) only
347
+ consults the cache row that its own `getRegistryIndexCache` lookup returned
348
+ under the same TTL, and that lookup returns nothing once the row is older
349
+ than `maxAgeMs`, so a fetch failure after the TTL expires surfaces as an
350
+ error rather than serving older data.
351
+
352
+ ```bash
353
+ akm registry add https://example.com/registry/index.json --name my-team
354
+ ```
355
+
356
+ #### `skills-sh`
357
+
358
+ Searches the [skills.sh](https://skills.sh) registry using its server-side
359
+ search API. Results are skills from GitHub repositories indexed by skills.sh.
360
+
361
+ ```bash
362
+ akm registry add https://skills.sh --name skills.sh --provider skills-sh
363
+ ```
364
+
365
+ Key behaviors:
366
+ - Server-side search via `GET {url}/api/search?q={query}&limit={limit}`
367
+ - Hit IDs are namespaced with `"skills-sh:"` prefix to avoid collisions
368
+ - Scores are normalized from install counts (0-1 range)
369
+ - Per-query response caching with 15-minute TTL
370
+ - No stale-cache fallback past that TTL on network failure — same shared
371
+ cache mechanism as `static-index`, see the note there
372
+ - No authenticated-registry transport is currently supported
373
+ - Toggle on/off via `akm registry add https://skills.sh --name skills.sh --provider skills-sh` / `akm registry remove skills.sh` (the bare `akm enable` / `akm disable` aliases and `akm config enable|disable` were removed in 0.9.0 — use `akm registry add|remove`, the general mechanism)
374
+
375
+ To install a skill found via skills.sh, use the `ref` field (GitHub
376
+ `owner/repo`) with `akm bundle add`:
377
+
378
+ ```bash
379
+ akm bundle add vercel-labs/agent-skills
380
+ ```
381
+
382
+ ## Hosting Your Own Registry
383
+
384
+ A registry is a static JSON file conforming to the registry index schema.
385
+ You can host one on any static file server, CDN, or GitHub Pages.
386
+
387
+ Minimal example:
388
+
389
+ ```json
390
+ {
391
+ "version": 3,
392
+ "updatedAt": "2026-03-12T00:00:00Z",
393
+ "stashes": [
394
+ {
395
+ "id": "github:your-org/deploy-bundle",
396
+ "name": "deploy-bundle",
397
+ "description": "Deployment scripts and skills",
398
+ "ref": "your-org/deploy-bundle",
399
+ "source": "github",
400
+ "tags": ["deploy", "infrastructure"],
401
+ "assetTypes": ["script", "skill", "memory"]
402
+ }
403
+ ]
404
+ }
405
+ ```
406
+
407
+ Host the file at a stable URL and have team members add it:
408
+
409
+ ```bash
410
+ akm registry add https://your-server.com/akm-registry/index.json --name team
411
+ ```
412
+
413
+ To generate the index automatically, use the maintainer script in the akm
414
+ repository:
415
+
416
+ ```bash
417
+ bun scripts/build-registry-index.ts --out dist/index.json
418
+ ```
419
+
420
+ This does not scan the current directory. It fans out to three discovery
421
+ sources -- a manually curated `manual-entries.json`, an npm registry keyword
422
+ search for `akm-stash`, and a GitHub topic search for `akm-stash` -- and
423
+ deduplicates the results into a v3 index with bundle and asset entries. You
424
+ can also use the tooling in the
425
+ [akm-registry](https://github.com/itlackey/akm-registry) repository used by the
426
+ official registry.
427
+
428
+ ## Registry Index v3
429
+
430
+ Version 3 of the registry index schema is the only format `akm-cli >=
431
+ 0.6.0` parses. It carries an `assets` array on each bundle entry so
432
+ clients can perform asset-level search without installing the bundle
433
+ first.
434
+
435
+ ```json
436
+ {
437
+ "version": 3,
438
+ "updatedAt": "2026-03-12T00:00:00Z",
439
+ "stashes": [
440
+ {
441
+ "id": "npm:@scope/my-bundle",
442
+ "name": "my-bundle",
443
+ "description": "Scripts and skills for deployment",
444
+ "ref": "@scope/my-bundle",
445
+ "source": "npm",
446
+ "tags": ["deploy"],
447
+ "assetTypes": ["script", "skill", "memory"],
448
+ "assets": [
449
+ { "type": "script", "name": "deploy.sh", "description": "Deploy to production" },
450
+ { "type": "skill", "name": "code-review", "description": "Structured code review process" }
451
+ ]
452
+ }
453
+ ]
454
+ }
455
+ ```
456
+
457
+ Each asset entry supports:
458
+
459
+ | Field | Required | Description |
460
+ | --- | --- | --- |
461
+ | `type` | yes | AKM's own asset type keys (`skill`, `command`, `agent`, `knowledge`, `workflow`, `script`, `memory`, `env`, `secret`, `lesson`, `task`, `session`, `fact`, `instruction` — the authority is `KNOWN_TYPES` in `src/core/recognition-util.ts`), or a foreign/adapter-owned type (e.g. an `llm-wiki` page kind). This field is not a strict validation gate, so an unrecognized type still round-trips. Note: `wiki` was retired as an AKM-owned type — the LLM Wiki structure now lives in the first-class `llm-wiki` adapter, whose page kinds are foreign types rather than an AKM-owned `wiki` type. |
462
+ | `name` | yes | Asset name |
463
+ | `description` | no | One-line summary |
464
+ | `tags` | no | Searchable keywords |
465
+
466
+ The 0.6.0 release dropped support for the legacy v1 / v2 indexes;
467
+ publishers must regenerate `index.json` with the
468
+ `scripts/build-registry-index.ts` maintainer script
469
+ or the [akm-registry](https://github.com/itlackey/akm-registry) tooling
470
+ (see the [v0.5 → v0.6 migration guide](../migration/v0.5-to-v0.6.md)). akm
471
+ treats unknown fields inside a v3 entry as forward-compatible.
472
+
473
+ ## Cache Layout
474
+
475
+ Installed bundles are cached under `~/.cache/akm/registry/`
476
+ (`buildInstallCacheDir`, `src/sources/providers/provider-utils.ts`):
477
+
478
+ ```
479
+ ~/.cache/akm/registry/
480
+ npm-@scope-my-bundle/
481
+ 1.2.3/ # the resolved version — reused across installs
482
+ artifact.tar.gz # Downloaded archive
483
+ extracted/ # Extracted contents
484
+ selected/ # Subset from akm.include (if applicable)
485
+ ```
486
+
487
+ The version segment is the resolved version string for `npm`/`git` sources
488
+ (so re-installing the same version reuses the cache), or a random UUID for
489
+ `local` sources, which are always isolated per install.
@@ -20,7 +20,7 @@ one explicitly. 0.9.0 recognizes 11 formats.
20
20
  | `claude` | `CLAUDE.md` as `instruction`; `commands/`, `agents/`, `skills/<name>/SKILL.md` as their matching types | Root `CLAUDE.md` plus at least one of `commands/`, `agents/`, `skills/` | Read-only | Point AKM at an existing Claude Code `.claude` tool directory |
21
21
  | `opencode` | Same shape as `claude`, rooted on `AGENTS.md` | `opencode.json`/`opencode.jsonc`, or root `AGENTS.md` plus a canonical plural tool directory | Read-only | Point AKM at an existing OpenCode `.opencode` tool directory |
22
22
  | `dotenv` | `env` entries as key names only (never values); `secret` entries as file names only (never content) | Every top-level directory is `env/` and/or `secrets/`, with at least one present | Writable, narrowly — `akm env create`/`env remove`/`secret set` only | A standalone env/secrets-only bundle |
23
- | `akm-workflow` | Workflow steps, name, description, tags | Either a top-level `.md` file with explicit `type: workflow` frontmatter or a peer top-level GitHub-shaped `.yml` workflow | Writable — `akm workflow create` only | A standalone workflow bundle, one workflow per file |
23
+ | `akm-workflow` | Workflow steps, name, description, tags | A top-level `.md` file with explicit `type: workflow` frontmatter | Writable — `akm workflow create` only | A standalone workflow bundle, one workflow per file |
24
24
  | `akm-task` | Task source v4 (`version: 4`) `.yml` sources as type `task`, including local schedules/manual triggers and the exact authored YAML | A top-level `.yml` file accepted by the task source v4 parser (`version: 4`, one `uses`/`run` executable selector, optional top-level `schedule:`) | Read-only | A standalone scheduled-task bundle; `.yaml` is rejected |
25
25
  | `llm-wiki` | `raw/` sources as `wiki-source`; `pages/` as their `pageKind` (default `note`), with resolved cross-reference links | Root `schema.md` plus a `pages/` directory | Read-only (author by writing directly into `pages/`; AKM indexes and serves the result) | [Karpathy's LLM-wiki pattern](https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f) — agent-authored reference wikis |
26
26
  | `akm` (native) | AKM's own 14 native asset types — see [Asset Types](https://github.com/itlackey/akm/blob/main/docs/reference/asset-types.md) | A `.stash` marker directory, or two-plus native subdirectories, or the fallback when nothing else matches | Fully writable — every AKM-native write command | Your working bundle, and any bundle authored as AKM's own format |
@@ -50,9 +50,8 @@ indexed, scheduled, or executed. See [Tasks](tasks.md).
50
50
 
51
51
  ## Workflow formats
52
52
 
53
- Workflow sources are the one intentional peer-format case inside the native
54
- AKM workspace: workflows may be `.md` or `.yml`, and both compile to the same
55
- source IR. Task sources remain `.yml` only, authored as task source v4. See
53
+ Workflow sources are `.md` and compile to source IR. Task sources are `.yml`
54
+ only, authored as task source v4. See
56
55
  [Tasks](tasks.md) and [Workflow Schema](workflow-schema.md).
57
56
 
58
57
  ## Why this matters
@@ -251,10 +251,9 @@ redact: [TOKEN]
251
251
  consumer — a native run's status comes from its exit code alone — so
252
252
  declaring `output:` on them fails parsing with `TASK_SOURCE_INVALID`
253
253
  instead of silently recording a contract nothing enforces.
254
- - A task source v4 document **can** be the target of a workflow step's
255
- `uses: tasks/<ref>` — see the
256
- [GitHub-shaped YAML subset](workflow-schema.md#github-shaped-yaml-subset)
257
- for how a workflow step's `with:` binds a v4 task's declared `inputs:`.
254
+ - A workflow step cannot target a task: the GitHub-shaped YAML workflow format
255
+ that carried `uses: tasks/<ref>` was removed in 0.10. A task runs a workflow
256
+ (`uses: workflows/<ref>`), not the other way round.
258
257
 
259
258
  ### Input flags
260
259
 
@@ -280,10 +279,8 @@ workflow step's own composition uses); for every other target — `run:`
280
279
  shell, `scripts/<ref>`, `commands/<ref>` — the values are validated and then
281
280
  **discarded**. `akm task run`'s own flags never populate an
282
281
  `AKM_TASK_INPUTS` environment variable or a `## Task inputs` prompt block.
283
- Those two surfaces are a *different* delivery path: they exist only when a
284
- **workflow step** composes this task through `uses: tasks/<ref>` and a
285
- `with:` binding, resolved fresh for that step's own dispatch — see
286
- [`with:` on a task-composed step](workflow-schema.md#github-shaped-yaml-subset).
282
+ Those two surfaces existed only for a workflow step composing a task through
283
+ `uses: tasks/<ref>`, which was removed in 0.10.
287
284
  A scheduled run (`schedule[].inputs`, above) reaches the target through this
288
285
  same `akm task run` path, so it inherits the identical rule: delivered as
289
286
  params for a `workflows/<ref>` target, otherwise validated and discarded.
@@ -401,21 +398,17 @@ for full before/after examples and recovery guidance.
401
398
 
402
399
  ## Operations
403
400
 
404
- - `akm search --type task` (or its alias `akm task list`) and
401
+ - `akm search --type task` and
405
402
  `akm show tasks/<id>` inspect task assets.
406
403
  - `akm task explain <ref>` prints a task's declared inputs, resolved target,
407
404
  effective execution settings, and schedule bindings without running
408
405
  anything — see [`akm task explain`](#akm-task-explain) above.
409
- - `akm task validate <path>` parses one task file by filesystem path (the
410
- file need not live in a configured bundle) and reports the same
411
- `valid`/`blocked`/`invalid`/`not-a-task` diagnostic
412
- `akm task sync` would produce for it — including sync's own cron-dialect
413
- check and its per-schedule-entry input-contract check — without touching
414
- the scheduler and without requiring a configured engine, even for a
415
- command-kind task. The envelope's own `sourceVersion` field names the
416
- file's declared schema version. A version 2/3 file, and a `version: 4`
417
- file still carrying a retired `schedule[].enabled`, report `blocked`
418
- (exit 1) naming `akm migrate apply`, which converts them.
406
+ - `akm lint --type tasks` reports what `akm task sync` would refuse for a task
407
+ file: a document that does not parse as task source v4, a version 2/3 file or
408
+ a `version: 4` file still carrying a retired `schedule[].enabled` (the finding
409
+ names `akm migrate apply`, which converts them), a cron the local scheduler
410
+ backend cannot parse, and a schedule entry whose `inputs` leave a required
411
+ input unsatisfied. It is read-only and needs no configured engine.
419
412
  - `akm task add` validates a task source v4 document, writes it, adds its ref
420
413
  to local scheduler activation, and syncs its bundle. `--params` renders
421
414
  typed `inputs:` declarations instead of a `with:` bag; `--schedule` is