loki-mode 7.45.1 → 7.47.0
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 +16 -12
- package/SKILL.md +5 -5
- package/VERSION +1 -1
- package/autonomy/CONSTITUTION.md +9 -2
- package/autonomy/completion-council.sh +113 -0
- package/autonomy/lib/sentrux-gate.sh +1 -1
- package/autonomy/loki +2 -2
- package/autonomy/run.sh +445 -96
- package/autonomy/spec-interrogation.sh +549 -0
- package/dashboard/__init__.py +1 -1
- package/dashboard/auth.py +117 -2
- package/dashboard/server.py +9 -10
- package/docs/ACKNOWLEDGEMENTS.md +1 -1
- package/docs/COMPARISON.md +10 -10
- package/docs/COMPETITIVE-ANALYSIS.md +2 -2
- package/docs/INSTALLATION.md +2 -2
- package/docs/OPEN-CORE-BOUNDARY.md +6 -5
- package/docs/P0-SWEEP-PLAN.md +163 -0
- package/docs/P2-SPEC-ROBUSTNESS-PLAN.md +192 -0
- package/docs/R9-OPEN-CORE-HOOKS-PLAN.md +2 -2
- package/docs/architecture/STATE-MACHINES.md +18 -19
- package/docs/architecture/bmad-loki-voice-agent-council-analysis.md +1 -1
- package/docs/auto-claude-comparison.md +16 -13
- package/docs/certification/01-core-concepts/lesson.md +12 -11
- package/docs/certification/01-core-concepts/quiz.md +6 -6
- package/docs/certification/05-troubleshooting/lesson.md +23 -13
- package/docs/certification/05-troubleshooting/quiz.md +3 -3
- package/docs/certification/README.md +1 -1
- package/docs/certification/answer-key.md +2 -2
- package/docs/certification/certification-exam.md +9 -9
- package/docs/competitive/bolt-new-analysis.md +2 -2
- package/docs/competitive/emergence-others-analysis.md +14 -14
- package/docs/competitive/replit-lovable-analysis.md +7 -7
- package/docs/cursor-comparison.md +15 -12
- package/docs/dashboard-guide.md +9 -7
- package/docs/enterprise/security.md +43 -3
- package/docs/prd-purple-lab-platform-v2.md +1 -1
- package/docs/prd-purple-lab-platform.md +3 -3
- package/docs/show-hn-post.md +3 -3
- package/loki-ts/dist/loki.js +2 -2
- package/mcp/__init__.py +1 -1
- package/package.json +2 -2
- package/plugins/loki-mode/.claude-plugin/plugin.json +2 -2
- package/plugins/loki-mode/README.md +1 -1
- package/references/magic-rarv-integration.md +1 -1
- package/references/quality-control.md +5 -5
- package/references/sdlc-phases.md +1 -2
- package/skills/00-index.md +1 -1
- package/skills/artifacts.md +1 -1
- package/skills/healing.md +1 -1
- package/skills/magic-modules.md +3 -3
- package/skills/quality-gates.md +52 -39
- package/skills/testing.md +1 -1
- package/web-app/dist/assets/{AdminPage-CKUOsWZW.js → AdminPage-CcCJ0Sjt.js} +1 -1
- package/web-app/dist/assets/{Avatar-CL9Id9Hi.js → Avatar-DK8kmayw.js} +1 -1
- package/web-app/dist/assets/{Badge-B12zwlD7.js → Badge-4uAWnemi.js} +1 -1
- package/web-app/dist/assets/{Button-CFLVoduT.js → Button-BBMk33tk.js} +1 -1
- package/web-app/dist/assets/ComparePage-bt9rwvST.js +1 -0
- package/web-app/dist/assets/{GitHubIssuesPanel-CSitxtAX.js → GitHubIssuesPanel-WDbH47UM.js} +1 -1
- package/web-app/dist/assets/{GitHubPRsPanel-BIT06FRo.js → GitHubPRsPanel-C2CiYtTx.js} +1 -1
- package/web-app/dist/assets/{HomePage-pU_0fGny.js → HomePage-BQk-MUjn.js} +4 -4
- package/web-app/dist/assets/{LoginPage-DTZtt2Yb.js → LoginPage-DMOZVGGL.js} +1 -1
- package/web-app/dist/assets/{MagicPage-10zfra8o.js → MagicPage-Bzp2Nt1z.js} +1 -1
- package/web-app/dist/assets/{MetricsPage-C-wiKUkv.js → MetricsPage-C39JVdsw.js} +1 -1
- package/web-app/dist/assets/{NotFoundPage-BDkcmhYe.js → NotFoundPage-6vT_U9UL.js} +1 -1
- package/web-app/dist/assets/{ProjectPage-CiCavQ8n.js → ProjectPage-BfFcZp-E.js} +3 -3
- package/web-app/dist/assets/{ProjectsPage-BLCXQwwC.js → ProjectsPage-CPMBf8Wt.js} +1 -1
- package/web-app/dist/assets/{SettingsPage-PkxtaMyg.js → SettingsPage-BnNN6ETl.js} +1 -1
- package/web-app/dist/assets/{ShowcasePage-iECp8Tha.js → ShowcasePage-WDrMf-cx.js} +1 -1
- package/web-app/dist/assets/{SystemSettingsPage-DS6Anno1.js → SystemSettingsPage-DX4jb2e8.js} +1 -1
- package/web-app/dist/assets/{TeamsPage-ls6h6bNL.js → TeamsPage-BCfqcXzu.js} +1 -1
- package/web-app/dist/assets/{TemplatesPage-Bk0QzlPt.js → TemplatesPage-CZvmimDj.js} +1 -1
- package/web-app/dist/assets/{TerminalOutput-4-1hWCtZ.js → TerminalOutput-BlRqFwWV.js} +1 -1
- package/web-app/dist/assets/{activity-DH3ih2nS.js → activity-CacZsUyr.js} +1 -1
- package/web-app/dist/assets/{bell-Gn17S6uv.js → bell-DK2qtHnk.js} +1 -1
- package/web-app/dist/assets/{bot-Cbycc3VE.js → bot-CkcUtHad.js} +1 -1
- package/web-app/dist/assets/{check-nIAqa-kf.js → check-CbCPjX3M.js} +1 -1
- package/web-app/dist/assets/{chevron-left-D2jcWDll.js → chevron-left-5NUKWw3i.js} +1 -1
- package/web-app/dist/assets/{circle-alert-CpL4Bhvt.js → circle-alert-S7uFoxC2.js} +1 -1
- package/web-app/dist/assets/{clock-IW4Wq86N.js → clock-CaQRrIrs.js} +1 -1
- package/web-app/dist/assets/{cloud-Cn8nNuH2.js → cloud-DBAX6c0r.js} +1 -1
- package/web-app/dist/assets/{code-xml-BiJBteXf.js → code-xml-De5-EXv3.js} +1 -1
- package/web-app/dist/assets/{copy-CnqkyNsi.js → copy-CUkT6k1v.js} +1 -1
- package/web-app/dist/assets/{database-CKSReqa5.js → database-BAWf1Gwt.js} +1 -1
- package/web-app/dist/assets/{dollar-sign-CDzDY64R.js → dollar-sign-Ji8zk86R.js} +1 -1
- package/web-app/dist/assets/{file-code-corner-Box4IwG1.js → file-code-corner-ChtXoBwS.js} +1 -1
- package/web-app/dist/assets/{file-plus-DpGqlXF8.js → file-plus-bFa37P76.js} +1 -1
- package/web-app/dist/assets/{folder-open-B57dAoBv.js → folder-open-DhXpXscO.js} +1 -1
- package/web-app/dist/assets/{git-commit-horizontal-BVbucmO5.js → git-commit-horizontal-DVPeDQ3j.js} +1 -1
- package/web-app/dist/assets/{globe-BkOnKl4x.js → globe-BPZgPeeu.js} +1 -1
- package/web-app/dist/assets/{hammer-DRbIQ4QU.js → hammer-jLCaujYH.js} +1 -1
- package/web-app/dist/assets/{index-CM_b_EhP.js → index-B-0iHBPO.js} +2 -2
- package/web-app/dist/assets/{layers-B78BiFiU.js → layers-B1vsrsFW.js} +1 -1
- package/web-app/dist/assets/{lightbulb-B-Itbm9g.js → lightbulb-C-uLoq9Y.js} +1 -1
- package/web-app/dist/assets/{loader-circle-Oq6NQhW2.js → loader-circle-JTfD-ZuM.js} +1 -1
- package/web-app/dist/assets/{lock-DbJ9zxbw.js → lock-G9rxD4gZ.js} +1 -1
- package/web-app/dist/assets/{mail-CzMRod6m.js → mail-BJ0PTN_V.js} +1 -1
- package/web-app/dist/assets/{package-WZ5osvej.js → package-CXClfLOO.js} +1 -1
- package/web-app/dist/assets/{plus-j08lFR-K.js → plus-EoL5OCB7.js} +1 -1
- package/web-app/dist/assets/{refresh-cw-CIr7E-g2.js → refresh-cw-BjREUnVq.js} +1 -1
- package/web-app/dist/assets/{rotate-ccw-gwoXxDeE.js → rotate-ccw-DahWX07H.js} +1 -1
- package/web-app/dist/assets/{save-B8fV_ZpE.js → save-Dek3gCn1.js} +1 -1
- package/web-app/dist/assets/{server-D5dO1paz.js → server-D6V1BAia.js} +1 -1
- package/web-app/dist/assets/{shield-alert-Du08zhdg.js → shield-alert-BtTK5Sxb.js} +1 -1
- package/web-app/dist/assets/{trash-2-DEKSVae5.js → trash-2-BT5o_g0r.js} +1 -1
- package/web-app/dist/assets/{trending-down-DBiXUtxJ.js → trending-down-D4Jk7KF3.js} +1 -1
- package/web-app/dist/assets/{trending-up-BgmK_tHq.js → trending-up-EQFTzhEo.js} +1 -1
- package/web-app/dist/assets/{upload-IaViyeVD.js → upload-JfI5lCSE.js} +1 -1
- package/web-app/dist/assets/{usePolling-PiRLqNu6.js → usePolling-BnhPUuGd.js} +1 -1
- package/web-app/dist/assets/{user-BB5J8wAF.js → user-DSUiUYtj.js} +1 -1
- package/web-app/dist/index.html +1 -1
- package/web-app/dist/assets/ComparePage-Dg0UdZAk.js +0 -1
|
@@ -280,13 +280,13 @@ Developers who value open-source tooling, speed, and terminal-native workflows.
|
|
|
280
280
|
| Feature | Emergence AI (Agent-E) | Rork | Claude Code CLI | Codex CLI | Loki Mode |
|
|
281
281
|
|---------|:---------------------:|:----:|:--------------:|:---------:|:---------:|
|
|
282
282
|
| **Primary Focus** | Web automation | Mobile apps | Coding assistant | Coding assistant | PRD-to-deploy |
|
|
283
|
-
| **Open Source** | Partial (Agent-E only) | No | Source-available | Yes (Apache-2.0) |
|
|
283
|
+
| **Open Source / Source model** | Partial (Agent-E only) | No | Source-available | Yes (Apache-2.0) | Source-available (BUSL-1.1) |
|
|
284
284
|
| **Multi-Provider** | Yes (OpenAI, Azure, Ollama) | Yes (Gemini, Claude) | Partial (Claude models via Bedrock/Vertex/Foundry) | No (GPT only) | Yes (5 providers, 3+ model families) |
|
|
285
285
|
| **Multi-Agent** | Yes (2-agent model) | No | Yes (coordinated teams) | Yes (experimental) | Yes (41 agent types) |
|
|
286
286
|
| **Autonomous Iteration** | No (task-level) | No | Partial (/loop, /schedule) | No (requires prompting) | Yes (RARV loop + completion council) |
|
|
287
287
|
| **SDLC Pipeline** | No | No | No | No | Yes (9 phases) |
|
|
288
288
|
| **Code Review** | No | No | Yes (single-pass) | Yes (single-pass) | Yes (3-reviewer blind) |
|
|
289
|
-
| **Quality Gates** | No | No | No | No | Yes (
|
|
289
|
+
| **Quality Gates** | No | No | No | No | Yes (8 gates) |
|
|
290
290
|
| **Anti-Sycophancy** | No | No | No | No | Yes (devil's advocate) |
|
|
291
291
|
| **Memory System** | Enterprise only | No | CLAUDE.md + auto-memory | Session resumption | Episodic/semantic/procedural |
|
|
292
292
|
| **Self-Hosted** | Partial (Agent-E) | No | Partial (CLI local, but subscription or API required) | Yes (with API key) | Yes (fully, any provider API key) |
|
|
@@ -383,10 +383,10 @@ Claude Code and Codex CLI offer single-pass code review. Neither provides:
|
|
|
383
383
|
- 3-reviewer blind parallel review
|
|
384
384
|
- Anti-sycophancy checks (devil's advocate on unanimous approval)
|
|
385
385
|
- Severity-based blocking gates
|
|
386
|
-
- Test
|
|
386
|
+
- Test suite enforcement (100% pass; coverage % not measured this release)
|
|
387
387
|
- Static analysis integration (CodeQL, ESLint)
|
|
388
388
|
|
|
389
|
-
**Opportunity:** Loki Mode's
|
|
389
|
+
**Opportunity:** Loki Mode's 8-gate quality system provides enterprise-grade assurance that no competitor matches.
|
|
390
390
|
|
|
391
391
|
### Gap 4: No Persistent Cross-Project Learning
|
|
392
392
|
|
|
@@ -433,7 +433,7 @@ Rork generates mobile apps but cannot handle backends, APIs, or infrastructure.
|
|
|
433
433
|
This positioning highlights three unique capabilities no competitor offers together:
|
|
434
434
|
1. **Autonomous SDLC** (not just coding assistance)
|
|
435
435
|
2. **Multi-provider** (not locked to one vendor)
|
|
436
|
-
3. **Quality-assured** (
|
|
436
|
+
3. **Quality-assured** (8-gate system, 3-reviewer blind review)
|
|
437
437
|
|
|
438
438
|
### Differentiation by Competitor
|
|
439
439
|
|
|
@@ -443,7 +443,7 @@ This positioning highlights three unique capabilities no competitor offers toget
|
|
|
443
443
|
| Autonomy | Semi-autonomous (/loop, /schedule, but no SDLC orchestration) | Fully autonomous (RARV loop + completion council) |
|
|
444
444
|
| Scope | Individual coding tasks, PR reviews | Full SDLC pipeline (9 phases) |
|
|
445
445
|
| Providers | Claude models only (multi-cloud hosting) | 5 providers, 3+ model families |
|
|
446
|
-
| Quality | Single-pass review, GitHub Action |
|
|
446
|
+
| Quality | Single-pass review, GitHub Action | 8-gate, 3-reviewer blind system, anti-sycophancy |
|
|
447
447
|
| Memory | CLAUDE.md + auto-memory (session-scoped) | Episodic/semantic/procedural (cross-project) |
|
|
448
448
|
| Cost model | Subscription with rate limits or API | Self-hosted, pay-per-token, any provider |
|
|
449
449
|
| IDE/surface | Terminal, VS Code, JetBrains, Desktop, Web | Terminal, VS Code (via extension) |
|
|
@@ -454,11 +454,11 @@ This positioning highlights three unique capabilities no competitor offers toget
|
|
|
454
454
|
| Dimension | Codex CLI | Loki Mode |
|
|
455
455
|
|-----------|-----------|-----------|
|
|
456
456
|
| Autonomy | Assisted (human prompts each task) | Fully autonomous |
|
|
457
|
-
|
|
|
457
|
+
| Source model | Open source (Apache-2.0) | Source-available (BUSL-1.1) |
|
|
458
458
|
| Speed | 240+ tokens/sec | Depends on provider |
|
|
459
459
|
| Providers | OpenAI only | 5 providers |
|
|
460
460
|
| Multi-agent | Experimental (isolated) | 41 agent types, 8 domains |
|
|
461
|
-
| Quality | Single-pass review |
|
|
461
|
+
| Quality | Single-pass review | 8-gate system |
|
|
462
462
|
| **Loki Mode advantage:** | Autonomous pipeline, multi-provider, mature multi-agent |
|
|
463
463
|
|
|
464
464
|
#### vs. Emergence AI
|
|
@@ -467,15 +467,15 @@ This positioning highlights three unique capabilities no competitor offers toget
|
|
|
467
467
|
| Focus | Web/workflow automation | Software development |
|
|
468
468
|
| Pricing | Enterprise contracts | Free + API costs |
|
|
469
469
|
| Self-hosted | VPC option | Fully self-hosted |
|
|
470
|
-
|
|
|
471
|
-
| **Loki Mode advantage:** | Purpose-built for software,
|
|
470
|
+
| Source-available | Partial | Yes (BUSL-1.1) |
|
|
471
|
+
| **Loki Mode advantage:** | Purpose-built for software, source-available, accessible pricing |
|
|
472
472
|
|
|
473
473
|
#### vs. Rork
|
|
474
474
|
| Dimension | Rork | Loki Mode |
|
|
475
475
|
|-----------|------|-----------|
|
|
476
476
|
| Focus | Mobile apps (no-code) | Full-stack software |
|
|
477
477
|
| Target user | Non-technical | Developers + technical teams |
|
|
478
|
-
| Quality | No testing/review |
|
|
478
|
+
| Quality | No testing/review | 8-gate quality system |
|
|
479
479
|
| Output | Mobile app only | Any software type |
|
|
480
480
|
| **Loki Mode advantage:** | Developer-grade, full-stack, quality-assured |
|
|
481
481
|
|
|
@@ -485,7 +485,7 @@ This positioning highlights three unique capabilities no competitor offers toget
|
|
|
485
485
|
"You already use AI for coding. Loki Mode makes it autonomous -- give it a PRD, and it handles planning, implementation, testing, code review, and deployment. Keep using Claude or Codex under the hood."
|
|
486
486
|
|
|
487
487
|
**For engineering leaders evaluating AI tooling:**
|
|
488
|
-
"Loki Mode is the only
|
|
488
|
+
"Loki Mode is the only source-available system with enterprise-grade quality gates (8 gates, 3-reviewer blind review, anti-sycophancy checks) that runs autonomously on any AI provider. Self-hosted, no vendor lock-in."
|
|
489
489
|
|
|
490
490
|
**For startups and solo developers:**
|
|
491
491
|
"Go from idea to deployed product overnight. Write a PRD, invoke Loki Mode, and let it build, test, and deploy while you sleep. Works with your existing Claude or OpenAI API key."
|
|
@@ -557,8 +557,8 @@ The most significant near-term competitive threat is Anthropic's Agent SDK (http
|
|
|
557
557
|
|
|
558
558
|
**However, Loki Mode's structural advantages remain:**
|
|
559
559
|
1. **Multi-provider:** Agent SDK is Claude-only. Loki Mode works with any provider.
|
|
560
|
-
2. **Battle-tested pipeline:**
|
|
561
|
-
3. **
|
|
560
|
+
2. **Battle-tested pipeline:** 8 quality gates, completion council, healing, memory -- these took months to build and validate. A new Agent SDK project starts from zero.
|
|
561
|
+
3. **Source-available and self-hosted:** No dependency on Anthropic's platform decisions.
|
|
562
562
|
4. **Research foundation:** Built on patterns from OpenAI, DeepMind, Anthropic, and academic research. Not just engineering, but applied AI safety research (Constitutional AI, anti-sycophancy, alignment faking detection).
|
|
563
563
|
|
|
564
564
|
---
|
|
@@ -26,8 +26,8 @@ Replit and Lovable represent two dominant players in the "vibe coding" / AI app
|
|
|
26
26
|
|
|
27
27
|
| Metric | Replit | Lovable | Loki Mode |
|
|
28
28
|
|--------|--------|---------|-----------|
|
|
29
|
-
| Valuation | $9B (Mar 2026) | $6.6B (Dec 2025) |
|
|
30
|
-
| ARR | $265M+ (targeting $1B) | $400M+ (Feb 2026) | N/A (
|
|
29
|
+
| Valuation | $9B (Mar 2026) | $6.6B (Dec 2025) | Source-available (BUSL-1.1) |
|
|
30
|
+
| ARR | $265M+ (targeting $1B) | $400M+ (Feb 2026) | N/A (source-available) |
|
|
31
31
|
| Users | 50M+ registered | 8M+ users | Developer community |
|
|
32
32
|
| Total Funding | $650M+ | $653M | $0 |
|
|
33
33
|
| Employees | ~1,000+ | ~817 | Solo maintainer |
|
|
@@ -316,7 +316,7 @@ Replit Agent has evolved rapidly through four major versions:
|
|
|
316
316
|
| Self-testing loop | Yes | No | Yes (RARV cycle) |
|
|
317
317
|
| Code review | No | No | Yes (3-reviewer blind review) |
|
|
318
318
|
| Anti-sycophancy | No | No | Yes (devil's advocate) |
|
|
319
|
-
| Quality gates | No | Security scan only |
|
|
319
|
+
| Quality gates | No | Security scan only | 8 gates |
|
|
320
320
|
| Memory system | No | Project knowledge | Episodic/semantic/procedural |
|
|
321
321
|
| Model selection | Platform-chosen | Platform-chosen | Task-aware (Opus/Sonnet/Haiku) |
|
|
322
322
|
| Multi-provider support | No (Replit only) | No (Lovable only) | Yes (Claude/Codex/Gemini/Cline/Aider) |
|
|
@@ -376,7 +376,7 @@ Replit Agent has evolved rapidly through four major versions:
|
|
|
376
376
|
|
|
377
377
|
| Metric | Replit Agent | Lovable.dev | Loki Mode |
|
|
378
378
|
|--------|:-----------:|:-----------:|:---------:|
|
|
379
|
-
| Free tier | Yes (limited) | Yes (30 credits/mo) | Yes (
|
|
379
|
+
| Free tier | Yes (limited) | Yes (30 credits/mo) | Yes (source-available, free to self-host) |
|
|
380
380
|
| Entry paid | $20/mo (Core) | $25/mo (Pro) | $0 (bring your own API key) |
|
|
381
381
|
| Team plan | $100/mo (Pro) | $50/mo (Business) | $0 |
|
|
382
382
|
| Cost model | Effort-based credits | Per-prompt credits | API key costs only |
|
|
@@ -393,7 +393,7 @@ Loki Mode operates as a true autonomous engineering system, not a prompt-respons
|
|
|
393
393
|
|
|
394
394
|
### 2. Quality Assurance
|
|
395
395
|
|
|
396
|
-
Loki Mode's
|
|
396
|
+
Loki Mode's 8-gate quality system (static analysis, test suite (pass/fail), blind 3-reviewer review with severity blocking, anti-sycophancy Devil's Advocate, mock-integrity, test-mutation, documentation coverage, Magic Modules debate; backward-compatibility is a conditional healing-mode auditor) has no equivalent in either platform. Replit and Lovable have zero code review, zero anti-sycophancy, and minimal quality gates. This is Loki Mode's strongest differentiator.
|
|
397
397
|
|
|
398
398
|
### 3. Multi-Provider and Multi-Model Intelligence
|
|
399
399
|
|
|
@@ -531,7 +531,7 @@ Replit now supports React Native/Expo with full backend and RevenueCat monetizat
|
|
|
531
531
|
When positioning Loki Mode against Replit and Lovable, emphasize:
|
|
532
532
|
|
|
533
533
|
1. **"No credit anxiety"** -- You pay your API provider directly. No surprise bills. No credits burned on AI mistakes.
|
|
534
|
-
2. **"Production quality, not prototype quality"** --
|
|
534
|
+
2. **"Production quality, not prototype quality"** -- 8 quality gates, 3-reviewer blind review, anti-sycophancy. Your code ships to production, not to a rewrite backlog.
|
|
535
535
|
3. **"No lock-in"** -- Your code. Your infrastructure. Your choice of AI provider. Export is not a feature -- it is the default.
|
|
536
536
|
4. **"Autonomous, not assistive"** -- Loki Mode does not wait for your next prompt. It plans, builds, tests, reviews, and deploys. You review the output, not babysit the process.
|
|
537
537
|
5. **"Works with your codebase"** -- Legacy systems, brownfield projects, enterprise code. Not just greenfield MVPs.
|
|
@@ -585,7 +585,7 @@ The term "vibe coding" (coined by Andrej Karpathy) has driven explosive growth i
|
|
|
585
585
|
|
|
586
586
|
**Medium-term (12 months):** Moderate threat -- as Replit/Lovable improve production quality and add enterprise features, they will attract more professional developers. Loki Mode must ship deployment, dashboard, and Figma integration.
|
|
587
587
|
|
|
588
|
-
**Long-term (24 months):** High convergence risk -- all platforms will trend toward autonomous, production-grade, multi-agent systems. Loki Mode's quality gates, memory system, and brownfield support will be critical differentiators. The
|
|
588
|
+
**Long-term (24 months):** High convergence risk -- all platforms will trend toward autonomous, production-grade, multi-agent systems. Loki Mode's quality gates, memory system, and brownfield support will be critical differentiators. The source-available, self-hostable model is an enduring advantage if the community grows.
|
|
589
589
|
|
|
590
590
|
---
|
|
591
591
|
|
|
@@ -11,7 +11,7 @@
|
|
|
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 |
|
|
14
|
+
| **Quality Assurance** | Workers self-manage | 8-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
17
|
| **Full SDLC Coverage** | Code generation focus | Spec (PRD/issue/YAML) to production + growth | Loki Mode |
|
|
@@ -57,7 +57,7 @@ velocity_quality_balance:
|
|
|
57
57
|
|
|
58
58
|
thresholds:
|
|
59
59
|
max_new_warnings: 0 # Zero tolerance
|
|
60
|
-
|
|
60
|
+
coverage_target: 80% # Target only; coverage % not measured this release
|
|
61
61
|
```
|
|
62
62
|
|
|
63
63
|
**Research Basis:** [arXiv 2511.04427v2](https://arxiv.org/abs/2511.04427) - Empirical study of 807 repositories
|
|
@@ -66,16 +66,19 @@ velocity_quality_balance:
|
|
|
66
66
|
|
|
67
67
|
---
|
|
68
68
|
|
|
69
|
-
### 3.
|
|
69
|
+
### 3. 8-Gate Quality System
|
|
70
70
|
|
|
71
71
|
**Loki Mode's Gates:**
|
|
72
|
-
1.
|
|
73
|
-
2.
|
|
74
|
-
3. Blind Review
|
|
75
|
-
4. Anti-Sycophancy
|
|
76
|
-
5.
|
|
77
|
-
6.
|
|
78
|
-
7.
|
|
72
|
+
1. Static Analysis - CodeQL, ESLint, type checking
|
|
73
|
+
2. Test Suite (pass/fail) - red blocks; coverage % not measured this release
|
|
74
|
+
3. Blind Code Review - 3 parallel reviewers + severity blocking (Critical/High = BLOCK; Medium/Low advisory)
|
|
75
|
+
4. Anti-Sycophancy / Devil's Advocate - on unanimous PASS
|
|
76
|
+
5. Mock Integrity Detector - HIGH blocks
|
|
77
|
+
6. Test Mutation Detector - HIGH blocks
|
|
78
|
+
7. Documentation Coverage
|
|
79
|
+
8. Magic Modules Debate - BLOCK severity
|
|
80
|
+
|
|
81
|
+
Conditional auditor (not numbered): backward-compatibility / legacy-healing-auditor (healing mode only).
|
|
79
82
|
|
|
80
83
|
**Cursor:** Removed dedicated quality roles. Quote: "Dedicated integrator roles created more bottlenecks than they solved."
|
|
81
84
|
|
|
@@ -174,7 +177,7 @@ Cursor learned through failure:
|
|
|
174
177
|
### 3. Simplicity Principle
|
|
175
178
|
> "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
179
|
|
|
177
|
-
**Loki Mode:** More elaborate infrastructure (
|
|
180
|
+
**Loki Mode:** More elaborate infrastructure (8 gates, 41 agent types, memory systems). May be over-engineered for some use cases.
|
|
178
181
|
|
|
179
182
|
---
|
|
180
183
|
|
|
@@ -192,7 +195,7 @@ We incorporated Cursor's proven patterns:
|
|
|
192
195
|
## Conclusion
|
|
193
196
|
|
|
194
197
|
**Loki Mode is scientifically better in:**
|
|
195
|
-
- Quality assurance (research-backed
|
|
198
|
+
- Quality assurance (research-backed 8-gate system)
|
|
196
199
|
- Anti-sycophancy (CONSENSAGENT blind review)
|
|
197
200
|
- Velocity-quality balance (arXiv metrics)
|
|
198
201
|
- Full SDLC coverage (spec to growth -- PRD, GitHub issue, or YAML)
|
package/docs/dashboard-guide.md
CHANGED
|
@@ -151,13 +151,15 @@ Progress bars for three memory types:
|
|
|
151
151
|
Shows count and visual progress bar for each.
|
|
152
152
|
|
|
153
153
|
#### Quality Gates
|
|
154
|
-
|
|
155
|
-
- **Static Analysis**: CodeQL/ESLint
|
|
156
|
-
- **
|
|
157
|
-
- **
|
|
158
|
-
- **
|
|
159
|
-
- **
|
|
160
|
-
- **
|
|
154
|
+
8 quality gates with status icons:
|
|
155
|
+
- **Static Analysis**: CodeQL/ESLint/type-checker findings on the diff
|
|
156
|
+
- **Test Suite**: Project test runner pass/fail (red blocks)
|
|
157
|
+
- **Blind Code Review**: 3-reviewer council with severity blocking (Critical/High block, Medium/Low advisory)
|
|
158
|
+
- **Anti-Sycophancy**: Devil's Advocate re-review on unanimous PASS
|
|
159
|
+
- **Mock Integrity**: Tautological-assertion and mock-ratio detection
|
|
160
|
+
- **Test Mutation**: Assertion-churn (test-fitting) detection
|
|
161
|
+
- **Documentation Coverage**: README presence, docs freshness, API docs
|
|
162
|
+
- **Magic Modules Debate**: Spec-vs-implementation debate on generated modules
|
|
161
163
|
|
|
162
164
|
Status icons:
|
|
163
165
|
- Checkmark (green): Passed
|
|
@@ -68,11 +68,51 @@ For organizations using identity providers (Okta, Auth0, Azure AD), Loki Mode su
|
|
|
68
68
|
```bash
|
|
69
69
|
export LOKI_OIDC_ISSUER="https://your-idp.okta.com/oauth2/default"
|
|
70
70
|
export LOKI_OIDC_CLIENT_ID="your-client-id"
|
|
71
|
-
|
|
72
|
-
export
|
|
71
|
+
# Optional: audience override (defaults to LOKI_OIDC_CLIENT_ID)
|
|
72
|
+
export LOKI_OIDC_AUDIENCE="your-api-audience"
|
|
73
73
|
```
|
|
74
74
|
|
|
75
|
-
The system validates OIDC tokens
|
|
75
|
+
The system validates OIDC bearer tokens (presented as `Authorization: Bearer <jwt>`)
|
|
76
|
+
against the issuer's JWKS endpoint. When PyJWT + cryptography are installed, the
|
|
77
|
+
JWT signature is cryptographically verified (RS256/RS384/RS512) along with the
|
|
78
|
+
issuer, audience, and expiry. Without PyJWT, tokens are rejected unless
|
|
79
|
+
`LOKI_OIDC_SKIP_SIGNATURE_VERIFY=true` is set explicitly (insecure, local testing
|
|
80
|
+
only).
|
|
81
|
+
|
|
82
|
+
**Claims-to-roles mapping:**
|
|
83
|
+
|
|
84
|
+
On a valid token, role/group claims are mapped to the four built-in Loki roles
|
|
85
|
+
(`admin`, `operator`, `viewer`, `auditor`). The resolved role's scopes are then
|
|
86
|
+
enforced through the same scope hierarchy used for API tokens. OIDC users are
|
|
87
|
+
NOT granted full access by default.
|
|
88
|
+
|
|
89
|
+
Recognized claim sources (case-insensitive; values may be a string,
|
|
90
|
+
space-separated string, or list):
|
|
91
|
+
|
|
92
|
+
| Claim | Provider |
|
|
93
|
+
|-------|----------|
|
|
94
|
+
| value of `LOKI_OIDC_ROLES_CLAIM` (supports dotted paths, e.g. `realm_access.roles`) | configurable |
|
|
95
|
+
| `roles` | generic |
|
|
96
|
+
| `groups` | generic |
|
|
97
|
+
| `realm_access.roles` | Keycloak |
|
|
98
|
+
| `cognito:groups` | AWS Cognito |
|
|
99
|
+
|
|
100
|
+
Only claim values that exactly match a built-in role name (`admin`, `operator`,
|
|
101
|
+
`viewer`, `auditor`) grant that role. Arbitrary group names (common in `groups`
|
|
102
|
+
or `cognito:groups`) do not map to a role and fall through to the default.
|
|
103
|
+
|
|
104
|
+
When multiple recognized roles are present, the highest-privilege match wins
|
|
105
|
+
(precedence: `admin` > `operator` > `auditor` > `viewer`).
|
|
106
|
+
|
|
107
|
+
**Default role (when no recognized role claim is present):**
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
# Defaults to the least-privileged role (viewer). Never admin.
|
|
111
|
+
export LOKI_OIDC_DEFAULT_ROLE="viewer"
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
If `LOKI_OIDC_DEFAULT_ROLE` is unset or set to an unrecognized value, it falls
|
|
115
|
+
back to `viewer`. The default is never `admin` / full access.
|
|
76
116
|
|
|
77
117
|
## Authorization
|
|
78
118
|
|
|
@@ -86,7 +86,7 @@ Three review loops identified these critical gaps in v1 of this PRD:
|
|
|
86
86
|
Tabbed panel below the editor (collapsible, resizable height):
|
|
87
87
|
- **Build Log:** Real-time loki output (WebSocket, already works on HomePage)
|
|
88
88
|
- **Agents:** Active agent cards with status (already built as AgentDashboard)
|
|
89
|
-
- **Quality Gates:**
|
|
89
|
+
- **Quality Gates:** 8-gate display (already built as QualityGatesPanel)
|
|
90
90
|
- **AI Chat:** NEW -- text input that sends prompts to iterate on the project
|
|
91
91
|
|
|
92
92
|
**2b. AI Chat (key differentiator)**
|
|
@@ -97,7 +97,7 @@ Loki Mode already has 75+ commands and 120+ API endpoints. The platform doesn't
|
|
|
97
97
|
- **Terminal tab:** Real-time loki session output (already streamed via WebSocket)
|
|
98
98
|
- **Agent Log tab:** Shows which agents are active, what they're working on (uses `/api/agents` and `/api/session/agents`)
|
|
99
99
|
- **Build Output tab:** Structured build phases -- RARV cycle visualization, iteration count, current phase
|
|
100
|
-
- **Quality Gates tab:**
|
|
100
|
+
- **Quality Gates tab:** 8-gate status display (uses existing checklist/quality endpoints)
|
|
101
101
|
- **AI Chat tab:** Send messages to iterate on the project ("fix the login page", "add dark mode") -- triggers `loki start` with the prompt as PRD amendment
|
|
102
102
|
|
|
103
103
|
**Header toolbar:**
|
|
@@ -182,12 +182,12 @@ This is the "Loki way" -- instead of just editing code, users can talk to the AI
|
|
|
182
182
|
|
|
183
183
|
### Quality Gates Panel
|
|
184
184
|
|
|
185
|
-
Shows the
|
|
185
|
+
Shows the Loki quality gates and checks in real-time:
|
|
186
186
|
1. Static Analysis (CodeQL/ESLint)
|
|
187
187
|
2. 3-Reviewer Blind Review
|
|
188
188
|
3. Anti-Sycophancy Check
|
|
189
189
|
4. Severity Blocking (Critical/High)
|
|
190
|
-
5. Test
|
|
190
|
+
5. Test Suite (pass/fail; coverage % not measured this release)
|
|
191
191
|
6. Security Scan (OWASP)
|
|
192
192
|
7. Performance Check
|
|
193
193
|
8. Mock Detector
|
package/docs/show-hn-post.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
## Title
|
|
4
4
|
|
|
5
|
-
Show HN: Loki Mode - PRD in, tested code out (41 agent roles,
|
|
5
|
+
Show HN: Loki Mode - PRD in, tested code out (41 agent roles, 8 quality gates, RARV self-verification)
|
|
6
6
|
|
|
7
7
|
## Body
|
|
8
8
|
|
|
@@ -24,7 +24,7 @@ I built Loki Mode because I got tired of the copy-paste loop between AI coding a
|
|
|
24
24
|
|
|
25
25
|
**Test suite:** 683 npm tests, 631 pytest tests, 16 shell tests. Self-reported HumanEval score of 162/164 (98.78%).
|
|
26
26
|
|
|
27
|
-
Built solo.
|
|
27
|
+
Built solo. BUSL-1.1 source-available.
|
|
28
28
|
|
|
29
29
|
## Try it
|
|
30
30
|
|
|
@@ -40,7 +40,7 @@ Integrations: Jira, Slack, Teams, GitHub Actions.
|
|
|
40
40
|
|
|
41
41
|
## Feedback wanted
|
|
42
42
|
|
|
43
|
-
- Is the
|
|
43
|
+
- Is the 8-gate quality system overkill, or does it actually help for your use cases?
|
|
44
44
|
- How do you handle the tension between autonomous agent speed and code review thoroughness?
|
|
45
45
|
- What PRD complexity level breaks this approach? I have hit walls with highly coupled distributed systems.
|
|
46
46
|
|
package/loki-ts/dist/loki.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
var n6=Object.defineProperty;var a6=($)=>$;function s6($,Q){this[$]=a6.bind(null,Q)}var h=($,Q)=>{for(var Z in Q)n6($,Z,{get:Q[Z],enumerable:!0,configurable:!0,set:s6.bind(Q,Z)})};var L=($,Q)=>()=>($&&(Q=$($=0)),Q);var K$=import.meta.require;var S1={};h(S1,{lokiDir:()=>P,homeLokiDir:()=>o$,findRepoRootForVersion:()=>d$,REPO_ROOT:()=>m});import{resolve as n,dirname as l$}from"path";import{fileURLToPath as t6}from"url";import{existsSync as P$}from"fs";import{homedir as r6}from"os";function i6(){let $=N1;for(let Q=0;Q<6;Q++){if(P$(n($,"VERSION"))&&P$(n($,"autonomy/run.sh")))return $;let Z=l$($);if(Z===$)break;$=Z}return n(N1,"..","..","..")}function d$($){let Q=$;for(let Z=0;Z<6;Z++){if(P$(n(Q,"VERSION"))&&P$(n(Q,"autonomy/run.sh")))return Q;let z=l$(Q);if(z===Q)break;Q=z}return n($,"..","..","..")}function P(){return process.env.LOKI_DIR??n(process.cwd(),".loki")}function o$(){return n(r6(),".loki")}var N1,m;var C=L(()=>{N1=l$(t6(import.meta.url));m=i6()});import{readFileSync as e6}from"fs";import{resolve as $Q,dirname as QQ}from"path";import{fileURLToPath as ZQ}from"url";function F$(){if($$!==null)return $$;let $="7.
|
|
2
|
+
var n6=Object.defineProperty;var a6=($)=>$;function s6($,Q){this[$]=a6.bind(null,Q)}var h=($,Q)=>{for(var Z in Q)n6($,Z,{get:Q[Z],enumerable:!0,configurable:!0,set:s6.bind(Q,Z)})};var L=($,Q)=>()=>($&&(Q=$($=0)),Q);var K$=import.meta.require;var S1={};h(S1,{lokiDir:()=>P,homeLokiDir:()=>o$,findRepoRootForVersion:()=>d$,REPO_ROOT:()=>m});import{resolve as n,dirname as l$}from"path";import{fileURLToPath as t6}from"url";import{existsSync as P$}from"fs";import{homedir as r6}from"os";function i6(){let $=N1;for(let Q=0;Q<6;Q++){if(P$(n($,"VERSION"))&&P$(n($,"autonomy/run.sh")))return $;let Z=l$($);if(Z===$)break;$=Z}return n(N1,"..","..","..")}function d$($){let Q=$;for(let Z=0;Z<6;Z++){if(P$(n(Q,"VERSION"))&&P$(n(Q,"autonomy/run.sh")))return Q;let z=l$(Q);if(z===Q)break;Q=z}return n($,"..","..","..")}function P(){return process.env.LOKI_DIR??n(process.cwd(),".loki")}function o$(){return n(r6(),".loki")}var N1,m;var C=L(()=>{N1=l$(t6(import.meta.url));m=i6()});import{readFileSync as e6}from"fs";import{resolve as $Q,dirname as QQ}from"path";import{fileURLToPath as ZQ}from"url";function F$(){if($$!==null)return $$;let $="7.47.0";if(typeof $==="string"&&$.length>0)return $$=$,$$;try{let Q=QQ(ZQ(import.meta.url)),Z=d$(Q);$$=e6($Q(Z,"VERSION"),"utf-8").trim()}catch{$$="unknown"}return $$}var $$=null;var n$=L(()=>{C()});var C1={};h(C1,{runOrThrow:()=>zQ,run:()=>j,commandVersion:()=>KQ,commandExists:()=>f,ShellError:()=>a$});async function j($,Q={}){let Z=Bun.spawn({cmd:[...$],stdout:"pipe",stderr:"pipe",env:Q.env?{...process.env,...Q.env}:process.env,cwd:Q.cwd}),z,X;if(Q.timeoutMs&&Q.timeoutMs>0)z=setTimeout(()=>{try{Z.kill("SIGTERM")}catch{}X=setTimeout(()=>{try{Z.kill("SIGKILL")}catch{}},2000)},Q.timeoutMs);try{let[W,K,U]=await Promise.all([new Response(Z.stdout).text(),new Response(Z.stderr).text(),Z.exited]);return{stdout:W,stderr:K,exitCode:U}}finally{if(z)clearTimeout(z);if(X)clearTimeout(X)}}async function zQ($,Q={}){let Z=await j($,Q);if(Z.exitCode!==0)throw new a$(`command failed (${Z.exitCode}): ${$.join(" ")}`,Z.exitCode,Z.stdout,Z.stderr);return Z}async function f($){let Q=XQ($),Z=await j(["sh","-c",`command -v ${Q}`],{timeoutMs:5000});if(Z.exitCode===0)return Z.stdout.trim()||null;return null}function XQ($){if(!/^[A-Za-z0-9._/-]+$/.test($))throw Error(`refused to shell-escape suspect token: ${$}`);return $}async function KQ($,Q="--version"){if(!await f($))return null;let z=await j([$,Q],{timeoutMs:5000});if(z.exitCode!==0)return null;return((z.stdout||z.stderr).split(/\r?\n/)[0]?.trim()??"")||null}var a$;var d=L(()=>{a$=class a$ extends Error{message;exitCode;stdout;stderr;constructor($,Q,Z,z){super($);this.message=$;this.exitCode=Q;this.stdout=Z;this.stderr=z;this.name="ShellError"}}});function a($){return WQ?"":$}var WQ,T,S,I,TZ,w,R,y,q;var c=L(()=>{WQ=(process.env.NO_COLOR??"").length>0;T=a("\x1B[0;31m"),S=a("\x1B[0;32m"),I=a("\x1B[1;33m"),TZ=a("\x1B[0;34m"),w=a("\x1B[0;36m"),R=a("\x1B[1m"),y=a("\x1B[2m"),q=a("\x1B[0m")});import{existsSync as TQ}from"fs";async function Q$(){if(B$!==void 0)return B$;let $="/opt/homebrew/bin/python3.12";if(TQ($))return B$=$,$;let Q=await f("python3.12");if(Q)return B$=Q,Q;let Z=await f("python3");return B$=Z,Z}async function Z$($,Q={}){let Z=await Q$();if(!Z)return{stdout:"",stderr:"python3 not found",exitCode:127};return j([Z,"-c",$],Q)}var B$;var W$=L(()=>{d()});var t1={};h(t1,{runStatus:()=>gQ});import{existsSync as v,readFileSync as U$,readdirSync as l1,statSync as d1}from"fs";import{resolve as D,basename as xQ}from"path";import{homedir as NQ}from"os";async function DQ(){if(await f("jq"))return!0;return process.stdout.write(`${T}Error: jq is required but not installed.${q}
|
|
3
3
|
`),process.stdout.write(`Install with:
|
|
4
4
|
`),process.stdout.write(` brew install jq (macOS)
|
|
5
5
|
`),process.stdout.write(` apt install jq (Debian/Ubuntu)
|
|
@@ -789,4 +789,4 @@ Set LOKI_LEGACY_BASH=1 to force the bash CLI for every command.
|
|
|
789
789
|
`),2}default:return process.stderr.write(`Unknown command: ${Q}
|
|
790
790
|
`),process.stderr.write(o6),2}}p1();process.on("SIGINT",()=>process.exit(130));process.on("SIGTERM",()=>process.exit(143));var ZZ=await QZ(Bun.argv.slice(2));process.exit(ZZ);
|
|
791
791
|
|
|
792
|
-
//# debugId=
|
|
792
|
+
//# debugId=3DD935606FD979EE64756E2164756E21
|
package/mcp/__init__.py
CHANGED
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "loki-mode",
|
|
3
3
|
"mcpName": "io.github.asklokesh/loki-mode",
|
|
4
|
-
"version": "7.
|
|
5
|
-
"description": "Loki Mode by Autonomi. Autonomous spec-to-product system: takes a PRD, GitHub issue, OpenAPI/JSON/YAML, or one-line brief to a deployed app via the RARV-C closure loop with
|
|
4
|
+
"version": "7.47.0",
|
|
5
|
+
"description": "Loki Mode by Autonomi. Autonomous spec-to-product system: takes a PRD, GitHub issue, OpenAPI/JSON/YAML, or one-line brief to a deployed app via the RARV-C closure loop with 8 quality gates. Provider-agnostic (Claude Code, OpenAI Codex, Cline, Aider).",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"agent",
|
|
8
8
|
"agent-orchestration",
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
"$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json",
|
|
3
3
|
"name": "loki-mode",
|
|
4
4
|
"displayName": "Loki Mode",
|
|
5
|
-
"version": "7.
|
|
6
|
-
"description": "Autonomous spec-to-product build system with a built-in trust layer (RARV-C closure loop,
|
|
5
|
+
"version": "7.47.0",
|
|
6
|
+
"description": "Autonomous spec-to-product build system with a built-in trust layer (RARV-C closure loop, 8 quality gates, completion council). Ships Loki's spec-hardening, drift-detection, and deterministic PR verification commands plus the Loki MCP server.",
|
|
7
7
|
"author": {
|
|
8
8
|
"name": "Autonomi",
|
|
9
9
|
"url": "https://www.autonomi.dev/"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Loki Mode plugin for Claude Code
|
|
2
2
|
|
|
3
3
|
Loki Mode is the autonomous spec-to-product build system with a built-in trust
|
|
4
|
-
layer (RARV-C closure loop,
|
|
4
|
+
layer (RARV-C closure loop, 8 quality gates, completion council). This plugin
|
|
5
5
|
brings Loki's spec-hardening, drift-detection, and deterministic PR verification
|
|
6
6
|
into Claude Code as slash commands, and wires up the Loki MCP server.
|
|
7
7
|
|
|
@@ -84,4 +84,4 @@ PRD says: "Add a login form with email, password, and submit button."
|
|
|
84
84
|
- `skills/magic-modules.md` -- skill module for agents
|
|
85
85
|
- `references/magic-modules-patterns.md` -- full API and pattern reference
|
|
86
86
|
- `references/memory-system.md` -- memory engine details
|
|
87
|
-
- `skills/quality-gates.md` -- all
|
|
87
|
+
- `skills/quality-gates.md` -- all 8 deterministic quality gates documented
|
|
@@ -240,15 +240,15 @@ This diversity prevents groupthink and catches more issues.
|
|
|
240
240
|
|----------|--------|-----------|
|
|
241
241
|
| **Critical** | BLOCK - Fix immediately | NO |
|
|
242
242
|
| **High** | BLOCK - Fix immediately | NO |
|
|
243
|
-
| **Medium** |
|
|
243
|
+
| **Medium** | Advisory - Add `// TODO(review): ...` comment | YES |
|
|
244
244
|
| **Low** | Add `// TODO(review): ...` comment | YES |
|
|
245
245
|
| **Cosmetic** | Add `// FIXME(nitpick): ...` comment | YES |
|
|
246
246
|
|
|
247
|
-
**Critical/High
|
|
248
|
-
**Low/Cosmetic = Add TODO/FIXME comment, continue**
|
|
247
|
+
**Critical/High = BLOCK and fix before proceeding**
|
|
248
|
+
**Medium/Low/Cosmetic = Add TODO/FIXME comment, continue (advisory)**
|
|
249
249
|
|
|
250
250
|
### 4. Test Coverage Gates
|
|
251
|
-
- Unit tests: 100% pass
|
|
251
|
+
- Unit tests: 100% pass (coverage % not measured in this release)
|
|
252
252
|
- Integration tests: 100% pass
|
|
253
253
|
- E2E tests: critical flows pass
|
|
254
254
|
|
|
@@ -445,7 +445,7 @@ Quality gates are enforced by `autonomy/CONSTITUTION.md`:
|
|
|
445
445
|
**Pre-Commit (BLOCKING):**
|
|
446
446
|
- Linting (auto-fix enabled)
|
|
447
447
|
- Type checking (strict mode)
|
|
448
|
-
- Contract tests (
|
|
448
|
+
- Contract tests (coverage % not enforced as a gate)
|
|
449
449
|
- Spec validation (Spectral)
|
|
450
450
|
|
|
451
451
|
**Post-Implementation (AUTO-FIX):**
|
package/skills/00-index.md
CHANGED
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
|
|
49
49
|
### quality-gates.md
|
|
50
50
|
**When:** Code review, pre-commit checks, quality assurance
|
|
51
|
-
-
|
|
51
|
+
- 8-gate quality system (gate 7: documentation coverage, v6.75.0; backward compatibility is a conditional healing-mode auditor, not numbered)
|
|
52
52
|
- Blind review + anti-sycophancy
|
|
53
53
|
- Velocity-quality feedback loop (arXiv research)
|
|
54
54
|
- Mandatory quality checks per task
|
package/skills/artifacts.md
CHANGED
package/skills/healing.md
CHANGED
|
@@ -43,7 +43,7 @@ friction_detection:
|
|
|
43
43
|
rule: "Before 'fixing' any quirk, verify it is not an undocumented business rule"
|
|
44
44
|
action: "Document in .loki/healing/friction-map.json"
|
|
45
45
|
classification:
|
|
46
|
-
business_rule: "Keep and document.
|
|
46
|
+
business_rule: "Keep and document. The backward-compatibility / legacy-healing auditor (healing mode) blocks removal."
|
|
47
47
|
true_bug: "Fix with characterization test proving the fix."
|
|
48
48
|
unknown: "Keep until classified. NEVER remove unknown friction."
|
|
49
49
|
```
|
package/skills/magic-modules.md
CHANGED
|
@@ -84,8 +84,8 @@ The combination means: specs drive generation, debate drives quality, and the re
|
|
|
84
84
|
|
|
85
85
|
### With Quality Gates
|
|
86
86
|
|
|
87
|
-
- Gate
|
|
88
|
-
- Gate
|
|
87
|
+
- Gate 7 (documentation coverage) now includes component docs -- each spec becomes part of COMPONENTS.md
|
|
88
|
+
- Gate 2 (test suite) applies to generated tests in `.loki/magic/generated/tests/`
|
|
89
89
|
- A new healing-style hook blocks merging when a component's spec has been manually edited but the implementation was not regenerated
|
|
90
90
|
|
|
91
91
|
---
|
|
@@ -190,7 +190,7 @@ loki magic diff Button
|
|
|
190
190
|
|-------|-------------|
|
|
191
191
|
| `skills/healing.md` | Healing-style hooks protect spec edits; friction-map tracks manually edited generated files |
|
|
192
192
|
| `skills/documentation.md` | Component specs feed COMPONENTS.md; registry feeds ARCHITECTURE.md |
|
|
193
|
-
| `skills/quality-gates.md` | Gate
|
|
193
|
+
| `skills/quality-gates.md` | Gate 7 includes component doc coverage; Magic Modules debate (gate 8) block = gate failure |
|
|
194
194
|
| `skills/agents.md` | `component-designer`, `a11y-auditor` agent types map to personas |
|
|
195
195
|
| `skills/testing.md` | Generated Vitest and Playwright tests execute under the normal test gates |
|
|
196
196
|
| `skills/artifacts.md` | Generated components count as artifacts and flow through the artifact pipeline |
|