akm-cli 0.9.29 → 0.9.31

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 (162) hide show
  1. package/CHANGELOG.md +41 -0
  2. package/README.md +10 -10
  3. package/ROADMAP.md +112 -0
  4. package/dist/commands/improve/improve-cli.js +33 -12
  5. package/dist/commands/sources/plugin-upgrade.js +46 -23
  6. package/dist/core/file-lock.js +10 -1
  7. package/dist/llm/client.js +33 -3
  8. package/dist/scripts/akm-migrate-node.js +5 -1
  9. package/dist/scripts/akm-migrate.js +5 -1
  10. package/docs/README.md +42 -41
  11. package/docs/agents/README.md +15 -0
  12. package/docs/agents/agent-install.md +14 -0
  13. package/docs/architecture/README.md +67 -0
  14. package/docs/architecture/adapters.md +272 -0
  15. package/docs/architecture/akm-architecture-decision-history.md +2055 -0
  16. package/docs/architecture/akm-core-principles.md +126 -0
  17. package/docs/architecture/architecture.md +579 -0
  18. package/docs/architecture/comparisons/claude-code-vs-akm-workflows-full.md +550 -0
  19. package/docs/architecture/decisions/0001-no-interpolation-attached-structured-context.md +72 -0
  20. package/docs/architecture/decisions/0002-unit-reuse-and-input-hash-scope.md +142 -0
  21. package/docs/architecture/decisions/0003-child-env-allowlist-and-provenance.md +189 -0
  22. package/docs/architecture/decisions/0004-task-input-contract-and-flag-coercion.md +97 -0
  23. package/docs/architecture/decisions/0005-task-result-vocabulary-and-legacy-read-mapping.md +108 -0
  24. package/docs/architecture/decisions/0006-task-source-version-routing.md +124 -0
  25. package/docs/architecture/decisions/0007-workflow-composition-bounds.md +83 -0
  26. package/docs/architecture/decisions/0008-task-binding-normalization.md +88 -0
  27. package/docs/architecture/decisions/0009-child-run-publication-column-parity.md +80 -0
  28. package/docs/architecture/decisions/0010-driver-protocol-cut.md +36 -0
  29. package/docs/architecture/decisions/0011-engine-run-loop-invariants.md +125 -0
  30. package/docs/architecture/decisions/README.md +62 -0
  31. package/docs/architecture/improvement.md +440 -0
  32. package/docs/architecture/internals/classification.md +154 -0
  33. package/docs/architecture/internals/fresh-host-rebuild-runbook.md +40 -0
  34. package/docs/architecture/internals/functional-contract-patterns.md +340 -0
  35. package/docs/architecture/internals/health-advisories.md +110 -0
  36. package/docs/architecture/internals/improve-workflow.md +713 -0
  37. package/docs/architecture/internals/indexing.md +498 -0
  38. package/docs/architecture/internals/registry-network-boundary.md +57 -0
  39. package/docs/architecture/internals/search.md +249 -0
  40. package/docs/architecture/internals/storage-locations.md +943 -0
  41. package/docs/architecture/persisted-data-compat.md +59 -0
  42. package/docs/architecture/reviews/env-secret-access.md +319 -0
  43. package/docs/architecture/runtime-boundary-design.md +153 -0
  44. package/docs/architecture/specs/0.9.0-close-out-plan.md +361 -0
  45. package/docs/architecture/specs/0.9.0-decisions.md +528 -0
  46. package/docs/architecture/specs/0.9.0-docs-code-drift-register.md +745 -0
  47. package/docs/architecture/specs/0.9.0-open-items-register.md +135 -0
  48. package/docs/architecture/specs/0.9.0-public-api-issue-backlog.md +740 -0
  49. package/docs/architecture/specs/0.9.0-release-surface-review.md +636 -0
  50. package/docs/architecture/specs/agent-command-engine-model-design.md +513 -0
  51. package/docs/architecture/specs/akm-0.9.0-bundle-adapter-spec.md +501 -0
  52. package/docs/architecture/specs/akm-0.9.0-ref-grammar-decision.md +291 -0
  53. package/docs/architecture/specs/akm-format-neutral-bundle-workspace-spec.md +2059 -0
  54. package/docs/architecture/specs/di-seams-plan.md +539 -0
  55. package/docs/architecture/specs/driver-protocol-keep-or-cut.md +275 -0
  56. package/docs/architecture/specs/fact-asset-type.md +142 -0
  57. package/docs/architecture/specs/improve-collapse-churn-detector-design.md +634 -0
  58. package/docs/architecture/specs/okf-support.md +148 -0
  59. package/docs/architecture/specs/ref.md +329 -0
  60. package/docs/architecture/specs/reviews/task-workflow-unification/README.md +72 -0
  61. package/docs/architecture/specs/reviews/task-workflow-unification/findings-consolidated.md +152 -0
  62. package/docs/architecture/specs/reviews/task-workflow-unification/library-eval-alternatives.md +352 -0
  63. package/docs/architecture/specs/reviews/task-workflow-unification/library-eval-bunqueue.md +300 -0
  64. package/docs/architecture/specs/reviews/task-workflow-unification/library-eval-openworkflow.md +402 -0
  65. package/docs/architecture/specs/reviews/task-workflow-unification/opus-review-1.md +758 -0
  66. package/docs/architecture/specs/reviews/task-workflow-unification/opus-review-2.md +645 -0
  67. package/docs/architecture/specs/reviews/task-workflow-unification/opus-review-3.md +602 -0
  68. package/docs/architecture/specs/reviews/task-workflow-unification/panel-r1-adversarial.md +27 -0
  69. package/docs/architecture/specs/reviews/task-workflow-unification/panel-r1-architecture.md +27 -0
  70. package/docs/architecture/specs/reviews/task-workflow-unification/panel-r1-coverage.md +74 -0
  71. package/docs/architecture/specs/reviews/task-workflow-unification/panel-r1-security.md +15 -0
  72. package/docs/architecture/specs/reviews/task-workflow-unification/panel-r2-adversarial.md +132 -0
  73. package/docs/architecture/specs/reviews/task-workflow-unification/panel-r2-verification.md +147 -0
  74. package/docs/architecture/specs/stash-conventions-code-spec.md +275 -0
  75. package/docs/architecture/specs/stash-organization-conventions.md +377 -0
  76. package/docs/architecture/specs/task-workflow-format-unification.md +721 -0
  77. package/docs/architecture/specs/workflow-engine-buy-vs-build.md +231 -0
  78. package/docs/architecture/specs/workflow-format-unification.md +437 -0
  79. package/docs/architecture/testing/manual-testing-checklist.md +3420 -0
  80. package/docs/architecture/testing/okf-v0.2-conformance-runbook.md +924 -0
  81. package/docs/architecture/testing/task-workflow-manual-tests.md +1817 -0
  82. package/docs/architecture/testing/testing-workflow.md +446 -0
  83. package/docs/architecture/workflow-engine.md +274 -0
  84. package/docs/guides/README.md +33 -0
  85. package/docs/guides/author-bundles.md +310 -0
  86. package/docs/guides/author-workflows.md +520 -0
  87. package/docs/guides/bundles.md +321 -0
  88. package/docs/guides/capture-knowledge.md +136 -0
  89. package/docs/guides/claude-code-vs-akm-workflows.md +30 -0
  90. package/docs/guides/concepts.md +93 -0
  91. package/docs/guides/discover-and-load.md +158 -0
  92. package/docs/guides/getting-started.md +240 -0
  93. package/docs/guides/improve-the-library.md +246 -0
  94. package/docs/guides/knowledge-management.md +18 -0
  95. package/docs/guides/recipes/headless-install.md +97 -0
  96. package/docs/guides/recipes/website-source.md +28 -0
  97. package/docs/guides/run-workflows.md +279 -0
  98. package/docs/guides/scheduling.md +123 -0
  99. package/docs/guides/use-with-any-agent.md +129 -0
  100. package/docs/guides/wikis.md +81 -0
  101. package/docs/maintainers/README.md +19 -0
  102. package/docs/maintainers/curate-workmap.md +336 -0
  103. package/docs/maintainers/eval.md +3 -0
  104. package/docs/maintainers/local-development.md +108 -0
  105. package/docs/maintainers/release-checklist.md +103 -0
  106. package/docs/migration/README.md +2 -2
  107. package/docs/migration/release-notes/0.0.13.md +1 -1
  108. package/docs/migration/release-notes/0.1.0.md +1 -1
  109. package/docs/migration/release-notes/0.2.0.md +1 -1
  110. package/docs/migration/release-notes/0.3.0.md +1 -1
  111. package/docs/migration/release-notes/0.5.0.md +1 -1
  112. package/docs/migration/release-notes/0.6.0.md +1 -1
  113. package/docs/migration/release-notes/0.7.0.md +1 -1
  114. package/docs/migration/release-notes/0.7.3.md +2 -2
  115. package/docs/migration/release-notes/0.7.4.md +1 -1
  116. package/docs/migration/release-notes/0.7.5.md +1 -1
  117. package/docs/migration/release-notes/0.8.0.md +1 -1
  118. package/docs/migration/release-notes/0.9.0.md +1 -1
  119. package/docs/migration/release-notes/0.9.14.md +1 -1
  120. package/docs/migration/release-notes/0.9.15.md +1 -1
  121. package/docs/migration/release-notes/0.9.16.md +1 -1
  122. package/docs/migration/release-notes/0.9.17.md +1 -1
  123. package/docs/migration/release-notes/0.9.19.md +1 -1
  124. package/docs/migration/release-notes/0.9.2.md +1 -1
  125. package/docs/migration/release-notes/README.md +27 -31
  126. package/docs/migration/v0.5-to-v0.6.md +759 -0
  127. package/docs/migration/v0.8-to-v0.9.md +1 -1
  128. package/docs/plans/0.9.2-agent-command-workflow-plan.md +423 -0
  129. package/docs/posts/README.md +30 -0
  130. package/docs/posts/akm-command-tour.md +495 -0
  131. package/docs/posts/akm-logo-sized.webp +0 -0
  132. package/docs/posts/belief-aware-memory-12.md +139 -0
  133. package/docs/posts/config-v2-lessons-16.md +191 -0
  134. package/docs/posts/improve-loop-autonomous-10.md +225 -0
  135. package/docs/posts/improve-pipeline-debugging-0803.md +179 -0
  136. package/docs/posts/intro-part-01.md +76 -0
  137. package/docs/posts/intro-part-02.md +221 -0
  138. package/docs/posts/intro-part-03.md +190 -0
  139. package/docs/posts/intro-part-04.md +221 -0
  140. package/docs/posts/llm-mode-reflect-13.md +166 -0
  141. package/docs/posts/openpalm-built-on-akm.md +86 -0
  142. package/docs/posts/progressive-disclosure-06.md +129 -0
  143. package/docs/posts/proposal-safety-net-15.md +112 -0
  144. package/docs/posts/release-0.5.0.md +247 -0
  145. package/docs/posts/release-0.6.0.md +117 -0
  146. package/docs/posts/release-0.7.0.md +159 -0
  147. package/docs/posts/release-0.8.0.md +332 -0
  148. package/docs/posts/scattered-skills-05.md +100 -0
  149. package/docs/posts/task-assets-persistent-workflows-11.md +222 -0
  150. package/docs/posts/team-skills-07.md +198 -0
  151. package/docs/posts/wiki-agent-knowledge-08.md +223 -0
  152. package/docs/posts/workflows-vaults-09.md +321 -0
  153. package/docs/product-surface.md +54 -0
  154. package/docs/reference/README.md +1 -2
  155. package/docs/reference/asset-types.md +168 -0
  156. package/docs/reference/cli.md +5 -6
  157. package/docs/reference/env-and-secrets.md +126 -0
  158. package/docs/reference/memory.md +124 -0
  159. package/docs/reference/refs.md +156 -0
  160. package/docs/reference/registry.md +489 -0
  161. package/docs/reference/website-sources.md +141 -0
  162. package/package.json +12 -15
