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.
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/LICENSE +21 -21
- {simplicio_loop-3.37.0/simplicio_loop.egg-info → simplicio_loop-3.38.0}/PKG-INFO +1 -1
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/PYPI.md +53 -53
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/README.md +113 -27
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/pyproject.toml +1 -1
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/__init__.py +2 -2
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/hooks/hooks.claude.json +20 -20
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/hooks/hooks.json +11 -11
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/hooks/loop_capture.py +31 -31
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/hooks/orient_clamp.py +167 -167
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/hooks/orient_rewrite.py +119 -119
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/hooks/pre-commit.py +141 -141
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/hooks/simplicio_dashboard.py +970 -970
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/hooks/simplicio_watch.py +115 -115
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/scripts/cross_agent_wiki.py +615 -615
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/scripts/hierarchical_planner.py +394 -394
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-autoresearch/SKILL.md +165 -165
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-compress/SKILL.md +86 -86
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-learn/SKILL.md +80 -80
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-loop/SKILL.md +21 -2
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/agentsview-adapter.md +198 -198
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/azure-devops-adapter.md +69 -69
- simplicio_loop-3.38.0/simplicio_loop/_bundle/skills/simplicio-loop/references/background-verification.md +44 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/bound-operators.md +108 -108
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/claims-gate.md +62 -62
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/control-policy.md +79 -79
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/cross-agent-wiki.md +40 -40
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/cross-repo-integration.md +42 -42
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/extension-points.md +101 -101
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/hierarchical-planner.md +39 -39
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/lmcache-adapter.md +632 -632
- simplicio_loop-3.38.0/simplicio_loop/_bundle/skills/simplicio-loop/references/multi-agent-coordination.md +54 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/progress-feedback.md +153 -153
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/run-journal-stall-detector.md +47 -47
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/spindle-handoff.md +94 -94
- {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
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/token-capture.md +124 -124
- {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
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/triage-verify-detail.md +70 -70
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/understand-anything-adapter.md +591 -591
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/video-evidence.md +108 -108
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/web-evidence.md +93 -93
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-orient/SKILL.md +189 -189
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-review/SKILL.md +104 -104
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-tasks/SKILL.md +32 -32
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-tasks/references/agentsview-adapter.md +198 -198
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-tasks/references/azure-devops-adapter.md +69 -69
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-tasks/references/extension-points.md +101 -101
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-tasks/references/lmcache-adapter.md +632 -632
- {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
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-tasks/references/token-capture.md +124 -124
- {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
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-tasks/references/understand-anything-adapter.md +591 -591
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-tasks/references/video-evidence.md +108 -108
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-tasks/references/web-evidence.md +93 -93
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/tests/_selfrun.py +46 -46
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/attempt_journal.py +251 -251
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/budget.py +236 -236
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/cli.py +173 -4
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/control_policy.py +242 -242
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/drain.py +349 -349
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/driver_contract.py +101 -101
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/evidence.py +399 -399
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/execution_board.py +300 -300
- simplicio_loop-3.38.0/simplicio_loop/finding_report.py +75 -0
- simplicio_loop-3.38.0/simplicio_loop/finding_router.py +206 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/flow_semantics.py +131 -131
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/model_registry.py +326 -326
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/ops_ledger.py +283 -283
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/phase_events.py +139 -139
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/progress.py +25 -1
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/recovery.py +393 -393
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/runtime_adapter.py +235 -235
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/verified_delivery.py +158 -158
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0/simplicio_loop.egg-info}/PKG-INFO +1 -1
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop.egg-info/SOURCES.txt +17 -0
- simplicio_loop-3.38.0/tests/test_agent_replication.py +169 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_budget_error_paths_unit.py +116 -116
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_check_loop_contract_regression.py +52 -52
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_claims_manifest_unit.py +63 -63
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_cli_install_unit.py +145 -145
- simplicio_loop-3.38.0/tests/test_cli_preflight_status_json_unit.py +143 -0
- simplicio_loop-3.38.0/tests/test_coordinator_unit.py +157 -0
- simplicio_loop-3.38.0/tests/test_evolution.py +231 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_fan_out_unit.py +141 -141
- simplicio_loop-3.38.0/tests/test_finding_collector_unit.py +128 -0
- simplicio_loop-3.38.0/tests/test_finding_report.py +55 -0
- simplicio_loop-3.38.0/tests/test_finding_router.py +68 -0
- simplicio_loop-3.38.0/tests/test_findings_cli.py +102 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_flow_semantics_edge_paths_unit.py +117 -117
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_intake_progress.py +165 -165
- simplicio_loop-3.38.0/tests/test_loop_progress_encoding_unit.py +68 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_oracle_gates_unit.py +204 -204
- simplicio_loop-3.38.0/tests/test_pr_dod_review_unit.py +113 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_progress_unit.py +59 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_quality_matrix_integration.py +115 -115
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_quality_matrix_regression.py +117 -117
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_quality_matrix_system.py +128 -128
- simplicio_loop-3.38.0/tests/test_release_check_unit.py +94 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_schema_verify_integration.py +103 -103
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_schema_verify_unit.py +78 -78
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_stage_agent_contract.py +4 -4
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_task_contract_unit.py +146 -146
- simplicio_loop-3.38.0/tests/test_workflow_topology.py +193 -0
- simplicio_loop-3.38.0/tests/test_worktree_cleanup.py +194 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/MANIFEST.in +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/contracts/stage-agents/v1/action-intent.schema.json +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/contracts/stage-agents/v1/agent-instance.schema.json +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/contracts/stage-agents/v1/agent-role.schema.json +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/contracts/stage-agents/v1/review-finding.schema.json +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/contracts/stage-agents/v1/review-receipt.schema.json +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/contracts/stage-agents/v1/run-stage-graph.schema.json +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/contracts/stage-agents/v1/stage-definition.schema.json +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/contracts/stage-agents/v1/stage-input.schema.json +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/contracts/stage-agents/v1/stage-output.schema.json +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/contracts/stage-agents/v1/stage-receipt.schema.json +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/contracts/stage-agents/v1/stages.json +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/setup.cfg +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/hooks/README.md +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/hooks/action_gate.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/hooks/loop_stop.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/orchestration.md +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/planning-gate.md +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-loop/references/quality-safety-delivery.md +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-tasks/references/orchestration.md +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/skills/simplicio-tasks/references/quality-safety-delivery.md +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_contracts/stage-agents/v1/action-intent.schema.json +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_contracts/stage-agents/v1/agent-instance.schema.json +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_contracts/stage-agents/v1/agent-role.schema.json +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_contracts/stage-agents/v1/review-finding.schema.json +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_contracts/stage-agents/v1/review-receipt.schema.json +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_contracts/stage-agents/v1/run-stage-graph.schema.json +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_contracts/stage-agents/v1/stage-definition.schema.json +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_contracts/stage-agents/v1/stage-input.schema.json +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_contracts/stage-agents/v1/stage-output.schema.json +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_contracts/stage-agents/v1/stage-receipt.schema.json +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_contracts/stage-agents/v1/stages.json +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/agent_contract.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/agent_identity.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/completion_auditor.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/delivery.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/delivery_agent.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/external_verifiers.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/feedback_recovery_agent.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/freshness.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/github_lifecycle.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/implementation_agent.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/intake_contract.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/intake_planner.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/merge_executor.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/model_router.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/multi_tracker_reporting.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/oracle.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/orca_lifecycle.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/plan_contract.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/planning_gate.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/pr_patrol.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/quality_matrix.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/receipt_verifier.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/remote_queue.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/remote_queue_server_cli.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/remote_worker_cli.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/remote_worker_measurement.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/remote_worker_supervisor_cli.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/review_panel.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/runner.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/runtime_drivers.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/runtime_execution_receipt.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/secure_transport.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/source_adapter.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/source_snapshot.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/source_state.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/stage_agent_coordinator.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/stage_agents.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/stage_report.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/task_contract.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/traceability_matrix.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/work_item_claims.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/worker_daemon.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop.egg-info/dependency_links.txt +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop.egg-info/entry_points.txt +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop.egg-info/requires.txt +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop.egg-info/top_level.txt +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_284_lifecycle_dag_idempotence_integration.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_action_gate_system.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_agent_contract_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_agent_identity.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_agent_identity_integration.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_agentsview_adapter_integration.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_attempt_journal_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_autoresearch_system.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_az_boards_adapter_integration.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_batch_crash_recovery_system.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_bound_operators_runtime_required_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_budget_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_check_e2e_demo_contract_system.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_check_e2e_installed_system.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_claims_audit_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_clean_env_contract_integration.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_cli_dispatch_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_cli_oracle_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_completion_auditor_431_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_completion_oracle_matrix_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_completion_oracle_system.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_conformance_suite.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_contract_parity.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_control_policy_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_copilot_global_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_cross_agent_wiki_integration.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_dashboard_hook_integration.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_delivery_agent_429.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_delivery_concurrency_fault_injection_system.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_delivery_lifecycle_sandbox_e2e_system.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_delivery_progress_integration.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_delivery_reconciliation_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_delivery_source_identity_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_delivery_validation_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_dispatch_batch_multi_pr_integration.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_dispatch_merge_wiring_integration.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_distributed_183_dod_system.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_distributed_183_e2e_system.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_distributed_183_external_probe_integration.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_distributed_epic_evidence_system.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_distributed_trust_policy_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_doctor_smoke_system.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_drain_cli_integration.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_drain_integration.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_driver_contract_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_e2e_demo_audit_system.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_evidence_chain_integration.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_evidence_receipt_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_execution_board_e2e_integration.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_external_verifiers_integration.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_fan_out_flow_system.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_fan_out_scheduler_integration.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_feedback_recovery_agent_430_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_flow_audit_integration.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_flow_semantics_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_freshness_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_gen_install_mutations_doc_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_github_lifecycle_concurrency_e2e_system.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_github_lifecycle_live_e2e.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_github_lifecycle_readside_integration.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_github_lifecycle_runner_wiring_integration.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_github_lifecycle_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_github_status_sync_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_golden_mutation_regression.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_hbp_topics_integration.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_hierarchical_planner_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_hooks_coverage_integration.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_impact_audit_integration.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_implementation_agent_426_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_independent_watcher_integration.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_install_ci_pinning_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_install_consent_regression.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_install_lib_integration.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_install_plan_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_install_post_smoke_integration.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_install_rollback_integration.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_install_smoke_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_install_transaction_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_install_upgrade_integration.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_intake_impact_matrix_replan_284_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_intake_planner_425_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_intake_progress_integration.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_learn_pipeline_removed_regression.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_ledger_cli_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_live_issue_183_identity_system.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_locked_append_integration.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_loop_driver_run_state_e2e_system.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_loop_e2e_system.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_loop_progress_integration.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_maintenance_deferred_docs_integration.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_merge_executor_live_e2e_system.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_merge_executor_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_merge_queue_live_probe_integration.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_mirror_parity_integration.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_model_registry_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_model_routed_dispatch_wiring_integration.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_model_router_fallback_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_model_router_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_multi_tracker_reporting.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_operator_batch_integration.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_operator_worktree_batch_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_ops_ledger_integration.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_oracle_perf_benchmark_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_oracle_source_lifecycle_gate_integration.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_orca_lifecycle_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_orca_preset_integration.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_phase_events_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_plan_contract_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_planes_golden_eval_regression.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_planes_installed_e2e_system.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_planning_gate_284_enhancements_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_planning_gate_execute_operator_integration.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_planning_gate_github_publish_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_planning_gate_live_e2e_system.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_planning_gate_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_pr_evidence_comment_publish_integration.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_pr_evidence_lifecycle_delegation_integration.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_pr_patrol_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_precommit_bundle_sync_integration.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_preflight_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_progress_comment_live_e2e_system.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_progress_comment_ratelimit_cli_e2e_integration.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_progress_e2e_system.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_progress_failopen_integration.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_progress_snapshots_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_provenance_generate_integration.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_quality_gate_scripts_emit_json_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_quality_matrix_benchmark_integration.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_quality_matrix_reverify_integration.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_quality_matrix_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_quality_matrix_watcher.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_receipt_verifier_integration.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_recovery_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_release_manifest_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_release_rehearsal_integration.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_release_verify_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_remote_queue_cancellation_integration.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_remote_queue_integration.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_remote_queue_live_system.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_remote_queue_pull_claim_system.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_remote_queue_short_lived_auth_integration.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_remote_worker_e2e_system.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_remote_worker_http_e2e_system.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_remote_worker_measurement_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_remote_worker_supervisor_system.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_repo_conventions_architecture_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_repo_governance_294_integration.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_repository_budget_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_repository_governance_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_review_panel.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_runner_cli_integration.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_runner_progress_events_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_runner_state_machine_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_runtime_adapter_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_runtime_drivers_integration.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_runtime_execution_receipt_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_runtime_matrix_integration.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_safety_gate_agent.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_sbom_generate_integration.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_secure_transport_fault_injection_system.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_secure_transport_integration.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_security_audit_log_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_short_lived_credentials_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_simplicio_mcp_runner_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_source_adapter_protocol_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_source_snapshot_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_source_state_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_stage_agent_conformance.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_stage_agent_coordinator.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_stage_agent_fail_closed.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_stage_agent_reducer.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_stage_report_cli_integration.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_stage_report_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_system_276_e2e_system.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_system_check_system.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_system_clean_install_system.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_task_backlog_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_task_contract_cli_integration.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_task_contract_routing_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_task_to_delivery_golden_corpus_regression.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_test_categories_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_token_budget_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_toon_codec_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_transcript_progress_e2e_system.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_transcript_progress_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_turn_progress_integration.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_verified_delivery_dispatch_wiring_integration.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_verified_delivery_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_verify_adapters_integration.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_version_sync_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_vscode_global_install.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_watcher_binding_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_watcher_challenge_generation_integration.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_watcher_quality_gate_reverify_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_work_item_claims_chaos_system.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_work_item_claims_run_guarded_integration.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_work_item_claims_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_worker_cli_contract_integration.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_worker_daemon_unit.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_worker_selftests_system.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_worker_smoke_system.py +0 -0
- {simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/tests/test_workitem_attempts_integration.py +0 -0
- {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.
|
|
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
|
-

|
|
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
|
+

|
|
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
|
-
## 🤖
|
|
90
|
+
## 🤖 Shipped: a concrete agent behind every stage
|
|
91
91
|
|
|
92
|
-
> **Implementation status:**
|
|
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
|
|
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.
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
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 **
|
|
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
|
|
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 -->
|
|
357
|
-
|
|
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["
|
|
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{"
|
|
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["
|
|
372
|
-
DELIVER -->
|
|
373
|
-
|
|
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
|
-
|
|
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
|
+
[](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.
|
|
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"
|
{simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/hooks/hooks.claude.json
RENAMED
|
@@ -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
|
+
}
|
{simplicio_loop-3.37.0 → simplicio_loop-3.38.0}/simplicio_loop/_bundle/hooks/loop_capture.py
RENAMED
|
@@ -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()
|