simplicio-loop 3.37.0__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.37.0 → simplicio_loop-3.38.0}/LICENSE +21 -21
  2. {simplicio_loop-3.37.0/simplicio_loop.egg-info → simplicio_loop-3.38.0}/PKG-INFO +1 -1
  3. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/PYPI.md +53 -53
  4. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/README.md +113 -27
  5. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/pyproject.toml +1 -1
  6. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/__init__.py +2 -2
  7. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/hooks/hooks.claude.json +20 -20
  8. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/hooks/hooks.json +11 -11
  9. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/hooks/loop_capture.py +31 -31
  10. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/hooks/orient_clamp.py +167 -167
  11. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/hooks/orient_rewrite.py +119 -119
  12. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/hooks/pre-commit.py +141 -141
  13. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/hooks/simplicio_dashboard.py +970 -970
  14. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/hooks/simplicio_watch.py +115 -115
  15. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/scripts/cross_agent_wiki.py +615 -615
  16. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/scripts/hierarchical_planner.py +394 -394
  17. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-autoresearch/SKILL.md +165 -165
  18. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-compress/SKILL.md +86 -86
  19. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-learn/SKILL.md +80 -80
  20. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-loop/SKILL.md +21 -2
  21. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/agentsview-adapter.md +198 -198
  22. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/azure-devops-adapter.md +69 -69
  23. simplicio_loop-3.38.0/simplicio_loop/_bundle/skills/simplicio-loop/references/background-verification.md +44 -0
  24. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/bound-operators.md +108 -108
  25. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/claims-gate.md +62 -62
  26. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/control-policy.md +79 -79
  27. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/cross-agent-wiki.md +40 -40
  28. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/cross-repo-integration.md +42 -42
  29. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/extension-points.md +101 -101
  30. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/hierarchical-planner.md +39 -39
  31. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/lmcache-adapter.md +632 -632
  32. simplicio_loop-3.38.0/simplicio_loop/_bundle/skills/simplicio-loop/references/multi-agent-coordination.md +54 -0
  33. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/progress-feedback.md +153 -153
  34. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/run-journal-stall-detector.md +47 -47
  35. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/spindle-handoff.md +94 -94
  36. {simplicio_loop-3.37.0/simplicio_loop/_bundle/skills/simplicio-tasks → simplicio_loop-3.38.0/simplicio_loop/_bundle/skills/simplicio-loop}/references/standing-loop-247.md +105 -105
  37. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/token-capture.md +124 -124
  38. {simplicio_loop-3.37.0/simplicio_loop/_bundle/skills/simplicio-tasks → simplicio_loop-3.38.0/simplicio_loop/_bundle/skills/simplicio-loop}/references/token-economy.md +231 -231
  39. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/triage-verify-detail.md +70 -70
  40. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/understand-anything-adapter.md +591 -591
  41. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/video-evidence.md +108 -108
  42. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/web-evidence.md +93 -93
  43. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-orient/SKILL.md +189 -189
  44. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-review/SKILL.md +104 -104
  45. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-tasks/SKILL.md +32 -32
  46. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-tasks/references/agentsview-adapter.md +198 -198
  47. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-tasks/references/azure-devops-adapter.md +69 -69
  48. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-tasks/references/extension-points.md +101 -101
  49. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-tasks/references/lmcache-adapter.md +632 -632
  50. {simplicio_loop-3.37.0/simplicio_loop/_bundle/skills/simplicio-loop → simplicio_loop-3.38.0/simplicio_loop/_bundle/skills/simplicio-tasks}/references/standing-loop-247.md +105 -105
  51. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-tasks/references/token-capture.md +124 -124
  52. {simplicio_loop-3.37.0/simplicio_loop/_bundle/skills/simplicio-loop → simplicio_loop-3.38.0/simplicio_loop/_bundle/skills/simplicio-tasks}/references/token-economy.md +231 -231
  53. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-tasks/references/understand-anything-adapter.md +591 -591
  54. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-tasks/references/video-evidence.md +108 -108
  55. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-tasks/references/web-evidence.md +93 -93
  56. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/tests/_selfrun.py +46 -46
  57. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/attempt_journal.py +251 -251
  58. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/budget.py +236 -236
  59. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/cli.py +173 -4
  60. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/control_policy.py +242 -242
  61. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/drain.py +349 -349
  62. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/driver_contract.py +101 -101
  63. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/evidence.py +399 -399
  64. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/execution_board.py +300 -300
  65. simplicio_loop-3.38.0/simplicio_loop/finding_report.py +75 -0
  66. simplicio_loop-3.38.0/simplicio_loop/finding_router.py +206 -0
  67. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/flow_semantics.py +131 -131
  68. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/model_registry.py +326 -326
  69. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/ops_ledger.py +283 -283
  70. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/phase_events.py +139 -139
  71. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/progress.py +25 -1
  72. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/recovery.py +393 -393
  73. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/runtime_adapter.py +235 -235
  74. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/verified_delivery.py +158 -158
  75. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0/simplicio_loop.egg-info}/PKG-INFO +1 -1
  76. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop.egg-info/SOURCES.txt +17 -0
  77. simplicio_loop-3.38.0/tests/test_agent_replication.py +169 -0
  78. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_budget_error_paths_unit.py +116 -116
  79. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_check_loop_contract_regression.py +52 -52
  80. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_claims_manifest_unit.py +63 -63
  81. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_cli_install_unit.py +145 -145
  82. simplicio_loop-3.38.0/tests/test_cli_preflight_status_json_unit.py +143 -0
  83. simplicio_loop-3.38.0/tests/test_coordinator_unit.py +157 -0
  84. simplicio_loop-3.38.0/tests/test_evolution.py +231 -0
  85. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_fan_out_unit.py +141 -141
  86. simplicio_loop-3.38.0/tests/test_finding_collector_unit.py +128 -0
  87. simplicio_loop-3.38.0/tests/test_finding_report.py +55 -0
  88. simplicio_loop-3.38.0/tests/test_finding_router.py +68 -0
  89. simplicio_loop-3.38.0/tests/test_findings_cli.py +102 -0
  90. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_flow_semantics_edge_paths_unit.py +117 -117
  91. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_intake_progress.py +165 -165
  92. simplicio_loop-3.38.0/tests/test_loop_progress_encoding_unit.py +68 -0
  93. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_oracle_gates_unit.py +204 -204
  94. simplicio_loop-3.38.0/tests/test_pr_dod_review_unit.py +113 -0
  95. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_progress_unit.py +59 -0
  96. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_quality_matrix_integration.py +115 -115
  97. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_quality_matrix_regression.py +117 -117
  98. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_quality_matrix_system.py +128 -128
  99. simplicio_loop-3.38.0/tests/test_release_check_unit.py +94 -0
  100. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_schema_verify_integration.py +103 -103
  101. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_schema_verify_unit.py +78 -78
  102. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_stage_agent_contract.py +4 -4
  103. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_task_contract_unit.py +146 -146
  104. simplicio_loop-3.38.0/tests/test_workflow_topology.py +193 -0
  105. simplicio_loop-3.38.0/tests/test_worktree_cleanup.py +194 -0
  106. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/MANIFEST.in +0 -0
  107. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/contracts/stage-agents/v1/action-intent.schema.json +0 -0
  108. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/contracts/stage-agents/v1/agent-instance.schema.json +0 -0
  109. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/contracts/stage-agents/v1/agent-role.schema.json +0 -0
  110. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/contracts/stage-agents/v1/review-finding.schema.json +0 -0
  111. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/contracts/stage-agents/v1/review-receipt.schema.json +0 -0
  112. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/contracts/stage-agents/v1/run-stage-graph.schema.json +0 -0
  113. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/contracts/stage-agents/v1/stage-definition.schema.json +0 -0
  114. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/contracts/stage-agents/v1/stage-input.schema.json +0 -0
  115. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/contracts/stage-agents/v1/stage-output.schema.json +0 -0
  116. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/contracts/stage-agents/v1/stage-receipt.schema.json +0 -0
  117. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/contracts/stage-agents/v1/stages.json +0 -0
  118. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/setup.cfg +0 -0
  119. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/hooks/README.md +0 -0
  120. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/hooks/action_gate.py +0 -0
  121. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/hooks/loop_stop.py +0 -0
  122. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/orchestration.md +0 -0
  123. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/planning-gate.md +0 -0
  124. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/quality-safety-delivery.md +0 -0
  125. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-tasks/references/orchestration.md +0 -0
  126. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-tasks/references/quality-safety-delivery.md +0 -0
  127. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_contracts/stage-agents/v1/action-intent.schema.json +0 -0
  128. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_contracts/stage-agents/v1/agent-instance.schema.json +0 -0
  129. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_contracts/stage-agents/v1/agent-role.schema.json +0 -0
  130. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_contracts/stage-agents/v1/review-finding.schema.json +0 -0
  131. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_contracts/stage-agents/v1/review-receipt.schema.json +0 -0
  132. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_contracts/stage-agents/v1/run-stage-graph.schema.json +0 -0
  133. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_contracts/stage-agents/v1/stage-definition.schema.json +0 -0
  134. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_contracts/stage-agents/v1/stage-input.schema.json +0 -0
  135. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_contracts/stage-agents/v1/stage-output.schema.json +0 -0
  136. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_contracts/stage-agents/v1/stage-receipt.schema.json +0 -0
  137. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_contracts/stage-agents/v1/stages.json +0 -0
  138. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/agent_contract.py +0 -0
  139. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/agent_identity.py +0 -0
  140. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/completion_auditor.py +0 -0
  141. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/delivery.py +0 -0
  142. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/delivery_agent.py +0 -0
  143. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/external_verifiers.py +0 -0
  144. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/feedback_recovery_agent.py +0 -0
  145. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/freshness.py +0 -0
  146. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/github_lifecycle.py +0 -0
  147. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/implementation_agent.py +0 -0
  148. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/intake_contract.py +0 -0
  149. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/intake_planner.py +0 -0
  150. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/merge_executor.py +0 -0
  151. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/model_router.py +0 -0
  152. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/multi_tracker_reporting.py +0 -0
  153. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/oracle.py +0 -0
  154. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/orca_lifecycle.py +0 -0
  155. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/plan_contract.py +0 -0
  156. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/planning_gate.py +0 -0
  157. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/pr_patrol.py +0 -0
  158. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/quality_matrix.py +0 -0
  159. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/receipt_verifier.py +0 -0
  160. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/remote_queue.py +0 -0
  161. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/remote_queue_server_cli.py +0 -0
  162. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/remote_worker_cli.py +0 -0
  163. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/remote_worker_measurement.py +0 -0
  164. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/remote_worker_supervisor_cli.py +0 -0
  165. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/review_panel.py +0 -0
  166. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/runner.py +0 -0
  167. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/runtime_drivers.py +0 -0
  168. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/runtime_execution_receipt.py +0 -0
  169. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/secure_transport.py +0 -0
  170. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/source_adapter.py +0 -0
  171. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/source_snapshot.py +0 -0
  172. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/source_state.py +0 -0
  173. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/stage_agent_coordinator.py +0 -0
  174. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/stage_agents.py +0 -0
  175. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/stage_report.py +0 -0
  176. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/task_contract.py +0 -0
  177. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/traceability_matrix.py +0 -0
  178. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/work_item_claims.py +0 -0
  179. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/worker_daemon.py +0 -0
  180. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop.egg-info/dependency_links.txt +0 -0
  181. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop.egg-info/entry_points.txt +0 -0
  182. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop.egg-info/requires.txt +0 -0
  183. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop.egg-info/top_level.txt +0 -0
  184. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_284_lifecycle_dag_idempotence_integration.py +0 -0
  185. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_action_gate_system.py +0 -0
  186. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_agent_contract_unit.py +0 -0
  187. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_agent_identity.py +0 -0
  188. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_agent_identity_integration.py +0 -0
  189. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_agentsview_adapter_integration.py +0 -0
  190. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_attempt_journal_unit.py +0 -0
  191. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_autoresearch_system.py +0 -0
  192. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_az_boards_adapter_integration.py +0 -0
  193. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_batch_crash_recovery_system.py +0 -0
  194. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_bound_operators_runtime_required_unit.py +0 -0
  195. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_budget_unit.py +0 -0
  196. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_check_e2e_demo_contract_system.py +0 -0
  197. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_check_e2e_installed_system.py +0 -0
  198. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_claims_audit_unit.py +0 -0
  199. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_clean_env_contract_integration.py +0 -0
  200. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_cli_dispatch_unit.py +0 -0
  201. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_cli_oracle_unit.py +0 -0
  202. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_completion_auditor_431_unit.py +0 -0
  203. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_completion_oracle_matrix_unit.py +0 -0
  204. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_completion_oracle_system.py +0 -0
  205. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_conformance_suite.py +0 -0
  206. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_contract_parity.py +0 -0
  207. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_control_policy_unit.py +0 -0
  208. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_copilot_global_unit.py +0 -0
  209. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_cross_agent_wiki_integration.py +0 -0
  210. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_dashboard_hook_integration.py +0 -0
  211. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_delivery_agent_429.py +0 -0
  212. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_delivery_concurrency_fault_injection_system.py +0 -0
  213. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_delivery_lifecycle_sandbox_e2e_system.py +0 -0
  214. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_delivery_progress_integration.py +0 -0
  215. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_delivery_reconciliation_unit.py +0 -0
  216. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_delivery_source_identity_unit.py +0 -0
  217. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_delivery_validation_unit.py +0 -0
  218. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_dispatch_batch_multi_pr_integration.py +0 -0
  219. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_dispatch_merge_wiring_integration.py +0 -0
  220. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_distributed_183_dod_system.py +0 -0
  221. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_distributed_183_e2e_system.py +0 -0
  222. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_distributed_183_external_probe_integration.py +0 -0
  223. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_distributed_epic_evidence_system.py +0 -0
  224. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_distributed_trust_policy_unit.py +0 -0
  225. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_doctor_smoke_system.py +0 -0
  226. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_drain_cli_integration.py +0 -0
  227. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_drain_integration.py +0 -0
  228. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_driver_contract_unit.py +0 -0
  229. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_e2e_demo_audit_system.py +0 -0
  230. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_evidence_chain_integration.py +0 -0
  231. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_evidence_receipt_unit.py +0 -0
  232. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_execution_board_e2e_integration.py +0 -0
  233. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_external_verifiers_integration.py +0 -0
  234. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_fan_out_flow_system.py +0 -0
  235. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_fan_out_scheduler_integration.py +0 -0
  236. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_feedback_recovery_agent_430_unit.py +0 -0
  237. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_flow_audit_integration.py +0 -0
  238. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_flow_semantics_unit.py +0 -0
  239. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_freshness_unit.py +0 -0
  240. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_gen_install_mutations_doc_unit.py +0 -0
  241. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_github_lifecycle_concurrency_e2e_system.py +0 -0
  242. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_github_lifecycle_live_e2e.py +0 -0
  243. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_github_lifecycle_readside_integration.py +0 -0
  244. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_github_lifecycle_runner_wiring_integration.py +0 -0
  245. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_github_lifecycle_unit.py +0 -0
  246. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_github_status_sync_unit.py +0 -0
  247. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_golden_mutation_regression.py +0 -0
  248. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_hbp_topics_integration.py +0 -0
  249. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_hierarchical_planner_unit.py +0 -0
  250. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_hooks_coverage_integration.py +0 -0
  251. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_impact_audit_integration.py +0 -0
  252. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_implementation_agent_426_unit.py +0 -0
  253. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_independent_watcher_integration.py +0 -0
  254. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_install_ci_pinning_unit.py +0 -0
  255. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_install_consent_regression.py +0 -0
  256. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_install_lib_integration.py +0 -0
  257. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_install_plan_unit.py +0 -0
  258. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_install_post_smoke_integration.py +0 -0
  259. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_install_rollback_integration.py +0 -0
  260. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_install_smoke_unit.py +0 -0
  261. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_install_transaction_unit.py +0 -0
  262. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_install_upgrade_integration.py +0 -0
  263. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_intake_impact_matrix_replan_284_unit.py +0 -0
  264. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_intake_planner_425_unit.py +0 -0
  265. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_intake_progress_integration.py +0 -0
  266. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_learn_pipeline_removed_regression.py +0 -0
  267. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_ledger_cli_unit.py +0 -0
  268. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_live_issue_183_identity_system.py +0 -0
  269. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_locked_append_integration.py +0 -0
  270. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_loop_driver_run_state_e2e_system.py +0 -0
  271. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_loop_e2e_system.py +0 -0
  272. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_loop_progress_integration.py +0 -0
  273. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_maintenance_deferred_docs_integration.py +0 -0
  274. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_merge_executor_live_e2e_system.py +0 -0
  275. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_merge_executor_unit.py +0 -0
  276. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_merge_queue_live_probe_integration.py +0 -0
  277. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_mirror_parity_integration.py +0 -0
  278. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_model_registry_unit.py +0 -0
  279. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_model_routed_dispatch_wiring_integration.py +0 -0
  280. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_model_router_fallback_unit.py +0 -0
  281. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_model_router_unit.py +0 -0
  282. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_multi_tracker_reporting.py +0 -0
  283. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_operator_batch_integration.py +0 -0
  284. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_operator_worktree_batch_unit.py +0 -0
  285. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_ops_ledger_integration.py +0 -0
  286. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_oracle_perf_benchmark_unit.py +0 -0
  287. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_oracle_source_lifecycle_gate_integration.py +0 -0
  288. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_orca_lifecycle_unit.py +0 -0
  289. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_orca_preset_integration.py +0 -0
  290. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_phase_events_unit.py +0 -0
  291. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_plan_contract_unit.py +0 -0
  292. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_planes_golden_eval_regression.py +0 -0
  293. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_planes_installed_e2e_system.py +0 -0
  294. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_planning_gate_284_enhancements_unit.py +0 -0
  295. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_planning_gate_execute_operator_integration.py +0 -0
  296. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_planning_gate_github_publish_unit.py +0 -0
  297. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_planning_gate_live_e2e_system.py +0 -0
  298. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_planning_gate_unit.py +0 -0
  299. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_pr_evidence_comment_publish_integration.py +0 -0
  300. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_pr_evidence_lifecycle_delegation_integration.py +0 -0
  301. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_pr_patrol_unit.py +0 -0
  302. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_precommit_bundle_sync_integration.py +0 -0
  303. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_preflight_unit.py +0 -0
  304. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_progress_comment_live_e2e_system.py +0 -0
  305. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_progress_comment_ratelimit_cli_e2e_integration.py +0 -0
  306. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_progress_e2e_system.py +0 -0
  307. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_progress_failopen_integration.py +0 -0
  308. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_progress_snapshots_unit.py +0 -0
  309. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_provenance_generate_integration.py +0 -0
  310. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_quality_gate_scripts_emit_json_unit.py +0 -0
  311. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_quality_matrix_benchmark_integration.py +0 -0
  312. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_quality_matrix_reverify_integration.py +0 -0
  313. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_quality_matrix_unit.py +0 -0
  314. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_quality_matrix_watcher.py +0 -0
  315. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_receipt_verifier_integration.py +0 -0
  316. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_recovery_unit.py +0 -0
  317. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_release_manifest_unit.py +0 -0
  318. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_release_rehearsal_integration.py +0 -0
  319. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_release_verify_unit.py +0 -0
  320. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_remote_queue_cancellation_integration.py +0 -0
  321. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_remote_queue_integration.py +0 -0
  322. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_remote_queue_live_system.py +0 -0
  323. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_remote_queue_pull_claim_system.py +0 -0
  324. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_remote_queue_short_lived_auth_integration.py +0 -0
  325. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_remote_worker_e2e_system.py +0 -0
  326. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_remote_worker_http_e2e_system.py +0 -0
  327. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_remote_worker_measurement_unit.py +0 -0
  328. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_remote_worker_supervisor_system.py +0 -0
  329. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_repo_conventions_architecture_unit.py +0 -0
  330. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_repo_governance_294_integration.py +0 -0
  331. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_repository_budget_unit.py +0 -0
  332. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_repository_governance_unit.py +0 -0
  333. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_review_panel.py +0 -0
  334. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_runner_cli_integration.py +0 -0
  335. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_runner_progress_events_unit.py +0 -0
  336. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_runner_state_machine_unit.py +0 -0
  337. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_runtime_adapter_unit.py +0 -0
  338. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_runtime_drivers_integration.py +0 -0
  339. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_runtime_execution_receipt_unit.py +0 -0
  340. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_runtime_matrix_integration.py +0 -0
  341. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_safety_gate_agent.py +0 -0
  342. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_sbom_generate_integration.py +0 -0
  343. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_secure_transport_fault_injection_system.py +0 -0
  344. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_secure_transport_integration.py +0 -0
  345. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_security_audit_log_unit.py +0 -0
  346. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_short_lived_credentials_unit.py +0 -0
  347. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_simplicio_mcp_runner_unit.py +0 -0
  348. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_source_adapter_protocol_unit.py +0 -0
  349. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_source_snapshot_unit.py +0 -0
  350. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_source_state_unit.py +0 -0
  351. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_stage_agent_conformance.py +0 -0
  352. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_stage_agent_coordinator.py +0 -0
  353. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_stage_agent_fail_closed.py +0 -0
  354. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_stage_agent_reducer.py +0 -0
  355. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_stage_report_cli_integration.py +0 -0
  356. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_stage_report_unit.py +0 -0
  357. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_system_276_e2e_system.py +0 -0
  358. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_system_check_system.py +0 -0
  359. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_system_clean_install_system.py +0 -0
  360. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_task_backlog_unit.py +0 -0
  361. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_task_contract_cli_integration.py +0 -0
  362. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_task_contract_routing_unit.py +0 -0
  363. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_task_to_delivery_golden_corpus_regression.py +0 -0
  364. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_test_categories_unit.py +0 -0
  365. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_token_budget_unit.py +0 -0
  366. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_toon_codec_unit.py +0 -0
  367. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_transcript_progress_e2e_system.py +0 -0
  368. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_transcript_progress_unit.py +0 -0
  369. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_turn_progress_integration.py +0 -0
  370. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_verified_delivery_dispatch_wiring_integration.py +0 -0
  371. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_verified_delivery_unit.py +0 -0
  372. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_verify_adapters_integration.py +0 -0
  373. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_version_sync_unit.py +0 -0
  374. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_vscode_global_install.py +0 -0
  375. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_watcher_binding_unit.py +0 -0
  376. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_watcher_challenge_generation_integration.py +0 -0
  377. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_watcher_quality_gate_reverify_unit.py +0 -0
  378. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_work_item_claims_chaos_system.py +0 -0
  379. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_work_item_claims_run_guarded_integration.py +0 -0
  380. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_work_item_claims_unit.py +0 -0
  381. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_worker_cli_contract_integration.py +0 -0
  382. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_worker_daemon_unit.py +0 -0
  383. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_worker_selftests_system.py +0 -0
  384. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_worker_smoke_system.py +0 -0
  385. {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_workitem_attempts_integration.py +0 -0
  386. {simplicio_loop-3.37.0 → 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,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: simplicio-loop
3
- Version: 3.37.0
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>
@@ -87,11 +87,11 @@ That architecture lets one goal become a governed delivery system: from a single
87
87
  <!-- visual-story:end -->
88
88
 
89
89
  <!-- stage-agents-roadmap:start -->
90
- ## 🤖 Roadmap — a concrete agent behind every stage
90
+ ## 🤖 Shipped: a concrete agent behind every stage
91
91
 
92
- > **Implementation status:** this is the tracked target architecture in [#422](https://github.com/wesleysimplicio/simplicio-loop/issues/422)–[#436](https://github.com/wesleysimplicio/simplicio-loop/issues/436), not a claim that every stage agent and tracker adapter already ships. The canonical GitHub lifecycle comment exists today; the full mandatory stage-reporting gate is tracked in [#433](https://github.com/wesleysimplicio/simplicio-loop/issues/433).
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).
93
93
 
94
- The portable driver will assign one accountable agent to intake/planning, implementation, safety,
94
+ The portable driver assigns one accountable agent to intake/planning, implementation, safety,
95
95
  delivery, feedback/recovery, and final completion audit. Review fans out to four independent agents
96
96
  — security/correctness, code quality, runtime reproduction, and blast radius — before it can
97
97
  reconverge. Every transition emits an event and receipt; the completion auditor accepts evidence,
@@ -148,24 +148,79 @@ rules, sandbox E2E matrix, and acceptance criteria are specified in
148
148
  treated as connected merely because a CLI exists, and no remote acknowledgment is ever invented.
149
149
  <!-- stage-agents-roadmap:end -->
150
150
 
151
- ## 🆕 What's new in v3.35.0
152
-
153
- - **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.
154
- - **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).
155
- - **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.
156
- - **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.
157
- - **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).
158
- - **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.
159
- - **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`.
160
- - **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.
161
- - **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).
162
-
163
- 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).
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).
164
218
 
165
219
  ## ⚡ TL;DR
166
220
 
167
221
  **simplicio-loop** is a runtime-agnostic **super-plugin** — one autonomous looping
168
- 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
169
224
  strong LLM (Claude, Codex, Copilot, Gemini, Cursor, local models) into a self-driving worker. You
170
225
  point it at a body of work — *"finish all the open issues"*, *"clear the CI queue"*, *"drain the Jira board"* — and it
171
226
  runs the whole lifecycle on its own:
@@ -231,8 +286,8 @@ If you are an agent/runtime entering this repo cold, read `llms.txt` first for t
231
286
  ## 📘 Official capability record
232
287
 
233
288
  The complete, official roster of what `simplicio-loop` ships — every capability below is **real,
234
- runnable, and tested** (`python3 scripts/check.py`: claims-audit 9/9 + 245 passed). Each links to its
235
- 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.
236
291
 
237
292
  | Capability | What it does | Proof / worker | Details |
238
293
  |---|---|---|---|
@@ -244,6 +299,10 @@ deep section and its worker.
244
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) |
245
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) |
246
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) |
247
306
 
248
307
  Two loop **modes** make termination explicit: **converge** (a single hard task — ends on the
249
308
  evidence-gated `<promise>` or a stall escalation) vs **drain** (a queue — ends when the source
@@ -353,27 +412,39 @@ to delivering merged, evidenced work, then looping 24/7 for more.
353
412
  flowchart LR
354
413
  IN["Intent: issue · task · queue"] --> CONTRACT["1 · Freeze task contract"]
355
414
  CONTRACT --> MAP["2 · Map source + normalize"]
356
- MAP --> PLAN["3 · Dependency DAG + acceptance criteria"]
357
- 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?"}
358
422
  ROUTE -->|"solo / small"| SOLO["Targeted lane"]
359
423
  ROUTE -->|"parallel / medium+"| FAN["Bounded fan-out"]
360
424
  FAN --> A["Isolated worktree A"]
361
425
  FAN --> B["Isolated worktree B"]
362
426
  FAN --> C["Isolated worktree C"]
363
- SOLO --> VERIFY["5 · Test + impact/flow evidence"]
427
+ SOLO --> VERIFY["6 · Test + impact/flow evidence"]
364
428
  A --> VERIFY
365
429
  B --> VERIFY
366
430
  C --> VERIFY
367
431
  VERIFY --> RECEIPT["Watcher challenge + evidence receipt"]
368
- RECEIPT --> ORACLE{"6 · Completion oracle"}
432
+ RECEIPT --> ORACLE{"7 · Completion oracle"}
369
433
  ORACLE -->|"pending / blocked"| RECOVER["Journal · checkpoint · rollback · backlog-only maintenance"]
370
434
  RECOVER --> PLAN
371
- ORACLE -->|"verified / measured"| DELIVER["7 · Source sync · PR · merge"]
372
- DELIVER --> MEMORY["8 · Ledger · wiki · durable attempt memory"]
373
- 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"]
374
439
  WATCH -->|"new work"| IN
375
440
  ```