package/docs/README.md CHANGED
@@ -6,16 +6,17 @@ start here, then follow links out to the guides, reference, and architecture
6
6
  pages as you need more depth. Each subdirectory also has its own README
7
7
  indexing everything inside it.
8
8
 
9
- Full per-directory indexes: [Guides](https://github.com/itlackey/akm/blob/main/docs/guides/README.md),
10
- [Reference](reference/README.md), [Agents](https://github.com/itlackey/akm/blob/main/docs/agents/README.md),
11
- [Architecture](https://github.com/itlackey/akm/blob/main/docs/architecture/README.md), [Migration](migration/README.md).
9
+ Full per-directory indexes: [Guides](guides/README.md),
10
+ [Reference](reference/README.md), [Agents](agents/README.md),
11
+ [Architecture](architecture/README.md), [Maintainers](maintainers/README.md),
12
+ [Migration](migration/README.md), [Posts](posts/README.md).
12
13
 
13
14
  ## Start
14
15
 
15
- - [Product Surface](https://github.com/itlackey/akm/blob/main/docs/product-surface.md) -- Every feature and its status
16
- - [Getting Started](https://github.com/itlackey/akm/blob/main/docs/guides/getting-started.md) -- Install akm, connect a source, and pull a curated shortlist in five to seven minutes
17
- - [Concepts](https://github.com/itlackey/akm/blob/main/docs/guides/concepts.md) -- Capabilities, bundles, adapters, asset types, and refs -- the mental model in one page
18
- - [Agent Install Guide](https://github.com/itlackey/akm/blob/main/docs/agents/agent-install.md) -- Step-by-step automated (non-interactive) install for agents
16
+ - [Product Surface](product-surface.md) -- Every feature and its status
17
+ - [Getting Started](guides/getting-started.md) -- Install akm, connect a source, and pull a curated shortlist in five to seven minutes
18
+ - [Concepts](guides/concepts.md) -- Capabilities, bundles, adapters, asset types, and refs -- the mental model in one page
19
+ - [Agent Install Guide](agents/agent-install.md) -- Step-by-step automated (non-interactive) install for agents
19
20
  - `akm help agents` (short guide by default; `akm help agents --full` for the complete guide) -- The CLI reference agents load to use akm; always the embedded corpus at `src/assets/hints/cli-hints-{full,short}.md`
20
21
 
21
22
  ## Use
@@ -23,34 +24,34 @@ Full per-directory indexes: [Guides](https://github.com/itlackey/akm/blob/main/d
23
24
  One library for every agent: connect what you already have, load only what
24
25
  the task needs, and capture what you learn along the way.
25
26
 
26
- - [Use AKM With Any Agent](https://github.com/itlackey/akm/blob/main/docs/guides/use-with-any-agent.md) -- Wire akm into Claude Code, OpenCode, Cursor, and other coding assistants with a three-line system prompt block
27
- - [Discover and Load](https://github.com/itlackey/akm/blob/main/docs/guides/discover-and-load.md) -- Search, curate a shortlist, and load exactly the ref a task needs
28
- - [Bundles](https://github.com/itlackey/akm/blob/main/docs/guides/bundles.md) -- Connect local dirs, git repos, npm packages, and websites; browse the registry
29
- - [Capture Knowledge](https://github.com/itlackey/akm/blob/main/docs/guides/capture-knowledge.md) -- `akm remember`, `akm import`, and how captured material becomes available to every agent
30
- - [Wikis](https://github.com/itlackey/akm/blob/main/docs/guides/wikis.md) -- Multi-wiki knowledge bases (Karpathy-style)
31
- - [Environment & Secrets](https://github.com/itlackey/akm/blob/main/docs/reference/env-and-secrets.md) -- `akm env` and `akm secret`: exact operations, file modes, and the security guarantee
32
- - [Run Workflows](https://github.com/itlackey/akm/blob/main/docs/guides/run-workflows.md) -- Start or continue a run, check on it, resume it, or abandon it
33
- - [Scheduling](https://github.com/itlackey/akm/blob/main/docs/guides/scheduling.md) -- Run akm tasks through the OS scheduler (cron / launchd / schtasks) safely
27
+ - [Use AKM With Any Agent](guides/use-with-any-agent.md) -- Wire akm into Claude Code, OpenCode, Cursor, and other coding assistants with a three-line system prompt block
28
+ - [Discover and Load](guides/discover-and-load.md) -- Search, curate a shortlist, and load exactly the ref a task needs
29
+ - [Bundles](guides/bundles.md) -- Connect local dirs, git repos, npm packages, and websites; browse the registry
30
+ - [Capture Knowledge](guides/capture-knowledge.md) -- `akm remember`, `akm import`, and how captured material becomes available to every agent
31
+ - [Wikis](guides/wikis.md) -- Multi-wiki knowledge bases (Karpathy-style)
32
+ - [Environment & Secrets](reference/env-and-secrets.md) -- `akm env` and `akm secret`: exact operations, file modes, and the security guarantee
33
+ - [Run Workflows](guides/run-workflows.md) -- Start or continue a run, check on it, resume it, or abandon it
34
+ - [Scheduling](guides/scheduling.md) -- Run akm tasks through the OS scheduler (cron / launchd / schtasks) safely
34
35
  - [Migrate to 0.9.2](migration/v0.9.1-to-v0.9.2.md) -- Convert task-v2 sources safely and understand workflow resume compatibility
35
- - [Improve the Library](https://github.com/itlackey/akm/blob/main/docs/guides/improve-the-library.md) -- Feedback, history, and proposals -- how evidence turns into reviewable changes
36
- - Recipes: [Turn a Website into a Searchable Bundle](https://github.com/itlackey/akm/blob/main/docs/guides/recipes/website-source.md), [Headless Install](https://github.com/itlackey/akm/blob/main/docs/guides/recipes/headless-install.md)
36
+ - [Improve the Library](guides/improve-the-library.md) -- Feedback, history, and proposals -- how evidence turns into reviewable changes
37
+ - Recipes: [Turn a Website into a Searchable Bundle](guides/recipes/website-source.md), [Headless Install](guides/recipes/headless-install.md)
37
38
 
38
39
  ## Build and operate
39
40
 
40
41
  Package complete capabilities and turn knowledge into repeatable work.
41
42
 
42
- - [Bundle Author's Guide](https://github.com/itlackey/akm/blob/main/docs/guides/author-bundles.md) -- Build a bundle, make it discoverable, and share it so others can install it with `akm bundle add`
43
- - [Author's Guide: Writing Workflows](https://github.com/itlackey/akm/blob/main/docs/guides/author-workflows.md) -- Write and test a workflow definition, from a minimal example to gates and outputs
44
- - [Claude Code workflows vs. akm workflows](https://github.com/itlackey/akm/blob/main/docs/guides/claude-code-vs-akm-workflows.md) -- Short decision guide for choosing between a session-native workflow and an akm workflow ([full technical comparison](https://github.com/itlackey/akm/blob/main/docs/architecture/comparisons/claude-code-vs-akm-workflows-full.md))
43
+ - [Bundle Author's Guide](guides/author-bundles.md) -- Build a bundle, make it discoverable, and share it so others can install it with `akm bundle add`
44
+ - [Author's Guide: Writing Workflows](guides/author-workflows.md) -- Write and test a workflow definition, from a minimal example to gates and outputs
45
+ - [Claude Code workflows vs. akm workflows](guides/claude-code-vs-akm-workflows.md) -- Short decision guide for choosing between a session-native workflow and an akm workflow ([full technical comparison](architecture/comparisons/claude-code-vs-akm-workflows-full.md))
45
46
  - [Bundling akm](integration/bundling-akm.md) -- Ship akm inside your own product: the pin/migrate/health boot contract, plan JSON shapes, and exit codes for bundlers
46
47
 
47
48
  ### Maintainers
48
49
 
49
50
  Working on akm itself, not just using it.
50
51
 
51
- - [Maintainer Docs](https://github.com/itlackey/akm/blob/main/docs/maintainers/README.md) -- Start here: local development, measuring improvement, and the curate contract
52
- - [Local Development](https://github.com/itlackey/akm/blob/main/docs/maintainers/local-development.md) -- Dogfooding akm while editing its own source
53
- - [Curate Workmap](https://github.com/itlackey/akm/blob/main/docs/maintainers/curate-workmap.md) -- The current `akm curate` contract and the highest-value next fixes
52
+ - [Maintainer Docs](maintainers/README.md) -- Start here: local development, measuring improvement, and the curate contract
53
+ - [Local Development](maintainers/local-development.md) -- Dogfooding akm while editing its own source
54
+ - [Curate Workmap](maintainers/curate-workmap.md) -- The current `akm curate` contract and the highest-value next fixes
54
55
 
55
56
  ## Look up details
56
57
 
@@ -58,24 +59,24 @@ Working on akm itself, not just using it.
58
59
  - [Configuration](reference/configuration.md) -- Engines, strategies, bundles, and settings
59
60
  - [Supported Formats](reference/supported-formats.md) -- Every bundle format akm recognizes, its detection marker, and current read/write support
60
61
  - [Tasks](reference/tasks.md) -- Task-v3 files, targets, triggers, and fail-closed migration
61
- - [Asset Types](https://github.com/itlackey/akm/blob/main/docs/reference/asset-types.md) -- The capability taxonomy, directory conventions, and per-type examples
62
- - [Refs](https://github.com/itlackey/akm/blob/main/docs/reference/refs.md) -- The ref grammar `akm search` emits and `akm show` consumes
63
- - [Memory](https://github.com/itlackey/akm/blob/main/docs/reference/memory.md) -- The `memory` asset type: capture, belief states, and derived memories
62
+ - [Asset Types](reference/asset-types.md) -- The capability taxonomy, directory conventions, and per-type examples
63
+ - [Refs](reference/refs.md) -- The ref grammar `akm search` emits and `akm show` consumes
64
+ - [Memory](reference/memory.md) -- The `memory` asset type: capture, belief states, and derived memories
64
65
  - [Workflow Schema](reference/workflow-schema.md) -- Authoritative frontmatter/body syntax for a workflow asset
65
66
  - [Workflows (overview)](reference/workflows.md) -- Short map across the workflow schema, engine, and how-to guides
66
- - [Registry](https://github.com/itlackey/akm/blob/main/docs/reference/registry.md) -- Registries, search, hosting, and managing sources
67
- - [Website Sources](https://github.com/itlackey/akm/blob/main/docs/reference/website-sources.md) -- The pluggable fetcher API for URL-based knowledge reads
67
+ - [Registry](reference/registry.md) -- Registries, search, hosting, and managing sources
68
+ - [Website Sources](reference/website-sources.md) -- The pluggable fetcher API for URL-based knowledge reads
68
69
  - [Data & Telemetry](reference/data-and-telemetry.md) -- Exactly what akm reads and writes on your machine (no remote telemetry)
69
- - [Architecture](https://github.com/itlackey/akm/blob/main/docs/architecture/architecture.md) -- How akm's bundles, cache, index, and registries fit together
70
- - [Core Principles](https://github.com/itlackey/akm/blob/main/docs/architecture/akm-core-principles.md) -- Design principles and constraints
71
- - [Adapters](https://github.com/itlackey/akm/blob/main/docs/architecture/adapters.md) -- How akm picks an adapter, indexes, validates, and writes into a bundle
72
- - [The Workflow Engine](https://github.com/itlackey/akm/blob/main/docs/architecture/workflow-engine.md) -- How a frozen plan is stored, dispatched, and resumed without replaying completed units
73
- - [The Improvement Loop](https://github.com/itlackey/akm/blob/main/docs/architecture/improvement.md) -- How a feedback signal becomes a ranking change, and how evidence becomes a proposal
74
- - [Runtime Boundary Design](https://github.com/itlackey/akm/blob/main/docs/architecture/runtime-boundary-design.md) -- Isolating `bun:sqlite`/`Bun.*` from the core
75
- - [Architecture Decision History](https://github.com/itlackey/akm/blob/main/docs/architecture/akm-architecture-decision-history.md) -- ADR-style record of the major architecture rulings
76
- - [Specs](https://github.com/itlackey/akm/blob/main/docs/architecture/README.md#specs-specs) -- Normative specifications (bundle/adapter model, ref grammar, bundle conventions)
77
- - [Internals](https://github.com/itlackey/akm/blob/main/docs/architecture/README.md#internals-internals) -- Current-truth subsystem references (storage, search, indexing, improve, health)
78
- - [Testing](https://github.com/itlackey/akm/blob/main/docs/architecture/README.md#testing-testing) -- Testing workflow and pre-release checklist
70
+ - [Architecture Overview](architecture/architecture.md) -- How akm's bundles, cache, index, and registries fit together
71
+ - [Core Principles](architecture/akm-core-principles.md) -- Design principles and constraints
72
+ - [Adapters](architecture/adapters.md) -- How akm picks an adapter, indexes, validates, and writes into a bundle
73
+ - [The Workflow Engine](architecture/workflow-engine.md) -- How a frozen plan is stored, dispatched, and resumed without replaying completed units
74
+ - [The Improvement Loop](architecture/improvement.md) -- How a feedback signal becomes a ranking change, and how evidence becomes a proposal
75
+ - [Runtime Boundary Design](architecture/runtime-boundary-design.md) -- Isolating `bun:sqlite`/`Bun.*` from the core
76
+ - [Architecture Decision History](architecture/akm-architecture-decision-history.md) -- ADR-style record of the major architecture rulings
77
+ - [Specs](architecture/README.md#specs-specs) -- Normative specifications (bundle/adapter model, ref grammar, bundle conventions)
78
+ - [Internals](architecture/README.md#internals-internals) -- Current-truth subsystem references (storage, search, indexing, improve, health)
79
+ - [Testing](architecture/README.md#testing-testing) -- Testing workflow and pre-release checklist
79
80
  - [Migration](migration/README.md) -- Upgrade guides and per-release migration notes
80
81
  - [Roadmap](https://github.com/itlackey/akm/blob/main/ROADMAP.md) -- High-level focus for the releases from here through 1.0
81
82
 
@@ -85,14 +86,14 @@ AKM retrieves every supported capability type. It directly orchestrates
85
86
  defined execution surfaces such as workflows, agent dispatch, tasks, and
86
87
  guarded subprocess injection. It does not blindly execute arbitrary indexed
87
88
  content merely because that content appears in search results. See
88
- [Core Principles](https://github.com/itlackey/akm/blob/main/docs/architecture/akm-core-principles.md) for the full boundary,
89
- and [The Improvement Loop](https://github.com/itlackey/akm/blob/main/docs/architecture/improvement.md) for how that boundary
89
+ [Core Principles](architecture/akm-core-principles.md) for the full boundary,
90
+ and [The Improvement Loop](architecture/improvement.md) for how that boundary
90
91
  applies to akm's own self-generated changes.
91
92
 
92
93
  ## Posts
93
94
 
94
95
  Source articles for the dev.to publishing pipeline (historical record). See
95
- [docs/posts/README.md](https://github.com/itlackey/akm/blob/main/docs/posts/README.md).
96
+ [posts index](posts/README.md).
96
97
 
97
98
  ## Official Ecosystem Repositories
98
99
 
@@ -0,0 +1,15 @@
1
+ # Agents
2
+
3
+ Documentation for wiring AI agents into akm.
4
+
5
+ Run `akm hints` for the complete CLI reference agents should load into a
6
+ system prompt, or `akm help agents` for the compact guide.
7
+ (the short form is the default; pass `--full` for the complete guide). It always prints the embedded
8
+ corpus at `src/assets/hints/cli-hints-full.md` / `cli-hints-short.md` --
9
+ browse those files directly if you want to read the reference without running
10
+ the CLI. There used to be a separate `docs/agents/AGENTS.md` /
11
+ `AGENTS.full.md` pair here; it fed nothing at runtime after R-006 and kept
12
+ re-diverging from the embedded copy with no test to catch it, so it was
13
+ deleted and its still-true unique content was merged into the embedded files.
14
+
15
+ - [Agent Install Guide](agent-install.md) -- Short redirect covering the install shape (binary, `akm setup --yes`, a source, an index, `akm help agents`); for the exact no-prompts command sequence, see the [headless install recipe](../guides/recipes/headless-install.md)
@@ -0,0 +1,14 @@
1
+ # Agent Install Guide
2
+
3
+ `akm` is a portable capability library agents install and configure without
4
+ interactive prompts: install the binary, run `akm setup --yes`, add a source,
5
+ build the index, then expose `akm help agents` output to the agent so it
6
+ knows how to search and load bundle content. Configuration lives in
7
+ top-level keys validated against the config schema, and semantic search can
8
+ run on local embeddings or a remote endpoint depending on what the host
9
+ supports.
10
+
11
+ For the exact command sequence — install, setup, semantic-search
12
+ configuration, adding sources, indexing, verification, and installing agent
13
+ guidance into `AGENTS.md` — see the
14
+ [headless install recipe](../guides/recipes/headless-install.md).
@@ -0,0 +1,67 @@
1
+ # Architecture Index
2
+
3
+ How akm is built: system overview, normative specs, decision history, and
4
+ subsystem internals.
5
+
6
+ - [Architecture](architecture.md) -- How akm's bundles, cache, index, and registries fit together
7
+ - [Core Principles](akm-core-principles.md) -- Design principles and constraints
8
+ - [Adapters](adapters.md) -- The `BundleAdapter` contract: what a bundle's files *are*, how they're indexed, linted, and written
9
+ - [Architecture: The Workflow Engine](workflow-engine.md) -- How a workflow compiles to a frozen plan, persists run/unit state, dispatches work, and resumes without replaying completed steps
10
+ - [Architecture: The Improvement Loop](improvement.md) -- Purpose and boundary of the improvement loop
11
+ - [Runtime Boundary Design](runtime-boundary-design.md) -- Isolating `bun:sqlite`/`Bun.*` from the core
12
+ - [Architecture Decision History](akm-architecture-decision-history.md) -- ADR-style record of the major architecture rulings
13
+
14
+ ## Specs (`specs/`)
15
+
16
+ Normative specifications and binding conventions.
17
+
18
+ - [OKF format support](specs/okf-support.md) -- OKF is a first-class format supported through the built-in `okf` adapter
19
+ - [0.9.0 surface decisions](specs/0.9.0-decisions.md) -- The decision record (D1-D12) behind the 0.9.0 breaking changes
20
+ - [Bundle & Adapter Spec (0.9.0)](specs/akm-0.9.0-bundle-adapter-spec.md) -- Normative spec for bundles, adapters, and bundle recognition
21
+ - [Ref Grammar Decision (0.9.0)](specs/akm-0.9.0-ref-grammar-decision.md) -- The `[bundle//]conceptId` ref grammar
22
+ - [Ref Format](specs/ref.md) -- Wire format for asset references
23
+ - [Format-Neutral Bundle Workspace Spec](specs/akm-format-neutral-bundle-workspace-spec.md) -- The format-neutral workspace model
24
+ - [Agent, Command, Engine, and Model Resolution](specs/agent-command-engine-model-design.md) -- Approved target semantics for native agent/command bundles, configuration cascading, model maps, and dispatch
25
+ - [0.9.2 Agent/Command/Task/Workflow Implementation Plan](../plans/0.9.2-agent-command-workflow-plan.md) -- Sequenced work packages, [GitHub milestone tracker](https://github.com/itlackey/akm/issues/801), migration rules, support boundaries, and release evidence for the coherent execution MVP
26
+ - [Fact Asset Type](specs/fact-asset-type.md) -- The `fact` asset type
27
+ - [Bundle Conventions Code Spec](specs/stash-conventions-code-spec.md) -- Code-level bundle conventions
28
+ - [Bundle Organization Conventions](specs/stash-organization-conventions.md) -- How a bundle is laid out
29
+ - [DI Seams Plan](specs/di-seams-plan.md) -- Dependency-injection seams used by the test suite
30
+ - [Improve Collapse/Churn Detector](specs/improve-collapse-churn-detector-design.md) -- Longitudinal collapse/churn detection design (§6.3 is the operator runbook referenced by `akm health`)
31
+
32
+ Historical review registers (0.9.0 release-review audit trail, kept for provenance, not normative going forward):
33
+
34
+ - [0.9.0 Docs–Code Drift Register](specs/0.9.0-docs-code-drift-register.md) -- Ruled record of places documentation and code disagreed, and open-intent questions (Q-01..Q-19)
35
+ - [0.9.0 Public API Issue Backlog](specs/0.9.0-public-api-issue-backlog.md) -- Implementation-only findings from the CLI surface review
36
+ - [0.9.0 Release Surface Review](specs/0.9.0-release-surface-review.md) -- Reconciled action list from the end-to-end user-facing surface sweep
37
+
38
+ ## Internals (`internals/`)
39
+
40
+ Current-truth subsystem references.
41
+
42
+ - [Storage Locations](internals/storage-locations.md) -- Authoritative inventory of every on-disk read/write path
43
+ - [Search](internals/search.md) -- Hybrid search architecture and scoring
44
+ - [Indexing](internals/indexing.md) -- How the search index is built
45
+ - [Classification](internals/classification.md) -- Matcher and renderer behavior
46
+ - [Improve Workflow](internals/improve-workflow.md) -- `akm improve` command surface and pipeline reference
47
+ - [Health Advisories](internals/health-advisories.md) -- `akm health` advisory-to-action map for operators
48
+ - [Registry Network Boundary](internals/registry-network-boundary.md) -- Outbound registry request inventory, destination policy, redirects, and DNS guarantees
49
+ - [Functional Contract Patterns](internals/functional-contract-patterns.md) -- Quick reference for contributor pipelines and small process contracts
50
+ - [Fresh-Host Rebuild Runbook](internals/fresh-host-rebuild-runbook.md) -- Rebuild an akm install on a new machine
51
+ - [Persisted-Data Compatibility Contract](persisted-data-compat.md) -- What a reader owes data an earlier release wrote, per persisted format
52
+
53
+ ## Reviews (`reviews/`)
54
+
55
+ Point-in-time architecture reviews of a specific subsystem question.
56
+
57
+ - [Runtime secret resolution for in-process source fetchers](reviews/env-secret-access.md) -- Why secret reads are injected as a `SecretResolver` capability instead of imported inside the fetcher subgraph
58
+
59
+ ## Comparisons (`comparisons/`)
60
+
61
+ - [Workflow architecture: Claude Code workflows vs. akm workflows](comparisons/claude-code-vs-akm-workflows-full.md) -- Full technical comparison of the Claude Code `Workflow` tool and akm workflows; see [the short vendor-neutral guide](../guides/claude-code-vs-akm-workflows.md) for the decision-level version
62
+
63
+ ## Testing (`testing/`)
64
+
65
+ - [Testing Workflow](testing/testing-workflow.md) -- End-to-end, Docker, deployment, and upgrade validation, plus the coverage gap guide
66
+ - [Manual Testing Checklist](testing/manual-testing-checklist.md) -- Pre-release manual QA checklist
67
+ - [OKF v0.2 Conformance Re-Evaluation Runbook](testing/okf-v0.2-conformance-runbook.md) -- Acceptance procedure to re-run after changing adapters, indexing, refs, writes, or lint behavior
@@ -0,0 +1,272 @@
1
+ # Adapters
2
+
3
+ A **`BundleAdapter`** (`src/core/adapter/bundle-adapter.ts`) is the code that
4
+ decides what a bundle's files *are*, how they're indexed, how `akm lint`
5
+ validates them, and where a new item would be placed. 0.9.0 ships 11
6
+ built-in adapters — one per format in
7
+ [Supported Formats](../reference/supported-formats.md). This page is the
8
+ write-path and internals reference; that page is the compatibility table.
9
+
10
+ For read-only native tool bundles, recognition is runtime translation, not
11
+ conversion: the adapter projects native files into AKM's index/runtime shapes
12
+ while the source file remains authoritative. AKM does not synchronize native
13
+ formats, maintain translated canonical copies, or write agent/command assets
14
+ back through the Claude/OpenCode adapters. See
15
+ [Agent, Command, Engine, and Model Resolution](specs/agent-command-engine-model-design.md).
16
+
17
+ > **Stability note.** The adapter set, bundle-recognition rules, and the
18
+ > `bundles` config shape are still evolving — see [STABILITY.md](../../STABILITY.md).
19
+
20
+ ---
21
+
22
+ ## Probe order
23
+
24
+ Each bundle root is owned by exactly **one** adapter, decided once at
25
+ install/index time:
26
+
27
+ 1. If the bundle's config entry sets `components.<id>.adapter` explicitly,
28
+ that adapter wins — no detection runs.
29
+ 2. Otherwise, every built-in adapter's `looksLikeRoot(root)` probe runs in a
30
+ **fixed order**, most-specific markers first. The first probe that
31
+ returns `true` claims the root.
32
+ 3. If no probe fires, the bundle falls back to the `akm` adapter.
33
+
34
+ The order is pinned by `BUILTIN_ADAPTERS` (`src/core/adapter/adapters/index.ts`)
35
+ and enforced by the conformance suite's ordered-owner matrix — it, not any
36
+ prose spec listing, is authoritative:
37
+
38
+ ```text
39
+ website-snapshot -- root manifest.json {url, fetchedAt}
40
+ agent-skills -- a <name>/SKILL.md package at the bundle root
41
+ claude -- root CLAUDE.md + commands/|agents/|skills/
42
+ opencode -- opencode.json(c), or root AGENTS.md + a tool dir
43
+ dotenv -- every top-level dir is env/ and/or secrets/
44
+ akm-workflow -- a top-level .md with explicit type: workflow
45
+ akm-task -- a top-level valid task source v4 .yml (schedule optional)
46
+ llm-wiki -- root schema.md + pages/
47
+ akm -- .stash marker, or 2+ native subdirs, or fallback
48
+ okf -- root index.md, or any .md with frontmatter type
49
+ generic-files -- never auto-selected; explicit config only
50
+ ```
51
+
52
+ The rationale for the ordering:
53
+
54
+ - The three loosest probes — `llm-wiki`, `akm`, and `okf` — stay **last**.
55
+ Native AKM evidence wins before OKF because AKM Markdown is an OKF
56
+ superset; the `akm` probe is strict enough not to claim an OKF bundle
57
+ merely because it contains one familiar directory name.
58
+ - `akm.looksLikeRoot` fires on any root carrying a bundle-subdir-named
59
+ directory — which includes a `.claude`/`.opencode` tool dir (`commands/`,
60
+ `agents/`, `skills/`) and a dotenv bundle (`env/`, `secrets/`). So
61
+ `claude`/`opencode`/`dotenv` come **ahead of** `akm`; their tighter markers
62
+ claim those roots first, and `akm` still wins its own workspace root
63
+ (which those tighter probes reject).
64
+ - `website-snapshot`, `agent-skills`, `akm-workflow`, and `akm-task` carry
65
+ disjoint, specific markers that fire on none of the other roots, so they
66
+ sit at the front for clarity.
67
+ - `generic-files` is explicit-config-only — its `looksLikeRoot` never fires —
68
+ so it's last and can never shadow anything.
69
+
70
+ ---
71
+
72
+ ## `BundleAdapter` interface contract
73
+
74
+ Transcribed from `src/core/adapter/bundle-adapter.ts`:
75
+
76
+ ```ts
77
+ interface BundleAdapter {
78
+ readonly id: string;
79
+ readonly version: string; // feeds incrementality + fingerprints
80
+ readonly extensions: readonly string[]; // longest-match stripping + collision priority
81
+
82
+ // REQUIRED — single-file recognition primitive.
83
+ recognize(c: BundleComponent, file: FileContext): IndexDocument | null;
84
+
85
+ // OPTIONAL — full-component scan for non-per-file layouts (website
86
+ // snapshots, llm-wiki multi-file semantics). Absent -> the core walk
87
+ // (git-aware, symlink-safe, skip-dirs) drives recognize() per file.
88
+ index?(inst: BundleInstallation, c: BundleComponent): AsyncIterable<IndexDocument>;
89
+
90
+ // OPTIONAL — item-scoped incrementality. Default: identity (one file = one item).
91
+ affectedItems?(c: BundleComponent, changedPaths: string[]): string[];
92
+
93
+ // REQUIRED — native validation (change-transaction pre-commit + lint --fix).
94
+ // Adapters MUST NOT write and MUST NOT read the live filesystem: ctx serves
95
+ // a run snapshot with pending changes overlaid, plus a read-only
96
+ // resolveRef for link/xref existence.
97
+ validate(c: BundleComponent, changes: FileChange[], ctx: ValidateContext): Promise<Diagnostic[]>;
98
+
99
+ // OPTIONAL — the CLOSED-FORM set of existing-file placements/read aliases
100
+ // that could own `conceptId`, used for first-owner arbitration without
101
+ // reading authored bytes or walking the bundle.
102
+ readCandidates?(c: BundleComponent, conceptId: string): Array<{ path: string; conceptId: string }>;
103
+
104
+ // OPTIONAL — placement / discovery.
105
+ placeNew?(c: BundleComponent, conceptId: string): string; // where a new item would live
106
+ directoryList?(c: BundleComponent): string[]; // owned dirs; feeds git exact-path staging
107
+ looksLikeRoot?(root: string): boolean; // install-time probe
108
+ }
109
+ ```
110
+
111
+ `recognize` and `validate` are required on every adapter; `index`,
112
+ `affectedItems`, `readCandidates`, `placeNew`, `directoryList`, and
113
+ `looksLikeRoot` are optional capability methods. An adapter overriding `index()` must keep
114
+ `recognize()` coherent with it (conformance: `index()` == fold of
115
+ `recognize()` over the core walk) or declare component-level
116
+ incrementality.
117
+
118
+ `readCandidates` is intentionally distinct from both `extensions` and
119
+ `placeNew`: extensions are non-exhaustive walk hints, while placement is a
120
+ write-normalization policy. Read candidates preserve canonical directory
121
+ manifests (for example `skills/<name>/SKILL.md`) so lookup, index-backed show, and workflow runtime share one
122
+ physical-owner decision. Each candidate carries its canonical concept identity,
123
+ so a byte-denying ownership probe never has to infer identity from the query.
124
+ Path-derived recognition (`toCanonicalName`/`toAssetPath`, `src/core/asset/asset-placement.ts`)
125
+ is a deterministic function of a file's path, so its inverse — every physical
126
+ spelling that could own one conceptId — is computable in CLOSED FORM (#857):
127
+ the canonical placement under the type's own bundle subdir, the loose
128
+ off-canonical placement (an authored path elsewhere in the bundle, keyed off
129
+ its full path relative to the bundle root instead of the type subdir — this
130
+ is what `readCandidates` returns for it), and any type-specific duality (for
131
+ example `env`'s `.env`/`<name>.env` spellings for the "default" alias).
132
+ `readCandidates` enumerates the complete closed-form set directly from the
133
+ conceptId; no bundle walk is needed, so no scan bound applies. The shared
134
+ authority (`src/indexer/lookup/adapter-concept-owner.ts`) still probes every
135
+ candidate with a byte-denying `FileContext` before trusting it, so an
136
+ adapter returning a candidate the file does not actually own is harmless —
137
+ it is simply filtered out.
138
+
139
+ The core walk — the live indexer's per-dir walk, drained by
140
+ `drainDirDocuments` — is one implementation carrying the security policy
141
+ (symlink-safety, skip-dirs, git-awareness); adapters never reimplement it.
142
+
143
+ Cross-component ref existence is a **core** base check, not an adapter
144
+ concern.
145
+
146
+ ---
147
+
148
+ ## `placeNew()` wiring status
149
+
150
+ The interface declares `placeNew()` as an optional capability method, and 9
151
+ of the 11 built-in adapters already implement it — all but `okf` and
152
+ `website-snapshot` (`claude` and `opencode` inherit theirs from the shared
153
+ tool-dir factory). **Nothing in the write path calls it yet**: AKM-native
154
+ writes still resolve through AKM's own flat type→directory placement table
155
+ (`src/core/asset/asset-placement.ts`'s `PLACEMENT_SPECS`), not through the
156
+ owning adapter's `placeNew()`.
157
+
158
+ Placement for every existing bundle is already correct today — this is a
159
+ deliberately sequenced routing change, not unfinished behavior. It's
160
+ scoped out of 0.9.0 by
161
+ [D12](../architecture/specs/0.9.0-decisions.md#d12--bundleadapterplacenew-stays-unwired-until-010)
162
+ and deferred to 0.10; nothing user-visible changes in 0.10 for this alone.
163
+ See [STABILITY.md](../../STABILITY.md) ("On the horizon") for the
164
+ up-to-date status if this changes.
165
+
166
+ ---
167
+
168
+ ## Write allowlists
169
+
170
+ `placeNew()` wiring is a separate question from **which bundles AKM-native
171
+ write commands are allowed to touch at all** — that's decided today by a
172
+ small allowlist check, `assertAkmAssetWrite` (`src/core/write-source.ts`),
173
+ run before any write command touches the filesystem. It compares the target
174
+ bundle's detected (or configured) adapter id against an allowlist and throws
175
+ a `UsageError` on a miss.
176
+
177
+ The default allowlist is `["akm"]`. Two command families widen it explicitly:
178
+
179
+ | Command | Allowlist adds |
180
+ | --- | --- |
181
+ | `akm env create` / `env remove` / `secret set` | `dotenv` |
182
+ | `akm workflow create` | `akm-workflow` |
183
+
184
+ Every other adapter — including every adapter that already implements
185
+ `placeNew()` (`agent-skills`, `claude`, `opencode`, `akm-task`,
186
+ `generic-files`) — is rejected by every AKM-native write command in 0.9.0.
187
+ `akm task add` in particular uses the *default* allowlist (`akm` only), so a
188
+ standalone `akm-task` bundle is read-only through AKM-native write commands
189
+ even though `akm-task`'s own `placeNew()` is implemented.
190
+
191
+ Reading, searching, and `akm lint` are unaffected by this allowlist — only
192
+ creating, editing, or deleting through AKM's own commands is restricted.
193
+ "Read-only" in [Supported Formats](../reference/supported-formats.md) means
194
+ this write-command restriction, not a filesystem permission.
195
+
196
+ This allowlist boundary is also where AKM's [execution
197
+ boundary](../guides/concepts.md) principle shows up on the write side: AKM
198
+ retrieves and validates every supported format, but it only lets its own
199
+ write commands mutate a narrow, explicitly-declared set of targets — it
200
+ does not widen write access to a format just because that format's adapter
201
+ happens to expose a `placeNew()` implementation.
202
+
203
+ ---
204
+
205
+ ## Task adapter
206
+
207
+ The native and standalone `akm-task` paths delegate to the authoritative task
208
+ source parser, `parseTaskSource`, which accepts only `version: 4` (task
209
+ source v4). A task source v4 document declares exactly one executable
210
+ selector (`uses` or `run`), but its scheduling is OPTIONAL — a document with
211
+ no `schedule:` is valid and runnable manually. A `version: 3` or `version: 2`
212
+ document is no longer read by `src` at all: it fails closed with
213
+ `TASK_SCHEMA_VERSION_UNSUPPORTED`, naming `akm migrate` as the path forward.
214
+ See [Tasks](../reference/tasks.md) for the public source contract and the
215
+ migration path.
216
+
217
+ ---
218
+
219
+ ## Implementation caveats
220
+
221
+ A few adapter-specific behaviors are easy to assume differently from how
222
+ they actually work:
223
+
224
+ - **`agent-skills` recognition/validation are decoupled.** The per-change
225
+ half of `validate()` only inspects changes that resolve to an actual
226
+ `SKILL.md`, so an invalid skill is still indexed as `skill` (with its raw,
227
+ invalid name projected) and its field violations surface only for files
228
+ that exist. `missing-skill-md` is the exception and runs as a separate
229
+ directory pass over `ValidateContext.list`: a **top-level** directory that
230
+ holds files but no `SKILL.md` anywhere within three levels is flagged. A
231
+ package's own resource dirs (`pdf-processing/reference/`) are part of the
232
+ item, not candidate packages, and are never considered.
233
+ - **`claude`/`opencode` share one codec** (`tool-dir-shared.ts`) and differ
234
+ only in instruction filename and adapter/component ids. Both accept only
235
+ the canonical plural tool directories.
236
+ - **`dotenv` redaction is a hard, adapter-level contract.** No frontmatter
237
+ `type:` override can bypass it: `env` entries surface only key names,
238
+ `secret` entries surface only the file name, never content. A `.env`
239
+ file placed under `secrets/` is a secret (name-only), not an env group —
240
+ the directory gate wins over the `.env` suffix.
241
+ - **Task adapters share one task source parser.** A standalone `akm-task`
242
+ bundle and task files owned by the native `akm` adapter both route through
243
+ `parseTaskSource`, which accepts only `version: 4` (task source v4) — a
244
+ `version: 3` or `version: 2` document fails closed with
245
+ `TASK_SCHEMA_VERSION_UNSUPPORTED` and is never indexed, validated, or run.
246
+ Task source v4 requires exactly one `uses` or `run` executable selector,
247
+ but its `schedule:` is OPTIONAL. It recognizes `akm/command`, `commands/`,
248
+ `workflows/`, and `scripts/` targets, refuses the github-action `uses:`
249
+ variant entirely (removed in v4 — no equivalent spelling), and refuses
250
+ agent/task refs and unsupported actions. `.yaml` is a collection hint only:
251
+ recognition still gates on `.yml`, so the near miss is diagnosed but never
252
+ indexed or scheduled. See the [Tasks reference](../reference/tasks.md).
253
+ - **`llm-wiki`, `akm`, and `okf` all reserve `index.md`/`log.md`** as
254
+ structural files — never indexed as concepts, never valid write targets —
255
+ at any depth.
256
+ - **`okf`'s lenient wording is not a lenient gate.** `missing-type` and
257
+ broken-link findings are labelled `info:`/`warning:` in the diagnostic
258
+ text, but diagnostics carry no severity field: `akm lint` funnels every
259
+ finding into one `flagged` list, and `--fail-on-flagged` fails on any
260
+ non-empty list.
261
+ - **`generic-files` is the only adapter with no auto-detection at all.**
262
+ `looksLikeRoot` always returns `false`; a bundle only gets this adapter
263
+ through an explicit `components.<id>.adapter: "generic-files"` override.
264
+
265
+ ---
266
+
267
+ ## See also
268
+
269
+ - [Supported Formats](../reference/supported-formats.md) — the compatibility table this page's internals back
270
+ - [Asset Types](../reference/asset-types.md) — the `akm` adapter's 14 native asset types
271
+ - [Concepts](../guides/concepts.md) — the retrieval loop and execution boundary these adapters serve
272
+ - [Architecture](architecture.md) — sources, refs, the search pipeline, and the write-source chokepoint