akm-cli 0.9.31 → 0.10.261001-beta
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +409 -0
- package/STABILITY.md +99 -57
- package/dist/api-node.mjs +20 -0
- package/dist/api.d.ts +23 -0
- package/dist/api.js +45 -0
- package/dist/assets/hints/cli-hints-full.md +15 -29
- package/dist/assets/hints/cli-hints-short.md +2 -2
- package/dist/assets/improve-strategies/default.json +3 -3
- package/dist/assets/prompts/consolidate-pair.md +9 -7
- package/dist/assets/stash-skeleton/README.md +1 -1
- package/dist/assets/tasks/improve/akm-improve-consolidate.yml +1 -1
- package/dist/cli/shared.js +31 -48
- package/dist/cli/unknown-flags.js +6 -43
- package/dist/cli.js +8 -34
- package/dist/commands/agent/contribute-cli.js +1 -1
- package/dist/commands/completions.js +1 -2
- package/dist/commands/config-cli.js +5 -28
- package/dist/commands/env/env-cli.js +5 -5
- package/dist/commands/env/secret-cli.js +2 -2
- package/dist/commands/feedback-cli.js +75 -49
- package/dist/commands/health/checks.js +41 -16
- package/dist/commands/health/plugin-staleness.js +52 -22
- package/dist/commands/improve/autonomy-gate.js +5 -3
- package/dist/commands/improve/consolidate/chunking.js +3 -10
- package/dist/commands/improve/consolidate/continuity-check.js +4 -4
- package/dist/commands/improve/consolidate/pair-pass.js +29 -10
- package/dist/commands/improve/consolidate.js +10 -65
- package/dist/commands/improve/distill/lesson-update.js +91 -0
- package/dist/commands/improve/distill-guards.js +1 -43
- package/dist/commands/improve/distill.js +148 -21
- package/dist/commands/improve/eligibility.js +14 -1
- package/dist/commands/improve/extract-cli.js +1 -1
- package/dist/commands/improve/extract-prompt.js +17 -7
- package/dist/commands/improve/extract.js +5 -7
- package/dist/commands/improve/improve-cli.js +92 -106
- package/dist/commands/improve/improve-strategies.js +8 -12
- package/dist/commands/improve/improve.js +134 -52
- package/dist/commands/improve/loop-stages.js +18 -5
- package/dist/commands/improve/planner.js +0 -1
- package/dist/commands/improve/preparation.js +40 -99
- package/dist/commands/improve/proactive-maintenance.js +2 -2
- package/dist/commands/improve/reflect-noise.js +3 -55
- package/dist/commands/improve/reflect.js +29 -34
- package/dist/commands/improve/retrieval-queries.js +37 -0
- package/dist/commands/improve/retrieval-scope.js +2 -2
- package/dist/commands/improve/salience.js +2 -9
- package/dist/commands/improve/session-asset.js +4 -1
- package/dist/commands/improve/stage.js +23 -12
- package/dist/commands/lint/index.js +5 -20
- package/dist/commands/observability-cli.js +3 -9
- package/dist/commands/proposal/drain.js +43 -6
- package/dist/commands/proposal/proposal-cli.js +11 -31
- package/dist/commands/proposal/repository.js +20 -14
- package/dist/commands/proposal/validators/proposal-quality-validators.js +0 -3
- package/dist/commands/read/knowledge.js +3 -3
- package/dist/commands/read/remember-cli.js +0 -13
- package/dist/commands/read/search-cli.js +29 -97
- package/dist/commands/read/search.js +0 -11
- package/dist/commands/read/show.js +0 -19
- package/dist/commands/sources/plugin-upgrade.js +164 -101
- package/dist/commands/sources/sources-cli.js +1 -15
- package/dist/commands/sources/stash-cli.js +6 -14
- package/dist/commands/tasks/tasks-cli.js +4 -115
- package/dist/commands/workflow/plan.js +11 -33
- package/dist/commands/workflow-cli.js +2 -7
- package/dist/core/adapter/adapter-ids.js +1 -2
- package/dist/core/adapter/adapters/agent-skills-adapter.js +0 -4
- package/dist/core/adapter/adapters/akm-adapter.js +9 -48
- package/dist/core/adapter/adapters/akm-lint.js +10 -26
- package/dist/core/adapter/adapters/akm-metadata.js +2 -72
- package/dist/core/adapter/adapters/akm-task-adapter.js +0 -5
- package/dist/core/adapter/adapters/akm-workflow-adapter.js +9 -28
- package/dist/core/adapter/adapters/dotenv-adapter.js +1 -20
- package/dist/core/adapter/adapters/generic-files-adapter.js +0 -10
- package/dist/core/adapter/adapters/llm-wiki-adapter.js +0 -4
- package/dist/core/adapter/adapters/tool-dir-shared.js +0 -24
- package/dist/core/adapter/adapters/website-snapshot-adapter.js +4 -4
- package/dist/core/adapter/recognize-match.js +3 -4
- package/dist/core/common.js +18 -2
- package/dist/core/config/config-schema.js +12 -15
- package/dist/core/config/config-types.js +6 -15
- package/dist/core/config/config-walker.js +6 -23
- package/dist/core/config/config.js +17 -80
- package/dist/core/config/engine-semantics.js +7 -3
- package/dist/core/config/schema/engines.js +7 -7
- package/dist/core/config/schema/improve-processes.js +10 -63
- package/dist/core/config/schema/improve.js +2 -21
- package/dist/core/config/schema/index-config.js +6 -39
- package/dist/core/env-secret-ref.js +2 -45
- package/dist/core/errors.js +1 -2
- package/dist/core/extra-params.js +2 -86
- package/dist/core/file-lock.js +2 -6
- package/dist/core/improve-result.js +13 -1
- package/dist/core/mutation-target.js +2 -2
- package/dist/core/paths.js +4 -0
- package/dist/core/recognition-util.js +4 -5
- package/dist/core/run-lock.js +1 -1
- package/dist/core/subprocess.js +49 -0
- package/dist/core/warn.js +21 -4
- package/dist/core/write-source.js +3 -3
- package/dist/execution/target-ref.js +1 -2
- package/dist/indexer/indexer.js +15 -6
- package/dist/indexer/passes/memory-inference.js +15 -6
- package/dist/indexer/search/db-search.js +49 -36
- package/dist/indexer/search/fts-query.js +0 -19
- package/dist/indexer/search/ranking.js +29 -1
- package/dist/indexer/usage/usage-events.js +21 -16
- package/dist/integrations/agent/engine-resolution.js +5 -2
- package/dist/integrations/agent/index.js +1 -1
- package/dist/integrations/agent/profiles.js +41 -98
- package/dist/integrations/agent/request-lowering.js +3 -3
- package/dist/integrations/harnesses/aider/index.js +5 -0
- package/dist/integrations/harnesses/amazonq/index.js +1 -0
- package/dist/integrations/harnesses/claude/config-import.js +2 -3
- package/dist/integrations/harnesses/claude/index.js +5 -0
- package/dist/integrations/harnesses/codex/index.js +1 -0
- package/dist/integrations/harnesses/copilot/index.js +1 -0
- package/dist/integrations/harnesses/gemini/index.js +1 -0
- package/dist/integrations/harnesses/index.js +18 -39
- package/dist/integrations/harnesses/opencode/agent-builder.js +60 -35
- package/dist/integrations/harnesses/opencode/config-import.js +121 -52
- package/dist/integrations/harnesses/opencode/index.js +22 -0
- package/dist/integrations/harnesses/opencode/plugin-layout.js +68 -0
- package/dist/integrations/harnesses/opencode/session-log-types.js +12 -0
- package/dist/integrations/harnesses/opencode/session-log-v1.js +72 -0
- package/dist/integrations/harnesses/opencode/session-log-v2.js +140 -0
- package/dist/integrations/harnesses/opencode/session-log.js +104 -115
- package/dist/integrations/harnesses/opencode/version.js +98 -0
- package/dist/integrations/harnesses/opencode-sdk/{harness.js → index.js} +5 -17
- package/dist/integrations/harnesses/opencode-sdk/sdk-runner.js +105 -206
- package/dist/integrations/harnesses/opencode-sdk/v1-adapter.js +199 -0
- package/dist/integrations/harnesses/opencode-sdk/v2-adapter.js +254 -0
- package/dist/integrations/harnesses/opencode-sdk/wire.js +66 -0
- package/dist/integrations/harnesses/openhands/index.js +1 -0
- package/dist/integrations/harnesses/pi/index.js +1 -0
- package/dist/integrations/harnesses/shared.js +2 -0
- package/dist/integrations/harnesses/types.js +2 -0
- package/dist/llm/client.js +41 -11
- package/dist/output/cli-hints.js +1 -1
- package/dist/output/context.js +10 -19
- package/dist/output/format-exempt.js +5 -8
- package/dist/output/shapes/helpers.js +1 -22
- package/dist/output/shapes/passthrough.js +0 -1
- package/dist/output/shapes.js +3 -31
- package/dist/output/stdout.js +5 -1
- package/dist/output/text/command-format.js +6 -1
- package/dist/output/text/workflow-format.js +4 -22
- package/dist/scripts/akm-migrate-node.js +15745 -16711
- package/dist/scripts/akm-migrate.js +16318 -17280
- package/dist/setup/detect.js +10 -4
- package/dist/setup/harness-config-import.js +5 -14
- package/dist/setup/setup.js +1 -1
- package/dist/setup/steps/tasks.js +12 -13
- package/dist/sources/providers/git-stash.js +94 -13
- package/dist/storage/repositories/index-utility-repository.js +2 -32
- package/dist/storage/repositories/index-vec-repository.js +4 -0
- package/dist/storage/repositories/task-history-repository.js +0 -5
- package/dist/storage/repositories/workflow-runs-repository.js +5 -15
- package/dist/tasks/embedded.js +2 -1
- package/dist/tasks/run/run-command-task.js +9 -1
- package/dist/tasks/run/run-workflow-task.js +4 -3
- package/dist/tasks/run/task-history.js +0 -2
- package/dist/tasks/run/task-log.js +38 -1
- package/dist/tasks/schedule-gates.js +39 -0
- package/dist/tasks/scheduler-binding.js +0 -16
- package/dist/tasks/scheduler-sync.js +3 -97
- package/dist/tasks/source/bounded-document.js +1 -1
- package/dist/tasks/source/task-source-v4.js +2 -12
- package/dist/tasks/task-run-reserved-flags.js +2 -31
- package/dist/workflows/authoring/authoring.js +6 -6
- package/dist/workflows/compile.js +8 -65
- package/dist/workflows/exec/child-workflow.js +22 -3
- package/dist/workflows/exec/native-executor.js +12 -147
- package/dist/workflows/exec/run-workflow.js +31 -103
- package/dist/workflows/exec/step-work.js +9 -178
- package/dist/workflows/exec/unit-dispatch.js +0 -10
- package/dist/workflows/freeze/environment.js +3 -44
- package/dist/workflows/freeze/freeze.js +8 -41
- package/dist/workflows/freeze/targets/child-workflow.js +27 -63
- package/dist/workflows/freeze/targets/command.js +2 -16
- package/dist/workflows/freeze/targets/shell.js +0 -2
- package/dist/workflows/freeze/task-bindings.js +2 -28
- package/dist/workflows/ir/params.js +12 -2
- package/dist/workflows/parser.js +82 -232
- package/dist/workflows/plan.js +1 -1
- package/dist/workflows/renderer.js +10 -19
- package/dist/workflows/runtime/run-plan.js +11 -53
- package/dist/workflows/runtime/runs.js +4 -27
- package/dist/workflows/source-files.js +12 -16
- package/dist/workflows/source-semantics.js +1 -93
- package/docs/README.md +1 -1
- package/docs/agents/README.md +3 -3
- package/docs/agents/agent-install.md +1 -1
- package/docs/architecture/0.10-process-rules.md +827 -0
- package/docs/architecture/adapters.md +17 -31
- package/docs/architecture/architecture.md +4 -5
- package/docs/architecture/improvement.md +115 -76
- package/docs/architecture/internals/improve-workflow.md +22 -16
- package/docs/architecture/internals/indexing.md +1 -1
- package/docs/architecture/internals/search.md +1 -2
- package/docs/architecture/internals/storage-locations.md +6 -6
- package/docs/architecture/persisted-data-compat.md +13 -4
- package/docs/architecture/specs/0.9.0-decisions.md +6 -2
- package/docs/architecture/specs/improve-collapse-churn-detector-design.md +2 -2
- package/docs/architecture/specs/workflow-format-unification.md +1 -6
- package/docs/architecture/testing/manual-testing-checklist.md +21 -30
- package/docs/architecture/testing/task-workflow-manual-tests.md +106 -203
- package/docs/architecture/testing/testing-workflow.md +1 -1
- package/docs/architecture/workflow-engine.md +5 -56
- package/docs/guides/author-workflows.md +39 -69
- package/docs/guides/bundles.md +3 -1
- package/docs/guides/capture-knowledge.md +1 -1
- package/docs/guides/claude-code-vs-akm-workflows.md +1 -2
- package/docs/guides/discover-and-load.md +4 -4
- package/docs/guides/getting-started.md +1 -1
- package/docs/guides/improve-the-library.md +10 -9
- package/docs/guides/recipes/headless-install.md +2 -2
- package/docs/guides/run-workflows.md +1 -1
- package/docs/guides/scheduling.md +9 -1
- package/docs/guides/use-with-any-agent.md +49 -4
- package/docs/integration/bundling-akm.md +7 -6
- package/docs/maintainers/curate-workmap.md +1 -2
- package/docs/maintainers/release-checklist.md +33 -1
- package/docs/migration/README.md +2 -0
- package/docs/migration/release-notes/0.10.0.md +201 -0
- package/docs/migration/release-notes/README.md +1 -0
- package/docs/migration/v0.9-to-v0.10.md +507 -0
- package/docs/posts/akm-command-tour.md +3 -3
- package/docs/product-surface.md +1 -1
- package/docs/reference/README.md +1 -0
- package/docs/reference/api.md +65 -0
- package/docs/reference/asset-types.md +3 -5
- package/docs/reference/bundle-types.md +2 -4
- package/docs/reference/cli.md +160 -188
- package/docs/reference/configuration.md +101 -20
- package/docs/reference/data-and-telemetry.md +2 -2
- package/docs/reference/env-and-secrets.md +2 -2
- package/docs/reference/supported-formats.md +3 -4
- package/docs/reference/tasks.md +12 -19
- package/docs/reference/website-sources.md +1 -1
- package/docs/reference/workflow-schema.md +89 -317
- package/docs/reference/workflows.md +20 -48
- package/package.json +12 -2
- package/schemas/akm-config.json +2 -243
- package/schemas/akm-task.json +2 -3
- package/schemas/akm-workflow.json +47 -84
- package/dist/assets/improve-strategies/catchup.json +0 -41
- package/dist/assets/improve-strategies/proactive-maintenance.json +0 -24
- package/dist/assets/improve-strategies/quick.json +0 -17
- package/dist/assets/improve-strategies/reflect-distill.json +0 -29
- package/dist/assets/improve-strategies/thorough.json +0 -49
- package/dist/assets/prompts/retrieval-relevance-judge.md +0 -6
- package/dist/assets/tasks/improve/akm-improve-catchup.yml +0 -6
- package/dist/assets/tasks/improve/akm-improve-frequent.yml +0 -4
- package/dist/assets/tasks/improve/akm-improve-nightly.yml +0 -4
- package/dist/cli/retired-commands.js +0 -118
- package/dist/commands/improve/retrieval-gate.js +0 -132
- package/dist/commands/tasks/validate.js +0 -176
- package/dist/core/config/legacy-source-shape-shim.js +0 -117
- package/dist/indexer/feedback/utility-policy.js +0 -75
- package/dist/integrations/harnesses/ids.js +0 -28
- package/dist/tasks/source/task-source-v3-frozen.js +0 -424
- package/dist/tasks/source/task-to-v4.js +0 -863
- package/dist/workflows/exec/worktree.js +0 -372
- package/dist/workflows/freeze/child-output-references.js +0 -83
- package/dist/workflows/freeze/identity.js +0 -22
- package/dist/workflows/freeze/targets/script.js +0 -50
- package/dist/workflows/freeze/targets/task.js +0 -124
- package/dist/workflows/github-yaml.js +0 -506
- package/dist/workflows/runtime/run-outputs.js +0 -80
|
@@ -10,17 +10,11 @@ it's written, see [Running Workflows](../guides/run-workflows.md).
|
|
|
10
10
|
|
|
11
11
|
## Start from the template
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
before translating an Actions-shaped file; AKM does not accept arbitrary
|
|
19
|
-
GitHub semantics. `.yaml` is not recognized—use `.yml`.
|
|
20
|
-
|
|
21
|
-
Use `akm workflow create --print` to print a valid Markdown starter, then edit
|
|
22
|
-
it and register it with `akm workflow create`. Author a YAML source directly
|
|
23
|
-
under `workflows/<name>.yml` and validate either source with `akm lint`:
|
|
13
|
+
A workflow is a Markdown file: OKF-conformant frontmatter carries the
|
|
14
|
+
orchestration graph and the body carries instructions and gate rubrics.
|
|
15
|
+
|
|
16
|
+
Use `akm workflow create --print` to print a valid starter, then edit it and
|
|
17
|
+
register it with `akm workflow create`. Validate with `akm lint`:
|
|
24
18
|
|
|
25
19
|
```sh
|
|
26
20
|
akm workflow create my-release --print # Print the template, without writing
|
|
@@ -417,70 +411,46 @@ blast radius before running it.
|
|
|
417
411
|
[Workflow Schema: Gates and verification](../reference/workflow-schema.md#gates-and-verification)),
|
|
418
412
|
so this is worth confirming once per workflow rather than assuming.
|
|
419
413
|
|
|
420
|
-
##
|
|
414
|
+
## Running a child workflow (Experimental)
|
|
421
415
|
|
|
422
|
-
A
|
|
423
|
-
|
|
416
|
+
A step can run another workflow and use its result. The step names the child
|
|
417
|
+
in its `unit:` bag and binds the child's `params:` with `with:`:
|
|
424
418
|
|
|
425
|
-
```
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
419
|
+
```markdown
|
|
420
|
+
---
|
|
421
|
+
type: workflow
|
|
422
|
+
params:
|
|
423
|
+
topic: { type: string }
|
|
424
|
+
steps:
|
|
425
|
+
- id: investigate
|
|
426
|
+
unit:
|
|
427
|
+
workflow: workflows/research
|
|
428
|
+
with:
|
|
429
|
+
topic: { from: params.topic }
|
|
430
|
+
- id: report
|
|
431
|
+
inputs: [steps.investigate.output]
|
|
432
|
+
---
|
|
439
433
|
|
|
440
|
-
|
|
441
|
-
`scope` with a literal:
|
|
434
|
+
## investigate
|
|
442
435
|
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
jobs:
|
|
449
|
-
main:
|
|
450
|
-
runs-on: [self-hosted]
|
|
451
|
-
steps:
|
|
452
|
-
- id: pick
|
|
453
|
-
run: echo T-42
|
|
454
|
-
- id: dispatch
|
|
455
|
-
uses: tasks/ticket-review
|
|
456
|
-
with:
|
|
457
|
-
ticket: { from: "steps.pick.output" }
|
|
458
|
-
scope: all
|
|
436
|
+
Runs the research workflow as a child run.
|
|
437
|
+
|
|
438
|
+
## report
|
|
439
|
+
|
|
440
|
+
Summarise the research finding.
|
|
459
441
|
```
|
|
460
442
|
|
|
461
|
-
`
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
`
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
to its prompt; a `run:` shell or `scripts/<ref>` target gets one
|
|
473
|
-
`AKM_TASK_INPUTS` environment variable (canonical JSON of the resolved
|
|
474
|
-
bindings). Inspect exactly what each step's `with:` would deliver, without
|
|
475
|
-
running anything, with `akm workflow plan workflows/nightly --format json`
|
|
476
|
-
— its per-step `inputBindings` show `dispatch`'s `scope` as the literal
|
|
477
|
-
`all` and `ticket` as the unresolved reference `steps.pick.output`, the
|
|
478
|
-
same shape freezing a real run would produce. `akm task explain` is not a
|
|
479
|
-
substitute here: it only reflects a task's OWN CLI flags, declared
|
|
480
|
-
defaults, and `schedule[].inputs` — it never reads a workflow step's
|
|
481
|
-
`with:` binding at all, so pointing it at `tasks/ticket-review` prints
|
|
482
|
-
`scope`'s task-level default (`changed`), not the `all` this step actually
|
|
483
|
-
sends.
|
|
443
|
+
A `with:` value is a literal (checked against the child's param type when the
|
|
444
|
+
workflow is frozen) or `{ from: <reference> }`, where the reference is
|
|
445
|
+
`params.<name>` or `steps.<id>.output(.<segment>)*`, resolved just before the
|
|
446
|
+
step runs. The child's **last step output** is the composing step's output, so
|
|
447
|
+
`report` reads it through `inputs:`. Inspect what a step would pass, without
|
|
448
|
+
running anything, with `akm workflow plan workflows/<name> --format json`; the
|
|
449
|
+
per-step `inputBindings` show each literal and each unresolved reference.
|
|
450
|
+
|
|
451
|
+
Child workflows are Experimental. See
|
|
452
|
+
[Workflow Schema: Child workflows](../reference/workflow-schema.md#child-workflows)
|
|
453
|
+
for blocked-child recovery and the limits.
|
|
484
454
|
|
|
485
455
|
## Troubleshooting
|
|
486
456
|
|
package/docs/guides/bundles.md
CHANGED
|
@@ -250,7 +250,9 @@ akm sync my-skills -m "Update" # Named writable git bundle
|
|
|
250
250
|
```
|
|
251
251
|
|
|
252
252
|
Push behavior depends on configuration: if the bundle is a git repo with a
|
|
253
|
-
remote and `writable: true`, sync
|
|
253
|
+
remote and `writable: true`, sync first fetches and merges what another host
|
|
254
|
+
pushed, then pushes. A conflicting merge is aborted and the push skipped (your
|
|
255
|
+
commit stays). Otherwise it commits only.
|
|
254
256
|
|
|
255
257
|
Writes that land on a writable git bundle via an explicit destination flag
|
|
256
258
|
(e.g. `akm remember --bundle my-skills`, proposal accept/revert, consolidate)
|
|
@@ -71,7 +71,7 @@ akm import - --name scratch-notes < notes.md
|
|
|
71
71
|
akm import https://example.com/docs/auth
|
|
72
72
|
|
|
73
73
|
# Route to a named writable bundle:
|
|
74
|
-
akm import ./docs/auth-flow.md --
|
|
74
|
+
akm import ./docs/auth-flow.md --bundle team-bundle
|
|
75
75
|
```
|
|
76
76
|
|
|
77
77
|
Both commands accept `--xref <ref>` to cross-reference related assets and
|
|
@@ -5,8 +5,7 @@ out inside the current session — an in-context script or tool that spawns
|
|
|
5
5
|
subagents, runs them concurrently, and reports back before the session ends.
|
|
6
6
|
AKM workflows are a different thing: a portable procedure that any supported
|
|
7
7
|
agent harness can run, with durable state, retries, gates, and resume built
|
|
8
|
-
in.
|
|
9
|
-
both adapters lower to source IR version 1. Every run freezes the durable plan
|
|
8
|
+
in. A workflow source is Markdown `.md`, lowered to source IR version 1. Every run freezes the durable plan
|
|
10
9
|
v4 family's executable `irVersion: 5` before execution; pre-`irVersion`-5
|
|
11
10
|
stored plans are rejected.
|
|
12
11
|
Neither replaces the other — they solve different problems, and the right
|
|
@@ -14,7 +14,7 @@ whether a script, a workflow, or a skill covers this, so it starts broad,
|
|
|
14
14
|
narrows to a ref, and loads that ref's content:
|
|
15
15
|
|
|
16
16
|
```sh
|
|
17
|
-
akm curate "deploy the app to staging" --
|
|
17
|
+
akm curate "deploy the app to staging" --detail agent
|
|
18
18
|
# → ranked shortlist; top hit: {"type":"script","ref":"scripts/deploy.sh","score":0.91,...}
|
|
19
19
|
|
|
20
20
|
akm show scripts/deploy.sh
|
|
@@ -40,7 +40,7 @@ curate when you know what you're trying to do.
|
|
|
40
40
|
(BM25) and semantic (vector) matches fused into one list:
|
|
41
41
|
|
|
42
42
|
```sh
|
|
43
|
-
akm search "deploy" --type script --
|
|
43
|
+
akm search "deploy" --type script --detail agent
|
|
44
44
|
# → [{"type":"script","name":"deploy.sh","ref":"scripts/deploy.sh","score":0.0328,...}]
|
|
45
45
|
```
|
|
46
46
|
|
|
@@ -53,7 +53,7 @@ akm curate "review an architecture proposal" --type skill
|
|
|
53
53
|
# → ranked shortlist with akm show skills/code-review as the top follow-up
|
|
54
54
|
```
|
|
55
55
|
|
|
56
|
-
Use `--
|
|
56
|
+
Use `--detail agent` on either command to get the `ref`/`path`/`editable`
|
|
57
57
|
fields an agent needs to act on a hit. See [CLI Reference](../reference/cli.md)
|
|
58
58
|
for the full flag tables and exact output-field lists per `--detail` level.
|
|
59
59
|
|
|
@@ -145,7 +145,7 @@ its ranking) and does not trigger a rewrite.
|
|
|
145
145
|
|
|
146
146
|
## 7. Reference links
|
|
147
147
|
|
|
148
|
-
- [CLI Reference](../reference/cli.md) — full `--detail
|
|
148
|
+
- [CLI Reference](../reference/cli.md) — full `--detail` flag
|
|
149
149
|
semantics, complete flag tables, and exact output-field lists for `search`,
|
|
150
150
|
`curate`, `show`, and `index`
|
|
151
151
|
- [Architecture](../architecture/architecture.md) — ranking and search
|
|
@@ -162,7 +162,7 @@ your agent the payload; running it is a deliberate next step.
|
|
|
162
162
|
## 7. Tell your agent about akm
|
|
163
163
|
|
|
164
164
|
```sh
|
|
165
|
-
akm
|
|
165
|
+
akm hints --detail brief >> AGENTS.md
|
|
166
166
|
```
|
|
167
167
|
|
|
168
168
|
**Success check:** `AGENTS.md` now has a block of agent-facing usage
|
|
@@ -28,8 +28,9 @@ rewrite an asset's text. Once you have verified the correct fact, attach the
|
|
|
28
28
|
exact fix: `--replace "<exact current text>" --with "<corrected text>"
|
|
29
29
|
--source "<URL, command or file that shows it>"` (repeat `--replace`/`--with`
|
|
30
30
|
for several edits). akm checks that each `--replace` text appears exactly once,
|
|
31
|
-
records nothing if one does not, and
|
|
32
|
-
|
|
31
|
+
records nothing if one does not, and applies the edit at once: no review, no
|
|
32
|
+
gate (the `feedback` proposal it files is accepted on the spot, so
|
|
33
|
+
`akm proposal revert` undoes it). `--positive` records that an asset helped (it raises its ranking)
|
|
33
34
|
and does not trigger a rewrite.
|
|
34
35
|
|
|
35
36
|
```sh
|
|
@@ -112,12 +113,12 @@ It also skips a memory whose only feedback in that window is a positive with no
|
|
|
112
113
|
reason or note: say what helped (`--reason`), or the lesson has nothing to
|
|
113
114
|
distil.
|
|
114
115
|
Unless `--require-feedback-signal` is set,
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
so
|
|
119
|
-
ranked by salience and cut to `--limit`.
|
|
120
|
-
Improve reworks only what gets read: without fresh feedback,
|
|
116
|
+
the proactive-maintenance lane (on in `default`) also plans assets with no such
|
|
117
|
+
feedback that are due for a revisit: at most 15 per run
|
|
118
|
+
(`processes.proactiveMaintenance.maxPerRun`), and only assets not reflected or
|
|
119
|
+
distilled for 30 days (`dueDays`), so each comes up at most once a month. The
|
|
120
|
+
planned assets are ranked by salience and cut to `--limit`.
|
|
121
|
+
Improve reworks only what gets read: without fresh feedback, the lane
|
|
121
122
|
picks an asset (and a memory is judged for consolidation) only if `search`,
|
|
122
123
|
`curate` or `show` returned it, or feedback named it, in the last 90 days — the
|
|
123
124
|
usage log's retention — or if it is new material no improve stage has processed
|
|
@@ -171,7 +172,7 @@ akm proposal diff <id> # Preview the change vs. the liv
|
|
|
171
172
|
|
|
172
173
|
# Apply or discard
|
|
173
174
|
akm proposal accept <uuid-or-prefix>
|
|
174
|
-
akm proposal accept skills/akm-dream --
|
|
175
|
+
akm proposal accept skills/akm-dream --bundle team-bundle
|
|
175
176
|
akm proposal reject <uuid-or-prefix> --reason "duplicates existing workflow"
|
|
176
177
|
```
|
|
177
178
|
|
|
@@ -31,7 +31,7 @@ akm info
|
|
|
31
31
|
akm search "test"
|
|
32
32
|
|
|
33
33
|
# 7. Install agent guidance
|
|
34
|
-
akm
|
|
34
|
+
akm hints --detail brief >> AGENTS.md
|
|
35
35
|
|
|
36
36
|
echo "akm setup complete"
|
|
37
37
|
```
|
|
@@ -85,7 +85,7 @@ indexing.
|
|
|
85
85
|
`indexStats.entryCount` and `semanticSearch.status`; `akm search "<query>"`
|
|
86
86
|
confirms retrieval actually returns results.
|
|
87
87
|
|
|
88
|
-
**Install agent guidance.** `akm
|
|
88
|
+
**Install agent guidance.** `akm hints --detail brief >> AGENTS.md` appends the
|
|
89
89
|
canonical usage block agents need to discover and use the library. Run this
|
|
90
90
|
after indexing so the guidance matches the installed version.
|
|
91
91
|
|
|
@@ -21,7 +21,7 @@ projects.
|
|
|
21
21
|
|
|
22
22
|
Every new run/start compiles source IR v1 and freezes the durable plan v4
|
|
23
23
|
family's current executable format (`irVersion: 5`) before publishing the run.
|
|
24
|
-
|
|
24
|
+
A workflow ref is a Markdown `.md` source.
|
|
25
25
|
|
|
26
26
|
```sh
|
|
27
27
|
akm workflow run workflows/ship-release --version 1.2.3
|
|
@@ -76,9 +76,17 @@ the command is `akm improve`'s own:
|
|
|
76
76
|
|
|
77
77
|
```sh
|
|
78
78
|
akm task add improve-team --schedule "15 3 * * *" \
|
|
79
|
-
--command "akm improve --bundle team --
|
|
79
|
+
--command "akm improve --bundle team --require-engines"
|
|
80
80
|
```
|
|
81
81
|
|
|
82
|
+
Leave `--skip-if-locked` off a once-a-night run: if a short-cadence improve task
|
|
83
|
+
holds the lock when it fires, the run fails with `IMPROVE_LOCK_HELD` (exit 75) and
|
|
84
|
+
is recorded, rather than being silently skipped. Put `--skip-if-locked` on the
|
|
85
|
+
frequent tasks, and give them a `--timeout-ms` that ends before the nightly starts.
|
|
86
|
+
The shipped `improve/akm-improve-consolidate` task does both: it runs at `:20`
|
|
87
|
+
every four hours with `--timeout-ms 3600000`, so the 00:20 run is over by 01:20,
|
|
88
|
+
well before the 02:00 nightly.
|
|
89
|
+
|
|
82
90
|
## Rerunning setup preserves scheduler bindings
|
|
83
91
|
|
|
84
92
|
Rerunning `akm setup` preserves existing scheduler bindings by design — it
|
|
@@ -26,7 +26,7 @@ For a longer, agent-facing instruction block — usage patterns, flag guidance,
|
|
|
26
26
|
the full ref format — generate one instead of hand-writing it:
|
|
27
27
|
|
|
28
28
|
```sh
|
|
29
|
-
akm
|
|
29
|
+
akm hints --detail brief >> AGENTS.md
|
|
30
30
|
```
|
|
31
31
|
|
|
32
32
|
The output is stable across patch releases and designed for agents rather
|
|
@@ -50,7 +50,7 @@ akm show workflows/deploy-to-prod
|
|
|
50
50
|
akm feedback workflows/deploy-to-prod --positive --reason "Completed without issues"
|
|
51
51
|
```
|
|
52
52
|
|
|
53
|
-
**Get refs from search.** Agents should call `akm search --
|
|
53
|
+
**Get refs from search.** Agents should call `akm search --detail agent` or
|
|
54
54
|
`akm curate` to discover refs — not guess them. The `ref` field in search
|
|
55
55
|
results is the stable token to pass to `akm show`. Feedback closes the loop.
|
|
56
56
|
Record `--negative` only when the asset's content is wrong or stale; a note that
|
|
@@ -70,7 +70,7 @@ sets expectations by environment.
|
|
|
70
70
|
|
|
71
71
|
| Environment | Core support | Optional/extended support |
|
|
72
72
|
| --- | --- | --- |
|
|
73
|
-
| Shell-capable coding agent | `curate` / `show` / `feedback` via the CLI | Generated prompt block (`akm
|
|
73
|
+
| Shell-capable coding agent | `curate` / `show` / `feedback` via the CLI | Generated prompt block (`akm hints`) or a platform plugin |
|
|
74
74
|
| Claude/OpenCode project layout | Indexed in place through a `BundleAdapter` — no migration needed | `akm clone` selected assets into a writable bundle for editing |
|
|
75
75
|
| IDE assistant without shell access | Not a direct core integration | Requires a plugin, an `akm task`, or an external bridge that can shell out on the assistant's behalf |
|
|
76
76
|
|
|
@@ -118,12 +118,57 @@ than replacing either.
|
|
|
118
118
|
browsing, automatic context injection — but the core `akm` CLI works
|
|
119
119
|
without them.
|
|
120
120
|
|
|
121
|
+
## OpenCode plugins: one package per OpenCode major
|
|
122
|
+
|
|
123
|
+
OpenCode 1 and OpenCode 2 load different plugin APIs, so akm ships one plugin
|
|
124
|
+
package for each. Install only the one that matches the `opencode` you run; akm
|
|
125
|
+
never installs or replaces the `opencode` binary, and `akm upgrade` never adds
|
|
126
|
+
one plugin to the other major's config.
|
|
127
|
+
|
|
128
|
+
| OpenCode | Plugin package | Config key | Plugin cache |
|
|
129
|
+
| --- | --- | --- | --- |
|
|
130
|
+
| 1 | `akm-opencode` | `"plugin"` | `~/.cache/opencode/packages/akm-opencode@<tag>/` |
|
|
131
|
+
| 2 | `akm-opencode-v2` | `"plugins"` (the key `opencode plugin add` writes) | `~/.cache/opencode/npm/akm-opencode-v2@<tag>/<build>/` |
|
|
132
|
+
|
|
133
|
+
(`$XDG_CACHE_HOME` and `$XDG_CONFIG_HOME` move both.) Both packages declare the
|
|
134
|
+
same `akm-cli` dependency.
|
|
135
|
+
|
|
136
|
+
**OpenCode 1.** Add `akm-opencode` to the global config
|
|
137
|
+
(`~/.config/opencode/opencode.json`):
|
|
138
|
+
|
|
139
|
+
```json
|
|
140
|
+
{ "plugin": ["akm-opencode"] }
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
**OpenCode 2.**
|
|
144
|
+
|
|
145
|
+
```sh
|
|
146
|
+
opencode plugin add akm-opencode-v2
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
This installs the package and adds it to `plugins` in the global config.
|
|
150
|
+
|
|
151
|
+
**Updating.** `akm upgrade` refreshes the cached plugin of each major it finds,
|
|
152
|
+
holds the CLI to the `akm-cli` those plugins pin, and leaves a plugin alone
|
|
153
|
+
whose config pins another spec such as `akm-opencode@0.8.0`. Use
|
|
154
|
+
`akm upgrade --next` with `akm-opencode@next` / `akm-opencode-v2@next` in the
|
|
155
|
+
config to follow prereleases. The exact rules are in the
|
|
156
|
+
[`akm upgrade` reference](../reference/cli.md#harness-plugins). `akm health`
|
|
157
|
+
warns when either plugin's bundled `akm-cli` differs from the running CLI.
|
|
158
|
+
|
|
159
|
+
**Which OpenCode akm drives** is detected, not configured: an `opencode` or
|
|
160
|
+
`opencode-sdk` agent engine runs the most recent OpenCode on `PATH` (or its own
|
|
161
|
+
`bin`) and uses the adapters for the major that binary reports; OpenCode 1 logs a
|
|
162
|
+
warning recommending OpenCode 2 (see
|
|
163
|
+
[Configuration](../reference/configuration.md#engines)). It does not change
|
|
164
|
+
which plugin you install, and the plugin choice does not change it.
|
|
165
|
+
|
|
121
166
|
## See also
|
|
122
167
|
|
|
123
168
|
- [Configuration](../reference/configuration.md#engines) — named agent engines and model aliases
|
|
124
169
|
- [Discover and Load](discover-and-load.md) — the full curate → show retrieval path
|
|
125
170
|
- [Knowledge Management](knowledge-management.md) — capturing agent-generated memories
|
|
126
171
|
- [Improve the Library](improve-the-library.md) — feeding back usage signals
|
|
127
|
-
- [CLI Reference](../reference/cli.md) — `completions`, `agent`, and `
|
|
172
|
+
- [CLI Reference](../reference/cli.md) — `completions`, `agent`, and `hints` command documentation
|
|
128
173
|
- [Concepts](concepts.md) — refs, origins, and the asset type system
|
|
129
174
|
- [Bundle Types](../reference/bundle-types.md) — how AKM indexes existing project layouts in place
|
|
@@ -30,10 +30,11 @@ akm migrate apply
|
|
|
30
30
|
In order, every run applies (or, under `status`/`--dry-run`, plans):
|
|
31
31
|
|
|
32
32
|
1. **config.json in its current shape** (`configFile`): retired and unknown
|
|
33
|
-
keys dropped,
|
|
34
|
-
|
|
35
|
-
`
|
|
36
|
-
|
|
33
|
+
keys dropped, `configVersion` set. Config loading already does this in
|
|
34
|
+
memory; this persists it under a backup. A config older than 0.9.15 (the
|
|
35
|
+
legacy `stashDir`/`sources[]`/`installed` layout, an `extraParams` key
|
|
36
|
+
that shadows a first-class field) is not converted by 0.10: it blocks
|
|
37
|
+
with a message to run `akm migrate apply` under akm 0.9.x first.
|
|
37
38
|
2. **Pending `state.db` migrations**, historical-destructive ones included
|
|
38
39
|
(`stateMigrations`). This is the only path (besides `akm upgrade`, which
|
|
39
40
|
calls the same code) that is allowed to apply a destructive migration to an
|
|
@@ -98,7 +99,7 @@ same step names):
|
|
|
98
99
|
`status` is one of:
|
|
99
100
|
|
|
100
101
|
- **`current`** — no task-source file needs converting, and no config
|
|
101
|
-
|
|
102
|
+
rewrite is pending. A no-op boot.
|
|
102
103
|
- **`ready`** — task sources have eligible changes and no config-lift
|
|
103
104
|
conflict; a real `apply` will clear them.
|
|
104
105
|
- **`blocked`** — at least one item cannot be applied automatically (a
|
|
@@ -244,7 +245,7 @@ akm-migrate apply
|
|
|
244
245
|
|
|
245
246
|
`akm migrate status`/`apply` (under the `akm` CLI) are a thin wrapper over
|
|
246
247
|
this same executable — same plan, same exit codes. Reach for `akm-migrate`
|
|
247
|
-
directly when you don't want `akm`'s `--format`/`--
|
|
248
|
+
directly when you don't want `akm`'s `--format`/`--detail` output
|
|
248
249
|
handling in the way, e.g. a shell script that just wants the raw JSON line
|
|
249
250
|
on stdout and a plain exit code.
|
|
250
251
|
|
|
@@ -197,8 +197,7 @@ Important details:
|
|
|
197
197
|
|
|
198
198
|
- `curate` has a dedicated output shaper now
|
|
199
199
|
- `brief` still keeps `followUp` and `reason`
|
|
200
|
-
- `--
|
|
201
|
-
- `--shape summary` is rejected on `curate`
|
|
200
|
+
- `--detail agent` trims fields down for agent use
|
|
202
201
|
- text output prints fixed `Next steps:` guidance that assumes `akm show <ref>` is the next action
|
|
203
202
|
|
|
204
203
|
## Telemetry And Retrieval Signal
|
|
@@ -6,7 +6,14 @@ run of the exact commit that will be published.
|
|
|
6
6
|
|
|
7
7
|
## 1. Freeze the candidate
|
|
8
8
|
|
|
9
|
-
1. Finish the version, changelog, migration-note, and release-PR changes.
|
|
9
|
+
1. Finish the version, changelog, migration-note, and release-PR changes. From
|
|
10
|
+
0.10 the version is a monthly release number, `0.10.YYMMNN` (see step 4):
|
|
11
|
+
`bun scripts/release-version.ts next` prints the next free one for this
|
|
12
|
+
month (UTC). Every release, whatever its stage, takes the next number.
|
|
13
|
+
Commit it in `package.json` and cut the CHANGELOG as
|
|
14
|
+
`## [0.10.YYMMNN] - YYYY-MM-DD`. A prerelease stage is not committed: it is
|
|
15
|
+
chosen when the Release workflow runs, and the release's CHANGELOG section
|
|
16
|
+
covers it.
|
|
10
17
|
2. Record `git rev-parse HEAD`. This is the full 40-character release-candidate SHA.
|
|
11
18
|
3. Run `bun run release:check` locally. If Docker is unavailable, run
|
|
12
19
|
`./tests/release-check.sh --skip-docker` and rely on the gated Docker job
|
|
@@ -101,3 +108,28 @@ After the exact-SHA gated run and local release check are green, trigger the
|
|
|
101
108
|
Release workflow with the version already committed in `package.json`. Keep the
|
|
102
109
|
candidate SHA and Gated CI run URL in the release record so the published
|
|
103
110
|
artifact's validation can be audited later.
|
|
111
|
+
|
|
112
|
+
0.10 and later use monthly release numbers, `0.10.YYMMNN`: `YY` the UTC year,
|
|
113
|
+
`MM` the month and `NN` the release in that month (`01` to `99`), two digits
|
|
114
|
+
each (see [`STABILITY.md`](../../STABILITY.md)). The first release of 2026-10 is
|
|
115
|
+
`0.10.261001`. `bun scripts/release-version.ts next` takes `NN` as one above the
|
|
116
|
+
highest release already on npm for this UTC month, with or without a stage
|
|
117
|
+
(`npm view akm-cli versions`), so numbering follows what was published, not
|
|
118
|
+
what was committed. The retired 8-digit daily builds (`0.10.26101001-alpha` to
|
|
119
|
+
`0.10.26101202-alpha`) are not counted.
|
|
120
|
+
|
|
121
|
+
The workflow has two inputs:
|
|
122
|
+
|
|
123
|
+
- `version`: the version committed in `package.json`, as before. The workflow
|
|
124
|
+
rejects a malformed one (`scripts/release-version.ts`, tested in
|
|
125
|
+
`tests/release-version.test.ts`): two digits each for `YY`, `MM`, `NN`, a
|
|
126
|
+
month 01 to 12, `NN` 01 to 99; the old 8-digit daily form is rejected. For
|
|
127
|
+
0.9 and older it is the `X.Y.Z` as before.
|
|
128
|
+
- `stage`: `none` publishes `<version>` to the npm `latest` tag and as a GitHub
|
|
129
|
+
release. `alpha`, `beta` or `rc` publishes `<version>-<stage>` to `next` as a
|
|
130
|
+
GitHub prerelease (no `.N`: every release has its own number). There is no
|
|
131
|
+
promoting one build through stages: the next release, at any stage, commits
|
|
132
|
+
the next number (`0.10.261001-alpha`, then `0.10.261002-beta`, then
|
|
133
|
+
`0.10.261003`).
|
|
134
|
+
|
|
135
|
+
`bun scripts/release-version.ts validate <version>` checks a version by hand.
|
package/docs/migration/README.md
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
Upgrade guides and per-release migration notes.
|
|
4
4
|
|
|
5
|
+
- [v0.9 -> v0.10 migration guide](v0.9-to-v0.10.md) -- Upgrade order for a 0.9.15+ install, every removed CLI spelling, strategy, config key and workflow feature with its replacement, changed `akm improve` defaults, the OpenCode plugins, and `0.10.YYMMNN` version numbers
|
|
6
|
+
- [v0.10.0 release note](release-notes/0.10.0.md) -- Summary of the 0.10 series: the 0.9.15 version floor, `--shape`/`--target`/`help agents` removals, `default` and `consolidate` as the only built-in strategies, OpenCode 2, feedback-scaled ranking, and what is gone
|
|
5
7
|
- [v0.9.1 -> v0.9.2 migration guide](v0.9.1-to-v0.9.2.md) -- Task-v2/task-v3 to task source v4 conversion, the durable-v4-family workflow boundary at executable `irVersion: 5`, and release behavior changes
|
|
6
8
|
- [v0.9.2 release note](release-notes/0.9.2.md) -- Self-contained terminal upgrade summary shipped for `akm help migrate 0.9.2`
|
|
7
9
|
- [v0.9.16 release note](release-notes/0.9.16.md) -- Source-bound scheduler grants, local execution authority, and split unsafe overrides
|