simplicio-loop 1.0.2__tar.gz
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.
- simplicio_loop-1.0.2/LICENSE +21 -0
- simplicio_loop-1.0.2/MANIFEST.in +3 -0
- simplicio_loop-1.0.2/PKG-INFO +75 -0
- simplicio_loop-1.0.2/PYPI.md +52 -0
- simplicio_loop-1.0.2/README.md +502 -0
- simplicio_loop-1.0.2/pyproject.toml +38 -0
- simplicio_loop-1.0.2/setup.cfg +4 -0
- simplicio_loop-1.0.2/simplicio_loop/__init__.py +8 -0
- simplicio_loop-1.0.2/simplicio_loop/_bundle/hooks/hooks.claude.json +20 -0
- simplicio_loop-1.0.2/simplicio_loop/_bundle/hooks/hooks.json +12 -0
- simplicio_loop-1.0.2/simplicio_loop/_bundle/hooks/learn_stop.py +38 -0
- simplicio_loop-1.0.2/simplicio_loop/_bundle/hooks/loop_capture.py +67 -0
- simplicio_loop-1.0.2/simplicio_loop/_bundle/hooks/loop_stop.py +205 -0
- simplicio_loop-1.0.2/simplicio_loop/_bundle/hooks/orient_clamp.py +167 -0
- simplicio_loop-1.0.2/simplicio_loop/_bundle/hooks/orient_rewrite.py +96 -0
- simplicio_loop-1.0.2/simplicio_loop/_bundle/skills/simplicio-compress/SKILL.md +86 -0
- simplicio_loop-1.0.2/simplicio_loop/_bundle/skills/simplicio-learn/SKILL.md +70 -0
- simplicio_loop-1.0.2/simplicio_loop/_bundle/skills/simplicio-loop/SKILL.md +108 -0
- simplicio_loop-1.0.2/simplicio_loop/_bundle/skills/simplicio-orient/SKILL.md +188 -0
- simplicio_loop-1.0.2/simplicio_loop/_bundle/skills/simplicio-review/SKILL.md +94 -0
- simplicio_loop-1.0.2/simplicio_loop/_bundle/skills/simplicio-tasks/SKILL.md +213 -0
- simplicio_loop-1.0.2/simplicio_loop/_bundle/skills/simplicio-tasks/references/azure-devops-adapter.md +69 -0
- simplicio_loop-1.0.2/simplicio_loop/_bundle/skills/simplicio-tasks/references/extension-points.md +60 -0
- simplicio_loop-1.0.2/simplicio_loop/_bundle/skills/simplicio-tasks/references/orchestration.md +131 -0
- simplicio_loop-1.0.2/simplicio_loop/_bundle/skills/simplicio-tasks/references/quality-safety-delivery.md +121 -0
- simplicio_loop-1.0.2/simplicio_loop/_bundle/skills/simplicio-tasks/references/standing-loop-247.md +117 -0
- simplicio_loop-1.0.2/simplicio_loop/_bundle/skills/simplicio-tasks/references/token-economy.md +175 -0
- simplicio_loop-1.0.2/simplicio_loop/_bundle/skills/simplicio-tasks/references/web-evidence.md +93 -0
- simplicio_loop-1.0.2/simplicio_loop/cli.py +76 -0
- simplicio_loop-1.0.2/simplicio_loop.egg-info/PKG-INFO +75 -0
- simplicio_loop-1.0.2/simplicio_loop.egg-info/SOURCES.txt +32 -0
- simplicio_loop-1.0.2/simplicio_loop.egg-info/dependency_links.txt +1 -0
- simplicio_loop-1.0.2/simplicio_loop.egg-info/entry_points.txt +2 -0
- simplicio_loop-1.0.2/simplicio_loop.egg-info/top_level.txt +1 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Wesley Simplicio
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: simplicio-loop
|
|
3
|
+
Version: 1.0.2
|
|
4
|
+
Summary: The Universal Looping AI Orchestrator — a runtime-agnostic super-plugin (6 skills) that drains any queue of work end-to-end on any LLM/runtime.
|
|
5
|
+
Author-email: Wesley Simplicio <wesleybob4@gmail.com>
|
|
6
|
+
License: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/wesleysimplicio/simplicio-loop
|
|
8
|
+
Project-URL: Repository, https://github.com/wesleysimplicio/simplicio-loop
|
|
9
|
+
Project-URL: Issues, https://github.com/wesleysimplicio/simplicio-loop/issues
|
|
10
|
+
Keywords: ai,agent,orchestrator,llm,claude,cursor,automation,ralph-loop,token-economy,cli
|
|
11
|
+
Classifier: Development Status :: 4 - Beta
|
|
12
|
+
Classifier: Intended Audience :: Developers
|
|
13
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
14
|
+
Classifier: Programming Language :: Python :: 3
|
|
15
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
16
|
+
Classifier: Topic :: Software Development :: Build Tools
|
|
17
|
+
Classifier: Topic :: Utilities
|
|
18
|
+
Classifier: Operating System :: OS Independent
|
|
19
|
+
Requires-Python: >=3.8
|
|
20
|
+
Description-Content-Type: text/markdown
|
|
21
|
+
License-File: LICENSE
|
|
22
|
+
Dynamic: license-file
|
|
23
|
+
|
|
24
|
+
# simplicio-loop
|
|
25
|
+
|
|
26
|
+
**The Universal Looping AI Orchestrator** — a runtime-agnostic **super-plugin** (6 skills) that
|
|
27
|
+
drains any queue of work end-to-end on **any LLM / runtime**:
|
|
28
|
+
`discover → implement → verify → merge → close → watch 24/7`, behind safety gates and a hard cost
|
|
29
|
+
kill-switch, at up to **96% fewer tokens**. Not a chatbot. A worker.
|
|
30
|
+
|
|
31
|
+

