simplicio-loop 3.36.0__tar.gz → 3.37.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 (369) hide show
  1. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/MANIFEST.in +1 -0
  2. {simplicio_loop-3.36.0/simplicio_loop.egg-info → simplicio_loop-3.37.0}/PKG-INFO +1 -1
  3. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/README.md +96 -26
  4. simplicio_loop-3.37.0/contracts/stage-agents/v1/action-intent.schema.json +37 -0
  5. simplicio_loop-3.37.0/contracts/stage-agents/v1/agent-instance.schema.json +89 -0
  6. simplicio_loop-3.37.0/contracts/stage-agents/v1/agent-role.schema.json +41 -0
  7. simplicio_loop-3.37.0/contracts/stage-agents/v1/review-finding.schema.json +41 -0
  8. simplicio_loop-3.37.0/contracts/stage-agents/v1/review-receipt.schema.json +60 -0
  9. simplicio_loop-3.37.0/contracts/stage-agents/v1/run-stage-graph.schema.json +36 -0
  10. simplicio_loop-3.37.0/contracts/stage-agents/v1/stage-definition.schema.json +162 -0
  11. simplicio_loop-3.37.0/contracts/stage-agents/v1/stage-input.schema.json +9 -0
  12. simplicio_loop-3.37.0/contracts/stage-agents/v1/stage-output.schema.json +9 -0
  13. simplicio_loop-3.37.0/contracts/stage-agents/v1/stage-receipt.schema.json +102 -0
  14. simplicio_loop-3.37.0/contracts/stage-agents/v1/stages.json +700 -0
  15. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/pyproject.toml +69 -69
  16. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/__init__.py +18 -18
  17. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/_bundle/hooks/loop_stop.py +5 -1
  18. simplicio_loop-3.37.0/simplicio_loop/_contracts/stage-agents/v1/action-intent.schema.json +37 -0
  19. simplicio_loop-3.37.0/simplicio_loop/_contracts/stage-agents/v1/agent-instance.schema.json +89 -0
  20. simplicio_loop-3.37.0/simplicio_loop/_contracts/stage-agents/v1/agent-role.schema.json +41 -0
  21. simplicio_loop-3.37.0/simplicio_loop/_contracts/stage-agents/v1/review-finding.schema.json +41 -0
  22. simplicio_loop-3.37.0/simplicio_loop/_contracts/stage-agents/v1/review-receipt.schema.json +60 -0
  23. simplicio_loop-3.37.0/simplicio_loop/_contracts/stage-agents/v1/run-stage-graph.schema.json +36 -0
  24. simplicio_loop-3.37.0/simplicio_loop/_contracts/stage-agents/v1/stage-definition.schema.json +162 -0
  25. simplicio_loop-3.37.0/simplicio_loop/_contracts/stage-agents/v1/stage-input.schema.json +9 -0
  26. simplicio_loop-3.37.0/simplicio_loop/_contracts/stage-agents/v1/stage-output.schema.json +9 -0
  27. simplicio_loop-3.37.0/simplicio_loop/_contracts/stage-agents/v1/stage-receipt.schema.json +102 -0
  28. simplicio_loop-3.37.0/simplicio_loop/_contracts/stage-agents/v1/stages.json +700 -0
  29. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/agent_contract.py +99 -4
  30. simplicio_loop-3.37.0/simplicio_loop/agent_identity.py +256 -0
  31. simplicio_loop-3.37.0/simplicio_loop/completion_auditor.py +820 -0
  32. simplicio_loop-3.37.0/simplicio_loop/delivery_agent.py +916 -0
  33. simplicio_loop-3.37.0/simplicio_loop/feedback_recovery_agent.py +709 -0
  34. simplicio_loop-3.37.0/simplicio_loop/implementation_agent.py +743 -0
  35. simplicio_loop-3.37.0/simplicio_loop/intake_planner.py +467 -0
  36. simplicio_loop-3.37.0/simplicio_loop/multi_tracker_reporting.py +543 -0
  37. simplicio_loop-3.37.0/simplicio_loop/orca_lifecycle.py +87 -0
  38. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/quality_matrix.py +180 -0
  39. simplicio_loop-3.37.0/simplicio_loop/review_panel.py +586 -0
  40. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/runner.py +31 -0
  41. simplicio_loop-3.37.0/simplicio_loop/stage_agent_coordinator.py +918 -0
  42. simplicio_loop-3.37.0/simplicio_loop/stage_agents.py +975 -0
  43. simplicio_loop-3.37.0/simplicio_loop/stage_report.py +325 -0
  44. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0/simplicio_loop.egg-info}/PKG-INFO +1 -1
  45. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop.egg-info/SOURCES.txt +54 -0
  46. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_agent_contract_unit.py +28 -0
  47. simplicio_loop-3.37.0/tests/test_agent_identity.py +246 -0
  48. simplicio_loop-3.37.0/tests/test_bound_operators_runtime_required_unit.py +46 -0
  49. simplicio_loop-3.37.0/tests/test_completion_auditor_431_unit.py +603 -0
  50. simplicio_loop-3.37.0/tests/test_conformance_suite.py +55 -0
  51. simplicio_loop-3.37.0/tests/test_contract_parity.py +60 -0
  52. simplicio_loop-3.37.0/tests/test_delivery_agent_429.py +851 -0
  53. simplicio_loop-3.37.0/tests/test_feedback_recovery_agent_430_unit.py +414 -0
  54. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_github_status_sync_unit.py +33 -2
  55. simplicio_loop-3.37.0/tests/test_implementation_agent_426_unit.py +615 -0
  56. simplicio_loop-3.37.0/tests/test_intake_planner_425_unit.py +408 -0
  57. simplicio_loop-3.37.0/tests/test_multi_tracker_reporting.py +202 -0
  58. simplicio_loop-3.37.0/tests/test_orca_lifecycle_unit.py +44 -0
  59. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_quality_matrix_unit.py +39 -0
  60. simplicio_loop-3.37.0/tests/test_review_panel.py +449 -0
  61. simplicio_loop-3.37.0/tests/test_safety_gate_agent.py +205 -0
  62. simplicio_loop-3.37.0/tests/test_stage_agent_conformance.py +260 -0
  63. simplicio_loop-3.37.0/tests/test_stage_agent_contract.py +407 -0
  64. simplicio_loop-3.37.0/tests/test_stage_agent_coordinator.py +474 -0
  65. simplicio_loop-3.37.0/tests/test_stage_agent_fail_closed.py +72 -0
  66. simplicio_loop-3.37.0/tests/test_stage_agent_reducer.py +249 -0
  67. simplicio_loop-3.37.0/tests/test_stage_report_cli_integration.py +68 -0
  68. simplicio_loop-3.37.0/tests/test_stage_report_unit.py +244 -0
  69. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/LICENSE +0 -0
  70. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/PYPI.md +0 -0
  71. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/setup.cfg +0 -0
  72. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/_bundle/hooks/README.md +0 -0
  73. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/_bundle/hooks/action_gate.py +0 -0
  74. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/_bundle/hooks/hooks.claude.json +0 -0
  75. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/_bundle/hooks/hooks.json +0 -0
  76. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/_bundle/hooks/loop_capture.py +0 -0
  77. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/_bundle/hooks/orient_clamp.py +0 -0
  78. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/_bundle/hooks/orient_rewrite.py +0 -0
  79. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/_bundle/hooks/pre-commit.py +0 -0
  80. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/_bundle/hooks/simplicio_dashboard.py +0 -0
  81. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/_bundle/hooks/simplicio_watch.py +0 -0
  82. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/_bundle/scripts/cross_agent_wiki.py +0 -0
  83. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/_bundle/scripts/hierarchical_planner.py +0 -0
  84. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/_bundle/skills/simplicio-autoresearch/SKILL.md +0 -0
  85. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/_bundle/skills/simplicio-compress/SKILL.md +0 -0
  86. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/_bundle/skills/simplicio-learn/SKILL.md +0 -0
  87. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/_bundle/skills/simplicio-loop/SKILL.md +0 -0
  88. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/agentsview-adapter.md +0 -0
  89. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/azure-devops-adapter.md +0 -0
  90. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/bound-operators.md +0 -0
  91. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/claims-gate.md +0 -0
  92. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/control-policy.md +0 -0
  93. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/cross-agent-wiki.md +0 -0
  94. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/cross-repo-integration.md +0 -0
  95. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/extension-points.md +0 -0
  96. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/hierarchical-planner.md +0 -0
  97. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/lmcache-adapter.md +0 -0
  98. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/orchestration.md +0 -0
  99. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/planning-gate.md +0 -0
  100. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/progress-feedback.md +0 -0
  101. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/quality-safety-delivery.md +0 -0
  102. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/run-journal-stall-detector.md +0 -0
  103. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/spindle-handoff.md +0 -0
  104. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/standing-loop-247.md +0 -0
  105. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/token-capture.md +0 -0
  106. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/token-economy.md +0 -0
  107. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/triage-verify-detail.md +0 -0
  108. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/understand-anything-adapter.md +0 -0
  109. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/video-evidence.md +0 -0
  110. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/web-evidence.md +0 -0
  111. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/_bundle/skills/simplicio-orient/SKILL.md +0 -0
  112. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/_bundle/skills/simplicio-review/SKILL.md +0 -0
  113. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/_bundle/skills/simplicio-tasks/SKILL.md +0 -0
  114. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/_bundle/skills/simplicio-tasks/references/agentsview-adapter.md +0 -0
  115. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/_bundle/skills/simplicio-tasks/references/azure-devops-adapter.md +0 -0
  116. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/_bundle/skills/simplicio-tasks/references/extension-points.md +0 -0
  117. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/_bundle/skills/simplicio-tasks/references/lmcache-adapter.md +0 -0
  118. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/_bundle/skills/simplicio-tasks/references/orchestration.md +0 -0
  119. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/_bundle/skills/simplicio-tasks/references/quality-safety-delivery.md +0 -0
  120. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/_bundle/skills/simplicio-tasks/references/standing-loop-247.md +0 -0
  121. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/_bundle/skills/simplicio-tasks/references/token-capture.md +0 -0
  122. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/_bundle/skills/simplicio-tasks/references/token-economy.md +0 -0
  123. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/_bundle/skills/simplicio-tasks/references/understand-anything-adapter.md +0 -0
  124. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/_bundle/skills/simplicio-tasks/references/video-evidence.md +0 -0
  125. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/_bundle/skills/simplicio-tasks/references/web-evidence.md +0 -0
  126. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/_bundle/tests/_selfrun.py +0 -0
  127. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/attempt_journal.py +0 -0
  128. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/budget.py +0 -0
  129. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/cli.py +0 -0
  130. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/control_policy.py +0 -0
  131. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/delivery.py +0 -0
  132. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/drain.py +0 -0
  133. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/driver_contract.py +0 -0
  134. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/evidence.py +0 -0
  135. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/execution_board.py +0 -0
  136. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/external_verifiers.py +0 -0
  137. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/flow_semantics.py +0 -0
  138. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/freshness.py +0 -0
  139. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/github_lifecycle.py +0 -0
  140. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/intake_contract.py +0 -0
  141. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/merge_executor.py +0 -0
  142. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/model_registry.py +0 -0
  143. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/model_router.py +0 -0
  144. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/ops_ledger.py +0 -0
  145. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/oracle.py +0 -0
  146. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/phase_events.py +0 -0
  147. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/plan_contract.py +0 -0
  148. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/planning_gate.py +0 -0
  149. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/pr_patrol.py +0 -0
  150. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/progress.py +0 -0
  151. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/receipt_verifier.py +0 -0
  152. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/recovery.py +0 -0
  153. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/remote_queue.py +0 -0
  154. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/remote_queue_server_cli.py +0 -0
  155. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/remote_worker_cli.py +0 -0
  156. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/remote_worker_measurement.py +0 -0
  157. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/remote_worker_supervisor_cli.py +0 -0
  158. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/runtime_adapter.py +0 -0
  159. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/runtime_drivers.py +0 -0
  160. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/runtime_execution_receipt.py +0 -0
  161. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/secure_transport.py +0 -0
  162. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/source_adapter.py +0 -0
  163. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/source_snapshot.py +0 -0
  164. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/source_state.py +0 -0
  165. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/task_contract.py +0 -0
  166. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/traceability_matrix.py +0 -0
  167. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/verified_delivery.py +0 -0
  168. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/work_item_claims.py +0 -0
  169. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop/worker_daemon.py +0 -0
  170. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop.egg-info/dependency_links.txt +0 -0
  171. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop.egg-info/entry_points.txt +0 -0
  172. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop.egg-info/requires.txt +0 -0
  173. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/simplicio_loop.egg-info/top_level.txt +0 -0
  174. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_284_lifecycle_dag_idempotence_integration.py +0 -0
  175. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_action_gate_system.py +0 -0
  176. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_agent_identity_integration.py +0 -0
  177. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_agentsview_adapter_integration.py +0 -0
  178. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_attempt_journal_unit.py +0 -0
  179. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_autoresearch_system.py +0 -0
  180. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_az_boards_adapter_integration.py +0 -0
  181. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_batch_crash_recovery_system.py +0 -0
  182. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_budget_error_paths_unit.py +0 -0
  183. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_budget_unit.py +0 -0
  184. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_check_e2e_demo_contract_system.py +0 -0
  185. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_check_e2e_installed_system.py +0 -0
  186. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_check_loop_contract_regression.py +0 -0
  187. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_claims_audit_unit.py +0 -0
  188. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_claims_manifest_unit.py +0 -0
  189. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_clean_env_contract_integration.py +0 -0
  190. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_cli_dispatch_unit.py +0 -0
  191. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_cli_install_unit.py +0 -0
  192. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_cli_oracle_unit.py +0 -0
  193. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_completion_oracle_matrix_unit.py +0 -0
  194. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_completion_oracle_system.py +0 -0
  195. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_control_policy_unit.py +0 -0
  196. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_copilot_global_unit.py +0 -0
  197. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_cross_agent_wiki_integration.py +0 -0
  198. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_dashboard_hook_integration.py +0 -0
  199. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_delivery_concurrency_fault_injection_system.py +0 -0
  200. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_delivery_lifecycle_sandbox_e2e_system.py +0 -0
  201. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_delivery_progress_integration.py +0 -0
  202. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_delivery_reconciliation_unit.py +0 -0
  203. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_delivery_source_identity_unit.py +0 -0
  204. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_delivery_validation_unit.py +0 -0
  205. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_dispatch_batch_multi_pr_integration.py +0 -0
  206. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_dispatch_merge_wiring_integration.py +0 -0
  207. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_distributed_183_dod_system.py +0 -0
  208. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_distributed_183_e2e_system.py +0 -0
  209. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_distributed_183_external_probe_integration.py +0 -0
  210. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_distributed_epic_evidence_system.py +0 -0
  211. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_distributed_trust_policy_unit.py +0 -0
  212. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_doctor_smoke_system.py +0 -0
  213. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_drain_cli_integration.py +0 -0
  214. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_drain_integration.py +0 -0
  215. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_driver_contract_unit.py +0 -0
  216. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_e2e_demo_audit_system.py +0 -0
  217. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_evidence_chain_integration.py +0 -0
  218. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_evidence_receipt_unit.py +0 -0
  219. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_execution_board_e2e_integration.py +0 -0
  220. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_external_verifiers_integration.py +0 -0
  221. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_fan_out_flow_system.py +0 -0
  222. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_fan_out_scheduler_integration.py +0 -0
  223. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_fan_out_unit.py +0 -0
  224. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_flow_audit_integration.py +0 -0
  225. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_flow_semantics_edge_paths_unit.py +0 -0
  226. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_flow_semantics_unit.py +0 -0
  227. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_freshness_unit.py +0 -0
  228. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_gen_install_mutations_doc_unit.py +0 -0
  229. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_github_lifecycle_concurrency_e2e_system.py +0 -0
  230. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_github_lifecycle_live_e2e.py +0 -0
  231. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_github_lifecycle_readside_integration.py +0 -0
  232. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_github_lifecycle_runner_wiring_integration.py +0 -0
  233. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_github_lifecycle_unit.py +0 -0
  234. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_golden_mutation_regression.py +0 -0
  235. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_hbp_topics_integration.py +0 -0
  236. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_hierarchical_planner_unit.py +0 -0
  237. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_hooks_coverage_integration.py +0 -0
  238. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_impact_audit_integration.py +0 -0
  239. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_independent_watcher_integration.py +0 -0
  240. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_install_ci_pinning_unit.py +0 -0
  241. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_install_consent_regression.py +0 -0
  242. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_install_lib_integration.py +0 -0
  243. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_install_plan_unit.py +0 -0
  244. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_install_post_smoke_integration.py +0 -0
  245. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_install_rollback_integration.py +0 -0
  246. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_install_smoke_unit.py +0 -0
  247. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_install_transaction_unit.py +0 -0
  248. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_install_upgrade_integration.py +0 -0
  249. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_intake_impact_matrix_replan_284_unit.py +0 -0
  250. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_intake_progress.py +0 -0
  251. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_intake_progress_integration.py +0 -0
  252. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_learn_pipeline_removed_regression.py +0 -0
  253. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_ledger_cli_unit.py +0 -0
  254. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_live_issue_183_identity_system.py +0 -0
  255. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_locked_append_integration.py +0 -0
  256. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_loop_driver_run_state_e2e_system.py +0 -0
  257. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_loop_e2e_system.py +0 -0
  258. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_loop_progress_integration.py +0 -0
  259. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_maintenance_deferred_docs_integration.py +0 -0
  260. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_merge_executor_live_e2e_system.py +0 -0
  261. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_merge_executor_unit.py +0 -0
  262. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_merge_queue_live_probe_integration.py +0 -0
  263. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_mirror_parity_integration.py +0 -0
  264. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_model_registry_unit.py +0 -0
  265. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_model_routed_dispatch_wiring_integration.py +0 -0
  266. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_model_router_fallback_unit.py +0 -0
  267. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_model_router_unit.py +0 -0
  268. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_operator_batch_integration.py +0 -0
  269. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_operator_worktree_batch_unit.py +0 -0
  270. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_ops_ledger_integration.py +0 -0
  271. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_oracle_gates_unit.py +0 -0
  272. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_oracle_perf_benchmark_unit.py +0 -0
  273. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_oracle_source_lifecycle_gate_integration.py +0 -0
  274. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_orca_preset_integration.py +0 -0
  275. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_phase_events_unit.py +0 -0
  276. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_plan_contract_unit.py +0 -0
  277. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_planes_golden_eval_regression.py +0 -0
  278. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_planes_installed_e2e_system.py +0 -0
  279. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_planning_gate_284_enhancements_unit.py +0 -0
  280. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_planning_gate_execute_operator_integration.py +0 -0
  281. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_planning_gate_github_publish_unit.py +0 -0
  282. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_planning_gate_live_e2e_system.py +0 -0
  283. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_planning_gate_unit.py +0 -0
  284. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_pr_evidence_comment_publish_integration.py +0 -0
  285. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_pr_evidence_lifecycle_delegation_integration.py +0 -0
  286. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_pr_patrol_unit.py +0 -0
  287. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_precommit_bundle_sync_integration.py +0 -0
  288. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_preflight_unit.py +0 -0
  289. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_progress_comment_live_e2e_system.py +0 -0
  290. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_progress_comment_ratelimit_cli_e2e_integration.py +0 -0
  291. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_progress_e2e_system.py +0 -0
  292. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_progress_failopen_integration.py +0 -0
  293. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_progress_snapshots_unit.py +0 -0
  294. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_progress_unit.py +0 -0
  295. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_provenance_generate_integration.py +0 -0
  296. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_quality_gate_scripts_emit_json_unit.py +0 -0
  297. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_quality_matrix_benchmark_integration.py +0 -0
  298. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_quality_matrix_integration.py +0 -0
  299. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_quality_matrix_regression.py +0 -0
  300. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_quality_matrix_reverify_integration.py +0 -0
  301. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_quality_matrix_system.py +0 -0
  302. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_quality_matrix_watcher.py +0 -0
  303. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_receipt_verifier_integration.py +0 -0
  304. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_recovery_unit.py +0 -0
  305. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_release_manifest_unit.py +0 -0
  306. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_release_rehearsal_integration.py +0 -0
  307. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_release_verify_unit.py +0 -0
  308. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_remote_queue_cancellation_integration.py +0 -0
  309. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_remote_queue_integration.py +0 -0
  310. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_remote_queue_live_system.py +0 -0
  311. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_remote_queue_pull_claim_system.py +0 -0
  312. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_remote_queue_short_lived_auth_integration.py +0 -0
  313. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_remote_worker_e2e_system.py +0 -0
  314. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_remote_worker_http_e2e_system.py +0 -0
  315. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_remote_worker_measurement_unit.py +0 -0
  316. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_remote_worker_supervisor_system.py +0 -0
  317. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_repo_conventions_architecture_unit.py +0 -0
  318. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_repo_governance_294_integration.py +0 -0
  319. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_repository_budget_unit.py +0 -0
  320. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_repository_governance_unit.py +0 -0
  321. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_runner_cli_integration.py +0 -0
  322. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_runner_progress_events_unit.py +0 -0
  323. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_runner_state_machine_unit.py +0 -0
  324. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_runtime_adapter_unit.py +0 -0
  325. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_runtime_drivers_integration.py +0 -0
  326. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_runtime_execution_receipt_unit.py +0 -0
  327. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_runtime_matrix_integration.py +0 -0
  328. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_sbom_generate_integration.py +0 -0
  329. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_schema_verify_integration.py +0 -0
  330. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_schema_verify_unit.py +0 -0
  331. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_secure_transport_fault_injection_system.py +0 -0
  332. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_secure_transport_integration.py +0 -0
  333. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_security_audit_log_unit.py +0 -0
  334. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_short_lived_credentials_unit.py +0 -0
  335. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_simplicio_mcp_runner_unit.py +0 -0
  336. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_source_adapter_protocol_unit.py +0 -0
  337. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_source_snapshot_unit.py +0 -0
  338. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_source_state_unit.py +0 -0
  339. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_system_276_e2e_system.py +0 -0
  340. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_system_check_system.py +0 -0
  341. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_system_clean_install_system.py +0 -0
  342. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_task_backlog_unit.py +0 -0
  343. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_task_contract_cli_integration.py +0 -0
  344. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_task_contract_routing_unit.py +0 -0
  345. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_task_contract_unit.py +0 -0
  346. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_task_to_delivery_golden_corpus_regression.py +0 -0
  347. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_test_categories_unit.py +0 -0
  348. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_token_budget_unit.py +0 -0
  349. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_toon_codec_unit.py +0 -0
  350. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_transcript_progress_e2e_system.py +0 -0
  351. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_transcript_progress_unit.py +0 -0
  352. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_turn_progress_integration.py +0 -0
  353. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_verified_delivery_dispatch_wiring_integration.py +0 -0
  354. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_verified_delivery_unit.py +0 -0
  355. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_verify_adapters_integration.py +0 -0
  356. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_version_sync_unit.py +0 -0
  357. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_vscode_global_install.py +0 -0
  358. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_watcher_binding_unit.py +0 -0
  359. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_watcher_challenge_generation_integration.py +0 -0
  360. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_watcher_quality_gate_reverify_unit.py +0 -0
  361. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_work_item_claims_chaos_system.py +0 -0
  362. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_work_item_claims_run_guarded_integration.py +0 -0
  363. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_work_item_claims_unit.py +0 -0
  364. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_worker_cli_contract_integration.py +0 -0
  365. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_worker_daemon_unit.py +0 -0
  366. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_worker_selftests_system.py +0 -0
  367. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_worker_smoke_system.py +0 -0
  368. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_workitem_attempts_integration.py +0 -0
  369. {simplicio_loop-3.36.0 → simplicio_loop-3.37.0}/tests/test_worktree_queue_integration.py +0 -0