376
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
+
377
448
  **Planning gate (issue #284).** Steps 1–3 above are not just guidance — `simplicio_loop/planning_gate.py`
378
449
  makes them a fail-closed mechanical barrier between "claimed" and "mutating": every real
379
450
  `arm_run()` self-builds a `planning-receipt.json` binding run/attempt/contract/plan/lease/fence
@@ -642,9 +713,18 @@ Pass **`--minimal`** only for headless/CI to skip the heavy deps + the machine s
642
713
  ### Update
643
714
 
644
715
  ```bash
645
- 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
646
718
  ```
647
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
+
648
728
  `update.sh` stashes local edits, fast-forwards `main`, reinstalls from the fresh source, restarts the
649
729
  launchd/systemd services so they run the new code, and prints the live stack + savings.
650
730
 
@@ -745,6 +825,12 @@ opt-in capabilities you reach for when the task calls for them.
745
825
 
746
826
  ---
747
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
+
748
834
  ## 📄 License
749
835
 
750
836
  MIT
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "simplicio-loop"
7
- version = "3.37.0"
7
+ version = "3.38.0"
8
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"
@@ -13,6 +13,6 @@ try:
13
13
  try:
14
14
  __version__ = _v("simplicio-loop")
15
15
  except PackageNotFoundError:
16
- __version__ = "3.37.0"
16
+ __version__ = "3.38.0"
17
17
  except Exception: # pragma: no cover
18
- __version__ = "3.37.0"
18
+ __version__ = "3.38.0"
@@ -1,20 +1,20 @@
1
- {
2
- "hooks": {
3
- "Stop": [
4
- {
5
- "hooks": [
6
- { "type": "command", "command": "python3 \"${CLAUDE_PLUGIN_ROOT}/hooks/loop_stop.py\"" }
7
- ]
8
- }
9
- ],
10
- "PreToolUse": [
11
- {
12
- "matcher": "Bash",
13
- "hooks": [
14
- { "type": "command", "command": "python3 \"${CLAUDE_PLUGIN_ROOT}/hooks/action_gate.py\"" },
15
- { "type": "command", "command": "python3 \"${CLAUDE_PLUGIN_ROOT}/hooks/orient_rewrite.py\"" }
16
- ]
17
- }
18
- ]
19
- }
20
- }
1
+ {
2
+ "hooks": {
3
+ "Stop": [
4
+ {
5
+ "hooks": [
6
+ { "type": "command", "command": "python3 \"${CLAUDE_PLUGIN_ROOT}/hooks/loop_stop.py\"" }
7
+ ]
8
+ }
9
+ ],
10
+ "PreToolUse": [
11
+ {
12
+ "matcher": "Bash",
13
+ "hooks": [
14
+ { "type": "command", "command": "python3 \"${CLAUDE_PLUGIN_ROOT}/hooks/action_gate.py\"" },
15
+ { "type": "command", "command": "python3 \"${CLAUDE_PLUGIN_ROOT}/hooks/orient_rewrite.py\"" }
16
+ ]
17
+ }
18
+ ]
19
+ }
20
+ }
@@ -1,11 +1,11 @@
1
- {
2
- "version": 1,
3
- "hooks": {
4
- "afterAgentResponse": [
5
- { "command": "python3 ./hooks/loop_capture.py" }
6
- ],
7
- "stop": [
8
- { "command": "python3 ./hooks/loop_stop.py", "loop_limit": null }
9
- ]
10
- }
11
- }
1
+ {
2
+ "version": 1,
3
+ "hooks": {
4
+ "afterAgentResponse": [
5
+ { "command": "python3 ./hooks/loop_capture.py" }
6
+ ],
7
+ "stop": [
8
+ { "command": "python3 ./hooks/loop_stop.py", "loop_limit": null }
9
+ ]
10
+ }
11
+ }
@@ -1,31 +1,31 @@
1
- #!/usr/bin/env python3
2
- """simplicio-loop — capture hook (Cursor `afterAgentResponse`).
3
-
4
- Transport only: stash the latest assistant response so the shared completion oracle
5
- can evaluate it later in the stop hook. This hook never decides completion and never
6
- raises `done` on its own.
7
- """
8
- import json
9
- import os
10
- import sys
11
-
12
- LOOP_DIR = os.path.join(".orchestrator", "loop")
13
- LAST_RESP = os.path.join(LOOP_DIR, "last_response.txt")
14
-
15
-
16
- def main():
17
- try:
18
- raw = sys.stdin.read()
19
- data = json.loads(raw) if raw.strip() else {}
20
- resp = data.get("text", "") or ""
21
- if resp:
22
- os.makedirs(LOOP_DIR, exist_ok=True)
23
- with open(LAST_RESP, "w", encoding="utf-8") as f:
24
- f.write(resp)
25
- except Exception:
26
- pass
27
- sys.exit(0)
28
-
29
-
30
- if __name__ == "__main__":
31
- main()
1
+ #!/usr/bin/env python3
2
+ """simplicio-loop — capture hook (Cursor `afterAgentResponse`).
3
+
4
+ Transport only: stash the latest assistant response so the shared completion oracle
5
+ can evaluate it later in the stop hook. This hook never decides completion and never
6
+ raises `done` on its own.
7
+ """
8
+ import json
9
+ import os
10
+ import sys
11
+
12
+ LOOP_DIR = os.path.join(".orchestrator", "loop")
13
+ LAST_RESP = os.path.join(LOOP_DIR, "last_response.txt")
14
+
15
+
16
+ def main():
17
+ try:
18
+ raw = sys.stdin.read()
19
+ data = json.loads(raw) if raw.strip() else {}
20
+ resp = data.get("text", "") or ""
21
+ if resp:
22
+ os.makedirs(LOOP_DIR, exist_ok=True)
23
+ with open(LAST_RESP, "w", encoding="utf-8") as f:
24
+ f.write(resp)
25
+ except Exception:
26
+ pass
27
+ sys.exit(0)
28
+
29
+
30
+ if __name__ == "__main__":
31
+ main()