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.
Files changed (103) hide show
  1. {simplicio_loop-3.20.1/simplicio_loop.egg-info → simplicio_loop-3.22.4}/PKG-INFO +14 -13
  2. {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/PYPI.md +10 -9
  3. {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/README.md +132 -61
  4. {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/pyproject.toml +4 -4
  5. {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/simplicio_loop/__init__.py +2 -2
  6. {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/simplicio_loop/_bundle/hooks/README.md +36 -6
  7. {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/simplicio_loop/_bundle/hooks/action_gate.py +57 -0
  8. {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/simplicio_loop/_bundle/hooks/hooks.claude.json +1 -2
  9. {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/simplicio_loop/_bundle/hooks/hooks.json +1 -2
  10. {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/simplicio_loop/_bundle/hooks/loop_stop.py +287 -41
  11. simplicio_loop-3.22.4/simplicio_loop/_bundle/hooks/pre-commit.py +138 -0
  12. {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/simplicio_loop/_bundle/scripts/cross_agent_wiki.py +2 -1
  13. simplicio_loop-3.22.4/simplicio_loop/_bundle/skills/simplicio-autoresearch/SKILL.md +165 -0
  14. simplicio_loop-3.22.4/simplicio_loop/_bundle/skills/simplicio-loop/SKILL.md +379 -0
  15. {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
  16. simplicio_loop-3.22.4/simplicio_loop/_bundle/skills/simplicio-loop/references/bound-operators.md +106 -0
  17. simplicio_loop-3.22.4/simplicio_loop/_bundle/skills/simplicio-loop/references/claims-gate.md +62 -0
  18. simplicio_loop-3.22.4/simplicio_loop/_bundle/skills/simplicio-loop/references/cross-agent-wiki.md +40 -0
  19. simplicio_loop-3.22.4/simplicio_loop/_bundle/skills/simplicio-loop/references/cross-repo-integration.md +42 -0
  20. {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
  21. simplicio_loop-3.22.4/simplicio_loop/_bundle/skills/simplicio-loop/references/hierarchical-planner.md +39 -0
  22. {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
  23. {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
  24. simplicio_loop-3.22.4/simplicio_loop/_bundle/skills/simplicio-loop/references/quality-safety-delivery.md +228 -0
  25. simplicio_loop-3.22.4/simplicio_loop/_bundle/skills/simplicio-loop/references/run-journal-stall-detector.md +47 -0
  26. simplicio_loop-3.22.4/simplicio_loop/_bundle/skills/simplicio-loop/references/spindle-handoff.md +94 -0
  27. {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
  28. simplicio_loop-3.22.4/simplicio_loop/_bundle/skills/simplicio-loop/references/triage-verify-detail.md +70 -0
  29. {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/simplicio_loop/_bundle/skills/simplicio-orient/SKILL.md +1 -0
  30. simplicio_loop-3.22.4/simplicio_loop/_bundle/skills/simplicio-tasks/SKILL.md +32 -0
  31. simplicio_loop-3.22.4/simplicio_loop/_bundle/skills/simplicio-tasks/references/agentsview-adapter.md +198 -0
  32. simplicio_loop-3.22.4/simplicio_loop/_bundle/skills/simplicio-tasks/references/azure-devops-adapter.md +69 -0
  33. simplicio_loop-3.22.4/simplicio_loop/_bundle/skills/simplicio-tasks/references/extension-points.md +99 -0
  34. simplicio_loop-3.22.4/simplicio_loop/_bundle/skills/simplicio-tasks/references/lmcache-adapter.md +632 -0
  35. simplicio_loop-3.22.4/simplicio_loop/_bundle/skills/simplicio-tasks/references/orchestration.md +187 -0
  36. {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/simplicio_loop/_bundle/skills/simplicio-tasks/references/quality-safety-delivery.md +6 -3
  37. simplicio_loop-3.22.4/simplicio_loop/_bundle/skills/simplicio-tasks/references/standing-loop-247.md +105 -0
  38. simplicio_loop-3.22.4/simplicio_loop/_bundle/skills/simplicio-tasks/references/token-capture.md +124 -0
  39. simplicio_loop-3.22.4/simplicio_loop/_bundle/skills/simplicio-tasks/references/token-economy.md +231 -0
  40. simplicio_loop-3.22.4/simplicio_loop/_bundle/skills/simplicio-tasks/references/understand-anything-adapter.md +591 -0
  41. simplicio_loop-3.22.4/simplicio_loop/_bundle/skills/simplicio-tasks/references/video-evidence.md +108 -0
  42. simplicio_loop-3.22.4/simplicio_loop/_bundle/skills/simplicio-tasks/references/web-evidence.md +93 -0
  43. {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/simplicio_loop/_bundle/tests/test_loop_e2e.py +172 -17
  44. {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/simplicio_loop/cli.py +2 -2
  45. {simplicio_loop-3.20.1 → simplicio_loop-3.22.4/simplicio_loop.egg-info}/PKG-INFO +14 -13
  46. {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/simplicio_loop.egg-info/SOURCES.txt +44 -1
  47. {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/simplicio_loop.egg-info/requires.txt +2 -2
  48. {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/tests/test_action_gate.py +75 -0
  49. simplicio_loop-3.22.4/tests/test_agentsview_adapter.py +188 -0
  50. simplicio_loop-3.22.4/tests/test_autoresearch.py +161 -0
  51. simplicio_loop-3.22.4/tests/test_az_boards_adapter.py +184 -0
  52. simplicio_loop-3.22.4/tests/test_claims_audit.py +173 -0
  53. simplicio_loop-3.22.4/tests/test_claims_manifest_unit.py +63 -0
  54. simplicio_loop-3.22.4/tests/test_dashboard_hook.py +180 -0
  55. simplicio_loop-3.22.4/tests/test_doctor_smoke.py +104 -0
  56. simplicio_loop-3.22.4/tests/test_evidence_chain.py +168 -0
  57. simplicio_loop-3.22.4/tests/test_fan_out_flow.py +86 -0
  58. simplicio_loop-3.22.4/tests/test_fan_out_unit.py +95 -0
  59. {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/tests/test_flow_audit.py +31 -0
  60. simplicio_loop-3.22.4/tests/test_hooks_coverage.py +226 -0
  61. simplicio_loop-3.22.4/tests/test_install_lib.py +143 -0
  62. simplicio_loop-3.22.4/tests/test_learn_pipeline_removed.py +49 -0
  63. {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/tests/test_loop_e2e.py +172 -17
  64. simplicio_loop-3.22.4/tests/test_precommit_bundle_sync.py +143 -0
  65. simplicio_loop-3.22.4/tests/test_repo_conventions_architecture.py +80 -0
  66. simplicio_loop-3.22.4/tests/test_schema_verify_integration.py +103 -0
  67. simplicio_loop-3.22.4/tests/test_schema_verify_unit.py +78 -0
  68. simplicio_loop-3.22.4/tests/test_system_check.py +72 -0
  69. simplicio_loop-3.22.4/tests/test_token_budget.py +102 -0
  70. simplicio_loop-3.22.4/tests/test_toon_codec.py +188 -0
  71. simplicio_loop-3.22.4/tests/test_verify_adapters_integration.py +45 -0
  72. simplicio_loop-3.22.4/tests/test_worker_cli_contract.py +69 -0
  73. {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/tests/test_worker_selftests.py +44 -0
  74. simplicio_loop-3.20.1/simplicio_loop/_bundle/hooks/learn_stop.py +0 -38
  75. simplicio_loop-3.20.1/simplicio_loop/_bundle/skills/simplicio-loop/SKILL.md +0 -676
  76. simplicio_loop-3.20.1/simplicio_loop/_bundle/skills/simplicio-tasks/SKILL.md +0 -369
  77. {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/LICENSE +0 -0
  78. {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/MANIFEST.in +0 -0
  79. {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/setup.cfg +0 -0
  80. {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/simplicio_loop/_bundle/hooks/loop_capture.py +0 -0
  81. {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/simplicio_loop/_bundle/hooks/orient_clamp.py +0 -0
  82. {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/simplicio_loop/_bundle/hooks/orient_rewrite.py +0 -0
  83. {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/simplicio_loop/_bundle/hooks/simplicio_dashboard.py +0 -0
  84. {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/simplicio_loop/_bundle/hooks/simplicio_watch.py +0 -0
  85. {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/simplicio_loop/_bundle/scripts/hierarchical_planner.py +0 -0
  86. {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/simplicio_loop/_bundle/skills/simplicio-compress/SKILL.md +0 -0
  87. {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/simplicio_loop/_bundle/skills/simplicio-learn/SKILL.md +0 -0
  88. {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
  89. {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
  90. {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
  91. {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
  92. {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
  93. {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
  94. {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/simplicio_loop/_bundle/skills/simplicio-review/SKILL.md +0 -0
  95. {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/simplicio_loop/_bundle/tests/_selfrun.py +0 -0
  96. {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/simplicio_loop/_bundle/tests/test_cross_agent_wiki.py +0 -0
  97. {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/simplicio_loop.egg-info/dependency_links.txt +0 -0
  98. {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/simplicio_loop.egg-info/entry_points.txt +0 -0
  99. {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/simplicio_loop.egg-info/top_level.txt +0 -0
  100. {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/tests/test_cross_agent_wiki.py +0 -0
  101. {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/tests/test_hierarchical_planner.py +0 -0
  102. {simplicio_loop-3.20.1 → simplicio_loop-3.22.4}/tests/test_impact_audit.py +0 -0
  103. {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.20.1
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.
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.13.0
23
- Requires-Dist: simplicio-cli>=0.9.0
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** (6 skills) that
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 a hard cost
36
- kill-switch, at up to **96% fewer tokens**. Not a chatbot. A worker.
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
  ![simplicio-loop](https://raw.githubusercontent.com/wesleysimplicio/simplicio-loop/main/assets/simplicio-loop-hero.jpg)
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-tasks finish all the open issues
56
+ /simplicio-loop finish all the open issues
57
57
  ```
58
58
 
59
- ## What you get — 6 skills
59
+ ## What you get — 7 skills
60
60
 
61
61
  | Skill | What it does |
62
62
  |---|---|
63
- | `simplicio-tasks` | The orchestrator loop: discover implement verify merge → close → watch 24/7. |
64
- | `simplicio-loop` | Hardened Ralph loop re-feed the goal until an evidence-gated `<promise>` or a cap. |
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>` or a
75
- cap / budget / STOP.
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** (6 skills) that
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 a hard cost
6
- kill-switch, at up to **96% fewer tokens**. Not a chatbot. A worker.
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
  ![simplicio-loop](https://raw.githubusercontent.com/wesleysimplicio/simplicio-loop/main/assets/simplicio-loop-hero.jpg)
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-tasks finish all the open issues
26
+ /simplicio-loop finish all the open issues
27
27
  ```
28
28
 
29
- ## What you get — 6 skills
29
+ ## What you get — 7 skills
30
30
 
31
31
  | Skill | What it does |
32
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. |
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>` or a
45
- cap / budget / STOP.
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-tasks — The Universal Looping AI Orchestrator
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-11-skills--accelerators"><img src="https://img.shields.io/badge/skills-11-7C3AED" alt="11 skills"></a>
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/tokens-up%20to%2096%25%20fewer-green" alt="Up to 90% fewer tokens"></a>
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-11-skills--accelerators">11 Skills</a> ·
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-tasks** is a runtime-agnostic **super-plugin** — one autonomous looping
53
- orchestrator (invoked as **`/simplicio-tasks`**) plus **five satellite skills** — that turns any
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 a hard cost kill-switch.
64
+ and keeps watching **24/7** for new work — all behind safety gates and evidence checks.
64
65
 
65
66
  ```text
66
- /simplicio-tasks finish all open issues
67
- → identity + pre-flight (kill-switch, auth, watcher)
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-tasks/SKILL.md`.
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-tasks` ships — every capability below is **real,
98
- runnable, and tested** (`python3 scripts/check.py`: claims-audit 5/5 + local test suite). Each links to its
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-tasks 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) |
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`, budget, STOP).
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 11 skills & accelerators
128
+ ## 🧠 The 7 skills + 5 accelerators
124
129
 
125
- The orchestrator core + five satellites + five accelerators/integrations. Each satellite is
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-tasks** | — | The orchestrator loop: 48 extension points, dual-path router, self-audit convergence | Core |
133
- | 2 | ♾️ **simplicio-loop** | [ralph-loop](https://github.com/cursor/plugins/tree/main/ralph-loop) | Hardened Ralph loop: evidence-gated `<promise>` exit, max_iterations cap | Loop drive |
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 | 🧭 **Understand Anything** | [Egonex-AI](https://github.com/Egonex-AI/Understand-Anything) | Knowledge graph orient: semantic search, guided tours, dependency graph | **L0 zero tokens** |
139
- | 8 | 📊 **agentsview** | [kenn-io](https://github.com/kenn-io/agentsview) | Session analytics, cost tracking, stalled-session discovery | **L1** SQL only |
140
- | 9 | **LMCache** | [LMCache](https://github.com/LMCache/LMCache) | KV cache between loop turns — 40-70% TTFT reduction on local models | GPU time |
141
- | 10 | 🗜️ **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** |
142
- | 11 | 🎬 **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
+ | 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-tasks/references/` (the video producer:
146
- [`video-evidence.md`](.claude/skills/simplicio-tasks/references/video-evidence.md), worker
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-tasks/references/`.
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 — only the speed differs.**
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["cost kill-switch budget · agentsview cost check"]
211
- P2["source auth + scopes"]
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 · cost kill-switch · LMCache KV cache warm"]
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. **Budget kill-switch** — `daily_usd_ceiling` halts the loop when spent
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-tasks/references/video-evidence.md)):
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-tasks make an explainer video of the system login screen
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
- See `references/token-economy.md`.
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-tasks`: economy vs measurement (per runtime)
404
+ ### 🔎 Running `simplicio-loop`: economy vs measurement (per runtime)
376
405
 
377
- Two different things happen when you call **`simplicio-tasks`**, and they behave differently per runtime:
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
- | **Loop budget cap** | anti-infinite-loop, dual exit | `references/standing-loop-247.md` · skill `simplicio-loop` |
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
- **Install is complete by default — it installs everything.** One command sets up the whole stack:
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 **6 skills + hooks** with the loop's Stop hook wired, and the **always-on capture proxy**
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 6 skills, the loop hooks, 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-tasks finish all the open issues
576
+ /simplicio-loop finish all the open issues
512
577
  ```
513
578
 
514
- The only requirement is **python3** on PATH (skills, hooks, and installer are cross-platform
515
- Python). For GitHub sources, `git` + an authenticated `gh`. See [`INSTALL.md`](INSTALL.md) and
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:** set a cost ceiling in `.orchestrator/loop-budget.json`
519
- (`daily_usd_ceiling > 0`), confirm source auth is persistent, and keep the irreversible-op human
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
- - **Hard $ kill-switch** for unattended runs; **evidence-gated** completion (never a false
537
- "done"); **fail-open** hooks (never trap the agent in a loop).
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.20.1"
8
- description = "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."
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.13.0",
29
- "simplicio-cli>=0.9.0",
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`.
@@ -13,6 +13,6 @@ try:
13
13
  try:
14
14
  __version__ = _v("simplicio-loop")
15
15
  except PackageNotFoundError:
16
- __version__ = "3.15.0"
16
+ __version__ = "3.22.4"
17
17
  except Exception: # pragma: no cover
18
- __version__ = "3.15.0"
18
+ __version__ = "3.22.3"