@@ -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.0
3
+ Version: 3.37.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,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,6 +86,68 @@ That architecture lets one goal become a governed delivery system: from a single
86
86
  </p>
87
87
  <!-- visual-story:end -->
88
88
 
89
+ <!-- stage-agents-roadmap:start -->
90
+ ## 🤖 Roadmap — a concrete agent behind every stage
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).
93
+
94
+ The portable driver will assign 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
+
89
151
  ## 🆕 What's new in v3.35.0
90
152
 
91
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.
@@ -126,14 +188,14 @@ and keeps watching **24/7** for new work — all behind safety gates and evidenc
126
188
  ```
127
189
 
128
190
  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**.
191
+ protocol on 15 runtimes**, and it does all of this with **aggressive, honest token economy**.
130
192
 
131
193
  The skill installs **standalone** too: you do **not** need `simplicio-runtime` or any mandatory
132
194
  runtime-native component just to use `simplicio-loop`. Native binds, operators, capture services,
133
195
  and the wider Simplicio runtime stack are optional accelerators on top of the core skill bundle.
134
196
 
135
197
  <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" />
198
+ <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
199
  </p>
138
200
 
139
201
  Within the Simplicio product line, this repo is also the **current reference task flow** for
@@ -230,9 +292,12 @@ The orchestrator discovers work from any source via pluggable adapters. Each exp
230
292
 
231
293
  | Source | Adapter | Purpose |
232
294
  |---|---|---|
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 |
295
+ | GitHub Issues/PRs | `gh` CLI (native) | Primary work-item source; canonical lifecycle comments ship today |
296
+ | Azure DevOps | `az boards` / host connector | Azure Boards discovery; stage comments only after a real connected-capability probe |
297
+ | Jira | host connector | Jira discovery; stage comments only when connected |
298
+ | Asana | host connector | Asana discovery; stage comments only when connected |
299
+ | Trello | host connector | Trello discovery; stage comments only when connected |
300
+ | ClickUp / Linear / Notion | host connector | Board/project discovery; no stage-comment claim without a certified adapter |
236
301
  | **agentsview sessions** | `scripts/agentsview_adapter.py` | Stalled session recovery + cost observability |
237
302
  | Local files / CI queue | filesystem / CI API | Internal work tracking |
238
303
 
@@ -240,33 +305,38 @@ See each adapter's reference doc under `.claude/skills/simplicio-loop/references
240
305
 
