loki-mode 7.5.10 → 7.5.11

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/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  <div align="center">
2
2
 
3
- # Loki Mode
3
+ # Loki Mode aka Autonomi
4
4
 
5
5
  ### Build the future, faster.
6
6
 
@@ -18,7 +18,7 @@
18
18
 
19
19
  ---
20
20
 
21
- > **How it works:** You provide a PRD. Loki Mode classifies complexity (`run.sh:detect_complexity()`), assembles an agent team from 41 specialized types across 8 swarms, and runs autonomous RARV cycles (Reason - Act - Reflect - Verify, see `run.sh:run_autonomous()`) with 11 quality gates (see `skills/quality-gates.md`). Code is not "done" until it passes automated verification. Output is a Git repo with source, tests, configs, and audit logs.
21
+ > **How it works:** Drop a spec -- a PRD, GitHub issue, OpenAPI/JSON/YAML, or one-line brief. Loki Mode classifies complexity (`run.sh:detect_complexity()`), assembles an agent team from 41 specialized types across 8 swarms, and runs autonomous RARV cycles (Reason - Act - Reflect - Verify, see `run.sh:run_autonomous()`) with 11 quality gates (see `skills/quality-gates.md`). Code is not "done" until it passes automated verification. Output is a Git repo with source, tests, configs, and audit logs.
22
22
 
23
23
  ---
24
24
 
@@ -49,7 +49,9 @@ bun install -g loki-mode
49
49
  loki doctor # verify environment
50
50
  loki init my-app --template simple-todo-app
51
51
  cd my-app
52
- loki start prd.md # autonomous build starts
52
+ loki start prd.md # autonomous build from a Markdown PRD
53
+ loki start owner/repo#123 # ...or a GitHub issue
54
+ loki start ./openapi.yaml # ...or an OpenAPI/YAML spec
53
55
  ```
54
56
 
55
57
  Or skip scaffolding and go straight to a quick task:
@@ -64,7 +66,7 @@ loki quick "build a landing page with a signup form"
64
66
  |--------|---------|-------|
65
67
  | **Bun (recommended)** | `bun install -g loki-mode` | Fastest. v8 will be Bun-only. |
66
68
  | **Homebrew** | `brew tap asklokesh/tap && brew install loki-mode` | Auto-installs Bun as a dep |
67
- | **Docker** | `docker pull asklokesh/loki-mode:7.5.9 && docker run --rm asklokesh/loki-mode:7.5.9 start prd.md` | Bun pre-installed in image |
69
+ | **Docker** | `docker pull asklokesh/loki-mode:7.5.11 && docker run --rm asklokesh/loki-mode:7.5.11 start prd.md` | Bun pre-installed in image |
68
70
  | **npm (compat)** | `npm install -g loki-mode` | Works without Bun (bash fallback). Migrate any time with `loki self-update --to bun`. |
69
71
 
70
72
  **Upgrading:**
@@ -124,7 +126,7 @@ The next major release sunsets the Bash runtime entirely. There is no firm calen
124
126
  | Method | Command |
125
127
  |--------|---------|
126
128
  | **Homebrew** | `brew tap asklokesh/tap && brew install loki-mode` |
127
- | **Docker** | `docker pull asklokesh/loki-mode:7.5.9` |
129
+ | **Docker** | `docker pull asklokesh/loki-mode:7.5.11` |
128
130
  | **Inside Claude Code** | `claude --dangerously-skip-permissions` then type "Loki Mode" |
129
131
  | **Git clone** | `git clone https://github.com/asklokesh/loki-mode.git` |
130
132
 
@@ -132,6 +134,29 @@ See the full [Installation Guide](docs/INSTALLATION.md).
132
134
 
133
135
  </details>
134
136
 
137
+ <details>
138
+ <summary><strong>Supported spec formats</strong></summary>
139
+
140
+ A "spec" is whatever you hand `loki start`. Loki auto-detects the format and normalises it before the RARV loop. A Markdown PRD is one form of spec; the table below lists every input the v7.5.11 CLI accepts.
141
+
142
+ | Format | Example | Notes |
143
+ |--------|---------|-------|
144
+ | Markdown PRD | `loki start ./prd.md` | Canonical form. Headings become section anchors. |
145
+ | JSON spec | `loki start ./spec.json` | Free-form JSON; keys surfaced to agents. |
146
+ | YAML spec | `loki start ./openapi.yaml` | OpenAPI / AsyncAPI / plain YAML all accepted. |
147
+ | Plain text brief | `loki start ./brief.txt` | One-paragraph briefs work; complexity auto-detects to "simple". |
148
+ | GitHub issue URL | `loki start https://github.com/owner/repo/issues/42` | Title + body + labels become the spec. |
149
+ | GitHub shorthand | `loki start owner/repo#42` | Same as above, shorter. |
150
+ | Jira ticket key | `loki start PROJ-456` | Requires `JIRA_BASE_URL` + `JIRA_TOKEN` env vars. |
151
+ | GitLab / Azure DevOps URL | `loki start https://gitlab.com/group/proj/-/issues/7` | GitLab and Azure DevOps issue URLs both supported. |
152
+ | Bare issue number | `loki start #123` or `loki start 123` | Resolved against the current repo's `origin` remote. |
153
+ | OpenSpec change directory | `loki start --openspec ./openspec/change-001` | Reads OpenSpec change manifest + delta files. |
154
+ | Auto-detect (no input) | `loki start` | Picks up `./prd.md`, `./spec.{json,yaml,yml}`, or `./SPEC.md` from cwd. |
155
+
156
+ All formats land in the same RARV pipeline and pass the same 11 quality gates (`skills/quality-gates.md`).
157
+
158
+ </details>
159
+
135
160
  ---
