akm-cli 0.8.0-rc2 → 0.8.1
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/{.github/CHANGELOG.md → CHANGELOG.md} +238 -3
- package/README.md +22 -6
- package/SECURITY.md +93 -0
- package/dist/assets/help/help-accept.md +12 -0
- package/dist/assets/help/help-improve.md +81 -0
- package/dist/{commands → assets}/help/help-proposals.md +7 -4
- package/dist/assets/help/help-reject.md +11 -0
- package/dist/{output → assets/hints}/cli-hints-full.md +60 -32
- package/dist/{output → assets/hints}/cli-hints-short.md +10 -7
- package/dist/assets/profiles/default.json +15 -0
- package/dist/assets/profiles/graph-refresh.json +13 -0
- package/dist/assets/profiles/memory-focus.json +12 -0
- package/dist/assets/profiles/quick.json +15 -0
- package/dist/assets/profiles/thorough.json +15 -0
- package/dist/assets/prompts/extract-session.md +80 -0
- package/dist/assets/prompts/graph-extract-user-prompt.md +35 -0
- package/dist/assets/tasks/graph-refresh-weekly.yml +10 -0
- package/dist/cli/config-migrate.js +144 -0
- package/dist/cli/config-validate.js +39 -0
- package/dist/cli/confirm.js +73 -0
- package/dist/cli/parse-args.js +93 -3
- package/dist/cli/shared.js +129 -0
- package/dist/cli.js +2141 -1268
- package/dist/commands/add-cli.js +279 -0
- package/dist/commands/agent-dispatch.js +20 -12
- package/dist/commands/agent-support.js +11 -5
- package/dist/commands/completions.js +3 -0
- package/dist/commands/config-cli.js +129 -517
- package/dist/commands/consolidate.js +1557 -147
- package/dist/commands/curate.js +44 -3
- package/dist/commands/db-cli.js +23 -0
- package/dist/commands/distill-promotion-policy.js +5 -3
- package/dist/commands/distill.js +906 -100
- package/dist/commands/env.js +213 -0
- package/dist/commands/eval-cases.js +3 -0
- package/dist/commands/events.js +3 -0
- package/dist/commands/extract-cli.js +127 -0
- package/dist/commands/extract-prompt.js +217 -0
- package/dist/commands/extract.js +477 -0
- package/dist/commands/feedback-cli.js +331 -0
- package/dist/commands/graph.js +260 -5
- package/dist/commands/health.js +1042 -55
- package/dist/commands/history.js +51 -16
- package/dist/commands/improve-auto-accept.js +97 -0
- package/dist/commands/improve-cli.js +236 -0
- package/dist/commands/improve-profiles.js +138 -0
- package/dist/commands/improve-result-file.js +167 -0
- package/dist/commands/improve.js +1736 -346
- package/dist/commands/info.js +26 -28
- package/dist/commands/init.js +49 -1
- package/dist/commands/installed-stashes.js +6 -23
- package/dist/commands/knowledge.js +3 -0
- package/dist/commands/lint/agent-linter.js +3 -0
- package/dist/commands/lint/base-linter.js +199 -5
- package/dist/commands/lint/command-linter.js +3 -0
- package/dist/commands/lint/default-linter.js +3 -0
- package/dist/commands/lint/env-key-rules.js +154 -0
- package/dist/commands/lint/index.js +92 -3
- package/dist/commands/lint/knowledge-linter.js +3 -0
- package/dist/commands/lint/markdown-insertion.js +343 -0
- package/dist/commands/lint/memory-linter.js +3 -0
- package/dist/commands/lint/registry.js +3 -0
- package/dist/commands/lint/skill-linter.js +3 -0
- package/dist/commands/lint/task-linter.js +15 -12
- package/dist/commands/lint/types.js +3 -0
- package/dist/commands/lint/workflow-linter.js +3 -0
- package/dist/commands/lint.js +3 -0
- package/dist/commands/migration-help.js +5 -2
- package/dist/commands/proposal-drain-policies.js +128 -0
- package/dist/commands/proposal-drain.js +477 -0
- package/dist/commands/proposal.js +60 -6
- package/dist/commands/propose.js +24 -19
- package/dist/commands/reflect.js +1004 -94
- package/dist/commands/registry-cli.js +150 -0
- package/dist/commands/registry-search.js +3 -0
- package/dist/commands/remember-cli.js +257 -0
- package/dist/commands/remember.js +15 -6
- package/dist/commands/schema-repair.js +88 -15
- package/dist/commands/search.js +99 -14
- package/dist/commands/secret.js +173 -0
- package/dist/commands/self-update.js +3 -0
- package/dist/commands/show.js +32 -13
- package/dist/commands/source-add.js +7 -35
- package/dist/commands/source-clone.js +3 -0
- package/dist/commands/source-manage.js +3 -0
- package/dist/commands/tasks.js +161 -95
- package/dist/commands/url-checker.js +3 -0
- package/dist/core/action-contributors.js +3 -0
- package/dist/core/asset-ref.js +13 -2
- package/dist/core/asset-registry.js +9 -2
- package/dist/core/asset-serialize.js +88 -0
- package/dist/core/asset-spec.js +61 -5
- package/dist/core/common.js +93 -5
- package/dist/core/concurrent.js +3 -0
- package/dist/core/config-io.js +347 -0
- package/dist/core/config-migration.js +622 -0
- package/dist/core/config-schema.js +558 -0
- package/dist/core/config-sources.js +108 -0
- package/dist/core/config-types.js +4 -0
- package/dist/core/config-walker.js +337 -0
- package/dist/core/config.js +366 -1077
- package/dist/core/errors.js +42 -20
- package/dist/core/events.js +31 -25
- package/dist/core/file-lock.js +104 -0
- package/dist/core/frontmatter.js +75 -10
- package/dist/core/lesson-lint.js +3 -0
- package/dist/core/markdown.js +3 -0
- package/dist/core/memory-belief.js +62 -0
- package/dist/core/memory-contradiction-detect.js +274 -0
- package/dist/core/memory-improve.js +142 -14
- package/dist/core/parse.js +3 -0
- package/dist/core/paths.js +218 -50
- package/dist/core/proposal-quality-validators.js +380 -0
- package/dist/core/proposal-validators.js +11 -3
- package/dist/core/proposals.js +464 -5
- package/dist/core/state-db.js +349 -56
- package/dist/core/text-truncation.js +107 -0
- package/dist/core/time.js +3 -0
- package/dist/core/tty.js +59 -0
- package/dist/core/warn.js +7 -2
- package/dist/core/write-source.js +12 -0
- package/dist/indexer/db-backup.js +391 -0
- package/dist/indexer/db-search.js +136 -28
- package/dist/indexer/db.js +661 -166
- package/dist/indexer/ensure-index.js +3 -0
- package/dist/indexer/file-context.js +3 -0
- package/dist/indexer/graph-boost.js +162 -40
- package/dist/indexer/graph-db.js +241 -51
- package/dist/indexer/graph-dedup.js +3 -7
- package/dist/indexer/graph-extraction.js +242 -149
- package/dist/indexer/index-context.js +3 -9
- package/dist/indexer/indexer.js +86 -16
- package/dist/indexer/llm-cache.js +24 -19
- package/dist/indexer/manifest.js +3 -0
- package/dist/indexer/matchers.js +184 -11
- package/dist/indexer/memory-inference.js +94 -50
- package/dist/indexer/metadata-contributors.js +3 -0
- package/dist/indexer/metadata.js +110 -50
- package/dist/indexer/path-resolver.js +3 -0
- package/dist/indexer/project-context.js +192 -0
- package/dist/indexer/ranking-contributors.js +134 -7
- package/dist/indexer/ranking.js +8 -1
- package/dist/indexer/search-fields.js +5 -9
- package/dist/indexer/search-hit-enrichers.js +91 -2
- package/dist/indexer/search-source.js +20 -1
- package/dist/indexer/semantic-status.js +4 -1
- package/dist/indexer/staleness-detect.js +447 -0
- package/dist/indexer/usage-events.js +12 -9
- package/dist/indexer/walker.js +3 -0
- package/dist/integrations/agent/builders.js +135 -0
- package/dist/integrations/agent/config.js +121 -401
- package/dist/integrations/agent/detect.js +3 -0
- package/dist/integrations/agent/index.js +6 -14
- package/dist/integrations/agent/model-aliases.js +55 -0
- package/dist/integrations/agent/profiles.js +3 -0
- package/dist/integrations/agent/prompts.js +137 -8
- package/dist/integrations/agent/runner.js +208 -0
- package/dist/integrations/agent/sdk-runner.js +8 -2
- package/dist/integrations/agent/spawn.js +54 -14
- package/dist/integrations/github.js +3 -0
- package/dist/integrations/lockfile.js +22 -51
- package/dist/integrations/session-logs/index.js +4 -0
- package/dist/integrations/session-logs/inline-refs.js +35 -0
- package/dist/integrations/session-logs/pre-filter.js +152 -0
- package/dist/integrations/session-logs/providers/claude-code.js +226 -0
- package/dist/integrations/session-logs/providers/opencode.js +231 -25
- package/dist/integrations/session-logs/types.js +3 -0
- package/dist/llm/call-ai.js +14 -26
- package/dist/llm/client.js +16 -2
- package/dist/llm/embedder.js +20 -29
- package/dist/llm/embedders/cache.js +3 -7
- package/dist/llm/embedders/local.js +42 -1
- package/dist/llm/embedders/remote.js +20 -8
- package/dist/llm/embedders/types.js +3 -7
- package/dist/llm/feature-gate.js +92 -56
- package/dist/llm/graph-extract.js +402 -31
- package/dist/llm/index-passes.js +44 -29
- package/dist/llm/memory-infer.js +30 -2
- package/dist/llm/metadata-enhance.js +3 -7
- package/dist/output/cli-hints.js +7 -4
- package/dist/output/context.js +60 -8
- package/dist/output/renderers.js +170 -194
- package/dist/output/shapes/curate.js +56 -0
- package/dist/output/shapes/distill.js +10 -0
- package/dist/output/shapes/env-list.js +19 -0
- package/dist/output/shapes/events.js +11 -0
- package/dist/output/shapes/helpers.js +424 -0
- package/dist/output/shapes/history.js +7 -0
- package/dist/output/shapes/passthrough.js +105 -0
- package/dist/output/shapes/proposal-accept.js +7 -0
- package/dist/output/shapes/proposal-diff.js +7 -0
- package/dist/output/shapes/proposal-list.js +7 -0
- package/dist/output/shapes/proposal-producer.js +11 -0
- package/dist/output/shapes/proposal-reject.js +7 -0
- package/dist/output/shapes/proposal-show.js +7 -0
- package/dist/output/shapes/registry-search.js +6 -0
- package/dist/output/shapes/registry.js +30 -0
- package/dist/output/shapes/search.js +6 -0
- package/dist/output/shapes/secret-list.js +19 -0
- package/dist/output/shapes/show.js +6 -0
- package/dist/output/shapes/vault-list.js +19 -0
- package/dist/output/shapes.js +51 -549
- package/dist/output/text/add.js +6 -0
- package/dist/output/text/clone.js +6 -0
- package/dist/output/text/config.js +6 -0
- package/dist/output/text/curate.js +6 -0
- package/dist/output/text/distill.js +7 -0
- package/dist/output/text/enable-disable.js +7 -0
- package/dist/output/text/events.js +10 -0
- package/dist/output/text/feedback.js +6 -0
- package/dist/output/text/helpers.js +1059 -0
- package/dist/output/text/history.js +7 -0
- package/dist/output/text/import.js +6 -0
- package/dist/output/text/index.js +6 -0
- package/dist/output/text/info.js +6 -0
- package/dist/output/text/init.js +6 -0
- package/dist/output/text/list.js +6 -0
- package/dist/output/text/proposal-producer.js +8 -0
- package/dist/output/text/proposal.js +12 -0
- package/dist/output/text/registry-commands.js +11 -0
- package/dist/output/text/registry.js +30 -0
- package/dist/output/text/remember.js +6 -0
- package/dist/output/text/remove.js +6 -0
- package/dist/output/text/save.js +6 -0
- package/dist/output/text/search.js +6 -0
- package/dist/output/text/show.js +6 -0
- package/dist/output/text/update.js +6 -0
- package/dist/output/text/upgrade.js +6 -0
- package/dist/output/text/vault.js +16 -0
- package/dist/output/text/wiki.js +15 -0
- package/dist/output/text/workflow.js +14 -0
- package/dist/output/text.js +44 -1329
- package/dist/registry/build-index.js +3 -0
- package/dist/registry/create-provider-registry.js +3 -0
- package/dist/registry/factory.js +4 -1
- package/dist/registry/origin-resolve.js +3 -0
- package/dist/registry/providers/index.js +3 -0
- package/dist/registry/providers/skills-sh.js +11 -2
- package/dist/registry/providers/static-index.js +10 -1
- package/dist/registry/providers/types.js +3 -24
- package/dist/registry/resolve.js +11 -16
- package/dist/registry/types.js +3 -0
- package/dist/scripts/migrate-storage.js +17767 -0
- package/dist/scripts/migrations/import-fs-improve-runs-to-db.js +9031 -0
- package/dist/scripts/migrations/v16-to-v17.js +141 -0
- package/dist/setup/detect.js +3 -0
- package/dist/setup/ripgrep-install.js +3 -0
- package/dist/setup/ripgrep-resolve.js +3 -0
- package/dist/setup/setup.js +306 -67
- package/dist/setup/steps.js +3 -15
- package/dist/sources/include.js +3 -0
- package/dist/sources/provider-factory.js +3 -11
- package/dist/sources/provider.js +3 -20
- package/dist/sources/providers/filesystem.js +19 -23
- package/dist/sources/providers/git.js +171 -21
- package/dist/sources/providers/index.js +3 -0
- package/dist/sources/providers/install-types.js +3 -13
- package/dist/sources/providers/npm.js +3 -4
- package/dist/sources/providers/provider-utils.js +3 -0
- package/dist/sources/providers/sync-from-ref.js +3 -11
- package/dist/sources/providers/tar-utils.js +3 -0
- package/dist/sources/providers/website.js +18 -22
- package/dist/sources/resolve.js +3 -0
- package/dist/sources/types.js +3 -0
- package/dist/sources/website-ingest.js +3 -0
- package/dist/tasks/backends/cron.js +3 -0
- package/dist/tasks/backends/exec-utils.js +3 -0
- package/dist/tasks/backends/index.js +3 -11
- package/dist/tasks/backends/launchd.js +4 -1
- package/dist/tasks/backends/schtasks.js +4 -1
- package/dist/tasks/parser.js +51 -38
- package/dist/tasks/resolveAkmBin.js +3 -0
- package/dist/tasks/runner.js +35 -9
- package/dist/tasks/schedule.js +20 -1
- package/dist/tasks/schema.js +5 -3
- package/dist/tasks/validator.js +6 -3
- package/dist/version.js +3 -0
- package/dist/wiki/wiki-templates.js +6 -3
- package/dist/wiki/wiki.js +4 -1
- package/dist/workflows/authoring.js +4 -1
- package/dist/workflows/cli.js +3 -0
- package/dist/workflows/db.js +140 -10
- package/dist/workflows/document-cache.js +3 -10
- package/dist/workflows/parser.js +3 -0
- package/dist/workflows/renderer.js +3 -0
- package/dist/workflows/runs.js +18 -1
- package/dist/workflows/schema.js +3 -0
- package/dist/workflows/scope-key.js +3 -0
- package/dist/workflows/validator.js +5 -9
- package/docs/README.md +7 -2
- package/docs/data-and-telemetry.md +225 -0
- package/docs/migration/release-notes/0.7.5.md +2 -2
- package/docs/migration/release-notes/0.8.0.md +57 -5
- package/docs/migration/v0.7-to-v0.8.md +1378 -0
- package/package.json +28 -11
- package/.github/LICENSE +0 -374
- package/dist/commands/help/help-accept.md +0 -9
- package/dist/commands/help/help-improve.md +0 -53
- package/dist/commands/help/help-reject.md +0 -8
- package/dist/commands/install-audit.js +0 -385
- package/dist/commands/vault.js +0 -310
- package/dist/indexer/match-contributors.js +0 -141
- package/dist/integrations/agent/pipeline.js +0 -39
- package/dist/integrations/agent/runners.js +0 -31
- package/dist/llm/prompts/graph-extract-user-prompt.md +0 -12
- /package/dist/{tasks → assets}/backends/launchd-template.xml +0 -0
- /package/dist/{tasks → assets}/backends/schtasks-template.xml +0 -0
- /package/dist/{commands → assets}/help/help-propose.md +0 -0
- /package/dist/{wiki → assets/wiki}/index-template.md +0 -0
- /package/dist/{wiki → assets/wiki}/ingest-workflow-template.md +0 -0
- /package/dist/{wiki → assets/wiki}/log-template.md +0 -0
- /package/dist/{wiki → assets/wiki}/schema-template.md +0 -0
- /package/dist/{workflows → assets/workflows}/workflow-template.md +0 -0
|
@@ -4,7 +4,242 @@ All notable changes to this project will be documented in this file.
|
|
|
4
4
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|
6
6
|
|
|
7
|
-
## [
|
|
7
|
+
## [0.8.1] - 2026-06-05
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- **`graph-refresh` improve profile** — new built-in profile that runs a full-corpus
|
|
12
|
+
graph extraction pass across all stash files (all other improve processes disabled).
|
|
13
|
+
Use `akm improve --profile graph-refresh` for a weekly relationship rebuild.
|
|
14
|
+
Pairs with the new `graph-refresh-weekly` task template (`akm tasks add --template graph-refresh-weekly`).
|
|
15
|
+
- **`session-extraction` health advisory** — new heuristic advisory backed by real
|
|
16
|
+
`akmExtract` outcomes: warns when the session-extraction process ran but produced
|
|
17
|
+
zero proposals across ≥ 5 sessions, or recorded warnings. Replaces the vestigial
|
|
18
|
+
`session-log-failures` warn signal.
|
|
19
|
+
- **`improve.sessionExtraction` health metrics** — `sessionsScanned`, `sessionsExtracted`,
|
|
20
|
+
`sessionsSkipped`, `proposalsCreated`, `warnings`, `durationMs` now tracked and
|
|
21
|
+
visible in `akm health` reports.
|
|
22
|
+
|
|
23
|
+
### Fixed
|
|
24
|
+
|
|
25
|
+
- **`akm info` indexStats** — `readIndexStats` errors are now surfaced and the resolved
|
|
26
|
+
DB path is passed correctly; `entryCount`, `hasEmbeddings`, and related fields are
|
|
27
|
+
no longer silently empty (#510).
|
|
28
|
+
- **Indexer timing fields** — `embedMs` and `ftsMs` in timing output had their
|
|
29
|
+
operands swapped, producing negative durations. Fixed (#516).
|
|
30
|
+
- **Incremental consolidation gate** — the `volumeTriggered` path bypassed the
|
|
31
|
+
incremental gate introduced in 0.8.0, causing consolidation to run on chunks it
|
|
32
|
+
had already processed in the same run. Fixed.
|
|
33
|
+
- **Improve budget exhaustion** — `improve.lock` was not released after budget
|
|
34
|
+
exhaustion, blocking subsequent runs until the lock TTL expired.
|
|
35
|
+
- **Consolidation chunk retry** — failed chunks are now retried once with a 2 s
|
|
36
|
+
backoff before being recorded as lost, reducing transient LLM errors from
|
|
37
|
+
propagating to `chunksFailed`.
|
|
38
|
+
- **`yieldRate` health metric** — `skippedAborted` refs were incorrectly counted in
|
|
39
|
+
`freshAttempts`, inflating the denominator and underreporting yield rate.
|
|
40
|
+
- **`session-log-failures` advisory** — demoted from `warn` to always `pass`
|
|
41
|
+
(informational only); the advisory was a raw regex counter with no LLM signal,
|
|
42
|
+
producing false positives on normal session content.
|
|
43
|
+
|
|
44
|
+
### Refactored
|
|
45
|
+
|
|
46
|
+
- All runtime assets consolidated under `src/assets/` with `dist/assets/` mirroring
|
|
47
|
+
the layout exactly. Built-in improve profiles moved from in-source object literals
|
|
48
|
+
to embedded JSON files (`src/assets/profiles/*.json`). The `copy-assets.ts` build
|
|
49
|
+
step now uses a precise `src/assets/**/*` glob instead of a broad catch-all.
|
|
50
|
+
- Vestigial Phase 0 (`getExecutionLogCandidates` / `ERROR_PATTERNS`) removed from
|
|
51
|
+
the improve pipeline. This regex scan collected a metric count but never fed an
|
|
52
|
+
LLM; `akmExtract` (Phase 0.4) is the real session extraction pipeline.
|
|
53
|
+
|
|
54
|
+
## [0.8.0] - 2026-05-28
|
|
55
|
+
|
|
56
|
+
### Performance
|
|
57
|
+
|
|
58
|
+
- **`akm consolidate`**: all-hot chunk early-exit. When every memory in a chunk
|
|
59
|
+
is `captureMode: hot` (user-explicit), the only operations the LLM could ever
|
|
60
|
+
propose are deletes — all refused unconditionally by the downstream guard.
|
|
61
|
+
Such chunks now skip the model entirely and are counted as `judgedNoAction`
|
|
62
|
+
up front, instead of relying on a prompt-level hint and spending a wasted
|
|
63
|
+
request. Mixed chunks are unaffected.
|
|
64
|
+
|
|
65
|
+
### Breaking changes (deprecation aliases, removed 0.9.0)
|
|
66
|
+
|
|
67
|
+
The 0.8 line is the clean-break window for CLI ergonomics. Every rename below
|
|
68
|
+
keeps the **old spelling working** as a deprecated alias that prints a stderr
|
|
69
|
+
warning (never on stdout, so JSON consumers are unaffected) and delegates to the
|
|
70
|
+
canonical form. **All of these deprecated aliases are removed in 0.9.0.** See
|
|
71
|
+
[`docs/migration/v0.8-to-v0.9.md`](docs/migration/v0.8-to-v0.9.md) for the full
|
|
72
|
+
old → new table.
|
|
73
|
+
|
|
74
|
+
- **Proposal queue is now a noun group**: `akm proposal {list,show,diff,accept,reject,revert}`.
|
|
75
|
+
The flat verbs `akm proposals`, `akm show proposal <id>`, `akm accept`,
|
|
76
|
+
`akm reject`, `akm diff`, and `akm revert` are deprecated aliases.
|
|
77
|
+
Bare `akm proposal` behaves as `akm proposal list`.
|
|
78
|
+
- **`--detail` is now verbosity only** (`brief|normal|full`). The output
|
|
79
|
+
*projection* moved to a new **`--shape`** flag (`human|agent|summary`).
|
|
80
|
+
`--detail summary` and `--detail agent` are deprecated aliases that map to
|
|
81
|
+
`--shape summary` / `--shape agent`.
|
|
82
|
+
- **`--for-agent`** is a deprecated alias for `--shape agent`.
|
|
83
|
+
- **`--generator`** replaces `--source` on `accept` / `reject` / `history`
|
|
84
|
+
(which generator produced the proposal/event). `--source` is a deprecated
|
|
85
|
+
alias on **those three commands only** — it is unchanged on
|
|
86
|
+
`search` / `curate` / `graph` / `remember`, where it means "read from here".
|
|
87
|
+
- **`akm save` → `akm sync`** (commit + optional push; `sync` connotes push
|
|
88
|
+
better). `akm save` is a deprecated alias. `akm sync` adds `--no-push`.
|
|
89
|
+
- **`akm enable` / `akm disable` → `akm config enable` / `akm config disable`**.
|
|
90
|
+
The top-level `enable` / `disable` are deprecated aliases.
|
|
91
|
+
- **`akm events` → `akm log`**: `log` is an additive alias for the same
|
|
92
|
+
state.db stream in 0.8 and becomes primary in 0.9.0. (`akm history` remains the
|
|
93
|
+
asset-scoped, cross-source analytical trail — a different surface.)
|
|
94
|
+
- **`akm wiki remove --force` → `-y` / `--yes`** for skipping the confirmation
|
|
95
|
+
prompt. `wiki remove` now also *prompts* interactively when a TTY is present;
|
|
96
|
+
`--force` is a deprecated alias for `-y`.
|
|
97
|
+
- **`akm feedback --note` → `--reason`**: `--note` is a deprecated alias and
|
|
98
|
+
warns when used without `--reason`.
|
|
99
|
+
- **`akm workflow next --dry-run` removed**: the flag is no longer declared, so
|
|
100
|
+
it no longer appears in `--help`. The explicit "next does not support
|
|
101
|
+
--dry-run" guard remains (read from argv) so existing callers still get a clear
|
|
102
|
+
message instead of silent acceptance.
|
|
103
|
+
- **Singular aliases added** (additive, non-breaking): `akm task` for
|
|
104
|
+
`akm tasks`, `akm lesson` for `akm lessons`.
|
|
105
|
+
|
|
106
|
+
### Safety
|
|
107
|
+
|
|
108
|
+
Two destructive paths that previously acted with no confirmation now guard
|
|
109
|
+
behind an interactive prompt (or `-y` / `--yes` in non-interactive use).
|
|
110
|
+
**Scripts that ran these non-interactively must add `-y`.**
|
|
111
|
+
|
|
112
|
+
- **`akm registry remove`** now confirms before splicing the registry out of the
|
|
113
|
+
config (`confirmDestructive`). Pass `-y` / `--yes` to skip the prompt;
|
|
114
|
+
non-interactive use without `-y` aborts.
|
|
115
|
+
- **Bulk `akm proposal accept --generator <g>`** (the multi-proposal branch) now
|
|
116
|
+
confirms before promoting every matching proposal, mirroring the existing
|
|
117
|
+
guard on bulk `reject`. Single-id accept stays unguarded (it is revertable).
|
|
118
|
+
|
|
119
|
+
### Fixed
|
|
120
|
+
|
|
121
|
+
- **Consolidation `delete_failed` on stale index entries** — when consolidation
|
|
122
|
+
successfully deleted a memory file, the index DB was not re-indexed between
|
|
123
|
+
runs. Subsequent runs loaded the stale DB entry into their memory map, the LLM
|
|
124
|
+
re-proposed the deletion, and `deleteAssetFromSource` threw "not found in
|
|
125
|
+
source" — appearing as `delete_failed` in skipReasons. Fix: `loadMemoriesForSource`
|
|
126
|
+
now filters entries whose file no longer exists on disk before building chunks,
|
|
127
|
+
so phantom memories are never sent to the LLM. A secondary catch in the delete
|
|
128
|
+
handler emits `delete_already_gone` instead of `delete_failed` when the file
|
|
129
|
+
is confirmed absent.
|
|
130
|
+
|
|
131
|
+
> **CI / Docker users:** the 0.8.0 storage split moved `akm.lock`, the event
|
|
132
|
+
> database, and the registry cache out of `$XDG_CONFIG_HOME/akm/` into
|
|
133
|
+
> `$XDG_DATA_HOME`, `$XDG_STATE_HOME`, and `$XDG_CACHE_HOME` respectively. If
|
|
134
|
+
> you override any of `AKM_CONFIG_DIR`, `AKM_DATA_DIR`, `AKM_STATE_DIR`,
|
|
135
|
+
> `AKM_CACHE_DIR` in CI to isolate per-job state, set **all four** (or none,
|
|
136
|
+
> and rely on XDG defaults). Overriding only `AKM_CONFIG_DIR` will leave the
|
|
137
|
+
> lock file / event DB pointing at the host's default `$XDG_DATA_HOME`,
|
|
138
|
+
> causing lock contention and bleed between jobs.
|
|
139
|
+
|
|
140
|
+
### Removed
|
|
141
|
+
|
|
142
|
+
- **Install-time security audit (`security.installAudit`) and the `--trust`
|
|
143
|
+
flag**. The audit scanned incoming stash assets for risky patterns (e.g.
|
|
144
|
+
`curl ... | bash`, "ignore previous instructions") and blocked installs on
|
|
145
|
+
critical findings. In practice it produced too many false positives on
|
|
146
|
+
benign documentation strings and forced first-time users to pass `--trust`
|
|
147
|
+
or twiddle config just to install the official stash. The whole feature is
|
|
148
|
+
gone:
|
|
149
|
+
- `akm add` and `akm update` no longer scan synced content.
|
|
150
|
+
- The `--trust` flag is removed from `akm add` and `akm wiki register`.
|
|
151
|
+
- The `security.installAudit.*` config keys (`enabled`, `blockOnCritical`,
|
|
152
|
+
`registryAllowlist`, `registryWhitelist`, `blockUnlistedRegistries`,
|
|
153
|
+
`allowedFindings`) are no longer recognised; the entire `security` block
|
|
154
|
+
is removed from the config schema.
|
|
155
|
+
- The `akm config set security.installAudit.*` keys now error as unknown.
|
|
156
|
+
- `audit` fields are removed from `AddResponse.installed` and
|
|
157
|
+
`SourceInstallStatus`.
|
|
158
|
+
|
|
159
|
+
### Breaking Changes
|
|
160
|
+
|
|
161
|
+
- **Project-level `.akm/config.json` files are no longer merged**. The
|
|
162
|
+
multi-layer config discovery introduced in the 0.7 line was deprecated
|
|
163
|
+
in late-0.8.x with a warning; that warning is now backed by removal.
|
|
164
|
+
`loadConfig` walks cwd-ancestors only to emit a one-time deprecation
|
|
165
|
+
warning per discovered file. Move any needed settings to
|
|
166
|
+
`~/.config/akm/config.json`. `stashInheritance` (a multi-layer-only
|
|
167
|
+
field) is removed from the schema.
|
|
168
|
+
|
|
169
|
+
- **`${VAR}` env-var expansion only resolves at the apiKey consumption
|
|
170
|
+
sites**. The recursive expansion walker that ran on the load path is
|
|
171
|
+
gone. Other config string values now round-trip verbatim: a literal
|
|
172
|
+
`${HOME}` in (say) `stashDir` is preserved as the literal `${HOME}`
|
|
173
|
+
on read. The new exported `resolveSecret(value)` helper is applied
|
|
174
|
+
only where authorization headers are built (`src/llm/client.ts`,
|
|
175
|
+
`src/llm/embedders/remote.ts`, `src/integrations/agent/sdk-runner.ts`).
|
|
176
|
+
Documented `${OPENAI_API_KEY}` recipes in `docs/configuration.md`
|
|
177
|
+
continue to work because expansion still happens at request time for
|
|
178
|
+
apiKey fields.
|
|
179
|
+
|
|
180
|
+
- **`AKM_FORCE_DOWNGRADE_CONFIG` env var removed**. The newer-than-binary
|
|
181
|
+
read-only guard (`configReadOnlyReason`, `markConfigReadOnlyIfNewer`,
|
|
182
|
+
`getConfigReadOnlyReason`) is gone. Configs declaring a `configVersion`
|
|
183
|
+
newer than the running binary now save through silently — unknown
|
|
184
|
+
fields are stripped on save by `sanitizeConfigForWrite` plus the
|
|
185
|
+
strict-walled Zod schema. Users on 0.9.x configs should not open them
|
|
186
|
+
with a 0.8.x binary in writable workflows.
|
|
187
|
+
|
|
188
|
+
### Changed
|
|
189
|
+
|
|
190
|
+
- **Rebrand**: the full name "Agent Kit Manager" is now **Agent Knowledge Management** — `akm` stands for Agent Knowledge Management going forward. The binary name, npm package (`akm-cli`), and all APIs remain unchanged.
|
|
191
|
+
|
|
192
|
+
- **Config layer rewrite** — single-source-of-truth Zod schema in
|
|
193
|
+
`src/core/config-schema.ts` replaces the per-field parse switch AND
|
|
194
|
+
the per-shape load-time parser. Adding a new config field is now one
|
|
195
|
+
line of schema + zero lines of CLI code. `loadConfig` now consists of
|
|
196
|
+
parse-text → migrate (pure JSON transforms) → Zod safeParse → overlay
|
|
197
|
+
defaults — a ~30-line pipeline that absorbs ~900 LOC of legacy
|
|
198
|
+
per-shape parsers (`parseLlmConfig`, `parseEmbeddingConfig`,
|
|
199
|
+
`parseIndexConfig`, `parseSourceConfigEntry`, and ~20 more).
|
|
200
|
+
- **#454**: `akm config set llm.apiKey` / `embedding.apiKey` /
|
|
201
|
+
`profiles.llm.<name>.apiKey` now throws `UsageError` pointing at the
|
|
202
|
+
corresponding env var (`AKM_LLM_API_KEY`, `AKM_EMBED_API_KEY`,
|
|
203
|
+
`AKM_PROFILE_<NAME>_API_KEY`). Was previously a silent strip.
|
|
204
|
+
- **#455**: every schema-leaf key is now reachable via `akm config set`.
|
|
205
|
+
Includes previously hand-listed gaps: `defaults.agent`, `search.minScore`,
|
|
206
|
+
`improve.eventRetentionDays`, `embedding.provider`, `llm.temperature`,
|
|
207
|
+
`profiles.llm.<name>.*`, `profiles.agent.<name>.*`, etc.
|
|
208
|
+
- **#456**: `akm config validate` and `akm config migrate` are now real
|
|
209
|
+
registered subcommands. The orphan implementations in `config-validate.ts`
|
|
210
|
+
have been removed; the new entry points live in `src/cli/`.
|
|
211
|
+
- **#457**: project-level `.akm/config.json` files are now flagged with a
|
|
212
|
+
deprecation warning ("will be ignored in 0.9.0+"). The merge still
|
|
213
|
+
happens in 0.8.x — one release of grace.
|
|
214
|
+
- **#458**: malformed JSON or non-object root in the config file now raises
|
|
215
|
+
`ConfigError("INVALID_CONFIG_FILE")` with the underlying parse error.
|
|
216
|
+
Was previously a silent fallback to `DEFAULT_CONFIG`, which masked
|
|
217
|
+
corruption. File-not-existing remains the legitimate cold-start case.
|
|
218
|
+
- **#459**: `~/.cache/akm/config-backups/` is now bounded to the 5 most
|
|
219
|
+
recent timestamped backups. Pruning runs on each `saveConfig`.
|
|
220
|
+
`config.latest.json` is preserved separately.
|
|
221
|
+
- **#460**: `UNKNOWN_CONFIG_KEY_HINT` is now auto-generated from the
|
|
222
|
+
schema via `listTopLevelConfigKeys()`. No more stale hand-maintained string.
|
|
223
|
+
- **#461**: if the auto-migration disk-write fails, `loadConfig` now throws
|
|
224
|
+
a hard error instead of returning the in-memory migrated shape. Eliminates
|
|
225
|
+
the silent infinite re-migrate loop on every `akm` command.
|
|
226
|
+
- **#462**: nested registries[], sources[], profiles.* objects are
|
|
227
|
+
`.strict()` — unknown keys are rejected with a path-pointing error at
|
|
228
|
+
both set time and saveConfig time.
|
|
229
|
+
- **#463**: `schemas/akm-config.json` is now auto-generated from the Zod
|
|
230
|
+
source via `bun scripts/gen-config-schema.ts`. A drift test fails CI if
|
|
231
|
+
the committed file disagrees with the regeneration output.
|
|
232
|
+
- **#464.a**: `defaultWriteTarget` is validated via Zod `.refine()` against
|
|
233
|
+
`sources[].name`. With no sources configured, save-time validation
|
|
234
|
+
rejects instead of silently accepting (no implicit "first writable" fallback).
|
|
235
|
+
- **#464.b**: generic unset works on `semanticSearchMode` and every other
|
|
236
|
+
key via the dotted-path walker.
|
|
237
|
+
- **#464.c**: all write paths route through `writeFileAtomic`.
|
|
238
|
+
- **#464.d**: duplicate `mergeSecurityConfig` / `mergeInstallAuditConfig`
|
|
239
|
+
in `config-cli.ts` are deleted; merging happens via re-parse through the
|
|
240
|
+
Zod schema.
|
|
241
|
+
|
|
242
|
+
See `docs/migration/v0.7-to-v0.8.md` for the user-facing migration guide.
|
|
8
243
|
|
|
9
244
|
## [0.7.5] - 2026-05-08
|
|
10
245
|
|
|
@@ -19,7 +254,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|
|
19
254
|
- **Workflow runs are now scoped to the current workspace** — ref-based workflow commands (`workflow next/status/list`) now resolve runs within the current project, worktree, or non-repo directory instead of sharing active-run state globally across the whole cache. Direct run-id commands still target the exact run.
|
|
20
255
|
- **Help, hints, and workflow docs now explain run scoping** — CLI descriptions, embedded hints, operator docs, and workflow guides now describe the current-scope semantics so users understand how ref-based run resolution behaves across repos and local sandboxes.
|
|
21
256
|
- **`akm show` auto-indexes stale state instead of falling back to raw filesystem reads** — show/search parity is tighter because stale index state now triggers refresh rather than silently drifting to a separate fallback path.
|
|
22
|
-
- **Release metadata lookup follows the published
|
|
257
|
+
- **Release metadata lookup follows the published `CHANGELOG.md` layout** — migration-help, package publish metadata, and related docs now consistently reference the shipped changelog location at the package root.
|
|
23
258
|
- **Documentation refresh across README and posts** — README positioning, command-tour docs, workflow examples, and dev.to post organization were refreshed to better match the current CLI surface.
|
|
24
259
|
|
|
25
260
|
### Fixed
|
|
@@ -80,7 +315,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|
|
80
315
|
|
|
81
316
|
### Added
|
|
82
317
|
|
|
83
|
-
- **Proposal queue (`akm proposal *`)** (#225, #226, #233) — durable queue for proposal-producing commands. New verbs `akm proposal {list, show, diff, accept, reject}`. Promotion runs full validation before routing through `writeAssetToSource()`. Multiple proposals for the same `ref` coexist without filesystem collisions. Auto-accept is gated per-source via `autoAcceptProposals: true` (default off; requires a writable source). See v1 spec §11.
|
|
318
|
+
- **Proposal queue (`akm proposal *`)** (#225, #226, #233) — durable queue for proposal-producing commands. New verbs `akm proposal {list, show, diff, accept, reject, revert}`. Promotion runs full validation before routing through `writeAssetToSource()`. Multiple proposals for the same `ref` coexist without filesystem collisions. Auto-accept is gated per-source via `autoAcceptProposals: true` (default off; requires a writable source). See v1 spec §11.
|
|
84
319
|
- **`akm reflect`, `akm propose`, `akm distill`** (#225, #226, #227) — three new commands that write **only** to the proposal queue. `reflect` and `propose` shell out via the agent CLI (`agent.*` config); `distill` is the canonical bounded in-tree LLM call gated behind `llm.features.feedback_distillation`. Usage events `reflect_invoked`, `propose_invoked`, `distill_invoked`.
|
|
85
320
|
- **`lesson` asset type** (#227) — first-class well-known type with required frontmatter `description` and `when_to_use`, stored under `lessons/<name>.md`. Normally produced by `akm distill <ref>` as a `proposed`-quality proposal and promoted via `akm proposal accept`.
|
|
86
321
|
- **`llm.features.*` map with mixed defaults** (#227, #284) — every bounded in-tree LLM call site is gated behind exactly one feature flag. Four keys ship: `curate_rerank`, `feedback_distillation`, `memory_inference`, `graph_extraction`. `memory_inference` and `graph_extraction` default to `true`; the others default to `false`. Wrapper `tryLlmFeature(feature, config, fn, fallback)` in `src/llm/feature-gate.ts` guarantees disabled/throw/timeout fall back without crashing the call site. See v1 spec §14.
|
package/README.md
CHANGED
|
@@ -1,23 +1,38 @@
|
|
|
1
|
-
# akm -- Agent
|
|
1
|
+
# akm -- Agent Knowledge Management
|
|
2
2
|
|
|
3
|
-
> **akm** (Agent
|
|
3
|
+
> **akm** (Agent Knowledge Management) -- A package manager for AI agent skills, commands, tools, and knowledge.
|
|
4
4
|
|
|
5
5
|
[](https://www.npmjs.com/package/akm-cli)
|
|
6
6
|
[](https://www.npmjs.com/package/akm-cli)
|
|
7
7
|
[](https://github.com/itlackey/akm/blob/main/LICENSE)
|
|
8
8
|
|
|
9
9
|
`akm` is a package manager for AI agent capabilities -- scripts, skills, commands,
|
|
10
|
-
agents, knowledge,
|
|
11
|
-
run shell commands,
|
|
10
|
+
agents, knowledge, memories, workflows, wikis, vaults, lessons, and scheduled
|
|
11
|
+
tasks. It works with any AI coding assistant that can run shell commands,
|
|
12
|
+
including [Claude Code](https://claude.ai/code),
|
|
12
13
|
[OpenCode](https://opencode.ai), [Cursor](https://cursor.com), and more.
|
|
13
14
|
|
|
14
15
|
## Install
|
|
15
16
|
|
|
17
|
+
**Option 1 — Prebuilt binary (recommended, no runtime required):**
|
|
18
|
+
|
|
19
|
+
```sh
|
|
20
|
+
# Linux / macOS
|
|
21
|
+
curl -fsSL https://github.com/itlackey/akm/releases/latest/download/install.sh | bash
|
|
22
|
+
|
|
23
|
+
# Windows (PowerShell)
|
|
24
|
+
irm https://github.com/itlackey/akm/releases/latest/download/install.ps1 | iex
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
**Option 2 — Bun (requires [Bun](https://bun.sh) >= 1.0):**
|
|
28
|
+
|
|
16
29
|
```sh
|
|
17
30
|
bun install -g akm-cli
|
|
18
31
|
```
|
|
19
32
|
|
|
20
|
-
|
|
33
|
+
Upgrade in place with `akm upgrade`.
|
|
34
|
+
|
|
35
|
+
> **AKM 0.8 requires the prebuilt binary or the Bun runtime. Node.js / npm / pnpm are not supported in 0.8.0** — running `npm install -g akm-cli` on a Node.js-only machine will print an error from the preinstall hook and exit without installing. Cross-runtime support (Node, npm, pnpm) is planned for 0.9.0.
|
|
21
36
|
|
|
22
37
|
## Quick Start
|
|
23
38
|
|
|
@@ -44,7 +59,8 @@ Add this to your `AGENTS.md`, `CLAUDE.md`, or system prompt:
|
|
|
44
59
|
## Resources & Capabilities
|
|
45
60
|
|
|
46
61
|
You have access to a searchable library of scripts, skills, commands, agents,
|
|
47
|
-
knowledge,
|
|
62
|
+
knowledge, memories, workflows, wikis, vaults, lessons, and scheduled tasks
|
|
63
|
+
via the `akm` CLI. Use `akm -h` for details.
|
|
48
64
|
```
|
|
49
65
|
|
|
50
66
|
## Install Stashes from Anywhere
|
package/SECURITY.md
ADDED
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# Security policy
|
|
2
|
+
|
|
3
|
+
## Supported versions
|
|
4
|
+
|
|
5
|
+
Security fixes are made on the latest minor release line of `akm-cli`. The
|
|
6
|
+
0.x line is pre-1.0 — please upgrade promptly when a fix lands.
|
|
7
|
+
|
|
8
|
+
| Version | Supported |
|
|
9
|
+
| --- | --- |
|
|
10
|
+
| 0.8.x | ✅ active |
|
|
11
|
+
| 0.7.x | ❌ no longer maintained |
|
|
12
|
+
| < 0.7 | ❌ no longer maintained |
|
|
13
|
+
|
|
14
|
+
## Reporting a vulnerability
|
|
15
|
+
|
|
16
|
+
Please report security issues **privately** via GitHub Security Advisories:
|
|
17
|
+
|
|
18
|
+
- https://github.com/itlackey/akm/security/advisories/new
|
|
19
|
+
|
|
20
|
+
If GitHub Security Advisories is unavailable, email `itlackey@gmail.com`
|
|
21
|
+
with the word `SECURITY` in the subject. Please include reproduction steps,
|
|
22
|
+
the impacted akm version, and your operating environment.
|
|
23
|
+
|
|
24
|
+
We will acknowledge receipt within 72 hours and aim to ship a fix or a
|
|
25
|
+
mitigation guidance within two weeks, depending on severity.
|
|
26
|
+
|
|
27
|
+
## Threat model
|
|
28
|
+
|
|
29
|
+
`akm` is a local CLI that reads and writes user files, executes user-authored
|
|
30
|
+
shell commands (via scripts, workflows, and agent dispatch), and talks to
|
|
31
|
+
explicitly configured external services (LLM endpoints, git remotes, npm,
|
|
32
|
+
HTTP sources). It does **not** ship telemetry, send data to anyone by
|
|
33
|
+
default, or open network listeners. See
|
|
34
|
+
[`docs/data-and-telemetry.md`](docs/data-and-telemetry.md) for the on-disk
|
|
35
|
+
inventory.
|
|
36
|
+
|
|
37
|
+
Several akm surfaces execute user-controlled code or data with the full
|
|
38
|
+
permissions of the akm process. These are documented design decisions, not
|
|
39
|
+
bugs, but you should be aware of them:
|
|
40
|
+
|
|
41
|
+
### Workflows execute shell commands with full environment access
|
|
42
|
+
|
|
43
|
+
Workflow steps run in your shell with your PATH and your environment
|
|
44
|
+
variables — including any secrets you have exported or loaded via
|
|
45
|
+
`akm vault load`. **Only add workflow sources you trust.** See
|
|
46
|
+
[`docs/features/workflows.md` — "Security: workflow sources are executed
|
|
47
|
+
code"](docs/features/workflows.md#security-workflow-sources-are-executed-code)
|
|
48
|
+
for the full discussion.
|
|
49
|
+
|
|
50
|
+
### Scripts execute shell commands
|
|
51
|
+
|
|
52
|
+
`akm show script:<name>` returns a `run:` command line the user (or an
|
|
53
|
+
integrating agent) then executes. The same trust model applies: scripts you
|
|
54
|
+
install from third-party stashes are third-party code.
|
|
55
|
+
|
|
56
|
+
### Agents and commands embed user-authored prompts
|
|
57
|
+
|
|
58
|
+
`akm show agent:<name>` and `akm show command:<name>` return prompt
|
|
59
|
+
templates and system prompts that an LLM will execute. A malicious stash
|
|
60
|
+
maintainer could write a system prompt that instructs the LLM to read
|
|
61
|
+
sensitive files in your working tree and exfiltrate them via the LLM
|
|
62
|
+
response. Audit the prompt body the same way you'd audit a script.
|
|
63
|
+
|
|
64
|
+
### Vaults are plaintext on disk
|
|
65
|
+
|
|
66
|
+
`akm vault` files are `0o600`-permissioned plaintext at
|
|
67
|
+
`<stash>/vaults/<name>.env`. They are protected against other local users
|
|
68
|
+
by filesystem permissions but not encrypted at rest. Do not commit vault
|
|
69
|
+
files to source control — they are `.gitignore`d in the default stash
|
|
70
|
+
layout for that reason. The `akm vault show` / `akm vault list` commands
|
|
71
|
+
never echo values; `akm vault load` produces shell-eval output meant to be
|
|
72
|
+
piped to `eval`, never displayed.
|
|
73
|
+
|
|
74
|
+
### Improve / propose / distill send asset content to the configured LLM
|
|
75
|
+
|
|
76
|
+
`akm improve`, `akm propose`, `akm distill`, `akm reflect`, and `akm
|
|
77
|
+
consolidate` send asset frontmatter and body to whatever LLM endpoint is
|
|
78
|
+
configured in `~/.config/akm/config.json` (under `llm.endpoint`). If you
|
|
79
|
+
have configured a third-party LLM, your asset content goes to that
|
|
80
|
+
third-party. Use a local model (`http://localhost:11434` via Ollama, etc.)
|
|
81
|
+
for assets containing secrets or private notes.
|
|
82
|
+
|
|
83
|
+
## Known non-issues
|
|
84
|
+
|
|
85
|
+
- **`akm` requires Bun or the prebuilt binary** — Node.js is not supported
|
|
86
|
+
in 0.8.0 because Bun-specific APIs are used in hot paths. This is a
|
|
87
|
+
compatibility limitation, not a security risk; the prebuilt binary is a
|
|
88
|
+
Bun-compiled standalone executable.
|
|
89
|
+
- **Workflows can read any file the akm process can read.** This is not a
|
|
90
|
+
bug — see "Threat model" above.
|
|
91
|
+
- **`bun install -g akm-cli` runs the preinstall hook.** The hook only
|
|
92
|
+
emits an error message and exits non-zero on Node.js; it does not phone
|
|
93
|
+
home or write outside the install directory.
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
Usage:
|
|
2
|
+
akm proposal accept <id>
|
|
3
|
+
|
|
4
|
+
Description:
|
|
5
|
+
Accept a proposal and promote it into the stash.
|
|
6
|
+
|
|
7
|
+
(`akm accept` is a deprecated alias for `akm proposal accept`; it warns on
|
|
8
|
+
stderr and is removed in 0.9.0.)
|
|
9
|
+
|
|
10
|
+
Examples:
|
|
11
|
+
akm proposal accept proposal_123
|
|
12
|
+
akm proposal accept proposal_123 --target team-stash
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
Usage:
|
|
2
|
+
akm improve
|
|
3
|
+
akm improve <type>
|
|
4
|
+
akm improve <ref>
|
|
5
|
+
|
|
6
|
+
Description:
|
|
7
|
+
Analyze existing AKM assets and generate improvement proposals.
|
|
8
|
+
|
|
9
|
+
Modes:
|
|
10
|
+
akm improve
|
|
11
|
+
Improve all eligible assets in the current scope.
|
|
12
|
+
|
|
13
|
+
akm improve <type>
|
|
14
|
+
Improve all assets of a given type.
|
|
15
|
+
Example: akm improve memory
|
|
16
|
+
|
|
17
|
+
akm improve <ref>
|
|
18
|
+
Improve one specific asset.
|
|
19
|
+
Example: akm improve workflow:release-checklist
|
|
20
|
+
|
|
21
|
+
What it does:
|
|
22
|
+
- reviews feedback and recent history
|
|
23
|
+
- proposes edits to existing assets
|
|
24
|
+
- distills lessons where useful
|
|
25
|
+
- promotes durable skill lessons into skill reference-doc proposals when justified
|
|
26
|
+
- cleans and consolidates memories
|
|
27
|
+
- writes results to the proposal queue
|
|
28
|
+
|
|
29
|
+
Options:
|
|
30
|
+
--task <text> Add extra guidance for this improvement pass
|
|
31
|
+
--dry-run Show planned actions without generating proposals
|
|
32
|
+
--target <source> Override the write target for accepted proposals
|
|
33
|
+
--auto-accept[=<value>]
|
|
34
|
+
Confidence threshold (0-100) for auto-accepting proposals.
|
|
35
|
+
Default when flag is absent: ON at threshold 90 (all sub-processes).
|
|
36
|
+
--auto-accept same as --auto-accept=90
|
|
37
|
+
--auto-accept=<N> integer 0-100; accept proposals at or above N
|
|
38
|
+
--auto-accept=safe alias for 90 (back-compat, not deprecated)
|
|
39
|
+
--auto-accept=false disable auto-accept for all sub-processes;
|
|
40
|
+
reflect/distill proposals go to the queue and
|
|
41
|
+
consolidation will prompt interactively on HTTP paths
|
|
42
|
+
Note: until proposals carry real confidence scores, any non-`false`
|
|
43
|
+
value behaves like the legacy "safe" mode (whole-batch auto-accept).
|
|
44
|
+
--profile <name> Improve profile to apply. Built-ins: default, quick,
|
|
45
|
+
thorough, memory-focus. User-defined profiles under
|
|
46
|
+
`profiles.improve.<name>` in config are also accepted.
|
|
47
|
+
Profiles bundle process gating, type filters, and
|
|
48
|
+
run-level autoAccept/limit defaults. Falls back to
|
|
49
|
+
`defaults.improve` in config, then to "default".
|
|
50
|
+
Unknown names fall back to default with a warning.
|
|
51
|
+
Sync behavior by profile: default and thorough enable
|
|
52
|
+
auto-commit + push; quick and memory-focus skip sync.
|
|
53
|
+
--sync Commit (and optionally push) the git-backed primary
|
|
54
|
+
stash when the run finishes. Use --no-sync to disable.
|
|
55
|
+
Default: per profile config (enabled for default and
|
|
56
|
+
thorough, disabled for quick and memory-focus).
|
|
57
|
+
--push Push after the end-of-run sync commit when the stash
|
|
58
|
+
is writable and has a remote configured. Use --no-push
|
|
59
|
+
to commit only. Default: per profile config (true when
|
|
60
|
+
sync is enabled).
|
|
61
|
+
--consolidate-recovery <mode>
|
|
62
|
+
Recovery mode for stale consolidate journals: abort (default) or clean
|
|
63
|
+
--require-feedback-signal
|
|
64
|
+
Only process refs with recent feedback signal events
|
|
65
|
+
--min-retrieval-count <n>
|
|
66
|
+
Retrieval fallback threshold when no recent feedback exists (default: 5)
|
|
67
|
+
--json-to-stdout Emit the full JSON result on stdout (legacy behaviour).
|
|
68
|
+
(0.8.0+: full result is recorded in the improve_runs table of
|
|
69
|
+
state.db and stdout is empty; use --json-to-stdout for the prior
|
|
70
|
+
behaviour, e.g. `akm improve --json-to-stdout | jq`.)
|
|
71
|
+
|
|
72
|
+
Examples:
|
|
73
|
+
akm improve
|
|
74
|
+
akm improve memory
|
|
75
|
+
akm improve skill
|
|
76
|
+
akm improve skill:code-review
|
|
77
|
+
akm improve workflow:incident-response --task "reduce duplication"
|
|
78
|
+
akm improve --profile quick
|
|
79
|
+
akm improve --profile memory-focus
|
|
80
|
+
akm improve --no-sync
|
|
81
|
+
akm improve --no-push
|
|
@@ -1,15 +1,18 @@
|
|
|
1
1
|
Usage:
|
|
2
|
-
akm
|
|
2
|
+
akm proposal list
|
|
3
3
|
|
|
4
4
|
Description:
|
|
5
5
|
List proposal queue entries.
|
|
6
6
|
|
|
7
|
+
(`akm proposals` is a deprecated alias for `akm proposal list`; it warns on
|
|
8
|
+
stderr and is removed in 0.9.0.)
|
|
9
|
+
|
|
7
10
|
Options:
|
|
8
11
|
--status <status> Filter by pending, accepted, or rejected
|
|
9
12
|
--type <type> Filter by asset type
|
|
10
13
|
--ref <ref> Filter by exact asset ref
|
|
11
14
|
|
|
12
15
|
Examples:
|
|
13
|
-
akm
|
|
14
|
-
akm
|
|
15
|
-
akm
|
|
16
|
+
akm proposal list
|
|
17
|
+
akm proposal list --status pending
|
|
18
|
+
akm proposal list --type skill
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
Usage:
|
|
2
|
+
akm proposal reject <id> --reason "..."
|
|
3
|
+
|
|
4
|
+
Description:
|
|
5
|
+
Reject a proposal and record the reason.
|
|
6
|
+
|
|
7
|
+
(`akm reject` is a deprecated alias for `akm proposal reject`; it warns on
|
|
8
|
+
stderr and is removed in 0.9.0.)
|
|
9
|
+
|
|
10
|
+
Examples:
|
|
11
|
+
akm proposal reject proposal_123 --reason "duplicates existing workflow"
|