simplicio-loop 3.20.1__tar.gz → 3.22.4__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-3.20.1/simplicio_loop.egg-info → simplicio_loop-3.22.4}/PKG-INFO +14 -13
- {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/PYPI.md +10 -9
- {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/README.md +132 -61
- {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/pyproject.toml +4 -4
- {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/simplicio_loop/__init__.py +2 -2
- {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/simplicio_loop/_bundle/hooks/README.md +36 -6
- {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/simplicio_loop/_bundle/hooks/action_gate.py +57 -0
- {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/simplicio_loop/_bundle/hooks/hooks.claude.json +1 -2
- {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/simplicio_loop/_bundle/hooks/hooks.json +1 -2
- {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/simplicio_loop/_bundle/hooks/loop_stop.py +287 -41
- simplicio_loop-3.22.4/simplicio_loop/_bundle/hooks/pre-commit.py +138 -0
- {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/simplicio_loop/_bundle/scripts/cross_agent_wiki.py +2 -1
- simplicio_loop-3.22.4/simplicio_loop/_bundle/skills/simplicio-autoresearch/SKILL.md +165 -0
- simplicio_loop-3.22.4/simplicio_loop/_bundle/skills/simplicio-loop/SKILL.md +379 -0
- {simplicio_loop-3.20.1/simplicio_loop/_bundle/skills/simplicio-tasks → simplicio_loop-3.22.4/simplicio_loop/_bundle/skills/simplicio-loop}/references/agentsview-adapter.md +7 -19
- simplicio_loop-3.22.4/simplicio_loop/_bundle/skills/simplicio-loop/references/bound-operators.md +106 -0
- simplicio_loop-3.22.4/simplicio_loop/_bundle/skills/simplicio-loop/references/claims-gate.md +62 -0
- simplicio_loop-3.22.4/simplicio_loop/_bundle/skills/simplicio-loop/references/cross-agent-wiki.md +40 -0
- simplicio_loop-3.22.4/simplicio_loop/_bundle/skills/simplicio-loop/references/cross-repo-integration.md +42 -0
- {simplicio_loop-3.20.1/simplicio_loop/_bundle/skills/simplicio-tasks → simplicio_loop-3.22.4/simplicio_loop/_bundle/skills/simplicio-loop}/references/extension-points.md +23 -3
- simplicio_loop-3.22.4/simplicio_loop/_bundle/skills/simplicio-loop/references/hierarchical-planner.md +39 -0
- {simplicio_loop-3.20.1/simplicio_loop/_bundle/skills/simplicio-tasks → simplicio_loop-3.22.4/simplicio_loop/_bundle/skills/simplicio-loop}/references/lmcache-adapter.md +1 -1
- {simplicio_loop-3.20.1/simplicio_loop/_bundle/skills/simplicio-tasks → simplicio_loop-3.22.4/simplicio_loop/_bundle/skills/simplicio-loop}/references/orchestration.md +3 -3
- simplicio_loop-3.22.4/simplicio_loop/_bundle/skills/simplicio-loop/references/quality-safety-delivery.md +228 -0
- simplicio_loop-3.22.4/simplicio_loop/_bundle/skills/simplicio-loop/references/run-journal-stall-detector.md +47 -0
- simplicio_loop-3.22.4/simplicio_loop/_bundle/skills/simplicio-loop/references/spindle-handoff.md +94 -0
- {simplicio_loop-3.20.1/simplicio_loop/_bundle/skills/simplicio-tasks → simplicio_loop-3.22.4/simplicio_loop/_bundle/skills/simplicio-loop}/references/standing-loop-247.md +7 -19
- simplicio_loop-3.22.4/simplicio_loop/_bundle/skills/simplicio-loop/references/triage-verify-detail.md +70 -0
- {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/simplicio_loop/_bundle/skills/simplicio-orient/SKILL.md +1 -0
- simplicio_loop-3.22.4/simplicio_loop/_bundle/skills/simplicio-tasks/SKILL.md +32 -0
- simplicio_loop-3.22.4/simplicio_loop/_bundle/skills/simplicio-tasks/references/agentsview-adapter.md +198 -0
- simplicio_loop-3.22.4/simplicio_loop/_bundle/skills/simplicio-tasks/references/azure-devops-adapter.md +69 -0
- simplicio_loop-3.22.4/simplicio_loop/_bundle/skills/simplicio-tasks/references/extension-points.md +99 -0
- simplicio_loop-3.22.4/simplicio_loop/_bundle/skills/simplicio-tasks/references/lmcache-adapter.md +632 -0
- simplicio_loop-3.22.4/simplicio_loop/_bundle/skills/simplicio-tasks/references/orchestration.md +187 -0
- {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/simplicio_loop/_bundle/skills/simplicio-tasks/references/quality-safety-delivery.md +6 -3
- simplicio_loop-3.22.4/simplicio_loop/_bundle/skills/simplicio-tasks/references/standing-loop-247.md +105 -0
- simplicio_loop-3.22.4/simplicio_loop/_bundle/skills/simplicio-tasks/references/token-capture.md +124 -0
- simplicio_loop-3.22.4/simplicio_loop/_bundle/skills/simplicio-tasks/references/token-economy.md +231 -0
- simplicio_loop-3.22.4/simplicio_loop/_bundle/skills/simplicio-tasks/references/understand-anything-adapter.md +591 -0
- simplicio_loop-3.22.4/simplicio_loop/_bundle/skills/simplicio-tasks/references/video-evidence.md +108 -0
- simplicio_loop-3.22.4/simplicio_loop/_bundle/skills/simplicio-tasks/references/web-evidence.md +93 -0
- {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/simplicio_loop/_bundle/tests/test_loop_e2e.py +172 -17
- {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/simplicio_loop/cli.py +2 -2
- {simplicio_loop-3.20.1 → simplicio_loop-3.22.4/simplicio_loop.egg-info}/PKG-INFO +14 -13
- {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/simplicio_loop.egg-info/SOURCES.txt +44 -1
- {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/simplicio_loop.egg-info/requires.txt +2 -2
- {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/tests/test_action_gate.py +75 -0
- simplicio_loop-3.22.4/tests/test_agentsview_adapter.py +188 -0
- simplicio_loop-3.22.4/tests/test_autoresearch.py +161 -0
- simplicio_loop-3.22.4/tests/test_az_boards_adapter.py +184 -0
- simplicio_loop-3.22.4/tests/test_claims_audit.py +173 -0
- simplicio_loop-3.22.4/tests/test_claims_manifest_unit.py +63 -0
- simplicio_loop-3.22.4/tests/test_dashboard_hook.py +180 -0
- simplicio_loop-3.22.4/tests/test_doctor_smoke.py +104 -0
- simplicio_loop-3.22.4/tests/test_evidence_chain.py +168 -0
- simplicio_loop-3.22.4/tests/test_fan_out_flow.py +86 -0
- simplicio_loop-3.22.4/tests/test_fan_out_unit.py +95 -0
- {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/tests/test_flow_audit.py +31 -0
- simplicio_loop-3.22.4/tests/test_hooks_coverage.py +226 -0
- simplicio_loop-3.22.4/tests/test_install_lib.py +143 -0
- simplicio_loop-3.22.4/tests/test_learn_pipeline_removed.py +49 -0
- {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/tests/test_loop_e2e.py +172 -17
- simplicio_loop-3.22.4/tests/test_precommit_bundle_sync.py +143 -0
- simplicio_loop-3.22.4/tests/test_repo_conventions_architecture.py +80 -0
- simplicio_loop-3.22.4/tests/test_schema_verify_integration.py +103 -0
- simplicio_loop-3.22.4/tests/test_schema_verify_unit.py +78 -0
- simplicio_loop-3.22.4/tests/test_system_check.py +72 -0
- simplicio_loop-3.22.4/tests/test_token_budget.py +102 -0
- simplicio_loop-3.22.4/tests/test_toon_codec.py +188 -0
- simplicio_loop-3.22.4/tests/test_verify_adapters_integration.py +45 -0
- simplicio_loop-3.22.4/tests/test_worker_cli_contract.py +69 -0
- {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/tests/test_worker_selftests.py +44 -0
- simplicio_loop-3.20.1/simplicio_loop/_bundle/hooks/learn_stop.py +0 -38
- simplicio_loop-3.20.1/simplicio_loop/_bundle/skills/simplicio-loop/SKILL.md +0 -676
- simplicio_loop-3.20.1/simplicio_loop/_bundle/skills/simplicio-tasks/SKILL.md +0 -369
- {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/LICENSE +0 -0
- {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/MANIFEST.in +0 -0
- {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/setup.cfg +0 -0
- {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/simplicio_loop/_bundle/hooks/loop_capture.py +0 -0
- {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/simplicio_loop/_bundle/hooks/orient_clamp.py +0 -0
- {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/simplicio_loop/_bundle/hooks/orient_rewrite.py +0 -0
- {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/simplicio_loop/_bundle/hooks/simplicio_dashboard.py +0 -0
- {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/simplicio_loop/_bundle/hooks/simplicio_watch.py +0 -0
- {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/simplicio_loop/_bundle/scripts/hierarchical_planner.py +0 -0
- {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/simplicio_loop/_bundle/skills/simplicio-compress/SKILL.md +0 -0
- {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/simplicio_loop/_bundle/skills/simplicio-learn/SKILL.md +0 -0
- {simplicio_loop-3.20.1/simplicio_loop/_bundle/skills/simplicio-tasks → simplicio_loop-3.22.4/simplicio_loop/_bundle/skills/simplicio-loop}/references/azure-devops-adapter.md +0 -0
- {simplicio_loop-3.20.1/simplicio_loop/_bundle/skills/simplicio-tasks → simplicio_loop-3.22.4/simplicio_loop/_bundle/skills/simplicio-loop}/references/token-capture.md +0 -0
- {simplicio_loop-3.20.1/simplicio_loop/_bundle/skills/simplicio-tasks → simplicio_loop-3.22.4/simplicio_loop/_bundle/skills/simplicio-loop}/references/token-economy.md +0 -0
- {simplicio_loop-3.20.1/simplicio_loop/_bundle/skills/simplicio-tasks → simplicio_loop-3.22.4/simplicio_loop/_bundle/skills/simplicio-loop}/references/understand-anything-adapter.md +0 -0
- {simplicio_loop-3.20.1/simplicio_loop/_bundle/skills/simplicio-tasks → simplicio_loop-3.22.4/simplicio_loop/_bundle/skills/simplicio-loop}/references/video-evidence.md +0 -0
- {simplicio_loop-3.20.1/simplicio_loop/_bundle/skills/simplicio-tasks → simplicio_loop-3.22.4/simplicio_loop/_bundle/skills/simplicio-loop}/references/web-evidence.md +0 -0
- {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/simplicio_loop/_bundle/skills/simplicio-review/SKILL.md +0 -0
- {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/simplicio_loop/_bundle/tests/_selfrun.py +0 -0
- {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/simplicio_loop/_bundle/tests/test_cross_agent_wiki.py +0 -0
- {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/simplicio_loop.egg-info/dependency_links.txt +0 -0
- {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/simplicio_loop.egg-info/entry_points.txt +0 -0
- {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/simplicio_loop.egg-info/top_level.txt +0 -0
- {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/tests/test_cross_agent_wiki.py +0 -0
- {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/tests/test_hierarchical_planner.py +0 -0
- {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/tests/test_impact_audit.py +0 -0
- {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/tests/test_worker_smoke.py +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: simplicio-loop
|
|
3
|
-
Version: 3.
|
|
4
|
-
Summary: The Universal Looping AI Orchestrator — a runtime-agnostic super-plugin (
|
|
3
|
+
Version: 3.22.4
|
|
4
|
+
Summary: The Universal Looping AI Orchestrator — a runtime-agnostic super-plugin (7 skills) that drains any queue of work end-to-end on any LLM/runtime.
|
|
5
5
|
Author-email: Wesley Simplicio <wesleybob4@gmail.com>
|
|
6
6
|
License: MIT
|
|
7
7
|
Project-URL: Homepage, https://github.com/wesleysimplicio/simplicio-loop
|
|
@@ -19,8 +19,8 @@ Classifier: Operating System :: OS Independent
|
|
|
19
19
|
Requires-Python: >=3.8
|
|
20
20
|
Description-Content-Type: text/markdown
|
|
21
21
|
License-File: LICENSE
|
|
22
|
-
Requires-Dist: simplicio-mapper>=0.
|
|
23
|
-
Requires-Dist: simplicio-cli>=0.9.
|
|
22
|
+
Requires-Dist: simplicio-mapper>=0.16.0
|
|
23
|
+
Requires-Dist: simplicio-cli>=0.9.3
|
|
24
24
|
Provides-Extra: dev
|
|
25
25
|
Requires-Dist: pytest>=7; extra == "dev"
|
|
26
26
|
Provides-Extra: ml
|
|
@@ -30,10 +30,10 @@ Dynamic: license-file
|
|
|
30
30
|
|
|
31
31
|
# simplicio-loop
|
|
32
32
|
|
|
33
|
-
**The Universal Looping AI Orchestrator** — a runtime-agnostic **super-plugin** (
|
|
33
|
+
**The Universal Looping AI Orchestrator** — a runtime-agnostic **super-plugin** (7 skills) that
|
|
34
34
|
drains any queue of work end-to-end on **any LLM / runtime**:
|
|
35
|
-
`discover → implement → verify → merge → close → watch 24/7`, behind safety gates and
|
|
36
|
-
|
|
35
|
+
`discover → implement → verify → merge → close → watch 24/7`, behind safety gates and evidence
|
|
36
|
+
checks, at up to **96% fewer tokens**. Not a chatbot. A worker.
|
|
37
37
|
|
|
38
38
|

|
|
39
39
|
|
|
@@ -53,26 +53,27 @@ simplicio-loop install --global # into ~/.claude (all projects)
|
|
|
53
53
|
Now invoke it from your agent runtime (Claude Code, Cursor, Codex, Gemini, …):
|
|
54
54
|
|
|
55
55
|
```
|
|
56
|
-
/simplicio-
|
|
56
|
+
/simplicio-loop finish all the open issues
|
|
57
57
|
```
|
|
58
58
|
|
|
59
|
-
## What you get —
|
|
59
|
+
## What you get — 7 skills
|
|
60
60
|
|
|
61
61
|
| Skill | What it does |
|
|
62
62
|
|---|---|
|
|
63
|
-
| `simplicio-
|
|
64
|
-
| `simplicio-
|
|
63
|
+
| `simplicio-loop` | Unified public entrypoint: orchestrator core + hardened loop behind one command. |
|
|
64
|
+
| `simplicio-tasks` | Legacy alias kept only for compatibility with older installs and saved prompts. |
|
|
65
65
|
| `simplicio-orient` | Terminal-first token economy — output-reduction catalog, tee-cache, signatures-read. |
|
|
66
66
|
| `simplicio-review` | Adversarial review — parallel subagents on distinct rubrics, deduped into one verdict. |
|
|
67
67
|
| `simplicio-compress` | Output + memory compression, byte-preserving identifiers. |
|
|
68
|
+
| `simplicio-autoresearch` | Evolutionary mutate/eval/keep-revert optimizer — yool-guardrailed caps, git-isolated branch, anti-Goodhart gate-first eval. |
|
|
68
69
|
| `simplicio-learn` | Retrospective — durable, deduped lessons written back to memory. |
|
|
69
70
|
|
|
70
71
|
## Highlights
|
|
71
72
|
|
|
72
73
|
- **11 runtimes, one protocol** — Claude Code, Codex, VS Code/Copilot, Cursor, Antigravity, Kiro,
|
|
73
74
|
OpenCode, Gemini, Aider, Hermes, OpenClaw.
|
|
74
|
-
- **Evidence-gated completion** — never a false "done"; exits only on a verified `<promise
|
|
75
|
-
cap
|
|
75
|
+
- **Evidence-gated completion** — never a false "done"; exits only on a verified `<promise>`,
|
|
76
|
+
cap, spindle handoff, or STOP.
|
|
76
77
|
- **Token economy** — honest "answer concisely" baseline; savings credited only on verified-correct
|
|
77
78
|
outcomes.
|
|
78
79
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# simplicio-loop
|
|
2
2
|
|
|
3
|
-
**The Universal Looping AI Orchestrator** — a runtime-agnostic **super-plugin** (
|
|
3
|
+
**The Universal Looping AI Orchestrator** — a runtime-agnostic **super-plugin** (7 skills) that
|
|
4
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
|
|
6
|
-
|
|
5
|
+
`discover → implement → verify → merge → close → watch 24/7`, behind safety gates and evidence
|
|
6
|
+
checks, at up to **96% fewer tokens**. Not a chatbot. A worker.
|
|
7
7
|
|
|
8
8
|

|
|
9
9
|
|
|
@@ -23,26 +23,27 @@ simplicio-loop install --global # into ~/.claude (all projects)
|
|
|
23
23
|
Now invoke it from your agent runtime (Claude Code, Cursor, Codex, Gemini, …):
|
|
24
24
|
|
|
25
25
|
```
|
|
26
|
-
/simplicio-
|
|
26
|
+
/simplicio-loop finish all the open issues
|
|
27
27
|
```
|
|
28
28
|
|
|
29
|
-
## What you get —
|
|
29
|
+
## What you get — 7 skills
|
|
30
30
|
|
|
31
31
|
| Skill | What it does |
|
|
32
32
|
|---|---|
|
|
33
|
-
| `simplicio-
|
|
34
|
-
| `simplicio-
|
|
33
|
+
| `simplicio-loop` | Unified public entrypoint: orchestrator core + hardened loop behind one command. |
|
|
34
|
+
| `simplicio-tasks` | Legacy alias kept only for compatibility with older installs and saved prompts. |
|
|
35
35
|
| `simplicio-orient` | Terminal-first token economy — output-reduction catalog, tee-cache, signatures-read. |
|
|
36
36
|
| `simplicio-review` | Adversarial review — parallel subagents on distinct rubrics, deduped into one verdict. |
|
|
37
37
|
| `simplicio-compress` | Output + memory compression, byte-preserving identifiers. |
|
|
38
|
+
| `simplicio-autoresearch` | Evolutionary mutate/eval/keep-revert optimizer — yool-guardrailed caps, git-isolated branch, anti-Goodhart gate-first eval. |
|
|
38
39
|
| `simplicio-learn` | Retrospective — durable, deduped lessons written back to memory. |
|
|
39
40
|
|
|
40
41
|
## Highlights
|
|
41
42
|
|
|
42
43
|
- **11 runtimes, one protocol** — Claude Code, Codex, VS Code/Copilot, Cursor, Antigravity, Kiro,
|
|
43
44
|
OpenCode, Gemini, Aider, Hermes, OpenClaw.
|
|
44
|
-
- **Evidence-gated completion** — never a false "done"; exits only on a verified `<promise
|
|
45
|
-
cap
|
|
45
|
+
- **Evidence-gated completion** — never a false "done"; exits only on a verified `<promise>`,
|
|
46
|
+
cap, spindle handoff, or STOP.
|
|
46
47
|
- **Token economy** — honest "answer concisely" baseline; savings credited only on verified-correct
|
|
47
48
|
outcomes.
|
|
48
49
|
|
|
@@ -1,23 +1,24 @@
|
|
|
1
|
-
# 🔁 simplicio-
|
|
1
|
+
# 🔁 simplicio-loop — The Universal Looping AI Orchestrator
|
|
2
2
|
|
|
3
3
|
<p align="center">
|
|
4
4
|
<img src="assets/simplicio-loop-hero.jpg" alt="simplicio-loop" width="920" />
|
|
5
5
|
</p>
|
|
6
6
|
|
|
7
7
|
<p align="center">
|
|
8
|
+
<a href="https://github.com/wesleysimplicio/simplicio-loop/actions/workflows/ci.yml"><img src="https://github.com/wesleysimplicio/simplicio-loop/actions/workflows/ci.yml/badge.svg" alt="CI"></a>
|
|
8
9
|
<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-
|
|
10
|
+
<a href="#-the-7-skills--5-accelerators"><img src="https://img.shields.io/badge/skills-7-7C3AED" alt="7 skills"></a>
|
|
10
11
|
<a href="#-source-adapters"><img src="https://img.shields.io/badge/source%20adapters-5-00E08A" alt="5 source adapters"></a>
|
|
11
|
-
<a href="#-11-runtimes-one-protocol"><img src="https://img.shields.io/badge/runtimes-11-2563EB" alt="11 runtimes"></a>
|
|
12
|
+
<a href="#-11-runtimes-one-protocol"><img src="https://img.shields.io/badge/runtimes-11%20(3%20garantidos%2B8%20best--effort)-2563EB" alt="11 runtimes (3 guaranteed + 8 best-effort)"></a>
|
|
12
13
|
<a href="#-the-48-extension-points"><img src="https://img.shields.io/badge/extension%20points-48-00E08A" alt="48 extension points"></a>
|
|
13
|
-
<a href="#-token-economy"><img src="https://img.shields.io/badge/
|
|
14
|
+
<a href="#-token-economy"><img src="https://img.shields.io/badge/savings-unverified-888888" alt="Savings — unverified"></a>
|
|
14
15
|
<a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue" alt="License"></a>
|
|
15
16
|
<a href="https://discord.gg/wM6tr7xVb"><img src="https://img.shields.io/badge/Discord-Join%20Simplicio-5865F2?logo=discord&logoColor=white" alt="Join the Simplicio Discord"></a>
|
|
16
17
|
</p>
|
|
17
18
|
|
|
18
19
|
<p align="center">
|
|
19
20
|
<a href="#-tldr">TL;DR</a> ·
|
|
20
|
-
<a href="#-the-
|
|
21
|
+
<a href="#-the-7-skills--5-accelerators">7 Skills</a> ·
|
|
21
22
|
<a href="#-source-adapters">Source Adapters</a> ·
|
|
22
23
|
<a href="#-11-runtimes-one-protocol">11 Runtimes</a> ·
|
|
23
24
|
<a href="#-the-loop">The Loop</a> ·
|
|
@@ -49,8 +50,8 @@
|
|
|
49
50
|
|
|
50
51
|
## ⚡ TL;DR
|
|
51
52
|
|
|
52
|
-
**simplicio-
|
|
53
|
-
orchestrator (invoked as **`/simplicio-
|
|
53
|
+
**simplicio-loop** is a runtime-agnostic **super-plugin** — one autonomous looping
|
|
54
|
+
orchestrator (invoked as **`/simplicio-loop`**) plus **five satellite skills** — that turns any
|
|
54
55
|
strong LLM (Claude, Codex, Copilot, Gemini, Cursor, local models) into a self-driving worker. You
|
|
55
56
|
point it at a body of work — *"finish all the open issues"*, *"clear the CI queue"*, *"drain the Jira board"* — and it
|
|
56
57
|
runs the whole lifecycle on its own:
|
|
@@ -60,11 +61,11 @@ runs the whole lifecycle on its own:
|
|
|
60
61
|
It discovers work from any source (GitHub Issues, Jira, Azure DevOps, agentsview sessions, and
|
|
61
62
|
more), dedups, auto-scales an agent fleet to your machine, implements each item through a quality
|
|
62
63
|
loop that **runs the code (not just compiles it)**, opens PRs, resolves CI/review feedback, merges,
|
|
63
|
-
and keeps watching **24/7** for new work — all behind safety gates and
|
|
64
|
+
and keeps watching **24/7** for new work — all behind safety gates and evidence checks.
|
|
64
65
|
|
|
65
66
|
```text
|
|
66
|
-
/simplicio-
|
|
67
|
-
→ identity + pre-flight (
|
|
67
|
+
/simplicio-loop finish all open issues
|
|
68
|
+
→ identity + pre-flight (auth, watcher, STOP path)
|
|
68
69
|
→ discover 50 issues · dedup · build dependency DAG
|
|
69
70
|
→ autoscale fleet = 14 · pipeline implement→review→merge
|
|
70
71
|
→ each item: read body+ACs → orient code → plan → edit → run → verify → PR
|
|
@@ -75,32 +76,36 @@ and keeps watching **24/7** for new work — all behind safety gates and a hard
|
|
|
75
76
|
Three things make it different: it is a **super-plugin of focused skills**, it runs the **same
|
|
76
77
|
protocol on 11 runtimes**, and it does all of this with **aggressive, honest token economy**.
|
|
77
78
|
|
|
79
|
+
The skill installs **standalone** too: you do **not** need `simplicio-runtime` or any mandatory
|
|
80
|
+
runtime-native component just to use `simplicio-loop`. Native binds, operators, capture services,
|
|
81
|
+
and the wider Simplicio runtime stack are optional accelerators on top of the core skill bundle.
|
|
82
|
+
|
|
83
|
+
<p align="center">
|
|
84
|
+
<img src="assets/simplicio-loop-infographic.png" alt="simplicio-loop detailed infographic: standalone install, optional native binds, 7 skills, 5 accelerators, 11 runtimes, 5 source adapters, and proof gates" width="920" />
|
|
85
|
+
</p>
|
|
86
|
+
|
|
78
87
|
Within the Simplicio product line, this repo is also the **current reference task flow** for
|
|
79
88
|
company work. `simplicio-runtime` is the unified entrypoint going forward, but it is expected to
|
|
80
89
|
reuse this loop's evidence-gated converge/drain discipline, durable attempt journal, and worker
|
|
81
90
|
coordination patterns instead of creating a separate task semantics.
|
|
82
91
|
|
|
83
|
-
<p align="center">
|
|
84
|
-
<img src="assets/simplicio-loop-infographic.png" alt="simplicio-loop — the whole system at a glance: 6 core skills, 5 satellites, 5 accelerators, 48 extension points, 11 runtimes, up to 90% fewer tokens" width="920" />
|
|
85
|
-
</p>
|
|
86
|
-
|
|
87
92
|
---
|
|
88
93
|
|
|
89
94
|
## 🤖 LLM front door
|
|
90
95
|
|
|
91
|
-
If you are an agent/runtime entering this repo cold, read `llms.txt` first for the short operational contract, then `AGENTS.md`, then `.claude/skills/simplicio-
|
|
96
|
+
If you are an agent/runtime entering this repo cold, read `llms.txt` first for the short operational contract, then `AGENTS.md`, then `.claude/skills/simplicio-loop/SKILL.md`.
|
|
92
97
|
|
|
93
98
|
---
|
|
94
99
|
|
|
95
100
|
## 📘 Official capability record
|
|
96
101
|
|
|
97
|
-
The complete, official roster of what `simplicio-
|
|
98
|
-
runnable, and tested** (`python3 scripts/check.py`: claims-audit
|
|
102
|
+
The complete, official roster of what `simplicio-loop` ships — every capability below is **real,
|
|
103
|
+
runnable, and tested** (`python3 scripts/check.py`: claims-audit 9/9 + 245 passed). Each links to its
|
|
99
104
|
deep section and its worker.
|
|
100
105
|
|
|
101
106
|
| Capability | What it does | Proof / worker | Details |
|
|
102
107
|
|---|---|---|---|
|
|
103
|
-
| 🎬 **Video evidence** (`video_evidence`) | Records the **real browser session** as moving proof a UI change works (Playwright, default); renders a **deterministic captioned MP4** with [hyperframes](https://github.com/heygen-com/hyperframes) for an explicit explainer request (`/simplicio-
|
|
108
|
+
| 🎬 **Video evidence** (`video_evidence`) | Records the **real browser session** as moving proof a UI change works (Playwright, default); renders a **deterministic captioned MP4** with [hyperframes](https://github.com/heygen-com/hyperframes) for an explicit explainer request (`/simplicio-loop make a video of screen X`) | `scripts/video_evidence.py` · BLOCKED (never fake-pass) without the toolchain | [§ Video evidence](#-video-evidence--playwright-by-default-hyperframes-on-request) |
|
|
104
109
|
| 🧠 **Attempt memory + stall detector** | A durable run-journal (`.orchestrator/loop/journal.jsonl`) + a stall detector so the loop **changes strategy instead of oscillating**; incremental triage (`since`) reads only the delta each turn, and optional stage lineage makes retries/governance explicit | `scripts/loop_journal.py` · `selftest` 13/13 | [§ Anti-oscillation](#-attempt-memory--stall-detector-anti-oscillation) |
|
|
105
110
|
| 🧭 **Repo conventions** (`repo_conventions`) | **Learns the repo's own playbook** — mines git history + merged PRs + static config into `.orchestrator/conventions.json` so every new branch/commit/PR mirrors the team's established style; worktree-per-item isolation is the default | `scripts/repo_conventions.py` · `selftest` 19/19 | [§ The full flow](#️-the-full-flow--from-demand-to-delivery) |
|
|
106
111
|
| 🧩 **Scope reflection** (`dependency_graph`) | Maps local dependencies, reverse dependents, and related tests from the planned touched files; blocks task plans that ignore callers, sibling files, or proof points before the edit starts | `scripts/impact_audit.py` · `selftest` | [§ Tests & local checks](#-tests--local-checks-no-paid-ci) |
|
|
@@ -112,7 +117,7 @@ deep section and its worker.
|
|
|
112
117
|
Two loop **modes** make termination explicit: **converge** (a single hard task — ends on the
|
|
113
118
|
evidence-gated `<promise>` or a stall escalation) vs **drain** (a queue — ends when the source
|
|
114
119
|
re-query stays empty K rounds). Both still obey the universal exits (promise+evidence,
|
|
115
|
-
`max_iterations`,
|
|
120
|
+
`max_iterations`, STOP).
|
|
116
121
|
|
|
117
122
|
> Loop scoring across this line of work: **7.5** (strong design, unproven) → **9** (attempt memory +
|
|
118
123
|
> anti-oscillation) → **9.5** (reproducible local proof) → **~10** (enforced safety + complete loop
|
|
@@ -120,30 +125,31 @@ re-query stays empty K rounds). Both still obey the universal exits (promise+evi
|
|
|
120
125
|
|
|
121
126
|
---
|
|
122
127
|
|
|
123
|
-
## 🧠 The
|
|
128
|
+
## 🧠 The 7 skills + 5 accelerators
|
|
124
129
|
|
|
125
|
-
The orchestrator core +
|
|
130
|
+
The orchestrator core + six satellites + five accelerators/integrations. Each satellite is
|
|
126
131
|
**optional** — when loaded, the orchestrator delegates to it (richer + cheaper); when absent, the
|
|
127
132
|
inline protocol covers 100%. Accelerators are **auto-detected** — present = used, absent = LLM
|
|
128
133
|
fallback.
|
|
129
134
|
|
|
130
135
|
| # | Capability | Absorbs | What it does | Token impact |
|
|
131
136
|
|---|---|---|---|---|
|
|
132
|
-
| 1 | 🔁 **simplicio-
|
|
133
|
-
| 2 |
|
|
137
|
+
| 1 | 🔁 **simplicio-loop** | — | Unified public entrypoint: orchestrator core + hardened loop behind one command | Core + loop |
|
|
138
|
+
| 2 | ↩️ **simplicio-tasks** | legacy alias | Compatibility shim for older installs and saved prompts | Legacy alias |
|
|
134
139
|
| 3 | 🧱 **simplicio-orient** | [rtk](https://github.com/rtk-ai/rtk) + [caveman](https://github.com/JuliusBrussee/caveman) | Terminal-first execution, output-reduction catalog, tee-cache, signatures-read | L0 deterministic |
|
|
135
140
|
| 4 | 🔥 **simplicio-review** | [thermos](https://github.com/cursor/plugins/tree/main/thermos) | Parallel adversarial review on distinct rubrics → deduped verdict | Quality gate |
|
|
136
141
|
| 5 | 🗜️ **simplicio-compress** | [caveman](https://github.com/JuliusBrussee/caveman) | Output + memory compression, fail-closed `transform_guard` | 40-60% fewer |
|
|
137
142
|
| 6 | 🎓 **simplicio-learn** | [teaching](https://github.com/cursor/plugins/tree/main/teaching) | Post-run retrospective → durable, deduped lessons in memory | Smarter each run |
|
|
138
|
-
| 7 |
|
|
139
|
-
| 8 |
|
|
140
|
-
| 9 |
|
|
141
|
-
| 10 |
|
|
142
|
-
| 11 |
|
|
143
|
+
| 7 | 🧪 **simplicio-autoresearch** | Karpathy [autoresearch](https://github.com/balukosuri/Andrej-Karpathy-s-Autoresearch-As-a-Universal-Skill) + ECC `autoresearch-agent` | Evolutionary mutate/eval/keep-revert loop: yool-guardrailed caps, git-isolated branch, anti-Goodhart gate-first eval, `savings-event` receipt | Auto-optimize |
|
|
144
|
+
| 8 | 🧭 **Understand Anything** | [Egonex-AI](https://github.com/Egonex-AI/Understand-Anything) | Knowledge graph orient: semantic search, guided tours, dependency graph | **L0 zero tokens** |
|
|
145
|
+
| 9 | 📊 **agentsview** | [kenn-io](https://github.com/kenn-io/agentsview) | Session analytics, cost tracking, stalled-session discovery | **L1** SQL only |
|
|
146
|
+
| 10 | ⚡ **LMCache** | [LMCache](https://github.com/LMCache/LMCache) | KV cache between loop turns — 40-70% TTFT reduction on local models | GPU time ↓ |
|
|
147
|
+
| 11 | 🗜️ **Simplicio capture engine** | `engine/simplicio_engine.py` (native, stdlib-only) | Transparent capture proxy: forwards to the real provider, measures + deterministically compresses, writes `proxy_savings.json` | **deterministic** |
|
|
148
|
+
| 12 | 🎬 **video_evidence** | Playwright (default) · [hyperframes](https://github.com/heygen-com/hyperframes) (on request) | Records the **real session** as moving proof of a UI change (Playwright); renders a **deterministic captioned MP4** explainer with hyperframes when the video IS the deliverable | Evidence producer |
|
|
143
149
|
|
|
144
150
|
Each skill lives under [`.claude/skills/`](.claude/skills); each accelerator has a reference doc
|
|
145
|
-
under `.claude/skills/simplicio-
|
|
146
|
-
[`video-evidence.md`](.claude/skills/simplicio-
|
|
151
|
+
under `.claude/skills/simplicio-loop/references/` (the video producer:
|
|
152
|
+
[`video-evidence.md`](.claude/skills/simplicio-loop/references/video-evidence.md), worker
|
|
147
153
|
[`scripts/video_evidence.py`](scripts/video_evidence.py)).
|
|
148
154
|
|
|
149
155
|
---
|
|
@@ -161,22 +167,29 @@ The orchestrator discovers work from any source via pluggable adapters. Each exp
|
|
|
161
167
|
| **agentsview sessions** | `scripts/agentsview_adapter.py` | Stalled session recovery + cost observability |
|
|
162
168
|
| Local files / CI queue | filesystem / CI API | Internal work tracking |
|
|
163
169
|
|
|
164
|
-
See each adapter's reference doc under `.claude/skills/simplicio-
|
|
170
|
+
See each adapter's reference doc under `.claude/skills/simplicio-loop/references/`.
|
|
165
171
|
|
|
166
172
|
---
|
|
167
173
|
|
|
168
|
-
## 🌐 11 runtimes, one protocol
|
|
174
|
+
## 🌐 11 runtimes, one protocol — 3 guaranteed + 8 best-effort
|
|
169
175
|
|
|
170
176
|
One universal skill core + one set of hooks drives every runtime. An adapter is thin: it tells a
|
|
171
177
|
runtime *where to load the skills*, *how to arm the loop*, and *how to bind native speed*. **The
|
|
172
178
|
skill names no runtime; the runtime detects the skill.**
|
|
173
179
|
|
|
180
|
+
### Tier 1 — Guaranteed (gated on every commit)
|
|
181
|
+
|
|
174
182
|
| Runtime | Skill load | Loop drive | Native bind |
|
|
175
183
|
|---|---|---|---|
|
|
176
184
|
| **Claude Code** | `.claude/skills/` + plugin | `Stop` hook | MCP |
|
|
177
185
|
| **Codex** | `AGENTS.md` | self-paced | MCP / adapter |
|
|
178
|
-
| **VS Code (Copilot)** | `copilot-instructions.md` | tasks | MCP |
|
|
179
186
|
| **Cursor** | `.cursor-plugin/` | `stop`+`afterAgentResponse` | MCP / rules |
|
|
187
|
+
|
|
188
|
+
### Tier 2 — Best-effort (contributions welcome, no gate)
|
|
189
|
+
|
|
190
|
+
| Runtime | Skill load | Loop drive | Native bind |
|
|
191
|
+
|---|---|---|---|
|
|
192
|
+
| **VS Code (Copilot)** | `copilot-instructions.md` | tasks | MCP |
|
|
180
193
|
| **Antigravity** | rules / `AGENTS.md` | self-paced | MCP |
|
|
181
194
|
| **Kiro** | `.kiro/steering/` | specs | MCP |
|
|
182
195
|
| **OpenCode** | `AGENTS.md` | self-paced | MCP |
|
|
@@ -185,9 +198,9 @@ skill names no runtime; the runtime detects the skill.**
|
|
|
185
198
|
| **Hermes** | native recall | native loop | **native** |
|
|
186
199
|
| **OpenClaw** | plugin SDK | native scheduler | **native** |
|
|
187
200
|
|
|
188
|
-
The promise: **same protocol, same gates, same safety on all 11 —
|
|
189
|
-
`orient_clamp.py` (token economy) works on every runtime with zero wiring. See
|
|
190
|
-
[`adapters/MATRIX.md`](adapters/MATRIX.md).
|
|
201
|
+
The promise: **same protocol, same gates, same safety on all 11 — Tier 1 verified mechanically,
|
|
202
|
+
Tier 2 best-effort.** `orient_clamp.py` (token economy) works on every runtime with zero wiring. See
|
|
203
|
+
[`adapters/MATRIX.md`](adapters/MATRIX.md) for the promotion/demotion rules.
|
|
191
204
|
|
|
192
205
|
---
|
|
193
206
|
|
|
@@ -207,9 +220,9 @@ flowchart TD
|
|
|
207
220
|
SRC --> PF
|
|
208
221
|
subgraph PF["2 · Pre-flight gates"]
|
|
209
222
|
direction LR
|
|
210
|
-
P1["
|
|
211
|
-
P2["
|
|
212
|
-
P3["arm 24/7 watcher"]
|
|
223
|
+
P1["source auth + scopes"]
|
|
224
|
+
P2["runtime/tools ready"]
|
|
225
|
+
P3["arm 24/7 watcher + STOP path"]
|
|
213
226
|
end
|
|
214
227
|
PF --> DISC
|
|
215
228
|
subgraph DISC["3 · Discover + normalize"]
|
|
@@ -266,7 +279,7 @@ flowchart TD
|
|
|
266
279
|
F3["branch behind main -> additive rebase"]
|
|
267
280
|
end
|
|
268
281
|
FB -->|"merged and closed"| DONE(["done + evidence + measured savings (only if a receipt exists)"])
|
|
269
|
-
WATCH["11 · 24/7 watcher · simplicio-loop evidence-gated promise · max-iterations cap ·
|
|
282
|
+
WATCH["11 · 24/7 watcher · simplicio-loop evidence-gated promise · max-iterations cap · STOP path · LMCache KV cache warm"]
|
|
270
283
|
FB -. "poll new work / comments / checks" .-> WATCH
|
|
271
284
|
DONE -. "idle until new work" .-> WATCH
|
|
272
285
|
WATCH -. "re-feed the goal" .-> DISC
|
|
@@ -282,8 +295,7 @@ agent sees its own prior work. Exit is ONLY via:
|
|
|
282
295
|
1. **Evidence-gated `<promise>`** — the turn that emits the promise MUST also carry concrete
|
|
283
296
|
proof (passing test, merged PR, closed-item re-query). A promise with no evidence = ignored.
|
|
284
297
|
2. **`max_iterations` cap** — hard safety backstop
|
|
285
|
-
3. **
|
|
286
|
-
4. **STOP signal** — `.orchestrator/STOP` or channel command
|
|
298
|
+
3. **STOP signal** — `.orchestrator/STOP` or channel command
|
|
287
299
|
|
|
288
300
|
Between turns, LMCache (when available) caches the KV state so re-feed costs near-zero prefill.
|
|
289
301
|
|
|
@@ -316,13 +328,28 @@ loop_journal.py record --iteration N --action "…" --gate fail --gate-output te
|
|
|
316
328
|
loop_journal.py stall --k 3 --exit-code # PROGRESS → re-feed · STALLED → switch/escalate
|
|
317
329
|
```
|
|
318
330
|
|
|
331
|
+
### 📦 Exported contract for other runtimes — `simplicio.loop-execution/v1`
|
|
332
|
+
|
|
333
|
+
`simplicio-loop` is the reference implementation of this converge/drain discipline. So that
|
|
334
|
+
`simplicio-runtime` (or any other consumer) reuses this semantics instead of inventing a second,
|
|
335
|
+
incompatible execution contract (#115), the discipline is published as versioned, testable fixtures
|
|
336
|
+
under [`contracts/loop-execution/v1/`](contracts/loop-execution/v1/SCHEMA.md): converge success,
|
|
337
|
+
stall + escalation, drain with empty rounds, the STOP path, evidence-gated completion, and the
|
|
338
|
+
minimal append-only journal shape. `python3 scripts/check_loop_contract.py` (wired into
|
|
339
|
+
`scripts/check.py`) validates every fixture against the REAL producers (`hooks/loop_stop.py`,
|
|
340
|
+
`scripts/loop_journal.py`) by actually running them in an isolated temp directory — not a
|
|
341
|
+
re-description of them — so a runtime implementing its own executor can diff its behavior against
|
|
342
|
+
each fixture's `expected.json` instead of re-deriving the rules from prose. See
|
|
343
|
+
[`contracts/loop-execution/v1/SCHEMA.md`](contracts/loop-execution/v1/SCHEMA.md) for the full
|
|
344
|
+
contract and how to consume it.
|
|
345
|
+
|
|
319
346
|
---
|
|
320
347
|
|
|
321
348
|
## 🎬 Video evidence — Playwright by default, hyperframes on request
|
|
322
349
|
|
|
323
350
|
The loop produces **demo videos** as proof a change works — **two engines**, one `video_evidence`
|
|
324
351
|
extension point (worker [`scripts/video_evidence.py`](scripts/video_evidence.py), contract
|
|
325
|
-
[`references/video-evidence.md`](.claude/skills/simplicio-
|
|
352
|
+
[`references/video-evidence.md`](.claude/skills/simplicio-loop/references/video-evidence.md)):
|
|
326
353
|
|
|
327
354
|
1. **Default — the normal evidence flow uses Playwright.** After a UI change, `video_evidence`
|
|
328
355
|
records the **real browser session** driving the screen (Playwright native video → `.webm`, →
|
|
@@ -341,7 +368,7 @@ extension point (worker [`scripts/video_evidence.py`](scripts/video_evidence.py)
|
|
|
341
368
|
frames, same output", CI-reproducible, no API keys, local render via headless Chrome + FFmpeg).
|
|
342
369
|
|
|
343
370
|
```text
|
|
344
|
-
/simplicio-
|
|
371
|
+
/simplicio-loop make an explainer video of the system login screen
|
|
345
372
|
→ detect: video-creation request → web_verify captures the screens
|
|
346
373
|
→ video_evidence verify --engine hyperframes → deterministic MP4 → attached to the PR
|
|
347
374
|
```
|
|
@@ -363,18 +390,20 @@ is always a **file path + boolean verdict** — never video bytes in context (to
|
|
|
363
390
|
| `simplicio-compress` | Terse prose + one-time memory compaction |
|
|
364
391
|
| `orient_clamp.py` | Clamp + tee on every shell command, zero wiring |
|
|
365
392
|
| Native response cache | repeated deterministic (temp=0) request → served from cache, skips the LLM call (**100% on hit**) — `simplicio-cli cache`, on by default (`SIMPLICIO_CACHE=0` to disable) |
|
|
366
|
-
| Simplicio capture proxy + MCP | 60-95% fewer tokens on tool outputs via a transparent compression daemon |
|
|
393
|
+
| **Simplicio capture proxy + MCP** | 60-95% fewer tokens on tool outputs via a transparent compression daemon — **unverified** (no receipt snapshot exists) |
|
|
367
394
|
|
|
368
395
|
Savings only count on a verified-correct outcome. Baseline = the cheapest sensible non-orchestrated
|
|
369
396
|
path to the same result. **Savings reporting is evidence-gated, not mandatory:** a savings figure is
|
|
370
397
|
shown only when a turn actually ran an economy-producing command and the number traces to a
|
|
371
398
|
measured receipt (clamp tee, signatures-read, cache hit, `deterministic_edit`, `savings_ledger`).
|
|
372
399
|
No measured economy → no savings line; the orchestrator never fabricates a baseline or a percentage.
|
|
373
|
-
|
|
400
|
+
**All quantitative savings figures in this README are currently UNVERIFIED** — no receipt snapshot
|
|
401
|
+
exists in `.orchestrator/savings/snapshots.jsonl`. See `references/token-economy.md` and
|
|
402
|
+
`scripts/claims_manifest.py`.
|
|
374
403
|
|
|
375
|
-
### 🔎 Running `simplicio-
|
|
404
|
+
### 🔎 Running `simplicio-loop`: economy vs measurement (per runtime)
|
|
376
405
|
|
|
377
|
-
Two different things happen when you call **`simplicio-
|
|
406
|
+
Two different things happen when you call **`simplicio-loop`**, and they behave differently per runtime:
|
|
378
407
|
|
|
379
408
|
- **Economy** — compression, output clamps, signatures-only reads, `deterministic_edit` — applies **every
|
|
380
409
|
time the skill runs and loads `simplicio-orient` / `simplicio-compress`, on any runtime.** It is the
|
|
@@ -416,6 +445,27 @@ out with `SIMPLICIO_NO_DASHBOARD=1`), and the tray never opens by itself — not
|
|
|
416
445
|
open. Manage the stack: `scripts/simplicio-economy.sh {status|up|monitor|tray|wire}`. After install,
|
|
417
446
|
capture runs **without invoking the loop** — see `references/token-capture.md`.
|
|
418
447
|
|
|
448
|
+
### 🧪 e2e savings demo — one task, four hops, a receipt at every one
|
|
449
|
+
|
|
450
|
+
`scripts/e2e_demo.py` is the capstone acceptance test for this program: it drives ONE task through
|
|
451
|
+
**MAP → RECALL → EDIT → VERIFY** and writes a `simplicio.savings-event/v1`-shaped receipt per hop,
|
|
452
|
+
never a bare percentage.
|
|
453
|
+
|
|
454
|
+
```bash
|
|
455
|
+
python3 scripts/e2e_demo.py run # live: real simplicio-mapper + task_anchor.py calls
|
|
456
|
+
python3 scripts/e2e_demo.py selftest # offline: proves the receipt/report math, no external tools
|
|
457
|
+
```
|
|
458
|
+
|
|
459
|
+
`run` writes `.orchestrator/savings/e2e-demo.md` (the report), `e2e-demo-events.jsonl` (one receipt
|
|
460
|
+
per hop), and feeds the same `snapshots.jsonl` store `savings_harness.py score` and
|
|
461
|
+
`billing_aggregator.py collect`/`meter` already read — so this demo's numbers roll up into the
|
|
462
|
+
existing aggregation with no new code. MAP and VERIFY call real live tools
|
|
463
|
+
(`simplicio-mapper handoff`, `task_anchor.py check --format json|toon`); RECALL and EDIT
|
|
464
|
+
honestly label a local stand-in where an upstream dependency (mapper's native `--for-llm toon`,
|
|
465
|
+
dev-cli's `SIMPLICIO_PROMPT_TOON`) isn't shipped yet — every hop's `note` says exactly which.
|
|
466
|
+
`selftest` is fully offline (no subprocess to `simplicio-mapper`/`simplicio-cli`, no network, no
|
|
467
|
+
API key) and is what `scripts/check.py` runs.
|
|
468
|
+
|
|
419
469
|
### 🛠️ The capture engine — one native module, every command
|
|
420
470
|
|
|
421
471
|
[`engine/simplicio_engine.py`](engine/simplicio_engine.py) is the native Simplicio capture engine
|
|
@@ -448,12 +498,27 @@ Four mechanisms sustain the orchestration power:
|
|
|
448
498
|
| **DAG + pipeline** | parallelism by dependency, staged per item | `references/orchestration.md` (Step 3 pool + pipeline) |
|
|
449
499
|
| **Isolation by worktree** | parallel edits without corrupting the tree, merge-gated | `references/orchestration.md` |
|
|
450
500
|
| **Adversarial verify** | panel of skeptics before "delivered" | `references/quality-safety-delivery.md` · skill `simplicio-review` |
|
|
451
|
-
| **
|
|
501
|
+
| **Bounded loop cap** | anti-infinite-loop, evidence-gated exit | `references/standing-loop-247.md` · skill `simplicio-loop` |
|
|
452
502
|
|
|
453
503
|
---
|
|
454
504
|
|
|
455
505
|
## 🚀 Install & use
|
|
456
506
|
|
|
507
|
+
**Fast path: standalone skill install.** If you only want the `simplicio-loop` skill bundle, this
|
|
508
|
+
is enough — **no native runtime dependency is required**:
|
|
509
|
+
|
|
510
|
+
```bash
|
|
511
|
+
pip install simplicio-loop
|
|
512
|
+
simplicio-loop install # current project
|
|
513
|
+
simplicio-loop install --global # user-wide
|
|
514
|
+
```
|
|
515
|
+
|
|
516
|
+
That installs the skills + hooks only. If your runtime can bind native helpers, they are an
|
|
517
|
+
**optional speed-up**, not a prerequisite.
|
|
518
|
+
|
|
519
|
+
**Full-stack path: repo installer.** Use this when you also want the broader Simplicio local stack
|
|
520
|
+
(operators, capture proxy, dashboards, services, runtime wiring):
|
|
521
|
+
|
|
457
522
|
```bash
|
|
458
523
|
git clone https://github.com/wesleysimplicio/simplicio-loop
|
|
459
524
|
cd simplicio-loop
|
|
@@ -464,10 +529,10 @@ pwsh scripts/install.ps1 <runtime> [-Global] # Windows
|
|
|
464
529
|
# <runtime> ∈ claude codex vscode cursor antigravity kiro opencode gemini aider hermes openclaw
|
|
465
530
|
```
|
|
466
531
|
|
|
467
|
-
**
|
|
532
|
+
**The repo installer is full-stack by default — it installs everything.** One command sets up the whole stack:
|
|
468
533
|
the two loop operators (`simplicio-mapper` + `simplicio-cli`, auto-handling PEP 668 / externally-managed
|
|
469
534
|
Python and symlinking the binaries onto `PATH`), the **full Python stack** (the package itself),
|
|
470
|
-
the **
|
|
535
|
+
the **7 skills + hooks** with the loop's Stop hook wired, and the **always-on capture proxy**
|
|
471
536
|
with Claude + Codex + Hermes **routed and measured** in the background. The **dashboard opens once** on a
|
|
472
537
|
fresh install, then it's on-demand (`simplicio-loop dashboard` / `simplicio-economy.sh monitor`); the
|
|
473
538
|
**menu-bar tray never opens by itself** — nothing is forced to stay open.
|
|
@@ -491,7 +556,7 @@ python3 scripts/doctor.py --repair # install/wire what's fixable; make everyth
|
|
|
491
556
|
# also: bash scripts/simplicio-economy.sh doctor [--repair]
|
|
492
557
|
```
|
|
493
558
|
|
|
494
|
-
`doctor` separates **REQUIRED** (python3, the two loop operators, the
|
|
559
|
+
`doctor` separates **REQUIRED** (python3, the two loop operators, the 7 skills, the loop hooks, the
|
|
495
560
|
capture proxy — `--repair` installs/wires them) from **OPTIONAL** accelerators (the tray dep).
|
|
496
561
|
**Missing an optional piece is never a failure and
|
|
497
562
|
never blocks** — the Python engine + the deterministic path cover everything; the exit code is 0 as
|
|
@@ -508,16 +573,15 @@ bash scripts/install.sh claude # or: bash scripts/install.sh cursor
|
|
|
508
573
|
Then:
|
|
509
574
|
|
|
510
575
|
```
|
|
511
|
-
/simplicio-
|
|
576
|
+
/simplicio-loop finish all the open issues
|
|
512
577
|
```
|
|
513
578
|
|
|
514
|
-
|
|
515
|
-
|
|
579
|
+
For the standalone skill install, the only requirement is **python3** on PATH. For the repo
|
|
580
|
+
installer and GitHub-backed sources, you also want `git` + an authenticated `gh`. See [`INSTALL.md`](INSTALL.md) and
|
|
516
581
|
[`adapters/MATRIX.md`](adapters/MATRIX.md).
|
|
517
582
|
|
|
518
|
-
**Before an unattended 24/7 run:**
|
|
519
|
-
|
|
520
|
-
gate + secret-scan on. With `ceiling = 0` the watcher refuses to run unattended (fail-safe).
|
|
583
|
+
**Before an unattended 24/7 run:** confirm source auth is persistent, keep the irreversible-op
|
|
584
|
+
human gate + secret-scan on, and ensure a reachable STOP/cancel path is configured.
|
|
521
585
|
|
|
522
586
|
---
|
|
523
587
|
|
|
@@ -533,8 +597,8 @@ gate + secret-scan on. With `ceiling = 0` the watcher refuses to run unattended
|
|
|
533
597
|
- **Trust-before-load** — perception-shaping config (clamp profiles, suppression lists) is
|
|
534
598
|
untrusted until a human reviews and hash-pins it.
|
|
535
599
|
- **Prompt-injection hardening** — item/PR/comment content can never override the contract.
|
|
536
|
-
- **
|
|
537
|
-
|
|
600
|
+
- **Evidence-gated** completion (never a false "done"); **fail-open** hooks (never trap the agent
|
|
601
|
+
in a loop); explicit STOP/cancel path for unattended runs.
|
|
538
602
|
|
|
539
603
|
---
|
|
540
604
|
|
|
@@ -543,9 +607,16 @@ gate + secret-scan on. With `ceiling = 0` the watcher refuses to run unattended
|
|
|
543
607
|
Claims are verified, not just asserted — and the gate runs **locally**, with zero CI cost:
|
|
544
608
|
|
|
545
609
|
```bash
|
|
546
|
-
python3 scripts/check.py # the whole gate (audit + tests)
|
|
610
|
+
python3 scripts/check.py # the whole gate (audit + tests + loop-contract + token-budget)
|
|
611
|
+
python3 scripts/check.py --core-gate # fast/mandatory core only — skips satellite-only tests (#118)
|
|
547
612
|
```
|
|
548
613
|
|
|
614
|
+
`scripts/` has grown into ~39 files; [`docs/SCRIPTS_INVENTORY.md`](docs/SCRIPTS_INVENTORY.md)
|
|
615
|
+
classifies every one of them **core** (required for the loop drive or this gate) vs **satellite**
|
|
616
|
+
(an opt-in/advanced capability — source adapters, `simplicio-autoresearch`, the economy/dashboard
|
|
617
|
+
stack, `repo_conventions`, `schema_verify`). Lead with the core; treat the rest as advanced,
|
|
618
|
+
opt-in capabilities you reach for when the task calls for them.
|
|
619
|
+
|
|
549
620
|
- **Test suite** (`tests/`) — the workers' deterministic `selftest`s, plus an **e2e of the loop
|
|
550
621
|
driver** (`hooks/loop_stop.py`): it proves the loop **stops on evidence**, **ignores a bare
|
|
551
622
|
`<promise>`**, and **stops on the cap** as distinct exits — and that the evidence producers
|
|
@@ -4,8 +4,8 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "simplicio-loop"
|
|
7
|
-
version = "3.
|
|
8
|
-
description = "The Universal Looping AI Orchestrator — a runtime-agnostic super-plugin (
|
|
7
|
+
version = "3.22.4"
|
|
8
|
+
description = "The Universal Looping AI Orchestrator — a runtime-agnostic super-plugin (7 skills) that drains any queue of work end-to-end on any LLM/runtime."
|
|
9
9
|
readme = "PYPI.md"
|
|
10
10
|
requires-python = ">=3.8"
|
|
11
11
|
license = { text = "MIT" }
|
|
@@ -25,8 +25,8 @@ classifiers = [
|
|
|
25
25
|
# simplicio-mapper -> the repo-survey step (binds `orient`)
|
|
26
26
|
# simplicio-cli -> the operator that applies+verifies changes (binds `execute`/`deterministic_edit`)
|
|
27
27
|
dependencies = [
|
|
28
|
-
"simplicio-mapper>=0.
|
|
29
|
-
"simplicio-cli>=0.9.
|
|
28
|
+
"simplicio-mapper>=0.16.0",
|
|
29
|
+
"simplicio-cli>=0.9.3",
|
|
30
30
|
]
|
|
31
31
|
|
|
32
32
|
# Optional: the real embedding backend for `simplicio-cli semantic --ml` / `simplicio-cli rag --ml`.
|