simplicio-loop 3.36.1__tar.gz → 3.38.0__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 (386) hide show
  1. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/LICENSE +21 -21
  2. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/MANIFEST.in +1 -0
  3. {simplicio_loop-3.36.1/simplicio_loop.egg-info → simplicio_loop-3.38.0}/PKG-INFO +1 -1
  4. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/PYPI.md +53 -53
  5. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/README.md +204 -48
  6. simplicio_loop-3.38.0/contracts/stage-agents/v1/action-intent.schema.json +37 -0
  7. simplicio_loop-3.38.0/contracts/stage-agents/v1/agent-instance.schema.json +89 -0
  8. simplicio_loop-3.38.0/contracts/stage-agents/v1/agent-role.schema.json +41 -0
  9. simplicio_loop-3.38.0/contracts/stage-agents/v1/review-finding.schema.json +41 -0
  10. simplicio_loop-3.38.0/contracts/stage-agents/v1/review-receipt.schema.json +60 -0
  11. simplicio_loop-3.38.0/contracts/stage-agents/v1/run-stage-graph.schema.json +36 -0
  12. simplicio_loop-3.38.0/contracts/stage-agents/v1/stage-definition.schema.json +162 -0
  13. simplicio_loop-3.38.0/contracts/stage-agents/v1/stage-input.schema.json +9 -0
  14. simplicio_loop-3.38.0/contracts/stage-agents/v1/stage-output.schema.json +9 -0
  15. simplicio_loop-3.38.0/contracts/stage-agents/v1/stage-receipt.schema.json +102 -0
  16. simplicio_loop-3.38.0/contracts/stage-agents/v1/stages.json +700 -0
  17. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/pyproject.toml +2 -2
  18. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/__init__.py +2 -2
  19. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/hooks/hooks.claude.json +20 -20
  20. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/hooks/hooks.json +11 -11
  21. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/hooks/loop_capture.py +31 -31
  22. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/hooks/loop_stop.py +5 -1
  23. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/hooks/orient_clamp.py +167 -167
  24. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/hooks/orient_rewrite.py +119 -119
  25. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/hooks/pre-commit.py +141 -141
  26. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/hooks/simplicio_dashboard.py +970 -970
  27. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/hooks/simplicio_watch.py +115 -115
  28. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/scripts/cross_agent_wiki.py +615 -615
  29. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/scripts/hierarchical_planner.py +394 -394
  30. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-autoresearch/SKILL.md +165 -165
  31. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-compress/SKILL.md +86 -86
  32. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-learn/SKILL.md +80 -80
  33. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-loop/SKILL.md +21 -2
  34. {simplicio_loop-3.36.1/simplicio_loop/_bundle/skills/simplicio-tasks → simplicio_loop-3.38.0/simplicio_loop/_bundle/skills/simplicio-loop}/references/agentsview-adapter.md +198 -198
  35. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/azure-devops-adapter.md +69 -69
  36. simplicio_loop-3.38.0/simplicio_loop/_bundle/skills/simplicio-loop/references/background-verification.md +44 -0
  37. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/bound-operators.md +108 -108
  38. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/claims-gate.md +62 -62
  39. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/control-policy.md +79 -79
  40. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/cross-agent-wiki.md +40 -40
  41. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/cross-repo-integration.md +42 -42
  42. {simplicio_loop-3.36.1/simplicio_loop/_bundle/skills/simplicio-tasks → simplicio_loop-3.38.0/simplicio_loop/_bundle/skills/simplicio-loop}/references/extension-points.md +101 -101
  43. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/hierarchical-planner.md +39 -39
  44. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/lmcache-adapter.md +632 -632
  45. simplicio_loop-3.38.0/simplicio_loop/_bundle/skills/simplicio-loop/references/multi-agent-coordination.md +54 -0
  46. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/progress-feedback.md +153 -153
  47. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/run-journal-stall-detector.md +47 -47
  48. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/spindle-handoff.md +94 -94
  49. {simplicio_loop-3.36.1/simplicio_loop/_bundle/skills/simplicio-tasks → simplicio_loop-3.38.0/simplicio_loop/_bundle/skills/simplicio-loop}/references/standing-loop-247.md +105 -105
  50. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/token-capture.md +124 -124
  51. {simplicio_loop-3.36.1/simplicio_loop/_bundle/skills/simplicio-tasks → simplicio_loop-3.38.0/simplicio_loop/_bundle/skills/simplicio-loop}/references/token-economy.md +231 -231
  52. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/triage-verify-detail.md +70 -70
  53. {simplicio_loop-3.36.1/simplicio_loop/_bundle/skills/simplicio-tasks → simplicio_loop-3.38.0/simplicio_loop/_bundle/skills/simplicio-loop}/references/understand-anything-adapter.md +591 -591
  54. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/video-evidence.md +108 -108
  55. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/web-evidence.md +93 -93
  56. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-orient/SKILL.md +189 -189
  57. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-review/SKILL.md +104 -104
  58. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-tasks/SKILL.md +32 -32
  59. {simplicio_loop-3.36.1/simplicio_loop/_bundle/skills/simplicio-loop → simplicio_loop-3.38.0/simplicio_loop/_bundle/skills/simplicio-tasks}/references/agentsview-adapter.md +198 -198
  60. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-tasks/references/azure-devops-adapter.md +69 -69
  61. {simplicio_loop-3.36.1/simplicio_loop/_bundle/skills/simplicio-loop → simplicio_loop-3.38.0/simplicio_loop/_bundle/skills/simplicio-tasks}/references/extension-points.md +101 -101
  62. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-tasks/references/lmcache-adapter.md +632 -632
  63. {simplicio_loop-3.36.1/simplicio_loop/_bundle/skills/simplicio-loop → simplicio_loop-3.38.0/simplicio_loop/_bundle/skills/simplicio-tasks}/references/standing-loop-247.md +105 -105
  64. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-tasks/references/token-capture.md +124 -124
  65. {simplicio_loop-3.36.1/simplicio_loop/_bundle/skills/simplicio-loop → simplicio_loop-3.38.0/simplicio_loop/_bundle/skills/simplicio-tasks}/references/token-economy.md +231 -231
  66. {simplicio_loop-3.36.1/simplicio_loop/_bundle/skills/simplicio-loop → simplicio_loop-3.38.0/simplicio_loop/_bundle/skills/simplicio-tasks}/references/understand-anything-adapter.md +591 -591
  67. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-tasks/references/video-evidence.md +108 -108
  68. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-tasks/references/web-evidence.md +93 -93
  69. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/tests/_selfrun.py +46 -46
  70. simplicio_loop-3.38.0/simplicio_loop/_contracts/stage-agents/v1/action-intent.schema.json +37 -0
  71. simplicio_loop-3.38.0/simplicio_loop/_contracts/stage-agents/v1/agent-instance.schema.json +89 -0
  72. simplicio_loop-3.38.0/simplicio_loop/_contracts/stage-agents/v1/agent-role.schema.json +41 -0
  73. simplicio_loop-3.38.0/simplicio_loop/_contracts/stage-agents/v1/review-finding.schema.json +41 -0
  74. simplicio_loop-3.38.0/simplicio_loop/_contracts/stage-agents/v1/review-receipt.schema.json +60 -0
  75. simplicio_loop-3.38.0/simplicio_loop/_contracts/stage-agents/v1/run-stage-graph.schema.json +36 -0
  76. simplicio_loop-3.38.0/simplicio_loop/_contracts/stage-agents/v1/stage-definition.schema.json +162 -0
  77. simplicio_loop-3.38.0/simplicio_loop/_contracts/stage-agents/v1/stage-input.schema.json +9 -0
  78. simplicio_loop-3.38.0/simplicio_loop/_contracts/stage-agents/v1/stage-output.schema.json +9 -0
  79. simplicio_loop-3.38.0/simplicio_loop/_contracts/stage-agents/v1/stage-receipt.schema.json +102 -0
  80. simplicio_loop-3.38.0/simplicio_loop/_contracts/stage-agents/v1/stages.json +700 -0
  81. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/agent_contract.py +99 -4
  82. simplicio_loop-3.38.0/simplicio_loop/agent_identity.py +256 -0
  83. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/attempt_journal.py +251 -251
  84. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/budget.py +236 -236
  85. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/cli.py +173 -4
  86. simplicio_loop-3.38.0/simplicio_loop/completion_auditor.py +820 -0
  87. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/control_policy.py +242 -242
  88. simplicio_loop-3.38.0/simplicio_loop/delivery_agent.py +916 -0
  89. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/drain.py +349 -349
  90. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/driver_contract.py +101 -101
  91. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/evidence.py +399 -399
  92. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/execution_board.py +300 -300
  93. simplicio_loop-3.38.0/simplicio_loop/feedback_recovery_agent.py +709 -0
  94. simplicio_loop-3.38.0/simplicio_loop/finding_report.py +75 -0
  95. simplicio_loop-3.38.0/simplicio_loop/finding_router.py +206 -0
  96. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/flow_semantics.py +131 -131
  97. simplicio_loop-3.38.0/simplicio_loop/implementation_agent.py +743 -0
  98. simplicio_loop-3.38.0/simplicio_loop/intake_planner.py +467 -0
  99. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/model_registry.py +326 -326
  100. simplicio_loop-3.38.0/simplicio_loop/multi_tracker_reporting.py +543 -0
  101. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/ops_ledger.py +283 -283
  102. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/phase_events.py +139 -139
  103. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/progress.py +25 -1
  104. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/quality_matrix.py +180 -0
  105. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/recovery.py +393 -393
  106. simplicio_loop-3.38.0/simplicio_loop/review_panel.py +586 -0
  107. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/runtime_adapter.py +235 -235
  108. simplicio_loop-3.38.0/simplicio_loop/stage_agent_coordinator.py +918 -0
  109. simplicio_loop-3.38.0/simplicio_loop/stage_agents.py +975 -0
  110. simplicio_loop-3.38.0/simplicio_loop/stage_report.py +325 -0
  111. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/verified_delivery.py +158 -158
  112. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0/simplicio_loop.egg-info}/PKG-INFO +1 -1
  113. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop.egg-info/SOURCES.txt +69 -0
  114. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_agent_contract_unit.py +28 -0
  115. simplicio_loop-3.38.0/tests/test_agent_identity.py +246 -0
  116. simplicio_loop-3.38.0/tests/test_agent_replication.py +169 -0
  117. simplicio_loop-3.38.0/tests/test_bound_operators_runtime_required_unit.py +46 -0
  118. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_budget_error_paths_unit.py +116 -116
  119. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_check_loop_contract_regression.py +52 -52
  120. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_claims_manifest_unit.py +63 -63
  121. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_cli_install_unit.py +145 -145
  122. simplicio_loop-3.38.0/tests/test_cli_preflight_status_json_unit.py +143 -0
  123. simplicio_loop-3.38.0/tests/test_completion_auditor_431_unit.py +603 -0
  124. simplicio_loop-3.38.0/tests/test_conformance_suite.py +55 -0
  125. simplicio_loop-3.38.0/tests/test_contract_parity.py +60 -0
  126. simplicio_loop-3.38.0/tests/test_coordinator_unit.py +157 -0
  127. simplicio_loop-3.38.0/tests/test_delivery_agent_429.py +851 -0
  128. simplicio_loop-3.38.0/tests/test_evolution.py +231 -0
  129. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_fan_out_unit.py +141 -141
  130. simplicio_loop-3.38.0/tests/test_feedback_recovery_agent_430_unit.py +414 -0
  131. simplicio_loop-3.38.0/tests/test_finding_collector_unit.py +128 -0
  132. simplicio_loop-3.38.0/tests/test_finding_report.py +55 -0
  133. simplicio_loop-3.38.0/tests/test_finding_router.py +68 -0
  134. simplicio_loop-3.38.0/tests/test_findings_cli.py +102 -0
  135. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_flow_semantics_edge_paths_unit.py +117 -117
  136. simplicio_loop-3.38.0/tests/test_implementation_agent_426_unit.py +615 -0
  137. simplicio_loop-3.38.0/tests/test_intake_planner_425_unit.py +408 -0
  138. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_intake_progress.py +165 -165
  139. simplicio_loop-3.38.0/tests/test_loop_progress_encoding_unit.py +68 -0
  140. simplicio_loop-3.38.0/tests/test_multi_tracker_reporting.py +202 -0
  141. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_oracle_gates_unit.py +204 -204
  142. simplicio_loop-3.38.0/tests/test_pr_dod_review_unit.py +113 -0
  143. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_progress_unit.py +59 -0
  144. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_quality_matrix_integration.py +115 -115
  145. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_quality_matrix_regression.py +117 -117
  146. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_quality_matrix_system.py +128 -128
  147. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_quality_matrix_unit.py +39 -0
  148. simplicio_loop-3.38.0/tests/test_release_check_unit.py +94 -0
  149. simplicio_loop-3.38.0/tests/test_review_panel.py +449 -0
  150. simplicio_loop-3.38.0/tests/test_safety_gate_agent.py +205 -0
  151. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_schema_verify_integration.py +103 -103
  152. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_schema_verify_unit.py +78 -78
  153. simplicio_loop-3.38.0/tests/test_stage_agent_conformance.py +260 -0
  154. simplicio_loop-3.38.0/tests/test_stage_agent_contract.py +407 -0
  155. simplicio_loop-3.38.0/tests/test_stage_agent_coordinator.py +474 -0
  156. simplicio_loop-3.38.0/tests/test_stage_agent_fail_closed.py +72 -0
  157. simplicio_loop-3.38.0/tests/test_stage_agent_reducer.py +249 -0
  158. simplicio_loop-3.38.0/tests/test_stage_report_cli_integration.py +68 -0
  159. simplicio_loop-3.38.0/tests/test_stage_report_unit.py +244 -0
  160. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_task_contract_unit.py +146 -146
  161. simplicio_loop-3.38.0/tests/test_workflow_topology.py +193 -0
  162. simplicio_loop-3.38.0/tests/test_worktree_cleanup.py +194 -0
  163. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/setup.cfg +0 -0
  164. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/hooks/README.md +0 -0
  165. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/hooks/action_gate.py +0 -0
  166. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/orchestration.md +0 -0
  167. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/planning-gate.md +0 -0
  168. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/quality-safety-delivery.md +0 -0
  169. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-tasks/references/orchestration.md +0 -0
  170. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-tasks/references/quality-safety-delivery.md +0 -0
  171. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/delivery.py +0 -0
  172. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/external_verifiers.py +0 -0
  173. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/freshness.py +0 -0
  174. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/github_lifecycle.py +0 -0
  175. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/intake_contract.py +0 -0
  176. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/merge_executor.py +0 -0
  177. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/model_router.py +0 -0
  178. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/oracle.py +0 -0
  179. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/orca_lifecycle.py +0 -0
  180. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/plan_contract.py +0 -0
  181. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/planning_gate.py +0 -0
  182. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/pr_patrol.py +0 -0
  183. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/receipt_verifier.py +0 -0
  184. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/remote_queue.py +0 -0
  185. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/remote_queue_server_cli.py +0 -0
  186. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/remote_worker_cli.py +0 -0
  187. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/remote_worker_measurement.py +0 -0
  188. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/remote_worker_supervisor_cli.py +0 -0
  189. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/runner.py +0 -0
  190. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/runtime_drivers.py +0 -0
  191. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/runtime_execution_receipt.py +0 -0
  192. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/secure_transport.py +0 -0
  193. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/source_adapter.py +0 -0
  194. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/source_snapshot.py +0 -0
  195. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/source_state.py +0 -0
  196. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/task_contract.py +0 -0
  197. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/traceability_matrix.py +0 -0
  198. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/work_item_claims.py +0 -0
  199. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop/worker_daemon.py +0 -0
  200. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop.egg-info/dependency_links.txt +0 -0
  201. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop.egg-info/entry_points.txt +0 -0
  202. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop.egg-info/requires.txt +0 -0
  203. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/simplicio_loop.egg-info/top_level.txt +0 -0
  204. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_284_lifecycle_dag_idempotence_integration.py +0 -0
  205. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_action_gate_system.py +0 -0
  206. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_agent_identity_integration.py +0 -0
  207. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_agentsview_adapter_integration.py +0 -0
  208. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_attempt_journal_unit.py +0 -0
  209. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_autoresearch_system.py +0 -0
  210. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_az_boards_adapter_integration.py +0 -0
  211. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_batch_crash_recovery_system.py +0 -0
  212. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_budget_unit.py +0 -0
  213. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_check_e2e_demo_contract_system.py +0 -0
  214. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_check_e2e_installed_system.py +0 -0
  215. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_claims_audit_unit.py +0 -0
  216. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_clean_env_contract_integration.py +0 -0
  217. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_cli_dispatch_unit.py +0 -0
  218. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_cli_oracle_unit.py +0 -0
  219. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_completion_oracle_matrix_unit.py +0 -0
  220. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_completion_oracle_system.py +0 -0
  221. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_control_policy_unit.py +0 -0
  222. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_copilot_global_unit.py +0 -0
  223. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_cross_agent_wiki_integration.py +0 -0
  224. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_dashboard_hook_integration.py +0 -0
  225. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_delivery_concurrency_fault_injection_system.py +0 -0
  226. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_delivery_lifecycle_sandbox_e2e_system.py +0 -0
  227. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_delivery_progress_integration.py +0 -0
  228. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_delivery_reconciliation_unit.py +0 -0
  229. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_delivery_source_identity_unit.py +0 -0
  230. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_delivery_validation_unit.py +0 -0
  231. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_dispatch_batch_multi_pr_integration.py +0 -0
  232. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_dispatch_merge_wiring_integration.py +0 -0
  233. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_distributed_183_dod_system.py +0 -0
  234. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_distributed_183_e2e_system.py +0 -0
  235. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_distributed_183_external_probe_integration.py +0 -0
  236. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_distributed_epic_evidence_system.py +0 -0
  237. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_distributed_trust_policy_unit.py +0 -0
  238. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_doctor_smoke_system.py +0 -0
  239. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_drain_cli_integration.py +0 -0
  240. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_drain_integration.py +0 -0
  241. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_driver_contract_unit.py +0 -0
  242. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_e2e_demo_audit_system.py +0 -0
  243. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_evidence_chain_integration.py +0 -0
  244. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_evidence_receipt_unit.py +0 -0
  245. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_execution_board_e2e_integration.py +0 -0
  246. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_external_verifiers_integration.py +0 -0
  247. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_fan_out_flow_system.py +0 -0
  248. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_fan_out_scheduler_integration.py +0 -0
  249. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_flow_audit_integration.py +0 -0
  250. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_flow_semantics_unit.py +0 -0
  251. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_freshness_unit.py +0 -0
  252. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_gen_install_mutations_doc_unit.py +0 -0
  253. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_github_lifecycle_concurrency_e2e_system.py +0 -0
  254. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_github_lifecycle_live_e2e.py +0 -0
  255. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_github_lifecycle_readside_integration.py +0 -0
  256. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_github_lifecycle_runner_wiring_integration.py +0 -0
  257. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_github_lifecycle_unit.py +0 -0
  258. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_github_status_sync_unit.py +0 -0
  259. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_golden_mutation_regression.py +0 -0
  260. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_hbp_topics_integration.py +0 -0
  261. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_hierarchical_planner_unit.py +0 -0
  262. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_hooks_coverage_integration.py +0 -0
  263. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_impact_audit_integration.py +0 -0
  264. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_independent_watcher_integration.py +0 -0
  265. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_install_ci_pinning_unit.py +0 -0
  266. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_install_consent_regression.py +0 -0
  267. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_install_lib_integration.py +0 -0
  268. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_install_plan_unit.py +0 -0
  269. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_install_post_smoke_integration.py +0 -0
  270. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_install_rollback_integration.py +0 -0
  271. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_install_smoke_unit.py +0 -0
  272. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_install_transaction_unit.py +0 -0
  273. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_install_upgrade_integration.py +0 -0
  274. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_intake_impact_matrix_replan_284_unit.py +0 -0
  275. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_intake_progress_integration.py +0 -0
  276. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_learn_pipeline_removed_regression.py +0 -0
  277. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_ledger_cli_unit.py +0 -0
  278. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_live_issue_183_identity_system.py +0 -0
  279. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_locked_append_integration.py +0 -0
  280. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_loop_driver_run_state_e2e_system.py +0 -0
  281. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_loop_e2e_system.py +0 -0
  282. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_loop_progress_integration.py +0 -0
  283. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_maintenance_deferred_docs_integration.py +0 -0
  284. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_merge_executor_live_e2e_system.py +0 -0
  285. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_merge_executor_unit.py +0 -0
  286. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_merge_queue_live_probe_integration.py +0 -0
  287. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_mirror_parity_integration.py +0 -0
  288. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_model_registry_unit.py +0 -0
  289. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_model_routed_dispatch_wiring_integration.py +0 -0
  290. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_model_router_fallback_unit.py +0 -0
  291. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_model_router_unit.py +0 -0
  292. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_operator_batch_integration.py +0 -0
  293. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_operator_worktree_batch_unit.py +0 -0
  294. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_ops_ledger_integration.py +0 -0
  295. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_oracle_perf_benchmark_unit.py +0 -0
  296. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_oracle_source_lifecycle_gate_integration.py +0 -0
  297. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_orca_lifecycle_unit.py +0 -0
  298. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_orca_preset_integration.py +0 -0
  299. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_phase_events_unit.py +0 -0
  300. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_plan_contract_unit.py +0 -0
  301. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_planes_golden_eval_regression.py +0 -0
  302. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_planes_installed_e2e_system.py +0 -0
  303. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_planning_gate_284_enhancements_unit.py +0 -0
  304. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_planning_gate_execute_operator_integration.py +0 -0
  305. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_planning_gate_github_publish_unit.py +0 -0
  306. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_planning_gate_live_e2e_system.py +0 -0
  307. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_planning_gate_unit.py +0 -0
  308. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_pr_evidence_comment_publish_integration.py +0 -0
  309. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_pr_evidence_lifecycle_delegation_integration.py +0 -0
  310. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_pr_patrol_unit.py +0 -0
  311. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_precommit_bundle_sync_integration.py +0 -0
  312. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_preflight_unit.py +0 -0
  313. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_progress_comment_live_e2e_system.py +0 -0
  314. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_progress_comment_ratelimit_cli_e2e_integration.py +0 -0
  315. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_progress_e2e_system.py +0 -0
  316. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_progress_failopen_integration.py +0 -0
  317. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_progress_snapshots_unit.py +0 -0
  318. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_provenance_generate_integration.py +0 -0
  319. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_quality_gate_scripts_emit_json_unit.py +0 -0
  320. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_quality_matrix_benchmark_integration.py +0 -0
  321. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_quality_matrix_reverify_integration.py +0 -0
  322. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_quality_matrix_watcher.py +0 -0
  323. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_receipt_verifier_integration.py +0 -0
  324. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_recovery_unit.py +0 -0
  325. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_release_manifest_unit.py +0 -0
  326. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_release_rehearsal_integration.py +0 -0
  327. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_release_verify_unit.py +0 -0
  328. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_remote_queue_cancellation_integration.py +0 -0
  329. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_remote_queue_integration.py +0 -0
  330. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_remote_queue_live_system.py +0 -0
  331. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_remote_queue_pull_claim_system.py +0 -0
  332. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_remote_queue_short_lived_auth_integration.py +0 -0
  333. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_remote_worker_e2e_system.py +0 -0
  334. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_remote_worker_http_e2e_system.py +0 -0
  335. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_remote_worker_measurement_unit.py +0 -0
  336. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_remote_worker_supervisor_system.py +0 -0
  337. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_repo_conventions_architecture_unit.py +0 -0
  338. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_repo_governance_294_integration.py +0 -0
  339. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_repository_budget_unit.py +0 -0
  340. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_repository_governance_unit.py +0 -0
  341. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_runner_cli_integration.py +0 -0
  342. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_runner_progress_events_unit.py +0 -0
  343. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_runner_state_machine_unit.py +0 -0
  344. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_runtime_adapter_unit.py +0 -0
  345. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_runtime_drivers_integration.py +0 -0
  346. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_runtime_execution_receipt_unit.py +0 -0
  347. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_runtime_matrix_integration.py +0 -0
  348. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_sbom_generate_integration.py +0 -0
  349. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_secure_transport_fault_injection_system.py +0 -0
  350. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_secure_transport_integration.py +0 -0
  351. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_security_audit_log_unit.py +0 -0
  352. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_short_lived_credentials_unit.py +0 -0
  353. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_simplicio_mcp_runner_unit.py +0 -0
  354. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_source_adapter_protocol_unit.py +0 -0
  355. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_source_snapshot_unit.py +0 -0
  356. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_source_state_unit.py +0 -0
  357. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_system_276_e2e_system.py +0 -0
  358. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_system_check_system.py +0 -0
  359. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_system_clean_install_system.py +0 -0
  360. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_task_backlog_unit.py +0 -0
  361. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_task_contract_cli_integration.py +0 -0
  362. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_task_contract_routing_unit.py +0 -0
  363. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_task_to_delivery_golden_corpus_regression.py +0 -0
  364. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_test_categories_unit.py +0 -0
  365. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_token_budget_unit.py +0 -0
  366. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_toon_codec_unit.py +0 -0
  367. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_transcript_progress_e2e_system.py +0 -0
  368. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_transcript_progress_unit.py +0 -0
  369. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_turn_progress_integration.py +0 -0
  370. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_verified_delivery_dispatch_wiring_integration.py +0 -0
  371. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_verified_delivery_unit.py +0 -0
  372. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_verify_adapters_integration.py +0 -0
  373. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_version_sync_unit.py +0 -0
  374. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_vscode_global_install.py +0 -0
  375. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_watcher_binding_unit.py +0 -0
  376. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_watcher_challenge_generation_integration.py +0 -0
  377. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_watcher_quality_gate_reverify_unit.py +0 -0
  378. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_work_item_claims_chaos_system.py +0 -0
  379. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_work_item_claims_run_guarded_integration.py +0 -0
  380. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_work_item_claims_unit.py +0 -0
  381. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_worker_cli_contract_integration.py +0 -0
  382. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_worker_daemon_unit.py +0 -0
  383. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_worker_selftests_system.py +0 -0
  384. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_worker_smoke_system.py +0 -0
  385. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_workitem_attempts_integration.py +0 -0
  386. {simplicio_loop-3.36.1 → simplicio_loop-3.38.0}/tests/test_worktree_queue_integration.py +0 -0
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2026 Wesley Simplicio
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Wesley Simplicio
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -1,3 +1,4 @@
1
1
  include PYPI.md
