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
|
|
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
|
## Agent Task Loop
|
|
6
6
|
|
|
@@ -8,15 +8,15 @@ For any task, follow this loop:
|
|
|
8
8
|
1. `akm curate "<task>"` — find the best matching asset
|
|
9
9
|
2. `akm show <ref>` — read the schema (field names and structure)
|
|
10
10
|
3. Edit the workspace file using schema field names + task-specific values from your README
|
|
11
|
-
4. `akm feedback <ref> --positive` — record success
|
|
11
|
+
4. `akm feedback <ref> --positive` — record success; use `--negative --reason "..."` when it fails
|
|
12
12
|
|
|
13
13
|
For workflow tasks:
|
|
14
|
-
1. `akm workflow next
|
|
14
|
+
1. `akm workflow next workflows/<name>` — get current step instructions
|
|
15
15
|
2. Do the step work in your workspace
|
|
16
|
-
3. `akm workflow complete <run-id> --step <step-id
|
|
16
|
+
3. `akm workflow complete <run-id> --step <step-id> --summary "what was done"` — mark done, get next step
|
|
17
17
|
|
|
18
18
|
Workflow runs are scoped to your current project/worktree/directory. Ref-based
|
|
19
|
-
commands like `workflow next
|
|
19
|
+
commands like `workflow next workflows/<name>`, `workflow status workflows/<name>`,
|
|
20
20
|
and `workflow list` operate within the current scope only.
|
|
21
21
|
|
|
22
22
|
## Quick Reference
|
|
@@ -25,26 +25,27 @@ and `workflow list` operate within the current scope only.
|
|
|
25
25
|
akm search "<query>" # Search all sources
|
|
26
26
|
akm curate "<task>" # Curate the best matches for a task
|
|
27
27
|
akm search "<query>" --type workflow # Filter to workflow assets
|
|
28
|
-
akm search "
|
|
28
|
+
akm search "memories/projectA/" # List a subtree (conceptId prefix; trailing slash required)
|
|
29
|
+
akm search "<query>" --from all # Also search registries
|
|
29
30
|
akm show <ref> # View asset details
|
|
31
|
+
akm help <command> # Show a command's options and subcommands
|
|
30
32
|
akm workflow next <ref> # Start or resume a workflow
|
|
31
|
-
akm remember "Deployment needs VPN access" # Record a memory in your
|
|
32
|
-
akm remember "note" --
|
|
33
|
-
akm
|
|
34
|
-
akm
|
|
35
|
-
akm
|
|
36
|
-
akm
|
|
37
|
-
akm
|
|
38
|
-
akm proposal diff skill:akm-dream # Diff proposal by ref, UUID, or 8-char prefix
|
|
33
|
+
akm remember "Deployment needs VPN access" # Record a memory in your bundle
|
|
34
|
+
akm remember "note" --bundle my-bundle # Route write to a named writable bundle source
|
|
35
|
+
akm remember "note" --xref knowledge/auth-flow # Cite provenance in frontmatter xrefs (repeatable)
|
|
36
|
+
akm remember "fix" --supersedes memories/old-note # Write a correction AND demote the superseded asset
|
|
37
|
+
akm import ./notes/release-checklist.md # Import a knowledge doc into your bundle
|
|
38
|
+
akm import ./doc.md --target my-bundle # Route import to a named writable bundle source
|
|
39
|
+
akm proposal diff skills/akm-dream # Diff proposal by ref, UUID, or 8-char prefix
|
|
39
40
|
akm proposal accept 7c115132 # Accept by UUID prefix
|
|
40
|
-
akm proposal reject
|
|
41
|
+
akm proposal reject skills/my-skill --reason "..." # Reject by ref
|
|
41
42
|
akm feedback <ref> --positive|--negative # Record whether an asset helped
|
|
42
|
-
akm add <ref> # Add a source (npm, GitHub, git, local dir)
|
|
43
|
-
akm clone <ref> # Copy an asset to the working
|
|
44
|
-
akm sync # Commit (and push if writable remote) changes in the primary
|
|
43
|
+
akm bundle add <ref> # Add a source (npm, GitHub, git, local dir)
|
|
44
|
+
akm clone <ref> # Copy an asset to the working bundle (optional --dest arg to clone to specific location)
|
|
45
|
+
akm sync # Commit (and push if writable remote) changes in the primary bundle (--no-push to commit only)
|
|
45
46
|
akm improve --no-sync # Run improve without the end-of-run auto-commit
|
|
46
47
|
akm improve --no-push # Auto-commit but skip push for this run
|
|
47
|
-
akm
|
|
48
|
+
akm search "<query>" --from registry # Search all registries (registry search was folded into search)
|
|
48
49
|
```
|
|
49
50
|
|
|
50
51
|
## Primary Asset Types
|
|
@@ -55,14 +56,76 @@ akm registry search "<query>" # Search all registries
|
|
|
55
56
|
| skill | Instructions to follow (read the full content) |
|
|
56
57
|
| command | A prompt template with placeholders to fill in |
|
|
57
58
|
| agent | A system prompt with model and tool hints |
|
|
58
|
-
| knowledge | A reference doc (
|
|
59
|
+
| knowledge | A reference doc (append `#<heading-slug>` to the ref to read one section) |
|
|
59
60
|
| workflow | Parsed steps plus workflow-specific execution commands |
|
|
60
61
|
| memory | Recalled context (read the content for background information) |
|
|
61
|
-
| env | A `.env` file of
|
|
62
|
-
| secret | A single sensitive value for AUTHENTICATION (token, key, cert); name only.
|
|
63
|
-
|
|
|
62
|
+
| env | A `.env` file of configuration an app loads together (many vars; sensitive or not — all protected); key names only. Inject with `akm env run <ref> -- <cmd>` (the agent-safe path — values stay on disk). |
|
|
63
|
+
| secret | A single sensitive value for AUTHENTICATION (token, key, cert); name only. Inject with `akm secret run <ref> <VAR> -- <cmd>`. |
|
|
64
|
+
| lesson | A distilled feedback lesson: `content` plus `action` (rendered from the `when_to_use` frontmatter). Read both before applying a related skill. Generated by the improve pipeline and promoted through the proposal queue. |
|
|
64
65
|
|
|
65
66
|
When an asset meaningfully helps or fails, record that with `akm feedback` so
|
|
66
67
|
future search ranking can learn from real usage.
|
|
67
68
|
|
|
68
|
-
|
|
69
|
+
## Error Shapes and Exit Codes
|
|
70
|
+
|
|
71
|
+
Every command returns JSON by default. On failure, the shape is always
|
|
72
|
+
emitted on **stderr** (stdout is normally left empty):
|
|
73
|
+
|
|
74
|
+
```json
|
|
75
|
+
{"ok": false, "error": "<message>", "code": "<optional machine-readable code>", "hint": "<optional remediation hint>"}
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Exit codes:
|
|
79
|
+
|
|
80
|
+
| Code | Meaning |
|
|
81
|
+
| --- | --- |
|
|
82
|
+
| 0 | Success |
|
|
83
|
+
| 1 | Not found or command-reported failure |
|
|
84
|
+
| 2 | Usage / bad input |
|
|
85
|
+
| 4 | Health warning (`akm health` only) |
|
|
86
|
+
| 70 | Internal / unclassified error |
|
|
87
|
+
| 78 | Configuration error |
|
|
88
|
+
|
|
89
|
+
Check `ok === false` or a non-zero exit code to detect failure. The `hint`
|
|
90
|
+
field, when present, describes a corrective action. `search`/`curate`
|
|
91
|
+
success results also carry an additive `tip` field (a plain-text suggestion)
|
|
92
|
+
when the result set is empty.
|
|
93
|
+
|
|
94
|
+
`env run`, `secret run`, and `migrate` preserve the spawned process's exact
|
|
95
|
+
status. `task run` preserves configuration failures as exit 78; other failed
|
|
96
|
+
task results and failed `agent` dispatches map to exit 1 while retaining the
|
|
97
|
+
child status in their result envelope.
|
|
98
|
+
|
|
99
|
+
`akm lint` is the exception: it exits **0 on every successful run regardless
|
|
100
|
+
of findings**. Read `summary.flagged` to detect issues, or pass
|
|
101
|
+
`--fail-on-flagged` to opt into "exit 1 when findings exist":
|
|
102
|
+
|
|
103
|
+
```sh
|
|
104
|
+
akm lint | jq '.summary.flagged' # always exit 0; read the count
|
|
105
|
+
akm lint --fail-on-flagged && deploy # exit 1 if any flagged issues
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
## Proposals & improvement (0.8.0+)
|
|
109
|
+
|
|
110
|
+
`akm` ships a proposal queue so reflective edits, new asset drafts, and
|
|
111
|
+
feedback-distilled lessons land out-of-band before they touch the live
|
|
112
|
+
bundle. None of these commands mutate bundle content directly — they always
|
|
113
|
+
go through `akm proposal accept`.
|
|
114
|
+
|
|
115
|
+
```sh
|
|
116
|
+
akm improve <ref> # Produce an improvement proposal for an existing asset
|
|
117
|
+
akm improve <ref> --task "tighten the description"
|
|
118
|
+
akm proposal new <type> <name> --task "..." # Draft a new asset proposal from a description
|
|
119
|
+
akm proposal new lesson docker-cleanup --task "consolidate cleanup feedback"
|
|
120
|
+
akm proposal list # List pending proposals
|
|
121
|
+
akm proposal list --status pending|accepted|rejected|reverted
|
|
122
|
+
akm proposal show <id> # Render the proposal body
|
|
123
|
+
akm proposal diff <ref-or-id> # Diff by ref, UUID, or 8-char prefix
|
|
124
|
+
akm proposal accept 7c115132 # Accept by UUID prefix
|
|
125
|
+
akm proposal reject skills/my-skill --reason "not ready" # Reject by asset ref
|
|
126
|
+
akm search "<query>" --include-proposed # Surface proposal-queue entries in search
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
Run `akm help <command>` for that command's options and subcommands. Run
|
|
130
|
+
`akm --help` for the command overview or `akm hints --detail full` for the
|
|
131
|
+
complete agent guide.
|
|
@@ -7,7 +7,9 @@
|
|
|
7
7
|
"memoryInference": { "enabled": false },
|
|
8
8
|
"graphExtraction": { "enabled": false },
|
|
9
9
|
"extract": { "enabled": false },
|
|
10
|
-
"triage": { "enabled": true, "applyMode": "queue", "policy": "personal-stash", "maxAcceptsPerRun": 100 }
|
|
10
|
+
"triage": { "enabled": true, "applyMode": "queue", "policy": "personal-stash", "maxAcceptsPerRun": 100 },
|
|
11
|
+
"validation": { "enabled": false },
|
|
12
|
+
"proactiveMaintenance": { "enabled": false }
|
|
11
13
|
},
|
|
12
14
|
"sync": { "enabled": true, "push": true }
|
|
13
15
|
}
|
|
@@ -7,7 +7,9 @@
|
|
|
7
7
|
"memoryInference": { "enabled": false },
|
|
8
8
|
"graphExtraction": { "enabled": false },
|
|
9
9
|
"extract": { "enabled": false },
|
|
10
|
-
"triage": { "enabled": false }
|
|
10
|
+
"triage": { "enabled": false },
|
|
11
|
+
"validation": { "enabled": false },
|
|
12
|
+
"proactiveMaintenance": { "enabled": false }
|
|
11
13
|
},
|
|
12
14
|
"sync": { "enabled": true, "push": true }
|
|
13
15
|
}
|
|
@@ -1,20 +1,19 @@
|
|
|
1
1
|
{
|
|
2
|
-
"description": "Standard improve pass —
|
|
2
|
+
"description": "Standard improve pass — reflect, distill, advisory consolidation, graph extraction, and validation. Memory inference is listed below but only runs when experimental.improveAutonomy is set; improve-stage extract and proactive maintenance off.",
|
|
3
3
|
"processes": {
|
|
4
4
|
"reflect": {
|
|
5
5
|
"enabled": true,
|
|
6
6
|
"limit": 25,
|
|
7
|
-
"allowedTypes": ["agent", "command", "knowledge", "lesson", "memory", "skill", "
|
|
7
|
+
"allowedTypes": ["agent", "command", "knowledge", "lesson", "memory", "skill", "workflow"]
|
|
8
8
|
},
|
|
9
9
|
"distill": { "enabled": true, "allowedTypes": ["memory"], "requirePlannedRefs": true },
|
|
10
10
|
"consolidate": { "enabled": true, "allowedTypes": ["memory"], "minPoolSize": 500 },
|
|
11
11
|
"memoryInference": { "enabled": true },
|
|
12
12
|
"graphExtraction": { "enabled": true },
|
|
13
|
-
"extract": { "enabled":
|
|
14
|
-
"
|
|
15
|
-
"
|
|
16
|
-
"
|
|
17
|
-
"procedural": { "enabled": false }
|
|
13
|
+
"extract": { "enabled": false, "triage": { "enabled": true, "minScore": 2 } },
|
|
14
|
+
"validation": { "enabled": true },
|
|
15
|
+
"proactiveMaintenance": { "enabled": false, "dueDays": 30, "maxPerRun": 15 },
|
|
16
|
+
"triage": { "enabled": false, "applyMode": "queue", "policy": "personal-stash" }
|
|
18
17
|
},
|
|
19
18
|
"sync": { "enabled": true, "push": true }
|
|
20
19
|
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"description": "Frequent inference pass — memory inference, graph extraction, and reflect; improve-stage extract off.",
|
|
3
|
+
"processes": {
|
|
4
|
+
"reflect": { "enabled": true },
|
|
5
|
+
"distill": { "enabled": false },
|
|
6
|
+
"consolidate": { "enabled": false },
|
|
7
|
+
"memoryInference": { "enabled": true },
|
|
8
|
+
"graphExtraction": { "enabled": true },
|
|
9
|
+
"extract": { "enabled": false, "minNewSessions": 3, "triage": { "enabled": true, "minScore": 2 } },
|
|
10
|
+
"triage": { "enabled": false },
|
|
11
|
+
"validation": { "enabled": false },
|
|
12
|
+
"proactiveMaintenance": { "enabled": false }
|
|
13
|
+
},
|
|
14
|
+
"sync": { "enabled": true, "push": true }
|
|
15
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"description": "Full-corpus graph extraction pass — rebuilds graph relationships across all stash files. Disables all other sub-processes. Use via `akm improve --
|
|
2
|
+
"description": "Full-corpus graph extraction pass — rebuilds graph relationships across all stash files. Disables all other sub-processes. Use via `akm improve --strategy graph-refresh` or the embedded `graph-refresh-weekly` task.",
|
|
3
3
|
"processes": {
|
|
4
4
|
"reflect": { "enabled": false },
|
|
5
5
|
"distill": { "enabled": false },
|
|
@@ -7,7 +7,9 @@
|
|
|
7
7
|
"memoryInference": { "enabled": false },
|
|
8
8
|
"graphExtraction": { "enabled": true, "fullScan": true },
|
|
9
9
|
"extract": { "enabled": false },
|
|
10
|
-
"triage": { "enabled": false }
|
|
10
|
+
"triage": { "enabled": false },
|
|
11
|
+
"validation": { "enabled": false },
|
|
12
|
+
"proactiveMaintenance": { "enabled": false }
|
|
11
13
|
},
|
|
12
14
|
"sync": { "enabled": true, "push": true }
|
|
13
15
|
}
|
|
@@ -6,7 +6,10 @@
|
|
|
6
6
|
"consolidate": { "enabled": false },
|
|
7
7
|
"memoryInference": { "enabled": true },
|
|
8
8
|
"graphExtraction": { "enabled": false },
|
|
9
|
-
"
|
|
9
|
+
"extract": { "enabled": false },
|
|
10
|
+
"triage": { "enabled": false },
|
|
11
|
+
"validation": { "enabled": false },
|
|
12
|
+
"proactiveMaintenance": { "enabled": false }
|
|
10
13
|
},
|
|
11
14
|
"sync": { "enabled": true, "push": true }
|
|
12
15
|
}
|
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
{
|
|
2
|
-
"description": "
|
|
2
|
+
"description": "Opt-in proactive-maintenance pass — reflect, distill, proposal triage (promote, high budget), and the proactive-maintenance lane (maxPerRun 100); consolidate/memoryInference/graphExtraction/extract off. Sync disabled: an interrupted run would otherwise leave an uncommitted backlog.",
|
|
3
3
|
"processes": {
|
|
4
4
|
"reflect": {
|
|
5
5
|
"enabled": true,
|
|
6
|
-
"
|
|
7
|
-
"allowedTypes": ["agent", "command", "knowledge", "lesson", "memory", "skill", "wiki", "workflow"]
|
|
6
|
+
"allowedTypes": ["agent", "command", "knowledge", "lesson", "memory", "skill", "workflow"]
|
|
8
7
|
},
|
|
9
|
-
"distill": { "enabled": true, "
|
|
8
|
+
"distill": { "enabled": true, "allowedTypes": ["memory"] },
|
|
10
9
|
"consolidate": { "enabled": false },
|
|
11
10
|
"memoryInference": { "enabled": false },
|
|
12
11
|
"graphExtraction": { "enabled": false },
|
|
13
12
|
"extract": { "enabled": false },
|
|
13
|
+
"validation": { "enabled": false },
|
|
14
14
|
"triage": {
|
|
15
15
|
"enabled": true,
|
|
16
16
|
"applyMode": "promote",
|
|
17
17
|
"policy": "personal-stash",
|
|
18
18
|
"maxAcceptsPerRun": 100,
|
|
19
19
|
"maxDiffLines": 200,
|
|
20
|
-
"judgment": {
|
|
20
|
+
"judgment": {}
|
|
21
21
|
},
|
|
22
22
|
"proactiveMaintenance": { "enabled": true, "dueDays": 30, "maxPerRun": 100 }
|
|
23
23
|
},
|
|
@@ -3,14 +3,16 @@
|
|
|
3
3
|
"processes": {
|
|
4
4
|
"reflect": {
|
|
5
5
|
"enabled": true,
|
|
6
|
-
"allowedTypes": ["agent", "command", "knowledge", "lesson", "memory", "skill", "
|
|
6
|
+
"allowedTypes": ["agent", "command", "knowledge", "lesson", "memory", "skill", "workflow"]
|
|
7
7
|
},
|
|
8
8
|
"extract": { "enabled": false },
|
|
9
9
|
"distill": { "enabled": false },
|
|
10
10
|
"consolidate": { "enabled": false },
|
|
11
11
|
"memoryInference": { "enabled": false },
|
|
12
12
|
"graphExtraction": { "enabled": false },
|
|
13
|
-
"triage": { "enabled": false }
|
|
13
|
+
"triage": { "enabled": false },
|
|
14
|
+
"validation": { "enabled": false },
|
|
15
|
+
"proactiveMaintenance": { "enabled": false }
|
|
14
16
|
},
|
|
15
17
|
"sync": { "enabled": true, "push": true }
|
|
16
18
|
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"description": "Reflect + distill pass — reflect, distill, memoryInference, and proposal triage (promote); proactiveMaintenance/consolidate/graphExtraction/extract off. Sync disabled: an interrupted run would otherwise leave an uncommitted backlog.",
|
|
3
|
+
"processes": {
|
|
4
|
+
"reflect": {
|
|
5
|
+
"enabled": true,
|
|
6
|
+
"allowedTypes": ["agent", "command", "knowledge", "lesson", "memory", "skill", "workflow"]
|
|
7
|
+
},
|
|
8
|
+
"distill": { "enabled": true, "allowedTypes": ["memory"], "requirePlannedRefs": false },
|
|
9
|
+
"consolidate": { "enabled": false },
|
|
10
|
+
"memoryInference": { "enabled": true },
|
|
11
|
+
"graphExtraction": { "enabled": false },
|
|
12
|
+
"extract": {
|
|
13
|
+
"enabled": false,
|
|
14
|
+
"timeoutMs": 300000,
|
|
15
|
+
"triage": { "enabled": true, "minScore": 2 },
|
|
16
|
+
"minNewSessions": 1
|
|
17
|
+
},
|
|
18
|
+
"validation": { "enabled": false },
|
|
19
|
+
"triage": {
|
|
20
|
+
"enabled": true,
|
|
21
|
+
"applyMode": "promote",
|
|
22
|
+
"policy": "personal-stash",
|
|
23
|
+
"maxAcceptsPerRun": 15,
|
|
24
|
+
"maxDiffLines": 200,
|
|
25
|
+
"judgment": {}
|
|
26
|
+
},
|
|
27
|
+
"proactiveMaintenance": { "enabled": false, "dueDays": 30, "maxPerRun": 15 }
|
|
28
|
+
},
|
|
29
|
+
"sync": { "enabled": false }
|
|
30
|
+
}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"processes": {
|
|
4
4
|
"reflect": {
|
|
5
5
|
"enabled": true,
|
|
6
|
-
"allowedTypes": ["agent", "command", "knowledge", "lesson", "memory", "skill", "
|
|
6
|
+
"allowedTypes": ["agent", "command", "knowledge", "lesson", "memory", "skill", "workflow"]
|
|
7
7
|
},
|
|
8
8
|
"distill": { "enabled": true, "allowedTypes": ["memory"] },
|
|
9
9
|
"consolidate": { "enabled": true, "allowedTypes": ["memory"] },
|
|
@@ -3,17 +3,17 @@ You are the akm consolidate assistant analyzing memory assets.
|
|
|
3
3
|
Rules:
|
|
4
4
|
1. MERGE: Two or more memories are substantially duplicated or closely related → propose merging. Return the primary ref to keep and secondary refs to delete. Do NOT include mergedContent — the merge will be executed in a separate step.
|
|
5
5
|
2. DELETE: Memory is clearly outdated, contradicted, or redundant → propose deletion. NEVER propose delete for memories annotated `(captureMode: hot)` — they are user-explicit and only the user can retire them. The downstream guard will refuse these regardless, so proposing them just wastes tokens.
|
|
6
|
-
3. PROMOTE: Memory expresses a stable, reusable fact suitable as a `knowledge
|
|
6
|
+
3. PROMOTE: Memory expresses a stable, reusable fact suitable as a `knowledge/` asset → propose promotion. Do NOT delete the source memory. NEVER propose promote / merge / contradict for memories annotated `(already queued)` — they have a pending proposal whose body matches; a duplicate will be deterministically dropped, so proposing them just wastes tokens.
|
|
7
7
|
4. CONTRADICT: Two memories assert logically exclusive facts such that following BOTH simultaneously is impossible — not merely related or overlapping. You MUST cite the exact sentence from Memory A and the exact sentence from Memory B that are in direct conflict. If you cannot cite specific opposing sentences, use KEEP instead. Sharing a topic, tool, domain, or workflow stage is NOT sufficient. Only direct factual opposites qualify: opposing recommended commands, opposing boolean flags, opposing version numbers, or mutually exclusive instructions. Use confidence ≥ 0.92 only; omit the op entirely if below that threshold.
|
|
8
8
|
5. KEEP: Memory is unique and current → omit from output.
|
|
9
9
|
|
|
10
10
|
Return ONLY JSON (no prose, no code fences):
|
|
11
11
|
{
|
|
12
12
|
"operations": [
|
|
13
|
-
{ "op": "merge", "primary": "
|
|
14
|
-
{ "op": "delete", "ref": "
|
|
15
|
-
{ "op": "promote", "ref": "
|
|
16
|
-
{ "op": "contradict", "ref": "
|
|
13
|
+
{ "op": "merge", "primary": "memories/<name>", "secondaries": ["memories/<name>", ...], "mergeStrategy": "synthesize", "confidence": 0.95 },
|
|
14
|
+
{ "op": "delete", "ref": "memories/<name>", "reason": "<brief reason>", "confidence": 0.90 },
|
|
15
|
+
{ "op": "promote", "ref": "memories/<name>", "knowledgeRef": "knowledge/<suggested-slug>", "reason": "<brief reason>", "description": "<one sentence describing the new knowledge asset>", "confidence": 0.92 },
|
|
16
|
+
{ "op": "contradict", "ref": "memories/<name>", "contradictedByRef": "memories/<name>", "reason": "<brief reason>", "confidence": 0.88 }
|
|
17
17
|
],
|
|
18
18
|
"warnings": ["<optional concerns>"]
|
|
19
19
|
}
|
|
@@ -46,22 +46,18 @@ Respond with EXACTLY one JSON object matching this shape:
|
|
|
46
46
|
"candidates": [
|
|
47
47
|
{
|
|
48
48
|
"type": "memory" | "lesson" | "knowledge",
|
|
49
|
-
"name": "<kebab-case-
|
|
49
|
+
"name": "<kebab-case name, e.g. jwt-token; optionally under one kebab-case scope, e.g. auth/jwt-token>",
|
|
50
50
|
"description": "<one sentence 20-400 chars>",
|
|
51
51
|
"when_to_use": "<one sentence 15-400 chars; REQUIRED only when type=lesson>",
|
|
52
52
|
"body": "<markdown body, 200-3000 chars typical>",
|
|
53
53
|
"confidence": <number 0.0-1.0>,
|
|
54
|
-
"evidence": "<one-line pointer to the moment in the session>"
|
|
55
|
-
"orderedActions": ["<action-1>", "<action-2>", ...],
|
|
56
|
-
"outcomeData": "<one sentence describing the outcome of the action sequence>"
|
|
54
|
+
"evidence": "<one-line pointer to the moment in the session>"
|
|
57
55
|
}
|
|
58
56
|
],
|
|
59
57
|
"rationale_if_empty": "<one sentence; REQUIRED when candidates is empty>"
|
|
60
58
|
}
|
|
61
59
|
```
|
|
62
60
|
|
|
63
|
-
`orderedActions` and `outcomeData` are **optional**. Include them only when the candidate represents a recurring action sequence (e.g. a recovery procedure, a build-fix recipe, a deployment checklist) where preserving the ordered steps adds future value. When present, `outcomeData` is required and must describe what happened when the sequence completed (success or failure). Omit both fields entirely for standalone facts, observations, or lessons that are not action-sequence-shaped.
|
|
64
|
-
|
|
65
61
|
## Rules
|
|
66
62
|
|
|
67
63
|
1. **Zero candidates is a valid and frequent answer.** Most sessions yield no new durable insight. When that's the case, return `{"candidates": [], "rationale_if_empty": "..."}` explaining what you saw and why it didn't rise to durable-knowledge level. Do not fabricate.
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
Compress the memory below into one derived memory. Output ONLY JSON:
|
|
2
|
-
|
|
3
|
-
Rules: be specific, no vague generalizations, preserve key facts (names/versions/paths/config keys verbatim), merge related points, 3-8 tags, 3-6 searchHints. The content field must be a plain string with 2-3 sentences.
|
|
1
|
+
Compress the memory below into one derived memory. Output ONLY a JSON object with exactly these fields: title, description, tags, searchHints, and content.
|
|
2
|
+
Rules: title must be specific and short; description must be one sentence; tags must contain 3-8 specific tags; searchHints must contain 3-6 useful retrieval phrases; content must be a plain string with 2-3 sentences. Avoid vague generalizations, preserve key facts (names/versions/paths/config keys verbatim), and merge related points. Never return field descriptions or placeholder values.
|
|
4
3
|
|
|
5
4
|
Memory:
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
Respond with exactly this plain-text frame, with no prose or code fence around it:
|
|
2
|
+
|
|
3
|
+
{{REF_LINE}}AKM_REFLECT_CONFIDENCE: <number from 0 to 1>
|
|
4
|
+
AKM_REFLECT_FRONTMATTER_PATCH: {"description": null, "when_to_use": null}
|
|
5
|
+
AKM_REFLECT_CONTENT_BEGIN
|
|
6
|
+
<complete improved markdown body>
|
|
7
|
+
AKM_REFLECT_CONTENT_END
|
|
8
|
+
|
|
9
|
+
The first begin marker and final end marker delimit the body; marker lines between them are literal content. Put the complete markdown body between those outer markers. Quotes, Markdown fences, and backslashes inside the body are literal content; do not JSON-escape them. Emit the body only, without YAML frontmatter, because AKM preserves and merges the source frontmatter itself.
|
|
10
|
+
|
|
11
|
+
The frontmatter patch must be a one-line JSON object with exactly `description` and `when_to_use`. Keep a field `null` when it should not change. Supply a non-empty string only when adding or correcting that field; AKM merges those values through its existing sanitizer.
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
Respond only through the provider's native JSON schema. {{FIELD_RULE}}
|
|
2
|
+
|
|
3
|
+
`content` must contain the complete improved markdown body only, without YAML frontmatter. `frontmatterPatch` must contain exactly `description` and `when_to_use`; set either field to `null` when it should not change, or to a non-empty string when adding or correcting it. AKM merges that narrow patch with the source frontmatter and preserves target identity itself. `confidence` is your honest self-rated quality confidence from 0 to 1. Do not add prose or Markdown fences around the JSON response.
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
Your previous response could not be extracted using the required output contract. Reformat that response exactly once using the contract below. Preserve its proposed markdown verbatim: do not revise, summarize, or add content. Return only the repaired envelope.
|
|
2
|
+
|
|
3
|
+
{{OUTPUT_CONTRACT}}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
You are executing one unit of an akm workflow run.
|
|
2
|
+
|
|
3
|
+
- Workflow run: {{RUN_ID}}
|
|
4
|
+
- Step: {{STEP_ID}}
|
|
5
|
+
- Unit: {{UNIT_ID}}
|
|
6
|
+
- Run parameters: {{PARAMS_JSON}}
|
|
7
|
+
|
|
8
|
+
Ground rules for this unit:
|
|
9
|
+
|
|
10
|
+
1. Pull knowledge on demand instead of guessing: `akm search '<query>'` to find
|
|
11
|
+
relevant assets, `akm show <ref>` to read one, `akm curate '<query>'` to let
|
|
12
|
+
akm select the best match. Only pull what this unit actually needs.
|
|
13
|
+
2. Environment values and secrets are provided through your process
|
|
14
|
+
environment when the workflow declares them. Never print secret values to
|
|
15
|
+
stdout or embed them in your answer. If you need an env file path, use
|
|
16
|
+
`akm env path <ref>`; never `cat` secrets.
|
|
17
|
+
3. Do exactly the work described in the instructions below — no more. Other
|
|
18
|
+
units may be running concurrently on sibling items; do not touch files or
|
|
19
|
+
state outside the scope this unit was given.
|
|
20
|
+
4. Your final output IS the unit result recorded by the engine. When a JSON
|
|
21
|
+
schema is requested, respond with ONLY the JSON value (no prose, no code
|
|
22
|
+
fences). Otherwise finish with a concise factual summary of what you did.
|
|
23
|
+
|
|
24
|
+
Unit instructions follow.
|
|
25
|
+
|
|
26
|
+
---
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# AKM Stash
|
|
2
2
|
|
|
3
3
|
This is an **AKM stash** — a structured knowledge repository that stores reusable
|
|
4
|
-
assets for you and your AI agents. AKM (Agent Knowledge
|
|
4
|
+
assets for you and your AI agents. AKM (Agent Knowledge Manager) indexes, ranks,
|
|
5
5
|
and surfaces these assets at the right moment during coding sessions, improving
|
|
6
6
|
consistency and reducing repeated context-setting.
|
|
7
7
|
|
|
@@ -17,10 +17,37 @@ consistency and reducing repeated context-setting.
|
|
|
17
17
|
| `workflows/` | Workflows | Multi-step orchestration sequences |
|
|
18
18
|
| `tasks/` | Tasks | Scheduled or on-demand automation tasks |
|
|
19
19
|
| `lessons/` | Lessons | Durable lessons extracted from past sessions |
|
|
20
|
+
| `facts/` | Facts | Durable stash-level context; the house conventions in `facts/conventions/` are auto-surfaced to authoring agents |
|
|
21
|
+
| `scripts/` | Scripts | Executable helpers agents and humans can run |
|
|
22
|
+
| `env/`, `secrets/` | Env & Secrets | Configuration groups and single credentials; values are never content-indexed |
|
|
20
23
|
|
|
21
24
|
Add your own assets to any of these directories. AKM will index them automatically
|
|
22
25
|
on the next `akm index` run (or when the background improve pipeline picks them up).
|
|
23
26
|
|
|
27
|
+
## How to organize assets
|
|
28
|
+
|
|
29
|
+
A file's path under its type directory becomes part of its ref
|
|
30
|
+
(`knowledge/auth/oauth-refresh-races.md` → `knowledge/auth/oauth-refresh-races`),
|
|
31
|
+
and its segments are search terms: `akm search "auth" --type knowledge` narrows
|
|
32
|
+
to that subtree. Retrieval is search, not folder-browse, so pick subdirectories
|
|
33
|
+
deliberately. The house rules live in three convention facts under
|
|
34
|
+
`facts/conventions/` and are surfaced to agents automatically when they author
|
|
35
|
+
assets:
|
|
36
|
+
|
|
37
|
+
- **`facts/conventions/organization`** — the single path axis, chosen by asset
|
|
38
|
+
type. **Scope-born** types (`memory`, `lesson`, `task`, `env`, `secret`) go
|
|
39
|
+
under the current **project/client** slug; **reuse-born** types (`knowledge`,
|
|
40
|
+
`skill`, `fact`, `script`) go under a stable **domain**; global types
|
|
41
|
+
stay at the type root.
|
|
42
|
+
- **`facts/conventions/backlinks`** — how to cross-link: a provenance xref
|
|
43
|
+
whenever an asset derives from another, sparse real associative links,
|
|
44
|
+
corrections as new assets, canonical entity naming.
|
|
45
|
+
- **`facts/conventions/domains`** — the (editable) domain vocabulary for
|
|
46
|
+
reuse-born assets, plus canonical entity spellings.
|
|
47
|
+
|
|
48
|
+
Per-type nuances live in `facts/conventions/assets/<type>.md`. All of these are
|
|
49
|
+
soft guidance — edit them to match how your stash is queried.
|
|
50
|
+
|
|
24
51
|
## For agents: how to access this stash
|
|
25
52
|
|
|
26
53
|
All assets in this stash are searchable via the `akm` CLI. Use these commands to
|
|
@@ -35,15 +62,16 @@ akm search "<query>"
|
|
|
35
62
|
akm search "<query>" --type skill
|
|
36
63
|
akm search "<query>" --type knowledge
|
|
37
64
|
|
|
38
|
-
# Show a specific asset by ref
|
|
39
|
-
akm show
|
|
40
|
-
akm show knowledge
|
|
41
|
-
akm show
|
|
42
|
-
akm show
|
|
65
|
+
# Show a specific asset by ref ([bundle//]conceptId)
|
|
66
|
+
akm show skills/<name>
|
|
67
|
+
akm show knowledge/<name>
|
|
68
|
+
akm show memories/<name>
|
|
69
|
+
akm show commands/<name>
|
|
43
70
|
|
|
44
|
-
#
|
|
45
|
-
akm
|
|
46
|
-
akm
|
|
71
|
+
# Browse available assets by type (a trailing slash lists the subtree)
|
|
72
|
+
akm search "skills/"
|
|
73
|
+
akm search "knowledge/"
|
|
74
|
+
akm search "<query>" --type skill
|
|
47
75
|
```
|
|
48
76
|
|
|
49
77
|
### Recording feedback and new knowledge
|
|
@@ -73,4 +101,4 @@ akm proposal accept <id>
|
|
|
73
101
|
|
|
74
102
|
---
|
|
75
103
|
|
|
76
|
-
*Created by `akm
|
|
104
|
+
*Created by `akm bundle create`. See `akm --help` for full command reference.*
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
---
|
|
2
|
+
type: fact
|
|
2
3
|
category: convention
|
|
3
4
|
description: Soft authoring conventions for agent assets using scoped role, tool, and maintenance rules.
|
|
4
5
|
when_to_use: Surfaced to authoring agents when they write or revise an agent asset.
|
|
6
|
+
updated: 2026-07-28
|
|
5
7
|
---
|
|
6
8
|
|
|
7
9
|
<!--
|
|
@@ -36,3 +38,9 @@ Use an agent when a recurring task benefits from a specialized role, bounded res
|
|
|
36
38
|
- Add explicit negative guidance when the agent overreaches.
|
|
37
39
|
- Keep role instructions stable and concise; move large background material into knowledge assets.
|
|
38
40
|
- Use lessons to capture operational improvements, then promote stable ones into the agent when they become part of the role.
|
|
41
|
+
|
|
42
|
+
## Placement & linking
|
|
43
|
+
|
|
44
|
+
- Agent definitions are usually **global**: keep them at the type root or under a
|
|
45
|
+
role/domain slug (`agents/reviewer`). Point the agent at the standards and type
|
|
46
|
+
conventions it must read first via xrefs.
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
---
|
|
2
|
+
type: fact
|
|
2
3
|
category: convention
|
|
3
4
|
description: Soft authoring conventions for command assets using repeatable LLM operation patterns.
|
|
4
5
|
when_to_use: Surfaced to authoring agents when they write or revise a command asset.
|
|
6
|
+
updated: 2026-07-28
|
|
5
7
|
---
|
|
6
8
|
|
|
7
9
|
<!--
|
|
@@ -36,3 +38,9 @@ Use a command when the user or agent needs to perform the same prompt-shaped tas
|
|
|
36
38
|
- If command output regularly becomes useful durable knowledge, instruct the agent to file the result into the right asset type.
|
|
37
39
|
- If the command starts handling multiple unrelated tasks, split it into smaller commands.
|
|
38
40
|
- Preserve a clear invocation contract so future agents can call the command safely.
|
|
41
|
+
|
|
42
|
+
## Placement & linking
|
|
43
|
+
|
|
44
|
+
- Commands are usually **global**: keep them at the type root or under a
|
|
45
|
+
tool/domain slug. Scope to a project only when the command is genuinely
|
|
46
|
+
project-specific.
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
---
|
|
2
|
+
type: fact
|
|
2
3
|
category: convention
|
|
3
4
|
description: Soft authoring conventions for fact assets using pinned-core and just-in-time context principles.
|
|
4
5
|
when_to_use: Surfaced to authoring agents when they write or revise a fact asset.
|
|
6
|
+
updated: 2026-07-28
|
|
5
7
|
---
|
|
6
8
|
|
|
7
9
|
<!--
|
|
@@ -34,6 +36,17 @@ Use a fact for stable information that future agents should treat as true or nor
|
|
|
34
36
|
## Maintenance strategy
|
|
35
37
|
|
|
36
38
|
- Revise or supersede facts when the durable truth changes.
|
|
37
|
-
- Do not allow contradictory facts to remain equally active
|
|
39
|
+
- Do not allow contradictory facts to remain equally active: mark the loser
|
|
40
|
+
`beliefState: superseded` / `supersededBy: [<new ref>]` so ranking demotes it.
|
|
38
41
|
- Promote repeated memories or lessons into facts only when they become stable context.
|
|
39
42
|
- Keep convention and meta facts especially clear, because they steer future asset creation.
|
|
43
|
+
|
|
44
|
+
## Placement & linking
|
|
45
|
+
|
|
46
|
+
- Facts are **reuse-born**: give a policy/standard fact a domain-like prefix
|
|
47
|
+
(`facts/policies/pii-handling`) or the type root for personal/meta facts.
|
|
48
|
+
- Facts are also the **delivery layer** for stash-wide conventions:
|
|
49
|
+
`category: convention` or `category: meta` facts are surfaced to every non-wiki
|
|
50
|
+
author, so this is where naming, placement, and linking house-rules live. Keep
|
|
51
|
+
each one short — they inject into authoring prompts. Reserve `pinned: true` for
|
|
52
|
+
the small always-injected core.
|