loki-mode 11.74.2 → 11.75.2

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 (167) hide show
  1. package/README.md +1 -1
  2. package/SKILL.md +2 -3
  3. package/VERSION +1 -1
  4. package/autonomy/completion-council.sh +10 -10
  5. package/autonomy/council-v2.sh +4 -4
  6. package/autonomy/grill.sh +1 -1
  7. package/autonomy/lib/ablation.py +22 -2
  8. package/autonomy/lib/browser-open.sh +1 -1
  9. package/autonomy/lib/chat.sh +1 -1
  10. package/autonomy/lib/cockpit-render.sh +1 -1
  11. package/autonomy/lib/done-recognition.sh +4 -4
  12. package/autonomy/lib/efficiency_cost.py +1 -1
  13. package/autonomy/lib/engine10-push.sh +2 -2
  14. package/autonomy/lib/prd-enrich.sh +1 -1
  15. package/autonomy/lib/proof-check.sh +1 -1
  16. package/autonomy/lib/proof-generator.py +3 -3
  17. package/autonomy/lib/proof-pr.sh +1 -1
  18. package/autonomy/lib/skill-link-heal.sh +1 -1
  19. package/autonomy/lib/voter-agents.sh +1 -1
  20. package/autonomy/loki +26 -37
  21. package/autonomy/prd-checklist.sh +1 -1
  22. package/autonomy/receipt_jwt.py +1 -1
  23. package/autonomy/run.sh +28 -28
  24. package/autonomy/trigger-schedule.py +6 -414
  25. package/autonomy/tui.sh +1 -1
  26. package/autonomy/verify.sh +4 -4
  27. package/completions/loki.bash +0 -5
  28. package/dashboard/__init__.py +1 -1
  29. package/docs/ARCHITECTURE.md +1 -2
  30. package/docs/CLI-REFERENCE.md +1 -1
  31. package/docs/COMPONENTS.md +1 -1
  32. package/docs/INSTALLATION.md +1 -1
  33. package/docs/ROUTING-EVIDENCE.md +1 -2
  34. package/docs/V10-RESEARCH.md +1 -1
  35. package/docs/dev/architecture-reference.md +3 -7
  36. package/docs/dev/project-structure.md +1 -4
  37. package/docs/dev/release-checklist.md +13 -31
  38. package/docs/research-2026-07/OBSERVABILITY-TOOL-SPEC.md +1 -1
  39. package/docs/v11/MARKET-SLICES.md +1 -1
  40. package/docs/v11/REGISTRIES.md +1 -1
  41. package/docs/v11/ROUTER-1.md +2 -2
  42. package/loki-ts/dist/loki.js +2 -2
  43. package/mcp/__init__.py +1 -1
  44. package/package.json +2 -2
  45. package/plugins/loki-mode/.claude-plugin/plugin.json +1 -1
  46. package/skills/extending.md +2 -3
  47. package/skills/factory-operations.md +11 -18
  48. package/skills/release-cadence.md +2 -2
  49. package/web-app/dist/assets/{AdminPage-jkjilfbl.js → AdminPage-CTwi8SUX.js} +1 -1
  50. package/web-app/dist/assets/{Avatar-bd5JWkSJ.js → Avatar-DVtGtLkJ.js} +1 -1
  51. package/web-app/dist/assets/{Badge-DVRit2Xw.js → Badge-rwKzz0Pe.js} +1 -1
  52. package/web-app/dist/assets/{Button-BNAB-pVZ.js → Button-nIsPDfsQ.js} +1 -1
  53. package/web-app/dist/assets/{CockpitPage-DpG29h_w.js → CockpitPage-BCeDpoWa.js} +1 -1
  54. package/web-app/dist/assets/{ComparePage-Dasg5V41.js → ComparePage-CYIYanVq.js} +1 -1
  55. package/web-app/dist/assets/{ErrorBoundary-DJojse6b.js → ErrorBoundary-Bkz6HqWp.js} +1 -1
  56. package/web-app/dist/assets/{EvidenceReceiptPanel-Blxw7_u1.js → EvidenceReceiptPanel-DZT2Np4F.js} +1 -1
  57. package/web-app/dist/assets/{GitHubIssuesPanel-BBvSFj80.js → GitHubIssuesPanel-Bzla91Lu.js} +1 -1
  58. package/web-app/dist/assets/{GitHubPRsPanel-BCIKeSBg.js → GitHubPRsPanel-FjT-Xn5t.js} +1 -1
  59. package/web-app/dist/assets/{HomePage-C7d__oNG.js → HomePage-pXgmRGLt.js} +2 -2
  60. package/web-app/dist/assets/{LoginPage-BXljL3yY.js → LoginPage-CnmpE28B.js} +1 -1
  61. package/web-app/dist/assets/{MagicPage-Xjkts_yE.js → MagicPage-CuSeGsLq.js} +1 -1
  62. package/web-app/dist/assets/{MetricsPage-kQvVp-j2.js → MetricsPage-Bg3PkBOU.js} +1 -1
  63. package/web-app/dist/assets/{NotFoundPage-D-4ZlEaO.js → NotFoundPage-uzBtZNV-.js} +1 -1
  64. package/web-app/dist/assets/{ProjectPage-DfzR5RXP.js → ProjectPage-Dacki8Xr.js} +3 -3
  65. package/web-app/dist/assets/{ProjectsPage-DFDsWzkV.js → ProjectsPage-BRGjksXG.js} +1 -1
  66. package/web-app/dist/assets/{SettingsPage-CLPIoYT3.js → SettingsPage-BbNf3fEJ.js} +1 -1
  67. package/web-app/dist/assets/{ShowcasePage-PZKkyGeY.js → ShowcasePage-XX4830sX.js} +1 -1
  68. package/web-app/dist/assets/{SystemSettingsPage-BsBlcnzo.js → SystemSettingsPage-DOhQeXa6.js} +1 -1
  69. package/web-app/dist/assets/{TeamsPage-BSjgNhoU.js → TeamsPage-2reIRUp_.js} +1 -1
  70. package/web-app/dist/assets/{TemplatesPage-W2KeAzbg.js → TemplatesPage-BUsLEWHW.js} +1 -1
  71. package/web-app/dist/assets/{TerminalOutput-BjroTiCC.js → TerminalOutput-BrBDcgzC.js} +1 -1
  72. package/web-app/dist/assets/{activity-BXZ5YYes.js → activity-B6AZpgmb.js} +1 -1
  73. package/web-app/dist/assets/{bell-D1urp5pa.js → bell-CB792A7S.js} +1 -1
  74. package/web-app/dist/assets/{bot-Chedf2bF.js → bot-uQZwOFAn.js} +1 -1
  75. package/web-app/dist/assets/{check-DhaCuOCV.js → check-DrtG0lIZ.js} +1 -1
  76. package/web-app/dist/assets/{chevron-left-D7BpQyA6.js → chevron-left-CrsJSAqQ.js} +1 -1
  77. package/web-app/dist/assets/{circle-alert-DnGvQ_AQ.js → circle-alert-BUCly4p3.js} +1 -1
  78. package/web-app/dist/assets/{clock-CqfxWhHM.js → clock-B2IT9SnE.js} +1 -1
  79. package/web-app/dist/assets/{cloud-BKxp5AWB.js → cloud-CN6Ux7Q7.js} +1 -1
  80. package/web-app/dist/assets/{code-xml-BDQ6GBtt.js → code-xml-BEm8PWnK.js} +1 -1
  81. package/web-app/dist/assets/{database-BmpEx1y_.js → database-cHe5Fgu8.js} +1 -1
  82. package/web-app/dist/assets/{dollar-sign-DYNY9R_C.js → dollar-sign-BVmP4YrE.js} +1 -1
  83. package/web-app/dist/assets/{file-code-corner-BJi0IBFd.js → file-code-corner-D-m-NrwO.js} +1 -1
  84. package/web-app/dist/assets/{file-plus-Dqyb2bcQ.js → file-plus-6mCjIzAB.js} +1 -1
  85. package/web-app/dist/assets/{globe-DPh4RWfM.js → globe-vcWOujwU.js} +1 -1
  86. package/web-app/dist/assets/{hammer-B3xnuoA1.js → hammer-D4nZFpO2.js} +1 -1
  87. package/web-app/dist/assets/{index-BpX8DcTr.js → index-u8toJ43r.js} +3 -3
  88. package/web-app/dist/assets/{layers-BRCmyCW8.js → layers-CNhYLop8.js} +1 -1
  89. package/web-app/dist/assets/{loader-circle-n07Pky0M.js → loader-circle-Vl7XIMV6.js} +1 -1
  90. package/web-app/dist/assets/{lock-BWqOuQmS.js → lock-SW_KwAvf.js} +1 -1
  91. package/web-app/dist/assets/{package-BJlB_Z-Z.js → package-QPK-7Ej1.js} +1 -1
  92. package/web-app/dist/assets/{plus-oH17BZu2.js → plus-DUgAlgCB.js} +1 -1
  93. package/web-app/dist/assets/{refresh-cw-CPQ476LL.js → refresh-cw-LfUksPHq.js} +1 -1
  94. package/web-app/dist/assets/{rotate-ccw-7hLvOcnS.js → rotate-ccw-CMbuouVq.js} +1 -1
  95. package/web-app/dist/assets/{scroll-text-BCmLauQn.js → scroll-text-C_FxBmNQ.js} +1 -1
  96. package/web-app/dist/assets/{server-DfTfvW84.js → server-7UJe9Jqt.js} +1 -1
  97. package/web-app/dist/assets/{shield-alert-CaeGRq19.js → shield-alert-BMuu6fYB.js} +1 -1
  98. package/web-app/dist/assets/{thumbs-up-Dz-l2GPC.js → thumbs-up-Bhs0d2Gp.js} +1 -1
  99. package/web-app/dist/assets/{trash-2-B-OsDmSo.js → trash-2-BZKxv49w.js} +1 -1
  100. package/web-app/dist/assets/{trending-down-CXTFOxzq.js → trending-down-DKeCMZek.js} +1 -1
  101. package/web-app/dist/assets/{trending-up-FQEdqr3v.js → trending-up-43_9fShg.js} +1 -1
  102. package/web-app/dist/assets/{upload-CacWSNTg.js → upload-pV3irPEW.js} +1 -1
  103. package/web-app/dist/assets/{usePolling-cIjZ9qd2.js → usePolling-CoZQM-WL.js} +1 -1
  104. package/web-app/dist/assets/{user-DAouWFHi.js → user-CMl7dXvC.js} +1 -1
  105. package/web-app/dist/index.html +1 -1
  106. package/autonomy/company-seats.json +0 -82
  107. package/docs/COMPETITIVE-INTEL-2026-09.md +0 -444
  108. package/docs/FOUNDER-DECISIONS-TRUST-SEMANTICS-2026-08-01.md +0 -145
  109. package/docs/FOUNDER-STATUS-AND-DECISIONS-2026-07-01.md +0 -132
  110. package/docs/LOKI-10-BUILD-PROMPT.md +0 -350
  111. package/docs/STRATEGY-2026-2028.md +0 -124
  112. package/docs/V10-VISION.md +0 -161
  113. package/docs/v10/ADOPTION-PLAN.md +0 -375
  114. package/docs/v10/ARCHITECT-CUTS.md +0 -744
  115. package/docs/v10/BACKLOG.md +0 -231
  116. package/docs/v10/BOARD.md +0 -1403
  117. package/docs/v10/CONTROL-PLANE.md +0 -120
  118. package/docs/v10/CONTROL.md +0 -36
  119. package/docs/v10/CP-ASK-PLAN.md +0 -85
  120. package/docs/v10/CP-ENTERPRISE-UI.md +0 -537
  121. package/docs/v10/D51-PHASE-B.md +0 -120
  122. package/docs/v10/D61-SPEED.md +0 -105
  123. package/docs/v10/D63-CARDS.md +0 -354
  124. package/docs/v10/DECISIONS.md +0 -915
  125. package/docs/v10/E2E-D65.md +0 -123
  126. package/docs/v10/ENGINE-LAWS.md +0 -163
  127. package/docs/v10/ENGINE-MEASURE.md +0 -69
  128. package/docs/v10/ENGINE.md +0 -743
  129. package/docs/v10/FAILURE-CLASSES.md +0 -2026
  130. package/docs/v10/FC21B-FC22-PLAN.md +0 -107
  131. package/docs/v10/FIRST-RUN-GATE.md +0 -39
  132. package/docs/v10/FOUNDER-QUEUE.md +0 -29
  133. package/docs/v10/GAP-RESEARCH-1003.md +0 -32
  134. package/docs/v10/GUARDS.md +0 -883
  135. package/docs/v10/L0-WAVE1.md +0 -81
  136. package/docs/v10/LEGACY-REMOVAL.md +0 -408
  137. package/docs/v10/MEDIUM-ANALYSIS.md +0 -346
  138. package/docs/v10/METRICS.md +0 -645
  139. package/docs/v10/MODERNIZE.md +0 -437
  140. package/docs/v10/OPENCODE-PARITY-PLAN.md +0 -84
  141. package/docs/v10/OPERATING-MODEL.md +0 -60
  142. package/docs/v10/PLAN-V12.md +0 -896
  143. package/docs/v10/PROGRESS.md +0 -2735
  144. package/docs/v10/RELEASE-11.md +0 -77
  145. package/docs/v10/RETRO-2026.md +0 -650
  146. package/docs/v10/ROADMAP-D63.md +0 -35
  147. package/docs/v10/SCALE.md +0 -140
  148. package/docs/v10/SCORECARD-PLAN.md +0 -250
  149. package/docs/v10/SWARM-PROMPT.md +0 -98
  150. package/docs/v10/SWARM.md +0 -293
  151. package/docs/v10/cp-redesign/PARITY.md +0 -188
  152. package/docs/v10/cp-redesign/legacy/INDEX.md +0 -1167
  153. package/docs/v10/roadmap-10/01-measurement.md +0 -113
  154. package/docs/v10/roadmap-10/02-cost.md +0 -75
  155. package/docs/v10/roadmap-10/03-speed.md +0 -65
  156. package/docs/v10/roadmap-10/04-first-run.md +0 -61
  157. package/docs/v10/roadmap-10/05-deploy.md +0 -61
  158. package/docs/v10/roadmap-10/06-stability.md +0 -64
  159. package/docs/v10/roadmap-10/07-quality.md +0 -57
  160. package/docs/v10/roadmap-10/08-proof.md +0 -48
  161. package/docs/v10/roadmap-10/09-safety.md +0 -74
  162. package/docs/v10/roadmap-10/README.md +0 -1464
  163. package/skills/sdlc-fleet.md +0 -170
  164. package/tools/cockpit/SPEC.md +0 -275
  165. package/tools/cockpit/index.html +0 -146
  166. package/tools/cockpit/roi-basis.json +0 -33
  167. package/tools/cockpit/server.py +0 -946