136
161
 
137
162
  ## What You Can Build
package/SKILL.md CHANGED
@@ -1,12 +1,14 @@
1
1
  ---
2
2
  name: loki-mode
3
- description: Multi-agent autonomous startup system. Triggers on "Loki Mode". Takes PRD to deployed product with minimal human intervention. Requires --dangerously-skip-permissions flag.
3
+ description: Multi-agent autonomous startup system. Triggers on "Loki Mode". Takes a spec (PRD, GitHub issue, OpenAPI doc, etc.) to deployed product with minimal human intervention. Requires --dangerously-skip-permissions flag.
4
4
  ---
5
5
 
6
- # Loki Mode v7.5.10
6
+ # Loki Mode v7.5.11
7
7
 
8
8
  **You are an autonomous agent. You make decisions. You do not ask questions. You do not stop.**
9
9
 
10
+ **Spec in, product out.** A "spec" is whatever describes the work: a Markdown PRD, a GitHub issue, an OpenAPI doc, a Jira ticket -- a PRD is one form of spec.
11
+
10
12
  **Multi-provider (stable since v5.0.0):** Claude/Codex/Gemini/Cline/Aider with abstract model tiers and degraded mode for non-Claude providers. See `skills/providers.md`. **Current track (v7.5.x):** Phase 1 RARV-C closure -- real provider judges, gate-failure flock, synthetic PRD e2e, status `--json`, dead code cleanup.
11
13
 
12
14
  **Runtime migration in progress:** A bash-to-Bun migration is underway on the `feat/bun-migration` branch. The first phase (shipped in v7.3.0) routes a small set of read-only commands -- `version`, `status`, `stats`, `doctor`, `provider show/list`, `memory list/index` -- through a Bun runtime via `bin/loki`. Every other command remains on the Bash runtime (`autonomy/loki`). Rollback is available with `LOKI_LEGACY_BASH=1`. See `UPGRADING.md` and `docs/architecture/ADR-001-runtime-migration.md` for the full plan.
@@ -89,11 +91,11 @@ These rules guide autonomous operation. Test results and code quality always tak
89
91
 
90
92
  ## Model Selection
91
93
 
92
- **Default since v5.3.0 (reaffirmed in v7.5.10):** Haiku disabled for quality. Use `--allow-haiku` or `LOKI_ALLOW_HAIKU=true` to enable.
94
+ **Default since v5.3.0 (reaffirmed in v7.5.11):** Haiku disabled for quality. Use `--allow-haiku` or `LOKI_ALLOW_HAIKU=true` to enable.
93
95
 
94
96
  | Task Type | Tier | Claude (default) | Claude (--allow-haiku) | Codex (GPT-5.3) | Gemini |
95
97
  |-----------|------|------------------|------------------------|------------------|--------|
96
- | PRD analysis, architecture, system design | **planning** | opus | opus | effort=xhigh | thinking=high |
98
+ | Spec analysis, architecture, system design | **planning** | opus | opus | effort=xhigh | thinking=high |
97
99
  | Feature implementation, complex bugs | **development** | opus | sonnet | effort=high | thinking=medium |
98
100
  | Code review (planned: 3 parallel reviewers) | **development** | opus | sonnet | effort=high | thinking=medium |
99
101
  | Integration tests, E2E, deployment | **development** | opus | sonnet | effort=high | thinking=medium |
@@ -113,7 +115,7 @@ These rules guide autonomous operation. Test results and code quality always tak
113
115
 
114
116
  ```
115
117
  BOOTSTRAP ──[project initialized]──> DISCOVERY
116
- DISCOVERY ──[PRD analyzed, requirements clear]──> ARCHITECTURE
118
+ DISCOVERY ──[spec analyzed, requirements clear]──> ARCHITECTURE
117
119
  ARCHITECTURE ──[design approved, specs written]──> DEEPEN_PLAN (standard/complex only)
118
120
  DEEPEN_PLAN ──[plan enhanced by 4 research agents]──> INFRASTRUCTURE
119
121
  INFRASTRUCTURE ──[cloud/DB ready]──> DEVELOPMENT
@@ -187,20 +189,21 @@ This protocol governs **skill module** loading -- task-scoped instruction files
187
189
 
188
190
  ## Invocation
189
191
 
190
- **Unified entry point (v6.84.0):** `loki start` auto-detects whether the input is a PRD file, an issue URL, or an issue number. No need to pick between `loki start` and `loki run` -- the single command handles all cases.
192
+ **Unified entry point (v6.84.0):** `loki start [SPEC|ISSUE-REF]` auto-detects whether the input is a PRD file, an issue URL, an issue number, or another spec format (e.g. OpenAPI). No need to pick between `loki start` and `loki run` -- the single command handles all cases.
191
193
 
192
194
  ```bash
193
195
  # Standard mode (Claude - full features)
194
196
  claude --dangerously-skip-permissions
195
- # Then say: "Loki Mode" or "Loki Mode with PRD at path/to/prd.md" (or .json)
197
+ # Then say: "Loki Mode" or "Loki Mode with spec at path/to/spec" (PRD .md/.json, OpenAPI .yaml, etc.)
196
198
 
197
199
  # Unified `loki start` -- one command, auto-detected mode