2
2
  include LICENSE
3
3
  recursive-include simplicio_loop/_bundle *
4
+ recursive-include contracts/stage-agents/v1 *.json
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: simplicio-loop
3
- Version: 3.36.1
3
+ Version: 3.38.0
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
@@ -1,53 +1,53 @@
1
- # simplicio-loop
2
-
3
- **The Universal Looping AI Orchestrator** — a runtime-agnostic **super-plugin** (7 skills) that
4
- drains any queue of work end-to-end on **any LLM / runtime**:
5
- `discover → implement → verify → merge → close → watch 24/7`, behind safety gates and evidence
6
- checks, at up to **96% fewer tokens**. Not a chatbot. A worker.
7
-
8
- ![simplicio-loop](https://raw.githubusercontent.com/wesleysimplicio/simplicio-loop/main/assets/simplicio-loop-hero-2026.png)
9
-
10
- ## Install
11
-
12
- ```bash
13
- pip install simplicio-loop
14
- ```
15
-
16
- Then drop the skills + hooks into your project (or globally):
17
-
18
- ```bash
19
- simplicio-loop install # into ./.claude of the current project
20
- simplicio-loop install --global # into ~/.claude (all projects)
21
- ```
22
-
23
- Now invoke it from your agent runtime (Claude Code, Cursor, Codex, Gemini, …):
24
-
25
- ```
26
- /simplicio-loop finish all the open issues
27
- ```
28
-
29
- ## What you get — 7 skills
30
-
31
- | Skill | What it does |
32
- |---|---|
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
- | `simplicio-orient` | Terminal-first token economy — output-reduction catalog, tee-cache, signatures-read. |
36
- | `simplicio-review` | Adversarial review — parallel subagents on distinct rubrics, deduped into one verdict. |
37
- | `simplicio-compress` | Output + memory compression, byte-preserving identifiers. |
38
- | `simplicio-autoresearch` | Evolutionary mutate/eval/keep-revert optimizer — yool-guardrailed caps, git-isolated branch, anti-Goodhart gate-first eval. |
39
- | `simplicio-learn` | Retrospective — durable, deduped lessons written back to memory. |
40
-
41
- ## Highlights
42
-
43
- - **12 runtimes, one protocol** — Claude Code, Codex, VS Code/Copilot, Cursor, Antigravity, Kiro,
44
- OpenCode, Gemini, Aider, Simplicio Agent (formerly Hermes), OpenClaw, Orca.
45
- - **Evidence-gated completion** — never a false "done"; exits only on a verified `<promise>`,
46
- cap, spindle handoff, or STOP.
47
- - **Token economy** — honest "answer concisely" baseline; savings credited only on verified-correct
48
- outcomes.
49
-
50
- Requires Python 3.8+. The skills, hooks, and installer are pure cross-platform Python.
51
-
52
- MIT — part of the [Simplicio](https://github.com/wesleysimplicio) ecosystem.
53
- Full docs: <https://github.com/wesleysimplicio/simplicio-loop>
1
+ # simplicio-loop
2
+
3
+ **The Universal Looping AI Orchestrator** — a runtime-agnostic **super-plugin** (7 skills) that
4
+ drains any queue of work end-to-end on **any LLM / runtime**:
5
+ `discover → implement → verify → merge → close → watch 24/7`, behind safety gates and evidence
6
+ checks, at up to **96% fewer tokens**. Not a chatbot. A worker.
7
+
8
+ ![simplicio-loop](https://raw.githubusercontent.com/wesleysimplicio/simplicio-loop/main/assets/simplicio-loop-hero-2026.png)
9
+
10
+ ## Install
11
+
12
+ ```bash
13
+ pip install simplicio-loop
14
+ ```
15
+
16
+ Then drop the skills + hooks into your project (or globally):
17
+
18
+ ```bash
19
+ simplicio-loop install # into ./.claude of the current project
20
+ simplicio-loop install --global # into ~/.claude (all projects)
21
+ ```
22
+
23
+ Now invoke it from your agent runtime (Claude Code, Cursor, Codex, Gemini, …):
24
+
25
+ ```
26
+ /simplicio-loop finish all the open issues
27
+ ```
28
+
29
+ ## What you get — 7 skills
30
+
31
+ | Skill | What it does |
32
+ |---|---|
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
+ | `simplicio-orient` | Terminal-first token economy — output-reduction catalog, tee-cache, signatures-read. |
36
+ | `simplicio-review` | Adversarial review — parallel subagents on distinct rubrics, deduped into one verdict. |
37
+ | `simplicio-compress` | Output + memory compression, byte-preserving identifiers. |
38
+ | `simplicio-autoresearch` | Evolutionary mutate/eval/keep-revert optimizer — yool-guardrailed caps, git-isolated branch, anti-Goodhart gate-first eval. |
39
+ | `simplicio-learn` | Retrospective — durable, deduped lessons written back to memory. |
40
+
41
+ ## Highlights
42
+
43
+ - **12 runtimes, one protocol** — Claude Code, Codex, VS Code/Copilot, Cursor, Antigravity, Kiro,
44
+ OpenCode, Gemini, Aider, Simplicio Agent (formerly Hermes), OpenClaw, Orca.
45
+ - **Evidence-gated completion** — never a false "done"; exits only on a verified `<promise>`,
46
+ cap, spindle handoff, or STOP.
47
+ - **Token economy** — honest "answer concisely" baseline; savings credited only on verified-correct
48
+ outcomes.
49
+
50
+ Requires Python 3.8+. The skills, hooks, and installer are pure cross-platform Python.
51
+
52
+ MIT — part of the [Simplicio](https://github.com/wesleysimplicio) ecosystem.
53
+ Full docs: <https://github.com/wesleysimplicio/simplicio-loop>
@@ -1,7 +1,7 @@
1
1
  # 🔁 simplicio-loop — The Universal Looping AI Orchestrator
2
2
 
3
3
  <p align="center">
4
- <img src="assets/simplicio-loop-hero-2026.png" alt="simplicio-loop autonomous parallel evidence-gated orchestration" width="920" />
4
+ <img src="assets/simplicio-loop-hero-stage-agents-2026.webp" alt="simplicio-loop portable stage agents, evidence gates, durable memory, and connected work-item reporting" width="920" />
5
5
  </p>
6
6
 
7
7
  <p align="center">
@@ -9,7 +9,7 @@
9
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>
10
10
  <a href="#-the-7-skills--5-accelerators"><img src="https://img.shields.io/badge/skills-7-7C3AED" alt="7 skills"></a>
11
11
  <a href="#-source-adapters"><img src="https://img.shields.io/badge/source%20adapters-5-00E08A" alt="5 source adapters"></a>
12
- <a href="#-12-runtimes-one-protocol"><img src="https://img.shields.io/badge/runtimes-12%20(3%20garantidos%2B9%20best--effort)-2563EB" alt="12 runtimes (3 guaranteed + 9 best-effort)"></a>
12
+ <a href="#-15-runtimes-one-protocol"><img src="https://img.shields.io/badge/runtimes-15%20(3%20garantidos%2B12%20best--effort)-2563EB" alt="15 runtimes (3 guaranteed + 12 best-effort)"></a>
13
13
  <a href="#-the-49-extension-points"><img src="https://img.shields.io/badge/extension%20points-49-00E08A" alt="49 extension points"></a>
14
14
  <a href="#-token-economy"><img src="https://img.shields.io/badge/savings-unverified-888888" alt="Savings — unverified"></a>
15
15
  <a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue" alt="License"></a>
@@ -20,7 +20,7 @@
20
20
  <a href="#-tldr">TL;DR</a> ·
21
21
  <a href="#-the-7-skills--5-accelerators">7 Skills</a> ·
22
22
  <a href="#-source-adapters">Source Adapters</a> ·
23
- <a href="#-12-runtimes-one-protocol">12 Runtimes</a> ·
23
+ <a href="#-15-runtimes-one-protocol">15 Runtimes</a> ·
24
24
  <a href="#-the-loop">The Loop</a> ·
25
25
  <a href="#-token-economy">Token Economy</a> ·
26
26
  <a href="#-token-economy">Capture Engine</a> ·
@@ -86,24 +86,141 @@ That architecture lets one goal become a governed delivery system: from a single
86
86
  </p>
87
87
  <!-- visual-story:end -->
88
88
 
89
- ## 🆕 What's new in v3.35.0
89
+ <!-- stage-agents-roadmap:start -->
90
+ ## 🤖 Shipped: a concrete agent behind every stage
90
91
 
91
- - **Real multi-device execution** — atomic claim/discovery over a live remote queue, worker heartbeat + cancellation, receipt verification on *both* the client and the server, and an installable worker/supervisor/queue-server console-script surface, plus a `doctor.py` `LOCAL_ONLY` / `REMOTE_READY` / `REMOTE_MEASURED` tri-state so "remote" is never claimed without a passing cross-process proof.
92
- - **Real multi-LLM routing** — a deterministic model registry/router with fallback and circuit-breaker, task-contract-driven routing fields, and a genuine, verified `codex exec` run producing an auditable `runtime-execution-receipt` (Claude-side execution is implemented too, gated only by org policy in this environment — never faked).
93
- - **Evidence-gated delivery, wired for real** — fail-closed receipt verification (content/hash/schema/freshness), heartbeat-guarded dispatch, a merge executor that reconciles *after* merging (not just after opening the PR), chaos-tested crash recovery, and a cross-receipt commit-binding gate that closes a real "two green receipts, two different commits" gap.
94
- - **Security hardening** — an enumerated environment allow-list, short-lived HMAC credentials with `jti` revocation and per-operation scoping, DNS/TLS-pinned transport proven against live redirect/rebinding/proxy-injection attempts, structured audit logging, and CODEOWNERS coverage of every security-critical module.
95
- - **Delivery truth** — no more presumed proof: paginated live GraphQL queries, byte-level release-artifact verification (real SHA-256 + `gh attestation verify`), branch-reachability/issue-state/freshness checks, and a real concurrency + crash + fault-injection test matrix (including crashes *during* the external call itself).
96
- - **Quality gate, for real** — an independent watcher that re-derives every quality-matrix lane (including coverage drift) instead of trusting a self-reported receipt, all 192 test files sorted into a real unit/integration/system/regression convention, and measured coverage raised from 16.6% / 9.4% to 28.45% / 24.02% (global / critical) on the widened scope.
97
- - **A local, CI-less determinism story** — since GitHub Actions isn't available on this repo, a fail-closed local pre-push gate now stands in as the mandatory, impossible-to-bypass check, and the release pipeline (version bump → build → checksum → SBOM → local provenance → install-smoke) runs end-to-end against the real checkout with `scripts/release_rehearsal.py`.
98
- - **A transactional installer** — backup-before-mutate, real rollback, N-1→N upgrade tests, explicit consent gating before installing a service/proxy, and a machine-readable mutation manifest.
99
- - **Repository governance** — LFS-scoped media, a budget gate blocking accidental build-artifact commits, a canonical version/skill/claims manifest, and a dry-run-only history-migration plan (the actual rewrite stays a separate, explicit maintainer action, by design).
92
+ > **Implementation status:** [#422](https://github.com/wesleysimplicio/simplicio-loop/issues/422)–[#436](https://github.com/wesleysimplicio/simplicio-loop/issues/436) — the whole EPIC — is **closed and shipped** as of v3.37.0, including the full mandatory stage-reporting gate ([#433](https://github.com/wesleysimplicio/simplicio-loop/issues/433)) and the multi-tracker interface ([#436](https://github.com/wesleysimplicio/simplicio-loop/issues/436)). v3.38.0 adds the multi-agent coordination layer on top (`scripts/coordinator.py`, `scripts/pr_dod_review.py`) — see [§ What's new](#-whats-new-in-v3380--the-multi-agent-coordination-release).
100
93
 
101
- See [`CHANGELOG.md`](CHANGELOG.md) for the full list and the [v3.35.0 release](https://github.com/wesleysimplicio/simplicio-loop/releases/tag/v3.35.0) for signed artifacts (wheel, sdist, SBOM, provenance).
94
+ The portable driver assigns one accountable agent to intake/planning, implementation, safety,
95
+ delivery, feedback/recovery, and final completion audit. Review fans out to four independent agents
96
+ — security/correctness, code quality, runtime reproduction, and blast radius — before it can
97
+ reconverge. Every transition emits an event and receipt; the completion auditor accepts evidence,
98
+ never self-reported confidence.
99
+
100
+ <p align="center">
101
+ <img src="assets/simplicio-loop-stage-agents-reporting-2026.webp" alt="simplicio-loop stage agents with four-way review, evidence ledger, recovery, completion audit, and work-item comments" width="920" />
102
+ </p>
103
+
104
+ ### Work-item comment policy
105
+
106
+ | Work tracker | Reporting policy | Completion meaning |
107
+ |---|---|---|
108
+ | **GitHub Issues / PRs** | **Required** for GitHub-bound runs | `COMPLETE` waits for a remotely observed comment receipt |
109
+ | **Azure DevOps** | Only when its connector is detected, authenticated, authorized, and target-resolved | Connected providers report; `NOT_CONNECTED` is an explicit, non-blocking skip |
110
+ | **Jira** | Only when connected | Same canonical timeline, provider-specific confirmation |
111
+ | **Asana** | Only when connected | Same canonical timeline, provider-specific confirmation |
112
+ | **Trello** | Only when connected | Same canonical timeline, provider-specific confirmation |
113
+
114
+ ```mermaid
115
+ flowchart LR
116
+ SOURCE["Issue · task · queue"] --> COORD["Portable coordinator"]
117
+ COORD --> PLAN["Intake + Planner agent"]
118
+ PLAN --> BUILD["Implementation agent"]
119
+ BUILD --> SAFE["Safety agent"]
120
+ SAFE --> R1["Review agent · security"]
121
+ SAFE --> R2["Review agent · quality"]
122
+ SAFE --> R3["Review agent · runtime/E2E"]
123
+ SAFE --> R4["Review agent · blast radius"]
124
+ R1 --> DELIVER["Delivery agent"]
125
+ R2 --> DELIVER
126
+ R3 --> DELIVER
127
+ R4 --> DELIVER
128
+ DELIVER --> RECOVER["Feedback + Recovery agent"]
129
+ RECOVER --> BUILD
130
+ DELIVER --> AUDIT["Completion auditor"]
131
+ AUDIT --> VERDICT{"COMPLETE · PARTIAL · BLOCKED · REGRESSED"}
132
+ PLAN -. "events + receipts" .-> LEDGER["Append-only stage ledger"]
133
+ BUILD -.-> LEDGER
134
+ SAFE -.-> LEDGER
135
+ DELIVER -.-> LEDGER
136
+ AUDIT -.-> LEDGER
137
+ LEDGER --> GH["GitHub comments · REQUIRED"]
138
+ LEDGER -. "only if connected" .-> AZ["Azure DevOps comments"]
139
+ LEDGER -. "only if connected" .-> JIRA["Jira comments"]
140
+ LEDGER -. "only if connected" .-> ASANA["Asana comments"]
141
+ LEDGER -. "only if connected" .-> TRELLO["Trello comments"]
142
+ GH --> AUDIT
143
+ ```
144
+
145
+ The provider-neutral contract, capability probes, idempotent markers, durable outboxes, recovery
146
+ rules, sandbox E2E matrix, and acceptance criteria are specified in
147
+ [#436](https://github.com/wesleysimplicio/simplicio-loop/issues/436). An optional provider is never
148
+ treated as connected merely because a CLI exists, and no remote acknowledgment is ever invented.
149
+ <!-- stage-agents-roadmap:end -->
150
+
151
+ ## 🆕 What's new in v3.38.0 — the multi-agent coordination release
152
+
153
+ This release is about one hard problem that only shows up once **several agent sessions work the
154
+ same repo at once**: how does a session know what's already claimed, what's already merged-but-
155
+ incomplete, and what to do with its own idle time instead of duplicating a sibling's work? Every
156
+ item below was built, tested, and shipped against the **live, multi-session state of this very
157
+ repo** — not a synthetic scenario.
158
+
159
+ - **`scripts/coordinator.py` — the decision core.** Given today's GitHub state (open-issue claim
160
+ comments + merged PRs), it returns one deterministic action per issue: `OWN` (nothing claimed
161
+ yet), `CONTINUE_OWN` (you're already the latest claimant), `DEFER_ACTIVE_CLAIM` (a sibling
162
+ session claimed it recently — don't duplicate), `RECLAIM_STALE` (that claim went cold, safe to
163
+ pick up), or `VERIFY_PARTIAL` (a PR already merged for this issue, but it's still open — check
164
+ what's actually done before assuming either "nothing happened" or "it's finished"). It also
165
+ raises a `duplicate_risk` flag the instant two sessions claim the same issue close together.
166
+ Caught, live, on day one: two sessions independently building a findings collector for the same
167
+ issue under two different filenames.
168
+ - **`scripts/pr_dod_review.py` — the reviewer for idle time.** When every open issue is already
169
+ claimed, a session's highest-leverage move isn't to wait — it's to check the open PRs against
170
+ this repo's own bar: the 7-dimension Definition of Done (implementation, unit/integration/
171
+ system/regression tests, a performance benchmark, ≥85% coverage) and the underlying issue's
172
+ frozen acceptance-criteria checklist. `check --post` posts a mechanical, line-by-line verdict as
173
+ a PR comment instead of a vibe-based approval. Proven against a real, already-merged "MVP slice"
174
+ PR: it correctly flagged **17 of 17** acceptance criteria on the parent epic as still unresolved.
175
+ - **`scripts/finding_collector.py` — durable, deduplicated defect memory (issue #466, phase 1).**
176
+ A `simplicio.finding/v1` record per distinct defect, fingerprinted so the *same* underlying bug —
177
+ seen by any agent, any run, any timestamp — collapses into one record with an occurrence count
178
+ instead of spawning duplicate noise. No GitHub calls yet; that's the next phase.
179
+ `scripts/evolution.py` (taxonomy + priority + dedup) and `scripts/workflow_topology.py` (DAG
180
+ diff + validator) shipped as the first MVP slices of the companion Continuous Evolution (#467)
181
+ and Adaptive Architecture (#468) epics; `scripts/agent_replication.py` did the same for Elastic
182
+ Replication (#469) — admission control and winner-selection for speculative duplicate execution.
183
+ - **`references/multi-agent-coordination.md` + `references/background-verification.md`** — two new
184
+ documented conventions wired straight into `SKILL.md`'s triage step: check coordinator ownership
185
+ before touching an issue, review PRs instead of idling once everything's claimed, and launch
186
+ slow verification commands (tests/`claims_audit.py`) in the background so a turn keeps making
187
+ progress instead of watching a progress bar.
188
+ - **Mandatory post-merge cleanup (`scripts/worktree_cleanup.py`, #484)** — a merged branch's local
189
+ worktree and branch ref are now removed automatically instead of accumulating across sessions.
190
+ - **CLI contract additions (WI-471)** — a `preflight` subcommand and a `--json` flag on `status`,
191
+ so an external supervisor can machine-check readiness before arming a run.
192
+ - **Continuous Findings wiring (WI-466)** — the completion gate now genuinely consults the finding
193
+ store, and a store/repo consistency bug was found and fixed in the same pass.
194
+ - **Two real regressions caught and fixed on `main` itself, live, this release cycle** — a PR that
195
+ silently deleted a function definition (breaking `loop_progress.py`'s own selftest) merged once,
196
+ and a squash-merge race then reintroduced the exact same broken code onto `main` a second time.
197
+ Both were found by actually running the affected script, not by trusting a green PR description —
198
+ the whole reason `coordinator.py` and `pr_dod_review.py` exist now.
199
+ - **Carried forward from v3.37.0's Portable Stage Agents epic (#422–#436)** — a concrete,
200
+ independently verifiable agent behind every stage (intake/planner, implementation, four-way
201
+ review panel, safety gate, delivery, feedback/recovery, completion auditor), a conformance suite
202
+ proving contract/receipt parity across all 15 runtimes, human-readable agent identities, and
203
+ `simplicio-runtime` promoted to a required bound operator exactly like `simplicio-mapper`/
204
+ `simplicio-dev-cli`.
205
+ - **Test suite grew to 231 files** (from 192), all still sorted into the unit/integration/system/
206
+ regression convention `docs/SCRIPTS_INVENTORY.md` tracks; `scripts/claims_audit.py` stayed at
207
+ 14/14 through every merge this cycle.
208
+
209
+ **What this means for you, concretely:** if you run `simplicio-loop` across more than one session
210
+ or machine against the same repo, it now actively protects you from the two failure modes that
211
+ actually happen in practice — two agents quietly redoing the same work, and a "done" PR that
212
+ merged but left the real issue only partially solved. Neither used to be visible; both now are,
213
+ mechanically, every triage pass.
214
+
215
+ See [`CHANGELOG.md`](CHANGELOG.md) for the full list and the
216
+ [v3.38.0 release](https://github.com/wesleysimplicio/simplicio-loop/releases/tag/v3.38.0) for
217
+ signed artifacts (wheel, sdist, SBOM, provenance).
102
218
 
103
219
  ## ⚡ TL;DR
104
220
 
105
221
  **simplicio-loop** is a runtime-agnostic **super-plugin** — one autonomous looping
106
- orchestrator (invoked as **`/simplicio-loop`**) plus **five satellite skills** — that turns any
222
+ orchestrator (invoked as **`/simplicio-loop`**) plus **six satellite skills and five
223
+ accelerators** — that turns any
107
224
  strong LLM (Claude, Codex, Copilot, Gemini, Cursor, local models) into a self-driving worker. You
108
225
  point it at a body of work — *"finish all the open issues"*, *"clear the CI queue"*, *"drain the Jira board"* — and it
109
226
  runs the whole lifecycle on its own:
@@ -126,14 +243,14 @@ and keeps watching **24/7** for new work — all behind safety gates and evidenc
126
243
  ```
127
244
 
128
245
  Three things make it different: it is a **super-plugin of focused skills**, it runs the **same
129
- protocol on 12 runtimes**, and it does all of this with **aggressive, honest token economy**.
246
+ protocol on 15 runtimes**, and it does all of this with **aggressive, honest token economy**.
130
247
 
131
248
  The skill installs **standalone** too: you do **not** need `simplicio-runtime` or any mandatory
132
249
  runtime-native component just to use `simplicio-loop`. Native binds, operators, capture services,
133
250
  and the wider Simplicio runtime stack are optional accelerators on top of the core skill bundle.
134
251
 
135
252
  <p align="center">
136
- <img src="assets/simplicio-loop-infographic.png" alt="simplicio-loop detailed infographic: standalone install, optional native binds, 7 skills, 5 accelerators, 12 runtimes, 5 source adapters, and proof gates" width="920" />
253
+ <img src="assets/simplicio-loop-infographic.png" alt="simplicio-loop detailed infographic: standalone install, required native binds, 7 skills, 5 accelerators, 15 runtimes, 5 source adapters, and proof gates" width="920" />
137
254
  </p>
138
255
 
139
256
  Within the Simplicio product line, this repo is also the **current reference task flow** for
@@ -169,8 +286,8 @@ If you are an agent/runtime entering this repo cold, read `llms.txt` first for t
169
286
  ## 📘 Official capability record
170
287
 
171
288
  The complete, official roster of what `simplicio-loop` ships — every capability below is **real,
172
- runnable, and tested** (`python3 scripts/check.py`: claims-audit 9/9 + 245 passed). Each links to its
173
- deep section and its worker.
289
+ runnable, and tested** (`python3 scripts/check.py`: claims-audit 14/14 + 2,544 tests collected
290
+ across 231 files). Each links to its deep section and its worker.
174
291
 
175
292
  | Capability | What it does | Proof / worker | Details |
176
293
  |---|---|---|---|
@@ -182,6 +299,10 @@ deep section and its worker.
182
299
  | 🔒 **Fail-closed safety gate** (`action_gate`) | A `PreToolUse`/git-pre-push hook that **mechanically blocks** force-push, history rewrite, mass-delete, destructive DDL, infra teardown, and secret-laden commits/pushes — Step 5 made executable, not prose | `hooks/action_gate.py` · `selftest` 15/15 | [§ Safety](#-safety-non-negotiable) |
183
300
  | 🔬 **Local verification** | A test suite (worker selftests + an **e2e of the loop driver** proving evidence-gated exit) + a **claims-audit** (referenced scripts exist · counts consistent · `_bundle ≡ source`) — all local, **no paid CI** | `scripts/check.py` · `scripts/claims_audit.py` · `tests/` | [§ Tests & local checks](#-tests--local-checks-no-paid-ci) |
184
301
  | ✅ **Honest savings** | The savings line is now **evidence-gated, not mandatory** — a number is shown only with a measured receipt (clamp/signatures/cache/`deterministic_edit`/ledger); never fabricated | token-economy contract | [§ Token economy](#-token-economy) |
302
+ | 🤝 **Multi-agent coordinator** (`coordinator.py`) | Decides `OWN` / `CONTINUE_OWN` / `DEFER_ACTIVE_CLAIM` / `RECLAIM_STALE` / `VERIFY_PARTIAL` per issue from live claim comments + merged PRs, so two sessions never duplicate the same work | `scripts/coordinator.py` · `selftest` 10/10 | [§ The full flow](#️-the-full-flow--from-demand-to-delivery) |
303
+ | 🕵️ **PR DoD/AC reviewer** (`pr_dod_review`) | When every issue is claimed, reviews open PRs against the 7-dimension Definition of Done + the issue's own acceptance-criteria checklist — a mechanical verdict, not a vibe-based approval | `scripts/pr_dod_review.py` · `selftest` 13/13 | [§ The full flow](#️-the-full-flow--from-demand-to-delivery) |
304
+ | 🐞 **Finding collector** (`finding_collector`) | Fingerprinted, deduplicated defect memory — the same underlying bug collapses into one record with an occurrence count, no matter how many agents/runs observe it | `scripts/finding_collector.py` · `selftest` 9/9 | [§ Official capability record](#-official-capability-record) |
305
+ | 🔔 **Release check** (`release_check`) | Compares the local canonical version against the latest GitHub release and tells the driving LLM to update instead of quietly working on a stale checkout — fail-open when offline | `scripts/release_check.py` · `selftest` 8/8 | [§ Install & use](#-install--use) |
185
306
 
186
307
  Two loop **modes** make termination explicit: **converge** (a single hard task — ends on the
187
308
  evidence-gated `<promise>` or a stall escalation) vs **drain** (a queue — ends when the source
@@ -230,9 +351,12 @@ The orchestrator discovers work from any source via pluggable adapters. Each exp
230
351
 
231
352
  | Source | Adapter | Purpose |
232
353
  |---|---|---|
233
- | GitHub Issues/PRs | `gh` CLI (native) | Primary work-item source |
234
- | Jira / Asana / ClickUp / Linear / Notion | host connector | Board/project management |
235
- | Trello / Azure DevOps | `az boards` adapter | Azure work tracking |
354
+ | GitHub Issues/PRs | `gh` CLI (native) | Primary work-item source; canonical lifecycle comments ship today |
355
+ | Azure DevOps | `az boards` / host connector | Azure Boards discovery; stage comments only after a real connected-capability probe |
356
+ | Jira | host connector | Jira discovery; stage comments only when connected |
357
+ | Asana | host connector | Asana discovery; stage comments only when connected |
358
+ | Trello | host connector | Trello discovery; stage comments only when connected |
359
+ | ClickUp / Linear / Notion | host connector | Board/project discovery; no stage-comment claim without a certified adapter |
236
360
  | **agentsview sessions** | `scripts/agentsview_adapter.py` | Stalled session recovery + cost observability |
237
361
  | Local files / CI queue | filesystem / CI API | Internal work tracking |
238
362
 
@@ -240,33 +364,38 @@ See each adapter's reference doc under `.claude/skills/simplicio-loop/references
240
364
 
241
365
  ---
242
366
 
243
- ## 🌐 12 runtimes, one protocol — 3 guaranteed + 9 best-effort
367
+ ## 🌐 15 runtimes, one protocol — 3 guaranteed + 12 best-effort
244
368
 
245
369
  One universal skill core + one set of hooks drives every runtime. An adapter is thin: it tells a
246
370
  runtime *where to load the skills*, *how to arm the loop*, and *how to bind native speed*. **The
247
- skill names no runtime; the runtime detects the skill.**
371
+ skill names no runtime; the runtime detects the skill.** The native `simplicio-runtime` MCP bind
372
+ is **REQUIRED** on every runtime (loop BLOCKS if it's missing/unreachable) — see
373
+ [`docs/MCP_SETUP.md`](docs/MCP_SETUP.md) for the per-host config table.
248
374
 
249
375
  ### Tier 1 — Guaranteed (gated on every commit)
250
376
 
251
- | Runtime | Skill load | Loop drive | Native bind |
377
+ | Runtime | Skill load | Loop drive | Native bind (MCP) |
252
378
  |---|---|---|---|
253
- | **Claude Code** | `.claude/skills/` + plugin | `Stop` hook | MCP |
254
- | **Codex** | `AGENTS.md` | self-paced | MCP / adapter |
255
- | **Cursor** | `.cursor-plugin/` | `stop`+`afterAgentResponse` | MCP / rules |
379
+ | **Claude Code** | `.claude/skills/` + plugin | `Stop` hook | REQUIRED — `~/.claude.json` |
380
+ | **Codex** | `AGENTS.md` | self-paced | REQUIRED — `~/.codex/config.toml` |
381
+ | **Cursor** | `.cursor-plugin/` | `stop`+`afterAgentResponse` | REQUIRED — `.cursor/mcp.json` |
256
382
 
257
383
  ### Tier 2 — Best-effort (contributions welcome, no gate)
258
384
 
259
- | Runtime | Skill load | Loop drive | Native bind |
385
+ | Runtime | Skill load | Loop drive | Native bind (MCP) |
260
386
  |---|---|---|---|
261
- | **VS Code (Copilot)** | `copilot-instructions.md` | tasks | MCP |
262
- | **Antigravity** | rules / `AGENTS.md` | self-paced | MCP |
263
- | **Kiro** | `.kiro/steering/` | specs | MCP |
264
- | **OpenCode** | `AGENTS.md` | self-paced | MCP |
265
- | **Gemini** | `GEMINI.md` | self-paced | MCP / adapter |
266
- | **Aider** | `CONVENTIONS.md` | self-paced | — (LLM fallback) |
267
- | **Simplicio Agent** *(formerly Hermes)* | native recall | native loop | **native** |
268
- | **OpenClaw** | plugin SDK | native scheduler | **native** |
269
- | **Orca** | via inner agent + skills registry | inner hook / scheduled automations | MCP |
387
+ | **VS Code (Copilot)** | `copilot-instructions.md` | tasks | REQUIRED — `.vscode/mcp.json` |
388
+ | **Antigravity** | rules / `AGENTS.md` | self-paced | REQUIRED — best-effort path |
389
+ | **Kiro** | `.kiro/steering/` | specs | REQUIRED — `.kiro/settings/mcp.json` |
390
+ | **OpenCode** | `AGENTS.md` | self-paced | REQUIRED — `opencode.json` |
391
+ | **Gemini** (CLI/Code Assist) | `GEMINI.md` | self-paced | REQUIRED — `.gemini/settings.json` (CLI) |
392
+ | **Kimi** | inlined conventions | self-paced | REQUIRED — best-effort, no verified client |
393
+ | **Qwen** (Code/CLI) | `AGENTS.md`-equivalent | self-paced | REQUIRED — `.qwen/settings.json` (best-effort) |
394
+ | **DeepSeek** | inlined conventions | self-paced | REQUIRED — no first-party client, best-effort |
395
+ | **Aider** | `CONVENTIONS.md` | self-paced | REQUIRED — no MCP client (LLM fallback for exec) |
396
+ | **Simplicio Agent** *(formerly Hermes)* | native recall | native loop | REQUIRED — **native** |
397
+ | **OpenClaw** | plugin SDK | native scheduler | REQUIRED — **native** |
398
+ | **Orca** | via inner agent + skills registry | inner hook / scheduled automations | REQUIRED — registry/inner-agent config |
270
399
 
271
400
  The promise: **same protocol, same gates, same safety on all 12 — Tier 1 verified mechanically,
272
401
  Tier 2 best-effort.** `orient_clamp.py` (token economy) works on every runtime with zero wiring. See
@@ -283,27 +412,39 @@ to delivering merged, evidenced work, then looping 24/7 for more.
283
412
  flowchart LR
284
413
  IN["Intent: issue · task · queue"] --> CONTRACT["1 · Freeze task contract"]
285
414
  CONTRACT --> MAP["2 · Map source + normalize"]
286
- MAP --> PLAN["3 · Dependency DAG + acceptance criteria"]
287
- PLAN --> ROUTE{"4 · Ready task?"}
415
+ MAP --> COORD{"3 · Coordinator decide (multi-session)"}
416
+ COORD -->|"OWN / CONTINUE_OWN / RECLAIM_STALE"| PLAN["4 · Dependency DAG + acceptance criteria"]
417
+ COORD -->|"DEFER_ACTIVE_CLAIM (all issues)"| REVIEW["PR DoD/AC review — never idle"]
418
+ COORD -->|"VERIFY_PARTIAL"| RECHECK["Verify what's actually merged before continuing"]
419
+ RECHECK --> PLAN
420
+ REVIEW --> IN
421
+ PLAN --> ROUTE{"5 · Ready task?"}
288
422
  ROUTE -->|"solo / small"| SOLO["Targeted lane"]
289
423
  ROUTE -->|"parallel / medium+"| FAN["Bounded fan-out"]
290
424
  FAN --> A["Isolated worktree A"]
291
425
  FAN --> B["Isolated worktree B"]
292
426
  FAN --> C["Isolated worktree C"]
293
- SOLO --> VERIFY["5 · Test + impact/flow evidence"]
427
+ SOLO --> VERIFY["6 · Test + impact/flow evidence"]
294
428
  A --> VERIFY
295
429
  B --> VERIFY
296
430
  C --> VERIFY
297
431
  VERIFY --> RECEIPT["Watcher challenge + evidence receipt"]
298
- RECEIPT --> ORACLE{"6 · Completion oracle"}
432
+ RECEIPT --> ORACLE{"7 · Completion oracle"}
299
433
  ORACLE -->|"pending / blocked"| RECOVER["Journal · checkpoint · rollback · backlog-only maintenance"]
300
434
  RECOVER --> PLAN
301
- ORACLE -->|"verified / measured"| DELIVER["7 · Source sync · PR · merge"]
302
- DELIVER --> MEMORY["8 · Ledger · wiki · durable attempt memory"]
303
- MEMORY --> WATCH["9 · Re-feed · watcher · STOP path"]
435
+ ORACLE -->|"verified / measured"| DELIVER["8 · Source sync · PR · merge"]
436
+ DELIVER --> CLEANUP["Post-merge worktree/branch cleanup"]
437
+ CLEANUP --> MEMORY["9 · Ledger · wiki · durable attempt memory"]
438
+ MEMORY --> WATCH["10 · Re-feed · watcher · STOP path"]
304
439
  WATCH -->|"new work"| IN
305
440
  ```
306
441
 
442
+ **Multi-agent coordination (new in v3.38.0).** Step 3 is the mechanical answer to "is a sibling
443
+ session already on this?" — `scripts/coordinator.py` decides from live GitHub state, never a guess.
444
+ When every candidate issue comes back deferred, the loop doesn't idle: it reviews open PRs against
445
+ the DoD + acceptance criteria (`scripts/pr_dod_review.py`) instead. Full detail:
446
+ [`references/multi-agent-coordination.md`](.claude/skills/simplicio-loop/references/multi-agent-coordination.md).
447
+
307
448
  **Planning gate (issue #284).** Steps 1–3 above are not just guidance — `simplicio_loop/planning_gate.py`
308
449
  makes them a fail-closed mechanical barrier between "claimed" and "mutating": every real
309
450
  `arm_run()` self-builds a `planning-receipt.json` binding run/attempt/contract/plan/lease/fence
@@ -572,9 +713,18 @@ Pass **`--minimal`** only for headless/CI to skip the heavy deps + the machine s
572
713
  ### Update
573
714
 
574
715
  ```bash
575
- bash scripts/update.sh [<runtime>] # git pull → reinstall skills/hooks/operators → restart services
716
+ python3 scripts/release_check.py check # is a newer release published? — never auto-updates
717
+ bash scripts/update.sh [<runtime>] # git pull → reinstall skills/hooks/operators → restart services
576
718
  ```
577
719
 
720
+ `release_check.py` compares the local canonical version (`pyproject.toml`) against the latest
721
+ GitHub release tag and prints an explicit `MEASURED|release-check: a newer release is available …`
722
+ line (exit 10) when you're behind — the agent/LLM driving `simplicio-loop` is meant to read that
723
+ line and run the update itself, not silently keep working on a stale checkout. It never applies the
724
+ update — a detected-but-declined update is never auto-installed — and it fails open (`UNVERIFIED|`,
725
+ exit 0) when `gh`/network is unavailable, so an offline dev environment never looks broken. `doctor`
726
+ (below) runs the same check as one OPTIONAL line in its report.
727
+
578
728
  `update.sh` stashes local edits, fast-forwards `main`, reinstalls from the fresh source, restarts the
579
729
  launchd/systemd services so they run the new code, and prints the live stack + savings.
580
730
 
@@ -675,12 +825,18 @@ opt-in capabilities you reach for when the task calls for them.
675
825
 
676
826
  ---
677
827
 
828
+ ## ⭐ Star History
829
+
830
+ [![Star History Chart](https://api.star-history.com/svg?repos=wesleysimplicio/simplicio-loop&type=Date)](https://star-history.com/#wesleysimplicio/simplicio-loop&Date)
831
+
832
+ ---
833
+
678
834
  ## 📄 License
679
835
 
680
836
  MIT
681
837
 
682
838
  <!-- simplicio-loop:github-comment-coordination:v1 -->
683
- ## 🌐 GitHub comment coordination across runtimes
839
+ ## 🌐 Work-item comment coordination across runtimes
684
840
 
685
841
  `simplicio-loop` can run at the same time in Claude Code, Codex, Cursor, Gemini, and Hermes. When a run is bound to a GitHub issue, it publishes idempotent lifecycle updates to that issue's canonical comment: claim, plan, progress, evidence, PR, and close. Agents on different machines can coordinate through the same GitHub thread without a shared local filesystem.
686
842
 
@@ -692,7 +848,7 @@ pwsh scripts/install.ps1 gemini -Global
692
848
  pwsh scripts/install.ps1 hermes -Global # legacy alias for simplicio_agent
693
849
  ```
694
850
 
695
- Local queues, leases, worktrees, heartbeats, and evidence remain active on every machine; GitHub comments are the shared coordination projection. This flow is GitHub-only: Jira, Azure DevOps, and other trackers do not receive these comments. If GitHub is unavailable or unauthenticated, the loop remains usable locally and records the sync failure without inventing a remote acknowledgment. Give every runtime GitHub access and bind runs to the same `source_issue`.
851
+ Local queues, leases, worktrees, heartbeats, and evidence remain active on every machine; GitHub comments are the shipped shared coordination projection. Today, an unavailable or unauthenticated GitHub records a sync failure without inventing a remote acknowledgment. The stage-agent roadmap tightens this for GitHub-bound runs: [#433](https://github.com/wesleysimplicio/simplicio-loop/issues/433) makes the comment confirmation mandatory before `COMPLETE`. [#436](https://github.com/wesleysimplicio/simplicio-loop/issues/436) adds the same projection to Azure DevOps, Jira, Asana, and Trello only when each connector is proven connected; disconnected optional trackers are explicitly skipped.
696
852
 
697
853
  The repository workflow `.github/workflows/simplicio-status-sync.yml` turns the canonical lifecycle
698
854
  state into a managed `simplicio:status:<state>` label and, when configured, moves the issue in a
@@ -0,0 +1,37 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "simplicio.action-intent/v1",
4
+ "title": "Stage Agent Action Intent",
5
+ "description": "Typed intent emitted before any mutation-boundary action. Classifies the action surface so the safety gate can apply the right policy. Fail-closed: unknown action classes are rejected by the reducer.",
6
+ "type": "object",
7
+ "additionalProperties": false,
8
+ "required": ["schema", "intent_id", "action_class", "command", "actor", "scope"],
9
+ "properties": {
10
+ "schema": { "const": "simplicio.action-intent/v1" },
11
+ "intent_id": { "type": "string", "minLength": 1 },
12
+ "action_class": {
13
+ "type": "string",
14
+ "enum": [
15
+ "write_edit",
16
+ "compound_shell",
17
+ "dependency_install",
18
+ "commit",
19
+ "push",
20
+ "pull_request",
21
+ "issue_board_op",
22
+ "migration_data",
23
+ "deploy_release",
24
+ "cancel_cleanup",
25
+ "secret_network_access",
26
+ "artifact_fetch_execute"
27
+ ]
28
+ },
29
+ "command": { "type": "string", "minLength": 1 },
30
+ "actor": { "type": "string", "minLength": 1 },
31
+ "scope": { "type": "string", "minLength": 1 },
32
+ "idempotency_key": { "type": "string" },
33
+ "policy_hash": { "type": "string" },
34
+ "segments": { "type": "array", "items": { "type": "string" } },
35
+ "created_at": { "type": "string", "format": "date-time" }
36
+ }
37
+ }