@@ -1,107 +0,0 @@
1
- # FC-21b and FC-22 slice plan (Architect, 2026-10-03T23:58Z)
2
-
3
- The order is S1, then S2, S3 and S5 in parallel, then S4 last. No two slices touch the same file. Every slice must pass the full `bun test` plus `bunx tsc --noEmit` before APPROVE.
4
-
5
- ## Findings (file:line, loki-ts/src)
6
- - Impacted-test selection lives in engine10/testmap.ts:201 impactedRefs, not in e10ext/select.ts (which is attempt ranking).
7
- - It matches basename stems across the whole repo (sourceRefs :186-193), so a backend validation.ts pulls in frontend validation.test.ts.
8
- - Callers: verify.ts:250 and :260, implement.ts:25, sizing.ts:43, plan.ts:58.
9
- - The Project Model has no package graph (schema.ts:21 ModelPackage) and no install command (COMMAND_KINDS, schema.ts:8).
10
- - seal.ts:140: an implement exit of killed is always PARTIAL. machine.ts:128 overwrites outputs.implement on a kill, and restoreReadOnly (implement.ts:43) never runs on a kill. A killed session can therefore leave an edited Wall file behind, and verify runs it. This blocks shipping VERIFIED-after-limit.
11
- - The cap is fixed before the worker spawns (supervisor.ts:330), and the backstop comes from it (:181).
12
- - plan.ts:91 relevant_files is keyword overlap, so it is not a size signal.
13
- - run_cap.ts:28 matches run_cap_s at any depth under budgets; CRLF fails silently at :27; :35 has an off-by-one line count. budget_cap.ts:20 yamlPerRun has the same bugs.
14
- - output.ts:70 outcomeOf returns BUDGET_STOP over a sealed PARTIAL or FAILED receipt, which is an L7 violation.
15
- - A1: machine.ts:145.
16
- - A2: conflict_resume.ts:14 spreads the first session's options, and machine.ts:66 raises limitS back to the full budget, then appends the note after FINISH_LINE.
17
- - Measured line counts: core 4705, e10ext 1481, features 2971. New modules go in project_model/ and util/ (uncapped). e10ext changes must be net <= 0.
18
-
19
- ## Decisions
20
- - FC-22a: ModelPackage gets `dependsOn?: string[]` (package roots), declared and cited by the discovery model (L0, no import parsing).
21
- - Absent means edges are unknown: keep today's cross-package selection (fail safe).
22
- - [] is an explicit "no dependents".
23
- - FC-22b: ModelPackage gets `install?: ModelCommand|null`. Install is triggered by evidence only: a selected check in that package came back as a harness-owned load error (FC-02).
24
- - It runs once per package per run, between verify and the fix loop, with timeout min(300s, cap left).
25
- - It is recorded as check `install:<root>`, and verify is rerun once (not a fix round).
26
- - No install command means NOT PROVEN naming the package; never guess.
27
- - Opt-out: LOKI_E10_INSTALL=0 or loki.yaml `verify.install_deps: false`.
28
- - FC-21b(1): add before the fail->FAILED line in verdictOf:
29
- `if (exit === "killed") return typeof o.implement?.limit_s === "number" && targetProof && proof && !verifyNotProven && checks.length > 0 && checks.every((c) => c.result === "pass") ? "VERIFIED" : "PARTIAL";`
30
- - targetProof means a verify `target_checks` entry (Wall or a task-named relevant test) passed with n>0.
31
- - The receipt gets an optional `implement_limit: {limit_s, elapsed_s}`, omitted when unset so other receipts stay byte-stable.
32
- - FC-21b(2): the plan session writes <runDir>/plan-scope.json {"files":[...]}.
33
- - P = packages owning those files plus their dependentsOf; F = the file count.
34
- - cap = clamp(900 + 450*(P-1) + 20*max(0, F-3), 900, ceiling). The ceiling is 3600 on subscription and 2400 with a dollar cap.
35
- - The worker resizes once after plan||wall. An explicit env or yaml cap is fixed.
36
- - Task-text length and the repo file count are removed from the formula.
37
- - FC-21b(3): the receipt is the one source of truth. Outcome = receipt.verdict, and the exit code is EXIT[verdict].
38
- - A cap stop is shown on the Reason line and as `stop:"cap"` in --json.
39
- - BUDGET_STOP remains only when no receipt was sealed.
40
-
41
- ## Questions the Architect raised (decided by the CoS under the standing mandate; recorded in FOUNDER-QUEUE.md for veto)
42
- - (a) After a limit, VERIFIED requires a Wall or task-named test to pass with n>0. ACCEPTED: Seal accuracy outranks delivered accuracy.
43
- - (b) Install defaults ON (L1 parity with raw Claude Code, which would install deps), with the opt-out above. ACCEPTED, on two conditions: install runs only on evidence of a load error, and the tree guard is L2-classified.
44
- - (c) Exit code 3 is dropped when a receipt is sealed. ACCEPTED (L7). It ships as a CHANGELOG "Changed" entry that names the exit-code change.
45
-
46
- ## Slices
47
- S1 (MEDIUM, no deps): Project Model graph and install schema.
48
- - Files: project_model/schema.ts, api.ts, discover.ts, gather.ts (computeKey salt "model-rev:2"), new project_model/graph.ts, new util/yaml_key.ts, tests/project_model/graph.test.ts, tests/util/yaml_key.test.ts, fixtures/project-model/firelater-17/response.json.
49
- - Wall checks:
50
- - dependsOn naming an unknown root is rejected;
51
- - an absent dependsOn validates;
52
- - dependentsOf is transitive and ignores cycles;
53
- - a rev-1 cached model is rediscovered;
54
- - yamlKey ignores nested per_stage run_cap_s;
55
- - yamlKey reads CRLF.
56
- - If FC-23 merged module-system fields into schema.ts, rebase on them.
57
-
58
- S2 (HIGH, needs S1): package-scoped selection (FC-22a).
59
- - Files: engine10/testmap.ts, new project_model/scope.ts, tests/engine10/fc22_select.test.ts, fixtures/monorepo-fc22/**.
60
- - Wall checks:
61
- - a backend-only change selects no frontend test;
62
- - with frontend dependsOn backend, the frontend test is kept;
63
- - an absent dependsOn keeps today's selection;
64
- - single-package output is byte-identical;
65
- - an unowned test is kept;
66
- - implement impactedTests and hasRelevantTests are scoped the same way;
67
- - scoped-out tests are emitted as a verify event.
68
-
69
- S3 (HIGH, needs S1): install pre-step library (FC-22b).
70
- - Files: new project_model/install.ts (prepareDeps, once-per-run memo, git status snapshot before and after), the L2 destructive-path classification entry, tests/engine10/fc22_install.test.ts, fixtures/install-fc22/**.
71
- - Wall checks:
72
- - one install check per load-failed package, with its cwd;
73
- - no command means no run and a NOT PROVEN naming the package;
74
- - both opt-outs skip the install;
75
- - it runs once across fix rounds;
76
- - a failed install is not_run with owner harness, never fail;
77
- - an install that writes a lockfile is restored and listed.
78
-
79
- S5 (HIGH, needs S1): cap sizing and A3 (FC-21b(2)).
80
- - Files: util/run_cap.ts, e10ext/budget_cap.ts (net <= 0 lines), stages/plan.ts (plan-scope.json), supervisor.ts (backstop at the ceiling, started.cap_ceiling_s), tests/engine10/fc21_cap.test.ts.
81
- - Wall checks:
82
- - a 4-package, 4-file scope gets a larger cap than a 1-file scope;
83
- - a 1-file scope gets 900;
84
- - a long task text with a 1-file scope gets 900;
85
- - explicit env and yaml caps are fixed and win;
86
- - a nested run_cap_s is ignored;
87
- - CRLF yaml is read;
88
- - the clamp holds;
89
- - the e10ext cap passes.
90
-
91
- S4 (HIGH, needs S3 and S5 merged): earned VERIFIED, A1, A2, L7 and wiring (FC-21b(1)(3)).
92
- - Files: stages/seal.ts, stages/verify.ts, stages/implement.ts (export restoreReadOnly), machine.ts, types.ts, output.ts, worker.ts, tests/engine10/fc21_limit.test.ts, new tests/engine10/fc21b_verdict.test.ts.
93
- - Wall checks:
94
- - limit plus green fix rounds with n>0 and a Wall pass is VERIFIED, with implement_limit set;
95
- - limit plus a red check, an unrun check, or no target check is PARTIAL;
96
- - a limit throw with killed false never seals VERIFIED (A1);
97
- - a killed session's Wall edit is restored before verify;
98
- - a resumed implement gets limitS <= budget - elapsed, and both briefs end with FINISH_LINE (A2);
99
- - CLI outcome equals receipt.verdict and the exit code is EXIT[verdict] for a cap stop;
100
- - core stays under 5000.
101
-
102
- ## Risks
103
- 1. With the backstop at the ceiling, a hung small task can live up to 3600s. Follow-up: re-arm the backstop on cap.sized.
104
- 2. The salt forces one rediscovery per repo. If discovery fails, selection runs unscoped and the cap is sized by file count only.
105
- 3. A wrong "no edge" from the model under-selects tests. Mitigation: dependsOn must cite a manifest, and scoped-out tests are audited.
106
- 4. Install runs repo scripts and spends the cap. Mitigation: it is evidence-triggered, guarded, and opt-out.
107
- 5. Scripts keyed on exit code 3 change behavior. Mitigation: a CHANGELOG Changed entry.
@@ -1,39 +0,0 @@
1
- # First-run gate: defect reproduction (A-02, step 1)
2
-
3
- Base: main at VERSION 10.5.10. Local CLI `bin/loki` from this worktree, never a global install.
4
- Every run used a run-owned temp dir (`loki_run_tmp_create`), `HOME=<tmp>/home` (empty: no
5
- `~/.claude` skills, no `~/.loki`, no dashboard), `LOKI_NO_BROWSER=1`, and the bugrepo from
6
- `firstrun-repro/bugrepo-original/` (git repo, no remote, one commit).
7
-
8
- Provider: a stub `claude` first on PATH (answers `--help` with `--settings`, exits 0, fixes
9
- `sum.js` on the implement stage, signals completion; in the Wall stage it writes nothing).
10
- `STUB_SPEC_CONFLICT` makes it print a `LOKI_SPEC_CONFLICT:` line. The v10 engine needs
11
- `LOKI_E10_INVOKER=cli` to use the stub (its default SDK loop does not go through PATH).
12
-
13
- Real provider: 2 attempts (`LOKI_ENGINE=v10`), both died in 1-3 s at cost $0 with
14
- `Not logged in`. A throwaway HOME does not carry the Claude login (copying
15
- `~/.claude/.credentials.json` was not enough). Real-provider reproduction of (a) and the
16
- real-claude timing in (d) therefore rests on the recorded logs (`run1.log`, `run2.log`,
17
- `raw.log`) plus the source reading below. The gate's `--real` mode must pass a token via
18
- `ANTHROPIC_API_KEY` or `CLAUDE_CODE_OAUTH_TOKEN`, or run with the real HOME.
19
-
20
- Entry point chosen for a new user (README.md "Use it"): `loki quickstart` is interactive and
21
- asks for an idea, so it cannot fix a given repo; the README's one-shot task command is
22
- `loki quick "<task>"`, which is what run1.log used and what the gate runs. The v10 engine
23
- (`LOKI_ENGINE=v10 loki "<task>" --no-pr`) is tested as a second entry.
24
-
25
- | # | Defect | Reproduced | Command and rc | Evidence line | Class | Source |
26
- |---|--------|-----------|----------------|---------------|-------|--------|
27
- | a | Wall commits Jest globals in a node:test repo | Not reproduced live (real provider unavailable in clean HOME); root cause confirmed in code | v10 stub run: intake event `"testmap":{"runners":["npm"],"tests":[]...}` | Wall brief is paths only ("framework named in repomap.txt"); the testmap reports `tests: []` and runner `npm` for a node:test repo, so nothing names node:test; `guessRunner` returns null for npm so the generated file is never run or checked | CODE BUG | `loki-ts/src/engine10/stages/wall.ts:76-86` (brief), `:110-117` (guessRunner), `loki-ts/src/engine10/testmap.ts:37` (npm coarse, no node:test detection) |
28
- | b | npm test red (2 of 3) but the run exits 0 | Yes | v10 stub run, implement makes no diff, tests still red: rc=0, `seal ... SPEC_CONFLICT`; also `PARTIAL` rc=0 | `Verdict: SPEC_CONFLICT` then `rc=0` with the failing test untouched | CODE BUG | `loki-ts/src/engine10/supervisor.ts:387` (`res.verdict === "FAILED" ? 1 : 0`, so PARTIAL and SPEC_CONFLICT exit 0) |
29
- | c | `loki verify` calls an untouched sealed receipt TAMPERED | Yes | `LOKI_ENGINE=v10 loki verify` after a sealed run whose receipt holds a non-ASCII char: rc=1 | `verdict: TAMPERED / receipt_sha256 mismatch: recorded "40b8a0ef..." computed 4a572bdf...` (receipt untouched; ASCII-only receipts verify UNSIGNED rc=0) | CODE BUG | `loki-ts/src/engine10/verify_cmd.ts:21-28` private `canonicalJson` does not `\uXXXX`-escape chars U+0080 and above; the sealer does at `stages/seal.ts:39-50` |
30
- | d | `loki quick` slow, noisy, commits extra files | Yes for noise and commits; time partly (stub) | `loki quick "fix ..."` stub provider: rc=0, 111 s wall with a zero-latency stub (real: 97 s vs 10 s raw per run1.log/raw.log), 269 output lines | commit `Loki Mode session changes` adds `HANDOFF.md` and `package-lock.json` (+77 -1 for a 1-line fix); USAGE.md is also committed when the provider returns Markdown (run1.log) | CODE BUG | `autonomy/run.sh:11065-11233` (`commit_session_changes` stages everything), HANDOFF writer `autonomy/run.sh:29334-29344`, docs gate `autonomy/run.sh:14835-14853`, banner/gate logging throughout |
31
- | e | Printed receipt digest differs from what proof verify checks | Yes | `loki quick` stub, then `loki proof verify <run>` rc=0 | Printed block: `Files changed | 2`, `Diff sha256 af01b739...`; `proof verify` recorded/current diff `25b61f73...` over 3 files (the printed block predates the session commit that adds HANDOFF.md and the lockfile) | CODE BUG | receipt generated before `commit_session_changes` (`autonomy/run.sh:11233`, proof call near `:8815-8935`); printer at `:4948-4964` |
32
- | f | v10 prints UNSIGNED; two engines use different signing env vars | Yes (UNSIGNED); partially (env vars) | any v10 run: rc per verdict | `receipts will be UNSIGNED (no signing key configured; set LOKI_RECEIPT_SIGNING_KEY or LOKI_RECEIPT_SIGNING_KEY_FILE)` | CODE BUG (first-run default) | both honor `LOKI_RECEIPT_SIGNING_KEY[_FILE]` (`seal.ts:69`, `autonomy/lib/proof-generator.py:2185-2186`), but the legacy engine also has `LOKI_PROOF_GPG_KEY` (`proof-generator.py:2158`); with no key neither signs, so a new user always gets an unsigned receipt |
33
- | g | doctor FAILs for Cline and Aider | No | `loki doctor` in clean HOME: rc=1 | `WARN Cline CLI - not found (optional)`, `PASS Aider CLI (v0.86.2)`; the only FAIL is `Claude login has EXPIRED` (stub claude / empty HOME) | MACHINE ARTIFACT | founder machine broken symlinks; not a code path (Cline and Aider are WARN when absent) |
34
-
35
- Notes
36
- - (c) needs a non-ASCII character anywhere in the receipt (task-derived reasons, repo paths,
37
- check messages); real runs with a spec-conflict reason or unicode in a path hit it.
38
- - (b) shows the exit code is wrong independent of (a): any non-FAILED verdict exits 0.
39
- - Cost of all runs in this table: $0.00 (stub runs; both real attempts failed on login).
@@ -1,29 +0,0 @@
1
- # Founder queue
2
-
3
- Things only the founder can do or decide. Append-only. The loop never blocks on
4
- this file; each item says what the loop does meanwhile.
5
-
6
- | # | Date | Item | Why only you | Loop does meanwhile |
7
- |---|---|---|---|---|
8
- | 1 | 2026-09-25 | Review the stash `pre-v10 leftover (founder review)` (commit `2c00b2eb`, `git stash show -p 2c00b2eb`). Six uncommitted files found at v10 start: `coverage/clover.xml`, `coverage/lcov-report/index.html`, `loki-ts/tests/integration/loki_start_e2e.test.ts`, `tests/fixtures/project-graph/acme/ui/.loki/state/project-graph.json`, `tests/test-proven-pr-receipt.sh`, `web-app/tests/e2e/filewatcher.spec.ts`. Apply, or drop. | Not the loop's work; build prompt 1b says stash, never commit or discard. | Works on a clean main. |
9
- | 2 | 2026-09-25 | Add a cheap-model key (DeepSeek, OpenRouter or MiniMax) to the environment the loop runs in. | Needs an account and a card. | Uses Claude Haiku 4.5 or the cheapest OpenAI model reachable through opencode as the provisional floor (build prompt section 5). |
10
- | 3 | 2026-09-25 | Daily model budget is **$50/day** unless you change this line. | Money. | Stays under it; deterministic work when out. |
11
- | 4 | 2026-09-25 | Expected founder items for v10: SOC 2 audit, sales motion, Claude Marketplace partner application, GitHub and GitLab partnerships, pricing. | Contracts, money, legal. | Engineering ships readiness docs only, never a certification claim. |
12
- | 5 | 2026-09-25 | Five older stashes predate v10 (`stash@{1}`..`stash@{5}`, v9.22.10 era and three `autonomi/*` branches). Keep or drop. | Not created by the loop. | Leaves them alone. |
13
- | 6 | 2026-09-25 | On this Mac (macOS 27.0), `/usr/bin/python3` stops at "You have not agreed to the Xcode license agreements". Run `sudo xcodebuild -license accept` once. It may be why the seatbelt test in `tests/dashboard/test_build_supervisor.py` fails locally and blocks the pre-push hook (D5); not proven. | Needs sudo. | Investigates the seatbelt test separately (BACKLOG). |
14
- | 7 | 2026-09-30 | License for `loki-seal` and the core: MIT/Apache, FSL-1.1-Apache, or keep BUSL. Also remove the "independent reimplementation" IP notice, and replace the CLA with DCO. | License and legal. | Builds `loki-seal` license-neutral with no LICENSE file. |
15
- | 8 | 2026-09-30 | Create a public repo for `loki-seal`, and submit to the Anthropic plugin directory, awesome-claude-code, the e2b list (the CLA signature is pending on PR #1106) and skills registries. | Outward posting and new public repos. | Prepares the manifests and entry text in `packages/loki-seal/SUBMIT.md`. |
16
- | 9 | 2026-09-30 | GitHub About text and topics (claude-code, claude-code-plugin, agent-skills, claude-skills, mcp). | Public repo settings. | Keeps a draft in `packages/loki-seal/SUBMIT.md`. |
17
- | 10 | 2026-09-30 | Tagline veto: "Your agent says done. Loki proves it." | Brand. | Uses it as README line 1 by default. |
18
- | 11 | 2026-09-30 | Opt-in first-run telemetry (install, first verified run, day-7 return). | Privacy and data. | Collects nothing. |
19
- | 12 | 2026-09-30 | One relaunch after the first-run gate passes, ideally posted by an outside user. | Outward posting. | Drafts a Show HN and an r/ClaudeAI post in `packages/loki-seal/SUBMIT.md`, led by the GIF and the harness table, with no agent counts and no percentages. |
20
- | 13 | 2026-09-30 | Repo `.claude/settings.json` hooks use relative paths (`bash autonomy/hooks/session-init.sh`, `validate-bash.sh`, `track-metrics.sh`, `store-episode.sh`, lines 9, 20, 31, 42), so they fail ("No such file or directory") whenever a session or agent's cwd is not the repo root (gate worktrees, /private/tmp train checkouts). validate-bash.sh is a PreToolUse guard, so it may silently not guard there. Proposed: `bash "$CLAUDE_PROJECT_DIR/autonomy/hooks/<name>.sh"`, exiting 0 quietly when the variable is unset. Raised by the steering session 22:50Z. | Claude Code configuration; agents may not edit it on a peer's request. | Leaves the file unchanged; hook errors continue outside the repo root. | RESOLVED 2026-10-01T00:30Z: Loki approved "fix the hooks"; slice-F13-hook-paths (65dc1411) merged on train/15. |
21
- | 14 | 2026-10-01 | Move the full-history `gitleaks --all` scan out of the Release path (to nightly plus every push to main, still blocking there), keeping a base-tag-to-tip range scan in Release. Relayed by the steering session as part of D46. | Weakens a release-blocking security gate; needs the founder directly, not a relay. | Release keeps the `--all` scan; E-156 removes the recurring false positive at the source. | SUPERSEDED 2026-10-01T00:30Z: Security Audit verdict reuse for VERSION-only bumps keeps the full --all scan scope (steering session 00:28Z); filed for the CI-health engineer. |
22
- | 15 | 2026-10-01 | Run the REAL-provider first-run gate on the published `next` build: `CLAUDE_CODE_OAUTH_TOKEN=<token from "claude setup-token"> bash scripts/first-run-gate.sh --real --installed loki-mode@10.5.13` (or ANTHROPIC_API_KEY). The swarm has no provider credential in its environment and does not read stored secrets; the gate's throwaway HOME cannot use the keychain login. Stub mode on the installed npm package runs meanwhile. | Credential only the founder holds. | The promote milestone (real gate pass on a `next` version) stays blocked; stub-mode evidence only. |
23
- | 16 | 2026-10-01 | A Slack incoming-webhook URL for testing D51 item 4 (notify.sh on the v10 path: PR opened, BLOCKED, backlog finished). Provide it as an env var (for example `LOKI_SLACK_WEBHOOK_URL`) in the Release Manager session, never in a file or chat. | Needs a credential only the founder holds. | Until then notify.sh is tested against a local mock webhook; the real end-to-end check runs once the env var is set. | open |
24
- | 17 | 2026-10-01 | Ship bun with the npm package so `npm install -g loki-mode` runs the Loki 10 default without a separate bun install (P0-nobun, architect option B): add `"bun": "1.4.2"` as an optionalDependency. Cost: each install grows from 26.6MB to about 90-110MB (platform binary 62MB darwin-arm64, 80MB linux-x64, 86MB win-x64); `--omit=optional` and unsupported platforms keep the legacy engine with a plain message. The alternative (rewrite engine10 to run under node) is about 14 files and 300-450 lines, breaks the engine10 line budget and needs a third Bun Parity runtime. | Install size and dependency policy. | Builds only the resolver and the plain cannot-run message (both useful either way); npm users without bun keep getting legacy, and promote stays paused until the two-leg gate (E-167) lands. DECIDED B 07:35Z by peer relay (autonomi-dev-dc, citing the founder's 03:30Z delegation): the Loki 10 default is the product; a bigger install costs less than an inert default for most npm users; same pattern as esbuild and biome. Conditions: per-platform optional packages only; measured delta reported and held if above about 60MB per platform (architect figures 62-86MB exceed it; 07:35Z follow-up relay: decided (i) accept about 62-86MB, or (iii) bun's baseline build if smaller and Bun Parity passes; not (ii), since a first-run consent step breaks the one-command bar; record measured deltas in the CHANGELOG; document --omit=optional as the slim legacy path); --version probe plus plain start line when bun cannot run; Docker and Homebrew use the same resolver; E-167 two-leg gate stays. Founder may reverse. |
25
- | 18 | 2026-10-03 | Screenshot veto for the 10.8.0 Control Plane rebuild (D83): the ground colour #F1F2F6 from the legacy dashboard, and keeping the legacy mascot in the sidebar brand. Also: light-theme status text uses AA-safe companion ink tokens (darker than the legacy hex) because the legacy success, warning, info and muted text fail WCAG AA on #F1F2F6. | Brand and visual design. | Builds with the legacy ground and mascot plus the AA ink tokens (D83 point 6); screenshots go in PROGRESS when CPE-02 lands. | open |
26
- | 19 | 2026-10-03 | FC-21b and FC-22 (docs/v10/FC21B-FC22-PLAN.md): (a) after an implement time limit, VERIFIED also requires a Wall or task-named test to pass with n>0; (b) dependencies are installed up front at intake (FireLater#20, 11.17.68), by default, for each package whose dependencies are absent (and again on a harness-owned load error); when the package has a lockfile the install is the ecosystem's frozen form and never rewrites the lockfile, a failed locked install fails closed (harness-owned NOT PROVEN, no mutating fallback), opt-out LOKI_E10_INSTALL=0 or loki.yaml verify.install_deps false (docs/environment-variables.md, D106); (c) exit code 3 (BUDGET_STOP) is dropped whenever a receipt is sealed, outcome and exit follow receipt.verdict. | Behavior and exit-code changes users see. | Decided by the CoS under the standing mandate: (a) yes, (b) yes as stated, (c) yes with a CHANGELOG Changed entry. Founder may reverse. Part (b) decided by the founder 2026-10-19: keep the up-front install, hardened to locked and fail-closed (D106). | open (a, c); (b) decided 2026-10-19 |
27
- | 20 | 2026-10-04 | CP-ASK (docs/v10/CP-ASK-PLAN.md): (a) with LOKI_CP_ASK on, the home box is Ask only, with a "Start a build" link to Compose; (b) defaults $1.00 per ask and 600s, configurable, Ask spend shown on the Cost page apart from run budgets; (c) CP-level runs, receipts and events across all repos always available, per-repo memory and code tools scoped to one repo chip per ask. | Product shape and spend defaults. | Decided by the CoS under the standing mandate as stated. Founder may reverse. | open |
28
- | 21 | 2026-10-07 | Enable GitHub private vulnerability reporting in the repo settings (Settings, Code security, Private vulnerability reporting). SECURITY.md already tells reporters to use Security tab, "Report a vulnerability". | Public repo settings; agents never change them. | SECURITY.md ships as written; until enabled the "Report a vulnerability" button is absent. | open |
29
- | 22 | 2026-10-16 | C-C1, C-C2, C-C3, C-C4, C-F1, C-F5, C-F6, C-F7, C-F8, M-27, M-27E D1-D3, P12-13b | Decided by the CoS under the founder grant of 2026-10-16 (D99). | Builds the unblocked slices. | decided (D99) |
@@ -1,32 +0,0 @@
1
- # GAP RESEARCH 1003: Loki vs Competitors
2
-
3
- Research date: Oct 3, 2026. Scope: public product docs, launch announcements, funded claims.
4
-
5
- ## What Each Competitor Ships That Loki Lacks
6
-
7
- **Devin AI (Cognition Labs):** Desktop app with computer-use capability ($500/mo), self-review gate (catches 30% more issues), no manual intervention for 15-task planning. Publicly claimed features from https://www.buildfastwithai.com/ai-tools/devin and https://singularitymoments.com/devin-ai-coding-agent-guide/.
8
-
9
- **Factory AI:** IDE integrations (VS Code, JetBrains, Vim native), role-based API for droid swarm control, Linear/Jira issue-to-code pipeline, OpenTelemetry adoption analytics, background cloud/local agents. Cited from https://www.digitalapplied.com/blog/factory-ai-multi-agent-coding-platform-review and https://fritz.ai/factory-ai-review/.
10
-
11
- **8090 Software Factory:** Requirements-Blueprint-Planner workflow for regulated enterprises, audit-trail-first governance, AI agent skill marketplace. For regulated orgs only. Cited from https://www.8090.ai/docs/general/introduction and https://rywalker.com/research/8090-software-factory.
12
-
13
- **Vorflux:** Browser-based test recording with mergeable PR video proof, adversarial reviewer agents (planner vs reviewer), GitHub/Linear/Slack/AWS native bindings, $15M seed. Cited from https://vorflux.com/docs and https://www.thesaasnews.com/news/vorflux-raises-15m-seed/.
14
-
15
- **Claude Code:** Scheduled task execution on Anthropic cloud (runs without laptop), computer-use desktop capability, TypeScript mod/plugin system, interactive visualizations, multi-threaded project coordination. Cited from https://www.builder.io/blog/claude-code-updates and https://releasebot.io/updates/anthropic/claude-code.
16
-
17
- ## Top 10 Gaps Ranked by User Value (Slice Candidates)
18
-
19
- 1. **IDE/editor integration (VSCode, JetBrains)** - 80% of developers code in editors; CLI-only cuts reach by half.
20
- 2. **Issue tracker native binding (GitHub Issues, Linear)** - work originates there; native pipeline removes copy-paste.
21
- 3. **Browser test execution with proof video** - video proof that code works earns trust; text pass/fail claims don't.
22
- 4. **Scheduled/background agent task queue** - devs want builds while laptop is off; async job model unlocks 24/7.
23
- 5. **Self-review quality gate before PR** - automated issue-catching before human review saves review cycles.
24
- 6. **Droid/agent role-based SDK/API** - programmatic control lets orgs embed Loki into their CI/CD automation.
25
- 7. **Desktop application (GUI + CLI)** - non-engineer stakeholders (PMs, execs) need GUI visibility into builds.
26
- 8. **Enterprise audit trail & on-prem option** - regulated industries won't use SaaS without HIPAA/SOC2 provenance.
27
- 9. **Cost analytics per agent/task** - enterprises need chargeback models; opaque token spend blocks budget approval.
28
- 10. **Local-only execution mode** - IP-sensitive work (defense, finance) requires on-premises guarantees.
29
-
30
- ---
31
-
32
- Research validated via web sources: Devin, Factory, 8090, Vorflux, Claude Code press/docs (Oct 2026).