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.
Files changed (34) hide show
  1. simplicio_loop-1.0.2/LICENSE +21 -0
  2. simplicio_loop-1.0.2/MANIFEST.in +3 -0
  3. simplicio_loop-1.0.2/PKG-INFO +75 -0
  4. simplicio_loop-1.0.2/PYPI.md +52 -0
  5. simplicio_loop-1.0.2/README.md +502 -0
  6. simplicio_loop-1.0.2/pyproject.toml +38 -0
  7. simplicio_loop-1.0.2/setup.cfg +4 -0
  8. simplicio_loop-1.0.2/simplicio_loop/__init__.py +8 -0
  9. simplicio_loop-1.0.2/simplicio_loop/_bundle/hooks/hooks.claude.json +20 -0
  10. simplicio_loop-1.0.2/simplicio_loop/_bundle/hooks/hooks.json +12 -0
  11. simplicio_loop-1.0.2/simplicio_loop/_bundle/hooks/learn_stop.py +38 -0
  12. simplicio_loop-1.0.2/simplicio_loop/_bundle/hooks/loop_capture.py +67 -0
  13. simplicio_loop-1.0.2/simplicio_loop/_bundle/hooks/loop_stop.py +205 -0
  14. simplicio_loop-1.0.2/simplicio_loop/_bundle/hooks/orient_clamp.py +167 -0
  15. simplicio_loop-1.0.2/simplicio_loop/_bundle/hooks/orient_rewrite.py +96 -0
  16. simplicio_loop-1.0.2/simplicio_loop/_bundle/skills/simplicio-compress/SKILL.md +86 -0
  17. simplicio_loop-1.0.2/simplicio_loop/_bundle/skills/simplicio-learn/SKILL.md +70 -0
  18. simplicio_loop-1.0.2/simplicio_loop/_bundle/skills/simplicio-loop/SKILL.md +108 -0
  19. simplicio_loop-1.0.2/simplicio_loop/_bundle/skills/simplicio-orient/SKILL.md +188 -0
  20. simplicio_loop-1.0.2/simplicio_loop/_bundle/skills/simplicio-review/SKILL.md +94 -0
  21. simplicio_loop-1.0.2/simplicio_loop/_bundle/skills/simplicio-tasks/SKILL.md +213 -0
  22. simplicio_loop-1.0.2/simplicio_loop/_bundle/skills/simplicio-tasks/references/azure-devops-adapter.md +69 -0
  23. simplicio_loop-1.0.2/simplicio_loop/_bundle/skills/simplicio-tasks/references/extension-points.md +60 -0
  24. simplicio_loop-1.0.2/simplicio_loop/_bundle/skills/simplicio-tasks/references/orchestration.md +131 -0
  25. simplicio_loop-1.0.2/simplicio_loop/_bundle/skills/simplicio-tasks/references/quality-safety-delivery.md +121 -0
  26. simplicio_loop-1.0.2/simplicio_loop/_bundle/skills/simplicio-tasks/references/standing-loop-247.md +117 -0
  27. simplicio_loop-1.0.2/simplicio_loop/_bundle/skills/simplicio-tasks/references/token-economy.md +175 -0
  28. simplicio_loop-1.0.2/simplicio_loop/_bundle/skills/simplicio-tasks/references/web-evidence.md +93 -0
  29. simplicio_loop-1.0.2/simplicio_loop/cli.py +76 -0
  30. simplicio_loop-1.0.2/simplicio_loop.egg-info/PKG-INFO +75 -0
  31. simplicio_loop-1.0.2/simplicio_loop.egg-info/SOURCES.txt +32 -0
  32. simplicio_loop-1.0.2/simplicio_loop.egg-info/dependency_links.txt +1 -0
  33. simplicio_loop-1.0.2/simplicio_loop.egg-info/entry_points.txt +2 -0
  34. 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,3 @@
1
+ include PYPI.md
2
+ include LICENSE
3
+ recursive-include simplicio_loop/_bundle *
@@ -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
+ ![simplicio-loop](https://raw.githubusercontent.com/wesleysimplicio/simplicio-loop/main/assets/simplicio-loop-hero.jpg)
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
+ ![simplicio-loop](https://raw.githubusercontent.com/wesleysimplicio/simplicio-loop/main/assets/simplicio-loop-hero.jpg)
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.