|
|
32
|
+
|
|
33
|
+
## Install
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
pip install simplicio-loop
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Then drop the skills + hooks into your project (or globally):
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
simplicio-loop install # into ./.claude of the current project
|
|
43
|
+
simplicio-loop install --global # into ~/.claude (all projects)
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Now invoke it from your agent runtime (Claude Code, Cursor, Codex, Gemini, …):
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
/simplicio-tasks finish all the open issues
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## What you get — 6 skills
|
|
53
|
+
|
|
54
|
+
| Skill | What it does |
|
|
55
|
+
|---|---|
|
|
56
|
+
| `simplicio-tasks` | The orchestrator loop: discover → implement → verify → merge → close → watch 24/7. |
|
|
57
|
+
| `simplicio-loop` | Hardened Ralph loop — re-feed the goal until an evidence-gated `<promise>` or a cap. |
|
|
58
|
+
| `simplicio-orient` | Terminal-first token economy — output-reduction catalog, tee-cache, signatures-read. |
|
|
59
|
+
| `simplicio-review` | Adversarial review — parallel subagents on distinct rubrics, deduped into one verdict. |
|
|
60
|
+
| `simplicio-compress` | Output + memory compression, byte-preserving identifiers. |
|
|
61
|
+
| `simplicio-learn` | Retrospective — durable, deduped lessons written back to memory. |
|
|
62
|
+
|
|
63
|
+
## Highlights
|
|
64
|
+
|
|
65
|
+
- **11 runtimes, one protocol** — Claude Code, Codex, VS Code/Copilot, Cursor, Antigravity, Kiro,
|
|
66
|
+
OpenCode, Gemini, Aider, Hermes, OpenClaw.
|
|
67
|
+
- **Evidence-gated completion** — never a false "done"; exits only on a verified `<promise>` or a
|
|
68
|
+
cap / budget / STOP.
|
|
69
|
+
- **Token economy** — honest "answer concisely" baseline; savings credited only on verified-correct
|
|
70
|
+
outcomes.
|
|
71
|
+
|
|
72
|
+
Requires Python 3.8+. The skills, hooks, and installer are pure cross-platform Python.
|
|
73
|
+
|
|
74
|
+
MIT — part of the [Simplicio](https://github.com/wesleysimplicio) ecosystem.
|
|
75
|
+
Full docs: <https://github.com/wesleysimplicio/simplicio-loop>
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# simplicio-loop
|
|
2
|
+
|
|
3
|
+
**The Universal Looping AI Orchestrator** — a runtime-agnostic **super-plugin** (6 skills) that
|
|
4
|
+
drains any queue of work end-to-end on **any LLM / runtime**:
|
|
5
|
+
`discover → implement → verify → merge → close → watch 24/7`, behind safety gates and a hard cost
|
|
6
|
+
kill-switch, at up to **96% fewer tokens**. Not a chatbot. A worker.
|
|
7
|
+
|
|
8
|
+

|
|
9
|
+
|
|
10
|
+
## Install
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
pip install simplicio-loop
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Then drop the skills + hooks into your project (or globally):
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
simplicio-loop install # into ./.claude of the current project
|
|
20
|
+
simplicio-loop install --global # into ~/.claude (all projects)
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Now invoke it from your agent runtime (Claude Code, Cursor, Codex, Gemini, …):
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
/simplicio-tasks finish all the open issues
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## What you get — 6 skills
|
|
30
|
+
|
|
31
|
+
| Skill | What it does |
|
|
32
|
+
|---|---|
|
|
33
|
+
| `simplicio-tasks` | The orchestrator loop: discover → implement → verify → merge → close → watch 24/7. |
|
|
34
|
+
| `simplicio-loop` | Hardened Ralph loop — re-feed the goal until an evidence-gated `<promise>` or a cap. |
|
|
35
|
+
| `simplicio-orient` | Terminal-first token economy — output-reduction catalog, tee-cache, signatures-read. |
|
|
36
|
+
| `simplicio-review` | Adversarial review — parallel subagents on distinct rubrics, deduped into one verdict. |
|
|
37
|
+
| `simplicio-compress` | Output + memory compression, byte-preserving identifiers. |
|
|
38
|
+
| `simplicio-learn` | Retrospective — durable, deduped lessons written back to memory. |
|
|
39
|
+
|
|
40
|
+
## Highlights
|
|
41
|
+
|
|
42
|
+
- **11 runtimes, one protocol** — Claude Code, Codex, VS Code/Copilot, Cursor, Antigravity, Kiro,
|
|
43
|
+
OpenCode, Gemini, Aider, Hermes, OpenClaw.
|
|
44
|
+
- **Evidence-gated completion** — never a false "done"; exits only on a verified `<promise>` or a
|
|
45
|
+
cap / budget / STOP.
|
|
46
|
+
- **Token economy** — honest "answer concisely" baseline; savings credited only on verified-correct
|
|
47
|
+
outcomes.
|
|
48
|
+
|
|
49
|
+
Requires Python 3.8+. The skills, hooks, and installer are pure cross-platform Python.
|
|
50
|
+
|
|
51
|
+
MIT — part of the [Simplicio](https://github.com/wesleysimplicio) ecosystem.
|
|
52
|
+
Full docs: <https://github.com/wesleysimplicio/simplicio-loop>
|
|
@@ -0,0 +1,502 @@
|
|
|
1
|
+
# 🔁 simplicio-loop — The Universal Looping AI Orchestrator
|
|
2
|
+
|
|
3
|
+
<p align="center">
|
|
4
|
+
<img src="assets/simplicio-loop-hero.jpg" alt="simplicio-loop" width="920" />
|
|
5
|
+
</p>
|
|
6
|
+
|
|
7
|
+
<p align="center">
|
|
8
|
+
<a href="https://github.com/wesleysimplicio/simplicio-loop/stargazers"><img src="https://img.shields.io/github/stars/wesleysimplicio/simplicio-loop?style=social" alt="Stars"></a>
|
|
9
|
+
<a href="#-the-6-skills-super-plugin"><img src="https://img.shields.io/badge/skills-6-7C3AED" alt="6 skills"></a>
|
|
10
|
+
<a href="#-11-runtimes-one-protocol"><img src="https://img.shields.io/badge/runtimes-11-2563EB" alt="11 runtimes"></a>
|
|
11
|
+
<a href="#-the-43-extension-points"><img src="https://img.shields.io/badge/extension%20points-43-00E08A" alt="43 extension points"></a>
|
|
12
|
+
<a href="#-token-economy"><img src="https://img.shields.io/badge/tokens-up%20to%2096%25%20fewer-green" alt="Up to 96% fewer tokens"></a>
|
|
13
|
+
<a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue" alt="License"></a>
|
|
14
|
+
</p>
|
|
15
|
+
|
|
16
|
+
<p align="center">
|
|
17
|
+
<a href="#-tldr">TL;DR</a> ·
|
|
18
|
+
<a href="#-the-6-skills-super-plugin">6 Skills</a> ·
|
|
19
|
+
<a href="#-11-runtimes-one-protocol">11 Runtimes</a> ·
|
|
20
|
+
<a href="#-the-loop">The Loop</a> ·
|
|
21
|
+
<a href="#-token-economy">Token Economy</a> ·
|
|
22
|
+
<a href="#-built-on-the-shoulders-of">Credits</a> ·
|
|
23
|
+
<a href="#-install--use">Install</a>
|
|
24
|
+
</p>
|
|
25
|
+
|
|
26
|
+
<p align="center">
|
|
27
|
+
<strong>🌍 Languages:</strong><br>
|
|
28
|
+
<a href="README.md">🇬🇧 English</a> |
|
|
29
|
+
<a href="READMEs/README.pt-BR.md">🇧🇷 Português</a> |
|
|
30
|
+
<a href="READMEs/README.es-ES.md">🇪🇸 Español</a> |
|
|
31
|
+
<a href="READMEs/README.fr-FR.md">🇫🇷 Français</a> |
|
|
32
|
+
<a href="READMEs/README.de-DE.md">🇩🇪 Deutsch</a> |
|
|
33
|
+
<a href="READMEs/README.it-IT.md">🇮🇹 Italiano</a> |
|
|
34
|
+
<a href="READMEs/README.ja-JP.md">🇯🇵 日本語</a> |
|
|
35
|
+
<a href="READMEs/README.ko-KR.md">🇰🇷 한국어</a> |
|
|
36
|
+
<a href="READMEs/README.zh-CN.md">🇨🇳 简体中文</a> |
|
|
37
|
+
<a href="READMEs/README.ru-RU.md">🇷🇺 Русский</a> |
|
|
38
|
+
<a href="READMEs/README.pl-PL.md">🇵🇱 Polski</a> |
|
|
39
|
+
<a href="READMEs/README.tr-TR.md">🇹🇷 Türkçe</a> |
|
|
40
|
+
<a href="READMEs/README.nl-NL.md">🇳🇱 Nederlands</a> |
|
|
41
|
+
<a href="READMEs/README.hi-IN.md">🇮🇳 हिन्दी</a> |
|
|
42
|
+
<a href="READMEs/README.ar-SA.md">🇸🇦 العربية</a>
|
|
43
|
+
</p>
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## ⚡ TL;DR
|
|
48
|
+
|
|
49
|
+
**simplicio-loop** is a runtime-agnostic **super-plugin** — one autonomous looping
|
|
50
|
+
orchestrator (invoked as **`/simplicio-tasks`**) plus **five satellite skills** — that turns any
|
|
51
|
+
strong LLM (Claude, Codex, Copilot, Gemini, Cursor, local models) into a self-driving worker. You
|
|
52
|
+
point it at a body of
|
|
53
|
+
work — *"finish all the open issues"*, *"clear the CI queue"*, *"drain the Jira board"* — and it
|
|
54
|
+
runs the whole lifecycle on its own:
|
|
55
|
+
|
|
56
|
+
> **discover → understand → decide → act → verify → correct → record → repeat**
|
|
57
|
+
|
|
58
|
+
It discovers work from any source, dedups, auto-scales an agent fleet to your machine,
|
|
59
|
+
implements each item through a quality loop that **runs the code (not just compiles it)**, opens
|
|
60
|
+
PRs, resolves CI/review feedback, merges, and keeps watching **24/7** for new work — all behind
|
|
61
|
+
safety gates and a hard cost kill-switch.
|
|
62
|
+
|
|
63
|
+
```text
|
|
64
|
+
/simplicio-tasks termine as issues abertas
|
|
65
|
+
→ identity + pre-flight (kill-switch, auth, watcher)
|
|
66
|
+
→ discover 50 issues · dedup · build dependency DAG
|
|
67
|
+
→ autoscale fleet = 14 · pipeline implement→review→merge
|
|
68
|
+
→ each item: read body+ACs → orient code → plan → edit → run → verify → PR
|
|
69
|
+
→ merge · close with evidence · rollback if main breaks
|
|
70
|
+
→ keep looping every ~2 min until the queue is dry (evidence-gated, never a false "done")
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Three things make it different: it is a **super-plugin of focused skills**, it runs the **same
|
|
74
|
+
protocol on 11 runtimes**, and it does all of this with **aggressive, honest token economy**.
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## 🧠 The 6 skills (super-plugin)
|
|
79
|
+
|
|
80
|
+
The orchestrator is the core; five satellites each absorb the best of a well-known technique and
|
|
81
|
+
expose it as a reusable skill. Each satellite is **optional** — when loaded, the orchestrator
|
|
82
|
+
delegates to it (richer + cheaper); when absent, the orchestrator's inline protocol covers 100%
|
|
83
|
+
of the work. Same inverted dependency, one level up.
|
|
84
|
+
|
|
85
|
+
| Skill | Absorbs | What it does |
|
|
86
|
+
|---|---|---|
|
|
87
|
+
| 🔁 **simplicio-tasks** | — | The orchestrator loop: discover → implement → verify → merge → close → watch 24/7. 43 extension points, dual-path router, self-audit convergence. |
|
|
88
|
+
| ♾️ **simplicio-loop** | [ralph-loop](https://github.com/cursor/plugins/tree/main/ralph-loop) | The hardened Ralph loop: re-feed the same goal each turn so the agent sees its own work, exiting only on an **evidence-gated `<promise>`** or a `max_iterations` cap — never a false "done". |
|
|
89
|
+
| 🧱 **simplicio-orient** | [rtk](https://github.com/rtk-ai/rtk) + [caveman](https://github.com/JuliusBrussee/caveman) | Terminal-first execution: answer facts with the shell, never the LLM. Output-reduction catalog, **tee-cache on failure**, signatures-only reads, optional auto-rewrite hook. |
|
|
90
|
+
| 🔥 **simplicio-review** | [thermos](https://github.com/cursor/plugins/tree/main/thermos) | Adversarial review: parallel subagents on distinct rubrics (security/correctness + code-quality), spawned in one message, deduped into one verdict. |
|
|
91
|
+
| 🗜️ **simplicio-compress** | [caveman](https://github.com/JuliusBrussee/caveman) | Output + memory compression: terse prose levels that preserve code/paths byte-for-byte, plus a one-time memory compaction that pays back every turn. Fail-closed `transform_guard`. |
|
|
92
|
+
| 🎓 **simplicio-learn** | [teaching](https://github.com/cursor/plugins/tree/main/teaching) + continual-learning | Retrospective: mine durable, deduped lessons from a run and write them to memory so the next run is cheaper and more correct. |
|
|
93
|
+
|
|
94
|
+
Each is a normal skill folder under [`.claude/skills/`](.claude/skills) — usable standalone or
|
|
95
|
+
as part of the loop.
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## 🌐 11 runtimes, one protocol
|
|
100
|
+
|
|
101
|
+
One universal skill core + one set of hooks drives every runtime. An adapter is thin: it tells a
|
|
102
|
+
runtime *where to load the skills*, *how to arm the loop*, and *how to bind native speed*. **The
|
|
103
|
+
skill names no runtime; the runtime detects the skill.**
|
|
104
|
+
|
|
105
|
+
| Runtime | Skill load | Loop drive | Native bind |
|
|
106
|
+
|---|---|---|---|
|
|
107
|
+
| **Claude Code** | `.claude/skills/` + plugin | `Stop` hook | MCP |
|
|
108
|
+
| **Codex** | `AGENTS.md` | self-paced | MCP / adapter |
|
|
109
|
+
| **VS Code (Copilot)** | `copilot-instructions.md` | tasks | MCP |
|
|
110
|
+
| **Cursor** | `.cursor-plugin/` | `stop`+`afterAgentResponse` | MCP / rules |
|
|
111
|
+
| **Antigravity** | rules / `AGENTS.md` | self-paced | MCP |
|
|
112
|
+
| **Kiro** | `.kiro/steering/` | specs | MCP |
|
|
113
|
+
| **OpenCode** | `AGENTS.md` | self-paced | MCP |
|
|
114
|
+
| **Gemini** | `GEMINI.md` | self-paced | MCP / adapter |
|
|
115
|
+
| **Aider** | `CONVENTIONS.md` | self-paced | — (LLM fallback) |
|
|
116
|
+
| **Hermes** | native recall | native loop | **native** |
|
|
117
|
+
| **OpenClaw** | plugin SDK | native scheduler | **native** |
|
|
118
|
+
|
|
119
|
+
The promise: **same protocol, same gates, same safety on all 11 — only the speed differs.**
|
|
120
|
+
`orient_clamp.py` (token economy) works on every runtime with zero wiring. See
|
|
121
|
+
[`adapters/MATRIX.md`](adapters/MATRIX.md).
|
|
122
|
+
|
|
123
|
+
<p align="center">
|
|
124
|
+
<img src="assets/simplicio-loop-overview.png" alt="simplicio-loop - full system overview" width="760" />
|
|
125
|
+
</p>
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## 🗺️ The full flow — from demand to delivery
|
|
130
|
+
|
|
131
|
+
Every layer the orchestrator acts on, in order — from reading the demand (issues, tasks, assigns)
|
|
132
|
+
to delivering merged, evidenced work, then looping 24/7 for more. (Diagram renders natively on
|
|
133
|
+
GitHub.)
|
|
134
|
+
|
|
135
|
+
```mermaid
|
|
136
|
+
flowchart TD
|
|
137
|
+
subgraph SRC["1 · Demand sources (any adapter)"]
|
|
138
|
+
direction LR
|
|
139
|
+
S1["GitHub Issues / PRs / CI"]
|
|
140
|
+
S2["Jira · Azure DevOps · Linear · ClickUp · Notion"]
|
|
141
|
+
S3["Assigns · TODO/FIXME · CVE · local files"]
|
|
142
|
+
end
|
|
143
|
+
SRC --> PF
|
|
144
|
+
subgraph PF["2 · Pre-flight gates"]
|
|
145
|
+
direction LR
|
|
146
|
+
P1["cost kill-switch budget"]
|
|
147
|
+
P2["source auth + scopes"]
|
|
148
|
+
P3["arm 24/7 watcher"]
|
|
149
|
+
end
|
|
150
|
+
PF --> DISC
|
|
151
|
+
subgraph DISC["3 · Discover + normalize"]
|
|
152
|
+
direction LR
|
|
153
|
+
D1["source_adapter: list metadata only"]
|
|
154
|
+
D2["normalize to canonical schema"]
|
|
155
|
+
D3["dedup id+title+fingerprint+branch/PR"]
|
|
156
|
+
D4["dependency DAG"]
|
|
157
|
+
end
|
|
158
|
+
DISC --> INTK
|
|
159
|
+
subgraph INTK["4 · Deep intake (per item)"]
|
|
160
|
+
direction LR
|
|
161
|
+
I1["body + ALL comments"]
|
|
162
|
+
I2["extract acceptance criteria"]
|
|
163
|
+
I3["orient code · signatures-only reads"]
|
|
164
|
+
I4["plan + AC checklist + complexity"]
|
|
165
|
+
end
|
|
166
|
+
INTK --> RT{"5 · Route"}
|
|
167
|
+
RT -->|"small and every item complexity at most 3"| FAST["Fast-path: solo, one targeted test"]
|
|
168
|
+
RT -->|"large queue or any medium+"| POOL
|
|
169
|
+
subgraph POOL["6 · Continuous worker pool (autoscaled, conflict-aware)"]
|
|
170
|
+
direction LR
|
|
171
|
+
W1["claim · branch · worktree if overlap"]
|
|
172
|
+
W2["deterministic_edit"]
|
|
173
|
+
W3["quality loop: edit-lint-test-fix"]
|
|
174
|
+
end
|
|
175
|
+
FAST --> QG
|
|
176
|
+
POOL --> QG
|
|
177
|
+
subgraph QG["7 · Quality gates"]
|
|
178
|
+
direction LR
|
|
179
|
+
Q1["AC gate = real DoD"]
|
|
180
|
+
Q2["WORKS not just compiles · web_verify (Playwright)"]
|
|
181
|
+
Q3["adversarial review · thermos rubrics"]
|
|
182
|
+
end
|
|
183
|
+
QG --> SG
|
|
184
|
+
subgraph SG["8 · Safety gates (non-negotiable)"]
|
|
185
|
+
direction LR
|
|
186
|
+
G1["secret-scan"]
|
|
187
|
+
G2["irreversible-op human gate"]
|
|
188
|
+
G3["4-state verdict · attestation"]
|
|
189
|
+
end
|
|
190
|
+
SG --> DEL
|
|
191
|
+
subgraph DEL["9 · Deliver"]
|
|
192
|
+
direction LR
|
|
193
|
+
L1["commit · push · Draft PR"]
|
|
194
|
+
L2["close in-source + evidence"]
|
|
195
|
+
L3["verify reality, not self-report"]
|
|
196
|
+
end
|
|
197
|
+
DEL --> FB
|
|
198
|
+
subgraph FB["10 · Feedback loop to merge-ready"]
|
|
199
|
+
direction LR
|
|
200
|
+
F1["CI fail -> fix root cause"]
|
|
201
|
+
F2["review comments -> adjust"]
|
|
202
|
+
F3["branch behind main -> additive rebase"]
|
|
203
|
+
end
|
|
204
|
+
FB -->|"merged and closed"| DONE(["done + evidence + savings line"])
|
|
205
|
+
WATCH["11 · 24/7 watcher · simplicio-loop<br/>evidence-gated promise · max-iterations cap · cost kill-switch"]
|
|
206
|
+
FB -. "poll new work / comments / checks" .-> WATCH
|
|
207
|
+
DONE -. "idle until new work" .-> WATCH
|
|
208
|
+
WATCH -. "re-feed the goal" .-> DISC
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
**Layer by layer — what acts, and the resource it uses:**
|
|
212
|
+
|
|
213
|
+
| # | Layer | What happens | Skill / extension point · borrowed from |
|
|
214
|
+
|---|---|---|---|
|
|
215
|
+
| 1 | **Demand sources** | Read the work from ANY source — issues, PRs, CI, boards, assigns, TODO, CVEs | `source_adapter` · `intake` |
|
|
216
|
+
| 2 | **Pre-flight** | Arm the `$` kill-switch, check source auth, arm the 24/7 watcher | `watcher` · cost governance |
|
|
217
|
+
| 3 | **Discover + normalize** | List by metadata only, normalize, dedup, build the dependency DAG | `normalize` · `dependency_graph` |
|
|
218
|
+
| 4 | **Deep intake** | Read full body + comments, extract ACs, orient the code, write a plan | `orient` · signatures-read · **rtk** |
|
|
219
|
+
| 5 | **Route** | Fast-path (trivial) vs heavy-path; autoscale the fleet to the machine | `autoscale` · dual-path router |
|
|
220
|
+
| 6 | **Worker pool** | Continuous, conflict-aware fan-out; mechanical edits; per-item quality loop | `execute` · `worktree` · `deterministic_edit` |
|
|
221
|
+
| 7 | **Quality gates** | AC gate (real DoD), run-verification (UI → **Playwright** `web_verify`), adversarial review | `validate` · **`simplicio-review`** (thermos) |
|
|
222
|
+
| 8 | **Safety gates** | Secret-scan, irreversible-op human gate, 4-state verdict, attestation | `action_gate` · `human_gate` · `security` |
|
|
223
|
+
| 9 | **Deliver** | Commit, push, Draft PR, close in-source with evidence; verify reality | `pr` / `evidence` · `delivery_gate` |
|
|
224
|
+
| 10 | **Feedback loop** | CI → fix, review comments → adjust, branch-behind → additive rebase | `diagnostics` · `retry` |
|
|
225
|
+
| 11 | **24/7 watcher** | Re-feed the goal until an evidence-gated promise; idle when drained, wake on anything | **`simplicio-loop`** (Ralph) · `watcher` |
|
|
226
|
+
| ↻ | **Cross-cutting** | Token economy (terminal-first · catalog · **tee+CCR** · prose/memory compress) · model routing L0→L4 · learn | **`simplicio-orient`** (rtk+caveman) · **`simplicio-compress`** (caveman) · **`simplicio-learn`** (teaching) · **headroom** CCR |
|
|
227
|
+
|
|
228
|
+
Every layer has an always-works LLM fallback and binds a native command when the host provides one
|
|
229
|
+
— the same protocol on all 11 runtimes, only the speed differs.
|
|
230
|
+
|
|
231
|
+
---
|
|
232
|
+
|
|
233
|
+
## 🏛️ Design pillars (in detail)
|
|
234
|
+
|
|
235
|
+
Four mechanisms carry the orchestration power. Each is already wired into the skill — here is
|
|
236
|
+
exactly **where it lives** and how it works, drawn in detail.
|
|
237
|
+
|
|
238
|
+
| Pillar | Focus | Lives in | Labels |
|
|
239
|
+
|---|---|---|---|
|
|
240
|
+
| **DAG + pipeline** | parallelism by dependency, staged per-item | `dependency_graph` · [`references/orchestration.md`](.claude/skills/simplicio-tasks/references/orchestration.md) (Step 3 pool + 3c pipeline) | `enhancement` `orchestrator` `performance` `runtime` |
|
|
241
|
+
| **Worktree isolation** | parallel edits without corrupting the tree, merge-gated | `worktree` · orchestration.md "Conflict-AWARE isolation" + merge gate | `enhancement` `orchestrator` `runtime` |
|
|
242
|
+
| **Adversarial verify** | a panel of skeptics before "delivered" | [`quality-safety-delivery.md`](.claude/skills/simplicio-tasks/references/quality-safety-delivery.md) Step 4c · skill `simplicio-review` | `enhancement` `quality` `runtime` |
|
|
243
|
+
| **Loop budget cap** | anti-infinite-loop, dual exit | [`standing-loop-247.md`](.claude/skills/simplicio-tasks/references/standing-loop-247.md) §4 · skill `simplicio-loop` · `hooks/loop_stop.py` | `enhancement` `coding-loop` `runtime` |
|
|
244
|
+
|
|
245
|
+
### 1 · DAG + pipeline — parallelism by dependency, staged
|
|
246
|
+
|
|
247
|
+
```mermaid
|
|
248
|
+
flowchart TD
|
|
249
|
+
subgraph G1["Dependency DAG · resumable · deps gate order"]
|
|
250
|
+
direction TB
|
|
251
|
+
a["item A · no deps"]
|
|
252
|
+
b["item B · no deps"]
|
|
253
|
+
c["item C · needs A and B"]
|
|
254
|
+
d["item D · needs C"]
|
|
255
|
+
a --> c
|
|
256
|
+
b --> c
|
|
257
|
+
c --> d
|
|
258
|
+
end
|
|
259
|
+
a --> PA
|
|
260
|
+
b --> PB
|
|
261
|
+
subgraph G2["Per-item pipeline · no global barrier"]
|
|
262
|
+
direction LR
|
|
263
|
+
PA["A implement"] --> PA2["review"] --> PA3["merge"]
|
|
264
|
+
PB["B implement"] --> PB2["review"] --> PB3["merge"]
|
|
265
|
+
end
|
|
266
|
+
PA3 -. "A merged unblocks C" .-> c
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
Independents (A, B) fan out at once; dependents (C, D) wait on the DAG. Each item flows
|
|
270
|
+
implement → review → merge on its own, so A merges while B is still building — **staged, never a
|
|
271
|
+
global barrier**. Re-runs skip done nodes (resumable).
|
|
272
|
+
|
|
273
|
+
### 2 · Worktree isolation — parallel edits, merge-gated
|
|
274
|
+
|
|
275
|
+
```mermaid
|
|
276
|
+
flowchart TD
|
|
277
|
+
Q["items to run in parallel"] --> OV{"touch the same files?"}
|
|
278
|
+
OV -->|"no · disjoint files"| SH["shared checkout · own branch each · commit sequentially"]
|
|
279
|
+
OV -->|"yes · overlap"| WT["dedicated git worktree · SERIALIZED"]
|
|
280
|
+
SH --> MG
|
|
281
|
+
WT --> MG
|
|
282
|
+
MG["merge gate · full suite runs ONCE on the composed result"] --> OK{"green?"}
|
|
283
|
+
OK -->|"yes"| MERGED["merge + close with evidence"]
|
|
284
|
+
OK -->|"no"| FIX["reject · fix · never corrupt the tree"]
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
Disjoint items share one checkout (cheap, no N× re-link); only overlapping items pay for a
|
|
288
|
+
dedicated worktree and are serialized. The expensive full suite runs **once** on the merged
|
|
289
|
+
result — a stronger end-gate than N partial checks.
|
|
290
|
+
|
|
291
|
+
### 3 · Adversarial verify — a panel of skeptics before delivery
|
|
292
|
+
|
|
293
|
+
```mermaid
|
|
294
|
+
flowchart TD
|
|
295
|
+
IMPL["implementation · diff · run evidence · ACs"] --> PANEL
|
|
296
|
+
subgraph PANEL["Panel of skeptics (MEDIUM+) · each prompted to REFUTE"]
|
|
297
|
+
direction LR
|
|
298
|
+
V1["reviewer 1 · security / correctness"]
|
|
299
|
+
V2["reviewer 2 · code quality"]
|
|
300
|
+
V3["reviewer 3 · does-it-reproduce · web_verify"]
|
|
301
|
+
end
|
|
302
|
+
PANEL --> VOTE{"majority refute an AC?"}
|
|
303
|
+
VOTE -->|"yes"| BACK["back to fix"]
|
|
304
|
+
VOTE -->|"no"| SHIP["pass · deliver"]
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
For MEDIUM+ items, 2–3 independent reviewers each try to REFUTE (default to "not done" if
|
|
308
|
+
unsure). Majority-refute on any acceptance criterion sends it back. TRIVIAL/SMALL keep a single
|
|
309
|
+
self-review. (Delegated to `simplicio-review`; front-end diffs require a `web_verify` entry.)
|
|
310
|
+
|
|
311
|
+
### 4 · Loop budget cap — anti-infinite-loop, dual exit
|
|
312
|
+
|
|
313
|
+
```mermaid
|
|
314
|
+
flowchart TD
|
|
315
|
+
TURN["end of turn · stop hook"] --> P{"promise emitted AND evidence in-turn?"}
|
|
316
|
+
P -->|"yes"| EXIT1["EXIT success · close with evidence"]
|
|
317
|
+
P -->|"no"| CAP{"iteration over cap, OR budget halted, OR STOP signal?"}
|
|
318
|
+
CAP -->|"yes"| EXIT2["EXIT safety · stop, never a false done"]
|
|
319
|
+
CAP -->|"no"| REFEED["re-feed the goal · next iteration"]
|
|
320
|
+
REFEED --> TURN
|
|
321
|
+
```
|
|
322
|
+
|
|
323
|
+
The loop has **two independent exits**: a *success* exit (an evidence-gated `<promise>` that is
|
|
324
|
+
genuinely true) and a *safety* exit (`max_iterations` cap, the `$` budget kill-switch, or a STOP
|
|
325
|
+
signal). It never exits on a self-reported "done" — and never runs forever. This is
|
|
326
|
+
`hooks/loop_stop.py` (fail-open: any hook error → allow stop).
|
|
327
|
+
|
|
328
|
+
---
|
|
329
|
+
|
|
330
|
+
## 🔁 The loop
|
|
331
|
+
|
|
332
|
+
**Invoking `/simplicio-tasks` IS the loop** — it auto-arms on start (no separate `/loop` or
|
|
333
|
+
`/simplicio-loop` command) and keeps going until the queue is drained and verified, or a
|
|
334
|
+
cap/budget/STOP fires. The drive underneath is a **hardened Ralph loop** (`simplicio-loop`):
|
|
335
|
+
|
|
336
|
+
1. On invocation the goal is auto-written to a single, human-readable state file
|
|
337
|
+
(`.orchestrator/loop/scratchpad.md`) — trivially inspectable, editable, cancellable.
|
|
338
|
+
2. After each turn a **stop-hook** re-feeds the same goal, so the agent sees its own prior edits
|
|
339
|
+
(via git + the working tree) and converges. Token cost per cycle stays flat — no context
|
|
340
|
+
stuffing.
|
|
341
|
+
3. It exits **only** when a typed sentinel `<promise>EXACT TEXT</promise>` is emitted **and**
|
|
342
|
+
backed by concrete in-turn evidence (a passing gate, a merged-PR link, AC receipts), or when
|
|
343
|
+
a hard `max_iterations` cap / the cost kill-switch fires.
|
|
344
|
+
|
|
345
|
+
> **Never a false promise.** A `<promise>` with no evidence is ignored and the loop continues.
|
|
346
|
+
> This wires the loop directly into the repo's hard rule: *never close work without a merged PR
|
|
347
|
+
> or concrete evidence.*
|
|
348
|
+
|
|
349
|
+
On runtimes without hooks the loop **self-paces** via the host scheduler (cron / `/loop` / the
|
|
350
|
+
runtime's task runner) — same exit conditions. The hooks are cross-platform Python and
|
|
351
|
+
**fail-open**: a hook that errors always lets the agent stop. The real guards are the cap and
|
|
352
|
+
the budget, never hook cleverness.
|
|
353
|
+
|
|
354
|
+
---
|
|
355
|
+
|
|
356
|
+
## 📊 Token economy
|
|
357
|
+
|
|
358
|
+
The cheapest token is the one not spent. `simplicio-orient` + `simplicio-compress` fold the best
|
|
359
|
+
of **rtk** (compress the commands) and **caveman** (compress the talk) into the safety spine:
|
|
360
|
+
|
|
361
|
+
- **Terminal-first execution** — the shell knows facts exactly; the LLM approximates them
|
|
362
|
+
expensively. A cross-platform substitution table (Windows/macOS/Linux) answers 30+ facts via
|
|
363
|
+
`git`/`gh`/`rg`/`python3`. **Never simulate a command — run it.**
|
|
364
|
+
- **Output-reduction catalog** (data table) — per-command recipe + expected-savings% +
|
|
365
|
+
`skip-if-structured` guard. A raw `cargo check` costs ~2000 tokens to read; clamped, ~80.
|
|
366
|
+
- **tee-cache + reversible retrieve** *(rtk + headroom CCR)* — aggressive truncation is only safe
|
|
367
|
+
if recoverable: on failure the full output is written to `.orchestrator/tee/…log` and only the
|
|
368
|
+
path is surfaced; the agent recovers context with `retrieve <path> [--lines|--grep]` **without
|
|
369
|
+
re-running** the command. Clamp becomes a reversible decision, not a lossy one.
|
|
370
|
+
- **Signatures-only reads** *(from rtk)* — read a file's API surface (declarations, bodies
|
|
371
|
+
elided): a 600-line file becomes ~40 lines during intake.
|
|
372
|
+
- **Signal-tiered caps + success-collapse + dedup** — keep errors over noise; collapse a clean
|
|
373
|
+
run to one line; collapse repeated lines to `line xN` — always `unless errors present`.
|
|
374
|
+
- **Prose levels + memory compaction** *(from caveman)* — terse output that preserves
|
|
375
|
+
code/paths/URLs **byte-for-byte** (`transform_guard` fails closed on any lost token), plus a
|
|
376
|
+
one-time compaction of standing memory that amortizes across every future turn.
|
|
377
|
+
- **Honest baseline** — savings are measured against a realistic *"answer concisely"* control
|
|
378
|
+
arm (not a verbose strawman), count only **output** tokens (not reasoning), and are credited
|
|
379
|
+
**only on a verified-correct outcome**. Compression that fails its quality gate earns zero.
|
|
380
|
+
|
|
381
|
+
Every message ends with an honest line:
|
|
382
|
+
|
|
383
|
+
```
|
|
384
|
+
simplicio-tasks: ~<spent> tokens · baseline ~<control-arm> · saved ~<saved> (<pct>%)
|
|
385
|
+
```
|
|
386
|
+
|
|
387
|
+
Try it now, no wiring:
|
|
388
|
+
|
|
389
|
+
```bash
|
|
390
|
+
python3 hooks/orient_clamp.py -- cargo test # reduced output + tee log on failure
|
|
391
|
+
python3 hooks/orient_clamp.py --json -- git diff # machine summary
|
|
392
|
+
```
|
|
393
|
+
|
|
394
|
+
---
|
|
395
|
+
|
|
396
|
+
## 🏗️ Built on the shoulders of
|
|
397
|
+
|
|
398
|
+
simplicio-loop was built **after deeply studying** the best loop + token-economy work on
|
|
399
|
+
GitHub, and folds each into a focused skill — keeping the discipline, dropping the gimmicks.
|
|
400
|
+
|
|
401
|
+
| Project | What we took | What we left |
|
|
402
|
+
|---|---|---|
|
|
403
|
+
| 🪨 [**caveman**](https://github.com/JuliusBrussee/caveman) | terse prose levels, byte-preserve identifiers, memory compaction, honest *"answer concisely"* baseline | grammar word-dropping (degrades code & confirmations) |
|
|
404
|
+
| ⚙️ [**rtk**](https://github.com/rtk-ai/rtk) | per-command reduction catalog, signal-tiered caps, **tee-cache**, signatures-read, auto-rewrite hook + exclude list | per-language registries (runtime-specific) |
|
|
405
|
+
| ♾️ [**ralph-loop**](https://github.com/cursor/plugins/tree/main/ralph-loop) | single-file loop state, exact-match promise sentinel, two-hook split | trust-the-model completion (we make it **evidence-gated**) |
|
|
406
|
+
| 🔥 [**thermos**](https://github.com/cursor/plugins/tree/main/thermos) | single-message parallel reviewers, separate rubrics, dedup-on-synthesis | — |
|
|
407
|
+
| 🎓 [**teaching**](https://github.com/cursor/plugins/tree/main/teaching) | retrospective that persists state so the next cycle doesn't re-derive | the human-learning domain itself |
|
|
408
|
+
| 🧭 outcome-oriented execution | converge on the end state; planned, scoped, reversible intermediate breakage | — |
|
|
409
|
+
| 🧠 [**headroom**](https://github.com/headroomlabs-ai/headroom) | **reversible** compress-cache-retrieve (CCR) over the tee-cache; content-type routing taxonomy | the trained model + traffic proxy (contradict terminal-first, runtime-agnostic design) |
|
|
410
|
+
| 🎭 [**Playwright**](https://github.com/microsoft/playwright) (+[mcp](https://github.com/microsoft/playwright-mcp), [python](https://github.com/microsoft/playwright-python)) | drive a real browser for front-end proof — screenshot + trace as `web_verify` evidence | DOM/pixels in context (evidence is the artifact path, not bytes) |
|
|
411
|
+
|
|
412
|
+
> They reduce tokens; simplicio-loop **does the work** and reduces tokens while doing it.
|
|
413
|
+
|
|
414
|
+
---
|
|
415
|
+
|
|
416
|
+
## 🧩 The 43 extension points
|
|
417
|
+
|
|
418
|
+
Every step of work happens at a **named extension point**. If a host runtime exposes a native
|
|
419
|
+
capability it **binds** (deterministic, near-zero token); otherwise the LLM performs the
|
|
420
|
+
**fallback** with standard tools. The skill depends on the abstraction, never on a runtime.
|
|
421
|
+
|
|
422
|
+
<details>
|
|
423
|
+
<summary><strong>Orchestration & scale</strong></summary>
|
|
424
|
+
|
|
425
|
+
`orient` · `normalize` · `intake` · `source_adapter` · `autoscale` · `plan`/`decide` ·
|
|
426
|
+
`execute` · `issue_factory` · `claim` · `worktree` · `dependency_graph` · `durable_workflow` ·
|
|
427
|
+
`work_queue` · `resource_governor` · `model_route` · `model_preflight`
|
|
428
|
+
</details>
|
|
429
|
+
|
|
430
|
+
<details>
|
|
431
|
+
<summary><strong>Editing, quality & evidence</strong></summary>
|
|
432
|
+
|
|
433
|
+
`deterministic_edit` · `diagnostics` · `toolchain_detect` · `validate`/`smoke` ·
|
|
434
|
+
`delivery_gate` · `endpoint_compare` · `web_verify` · `pr`/`evidence` · `retry` ·
|
|
435
|
+
`reuse_precedent` · `trajectory` · `learn` · `status` · `capability_rank`
|
|
436
|
+
</details>
|
|
437
|
+
|
|
438
|
+
<details>
|
|
439
|
+
<summary><strong>Tokens, context & safety</strong></summary>
|
|
440
|
+
|
|
441
|
+
`recall` · `compress` · `prompt_budget` · `shell_exec` · `transform_guard` · `action_gate` ·
|
|
442
|
+
`security` · `human_gate` · `notify` · `checkpoint_restore` · `watcher` · `savings_ledger` ·
|
|
443
|
+
`web_research`
|
|
444
|
+
</details>
|
|
445
|
+
|
|
446
|
+
Full table with fallbacks:
|
|
447
|
+
[`references/extension-points.md`](.claude/skills/simplicio-tasks/references/extension-points.md).
|
|
448
|
+
|
|
449
|
+
---
|
|
450
|
+
|
|
451
|
+
## 🚀 Install & use
|
|
452
|
+
|
|
453
|
+
```bash
|
|
454
|
+
git clone https://github.com/wesleysimplicio/simplicio-loop
|
|
455
|
+
cd simplicio-loop
|
|
456
|
+
|
|
457
|
+
# install for your runtime (omit <runtime> to auto-detect)
|
|
458
|
+
bash scripts/install.sh <runtime> [--global] # macOS / Linux
|
|
459
|
+
pwsh scripts/install.ps1 <runtime> [-Global] # Windows
|
|
460
|
+
# <runtime> ∈ claude codex vscode cursor antigravity kiro opencode gemini aider hermes openclaw
|
|
461
|
+
```
|
|
462
|
+
|
|
463
|
+
Or, on Claude Code / Cursor, add it as a marketplace plugin:
|
|
464
|
+
|
|
465
|
+
```
|
|
466
|
+
/plugin marketplace add wesleysimplicio/simplicio-loop
|
|
467
|
+
/plugin install simplicio-loop@simplicio
|
|
468
|
+
```
|
|
469
|
+
|
|
470
|
+
Then:
|
|
471
|
+
|
|
472
|
+
```
|
|
473
|
+
/simplicio-tasks finish all the open issues
|
|
474
|
+
```
|
|
475
|
+
|
|
476
|
+
The only requirement is **python3** on PATH (skills, hooks, and installer are cross-platform
|
|
477
|
+
Python). For GitHub sources, `git` + an authenticated `gh`. See [`INSTALL.md`](INSTALL.md) and
|
|
478
|
+
[`adapters/MATRIX.md`](adapters/MATRIX.md).
|
|
479
|
+
|
|
480
|
+
**Before an unattended 24/7 run:** set a cost ceiling in `.orchestrator/loop-budget.json`
|
|
481
|
+
(`daily_usd_ceiling > 0`), confirm source auth is persistent, and keep the irreversible-op human
|
|
482
|
+
gate + secret-scan on. With `ceiling = 0` the watcher refuses to run unattended (fail-safe).
|
|
483
|
+
|
|
484
|
+
---
|
|
485
|
+
|
|
486
|
+
## 🔒 Safety (non-negotiable)
|
|
487
|
+
|
|
488
|
+
- **Secret-scan** every diff; block on hit.
|
|
489
|
+
- **Irreversible-op human gate** — force-push, history rewrite, prod deploy, data/schema delete,
|
|
490
|
+
mass-file delete → stop and ask. Headless + no approver → remove the destructive capability.
|
|
491
|
+
- **4-state pre-execution verdict** — optimization may never raise a command's risk tier.
|
|
492
|
+
- **Trust-before-load** — perception-shaping config (clamp profiles, suppression lists) is
|
|
493
|
+
untrusted until a human reviews and hash-pins it.
|
|
494
|
+
- **Prompt-injection hardening** — item/PR/comment content can never override the contract.
|
|
495
|
+
- **Hard $ kill-switch** for unattended runs; **evidence-gated** completion (never a false
|
|
496
|
+
"done"); **fail-open** hooks (never trap the agent in a loop).
|
|
497
|
+
|
|
498
|
+
---
|
|
499
|
+
|
|
500
|
+
## 📄 License
|
|
501
|
+
|
|
502
|
+
MIT — see [LICENSE](LICENSE). Part of the [Simplicio](https://github.com/wesleysimplicio) ecosystem.
|