loki-mode 11.3.0 → 11.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (215) hide show
  1. package/README.md +68 -650
  2. package/SKILL.md +4 -4
  3. package/VERSION +1 -1
  4. package/autonomy/completion-council.sh +2 -2
  5. package/autonomy/context-tracker.py +4 -4
  6. package/autonomy/council-v2.sh +1 -1
  7. package/autonomy/grill.sh +1 -1
  8. package/autonomy/lib/done-recognition.sh +1 -1
  9. package/autonomy/lib/prd-enrich.sh +1 -1
  10. package/autonomy/lib/voter-agents.sh +1 -1
  11. package/autonomy/loki +99 -75
  12. package/autonomy/run.sh +30 -18
  13. package/autonomy/sandbox.sh +1 -1
  14. package/autonomy/tui.sh +6 -5
  15. package/autonomy/verify.sh +1 -1
  16. package/bin/loki +166 -59
  17. package/completions/_loki +2 -0
  18. package/completions/loki.bash +2 -2
  19. package/dashboard/__init__.py +1 -1
  20. package/dashboard/server.py +25 -31
  21. package/docs/ARCHITECTURE.md +337 -0
  22. package/docs/BRANDING.md +124 -0
  23. package/docs/CLI-REFERENCE.md +7 -1
  24. package/docs/COMPONENTS.md +447 -0
  25. package/docs/DEPLOYMENT.md +9 -9
  26. package/docs/DOCKER.md +469 -0
  27. package/docs/INSTALLATION.md +67 -1045
  28. package/docs/KNOWN-ISSUES.md +11 -35
  29. package/docs/TESTING.md +161 -0
  30. package/docs/air-gapped.md +1 -2
  31. package/docs/alternative-installations.md +14 -24
  32. package/docs/architecture/DECISIONS.md +333 -0
  33. package/docs/audit-logging.md +7 -7
  34. package/docs/authentication.md +3 -3
  35. package/docs/authorization.md +1 -1
  36. package/docs/certification/04-production-deployment/lab.md +6 -6
  37. package/docs/certification/04-production-deployment/lesson.md +4 -4
  38. package/docs/certification/README.md +1 -1
  39. package/docs/control-plane-container.md +2 -2
  40. package/docs/dev/real-run.md +34 -0
  41. package/docs/dev/release-checklist.md +2 -2
  42. package/docs/exit-codes.md +3 -3
  43. package/docs/git-workflow.md +3 -3
  44. package/docs/metrics.md +37 -55
  45. package/docs/network-security.md +1 -1
  46. package/docs/siem-integration.md +5 -5
  47. package/docs/v10/CLI-MODERN.md +4 -3
  48. package/docs/v10/DECISIONS.md +44 -0
  49. package/docs/v10/DEPS.md +22 -22
  50. package/docs/v10/ENGINE.md +1 -1
  51. package/docs/v10/FAILURE-CLASSES.md +118 -1
  52. package/docs/v10/FOUNDER-QUEUE.md +1 -0
  53. package/docs/v10/GUARDS.md +13 -0
  54. package/docs/v10/LEGACY-REMOVAL.md +4 -6
  55. package/docs/v10/METRICS.md +2 -2
  56. package/docs/v10/MODERNIZE.md +1 -1
  57. package/docs/v10/OPERATING-MODEL.md +2 -1
  58. package/docs/v10/PROGRESS.md +29 -0
  59. package/docs/v11/COST-HALF.md +352 -0
  60. package/docs/v11/MARKET-SLICES.md +315 -0
  61. package/docs/v11/REGISTRIES.md +730 -0
  62. package/loki-ts/data/model-pricing.json +52 -24
  63. package/loki-ts/dist/loki.js +1036 -957
  64. package/mcp/__init__.py +1 -1
  65. package/package.json +1 -1
  66. package/packages/control-plane/dist/server.js +2467 -736
  67. package/plugins/loki-mode/.claude-plugin/plugin.json +1 -1
  68. package/src/protocols/mcp-client.js +6 -2
  69. package/src/protocols/mcp-server.js +13 -3
  70. package/tools/audit-docs.py +1 -1
  71. package/web-app/dist/assets/{AdminPage-D_e45uTw.js → AdminPage-CMkHNJbF.js} +1 -1
  72. package/web-app/dist/assets/{Avatar-T3nIpoaf.js → Avatar-BJyjV7Zi.js} +1 -1
  73. package/web-app/dist/assets/{Badge-BKqb59pP.js → Badge-D572l0uq.js} +1 -1
  74. package/web-app/dist/assets/{Button-DjVlkh8_.js → Button-T4BnOZgl.js} +1 -1
  75. package/web-app/dist/assets/{CockpitPage-DXJgLGmh.js → CockpitPage-Cj_GFsNn.js} +1 -1
  76. package/web-app/dist/assets/{ComparePage-BRP_eVc_.js → ComparePage-A8m4ZXak.js} +1 -1
  77. package/web-app/dist/assets/{ErrorBoundary-CLjpGLjC.js → ErrorBoundary-hugCg5yg.js} +1 -1
  78. package/web-app/dist/assets/{EvidenceReceiptPanel-DX-vb4Xy.js → EvidenceReceiptPanel-CuJKDC2G.js} +1 -1
  79. package/web-app/dist/assets/{GitHubIssuesPanel-214HVHtX.js → GitHubIssuesPanel-BYGKjarC.js} +1 -1
  80. package/web-app/dist/assets/{GitHubPRsPanel-BEiZKc4t.js → GitHubPRsPanel-c7sFIJlf.js} +1 -1
  81. package/web-app/dist/assets/{HomePage-VvMHS5ga.js → HomePage-A1MIkG2P.js} +2 -2
  82. package/web-app/dist/assets/{LoginPage-5WD-v7n3.js → LoginPage-8KQMRhtR.js} +1 -1
  83. package/web-app/dist/assets/{MagicPage-DUQT_Jye.js → MagicPage-C05QW2Lx.js} +1 -1
  84. package/web-app/dist/assets/{MetricsPage-lga-z79v.js → MetricsPage-Oukv5hme.js} +1 -1
  85. package/web-app/dist/assets/{NotFoundPage-CGhBX3G1.js → NotFoundPage-DKIwsawz.js} +1 -1
  86. package/web-app/dist/assets/{ProjectPage-CdzF2GzZ.js → ProjectPage-DwFRPLCG.js} +3 -3
  87. package/web-app/dist/assets/{ProjectsPage-DRG64N8s.js → ProjectsPage-CgY4YYDX.js} +1 -1
  88. package/web-app/dist/assets/{SettingsPage-5fzW9Frb.js → SettingsPage-BpfcSjUA.js} +1 -1
  89. package/web-app/dist/assets/{ShowcasePage-DrTdxO4y.js → ShowcasePage-BqBakC4K.js} +1 -1
  90. package/web-app/dist/assets/{SystemSettingsPage-C9Mqs6Rd.js → SystemSettingsPage-CZLu5VB0.js} +1 -1
  91. package/web-app/dist/assets/{TeamsPage-CUGPdSWo.js → TeamsPage-D55S1jKz.js} +1 -1
  92. package/web-app/dist/assets/{TemplatesPage-CNraDY0F.js → TemplatesPage-D3SydvxN.js} +1 -1
  93. package/web-app/dist/assets/{TerminalOutput-BIu_6Pea.js → TerminalOutput-hNg8G1-e.js} +1 -1
  94. package/web-app/dist/assets/{activity-Bk-kgqaf.js → activity-D2C0VagO.js} +1 -1
  95. package/web-app/dist/assets/{bell-BXmUdmo8.js → bell-CMvYi36w.js} +1 -1
  96. package/web-app/dist/assets/{bot-CiuzXxUR.js → bot-BvtQ6lmo.js} +1 -1
  97. package/web-app/dist/assets/{check-BEzjXppd.js → check-B13xkXed.js} +1 -1
  98. package/web-app/dist/assets/{chevron-left-AYWCXHf8.js → chevron-left-emu6r49E.js} +1 -1
  99. package/web-app/dist/assets/{circle-alert-BNg2uSRq.js → circle-alert-CExlwjuy.js} +1 -1
  100. package/web-app/dist/assets/{clock-DTj0kkGT.js → clock-D7Uas3oL.js} +1 -1
  101. package/web-app/dist/assets/{cloud-x4nTDBLT.js → cloud-CkB4S86C.js} +1 -1
  102. package/web-app/dist/assets/{code-xml-BVh_MLrk.js → code-xml-SL9IIWIn.js} +1 -1
  103. package/web-app/dist/assets/{database-DdfBaowG.js → database-BQFkd7t1.js} +1 -1
  104. package/web-app/dist/assets/{dollar-sign-XuYFmAOY.js → dollar-sign-qHmnNYsU.js} +1 -1
  105. package/web-app/dist/assets/{file-code-corner-D4cRnmeL.js → file-code-corner-C2YUDP0K.js} +1 -1
  106. package/web-app/dist/assets/{file-plus-CyoVlHc_.js → file-plus-C_ooIkDe.js} +1 -1
  107. package/web-app/dist/assets/{globe-Y6IK2RPW.js → globe-CQ-GL485.js} +1 -1
  108. package/web-app/dist/assets/{hammer-BKzr9VZI.js → hammer-U05L_D7V.js} +1 -1
  109. package/web-app/dist/assets/{index-B20cSx5G.js → index-CooHd7I-.js} +3 -3
  110. package/web-app/dist/assets/{layers-DebNOhGS.js → layers-Buo17rjW.js} +1 -1
  111. package/web-app/dist/assets/{loader-circle-DyGbrEgd.js → loader-circle-15vK3oV1.js} +1 -1
  112. package/web-app/dist/assets/{lock-BKPpyt20.js → lock-BeXLebuJ.js} +1 -1
  113. package/web-app/dist/assets/{package-egF5Wi4y.js → package-MVh_6-6R.js} +1 -1
  114. package/web-app/dist/assets/{plus-OiEgKIc-.js → plus-Dh_nd9vS.js} +1 -1
  115. package/web-app/dist/assets/{refresh-cw-CzKvrONq.js → refresh-cw-C9cBJEAT.js} +1 -1
  116. package/web-app/dist/assets/{rotate-ccw-Bu2mII0p.js → rotate-ccw-D3PAtzST.js} +1 -1
  117. package/web-app/dist/assets/{scroll-text-CSkiyax8.js → scroll-text-DZCoXQjo.js} +1 -1
  118. package/web-app/dist/assets/{server-DlPthJFw.js → server-OCOLI5J_.js} +1 -1
  119. package/web-app/dist/assets/{shield-alert-CbpHWQQX.js → shield-alert-oVhmf1_h.js} +1 -1
  120. package/web-app/dist/assets/{thumbs-up-DgGpZe-Q.js → thumbs-up-B-kbX4vN.js} +1 -1
  121. package/web-app/dist/assets/{trash-2-BV3GlCB-.js → trash-2-EL6moveW.js} +1 -1
  122. package/web-app/dist/assets/{trending-down-Y4TJtXhD.js → trending-down-Cl3kjpsx.js} +1 -1
  123. package/web-app/dist/assets/{trending-up-DsDNoHZY.js → trending-up-DST7I6M2.js} +1 -1
  124. package/web-app/dist/assets/{upload-gkThrc_I.js → upload-CUOT780G.js} +1 -1
  125. package/web-app/dist/assets/{usePolling-jpNSeNAe.js → usePolling-Djmt90eb.js} +1 -1
  126. package/web-app/dist/assets/{user-3Zez1WOK.js → user-BRBohA6J.js} +1 -1
  127. package/web-app/dist/index.html +1 -1
  128. package/docs/ARCHITECTURE-OVERVIEW.md +0 -209
  129. package/docs/AUTONOMI-ECOSYSTEM.md +0 -107
  130. package/docs/COCKPIT-SPEC.md +0 -72
  131. package/docs/COCKPIT-UX-MANDATE.md +0 -53
  132. package/docs/COMPETITIVE-ANALYSIS.md +0 -303
  133. package/docs/COMPETITIVE-NEXT-10.md +0 -316
  134. package/docs/COMPETITIVE-RALPH-ZEROSHOT-2026-07-08.md +0 -81
  135. package/docs/DASHBOARD-9.12-EVIDENCE.md +0 -97
  136. package/docs/DASHBOARD-ARCHITECTURE.md +0 -425
  137. package/docs/DASHBOARD_V2_CHECKLIST.md +0 -243
  138. package/docs/DEMOS.md +0 -63
  139. package/docs/ENTERPRISE-IDENTITY-ROADMAP.md +0 -206
  140. package/docs/EVIDENCE-RECEIPT-BUILD-APPLICABILITY.md +0 -79
  141. package/docs/FEAT-PRDREUSE-DOCKER-PLAN.md +0 -144
  142. package/docs/GATE-FAILURE-TRIAGE.md +0 -254
  143. package/docs/HANDOFF-2026-08-03.md +0 -439
  144. package/docs/LOOP-CANDIDATE-PROPOSAL-v1.md +0 -167
  145. package/docs/LOOP-HARNESS-AUDIT.md +0 -684
  146. package/docs/MERGE-DEDUP-MAP.md +0 -420
  147. package/docs/MERGE-ROUTE-MAP.md +0 -139
  148. package/docs/MODEL-REGISTRY-PLAN.md +0 -155
  149. package/docs/OUTCOME-FRONTIER.md +0 -536
  150. package/docs/P2-SPEC-ROBUSTNESS-PLAN.md +0 -192
  151. package/docs/PLANS-INDEX.md +0 -32
  152. package/docs/PRD-REUSE-DONE-RECOGNITION-PLAN.md +0 -536
  153. package/docs/PROMPT-ABLATION-RESULT.md +0 -97
  154. package/docs/R4-TRUST-TRAJECTORY-DESIGN.md +0 -127
  155. package/docs/R5-AUTO-WIKI-DESIGN.md +0 -137
  156. package/docs/R6-ROLLBACK-CHECKPOINT-PLAN.md +0 -107
  157. package/docs/R7-ZERO-CONFIG-FIRST-RUN-PLAN.md +0 -137
  158. package/docs/R8-SHAREABLE-TEAM-ASSETS-PLAN.md +0 -129
  159. package/docs/R9-OPEN-CORE-HOOKS-PLAN.md +0 -113
  160. package/docs/RARV-C-100X-PLAN.md +0 -286
  161. package/docs/RARV-C-LOOP-EFFICIENCY-PLAN.md +0 -470
  162. package/docs/SHAREABLE-PROOF-PLAN.md +0 -194
  163. package/docs/SONNET5-DEFAULT-PLAN.md +0 -157
  164. package/docs/SPEED-AND-FIRST-PASS-PLAN.md +0 -281
  165. package/docs/STALE-STATE-AUDIT.md +0 -174
  166. package/docs/SYNERGY-TASKS.md +0 -143
  167. package/docs/TASKLIST-ACCURACY-PLAN.md +0 -355
  168. package/docs/TOP-100-BACKLOG.md +0 -159
  169. package/docs/V8-ACCEPTANCE-TRIAGE-2026-07-24.md +0 -114
  170. package/docs/V8-COMPLEXITY-AUDIT-2026-07-24.md +0 -45
  171. package/docs/V8-MAJOR-RELEASE-PLAN.md +0 -137
  172. package/docs/V8-OVERNIGHT-PLAN-2026-07-25.md +0 -82
  173. package/docs/V8-SDK-RESEARCH-RAW.md +0 -129
  174. package/docs/WELCOME-OPENER-PLAN.md +0 -106
  175. package/docs/adoption-baseline-2026-07-31.md +0 -84
  176. package/docs/architecture/bmad-integration-epic.md +0 -271
  177. package/docs/architecture/bmad-integration-review.md +0 -86
  178. package/docs/architecture/bmad-integration-validation.md +0 -249
  179. package/docs/architecture/bmad-loki-voice-agent-council-analysis.md +0 -61
  180. package/docs/auto-claude-comparison.md +0 -250
  181. package/docs/bug-fixes/agent-01-cli-fixes.md +0 -101
  182. package/docs/bug-fixes/agent-02-purplelab-fixes.md +0 -88
  183. package/docs/bug-fixes/agent-03-dashboard-fixes.md +0 -119
  184. package/docs/bug-fixes/agent-04-memory-fixes.md +0 -105
  185. package/docs/bug-fixes/agent-05-provider-fixes.md +0 -86
  186. package/docs/bug-fixes/agent-06-integration-fixes.md +0 -101
  187. package/docs/bug-fixes/agent-07-dash-run-fixes.md +0 -101
  188. package/docs/bug-fixes/agent-08-docker-fixes.md +0 -164
  189. package/docs/bug-fixes/agent-09-e2e-build-fixes.md +0 -69
  190. package/docs/bug-fixes/agent-10-e2e-fullstack-fixes.md +0 -102
  191. package/docs/bug-fixes/agent-11-e2e-session-fixes.md +0 -70
  192. package/docs/bug-fixes/agent-12-scenario-fixes.md +0 -120
  193. package/docs/bug-fixes/agent-13-enterprise-fixes.md +0 -143
  194. package/docs/bug-fixes/agent-14-uat-newuser-fixes.md +0 -88
  195. package/docs/bug-fixes/agent-15-uat-poweruser-fixes.md +0 -132
  196. package/docs/bug-fixes/agent-19-code-review.md +0 -316
  197. package/docs/bug-fixes/agent-20-architecture-review.md +0 -331
  198. package/docs/competitive/bolt-new-analysis.md +0 -579
  199. package/docs/competitive/emergence-others-analysis.md +0 -605
  200. package/docs/competitive/replit-lovable-analysis.md +0 -622
  201. package/docs/dashboard-guide.md +0 -487
  202. package/docs/enterprise/migration.md +0 -265
  203. package/docs/history/one-run-audit.md +0 -304
  204. package/docs/plans/FORGE-AUTONOMOUS-QUEUE.md +0 -312
  205. package/docs/plans/ULTRAPLAN-FORGE-BAAS.md +0 -612
  206. package/docs/plans/UT2-6-LSP-DIAGNOSTIC-BROADCAST.md +0 -394
  207. package/docs/prd-purple-lab-ide.md +0 -152
  208. package/docs/prd-purple-lab-platform-v2.md +0 -223
  209. package/docs/prd-purple-lab-platform.md +0 -319
  210. package/docs/retrospectives/v7.5.15-fleet-postmortem.md +0 -325
  211. package/docs/retrospectives/v7.5.15-honesty-audit.md +0 -136
  212. package/docs/retrospectives/v7.5.15-llm-failure-modes.md +0 -49
  213. package/docs/show-hn-post.md +0 -46
  214. package/docs/test-scenarios/enterprise-scenarios.md +0 -732
  215. package/docs/thick2thin.md +0 -173