198
- loki start # no arg: analyze current dir, auto-generate PRD
199
- loki start ./prd.md # PRD mode (.md/.json/.txt/.yaml)
200
+ loki start # no arg: analyze current dir, auto-generate spec
201
+ loki start ./prd.md # PRD mode (.md/.json/.txt/.yaml) -- a PRD is one form of spec
202
+ loki start ./openapi.yaml # SPEC mode (OpenAPI doc treated as the spec)
203
+ loki start owner/repo#123 # ISSUE mode (GitHub specific repo)
200
204
  loki start https://github.com/o/r/issues/42 # ISSUE mode (GitHub URL)
201
205
  loki start 123 # ISSUE mode (GitHub issue in current repo)
202
206
  loki start PROJ-456 # ISSUE mode (Jira)
203
- loki start owner/repo#789 # ISSUE mode (GitHub specific repo)
204
207
  loki start --prd ./prd.md # Explicit PRD mode (overrides detection)
205
208
  loki start --issue 123 # Explicit issue mode (overrides detection)
206
209
 
@@ -330,7 +333,7 @@ See `references/core-workflow.md` for the full RARV-C contract.
330
333
 
331
334
  ---
332
335
 
333
- ## Concurrency and Security Hardening (v7.5.7 - v7.5.10)
336
+ ## Concurrency and Security Hardening (v7.5.7 - v7.5.11)
334
337
 
335
338
  Three back-to-back patches closed cross-process and security gaps. No user-facing behavior change on the default flow; verify via the cited paths.
336
339
 
@@ -339,7 +342,7 @@ Three back-to-back patches closed cross-process and security gaps. No user-facin
339
342
  - **Dashboard auth** now required on `/api/memory/*`, `/api/learning/*`, and `/api/status` in `dashboard/server.py` (previously unauthenticated read paths).
340
343
  - **Bash quoting hardening** across `autonomy/run.sh` and `autonomy/loki` -- variable expansions inside command substitution and `[ ]` tests quoted to prevent word-splitting on paths with spaces.
341
344
 
342
- See `CHANGELOG.md` entries [7.5.7], [7.5.8], [7.5.10] for the per-fix list and reviewer sign-off.
345
+ See `CHANGELOG.md` entries [7.5.7], [7.5.8], [7.5.11] for the per-fix list and reviewer sign-off.
343
346
 
344
347
  ---
345
348
 
@@ -355,7 +358,7 @@ See `CHANGELOG.md` entries [7.5.7], [7.5.8], [7.5.10] for the per-fix list and r
355
358
  | Notification Triggers | v5.40.0 | `GET/PUT /api/notifications/triggers` |
356
359
  | GitHub integration | v5.42.2 | Import, sync-back, PR creation, export. CLI: `loki github`, API: `/api/github/*` |
357
360
  | Legacy System Healing | v6.67.0 | `loki heal <path>` -- friction-as-semantics, characterization tests |
358
- | Unified `loki start` | v6.84.0 | Auto-detects PRD vs issue input |
361
+ | Unified `loki start` | v6.84.0 | Auto-detects spec (PRD, OpenAPI, etc.) vs issue input |
359
362
  | Managed Agents (memory mirror) | v7.2.0 | Opt-in via `LOKI_MANAGED_AGENTS` -- see Managed Agents section |
360
363
  | Bun runtime (Phase 1) | v7.3.0 | Read-only commands routed through `bin/loki`; `LOKI_LEGACY_BASH=1` to revert |
361
364
  | Phase 1 RARV-C closure | v7.5.x | Findings injection, real judges, auto-learnings, handoff.md |
@@ -378,4 +381,4 @@ See `CHANGELOG.md` entries [7.5.7], [7.5.8], [7.5.10] for the per-fix list and r
378
381
 
379
382
  ---
380
383
 