241
306
  ---
242
307
 
243
- ## 🌐 12 runtimes, one protocol — 3 guaranteed + 9 best-effort
308
+ ## 🌐 15 runtimes, one protocol — 3 guaranteed + 12 best-effort
244
309
 
245
310
  One universal skill core + one set of hooks drives every runtime. An adapter is thin: it tells a
246
311
  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.**
312
+ skill names no runtime; the runtime detects the skill.** The native `simplicio-runtime` MCP bind
313
+ is **REQUIRED** on every runtime (loop BLOCKS if it's missing/unreachable) — see
314
+ [`docs/MCP_SETUP.md`](docs/MCP_SETUP.md) for the per-host config table.
248
315
 
249
316
  ### Tier 1 — Guaranteed (gated on every commit)
250
317
 
251
- | Runtime | Skill load | Loop drive | Native bind |
318
+ | Runtime | Skill load | Loop drive | Native bind (MCP) |
252
319
  |---|---|---|---|
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 |
320
+ | **Claude Code** | `.claude/skills/` + plugin | `Stop` hook | REQUIRED — `~/.claude.json` |
321
+ | **Codex** | `AGENTS.md` | self-paced | REQUIRED — `~/.codex/config.toml` |
322
+ | **Cursor** | `.cursor-plugin/` | `stop`+`afterAgentResponse` | REQUIRED — `.cursor/mcp.json` |
256
323
 
257
324
  ### Tier 2 — Best-effort (contributions welcome, no gate)
258
325
 
259
- | Runtime | Skill load | Loop drive | Native bind |
326
+ | Runtime | Skill load | Loop drive | Native bind (MCP) |
260
327
  |---|---|---|---|
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 |
328
+ | **VS Code (Copilot)** | `copilot-instructions.md` | tasks | REQUIRED — `.vscode/mcp.json` |
329
+ | **Antigravity** | rules / `AGENTS.md` | self-paced | REQUIRED — best-effort path |
330
+ | **Kiro** | `.kiro/steering/` | specs | REQUIRED — `.kiro/settings/mcp.json` |
331
+ | **OpenCode** | `AGENTS.md` | self-paced | REQUIRED — `opencode.json` |
332
+ | **Gemini** (CLI/Code Assist) | `GEMINI.md` | self-paced | REQUIRED — `.gemini/settings.json` (CLI) |
333
+ | **Kimi** | inlined conventions | self-paced | REQUIRED best-effort, no verified client |
334
+ | **Qwen** (Code/CLI) | `AGENTS.md`-equivalent | self-paced | REQUIRED `.qwen/settings.json` (best-effort) |
335
+ | **DeepSeek** | inlined conventions | self-paced | REQUIRED — no first-party client, best-effort |
336
+ | **Aider** | `CONVENTIONS.md` | self-paced | REQUIRED no MCP client (LLM fallback for exec) |
337
+ | **Simplicio Agent** *(formerly Hermes)* | native recall | native loop | REQUIRED — **native** |
338
+ | **OpenClaw** | plugin SDK | native scheduler | REQUIRED — **native** |
339
+ | **Orca** | via inner agent + skills registry | inner hook / scheduled automations | REQUIRED — registry/inner-agent config |
270
340
 
271
341
  The promise: **same protocol, same gates, same safety on all 12 — Tier 1 verified mechanically,
272
342
  Tier 2 best-effort.** `orient_clamp.py` (token economy) works on every runtime with zero wiring. See
@@ -680,7 +750,7 @@ opt-in capabilities you reach for when the task calls for them.
680
750
  MIT
681
751
 
682
752
  <!-- simplicio-loop:github-comment-coordination:v1 -->
683
- ## 🌐 GitHub comment coordination across runtimes
753
+ ## 🌐 Work-item comment coordination across runtimes
684
754
 
685
755
  `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
756
 
@@ -692,7 +762,7 @@ pwsh scripts/install.ps1 gemini -Global
692
762
  pwsh scripts/install.ps1 hermes -Global # legacy alias for simplicio_agent
693
763
  ```
694
764
 
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`.
765
+ 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
766
 
697
767
  The repository workflow `.github/workflows/simplicio-status-sync.yml` turns the canonical lifecycle
698
768
  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
+ }
@@ -0,0 +1,89 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "https://simplicio.dev/contracts/stage-agents/v1/agent-instance.schema.json",
4
+ "title": "simplicio.agent-instance/v1",
5
+ "type": "object",
6
+ "required": [
7
+ "schema",
8
+ "agent_instance_id",
9
+ "role_id",
10
+ "role_version",
11
+ "stage_id",
12
+ "stage_version",
13
+ "run_id",
14
+ "task_id",
15
+ "work_item_id",
16
+ "attempt_id",
17
+ "attempt_ordinal",
18
+ "fence",
19
+ "plan_revision",
20
+ "runtime",
21
+ "provider",
22
+ "model",
23
+ "driver",
24
+ "parent_agent_id",
25
+ "coordinator_agent_id",
26
+ "parent_instance_id",
27
+ "idempotency_key",
28
+ "isolation_level",
29
+ "negotiated_capabilities",
30
+ "context_hash",
31
+ "manifest_hash",
32
+ "created_at",
33
+ "ready_at",
34
+ "terminal_status",
35
+ "reason_code"
36
+ ],
37
+ "properties": {
38
+ "schema": { "const": "simplicio.agent-instance/v1" },
39
+ "agent_instance_id": { "type": "string", "minLength": 1 },
40
+ "role_id": { "type": "string", "pattern": "^[a-z][a-z0-9_-]*$" },
41
+ "role_version": { "type": "string", "pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+$" },
42
+ "stage_id": { "type": "string", "pattern": "^[a-z][a-z0-9_-]*$" },
43
+ "stage_version": { "type": "string", "pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+$" },
44
+ "run_id": { "type": "string", "minLength": 1 },
45
+ "task_id": { "type": "string", "minLength": 1 },
46
+ "work_item_id": { "type": "string", "minLength": 1 },
47
+ "attempt_id": { "type": "string", "minLength": 1 },
48
+ "attempt_ordinal": { "type": "integer", "minimum": 1 },
49
+ "fence": { "type": "string", "minLength": 1 },
50
+ "plan_revision": { "type": "integer", "minimum": 0 },
51
+ "runtime": { "type": "string", "minLength": 1 },
52
+ "provider": { "type": "string", "minLength": 1 },
53
+ "model": { "type": "string", "minLength": 1 },
54
+ "driver": { "type": "string", "minLength": 1 },
55
+ "parent_agent_id": { "type": "string", "minLength": 1 },
56
+ "coordinator_agent_id": { "type": "string", "minLength": 1 },
57
+ "parent_instance_id": { "type": "string", "minLength": 1 },
58
+ "idempotency_key": { "type": "string", "minLength": 1 },
59
+ "isolation_level": { "enum": ["process", "session", "worker", "command", "human"] },
60
+ "negotiated_capabilities": {
61
+ "type": "array",
62
+ "items": { "type": "string", "minLength": 1 },
63
+ "uniqueItems": true
64
+ },
65
+ "context_hash": { "type": "string", "pattern": "^[0-9a-f]{64}$" },
66
+ "manifest_hash": { "type": "string", "pattern": "^[0-9a-f]{64}$" },
67
+ "created_at": { "type": "string", "format": "date-time" },
68
+ "ready_at": { "type": "string", "format": "date-time" },
69
+ "started_at": { "type": "string", "format": "date-time" },
70
+ "ended_at": { "type": "string", "format": "date-time" },
71
+ "terminal_status": { "enum": ["ready", "running", "completed", "failed", "blocked", "cancelled", "timed_out"] },
72
+ "reason_code": { "type": "string", "minLength": 1 }
73
+ },
74
+ "allOf": [
75
+ {
76
+ "if": { "properties": { "terminal_status": { "const": "ready" } } },
77
+ "then": { "not": { "anyOf": [{ "required": ["started_at"] }, { "required": ["ended_at"] }] } }
78
+ },
79
+ {
80
+ "if": { "properties": { "terminal_status": { "const": "running" } } },
81
+ "then": { "required": ["started_at"], "not": { "required": ["ended_at"] } }
82
+ },
83
+ {
84
+ "if": { "properties": { "terminal_status": { "enum": ["completed", "failed", "blocked", "cancelled", "timed_out"] } } },
85
+ "then": { "required": ["started_at", "ended_at"] }
86
+ }
87
+ ],
88
+ "additionalProperties": false
89
+ }
@@ -0,0 +1,41 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "https://simplicio.dev/contracts/stage-agents/v1/agent-role.schema.json",
4
+ "title": "simplicio.agent-role/v1",
5
+ "type": "object",
6
+ "required": [
7
+ "schema",
8
+ "role_id",
9
+ "version",
10
+ "title",
11
+ "description",
12
+ "required_capabilities",
13
+ "forbidden_to_self_sign",
14
+ "independent_of_roles"
15
+ ],
16
+ "properties": {
17
+ "schema": { "const": "simplicio.agent-role/v1" },
18
+ "role_id": { "type": "string", "pattern": "^[a-z][a-z0-9_-]*$", "minLength": 1 },
19
+ "version": { "type": "string", "pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+$" },
20
+ "title": { "type": "string", "minLength": 1 },
21
+ "description": { "type": "string", "minLength": 1 },
22
+ "required_capabilities": {
23
+ "type": "array",
24
+ "items": { "type": "string", "minLength": 1 },
25
+ "uniqueItems": true
26
+ },
27
+ "forbidden_to_self_sign": {
28
+ "type": "array",
29
+ "items": { "type": "string", "minLength": 1 },
30
+ "description": "Receipt types this role may NEVER sign for itself (e.g. reviewer cannot sign its own review).",
31
+ "uniqueItems": true
32
+ },
33
+ "independent_of_roles": {
34
+ "type": "array",
35
+ "items": { "type": "string", "pattern": "^[a-z][a-z0-9_-]*$" },
36
+ "description": "Roles that must be a DIFFERENT instance/context from this one (no fake independence).",
37
+ "uniqueItems": true
38
+ }
39
+ },
40
+ "additionalProperties": false
41
+ }
@@ -0,0 +1,41 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "https://simplicio.dev/contracts/stage-agents/v1/review-finding.schema.json",
4
+ "title": "simplicio.review-finding/v1",
5
+ "type": "object",
6
+ "required": [
7
+ "schema",
8
+ "role_id",
9
+ "file",
10
+ "line",
11
+ "claim",
12
+ "normalized_claim",
13
+ "class",
14
+ "confidence",
15
+ "evidence_refs"
16
+ ],
17
+ "properties": {
18
+ "schema": { "const": "simplicio.review-finding/v1" },
19
+ "role_id": {
20
+ "enum": [
21
+ "security_correctness_reviewer",
22
+ "maintainability_reviewer",
23
+ "runtime_reproduction_verifier",
24
+ "blast_radius_reviewer"
25
+ ]
26
+ },
27
+ "file": { "type": "string", "minLength": 1 },
28
+ "line": { "type": "integer", "minimum": 0 },
29
+ "claim": { "type": "string", "minLength": 1 },
30
+ "normalized_claim": { "type": "string", "minLength": 1 },
31
+ "class": {
32
+ "enum": ["security", "correctness", "maintainability", "runtime", "blast_radius"]
33
+ },
34
+ "confidence": { "enum": ["low", "medium", "high"] },
35
+ "evidence_refs": {
36
+ "type": "array",
37
+ "items": { "type": "string", "minLength": 1 }
38
+ }
39
+ },
40
+ "additionalProperties": false
41
+ }
@@ -0,0 +1,60 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "https://simplicio.dev/contracts/stage-agents/v1/review-receipt.schema.json",
4
+ "title": "simplicio.review-receipt/v1",
5
+ "description": "Per-reviewer receipt from the four-reviewer independent review panel (issue #427). Extends simplicio.stage-receipt/v1 with a hash-pinned rubric and a panel_signature that invalidates the receipt whenever the diff/head/plan_revision changes.",
6
+ "type": "object",
7
+ "required": [
8
+ "schema",
9
+ "receipt_id",
10
+ "agent_instance_id",
11
+ "role_id",
12
+ "run_id",
13
+ "task_id",
14
+ "attempt_id",
15
+ "fence",
16
+ "plan_revision",
17
+ "context_hash",
18
+ "rubric_hash",
19
+ "panel_signature",
20
+ "verdict",
21
+ "findings",
22
+ "evidence_refs",
23
+ "accepted",
24
+ "created_at"
25
+ ],
26
+ "properties": {
27
+ "schema": { "const": "simplicio.review-receipt/v1" },
28
+ "receipt_id": { "type": "string", "minLength": 1 },
29
+ "agent_instance_id": { "type": "string", "minLength": 1 },
30
+ "role_id": {
31
+ "enum": [
32
+ "security_correctness_reviewer",
33
+ "maintainability_reviewer",
34
+ "runtime_reproduction_verifier",
35
+ "blast_radius_reviewer"
36
+ ]
37
+ },
38
+ "run_id": { "type": "string", "minLength": 1 },
39
+ "task_id": { "type": "string", "minLength": 1 },
40
+ "attempt_id": { "type": "string", "minLength": 1 },
41
+ "fence": { "type": "string", "minLength": 1 },
42
+ "plan_revision": { "type": "integer", "minimum": 0 },
43
+ "context_hash": { "type": "string", "pattern": "^[0-9a-f]{64}$" },
44
+ "rubric_hash": { "type": "string", "pattern": "^[0-9a-f]{64}$" },
45
+ "panel_signature": { "type": "string", "pattern": "^[0-9a-f]{64}$" },
46
+ "verdict": { "enum": ["pass", "fail", "blocked", "skip"] },
47
+ "findings": {
48
+ "type": "array",
49
+ "items": { "$ref": "https://simplicio.dev/contracts/stage-agents/v1/review-finding.schema.json" }
50
+ },
51
+ "evidence_refs": {
52
+ "type": "array",
53
+ "items": { "type": "string", "minLength": 1 }
54
+ },
55
+ "accepted": { "type": "boolean" },
56
+ "created_at": { "type": "string", "format": "date-time" },
57
+ "rejection_reason": { "type": "string", "minLength": 1 }
58
+ },
59
+ "additionalProperties": false
60
+ }
@@ -0,0 +1,36 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "https://simplicio.dev/contracts/stage-agents/v1/run-stage-graph.schema.json",
4
+ "title": "simplicio.run-stage-graph/v1",
5
+ "type": "object",
6
+ "required": [
7
+ "schema",
8
+ "graph_id",
9
+ "version",
10
+ "manifest_hash",
11
+ "schema_pins",
12
+ "stages",
13
+ "roles"
14
+ ],
15
+ "properties": {
16
+ "schema": { "const": "simplicio.run-stage-graph/v1" },
17
+ "graph_id": { "type": "string", "minLength": 1 },
18
+ "version": { "type": "string", "pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+$" },
19
+ "manifest_hash": { "type": "string", "pattern": "^[0-9a-f]{64}$" },
20
+ "schema_pins": {
21
+ "type": "object",
22
+ "additionalProperties": { "type": "string", "pattern": "^[0-9a-f]{64}$" }
23
+ },
24
+ "stages": {
25
+ "type": "array",
26
+ "items": { "$ref": "stage-definition.schema.json" },
27
+ "minItems": 1
28
+ },
29
+ "roles": {
30
+ "type": "array",
31
+ "items": { "$ref": "agent-role.schema.json" },
32
+ "minItems": 1
33
+ }
34
+ },
35
+ "additionalProperties": false
36
+ }