@@ -0,0 +1,337 @@
1
+ # Architecture
2
+
3
+ Loki Mode is the flagship product of [Autonomi](https://www.autonomi.dev/): an
4
+ autonomous spec-to-product system. It accepts any spec source (a PRD, a GitHub
5
+ issue, an OpenAPI/JSON/YAML document, or a one-line brief) and drives it to a
6
+ verified, deployable product through the RARV-C closure loop, with minimal human
7
+ intervention. This document describes the system at a level above the code: how
8
+ the major pieces fit together, how data flows through a build, and the design
9
+ decisions that shaped the current structure.
10
+
11
+
12
+ ## System Overview
13
+
14
+ At its core, Loki Mode is an autonomous orchestration engine wrapped in a trust
15
+ layer. The orchestrator runs iterative RARV cycles (Reason, Act, Reflect,
16
+ Verify) against a provider CLI, and a closure stage (the "C" in RARV-C) refuses
17
+ to declare work "done" until deterministic evidence supports the claim. Eight
18
+ quality gates, a blind multi-reviewer council, and a verified-completion
19
+ evidence gate stand between an in-progress build and a "complete" verdict.
20
+
21
+ The system is built around a few load-bearing principles:
22
+
23
+ - **Verified completion over claimed completion.** A build is not done because
24
+ the model says so. It is done when the git diff is non-empty against the
25
+ run-start commit, tests recorded a real command and exited zero, and no gate
26
+ was skipped. Every build emits an Evidence Receipt that a skeptic can
27
+ re-derive independently.
28
+ - **Provider-agnostic execution.** The same workflow runs on Claude Code,
29
+ OpenAI Codex CLI, Cline, and Aider, with automatic failover. Feature richness
30
+ degrades gracefully by provider tier rather than failing.
31
+ - **Filesystem as the system bus.** Components do not share memory. They
32
+ communicate through `.loki/` state files (session, queue, checkpoints,
33
+ findings, memory), which makes the system inspectable, resumable, and
34
+ crash-tolerant.
35
+ - **Progressive disclosure.** A slim core skill loads on-demand modules and
36
+ detailed references only when a task needs them, keeping the working context
37
+ small.
38
+ - **Dual runtime, single behavior.** A modern Bun/TypeScript runner is the
39
+ default path; a legacy Bash route remains as a verified-parity fallback. Both
40
+ routes must produce byte-identical behavior, enforced by a parity matrix.
41
+
42
+ ## High-Level Design
43
+
44
+ A build proceeds through these stages:
45
+
46
+ 1. **Ingest and classify.** A spec enters via `loki start`. The orchestrator
47
+ detects project complexity and selects a RARV tier (which maps iterations to
48
+ model strength: Opus for planning, Sonnet for development, Haiku for cheap
49
+ parallel work).
50
+ 2. **Plan.** An architect pass produces a plan. Scope is locked, and a checklist
51
+ is derived from the spec.
52
+ 3. **Iterate (RARV).** Each iteration builds a prompt (injecting RARV
53
+ instructions, SDLC phase, memory context, queued tasks, and checklist
54
+ status), invokes the provider, then runs checklist verification, app-runner
55
+ management, and smoke tests.
56
+ 4. **Review.** A blind 3-reviewer council reviews the diff. Critical/High
57
+ findings block; an override council can contest a BLOCK when backed by
58
+ evidence.
59
+ 5. **Close (the "C").** Findings are injected into the next iteration, learnings
60
+ are written to memory, and a handoff document is produced.
61
+ 6. **Verify completion.** A completion council votes on whether the work is
62
+ actually done. The verified-completion evidence gate computes the Evidence
63
+ Receipt headline (VERIFIED / VERIFIED WITH GAPS / NOT VERIFIED) from
64
+ deterministic facts only.
65
+ 7. **Deliver.** The output is a Git repository with source, tests, configs,
66
+ audit logs, and a re-checkable Evidence Receipt.
67
+
68
+ The orchestration logic lives in two parallel implementations. The TypeScript
69
+ runner (`loki-ts/src/runner/`) is the default; the Bash engine
70
+ (`autonomy/run.sh`) is the legacy fallback. Both are driven by the CLI
71
+ (`autonomy/loki`).
72
+
73
+ ## Component Diagram
74
+
75
+ ```
76
+ +------------------------------+
77
+ | User / CI / MCP client |
78
+ | spec: PRD | issue | OpenAPI |
79
+ +---------------+--------------+
80
+ |
81
+ +-----------------------+-----------------------+
82
+ | | |
83
+ loki CLI MCP server REST API
84
+ (autonomy/loki) (mcp/server.py) (api/server.ts)
85
+ | | |
86
+ +-----------+-----------+-----------+-----------+
87
+ | |
88
+ v v
89
+ +---------------------------+ +-------------------+
90
+ | Orchestration Engine | | Dashboard |
91
+ | | | (dashboard/ |
92
+ | default: loki-ts/runner | | server.py + |
93
+ | legacy: autonomy/run.sh | | API only) |
94
+ | | +---------+---------+
95
+ | RARV-C loop: | |
96
+ | build_prompt -> provider| |
97
+ | -> reflect -> verify | |
98
+ | -> council -> close | |
99
+ +-----+-------+-------+-----+ |
100
+ | | | |
101
+ +------------+ +---+---+ +--------+ |
102
+ | | | | |
103
+ v v v v |
104
+ +---------------+ +-----------+ +---------+ +----------+ |
105
+ | Providers | | Quality | | Memory | | Events | |
106
+ | claude/codex/ | | Gates + | | engine | | bus |<+
107
+ | cline/aider | | Council | | (RAG, | | (py/ts/ |
108
+ | (failover) | | (8 gates) | | vector) | | sh) |
109
+ +-------+-------+ +-----------+ +----+----+ +----------+
110
+ | |
111
+ v v
112
+ +---------------+ +-----------------+
113
+ | Provider CLI | | .loki/ state |
114
+ | (model calls) | | session, queue, |
115
+ +---------------+ | checkpoints, |
116
+ | memory, findings|
117
+ | (system bus) |
118
+ +-----------------+
119
+ ```
120
+
121
+ All long-lived coordination flows through `.loki/` on the filesystem. The three
122
+ entry surfaces (CLI, MCP, REST API) and the dashboard all read and write the
123
+ same state, which is what makes runs resumable and independently verifiable.
124
+
125
+ ## Data Flow
126
+
127
+ A representative end-to-end flow:
128
+
129
+ 1. **Entry.** `loki start ./prd.md` (CLI dispatch in `autonomy/loki`) resolves
130
+ the provider and execs the orchestration engine. The TS runner
131
+ (`loki-ts/src/runner/autonomous.ts`) is default; `LOKI_LEGACY_BASH=1` selects
132
+ `autonomy/run.sh`.
133
+ 2. **Complexity and tier.** The engine detects complexity and maps the iteration
134
+ to a model tier (`rarv.ts` / `run.sh:get_rarv_tier`).
135
+ 3. **Prompt construction.** `build_prompt.ts` (`run.sh:build_prompt`) assembles
136
+ the iteration prompt: RARV instructions, SDLC phase, retrieved memory context
137
+ (`memory/retrieval.py` via the RAG injector), queued tasks, and checklist
138
+ status.
139
+ 4. **Provider invocation.** The prompt is dispatched to the selected provider
140
+ (`providers.ts`). Claude Code runs with full features (subagents, parallel
141
+ worktrees, Task tool, MCP); Codex/Cline/Aider run in degraded, sequential
142
+ modes. Failures trigger failover to the next available provider.
143
+ 5. **Reflect and verify.** Post-iteration, the engine runs checklist
144
+ verification (`autonomy/checklist-verify.py`), manages the app runner
145
+ (`autonomy/app-runner.sh`), and runs Playwright smoke tests.
146
+ 6. **Review.** `quality_gates.ts` (`run.sh:run_code_review`) runs the 8 gates and
147
+ the blind 3-reviewer council (`loki-ts/src/council/voter_agents.ts`). Findings
148
+ are scored; Critical/High block. An override council can lift a BLOCK only
149
+ when a non-empty evidence artifact backs a trusted proof type.
150
+ 7. **Close.** Structured findings are persisted
151
+ (`.loki/state/findings-<iter>.json`) and injected into the next iteration
152
+ (`findings_injector.ts`); learnings are written (`learnings_writer.ts`); a
153
+ handoff doc is emitted (`escalation_handoff.ts`).
154
+ 8. **Completion decision.** The completion council
155
+ (`autonomy/completion-council.sh:council_should_stop`) votes. Independently,
156
+ the verified-completion evidence gate computes the Evidence Receipt from
157
+ deterministic facts (diff SHAs and counts, test/build commands and exit
158
+ codes, per-gate verdicts) and assessments (council judgment), and derives the
159
+ headline from facts alone.
160
+ 9. **Persistence and events.** State is checkpointed throughout
161
+ (`checkpoint.ts`); episodes are stored to memory (`episode_bridge.ts`); the
162
+ event bus (`events/bus.{py,ts}`, `events/emit.sh`) broadcasts progress to the
163
+ dashboard and any subscribers. The dashboard reads `.loki/` and the event
164
+ stream over WebSocket.
165
+
166
+ Crash recovery and resume work because every meaningful step lands in `.loki/`.
167
+ A killed run can be resumed from its last checkpoint; durable-state mode
168
+ (`LOKI_DURABLE_STATE=1`) extends this to run-to-completion k8s Jobs with
169
+ crash-resume and an exit-code contract.
170
+
171
+ ## Directory Structure
172
+
173
+ ```
174
+ autonomy/ Runtime and orchestration (legacy + shared shell)
175
+ loki CLI: command dispatch, ~100 cmd_ functions
176
+ run.sh Legacy Bash orchestration engine (RARV loop)
177
+ completion-council.sh Completion detection via council voting
178
+ council-v2.sh Reviewer council (v2)
179
+ app-runner.sh Builds, runs, and health-checks the generated app
180
+ checklist-verify.py Per-iteration checklist verification
181
+ context-tracker.py Context-window usage tracking
182
+ hooks/ Lifecycle hooks (quality gate, healing, episode store)
183
+ lib/ Shared helpers: proof generation/verify, crash
184
+ capture/redact, launch-kit, secure-scan, trust metrics,
185
+ wiki generation, MCP config
186
+
187
+ loki-ts/ Default Bun/TypeScript runtime
188
+ src/cli.ts TS CLI entry
189
+ src/runner/ RARV-C loop: autonomous, build_prompt, rarv, council,
190
+ quality_gates, completion, findings_injector,
191
+ learnings_writer, proof, checkpoint, providers, state
192
+ src/council/ Voter agents and finding schema
193
+ src/providers/ Provider flag/config helpers (claude, mcp config)
194
+ src/commands/ Subcommands: doctor, status, memory, trust, wiki, ...
195
+ src/metrics/ Efficiency and reward metrics
196
+
197
+ providers/ Provider configs (shell-sourceable)
198
+ claude.sh Claude Code - Tier 1 (full features)
199
+ cline.sh Cline - Tier 2
200
+ codex.sh / aider.sh Codex / Aider - Tier 3 (degraded, sequential)
201
+ loader.sh / models.sh Provider loader and model registry
202
+ model_catalog.json Model catalog (probed)
203
+
204
+ memory/ Memory system (Python package, ~19 modules)
205
+ engine.py Memory orchestrator
206
+ schemas.py / storage.py Pydantic schemas; file-based backend
207
+ retrieval.py Task-aware retrieval
208
+ consolidation.py Episodic-to-semantic pipeline
209
+ embeddings.py Vector embeddings (optional)
210
+ vector_index.py Vector search index
211
+ cross_project.py Cross-project knowledge transfer
212
+ rag_injector.py RAG context injection into prompts
213
+ knowledge_graph.py Knowledge graph over memories
214
+ layers/ Progressive-disclosure loading
215
+
216
+ mcp/ Model Context Protocol server
217
+ server.py MCP server (tools + resources + prompts)
218
+ tools.py / magic_tools.py / managed_tools.py Tool registries
219
+ resources.py MCP resources
220
+ lsp_proxy.py LSP proxy (references, definitions, symbols)
221
+
222
+ dashboard/ FastAPI control-plane backend
223
+ server.py 100+ endpoints, WebSocket event stream
224
+ control.py / auth.py Run control and authentication
225
+ database.py / audit.py Persistence and audit logging
226
+ packages/control-plane/ Control Plane: browser UI and service (Bun)
227
+
228
+ web-app/ Web surface (FastAPI + built dist) for browser PRD input
229
+
230
+ api/ REST API (TypeScript/Deno-style)
231
+ server.ts / mod.ts Server entry and module map
232
+ routes/ events, health, learning, memory, sessions, tasks
233
+ services/ cli-bridge, event-bus, learning-collector, state-*
234
+ middleware/ auth, cors, error, timing
235
+
236
+ events/ Unified event bus (py + ts + sh emitter)
237
+
238
+ skills/ On-demand skill modules (progressive disclosure)
239
+ 00-index.md Module selection and routing
240
+ quality-gates.md The 8-gate system (canonical)
241
+ healing.md / testing.md / production.md / providers.md / agents.md / ...
242
+
243
+ references/ Detailed documentation (~24 files): research patterns,
244
+ agent types, SDLC phases, deployment, MCP, memory
245
+
246
+ templates/ 21 PRD templates (saas, cli, discord-bot, ...)
247
+ agents/ Agent registry: types.json, hub install, managed registry
248
+ benchmarks/ SWE-bench and HumanEval harnesses
249
+ plugins/ Claude Code plugin packaging
250
+ .github/workflows/ CI: tests, release, sbom,
251
+ security-audit, post-release-smoke, ...
252
+ SKILL.md Slim core skill (progressive disclosure entry)
253
+ CLAUDE.md Project + agent operating instructions
254
+ VERSION / package.json Single source of version truth
255
+ docker/ Container distribution (Dockerfiles, compose)
256
+ ```
257
+
258
+ ## Key Design Decisions
259
+
260
+ - **Verified completion as the product, not a feature.** The Evidence Receipt
261
+ splits deterministic *facts* (diff, test/build exit codes, gate verdicts) from
262
+ AI *assessments* (council judgment) and computes the green/amber/red headline
263
+ from facts alone. This is a deliberate stance against transcript-narrated
264
+ "done." It guarantees a "complete" verdict is independently re-checkable, not a
265
+ promise.
266
+
267
+ - **Dual runtime with enforced parity.** Rather than a risky big-bang migration,
268
+ the modern Bun/TS runner runs as the default while the Bash engine remains a
269
+ fallback. Parity suites under `tests/` check identical
270
+ behavior across both routes; there is no continuous parity CI workflow.
271
+
272
+ - **Filesystem state bus over in-process coupling.** Coordination through
273
+ `.loki/` files (rather than shared memory or a message broker) buys
274
+ inspectability, crash-resume, and the ability for three independent entry
275
+ surfaces (CLI, MCP, REST) plus the dashboard to observe and drive the same run.
276
+
277
+ - **Provider tiering with graceful degradation.** Provider capability is encoded
278
+ as tiers (full -> reduced -> sequential) instead of hard requirements. A weaker
279
+ provider loses parallelism and the Task tool but still completes the workflow,
280
+ preserving "no vendor lock-in" as a real property.
281
+
282
+ - **Model-tier selection by task, not by knob.** Opus is reserved for planning
283
+ and architecture, Sonnet for implementation, Haiku for cheap parallel work.
284
+ The tier is auto-selected from task signals; explicit knobs exist only as
285
+ opt-out escape hatches.
286
+
287
+ - **Council and override council for trust under uncertainty.** A blind
288
+ 3-reviewer council must reach consensus; a separate override council can only
289
+ lift a BLOCK when a non-empty evidence artifact backs a trusted proof type.
290
+ This prevents a confident-but-wrong verdict from silently shipping.
291
+
292
+ - **Progressive disclosure of instructions.** A slim `SKILL.md` plus on-demand
293
+ `skills/` modules and `references/` keeps the orchestrator's working context
294
+ focused, loading deep documentation only when a task requires it.
295
+
296
+ - **Memory as a cross-project asset.** Episodic, semantic, and procedural memory
297
+ with optional vector search and RAG injection means lessons learned on one
298
+ build surface on the next, with token-economics tracking to keep retrieval
299
+ cheap.
300
+
301
+ - **Closure loop (RARV-C) wiring.** Findings injection, override council,
302
+ auto-learnings, and structured handoff are wired together (gated by
303
+ `LOKI_INJECT_FINDINGS`, `LOKI_OVERRIDE_COUNCIL`, `LOKI_AUTO_LEARNINGS`,
304
+ `LOKI_HANDOFF_MD`) so each iteration closes on the last instead of starting
305
+ cold.
306
+
307
+ ## Technology Choices
308
+
309
+ - **Bun + TypeScript** for the default runtime (`loki-ts/`). Fast startup, a
310
+ single bundled binary path, and strong typing for the orchestration core.
311
+ - **Bash** for the legacy engine (`autonomy/run.sh`, `autonomy/loki`) and shared
312
+ shell helpers. Retained as a verified-parity fallback and for the broadest
313
+ host portability.
314
+ - **Python** for the memory system, the MCP server, the dashboard backend, and
315
+ numerous lib helpers (proof generation/verification, crash capture/redaction,
316
+ secure scanning, wiki generation). Chosen for its data and ML ecosystem
317
+ (Pydantic schemas, optional sentence-transformers embeddings, FastAPI).
318
+ - **FastAPI** for the dashboard control plane and web surface, with a WebSocket
319
+ event stream for live run telemetry.
320
+ - **Vite + Playwright** for the Control Plane UI (`packages/control-plane/ui`): a
321
+ lightweight build and end-to-end browser tests.
322
+ - **Model Context Protocol (MCP)** as a first-class integration surface
323
+ (`mcp/server.py`): tools, resources, and prompts, plus an LSP proxy for
324
+ code intelligence (references, definitions, symbols).
325
+ - **Provider CLIs** (Claude Code, OpenAI Codex CLI, Cline, Aider) as the model
326
+ execution layer, abstracted behind shell-sourceable provider configs and the
327
+ TS providers module.
328
+ - **Docker / Docker Compose** for distribution and for the multi-service,
329
+ 12-factor stacks Loki generates (web + database + cache with healthchecks).
330
+ - **GitHub Actions** for CI/CD: test suites, SBOM and security audits,
331
+ multi-channel release (npm, Docker, Homebrew), and post-release smoke tests.
332
+
333
+ ---
334
+
335
+ For deeper detail, see `SKILL.md` (core skill), `skills/quality-gates.md` (the
336
+ canonical 8-gate table), `skills/sdlc-fleet.md` (the standing SDLC fleet
337
+ pattern), and the `references/` directory.
@@ -0,0 +1,124 @@
1
+ # Branding: Loki (the agent) by Autonomi (the company)
2
+
3
+ Authoritative naming reference. Founder directive 2026-06-12. Consult this
4
+ before naming any product, doc heading, marketing surface, CLI string, or
5
+ release note. When in doubt, this file wins.
6
+
7
+ ## The one rule
8
+
9
+ **Loki Mode is the agent / brand ambassador. Autonomi is the company and the
10
+ name on everything commercial.**
11
+
12
+ **CRITICAL: this is a BRANDING distinction only. Nothing technical changes
13
+ between free and paid.** The same software, CLI, SDK, MCP server, agent, and
14
+ code ship to free OSS users and to paid/enterprise/cloud users. Loki is the CLI,
15
+ the SDK, the MCP server, the agent - for everyone. The ONLY difference is the
16
+ brand label on the *offering*: an OSS/free user runs "Loki Mode"; a paying
17
+ team/enterprise buys the same thing under the "Autonomi" brand (Autonomi Cloud,
18
+ Autonomi Enterprise). There is no separate "enterprise build" or "cloud fork" of
19
+ the engine - it is one product, two brand labels chosen by audience. Do NOT
20
+ rename, fork, gate, or technically diverge anything; only relabel the commercial
21
+ *presentation*.
22
+
23
+ The relationship is the industry pattern of "named assistant, by company":
24
+ - Alexa by Amazon
25
+ - Copilot by GitHub
26
+ - Watson by IBM
27
+ - Gemini by Google
28
+ - Ellie by Entelligence
29
+ - **Loki by Autonomi**
30
+
31
+ Loki is *who you talk to and what you run*. Autonomi is *who you pay and who
32
+ stands behind the enterprise/cloud product*. The chat box on autonomi.dev is
33
+ "chat with Loki." The invoice says Autonomi.
34
+
35
+ ## What is called "Loki Mode" (the agent / free / OSS)
36
+
37
+ Everything free, source-available, OSS, and developer-facing keeps the **Loki**
38
+ name:
39
+ - The CLI: `loki` (binary), "Loki Mode" (product name of the OSS tool).
40
+ - The SDK(s): "Loki SDK".
41
+ - The local dashboard / web app (runs on the user's machine): "Loki Mode dashboard".
42
+ - The agent persona / chat: "Loki" (the thing users converse with, everywhere -
43
+ including inside Autonomi Cloud and on autonomi.dev).
44
+ - The npm package `loki-mode`, the Docker image `asklokesh/loki-mode`, the
45
+ Homebrew formula, the MCP server `io.github.asklokesh/loki-mode` - all KEEP
46
+ their identifiers (renaming published artifact IDs breaks installs; do NOT
47
+ rename them).
48
+ - The benchmarks, the RARV/council engine, the memory system - the *technology*
49
+ is Loki.
50
+
51
+ ## What is called "Autonomi" (the company / commercial / paid)
52
+
53
+ Everything commercial, hosted, paid, or enterprise wears the **Autonomi** brand:
54
+ - **Autonomi** - the company (autonomi.dev).
55
+ - **Autonomi Cloud** - the hosted/SaaS surface (was/never "Loki Cloud").
56
+ - **Autonomi Enterprise** - the enterprise offering (SSO, RBAC, audit, SLAs).
57
+ - **Autonomi** (VaaS) - the hosted Verification-as-a-Service product (the
58
+ ~/loki-vaas scaffold's *product* name is Autonomi-branded; the engine is Loki).
59
+ - Any paid tier, support plan, or commercial license: Autonomi.
60
+
61
+ Each commercial product carries a **"powered by Loki"** (or "runs Loki" /
62
+ "built on Loki") attribution so the engine lineage stays visible - the Copilot/
63
+ GPT pattern. Example: "Autonomi Cloud, powered by Loki."
64
+
65
+ ## Mapping table (rename these going forward)
66
+
67
+ | Old / ambiguous | New | Notes |
68
+ |---|---|---|
69
+ | Loki Cloud | **Autonomi Cloud** (powered by Loki) | commercial hosted |
70
+ | Loki Enterprise (as a *product/offering* name) | **Autonomi Enterprise** (powered by Loki) | the paid offering |
71
+ | Loki VaaS / Loki Verification Cloud | **Autonomi Verify** (VaaS), powered by Loki | ~/loki-vaas product brand (renamed 2026-06-12) |
72
+ | "Loki, the company" | **Autonomi** | the company is Autonomi |
73
+ | Loki SaaS / Loki Pro / Loki Business | **Autonomi Cloud** / **Autonomi Enterprise** | no paid tier wears "Loki" |
74
+ | Loki Mode (the CLI/SDK/agent) | **Loki Mode** (unchanged) | the agent keeps its name |
75
+ | `loki` CLI binary | `loki` (unchanged) | never rename the binary |
76
+
77
+ ## Tricky cases (decided)
78
+
79
+ 1. **The `loki enterprise` CLI subcommand** (`loki enterprise token …`, `loki
80
+ enterprise audit …`): the COMMAND stays `loki enterprise` for backward
81
+ compatibility (renaming breaks every user/script). It is the Loki CLI's
82
+ gateway to enterprise *features*. But in PROSE / docs / marketing, the
83
+ enterprise *offering* it unlocks is branded "Autonomi Enterprise." So:
84
+ command = `loki enterprise`; product = Autonomi Enterprise. Doc pattern:
85
+ "Use `loki enterprise` to manage your **Autonomi Enterprise** license."
86
+ (A future `autonomi` alias for the command MAY be added as a superset, but
87
+ `loki enterprise` is never removed.)
88
+
89
+ 2. **Published artifact IDs** (npm `loki-mode`, Docker `asklokesh/loki-mode`,
90
+ brew `loki-mode`, MCP `io.github.asklokesh/loki-mode`): KEEP. These are
91
+ install identifiers; the brand on the *page* can say "Loki Mode (by
92
+ Autonomi)" but the package name does not change. Renaming = broken installs.
93
+
94
+ 3. **The dashboard/web-app chat**: the agent in the chat box is "Loki"
95
+ everywhere - in the OSS dashboard AND inside Autonomi Cloud. The container
96
+ product (local dashboard = Loki Mode dashboard; hosted = Autonomi Cloud) is
97
+ what changes, not the agent's name.
98
+
99
+ 4. **autonomi.dev website**: company + commercial = Autonomi branding; the
100
+ product you download is "Loki Mode"; the assistant is "Loki". The hero can be
101
+ "Autonomi - autonomous software delivery, powered by Loki" with a "Download
102
+ Loki Mode (free)" CTA and a "Autonomi Cloud / Enterprise" commercial CTA.
103
+
104
+ 5. **License/legal**: BUSL-1.1 is held by Autonomi; "Free for personal/internal/
105
+ academic use" applies to Loki Mode (source-available); commercial licensing = Autonomi.
106
+ Keep "source-available," never "open source" (BUSL is not OSI-approved).
107
+
108
+ ## Taglines (approved patterns)
109
+
110
+ - "Loki Mode - the autonomous coding agent. Free and source-available."
111
+ - "Autonomi - autonomous software delivery for teams and enterprises. Powered by Loki."
112
+ - "Autonomi Cloud - hosted Loki, managed for your team."
113
+ - "Autonomi Enterprise - Loki with SSO, RBAC, audit, and SLAs."
114
+ - "Chat with Loki." (the assistant, anywhere)
115
+
116
+ ## Going forward
117
+
118
+ Any new product, page, heading, or release note must place itself on the correct
119
+ side of this line:
120
+ - Free / OSS / CLI / SDK / agent / chat -> **Loki Mode** / **Loki**.
121
+ - Paid / hosted / cloud / enterprise / company -> **Autonomi** (+ "powered by Loki").
122
+
123
+ Update this file if the founder revises the rule; this file is the single source
124
+ of truth for naming.
@@ -1,6 +1,6 @@
1
1
  # CLI reference
2
2
 
3
- Generated from `loki-ts/src/cli/registry.ts` by `scripts/generate-stale-zero.sh` for v11.3.0. Do not edit by hand.
3
+ Generated from `loki-ts/src/cli/registry.ts` by `scripts/generate-stale-zero.sh` for v11.3.1. Do not edit by hand.
4
4
  Hidden and legacy-only commands are omitted; see `docs/v10/CLI-MODERN.md` for the full inventory.
5
5
 
6
6
  | Command | Description |
@@ -15,6 +15,8 @@ Hidden and legacy-only commands are omitted; see `docs/v10/CLI-MODERN.md` for th
15
15
  | `loki memory` | Cross-project learnings |
16
16
  | `loki memory list` | All learnings |
17
17
  | `loki memory index` | Show or rebuild the memory index |
18
+ | `loki memory learn` | Learn lessons from a merged PR's review comments |
19
+ | `loki memory lessons` | List PR review lessons with uses and outcomes |
18
20
  | `loki memory show` | Show one learning |
19
21
  | `loki memory search` | Search learnings |
20
22
  | `loki memory stats` | Memory statistics |
@@ -55,6 +57,10 @@ Hidden and legacy-only commands are omitted; see `docs/v10/CLI-MODERN.md` for th
55
57
  | `loki start` | Run the autonomous build |
56
58
  | `loki slack` | Slack inbound handler |
57
59
  | `loki slack serve` | Serve the Slack handler |
60
+ | `loki queue` | Overnight issue queue with a morning digest |
61
+ | `loki queue add` | Queue issue refs |
62
+ | `loki queue list` | Show the queue |
63
+ | `loki queue run` | Process the queue |
58
64
  | `loki answer` | Resume a BLOCKED run with an answer |
59
65
  | `loki engine10` | v10 engine router |
60
66
  | `loki engine10 run` | Run the v10 engine |