381
- **v7.5.10 | [Autonomi](https://www.autonomi.dev/) flagship product | ~260 lines core**
384
+ **v7.5.11 | [Autonomi](https://www.autonomi.dev/) flagship product | ~260 lines core**
package/VERSION CHANGED
@@ -1 +1 @@
1
- 7.5.10
1
+ 7.5.11
@@ -7,7 +7,7 @@ Modules:
7
7
  control: Session control API (start/stop/pause/resume)
8
8
  """
9
9
 
10
- __version__ = "7.5.10"
10
+ __version__ = "7.5.11"
11
11
 
12
12
  # Expose the control app for easy import
13
13
  try:
@@ -527,7 +527,7 @@
527
527
  </button>
528
528
  <button class="nav-link" data-section="prd-checklist" id="nav-prd-checklist">
529
529
  <svg viewBox="0 0 24 24"><path d="M9 11l3 3L22 4"/><path d="M21 12v7a2 2 0 01-2 2H5a2 2 0 01-2-2V5a2 2 0 012-2h11"/></svg>
530
- PRD Checklist
530
+ Spec Checklist
531
531
  </button>
532
532
  <button class="nav-link" data-section="app-runner" id="nav-app-runner">
533
533
  <svg viewBox="0 0 24 24"><polygon points="5 3 19 12 5 21 5 3"/></svg>
@@ -618,10 +618,10 @@
618
618
  </div>
619
619
  </div>
620
620
 
621
- <!-- PRD Checklist -->
621
+ <!-- Spec Checklist -->
622
622
  <div class="section-page" id="page-prd-checklist">
623
623
  <div class="section-page-header">
624
- <h2 class="section-page-title">PRD Checklist</h2>
624
+ <h2 class="section-page-title">Spec Checklist</h2>
625
625
  </div>
626
626
  <loki-checklist-viewer id="checklist-viewer"></loki-checklist-viewer>
627
627
  </div>
@@ -715,7 +715,7 @@
715
715
  <div class="shortcuts-group-title">Navigation</div>
716
716
  <div class="shortcut-row"><span class="shortcut-desc">Overview</span><span class="shortcut-keys"><kbd class="shortcut-key">1</kbd></span></div>
717
717
  <div class="shortcut-row"><span class="shortcut-desc">Insights</span><span class="shortcut-keys"><kbd class="shortcut-key">2</kbd></span></div>
718
- <div class="shortcut-row"><span class="shortcut-desc">PRD Checklist</span><span class="shortcut-keys"><kbd class="shortcut-key">3</kbd></span></div>
718
+ <div class="shortcut-row"><span class="shortcut-desc">Spec Checklist</span><span class="shortcut-keys"><kbd class="shortcut-key">3</kbd></span></div>
719
719
  <div class="shortcut-row"><span class="shortcut-desc">App Runner</span><span class="shortcut-keys"><kbd class="shortcut-key">4</kbd></span></div>
720
720
  <div class="shortcut-row"><span class="shortcut-desc">Council</span><span class="shortcut-keys"><kbd class="shortcut-key">5</kbd></span></div>
721
721
  <div class="shortcut-row"><span class="shortcut-desc">Quality</span><span class="shortcut-keys"><kbd class="shortcut-key">6</kbd></span></div>
@@ -1267,12 +1267,12 @@ var LokiDashboard=(()=>{var xt=Object.defineProperty;var Qt=Object.getOwnPropert
1267
1267
  </div>
1268
1268
  `}_renderChecklistCard(){let t=this._checklistSummary;if(!t||!t.total)return`
1269
1269
  <div class="overview-card">
1270
- <div class="card-label">PRD Progress</div>
1271
- <div class="card-value small-text">${this._data.status==="running"||this._data.status==="autonomous"?"Analyzing PRD...":"No checklist"}</div>
1270
+ <div class="card-label">Spec Progress</div>
1271
+ <div class="card-value small-text">${this._data.status==="running"||this._data.status==="autonomous"?"Analyzing spec...":"No checklist"}</div>
1272
1272
  </div>
1273
1273
  `;let e=Math.round(t.verified/t.total*100),i=t.failing>0?"var(--loki-yellow, #f59e0b)":"var(--loki-green, #22c55e)";return`
1274
1274
  <div class="overview-card">
1275
- <div class="card-label">PRD Progress</div>
1275
+ <div class="card-label">Spec Progress</div>
1276
1276
  <div class="card-value small-text">${t.verified}/${t.total} (${e}%)</div>
1277
1277
  <div class="mini-progress" style="margin-top:4px;height:4px;background:var(--loki-bg-secondary,#e4e4e7);border-radius:2px;overflow:hidden;">
1278
1278
  <div style="width:${e}%;height:100%;background:${i};transition:width 0.3s;"></div>
@@ -5572,7 +5572,7 @@ var LokiDashboard=(()=>{var xt=Object.defineProperty;var Qt=Object.getOwnPropert
5572
5572
  <style>${this.getBaseStyles()}${this._getStyles()}</style>
5573
5573
  <div class="checklist-viewer">
5574
5574
  <div class="checklist-header">
5575
- <h2 class="title">PRD Checklist</h2>
5575
+ <h2 class="title">Spec Checklist</h2>
5576
5576
  ${i?this._renderBadges(e.summary):""}
5577
5577
  </div>
5578
5578
  ${i?this._renderGateBanner():""}
@@ -5623,7 +5623,7 @@ var LokiDashboard=(()=>{var xt=Object.defineProperty;var Qt=Object.getOwnPropert
5623
5623
  `}).join(""):'<div class="item" style="color:var(--loki-text-muted)">No items</div>'}_renderEmpty(){return`
5624
5624
  <div class="empty-state">
5625
5625
  <p><strong>No checklist data yet.</strong></p>
5626
- <p class="hint">The PRD checklist is generated during the first iteration. Start a session with <code>loki start ./prd.md</code> -- groups and items will appear here as the session progresses and can be expanded for details.</p>
5626
+ <p class="hint">The spec checklist is generated during the first iteration. Start a session with <code>loki start ./spec.md</code> (PRD files also accepted) -- groups and items will appear here as the session progresses and can be expanded for details.</p>
5627
5627
  </div>
5628
5628
  `}_attachEventListeners(){let t=this.shadowRoot;t&&(t.querySelectorAll(".category-header[data-category]").forEach(e=>{e.addEventListener("click",()=>this._toggleCategory(e.dataset.category))}),t.querySelectorAll("button[data-waive-id]").forEach(e=>{e.addEventListener("click",i=>{i.stopPropagation(),this._waiveItem(e.dataset.waiveId)})}),t.querySelectorAll("button[data-unwaive-id]").forEach(e=>{e.addEventListener("click",i=>{i.stopPropagation(),this._unwaiveItem(e.dataset.unwaiveId)})}))}_escapeHtml(t){return t?String(t).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;"):""}};customElements.define("loki-checklist-viewer",Y);var Nt={not_initialized:{color:"var(--loki-text-muted, #71717a)",label:"Not Started",pulse:!1},starting:{color:"var(--loki-yellow, #ca8a04)",label:"Starting...",pulse:!0},running:{color:"var(--loki-green, #16a34a)",label:"Running",pulse:!0},stale:{color:"var(--loki-yellow, #ca8a04)",label:"Stale",pulse:!1},completed:{color:"var(--loki-text-muted, #a1a1aa)",label:"Completed",pulse:!1},failed:{color:"var(--loki-red, #dc2626)",label:"Failed",pulse:!1},crashed:{color:"var(--loki-red, #dc2626)",label:"Crashed",pulse:!1},stopped:{color:"var(--loki-text-muted, #a1a1aa)",label:"Stopped",pulse:!1},unknown:{color:"var(--loki-text-muted, #71717a)",label:"Unknown",pulse:!1}},W=class extends u{static get observedAttributes(){return["api-url","theme"]}constructor(){super(),this._loading=!1,this._error=null,this._api=null,this._pollInterval=null,this._status=null,this._logs=[],this._lastDataHash=null,this._lastLogsHash=null}connectedCallback(){super.connectedCallback(),this._setupApi(),this._loadData(),this._startPolling()}disconnectedCallback(){super.disconnectedCallback(),this._stopPolling()}attributeChangedCallback(t,e,i){e!==i&&(t==="api-url"&&this._api&&(this._api.baseUrl=i,this._loadData()),t==="theme"&&this._applyTheme())}_setupApi(){let t=this.getAttribute("api-url")||window.location.origin;this._api=g({baseUrl:t})}_startPolling(){this._pollInterval=setInterval(()=>this._loadData(),3e3),this._visibilityHandler=()=>{document.hidden?this._pollInterval&&(clearInterval(this._pollInterval),this._pollInterval=null):this._pollInterval||(this._loadData(),this._pollInterval=setInterval(()=>this._loadData(),3e3))},document.addEventListener("visibilitychange",this._visibilityHandler)}_stopPolling(){this._pollInterval&&(clearInterval(this._pollInterval),this._pollInterval=null),this._visibilityHandler&&(document.removeEventListener("visibilitychange",this._visibilityHandler),this._visibilityHandler=null)}async _loadData(){try{let[t,e]=await Promise.all([this._api.getAppRunnerStatus(),this._api.getAppRunnerLogs()]),i=JSON.stringify({status:t?.status,port:t?.port,restarts:t?.restart_count,url:t?.url}),a=JSON.stringify(e?.lines?.slice(-5)||[]),s=a!==this._lastLogsHash;if(i===this._lastDataHash&&!s)return;this._lastDataHash=i,this._lastLogsHash=a,this._status=t,this._logs=e?.lines||[],this._error=null,this.render(),this._scrollLogsToBottom()}catch(t){this._error||(this._error=`Failed to load app status: ${t.message}`,this.render())}}_scrollLogsToBottom(){let t=this.shadowRoot;if(!t)return;let e=t.querySelector(".log-area");e&&(e.scrollTop=e.scrollHeight)}async _handleRestart(){try{await this._api.restartApp(),this._loadData()}catch(t){this._error=`Restart failed: ${t.message}`,this.render()}}async _handleStop(){try{await this._api.stopApp(),this._loadData()}catch(t){this._error=`Stop failed: ${t.message}`,this.render()}}_formatUptime(t){if(!t)return"--";let e=new Date(t),a=Math.floor((new Date-e)/1e3);if(a<60)return`${a}s`;if(a<3600)return`${Math.floor(a/60)}m ${a%60}s`;let s=Math.floor(a/3600),r=Math.floor(a%3600/60);return`${s}h ${r}m`}_isValidUrl(t){if(!t)return!1;try{let e=new URL(t);return e.protocol==="http:"||e.protocol==="https:"}catch{return!1}}_getStyles(){return`
5629
5629
  .app-status {
@@ -37,7 +37,7 @@
37
37
  |---------|--------------|-----------|-----------|------------|----------|-----------------|--------------|--------------|
38
38
  | **Code Review** | 3 blind reviewers + devil's advocate | Basic | Basic | BugBot PR | Property-based | Artifacts | Doc/Review | Basic |
39
39
  | **Anti-Sycophancy** | Yes (CONSENSAGENT) | No | No | No | No | No | No | No |
40
- | **Quality Gates** | 9 gates + PBT | Basic | Sandbox | Tests | Spec validation | Artifact checks | Tests | Permissions |
40
+ | **Quality Gates** | 11 gates + PBT | Basic | Sandbox | Tests | Spec validation | Artifact checks | Tests | Permissions |
41
41
  | **Constitutional AI** | Yes (principles) | No | Refusal training | No | No | No | No | No |
42
42
 
43
43
  ---
@@ -47,7 +47,7 @@
47
47
  | Feature | **Loki Mode** | **Devin** | **Codex** | **Cursor** | **Kiro** | **Antigravity** | **Amazon Q** | **OpenCode** |
48
48
  |---------|--------------|-----------|-----------|------------|----------|-----------------|--------------|--------------|
49
49
  | **Spec-First** | OpenAPI-first | Natural lang | Natural lang | Natural lang | requirements.md, design.md, tasks.md | Natural lang | Natural lang | AGENTS.md |
50
- | **PRD Support** | Native parsing | Ticket-based | Issue-based | No | Native specs | No | Issue-based | No |
50
+ | **Spec Support (PRD / issue / YAML)** | Native parsing across all three | Ticket-based | Issue-based | No | Native specs | No | Issue-based | No |
51
51
  | **Design Docs** | Auto-generates | No | No | No | Yes (design.md) | Artifacts | Yes | No |
52
52
 
53
53
  ---
@@ -207,7 +207,7 @@
207
207
  | **Skills** | Progressive disclosure | 6 slash commands | N/A | 129 skills | N/A | 35 skills | Memory focus |
208
208
  | **Multi-Provider** | Yes (Claude/Codex/Gemini) | 3 CLIs (separate) | No | No | No | No | No |
209
209
  | **Memory System** | 3-tier (episodic/semantic/procedural) | None | N/A | N/A | Hybrid | N/A | SQLite+FTS5 |
210
- | **Quality Gates** | 9 gates + Completion Council | User verify only | Two-Stage Review | N/A | Consensus | Tiered | N/A |
210
+ | **Quality Gates** | 11 gates + Completion Council | User verify only | Two-Stage Review | N/A | Consensus | Tiered | N/A |
211
211
  | **Context Mgmt** | Standard | Fresh per task (core innovation) | Fresh per task | N/A | N/A | N/A | Progressive |
212
212
  | **Autonomy** | High (minimal human) | Semi (checkpoints) | Human-guided | Human-guided | Orchestrated | Human-guided | N/A |
213
213
 
@@ -232,7 +232,7 @@ These are patterns from competing projects that are **practically and scientific
232
232
  |----------|---------|-------------------------|
233
233
  | **Multi-Provider Support** | Only skill supporting Claude, Codex, and Gemini with graceful degradation | All 8 competitors are Claude-only |
234
234
  | **RARV Cycle** | Reason-Act-Reflect-Verify is more rigorous than Plan-Execute | Most use simple Plan-Execute |
235
- | **9-Gate Quality System** | Static analysis + 3 reviewers + devil's advocate + anti-sycophancy + severity blocking + coverage + debate | Superpowers has 2-stage, others have less |
235
+ | **11-Gate Quality System** | Static analysis + 3 reviewers + devil's advocate + anti-sycophancy + severity blocking + coverage + debate + backward-compat (healing) + Phase 1 closure | Superpowers has 2-stage, others have less |
236
236
  | **Constitutional AI Integration** | Principles-based self-critique from Anthropic research | None have this |
237
237
  | **Anti-Sycophancy (CONSENSAGENT)** | Blind review + devil's advocate prevents groupthink | None have this |
238
238
  | **Provider Abstraction Layer** | Clean degradation from full-featured to sequential-only | Claude-only projects can't degrade |
@@ -342,7 +342,7 @@ Tiered agent architecture with explicit escalation:
342
342
 
343
343
  | Agent | Killer Feature |
344
344
  |-------|---------------|
345
- | **Loki Mode** | Minimal-human-intervention full SDLC, 41 agents in 8 swarms, Constitutional AI, anti-sycophancy, cross-project learning, code transformation, property-based testing |
345
+ | **Loki Mode** | Minimal-human-intervention full SDLC from any spec (PRD, GitHub issue, or YAML), 41 agents in 8 swarms, Constitutional AI, anti-sycophancy, cross-project learning, code transformation, property-based testing |
346
346
  | **Devin** | Full software engineer persona, Slack integration, 67% PR merge rate |
347
347
  | **OpenAI Codex** | Skills marketplace, $skill-creator, GPT-5.2-Codex, secure sandbox |
348
348
  | **Cursor** | 8 parallel agents, BugBot, Memories, $10B valuation, Composer model (250 tok/s) |
@@ -359,7 +359,7 @@ Tiered agent architecture with explicit escalation:
359
359
  |-----------|-------------------|
360
360
  | **Autonomy** | Designed for high autonomy with minimal human intervention |
361
361
  | **Multi-Agent** | 41 specialized agents in 8 swarms vs 1-8 in competitors |
362
- | **Quality** | 9 gates + blind review + devil's advocate + property-based testing |
362
+ | **Quality** | 11 gates + blind review + devil's advocate + property-based testing |
363
363
  | **Research** | 10+ academic papers integrated vs proprietary/undisclosed |
364
364
  | **Anti-Sycophancy** | Only agent with CONSENSAGENT-based blind review |
365
365
  | **Memory** | 3-tier memory (episodic/semantic/procedural) + review learning + cross-project |
@@ -2,7 +2,7 @@
2
2
 
3
3
  The flagship product of [Autonomi](https://www.autonomi.dev/). Complete installation instructions for all platforms and use cases.
4
4
 
5
- **Version:** v7.5.10
5
+ **Version:** v7.5.11
6
6
 
7
7
  ---
8
8
 
@@ -128,15 +128,25 @@ package, while `loki-mode-sdk` is the thin client.
128
128
 
129
129
  ## Quick Start
130
130
 
131
+ Drop a spec -- any artifact that describes what you want built -- and Loki
132
+ Mode takes it from spec to deployed app. Specs can be a markdown PRD, a
133
+ GitHub issue URL, or a YAML feature description.
134
+
131
135
  ```bash
132
- # CLI mode (works with any provider)
133
- loki start ./prd.md
134
- loki start ./prd.md --provider codex
135
- loki start ./prd.md --provider gemini
136
+ # CLI mode (works with any provider) -- spec as markdown PRD
137
+ loki start ./spec.md
138
+ loki start ./spec.md --provider codex
139
+ loki start ./spec.md --provider gemini
140
+
141
+ # Spec as a GitHub issue
142
+ loki start --github-issue https://github.com/owner/repo/issues/42
143
+
144
+ # Spec as a YAML feature description
145
+ loki start ./feature.yaml
136
146
 
137
147
  # Interactive mode (inside your coding agent)
138
148
  claude --dangerously-skip-permissions
139
- # Then say: "Loki Mode with PRD at ./my-prd.md"
149
+ # Then say: "Loki Mode with spec at ./my-spec.md"
140
150
  ```
141
151
 
142
152
  ---
@@ -198,11 +208,11 @@ Run Loki Mode in an isolated Docker container for enhanced security.
198
208
  ### Usage
199
209
 
200
210
  ```bash
201
- # Run in sandbox mode
202
- ./autonomy/sandbox.sh ./my-prd.md
211
+ # Run in sandbox mode (spec can be PRD, issue link, or YAML)
212
+ ./autonomy/sandbox.sh ./my-spec.md
203
213
 
204
214
  # With provider selection
205
- ./autonomy/sandbox.sh --provider codex ./my-prd.md
215
+ ./autonomy/sandbox.sh --provider codex ./my-spec.md
206
216
  ```
207
217
 
208
218
  ### Security Controls
@@ -213,10 +223,10 @@ By default, prompt injection is **disabled** for enterprise safety:
213
223
 
214
224
  ```bash
215
225
  # Default: prompt injection disabled
216
- ./autonomy/run.sh ./my-prd.md
226
+ ./autonomy/run.sh ./my-spec.md
217
227
 
218
228
  # Opt-in to enable prompt injection
219
- LOKI_PROMPT_INJECTION_ENABLED=true ./autonomy/run.sh ./my-prd.md
229
+ LOKI_PROMPT_INJECTION_ENABLED=true ./autonomy/run.sh ./my-spec.md
220
230
  ```
221
231
 
222
232
  #### Human Input Security
@@ -228,7 +238,7 @@ The `HUMAN_INPUT.md` file has security controls:
228
238
 
229
239
  ### When to Use Sandbox Mode
230
240
 
231
- - Running untrusted PRD files
241
+ - Running untrusted spec files (PRD, issue export, YAML)
232
242
  - Enterprise environments with strict security requirements
233
243
  - Automated CI/CD pipelines
234
244
  - Multi-tenant deployments
@@ -272,13 +282,13 @@ Use the `--provider` flag when invoking Loki Mode:
272
282
 
273
283
  ```bash
274
284
  # Use Claude (default)
275
- loki start ./my-prd.md --provider claude
285
+ loki start ./my-spec.md --provider claude
276
286
 
277
287
  # Use OpenAI Codex
278
- loki start ./my-prd.md --provider codex
288
+ loki start ./my-spec.md --provider codex
279
289
 
280
290
  # Use Google Gemini
281
- loki start ./my-prd.md --provider gemini
291
+ loki start ./my-spec.md --provider gemini
282
292
  ```
283
293
 
284
294
  #### Docker
@@ -289,12 +299,12 @@ Pass the provider as an environment variable:
289
299
  # Use Codex with Docker
290
300
  docker run -e LOKI_PROVIDER=codex \
291
301
  -v $(pwd):/workspace -w /workspace \
292
- asklokesh/loki-mode:latest start ./my-prd.md
302
+ asklokesh/loki-mode:latest start ./my-spec.md
293
303
 
294
304
  # Use Gemini with Docker
295
305
  docker run -e LOKI_PROVIDER=gemini \
296
306
  -v $(pwd):/workspace -w /workspace \
297
- asklokesh/loki-mode:latest start ./my-prd.md
307
+ asklokesh/loki-mode:latest start ./my-spec.md
298
308
  ```
299
309
 
300
310
  ### Degraded Mode
@@ -445,7 +455,7 @@ description: Multi-Agent Autonomous Startup System
445
455
 
446
456
  1. Start a new conversation
447
457
  2. Type: `Loki Mode`
448
- 3. Claude should recognize the skill and ask for a PRD
458
+ 3. Claude should recognize the skill and ask for a spec (PRD, GitHub issue link, or YAML)
449
459
 
450
460
  ### For API Console
451
461
 
@@ -475,7 +485,7 @@ loki-mode/
475
485
  ├── autonomy/ # Autonomous runner (CLI only)
476
486
  │ ├── run.sh
477
487
  │ └── README.md
478
- ├── templates/ # 22 PRD templates for project scaffolding
488
+ ├── templates/ # 22 spec templates (PRD-style) for project scaffolding
479
489
  │ ├── simple-todo-app.md
480
490
  │ ├── api-only.md
481
491
  │ ├── static-landing-page.md
@@ -628,7 +638,7 @@ The completion scripts support:
628
638
  * **Smart Context**
629
639
 
630
640
  * `loki start --provider <TAB>` shows only installed providers (`claude`, `codex`, `gemini`).
631
- * `loki start <TAB>` defaults to file completion for PRD templates.
641
+ * `loki start <TAB>` defaults to file completion for spec files (PRD templates, YAML).
632
642
 
633
643
  * **Nested Commands**
634
644
  Handles specific subcommands for `council`, `memory`, `config`, `audit`, `metrics`, `watchdog`, and `secrets`.
@@ -797,9 +807,9 @@ After installation:
797
807
  cd my-app
798
808
  ```
799
809
 
800
- 3. **Start Building:** Launch autonomous development
810
+ 3. **Start Building:** Launch autonomous development from any spec (PRD, GitHub issue, or YAML)
801
811
  ```bash
802
- loki start prd.md
812
+ loki start spec.md
803
813
  ```
804
814
 
805
815
  4. **Read Documentation:** Check out [README.md](../README.md) for usage guides
@@ -11,10 +11,10 @@
11
11
  |-----------|--------|-----------|--------|
12
12
  | **Proven Scale** | 1M+ LoC, large agent count | Benchmarks only | Cursor |
13
13
  | **Research Foundation** | Empirical iteration | 25+ academic citations | Loki Mode |
14
- | **Quality Assurance** | Workers self-manage | 9-gate system + anti-sycophancy | Loki Mode |
14
+ | **Quality Assurance** | Workers self-manage | 11-gate system + anti-sycophancy | Loki Mode |
15
15
  | **Anti-Sycophancy** | Not mentioned | CONSENSAGENT blind review | Loki Mode |
16
16
  | **Velocity-Quality Balance** | Not mentioned | arXiv-backed metrics | Loki Mode |
17
- | **Full SDLC Coverage** | Code generation focus | PRD to production + growth | Loki Mode |
17
+ | **Full SDLC Coverage** | Code generation focus | Spec (PRD/issue/YAML) to production + growth | Loki Mode |
18
18
  | **Memory Systems** | Not detailed | Episodic/semantic/procedural | Loki Mode |
19
19
  | **Scale Patterns** | Battle-tested | Now incorporated (v3.3.0) | Tie |
20
20
 
@@ -66,7 +66,7 @@ velocity_quality_balance:
66
66
 
67
67
  ---
68
68
 
69
- ### 3. 9-Gate Quality System
69
+ ### 3. 11-Gate Quality System
70
70
 
71
71
  **Loki Mode's Gates:**
72
72
  1. Input Guardrails - Validate scope, detect injection (OpenAI SDK pattern)
@@ -174,7 +174,7 @@ Cursor learned through failure:
174
174
  ### 3. Simplicity Principle
175
175
  > "A surprising amount of the system's behavior comes down to how we prompt the agents. The harness and models matter, but the prompts matter more."
176
176
 
177
- **Loki Mode:** More complex infrastructure (9 gates, 41 agent types, memory systems). May be over-engineered for some use cases.
177
+ **Loki Mode:** More elaborate infrastructure (11 gates, 41 agent types, memory systems). May be over-engineered for some use cases.
178
178
 
179
179
  ---
180
180
 
@@ -192,10 +192,10 @@ We incorporated Cursor's proven patterns:
192
192
  ## Conclusion
193
193
 
194
194
  **Loki Mode is scientifically better in:**
195
- - Quality assurance (research-backed 9-gate system)
195
+ - Quality assurance (research-backed 11-gate system)
196
196
  - Anti-sycophancy (CONSENSAGENT blind review)
197
197
  - Velocity-quality balance (arXiv metrics)
198
- - Full SDLC coverage (PRD to growth)
198
+ - Full SDLC coverage (spec to growth -- PRD, GitHub issue, or YAML)
199
199
  - Memory architecture (episodic/semantic/procedural)
200
200
 
201
201
  **Cursor is operationally better in:**
@@ -423,7 +423,7 @@ Subcommands:
423
423
 
424
424
  This command is invoked by autonomy/run.sh between iterations. Users
425
425
  should not run it directly -- run \`loki start\` instead.
426
- `,T5;var $6=w(()=>{m();T1();T5=c1});m();import{readFileSync as U6}from"fs";import{resolve as q6,dirname as H6}from"path";import{fileURLToPath as G6}from"url";var o=null;function r1(){if(o!==null)return o;let $="7.5.10";if(typeof $==="string"&&$.length>0)return o=$,o;try{let Q=H6(G6(import.meta.url)),z=E1(Q);o=U6(q6(z,"VERSION"),"utf-8").trim()}catch{o="unknown"}return o}function s1(){return process.stdout.write(`Loki Mode v${r1()}
426
+ `,T5;var $6=w(()=>{m();T1();T5=c1});m();import{readFileSync as U6}from"fs";import{resolve as q6,dirname as H6}from"path";import{fileURLToPath as G6}from"url";var o=null;function r1(){if(o!==null)return o;let $="7.5.11";if(typeof $==="string"&&$.length>0)return o=$,o;try{let Q=H6(G6(import.meta.url)),z=E1(Q);o=U6(q6(z,"VERSION"),"utf-8").trim()}catch{o="unknown"}return o}function s1(){return process.stdout.write(`Loki Mode v${r1()}
427
427
  `),0}p();n();m();import{readFileSync as A6,existsSync as T6}from"fs";import{resolve as O6}from"path";var j6=["claude","codex","gemini","cline","aider"];function i1(){let $=O6(P(),"state","provider");if(!T6($))return"";try{return A6($,"utf-8").trim()}catch{return""}}function _6($,Q){return $||Q||process.env.LOKI_PROVIDER||"claude"}function I6($){let Q=i1(),z=_6($,Q);switch(process.stdout.write(`${D}Current Provider${W}
428
428
  `),process.stdout.write(`
429
429
  `),process.stdout.write(`${A}Provider:${W} ${z}
@@ -506,4 +506,4 @@ Set LOKI_LEGACY_BASH=1 to force the bash CLI for every command.
506
506
  `),2}default:return process.stderr.write(`Unknown command: ${Q}
507
507
  `),process.stderr.write(z6),2}}process.on("SIGINT",()=>process.exit(130));process.on("SIGTERM",()=>process.exit(143));var _5=await j5(Bun.argv.slice(2));process.exit(_5);
508
508
 
509
- //# debugId=70EC2B659E43E8E764756E2164756E21
509
+ //# debugId=8438E5E6200ECBFA64756E2164756E21
package/mcp/__init__.py CHANGED
@@ -57,4 +57,4 @@ try:
57
57
  except ImportError:
58
58
  __all__ = ['mcp']
59
59
 
60
- __version__ = '7.5.10'
60
+ __version__ = '7.5.11'
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "loki-mode",
3
- "version": "7.5.10",
4
- "description": "Loki Mode by Autonomi - Multi-agent autonomous startup system for Claude Code, Codex CLI, and Gemini CLI",
3
+ "version": "7.5.11",
4
+ "description": "Loki Mode by Autonomi. Multi-agent autonomous SDLC framework. Spec to deployed app: PRD, GitHub issue, OpenAPI/JSON/YAML, or one-line brief. 5 AI providers (Claude Code, OpenAI Codex, Google Gemini, Cline, Aider). 11 quality gates.",
5
5
  "keywords": [
6
6
  "agent",
7
7
  "agent-orchestration",