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