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.
- package/CHANGELOG.md +438 -0
- package/README.md +10 -10
- package/ROADMAP.md +112 -0
- package/STABILITY.md +99 -57
- package/dist/api-node.mjs +20 -0
- package/dist/api.d.ts +23 -0
- package/dist/api.js +45 -0
- package/dist/assets/hints/cli-hints-full.md +15 -29
- package/dist/assets/hints/cli-hints-short.md +2 -2
- package/dist/assets/improve-strategies/default.json +3 -3
- package/dist/assets/prompts/consolidate-pair.md +9 -7
- package/dist/assets/stash-skeleton/README.md +1 -1
- package/dist/assets/tasks/improve/akm-improve-consolidate.yml +1 -1
- package/dist/cli/shared.js +31 -48
- package/dist/cli/unknown-flags.js +6 -43
- package/dist/cli.js +8 -34
- package/dist/commands/agent/contribute-cli.js +1 -1
- package/dist/commands/completions.js +1 -2
- package/dist/commands/config-cli.js +5 -28
- package/dist/commands/env/env-cli.js +5 -5
- package/dist/commands/env/secret-cli.js +2 -2
- package/dist/commands/feedback-cli.js +75 -49
- package/dist/commands/health/checks.js +41 -16
- package/dist/commands/health/plugin-staleness.js +52 -22
- package/dist/commands/improve/autonomy-gate.js +5 -3
- package/dist/commands/improve/consolidate/chunking.js +3 -10
- package/dist/commands/improve/consolidate/continuity-check.js +4 -4
- package/dist/commands/improve/consolidate/pair-pass.js +29 -10
- package/dist/commands/improve/consolidate.js +10 -65
- package/dist/commands/improve/distill/lesson-update.js +91 -0
- package/dist/commands/improve/distill-guards.js +1 -43
- package/dist/commands/improve/distill.js +148 -21
- package/dist/commands/improve/eligibility.js +14 -1
- package/dist/commands/improve/extract-cli.js +1 -1
- package/dist/commands/improve/extract-prompt.js +17 -7
- package/dist/commands/improve/extract.js +5 -7
- package/dist/commands/improve/improve-cli.js +125 -118
- package/dist/commands/improve/improve-strategies.js +8 -12
- package/dist/commands/improve/improve.js +134 -52
- package/dist/commands/improve/loop-stages.js +18 -5
- package/dist/commands/improve/planner.js +0 -1
- package/dist/commands/improve/preparation.js +40 -99
- package/dist/commands/improve/proactive-maintenance.js +2 -2
- package/dist/commands/improve/reflect-noise.js +3 -55
- package/dist/commands/improve/reflect.js +29 -34
- package/dist/commands/improve/retrieval-queries.js +37 -0
- package/dist/commands/improve/retrieval-scope.js +2 -2
- package/dist/commands/improve/salience.js +2 -9
- package/dist/commands/improve/session-asset.js +4 -1
- package/dist/commands/improve/stage.js +23 -12
- package/dist/commands/lint/index.js +5 -20
- package/dist/commands/observability-cli.js +3 -9
- package/dist/commands/proposal/drain.js +43 -6
- package/dist/commands/proposal/proposal-cli.js +11 -31
- package/dist/commands/proposal/repository.js +20 -14
- package/dist/commands/proposal/validators/proposal-quality-validators.js +0 -3
- package/dist/commands/read/knowledge.js +3 -3
- package/dist/commands/read/remember-cli.js +0 -13
- package/dist/commands/read/search-cli.js +29 -97
- package/dist/commands/read/search.js +0 -11
- package/dist/commands/read/show.js +0 -19
- package/dist/commands/sources/plugin-upgrade.js +164 -101
- package/dist/commands/sources/sources-cli.js +1 -15
- package/dist/commands/sources/stash-cli.js +6 -14
- package/dist/commands/tasks/tasks-cli.js +4 -115
- package/dist/commands/workflow/plan.js +11 -33
- package/dist/commands/workflow-cli.js +2 -7
- package/dist/core/adapter/adapter-ids.js +1 -2
- package/dist/core/adapter/adapters/agent-skills-adapter.js +0 -4
- package/dist/core/adapter/adapters/akm-adapter.js +9 -48
- package/dist/core/adapter/adapters/akm-lint.js +10 -26
- package/dist/core/adapter/adapters/akm-metadata.js +2 -72
- package/dist/core/adapter/adapters/akm-task-adapter.js +0 -5
- package/dist/core/adapter/adapters/akm-workflow-adapter.js +9 -28
- package/dist/core/adapter/adapters/dotenv-adapter.js +1 -20
- package/dist/core/adapter/adapters/generic-files-adapter.js +0 -10
- package/dist/core/adapter/adapters/llm-wiki-adapter.js +0 -4
- package/dist/core/adapter/adapters/tool-dir-shared.js +0 -24
- package/dist/core/adapter/adapters/website-snapshot-adapter.js +4 -4
- package/dist/core/adapter/recognize-match.js +3 -4
- package/dist/core/common.js +18 -2
- package/dist/core/config/config-schema.js +12 -15
- package/dist/core/config/config-types.js +6 -15
- package/dist/core/config/config-walker.js +6 -23
- package/dist/core/config/config.js +17 -80
- package/dist/core/config/engine-semantics.js +7 -3
- package/dist/core/config/schema/engines.js +7 -7
- package/dist/core/config/schema/improve-processes.js +10 -63
- package/dist/core/config/schema/improve.js +2 -21
- package/dist/core/config/schema/index-config.js +6 -39
- package/dist/core/env-secret-ref.js +2 -45
- package/dist/core/errors.js +1 -2
- package/dist/core/extra-params.js +2 -86
- package/dist/core/file-lock.js +12 -7
- package/dist/core/improve-result.js +13 -1
- package/dist/core/mutation-target.js +2 -2
- package/dist/core/paths.js +4 -0
- package/dist/core/recognition-util.js +4 -5
- package/dist/core/run-lock.js +1 -1
- package/dist/core/subprocess.js +49 -0
- package/dist/core/warn.js +21 -4
- package/dist/core/write-source.js +3 -3
- package/dist/execution/target-ref.js +1 -2
- package/dist/indexer/indexer.js +15 -6
- package/dist/indexer/passes/memory-inference.js +15 -6
- package/dist/indexer/search/db-search.js +49 -36
- package/dist/indexer/search/fts-query.js +0 -19
- package/dist/indexer/search/ranking.js +29 -1
- package/dist/indexer/usage/usage-events.js +21 -16
- package/dist/integrations/agent/engine-resolution.js +5 -2
- package/dist/integrations/agent/index.js +1 -1
- package/dist/integrations/agent/profiles.js +41 -98
- package/dist/integrations/agent/request-lowering.js +3 -3
- package/dist/integrations/harnesses/aider/index.js +5 -0
- package/dist/integrations/harnesses/amazonq/index.js +1 -0
- package/dist/integrations/harnesses/claude/config-import.js +2 -3
- package/dist/integrations/harnesses/claude/index.js +5 -0
- package/dist/integrations/harnesses/codex/index.js +1 -0
- package/dist/integrations/harnesses/copilot/index.js +1 -0
- package/dist/integrations/harnesses/gemini/index.js +1 -0
- package/dist/integrations/harnesses/index.js +18 -39
- package/dist/integrations/harnesses/opencode/agent-builder.js +60 -35
- package/dist/integrations/harnesses/opencode/config-import.js +121 -52
- package/dist/integrations/harnesses/opencode/index.js +22 -0
- package/dist/integrations/harnesses/opencode/plugin-layout.js +68 -0
- package/dist/integrations/harnesses/opencode/session-log-types.js +12 -0
- package/dist/integrations/harnesses/opencode/session-log-v1.js +72 -0
- package/dist/integrations/harnesses/opencode/session-log-v2.js +140 -0
- package/dist/integrations/harnesses/opencode/session-log.js +104 -115
- package/dist/integrations/harnesses/opencode/version.js +98 -0
- package/dist/integrations/harnesses/opencode-sdk/{harness.js → index.js} +5 -17
- package/dist/integrations/harnesses/opencode-sdk/sdk-runner.js +105 -206
- package/dist/integrations/harnesses/opencode-sdk/v1-adapter.js +199 -0
- package/dist/integrations/harnesses/opencode-sdk/v2-adapter.js +254 -0
- package/dist/integrations/harnesses/opencode-sdk/wire.js +66 -0
- package/dist/integrations/harnesses/openhands/index.js +1 -0
- package/dist/integrations/harnesses/pi/index.js +1 -0
- package/dist/integrations/harnesses/shared.js +2 -0
- package/dist/integrations/harnesses/types.js +2 -0
- package/dist/llm/client.js +74 -14
- package/dist/output/cli-hints.js +1 -1
- package/dist/output/context.js +10 -19
- package/dist/output/format-exempt.js +5 -8
- package/dist/output/shapes/helpers.js +1 -22
- package/dist/output/shapes/passthrough.js +0 -1
- package/dist/output/shapes.js +3 -31
- package/dist/output/stdout.js +5 -1
- package/dist/output/text/command-format.js +6 -1
- package/dist/output/text/workflow-format.js +4 -22
- package/dist/scripts/akm-migrate-node.js +15769 -16731
- package/dist/scripts/akm-migrate.js +16339 -17297
- package/dist/setup/detect.js +10 -4
- package/dist/setup/harness-config-import.js +5 -14
- package/dist/setup/setup.js +1 -1
- package/dist/setup/steps/tasks.js +12 -13
- package/dist/sources/providers/git-stash.js +94 -13
- package/dist/storage/repositories/index-utility-repository.js +2 -32
- package/dist/storage/repositories/index-vec-repository.js +4 -0
- package/dist/storage/repositories/task-history-repository.js +0 -5
- package/dist/storage/repositories/workflow-runs-repository.js +5 -15
- package/dist/tasks/embedded.js +2 -1
- package/dist/tasks/run/run-command-task.js +9 -1
- package/dist/tasks/run/run-workflow-task.js +4 -3
- package/dist/tasks/run/task-history.js +0 -2
- package/dist/tasks/run/task-log.js +38 -1
- package/dist/tasks/schedule-gates.js +39 -0
- package/dist/tasks/scheduler-binding.js +0 -16
- package/dist/tasks/scheduler-sync.js +3 -97
- package/dist/tasks/source/bounded-document.js +1 -1
- package/dist/tasks/source/task-source-v4.js +2 -12
- package/dist/tasks/task-run-reserved-flags.js +2 -31
- package/dist/workflows/authoring/authoring.js +6 -6
- package/dist/workflows/compile.js +8 -65
- package/dist/workflows/exec/child-workflow.js +22 -3
- package/dist/workflows/exec/native-executor.js +12 -147
- package/dist/workflows/exec/run-workflow.js +31 -103
- package/dist/workflows/exec/step-work.js +9 -178
- package/dist/workflows/exec/unit-dispatch.js +0 -10
- package/dist/workflows/freeze/environment.js +3 -44
- package/dist/workflows/freeze/freeze.js +8 -41
- package/dist/workflows/freeze/targets/child-workflow.js +27 -63
- package/dist/workflows/freeze/targets/command.js +2 -16
- package/dist/workflows/freeze/targets/shell.js +0 -2
- package/dist/workflows/freeze/task-bindings.js +2 -28
- package/dist/workflows/ir/params.js +12 -2
- package/dist/workflows/parser.js +82 -232
- package/dist/workflows/plan.js +1 -1
- package/dist/workflows/renderer.js +10 -19
- package/dist/workflows/runtime/run-plan.js +11 -53
- package/dist/workflows/runtime/runs.js +4 -27
- package/dist/workflows/source-files.js +12 -16
- package/dist/workflows/source-semantics.js +1 -93
- package/docs/README.md +43 -42
- package/docs/agents/README.md +15 -0
- package/docs/agents/agent-install.md +14 -0
- package/docs/architecture/0.10-process-rules.md +827 -0
- package/docs/architecture/README.md +67 -0
- package/docs/architecture/adapters.md +258 -0
- package/docs/architecture/akm-architecture-decision-history.md +2055 -0
- package/docs/architecture/akm-core-principles.md +126 -0
- package/docs/architecture/architecture.md +578 -0
- package/docs/architecture/comparisons/claude-code-vs-akm-workflows-full.md +550 -0
- package/docs/architecture/decisions/0001-no-interpolation-attached-structured-context.md +72 -0
- package/docs/architecture/decisions/0002-unit-reuse-and-input-hash-scope.md +142 -0
- package/docs/architecture/decisions/0003-child-env-allowlist-and-provenance.md +189 -0
- package/docs/architecture/decisions/0004-task-input-contract-and-flag-coercion.md +97 -0
- package/docs/architecture/decisions/0005-task-result-vocabulary-and-legacy-read-mapping.md +108 -0
- package/docs/architecture/decisions/0006-task-source-version-routing.md +124 -0
- package/docs/architecture/decisions/0007-workflow-composition-bounds.md +83 -0
- package/docs/architecture/decisions/0008-task-binding-normalization.md +88 -0
- package/docs/architecture/decisions/0009-child-run-publication-column-parity.md +80 -0
- package/docs/architecture/decisions/0010-driver-protocol-cut.md +36 -0
- package/docs/architecture/decisions/0011-engine-run-loop-invariants.md +125 -0
- package/docs/architecture/decisions/README.md +62 -0
- package/docs/architecture/improvement.md +479 -0
- package/docs/architecture/internals/classification.md +154 -0
- package/docs/architecture/internals/fresh-host-rebuild-runbook.md +40 -0
- package/docs/architecture/internals/functional-contract-patterns.md +340 -0
- package/docs/architecture/internals/health-advisories.md +110 -0
- package/docs/architecture/internals/improve-workflow.md +719 -0
- package/docs/architecture/internals/indexing.md +498 -0
- package/docs/architecture/internals/registry-network-boundary.md +57 -0
- package/docs/architecture/internals/search.md +248 -0
- package/docs/architecture/internals/storage-locations.md +943 -0
- package/docs/architecture/persisted-data-compat.md +68 -0
- package/docs/architecture/reviews/env-secret-access.md +319 -0
- package/docs/architecture/runtime-boundary-design.md +153 -0
- package/docs/architecture/specs/0.9.0-close-out-plan.md +361 -0
- package/docs/architecture/specs/0.9.0-decisions.md +532 -0
- package/docs/architecture/specs/0.9.0-docs-code-drift-register.md +745 -0
- package/docs/architecture/specs/0.9.0-open-items-register.md +135 -0
- package/docs/architecture/specs/0.9.0-public-api-issue-backlog.md +740 -0
- package/docs/architecture/specs/0.9.0-release-surface-review.md +636 -0
- package/docs/architecture/specs/agent-command-engine-model-design.md +513 -0
- package/docs/architecture/specs/akm-0.9.0-bundle-adapter-spec.md +501 -0
- package/docs/architecture/specs/akm-0.9.0-ref-grammar-decision.md +291 -0
- package/docs/architecture/specs/akm-format-neutral-bundle-workspace-spec.md +2059 -0
- package/docs/architecture/specs/di-seams-plan.md +539 -0
- package/docs/architecture/specs/driver-protocol-keep-or-cut.md +275 -0
- package/docs/architecture/specs/fact-asset-type.md +142 -0
- package/docs/architecture/specs/improve-collapse-churn-detector-design.md +634 -0
- package/docs/architecture/specs/okf-support.md +148 -0
- package/docs/architecture/specs/ref.md +329 -0
- package/docs/architecture/specs/reviews/task-workflow-unification/README.md +72 -0
- package/docs/architecture/specs/reviews/task-workflow-unification/findings-consolidated.md +152 -0
- package/docs/architecture/specs/reviews/task-workflow-unification/library-eval-alternatives.md +352 -0
- package/docs/architecture/specs/reviews/task-workflow-unification/library-eval-bunqueue.md +300 -0
- package/docs/architecture/specs/reviews/task-workflow-unification/library-eval-openworkflow.md +402 -0
- package/docs/architecture/specs/reviews/task-workflow-unification/opus-review-1.md +758 -0
- package/docs/architecture/specs/reviews/task-workflow-unification/opus-review-2.md +645 -0
- package/docs/architecture/specs/reviews/task-workflow-unification/opus-review-3.md +602 -0
- package/docs/architecture/specs/reviews/task-workflow-unification/panel-r1-adversarial.md +27 -0
- package/docs/architecture/specs/reviews/task-workflow-unification/panel-r1-architecture.md +27 -0
- package/docs/architecture/specs/reviews/task-workflow-unification/panel-r1-coverage.md +74 -0
- package/docs/architecture/specs/reviews/task-workflow-unification/panel-r1-security.md +15 -0
- package/docs/architecture/specs/reviews/task-workflow-unification/panel-r2-adversarial.md +132 -0
- package/docs/architecture/specs/reviews/task-workflow-unification/panel-r2-verification.md +147 -0
- package/docs/architecture/specs/stash-conventions-code-spec.md +275 -0
- package/docs/architecture/specs/stash-organization-conventions.md +377 -0
- package/docs/architecture/specs/task-workflow-format-unification.md +721 -0
- package/docs/architecture/specs/workflow-engine-buy-vs-build.md +231 -0
- package/docs/architecture/specs/workflow-format-unification.md +432 -0
- package/docs/architecture/testing/manual-testing-checklist.md +3411 -0
- package/docs/architecture/testing/okf-v0.2-conformance-runbook.md +924 -0
- package/docs/architecture/testing/task-workflow-manual-tests.md +1720 -0
- package/docs/architecture/testing/testing-workflow.md +446 -0
- package/docs/architecture/workflow-engine.md +223 -0
- package/docs/guides/README.md +33 -0
- package/docs/guides/author-bundles.md +310 -0
- package/docs/guides/author-workflows.md +490 -0
- package/docs/guides/bundles.md +323 -0
- package/docs/guides/capture-knowledge.md +136 -0
- package/docs/guides/claude-code-vs-akm-workflows.md +29 -0
- package/docs/guides/concepts.md +93 -0
- package/docs/guides/discover-and-load.md +158 -0
- package/docs/guides/getting-started.md +240 -0
- package/docs/guides/improve-the-library.md +247 -0
- package/docs/guides/knowledge-management.md +18 -0
- package/docs/guides/recipes/headless-install.md +97 -0
- package/docs/guides/recipes/website-source.md +28 -0
- package/docs/guides/run-workflows.md +279 -0
- package/docs/guides/scheduling.md +131 -0
- package/docs/guides/use-with-any-agent.md +174 -0
- package/docs/guides/wikis.md +81 -0
- package/docs/integration/bundling-akm.md +7 -6
- package/docs/maintainers/README.md +19 -0
- package/docs/maintainers/curate-workmap.md +335 -0
- package/docs/maintainers/eval.md +3 -0
- package/docs/maintainers/local-development.md +108 -0
- package/docs/maintainers/release-checklist.md +135 -0
- package/docs/migration/README.md +4 -2
- package/docs/migration/release-notes/0.0.13.md +1 -1
- package/docs/migration/release-notes/0.1.0.md +1 -1
- package/docs/migration/release-notes/0.10.0.md +201 -0
- package/docs/migration/release-notes/0.2.0.md +1 -1
- package/docs/migration/release-notes/0.3.0.md +1 -1
- package/docs/migration/release-notes/0.5.0.md +1 -1
- package/docs/migration/release-notes/0.6.0.md +1 -1
- package/docs/migration/release-notes/0.7.0.md +1 -1
- package/docs/migration/release-notes/0.7.3.md +2 -2
- package/docs/migration/release-notes/0.7.4.md +1 -1
- package/docs/migration/release-notes/0.7.5.md +1 -1
- package/docs/migration/release-notes/0.8.0.md +1 -1
- package/docs/migration/release-notes/0.9.0.md +1 -1
- package/docs/migration/release-notes/0.9.14.md +1 -1
- package/docs/migration/release-notes/0.9.15.md +1 -1
- package/docs/migration/release-notes/0.9.16.md +1 -1
- package/docs/migration/release-notes/0.9.17.md +1 -1
- package/docs/migration/release-notes/0.9.19.md +1 -1
- package/docs/migration/release-notes/0.9.2.md +1 -1
- package/docs/migration/release-notes/README.md +28 -31
- package/docs/migration/v0.5-to-v0.6.md +759 -0
- package/docs/migration/v0.8-to-v0.9.md +1 -1
- package/docs/migration/v0.9-to-v0.10.md +507 -0
- package/docs/plans/0.9.2-agent-command-workflow-plan.md +423 -0
- package/docs/posts/README.md +30 -0
- package/docs/posts/akm-command-tour.md +495 -0
- package/docs/posts/akm-logo-sized.webp +0 -0
- package/docs/posts/belief-aware-memory-12.md +139 -0
- package/docs/posts/config-v2-lessons-16.md +191 -0
- package/docs/posts/improve-loop-autonomous-10.md +225 -0
- package/docs/posts/improve-pipeline-debugging-0803.md +179 -0
- package/docs/posts/intro-part-01.md +76 -0
- package/docs/posts/intro-part-02.md +221 -0
- package/docs/posts/intro-part-03.md +190 -0
- package/docs/posts/intro-part-04.md +221 -0
- package/docs/posts/llm-mode-reflect-13.md +166 -0
- package/docs/posts/openpalm-built-on-akm.md +86 -0
- package/docs/posts/progressive-disclosure-06.md +129 -0
- package/docs/posts/proposal-safety-net-15.md +112 -0
- package/docs/posts/release-0.5.0.md +247 -0
- package/docs/posts/release-0.6.0.md +117 -0
- package/docs/posts/release-0.7.0.md +159 -0
- package/docs/posts/release-0.8.0.md +332 -0
- package/docs/posts/scattered-skills-05.md +100 -0
- package/docs/posts/task-assets-persistent-workflows-11.md +222 -0
- package/docs/posts/team-skills-07.md +198 -0
- package/docs/posts/wiki-agent-knowledge-08.md +223 -0
- package/docs/posts/workflows-vaults-09.md +321 -0
- package/docs/product-surface.md +54 -0
- package/docs/reference/README.md +2 -2
- package/docs/reference/api.md +65 -0
- package/docs/reference/asset-types.md +166 -0
- package/docs/reference/bundle-types.md +2 -4
- package/docs/reference/cli.md +163 -192
- package/docs/reference/configuration.md +101 -20
- package/docs/reference/data-and-telemetry.md +2 -2
- package/docs/reference/env-and-secrets.md +126 -0
- package/docs/reference/memory.md +124 -0
- package/docs/reference/refs.md +156 -0
- package/docs/reference/registry.md +489 -0
- package/docs/reference/supported-formats.md +3 -4
- package/docs/reference/tasks.md +12 -19
- package/docs/reference/website-sources.md +141 -0
- package/docs/reference/workflow-schema.md +89 -317
- package/docs/reference/workflows.md +20 -48
- package/package.json +23 -16
- package/schemas/akm-config.json +2 -243
- package/schemas/akm-task.json +2 -3
- package/schemas/akm-workflow.json +47 -84
- package/dist/assets/improve-strategies/catchup.json +0 -41
- package/dist/assets/improve-strategies/proactive-maintenance.json +0 -24
- package/dist/assets/improve-strategies/quick.json +0 -17
- package/dist/assets/improve-strategies/reflect-distill.json +0 -29
- package/dist/assets/improve-strategies/thorough.json +0 -49
- package/dist/assets/prompts/retrieval-relevance-judge.md +0 -6
- package/dist/assets/tasks/improve/akm-improve-catchup.yml +0 -6
- package/dist/assets/tasks/improve/akm-improve-frequent.yml +0 -4
- package/dist/assets/tasks/improve/akm-improve-nightly.yml +0 -4
- package/dist/cli/retired-commands.js +0 -118
- package/dist/commands/improve/retrieval-gate.js +0 -132
- package/dist/commands/tasks/validate.js +0 -176
- package/dist/core/config/legacy-source-shape-shim.js +0 -117
- package/dist/indexer/feedback/utility-policy.js +0 -75
- package/dist/integrations/harnesses/ids.js +0 -28
- package/dist/tasks/source/task-source-v3-frozen.js +0 -424
- package/dist/tasks/source/task-to-v4.js +0 -863
- package/dist/workflows/exec/worktree.js +0 -372
- package/dist/workflows/freeze/child-output-references.js +0 -83
- package/dist/workflows/freeze/identity.js +0 -22
- package/dist/workflows/freeze/targets/script.js +0 -50
- package/dist/workflows/freeze/targets/task.js +0 -124
- package/dist/workflows/github-yaml.js +0 -506
- package/dist/workflows/runtime/run-outputs.js +0 -80
|
@@ -0,0 +1,495 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: 'What akm Actually Does: A Command-by-Command Tour'
|
|
3
|
+
cover_image: 'https://raw.githubusercontent.com/itlackey/akm/main/docs/posts/akm-logo-sized.webp'
|
|
4
|
+
series: akm-basics
|
|
5
|
+
description: 'A high-level guide to what akm is for, what each command does, and how teams use the CLI in real workflows.'
|
|
6
|
+
tags:
|
|
7
|
+
- ai
|
|
8
|
+
- agents
|
|
9
|
+
- cli
|
|
10
|
+
- productivity
|
|
11
|
+
published: true
|
|
12
|
+
id: 3629633
|
|
13
|
+
date: '2026-05-07T23:51:17Z'
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
> This is a dated article from AKM's publishing archive. For current product behavior, see the
|
|
17
|
+
> [documentation index](https://github.com/itlackey/akm/blob/main/docs/README.md).
|
|
18
|
+
|
|
19
|
+
If you've looked at `akm` for the first time and thought "this seems useful, but what do all these commands actually *do*?" this post is for you.
|
|
20
|
+
|
|
21
|
+
At a high level, `akm` is a package manager for AI agent capabilities. It gives your agents a searchable library of scripts, skills, commands, agents, knowledge docs, workflows, environment groups, wikis, lessons, and memories. Instead of dumping everything into a giant system prompt, you let the agent discover what it needs with search, then load the right asset at the right time.
|
|
22
|
+
|
|
23
|
+
That's the big idea. The practical question is how the command surface fits together in day-to-day work.
|
|
24
|
+
|
|
25
|
+
This post walks through the CLI by job-to-be-done, with real examples of when you'd use each command.
|
|
26
|
+
|
|
27
|
+
> This command-family framing reflects `akm` v0.9.0.
|
|
28
|
+
|
|
29
|
+
## The Short Version
|
|
30
|
+
|
|
31
|
+
You can think about `akm` in seven layers:
|
|
32
|
+
|
|
33
|
+
1. **Set up the workspace** — `setup`, `init`, `config`, `info`, `index`
|
|
34
|
+
2. **Connect sources and discover new ones** — `add`, `list`, `update`, `remove`, `clone`, `sync`, `registry`
|
|
35
|
+
3. **Find and inspect assets** — `curate`, `search`, `show`
|
|
36
|
+
4. **Build local knowledge and operational context** — `remember`, `import`, LLM wiki bundles, `env`
|
|
37
|
+
5. **Run repeatable procedures** — `workflow`
|
|
38
|
+
6. **Continuously improve the stash** — `feedback`, `history`, `log`, `improve`, `propose`, `proposal`
|
|
39
|
+
7. **Operate the CLI comfortably** — `help`, `hints`, `completions`, `upgrade`
|
|
40
|
+
|
|
41
|
+
If you only remember one mental model, make it this:
|
|
42
|
+
|
|
43
|
+
- `akm add` tells akm where content lives
|
|
44
|
+
- `akm index` makes that content searchable
|
|
45
|
+
- `akm curate` gives the best first shortlist for a request
|
|
46
|
+
- `akm search` is for deeper discovery when you need more than the curated list
|
|
47
|
+
- `akm show` loads the full thing
|
|
48
|
+
|
|
49
|
+
Everything else supports one of those steps.
|
|
50
|
+
|
|
51
|
+
## What akm Is Really For
|
|
52
|
+
|
|
53
|
+
Most teams already have agent assets. They're just scattered.
|
|
54
|
+
|
|
55
|
+
- Claude Code skills in one folder
|
|
56
|
+
- OpenCode commands in another
|
|
57
|
+
- project notes in random markdown files
|
|
58
|
+
- internal runbooks in a docs repo
|
|
59
|
+
- half-remembered lessons buried in old chats
|
|
60
|
+
|
|
61
|
+
`akm` turns that mess into a searchable, reusable library.
|
|
62
|
+
|
|
63
|
+
For example, imagine a team that ships a web app every week. They might use `akm` to unify:
|
|
64
|
+
|
|
65
|
+
- local review and release skills
|
|
66
|
+
- a shared Git repo of deployment workflows
|
|
67
|
+
- internal docs imported as knowledge
|
|
68
|
+
- a production environment group that exposes secret *keys* without leaking values
|
|
69
|
+
- memories like "staging deploys require VPN"
|
|
70
|
+
|
|
71
|
+
Now an agent can start with a curated shortlist for "ship release", load the release workflow, check the deployment environment group, read the runbook section it needs, and only fall back to broader search if it needs more options.
|
|
72
|
+
|
|
73
|
+
## 1. First-Run and Environment Commands
|
|
74
|
+
|
|
75
|
+
### `akm setup`
|
|
76
|
+
|
|
77
|
+
Use this when you want the guided on-ramp.
|
|
78
|
+
|
|
79
|
+
```sh
|
|
80
|
+
akm setup
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
Real-world use: you just installed `akm` on a new laptop and want the wizard to create the working stash, configure providers, and build the first index without editing config by hand.
|
|
84
|
+
|
|
85
|
+
### `akm init`
|
|
86
|
+
|
|
87
|
+
Use this when you want to skip the wizard and just create the working stash.
|
|
88
|
+
|
|
89
|
+
```sh
|
|
90
|
+
akm init --dir ~/akm # doclint:ignore (historical — pre-0.9.0 command spelling)
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
Real-world use: you're scripting environment bootstrap for a devcontainer or CI image and want a known stash location without interactive prompts.
|
|
94
|
+
|
|
95
|
+
### `akm config`
|
|
96
|
+
|
|
97
|
+
Use this to inspect or change settings.
|
|
98
|
+
|
|
99
|
+
```sh
|
|
100
|
+
akm config get output.format
|
|
101
|
+
akm config set output.detail full
|
|
102
|
+
akm info
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
Real-world use: your agent prefers text output in one repo and JSON in another, or you want to set a default write target for memories and imports.
|
|
106
|
+
|
|
107
|
+
### `akm info`
|
|
108
|
+
|
|
109
|
+
Use this as the health check.
|
|
110
|
+
|
|
111
|
+
```sh
|
|
112
|
+
akm info
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
Real-world use: after setup, you want to confirm the version, active sources, registries, and whether semantic search is actually ready.
|
|
116
|
+
|
|
117
|
+
### `akm index`
|
|
118
|
+
|
|
119
|
+
Use this whenever content changed and you want search to reflect it.
|
|
120
|
+
|
|
121
|
+
```sh
|
|
122
|
+
akm index
|
|
123
|
+
akm index --full
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
Real-world use: you added a GitHub stash, imported some docs, and created two memories. `akm index` refreshes the local search database so the agent can discover them.
|
|
127
|
+
|
|
128
|
+
## 2. Source and Registry Commands
|
|
129
|
+
|
|
130
|
+
These commands answer two related questions:
|
|
131
|
+
|
|
132
|
+
- where should akm look for assets right now?
|
|
133
|
+
- where can I discover more stashes later?
|
|
134
|
+
|
|
135
|
+
### `akm add`
|
|
136
|
+
|
|
137
|
+
This is how you register a source.
|
|
138
|
+
|
|
139
|
+
```sh
|
|
140
|
+
akm add ~/.claude/skills # doclint:ignore (historical — pre-0.9.0 command spelling)
|
|
141
|
+
akm add github:your-org/team-agent-toolkit # doclint:ignore (historical — pre-0.9.0 command spelling)
|
|
142
|
+
akm add @scope/platform-stash # doclint:ignore (historical — pre-0.9.0 command spelling)
|
|
143
|
+
akm add https://docs.example.com --name public-docs # doclint:ignore (historical — pre-0.9.0 command spelling)
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
Real-world use:
|
|
147
|
+
|
|
148
|
+
- point `akm` at your existing Claude Code skills
|
|
149
|
+
- pull in a shared team stash from GitHub
|
|
150
|
+
- install an npm-published stash
|
|
151
|
+
- crawl a documentation site as searchable knowledge
|
|
152
|
+
|
|
153
|
+
### `akm list`
|
|
154
|
+
|
|
155
|
+
Shows what sources are already connected.
|
|
156
|
+
|
|
157
|
+
```sh
|
|
158
|
+
akm list # doclint:ignore (historical — pre-0.9.0 command spelling)
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
Real-world use: you're debugging why a search result isn't appearing and want to verify whether the expected repo or local directory is even registered.
|
|
162
|
+
|
|
163
|
+
### `akm update`
|
|
164
|
+
|
|
165
|
+
Refreshes managed sources.
|
|
166
|
+
|
|
167
|
+
```sh
|
|
168
|
+
akm update --all # doclint:ignore (historical — pre-0.9.0 command spelling)
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
Real-world use: your platform team shipped an updated deployment stash and everyone pulls the latest version before a release.
|
|
172
|
+
|
|
173
|
+
### `akm remove`
|
|
174
|
+
|
|
175
|
+
Disconnect a source you no longer want indexed.
|
|
176
|
+
|
|
177
|
+
```sh
|
|
178
|
+
akm remove public-docs # doclint:ignore (historical — pre-0.9.0 command spelling)
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
Real-world use: a website source became noisy or outdated and you want it out of search results.
|
|
182
|
+
|
|
183
|
+
### `akm clone`
|
|
184
|
+
|
|
185
|
+
Copies a single asset into your working stash or another directory so you can edit it locally.
|
|
186
|
+
|
|
187
|
+
```sh
|
|
188
|
+
akm clone skills/code-review
|
|
189
|
+
akm clone "npm:@scope/platform-stash//workflows/ship-release"
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
Real-world use: you find a good community skill, clone it into your local stash, and tailor it for your team's code review conventions.
|
|
193
|
+
|
|
194
|
+
### `akm sync`
|
|
195
|
+
|
|
196
|
+
Commit local stash changes, and optionally push if the source is writable.
|
|
197
|
+
|
|
198
|
+
```sh
|
|
199
|
+
akm sync -m "Tighten release workflow"
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
Real-world use: your team keeps its shared stash in Git. After improving a workflow and an environment group, `akm sync` records the change like normal code.
|
|
203
|
+
|
|
204
|
+
### `akm registry`
|
|
205
|
+
|
|
206
|
+
Use registries to discover new stashes you have not installed yet.
|
|
207
|
+
|
|
208
|
+
```sh
|
|
209
|
+
akm search "code review" --from registry
|
|
210
|
+
akm registry add https://example.com/registry/index.json --name team
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
Real-world use: platform engineering publishes an internal stash registry, and teams browse it the same way they'd browse a package registry.
|
|
214
|
+
|
|
215
|
+
## 3. Discovery Commands
|
|
216
|
+
|
|
217
|
+
This is the heart of the product.
|
|
218
|
+
|
|
219
|
+
### `akm curate`
|
|
220
|
+
|
|
221
|
+
Start here for a request or prompt. `curate` is the preferred first stop because it returns a tighter, more task-ready shortlist.
|
|
222
|
+
|
|
223
|
+
```sh
|
|
224
|
+
akm curate "review a large pull request"
|
|
225
|
+
akm curate "ship a bun release"
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
Real-world use: the agent needs a deploy workflow, a release checklist, or a review skill and wants the best few candidates first instead of a broad result set.
|
|
229
|
+
|
|
230
|
+
### `akm search`
|
|
231
|
+
|
|
232
|
+
Use this when you want deeper discovery beyond the curated shortlist.
|
|
233
|
+
|
|
234
|
+
```sh
|
|
235
|
+
akm search "review a large pull request"
|
|
236
|
+
akm search "kubernetes deploy" --type workflow
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
Real-world use: `curate` gave you a solid starting point, but now you want to dig wider, inspect additional assets, or explore the long tail of relevant results.
|
|
240
|
+
|
|
241
|
+
### `akm show`
|
|
242
|
+
|
|
243
|
+
Load the full content of a specific asset.
|
|
244
|
+
|
|
245
|
+
```sh
|
|
246
|
+
akm show skills/code-review
|
|
247
|
+
akm show workflows/ship-release
|
|
248
|
+
akm show knowledge/incident-runbook#rollback
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
Real-world use: `curate` or `search` identifies the right asset; `show` gives the agent the actual instructions, prompt template, workflow steps, or document section it needs to act.
|
|
252
|
+
|
|
253
|
+
## 4. Local Knowledge and Operational Context
|
|
254
|
+
|
|
255
|
+
This is the part of `akm` that turns a stash into living local context instead of a static pile of files.
|
|
256
|
+
|
|
257
|
+
Some commands capture what your team knows. Others make that knowledge safer or more structured. They belong together because they all define the working context your agent can rely on later.
|
|
258
|
+
|
|
259
|
+
### `akm remember`
|
|
260
|
+
|
|
261
|
+
Write a memory.
|
|
262
|
+
|
|
263
|
+
```sh
|
|
264
|
+
akm remember "Staging deploys require VPN access" --tag ops --tag deploy
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
Real-world use: after an incident or a successful fix, you capture the lesson in a searchable format so the next agent run doesn't rediscover it the hard way.
|
|
268
|
+
|
|
269
|
+
### `akm import`
|
|
270
|
+
|
|
271
|
+
Bring a document into the stash as knowledge.
|
|
272
|
+
|
|
273
|
+
```sh
|
|
274
|
+
akm import ./docs/release-checklist.md
|
|
275
|
+
akm import https://example.com/internal-guide/auth
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
Real-world use: you have a good architecture note or ops runbook outside the stash and want it indexed alongside everything else.
|
|
279
|
+
|
|
280
|
+
### LLM wikis
|
|
281
|
+
|
|
282
|
+
Use an LLM wiki for a long-lived, agent-maintained knowledge base. As of 0.9.0 a wiki isn't a separate command family — it's a **bundle format**: a directory with a `schema.md` rulebook and a `pages/` directory is recognized and indexed automatically the next time you run `akm index`.
|
|
283
|
+
|
|
284
|
+
```sh
|
|
285
|
+
akm index
|
|
286
|
+
akm search "architecture" --type knowledge
|
|
287
|
+
akm show research-wiki//pages/attention
|
|
288
|
+
akm lint
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
Real-world use: your team wants a research or architecture wiki with raw sources, curated pages, and deterministic linting instead of ad hoc markdown sprawl. Page writes go through the agent's own file tools (akm's job is recognition and search, not authoring); see the [LLM Wikis guide](../guides/wikis.md) for the directory layout.
|
|
292
|
+
|
|
293
|
+
Wiki pages belong with local knowledge, not off to the side. It's the shape you reach for when a single imported doc or memory is not enough and you need a maintained body of team knowledge, discovered through the same `akm search`/`akm show` surface as everything else.
|
|
294
|
+
|
|
295
|
+
### `akm env`
|
|
296
|
+
|
|
297
|
+
Use environment groups when the agent needs operational context about secrets without seeing the secret values.
|
|
298
|
+
|
|
299
|
+
```sh
|
|
300
|
+
akm show env/production
|
|
301
|
+
akm env run production -- env
|
|
302
|
+
```
|
|
303
|
+
|
|
304
|
+
Real-world use: a deploy workflow needs `DATABASE_URL` and `DEPLOY_TOKEN`. The agent can verify the keys are present, then load the environment only at execution time.
|
|
305
|
+
|
|
306
|
+
Environment groups fit here because they are part of the local operating context. They tell the agent what environment shape exists and let commands run safely without exposing secret values in the chat transcript.
|
|
307
|
+
|
|
308
|
+
## 5. Procedure Commands
|
|
309
|
+
|
|
310
|
+
Once you have the right knowledge and context, the next problem is execution across time.
|
|
311
|
+
|
|
312
|
+
### `akm workflow`
|
|
313
|
+
|
|
314
|
+
Use workflows for repeatable, resumable procedures.
|
|
315
|
+
|
|
316
|
+
```sh
|
|
317
|
+
akm workflow start workflow:ship-release --params '{"version":"2.4.0"}' # doclint:ignore (historical workflow lifecycle removed in 0.9)
|
|
318
|
+
akm workflow next workflow:ship-release # doclint:ignore (historical workflow lifecycle removed in 0.9)
|
|
319
|
+
akm workflow complete run-123 --step validate --notes "Version and branch confirmed" # doclint:ignore (historical workflow lifecycle removed in 0.9)
|
|
320
|
+
```
|
|
321
|
+
|
|
322
|
+
Real-world use: shipping a release, rotating secrets, onboarding a new service, or any other multi-step process that should survive across sessions instead of living only in chat history.
|
|
323
|
+
|
|
324
|
+
## 6. Continuous Improvement Commands
|
|
325
|
+
|
|
326
|
+
This is the loop that makes `akm` better over time.
|
|
327
|
+
|
|
328
|
+
The flow is simple:
|
|
329
|
+
|
|
330
|
+
1. an agent uses an asset
|
|
331
|
+
2. you record whether it helped with `feedback`
|
|
332
|
+
3. you inspect what happened with `history` or `log`
|
|
333
|
+
4. you ask for improvements with `improve` or `propose`
|
|
334
|
+
5. you review the result with `proposal`
|
|
335
|
+
6. you turn recurring feedback into reusable lessons with `improve`
|
|
336
|
+
|
|
337
|
+
These commands should be thought about as one system, not as isolated features.
|
|
338
|
+
|
|
339
|
+
### `akm feedback`
|
|
340
|
+
|
|
341
|
+
Record whether an asset helped.
|
|
342
|
+
|
|
343
|
+
```sh
|
|
344
|
+
akm feedback workflows/ship-release --positive
|
|
345
|
+
akm feedback skills/legacy-deploy --negative --reason "Outdated after platform migration"
|
|
346
|
+
```
|
|
347
|
+
|
|
348
|
+
Real-world use: over time, assets that consistently help rise in ranking and stale ones become easier to spot.
|
|
349
|
+
|
|
350
|
+
### `akm log`
|
|
351
|
+
|
|
352
|
+
Read the append-only realtime event stream — inspect the recorded state
|
|
353
|
+
changes for an asset or the whole stash.
|
|
354
|
+
|
|
355
|
+
```sh
|
|
356
|
+
akm log --ref workflow:ship-release
|
|
357
|
+
```
|
|
358
|
+
|
|
359
|
+
Real-world use: you want to know whether a workflow was searched, shown, or downvoted recently while cleaning up a team's stash, or another process is watching `akm` activity and reacting when new feedback, imports, or proposals land (poll `--since '@offset:<id>'` to resume without duplicates).
|
|
360
|
+
|
|
361
|
+
### `akm improve`
|
|
362
|
+
|
|
363
|
+
Ask an external agent to improve an existing asset.
|
|
364
|
+
|
|
365
|
+
```sh
|
|
366
|
+
akm improve skills/code-review --task "make this stricter about test coverage"
|
|
367
|
+
```
|
|
368
|
+
|
|
369
|
+
Real-world use: you have a decent review skill, but you want an agent to improve it based on how it's actually being used.
|
|
370
|
+
|
|
371
|
+
### `akm proposal new`
|
|
372
|
+
|
|
373
|
+
Generate a brand-new asset proposal.
|
|
374
|
+
|
|
375
|
+
```sh
|
|
376
|
+
akm proposal new workflow incident-rollback --task "Rollback procedure for failed production deploys"
|
|
377
|
+
```
|
|
378
|
+
|
|
379
|
+
Real-world use: repeated gaps in your stash show up in `history` and `log`, so you create a first draft for the missing workflow or skill.
|
|
380
|
+
|
|
381
|
+
### Proposal Queue
|
|
382
|
+
|
|
383
|
+
Review, diff, accept, or reject queued proposals.
|
|
384
|
+
|
|
385
|
+
```sh
|
|
386
|
+
akm proposal list
|
|
387
|
+
akm proposal diff 42
|
|
388
|
+
akm proposal accept 42
|
|
389
|
+
```
|
|
390
|
+
|
|
391
|
+
Real-world use: keep human review in the loop before generated assets become part of the live stash.
|
|
392
|
+
|
|
393
|
+
## 7. Operator Ergonomics
|
|
394
|
+
|
|
395
|
+
These are the commands that make the CLI easier to live with day to day.
|
|
396
|
+
|
|
397
|
+
### `akm help`
|
|
398
|
+
|
|
399
|
+
Focused help topics, especially migrations.
|
|
400
|
+
|
|
401
|
+
```sh
|
|
402
|
+
akm help migrate latest
|
|
403
|
+
```
|
|
404
|
+
|
|
405
|
+
Real-world use: you upgraded `akm` and want the release-specific migration notes without leaving the terminal.
|
|
406
|
+
|
|
407
|
+
### `akm hints`
|
|
408
|
+
|
|
409
|
+
Print instructions you can drop into `AGENTS.md` or `CLAUDE.md`.
|
|
410
|
+
|
|
411
|
+
```sh
|
|
412
|
+
akm hints
|
|
413
|
+
```
|
|
414
|
+
|
|
415
|
+
Real-world use: you want every project to tell its coding agent how to use the local `akm` installation.
|
|
416
|
+
|
|
417
|
+
### `akm completions`
|
|
418
|
+
|
|
419
|
+
Generate or install shell completion.
|
|
420
|
+
|
|
421
|
+
```sh
|
|
422
|
+
akm completions --install
|
|
423
|
+
```
|
|
424
|
+
|
|
425
|
+
Real-world use: you use `akm` daily and want tab completion for commands and flags.
|
|
426
|
+
|
|
427
|
+
### `akm upgrade`
|
|
428
|
+
|
|
429
|
+
Upgrade the `akm` binary itself.
|
|
430
|
+
|
|
431
|
+
```sh
|
|
432
|
+
akm upgrade --check
|
|
433
|
+
```
|
|
434
|
+
|
|
435
|
+
Real-world use: you installed the standalone binary and want to see whether a newer release is available.
|
|
436
|
+
|
|
437
|
+
## 8. The Commands People Use Most
|
|
438
|
+
|
|
439
|
+
In practice, most teams live in a much smaller subset of the CLI:
|
|
440
|
+
|
|
441
|
+
```sh
|
|
442
|
+
akm setup
|
|
443
|
+
akm add ... # doclint:ignore (historical — pre-0.9.0 command spelling)
|
|
444
|
+
akm index
|
|
445
|
+
akm curate "..."
|
|
446
|
+
akm show <ref>
|
|
447
|
+
akm remember "..."
|
|
448
|
+
akm feedback <ref> --positive
|
|
449
|
+
```
|
|
450
|
+
|
|
451
|
+
If your use case grows, the rest of the command surface is there:
|
|
452
|
+
|
|
453
|
+
- `workflow` when procedures need state
|
|
454
|
+
- an LLM wiki bundle (`schema.md` + `pages/`) when local knowledge needs structure
|
|
455
|
+
- `env` when local operational context includes secrets
|
|
456
|
+
- `registry` when discovery goes beyond your local stash
|
|
457
|
+
- `feedback` / `history` / `log` / `improve` / `propose` / `proposal` when you want a real improvement loop
|
|
458
|
+
|
|
459
|
+
## A Simple End-to-End Example
|
|
460
|
+
|
|
461
|
+
Let's say your team is onboarding a new service.
|
|
462
|
+
|
|
463
|
+
1. Run `akm add github:your-org/platform-stash`
|
|
464
|
+
2. Run `akm add ./docs/runbooks`
|
|
465
|
+
3. Run `akm index`
|
|
466
|
+
4. Start with `akm curate "onboard a new service"`
|
|
467
|
+
5. Open the best match with `akm show workflows/service-onboarding`
|
|
468
|
+
6. Check required environment keys with `akm show env/staging`
|
|
469
|
+
7. Add the final onboarding notes as an agent-authored page under the team wiki bundle's `pages/`, then `akm index` to pick it up
|
|
470
|
+
8. Capture a new lesson with `akm remember "Service onboarding requires DNS approval from ops" --tag ops`
|
|
471
|
+
9. Record whether the workflow helped with `akm feedback workflows/service-onboarding --positive`
|
|
472
|
+
10. If the workflow was weak, run `akm improve workflows/service-onboarding --task "improve this after the latest run"`
|
|
473
|
+
|
|
474
|
+
That's `akm` in a nutshell: connect sources, index them, find what matters, load only what you need, and keep the library getting better.
|
|
475
|
+
|
|
476
|
+
## Final Takeaway
|
|
477
|
+
|
|
478
|
+
`akm` is not trying to replace your coding assistant. It's the layer that makes your assistant's skills, docs, procedures, and institutional memory manageable at scale.
|
|
479
|
+
|
|
480
|
+
If you want the one-sentence version:
|
|
481
|
+
|
|
482
|
+
> `akm` is the command line system that helps agents discover, load, share, improve, and safely reuse the capabilities they need to do real work.
|
|
483
|
+
|
|
484
|
+
And if you're wondering where to start, start here:
|
|
485
|
+
|
|
486
|
+
```sh
|
|
487
|
+
akm setup
|
|
488
|
+
akm add ~/.claude/skills # doclint:ignore (historical — pre-0.9.0 command spelling)
|
|
489
|
+
akm add github:your-org/team-agent-toolkit # doclint:ignore (historical — pre-0.9.0 command spelling)
|
|
490
|
+
akm index
|
|
491
|
+
akm curate "code review"
|
|
492
|
+
akm show skills/code-review
|
|
493
|
+
```
|
|
494
|
+
|
|
495
|
+
That gets you from "I installed it" to "my agent can actually use it" in a few minutes.
|
|
Binary file
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: 'Belief-Aware Memory: Teaching Your Agent When Not to Write'
|
|
3
|
+
cover_image: 'https://raw.githubusercontent.com/itlackey/akm/main/docs/posts/akm-logo-sized.webp'
|
|
4
|
+
series: akm-knowledge
|
|
5
|
+
description: 'akm 0.8.0 introduces belief-aware memory — captureMode (hot/background) and beliefState frontmatter that tells the improve loop what it is and is not allowed to overwrite.'
|
|
6
|
+
tags:
|
|
7
|
+
- ai
|
|
8
|
+
- agents
|
|
9
|
+
- memory
|
|
10
|
+
- cli
|
|
11
|
+
published: true
|
|
12
|
+
id: 3814544
|
|
13
|
+
date: '2026-06-04T00:32:02Z'
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
> This is a dated article from AKM's publishing archive. For current product behavior, see the
|
|
17
|
+
> [documentation index](https://github.com/itlackey/akm/blob/main/docs/README.md).
|
|
18
|
+
|
|
19
|
+
A self-improving memory loop sounds like a clear win until you watch it rewrite something correct with something outdated. The agent remembered a fact. You verified it. A later consolidation pass ran against a stale context window, decided the memory was imprecise, and replaced it with a weaker version. The original was better. You lost ground.
|
|
20
|
+
|
|
21
|
+
This is the failure mode that belief-aware memory was built to prevent. Not "agents write wrong things" — that's a model quality problem. The specific failure is: the improve loop, running unsupervised, overwrites correct content it should have left alone. A loop that can degrade its own best work is worse than no loop at all.
|
|
22
|
+
|
|
23
|
+
akm 0.8.0 ships `captureMode` and `beliefState` as first-class frontmatter fields on memory assets. Together they tell the consolidation pass what each memory is, what the agent believes about it, and whether it is eligible to be rewritten.
|
|
24
|
+
|
|
25
|
+
## The Two Capture Modes
|
|
26
|
+
|
|
27
|
+
Every memory asset now carries a `captureMode` field. It has two values.
|
|
28
|
+
|
|
29
|
+
`hot` means the memory was written or explicitly confirmed by a human. The improve loop treats hot memories as read-only. No consolidation plan, no merge proposal, no rewrite. If every memory in a chunk is `captureMode: hot`, the consolidation pass skips the LLM call for that chunk entirely — the chunk is counted as `judgedNoAction` before a single token is spent. This is the all-hot chunk early-exit.
|
|
30
|
+
|
|
31
|
+
`background` means the memory was generated by an agent — promoted during a prior consolidation run, written by an inference pass, produced by `akm remember` without explicit human review. Background memories are eligible for improvement. The consolidation pass can propose merges, rewrites, deletions, or upgrades.
|
|
32
|
+
|
|
33
|
+
When no `captureMode` is set, the memory is treated as eligible for consolidation. Memories that existed before 0.8.0 are treated this way on first encounter.
|
|
34
|
+
|
|
35
|
+
```yaml
|
|
36
|
+
---
|
|
37
|
+
captureMode: hot
|
|
38
|
+
beliefState: asserted
|
|
39
|
+
description: Primary LM Studio endpoint moved to Shredder (192.168.0.99:1234)
|
|
40
|
+
---
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
```yaml
|
|
44
|
+
---
|
|
45
|
+
captureMode: background
|
|
46
|
+
beliefState: active
|
|
47
|
+
description: Approximate token throughput for qwen3.5-9b on RTX 4060 Ti
|
|
48
|
+
---
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
The distinction matters most for memories that are both accurate and stable: architectural decisions, confirmed configuration facts, verified benchmarks. You write them once, mark them hot, and the improve loop stops touching them.
|
|
52
|
+
|
|
53
|
+
## The Belief States
|
|
54
|
+
|
|
55
|
+
`beliefState` describes the agent's current belief about the memory's accuracy. The field has five non-archived values.
|
|
56
|
+
|
|
57
|
+
`active` is the default when no `beliefState` is set. The memory is currently believed to be true. The consolidation pass treats it normally according to its `captureMode`.
|
|
58
|
+
|
|
59
|
+
`asserted` is the human-authority variant of `active`. The improve loop sets this when you use `akm remember` explicitly. Like `active`, the consolidation pass treats it as eligible based on `captureMode` — but `asserted` is never automatically downgraded to `active` during consolidation. It carries a stronger signal that a human touched this memory directly.
|
|
60
|
+
|
|
61
|
+
`deprecated` means the memory has been superseded. The content is no longer the current best representation, but it is not wrong — it describes something that was true and has since evolved. Deprecated memories are frozen historical state — the consolidation pass will not refresh them to `active`, but they are candidates for merge into a more current memory.
|
|
62
|
+
|
|
63
|
+
`superseded` is the system-assigned equivalent of deprecated. The improve loop writes this when it determines a memory has been replaced by a newer one. Unlike `deprecated`, `superseded` can be refreshed if the superseding memory is later retracted.
|
|
64
|
+
|
|
65
|
+
`contradicted` means the memory is known to be wrong. It conflicts with something else in the stash that the agent now believes more strongly. A contradicted memory is never promoted, never merged into a primary, and is queued for deletion on the next consolidation pass that touches it.
|
|
66
|
+
|
|
67
|
+
```yaml
|
|
68
|
+
---
|
|
69
|
+
captureMode: background
|
|
70
|
+
beliefState: contradicted
|
|
71
|
+
contradictedBy:
|
|
72
|
+
- memory:lm-studio-server-topology
|
|
73
|
+
description: Old belief that Don was the consolidation LLM endpoint
|
|
74
|
+
---
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
The `contradictedBy` field is an array of refs — the memories that supersede this one. It chains revisions explicitly. You can read the chain backward: follow each `contradictedBy` ref to find the current belief. The `beliefState` field is indexed as a frontmatter tag, so `akm search "beliefState:contradicted"` or `akm search "beliefState:deprecated"` surfaces everything the agent currently believes is wrong or outdated, which is useful for auditing stale content before a long session.
|
|
78
|
+
|
|
79
|
+
## What the Improve Loop Actually Checks
|
|
80
|
+
|
|
81
|
+
When `akm improve` starts a consolidation chunk, it evaluates `captureMode` before making any LLM call. The sequence is:
|
|
82
|
+
|
|
83
|
+
1. Load the memory pool for the chunk.
|
|
84
|
+
2. Check `captureMode` for every memory in the chunk.
|
|
85
|
+
3. If all memories are `hot`, record the chunk as `judgedNoAction` and skip to the next chunk. No model call.
|
|
86
|
+
4. If any memory is `background` (or has no `captureMode` set), proceed to the LLM consolidation prompt — but pass the belief state metadata alongside each memory so the model knows what it is working with.
|
|
87
|
+
5. The model sees `beliefState: contradicted` on a memory and knows not to use it as a merge primary. It sees `beliefState: deprecated` and treats the memory as a merge candidate rather than a standalone to preserve.
|
|
88
|
+
|
|
89
|
+
The early-exit on all-hot chunks is a real cost reduction in practice. A stash where the majority of permanently-settled memories are marked hot will skip a significant fraction of chunks without touching the model at all. Those skipped chunks still count in the run's telemetry — the `judgedNoAction` counter — so `akm health` can show you the proportion of work that was bypassed via belief state rather than processed.
|
|
90
|
+
|
|
91
|
+
## Enabling Belief-Aware Memory
|
|
92
|
+
|
|
93
|
+
Belief-aware memory is active by default in 0.8.0. For most setups, nothing changes on upgrade. Existing memories without a `captureMode` field are treated as eligible for consolidation, and existing memories without a `beliefState` field resolve to `active` — both match prior behavior.
|
|
94
|
+
|
|
95
|
+
The `memory.belief_aware` configuration flag (enabled by default; not surfaced in `akm config list` — check release notes if you need to toggle it) (documented in the release notes) gates the pre-write validation path. Leaving it on is the right default. The validation overhead is negligible. The protection against overwriting confirmed content is the point.
|
|
96
|
+
|
|
97
|
+
## The Workflow in Practice
|
|
98
|
+
|
|
99
|
+
The intended workflow is straightforward. Run `akm improve` or `akm remember` normally. When the improve loop promotes a memory that you verify and want to lock, open the asset and set `captureMode: hot`. That is the only required human action.
|
|
100
|
+
|
|
101
|
+
```sh
|
|
102
|
+
# Review a promoted memory
|
|
103
|
+
akm show memory:lm-studio-server-topology
|
|
104
|
+
|
|
105
|
+
# Lock it against future rewrites
|
|
106
|
+
# Edit the frontmatter: captureMode: hot
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
When something in the stash becomes wrong — you find a configuration fact that has changed, a benchmark that does not reflect the current hardware — mark it contradicted and point it at the memory that replaced it:
|
|
110
|
+
|
|
111
|
+
```yaml
|
|
112
|
+
---
|
|
113
|
+
captureMode: background
|
|
114
|
+
beliefState: contradicted
|
|
115
|
+
contradictedBy:
|
|
116
|
+
- memory:shredder-throughput-2026-05
|
|
117
|
+
description: Initial throughput estimate for Shredder before thermal tuning
|
|
118
|
+
---
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
The contradicted memory stays in the stash until the consolidation pass processes it. It does not disappear immediately. That is intentional — the chain of belief updates is itself a record of how your agent's understanding evolved. You can review it, audit it, and delete it explicitly when you are satisfied the current belief is stable.
|
|
122
|
+
|
|
123
|
+
For deprecated memories, the same pattern applies, but with a lighter touch. A deprecated memory is not wrong — it is outdated. The consolidation pass will eventually merge it into something more current. You can accelerate this by pointing the `contradictedBy` field at the successor, but it is not required.
|
|
124
|
+
|
|
125
|
+
## What This Protects Against
|
|
126
|
+
|
|
127
|
+
The improve loop is powerful because it runs continuously and without supervision. That is also the source of the failure mode. An unsupervised loop that can propose changes to anything in the stash will, given enough time and enough edge cases, propose a change to something it should not touch.
|
|
128
|
+
|
|
129
|
+
Hot memories are immune. They require no ongoing maintenance. They do not need to be defended against the loop because the loop is not allowed to reach them.
|
|
130
|
+
|
|
131
|
+
Background memories with `beliefState: active` or `asserted` are in normal rotation. The loop can improve them. That is the intended behavior — background memories accumulate in agent sessions and benefit from periodic consolidation.
|
|
132
|
+
|
|
133
|
+
The contradicted and deprecated states give the loop a way to reason about quality without conflating "eligible for improvement" with "currently correct." A background, active memory is eligible and believed correct. A background, contradicted memory is eligible and believed wrong — the right action is deletion or absorption, not refinement.
|
|
134
|
+
|
|
135
|
+
The combination — two capture modes, five belief states, and an explicit contradiction chain — gives you fine-grained control over what the loop does. The loop becomes an asset rather than a liability when it has enough information to distinguish what it should improve from what it should leave alone.
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
Belief-aware memory is part of akm 0.8.0. The full field reference is in [configuration reference](../reference/configuration.md). The improve pipeline and consolidation pass behavior are covered in the [improve pipeline debugging post](https://dev.to/itlackey/your-agent-has-a-memory-that-runs-while-you-sleep-20oh) and the [0.8.0 release notes](https://dev.to/itlackey/akm-080-cli-redesign-task-assets-and-belief-aware-memory-335a). For a walkthrough of the improve loop setup and scheduling, see [The Improve Loop: Continuous Memory Curation](https://dev.to/itlackey/the-improvement-loop-how-akm-keeps-your-agent-sharp-2d4d).
|