project-loop-harness 0.4.3__tar.gz → 0.5.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 (660) hide show
  1. {project_loop_harness-0.4.3/src/project_loop_harness.egg-info → project_loop_harness-0.5.0}/PKG-INFO +115 -9
  2. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/README.md +114 -8
  3. project_loop_harness-0.5.0/agent-tasks/0154-profile-boundary-adr-contract-freeze.md +55 -0
  4. project_loop_harness-0.5.0/agent-tasks/0155-profile-contract-runtime-and-registry.md +44 -0
  5. project_loop_harness-0.5.0/agent-tasks/0156-profile-read-only-prepare.md +49 -0
  6. project_loop_harness-0.5.0/agent-tasks/0157-profile-bundle-validation-dry-run.md +52 -0
  7. project_loop_harness-0.5.0/agent-tasks/0158-profile-bundle-atomic-ingest.md +61 -0
  8. project_loop_harness-0.5.0/agent-tasks/0159-decision-proposal-human-selection.md +72 -0
  9. project_loop_harness-0.5.0/agent-tasks/0160-council-profile-offline-e2e.md +57 -0
  10. project_loop_harness-0.5.0/agent-tasks/0161-council-dogfood-skill-parity.md +38 -0
  11. project_loop_harness-0.5.0/agent-tasks/0162-council-evaluation-adoption-gate.md +39 -0
  12. project_loop_harness-0.5.0/agent-tasks/0163-adoption-first-release-readiness.md +68 -0
  13. project_loop_harness-0.5.0/agent-tasks/0164-guided-dashboard-review-experience.md +110 -0
  14. project_loop_harness-0.5.0/agent-tasks/0165-v043-field-feedback-friction.md +97 -0
  15. project_loop_harness-0.5.0/agent-tasks/0166-local-skill-usage-improvement-loop.md +96 -0
  16. project_loop_harness-0.5.0/agent-tasks/0167-actionable-skill-usage-retry-signals.md +89 -0
  17. project_loop_harness-0.5.0/agent-tasks/0168-structured-command-guide.md +99 -0
  18. project_loop_harness-0.5.0/agent-tasks/0169-dashboard-decision-summary.md +57 -0
  19. project_loop_harness-0.5.0/agent-tasks/0170-exit-status-aware-skill-usage-friction.md +75 -0
  20. project_loop_harness-0.5.0/agent-tasks/0171-actionable-finish-timeout-recovery.md +62 -0
  21. project_loop_harness-0.5.0/agent-tasks/0172-composite-pcl-result-status.md +63 -0
  22. project_loop_harness-0.5.0/agent-tasks/0173-v050-release-preparation.md +61 -0
  23. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/README.md +39 -1
  24. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/adoption-guide.md +51 -1
  25. project_loop_harness-0.5.0/docs/command-guide.md +30 -0
  26. project_loop_harness-0.5.0/docs/council-profile.md +50 -0
  27. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/data-model.md +10 -0
  28. project_loop_harness-0.5.0/docs/dogfood/v0.5.0-council-profile.md +51 -0
  29. project_loop_harness-0.5.0/docs/evaluation/v0.5.0-council-evaluation.md +37 -0
  30. project_loop_harness-0.5.0/docs/evidence/0155-profile-contract-runtime-validation.md +47 -0
  31. project_loop_harness-0.5.0/docs/evidence/0156-profile-read-only-prepare-validation.md +40 -0
  32. project_loop_harness-0.5.0/docs/evidence/0157-profile-bundle-dry-run-validation.md +46 -0
  33. project_loop_harness-0.5.0/docs/evidence/0158-atomic-profile-bundle-ingest-validation.md +55 -0
  34. project_loop_harness-0.5.0/docs/evidence/0159-profile-decisions-authorization-validation.md +57 -0
  35. project_loop_harness-0.5.0/docs/evidence/0160-council-discovery-offline-e2e-validation.md +61 -0
  36. project_loop_harness-0.5.0/docs/evidence/0162-final-verification.md +19 -0
  37. project_loop_harness-0.5.0/docs/evidence/0162-human-adoption-outcome.md +26 -0
  38. project_loop_harness-0.5.0/docs/evidence/0163-adoption-first-validation.md +43 -0
  39. project_loop_harness-0.5.0/docs/evidence/0164-guided-dashboard-codex-remediation.md +62 -0
  40. project_loop_harness-0.5.0/docs/evidence/0164-guided-dashboard-red-tests.md +25 -0
  41. project_loop_harness-0.5.0/docs/evidence/0164-guided-dashboard-validation.md +82 -0
  42. project_loop_harness-0.5.0/docs/evidence/0165-v043-field-feedback-validation.md +70 -0
  43. project_loop_harness-0.5.0/docs/evidence/0166-local-skill-usage-validation.md +86 -0
  44. project_loop_harness-0.5.0/docs/evidence/0167-actionable-skill-usage-signals-validation.md +94 -0
  45. project_loop_harness-0.5.0/docs/evidence/0168-structured-command-guide-validation.md +103 -0
  46. project_loop_harness-0.5.0/docs/evidence/0169-dashboard-decision-summary-validation.md +44 -0
  47. project_loop_harness-0.5.0/docs/evidence/0170-exit-status-aware-skill-usage-validation.md +86 -0
  48. project_loop_harness-0.5.0/docs/evidence/0171-actionable-finish-timeout-recovery-validation.md +78 -0
  49. project_loop_harness-0.5.0/docs/evidence/0172-composite-pcl-result-status-validation.md +71 -0
  50. project_loop_harness-0.5.0/docs/evidence/node-finish-utsuro-dogfood.md +19 -0
  51. project_loop_harness-0.5.0/docs/evidence/node-init-autodetection-dogfood.md +38 -0
  52. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/finish.md +31 -7
  53. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/growth-plan-v0.2.4-v0.5.md +36 -4
  54. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/implementation-plan.md +53 -0
  55. project_loop_harness-0.5.0/docs/plan-v0.5.0-council-profile.md +397 -0
  56. project_loop_harness-0.5.0/docs/proposals/council-profile/ADR-005-external-council-profile-boundary.md +93 -0
  57. project_loop_harness-0.5.0/docs/proposals/council-profile/README.md +18 -0
  58. project_loop_harness-0.5.0/docs/proposals/council-profile/contract-freeze.md +146 -0
  59. project_loop_harness-0.5.0/docs/proposals/council-profile/external-runner-spec-v0.md +125 -0
  60. project_loop_harness-0.5.0/docs/proposals/council-profile/implementation-proposal.md +1014 -0
  61. project_loop_harness-0.5.0/docs/proposals/council-profile/validation-transcript.md +56 -0
  62. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/release-notes/v0.4.3.md +10 -4
  63. project_loop_harness-0.5.0/docs/release-notes/v0.5.0.md +79 -0
  64. project_loop_harness-0.5.0/docs/reviews/0154-council-contract-freeze-claude-fable-review.md +43 -0
  65. project_loop_harness-0.5.0/docs/reviews/0155-0157-claude-fable-milestone-review.md +55 -0
  66. project_loop_harness-0.5.0/docs/reviews/0156-route-binding-claude-fable-advice.md +29 -0
  67. project_loop_harness-0.5.0/docs/reviews/0158-0160-claude-fable-milestone-review.md +38 -0
  68. project_loop_harness-0.5.0/docs/reviews/0159-decision-authorization-claude-fable-advice.md +37 -0
  69. project_loop_harness-0.5.0/docs/reviews/0161-0162-claude-fable-milestone-review.md +41 -0
  70. project_loop_harness-0.5.0/docs/reviews/0163-adoption-first-claude-fable-review.md +60 -0
  71. project_loop_harness-0.5.0/docs/reviews/0164-guided-dashboard-codex-final-review.md +66 -0
  72. project_loop_harness-0.5.0/docs/reviews/0164-guided-dashboard-codex-rereview.md +41 -0
  73. project_loop_harness-0.5.0/docs/reviews/0164-guided-dashboard-plan-review.md +51 -0
  74. project_loop_harness-0.5.0/docs/reviews/2026-07-13-business-technical-review.md +109 -0
  75. project_loop_harness-0.5.0/docs/reviews/plan-v0.5.0-council-profile-review.md +93 -0
  76. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/roadmap/integrated/02-contracts-and-data-model.md +8 -1
  77. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/roadmap/integrated/ADOPTION.md +14 -0
  78. project_loop_harness-0.5.0/docs/roadmap/priority-reset-2026-07-13.md +44 -0
  79. project_loop_harness-0.5.0/docs/skill-usage-report.md +91 -0
  80. project_loop_harness-0.5.0/docs/stability-policy.md +81 -0
  81. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/pyproject.toml +4 -2
  82. project_loop_harness-0.5.0/src/pcl/__init__.py +1 -0
  83. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/audit.py +84 -1
  84. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/cli.py +550 -1
  85. project_loop_harness-0.5.0/src/pcl/command_guide.py +351 -0
  86. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/commands.py +225 -6
  87. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/contracts/__init__.py +76 -0
  88. project_loop_harness-0.5.0/src/pcl/contracts/_profile_contract.py +272 -0
  89. project_loop_harness-0.5.0/src/pcl/contracts/claim_set.py +36 -0
  90. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/contracts/completion_packet.py +17 -10
  91. project_loop_harness-0.5.0/src/pcl/contracts/council_run.py +55 -0
  92. project_loop_harness-0.5.0/src/pcl/contracts/decision_proposal.py +53 -0
  93. project_loop_harness-0.5.0/src/pcl/contracts/profile_manifest.py +31 -0
  94. project_loop_harness-0.5.0/src/pcl/contracts/profile_output_bundle.py +129 -0
  95. project_loop_harness-0.5.0/src/pcl/contracts/profile_run_request.py +143 -0
  96. project_loop_harness-0.5.0/src/pcl/contracts/schemas/claim-set-v0.schema.json +204 -0
  97. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/contracts/schemas/completion-packet-v1.schema.json +14 -0
  98. project_loop_harness-0.5.0/src/pcl/contracts/schemas/council-run-v0.schema.json +391 -0
  99. project_loop_harness-0.5.0/src/pcl/contracts/schemas/decision-proposal-v0.schema.json +264 -0
  100. project_loop_harness-0.5.0/src/pcl/contracts/schemas/profile-manifest-v1.schema.json +173 -0
  101. project_loop_harness-0.5.0/src/pcl/contracts/schemas/profile-output-bundle-v1.schema.json +291 -0
  102. project_loop_harness-0.5.0/src/pcl/contracts/schemas/profile-run-request-v1.schema.json +600 -0
  103. project_loop_harness-0.5.0/src/pcl/contracts/schemas/verification-plan-v0.schema.json +141 -0
  104. project_loop_harness-0.5.0/src/pcl/contracts/verification_plan.py +39 -0
  105. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/decisions.py +32 -1
  106. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/errors.py +13 -0
  107. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/events.py +2 -1
  108. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/evidence.py +126 -8
  109. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/evidence_show.py +25 -2
  110. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/finish_execution.py +89 -16
  111. project_loop_harness-0.5.0/src/pcl/finish_recovery.py +91 -0
  112. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/init_project.py +136 -3
  113. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/locales.py +81 -0
  114. project_loop_harness-0.5.0/src/pcl/profile_authorization.py +639 -0
  115. project_loop_harness-0.5.0/src/pcl/profile_bundle_store.py +605 -0
  116. project_loop_harness-0.5.0/src/pcl/profile_decisions.py +307 -0
  117. project_loop_harness-0.5.0/src/pcl/profile_fixture_runner.py +380 -0
  118. project_loop_harness-0.5.0/src/pcl/profile_ingest.py +875 -0
  119. project_loop_harness-0.5.0/src/pcl/profile_prepare.py +731 -0
  120. project_loop_harness-0.5.0/src/pcl/profiles/builtin/council.discovery.json +41 -0
  121. project_loop_harness-0.5.0/src/pcl/profiles/fixtures/council.discovery/scenarios.json +13 -0
  122. project_loop_harness-0.5.0/src/pcl/profiles.py +170 -0
  123. project_loop_harness-0.5.0/src/pcl/project_config.py +98 -0
  124. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/renderer.py +295 -2
  125. project_loop_harness-0.5.0/src/pcl/skill_usage_report.py +1474 -0
  126. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/start.py +3 -0
  127. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/templates/dashboard/dashboard.html +31 -11
  128. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/templates/skills/project-control-loop/SKILL.md +40 -0
  129. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/validators.py +28 -11
  130. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/workflow_sandbox.py +30 -26
  131. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0/src/project_loop_harness.egg-info}/PKG-INFO +115 -9
  132. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/project_loop_harness.egg-info/SOURCES.txt +110 -0
  133. project_loop_harness-0.5.0/tests/fixtures/profile_bundle/cases.json +29 -0
  134. project_loop_harness-0.5.0/tests/fixtures/profile_e2e/decision-projection.expected.json +15 -0
  135. project_loop_harness-0.5.0/tests/fixtures/profile_e2e/run_offline_e2e.py +203 -0
  136. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/fixtures/start_initialized_v1.json +3 -1
  137. project_loop_harness-0.5.0/tests/fixtures/v0.3.1-baseline/snapshots/pcl-help.json +9 -0
  138. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/fixtures/v0.3.1-baseline/snapshots/pcl-version.json +1 -1
  139. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/mcp/fixtures/wire-transcript.json +1 -1
  140. project_loop_harness-0.5.0/tests/test_adoption_docs.py +57 -0
  141. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/test_cli_init.py +116 -0
  142. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/test_codex_plugin.py +5 -0
  143. project_loop_harness-0.5.0/tests/test_command_guide.py +117 -0
  144. project_loop_harness-0.5.0/tests/test_council_evaluation_cohort.py +49 -0
  145. project_loop_harness-0.5.0/tests/test_council_profile_proposal_contracts.py +224 -0
  146. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/test_dashboard.py +409 -2
  147. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/test_distribution.py +123 -0
  148. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/test_evidence_add.py +6 -10
  149. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/test_evidence_show.py +4 -2
  150. project_loop_harness-0.5.0/tests/test_field_feedback_0165.py +256 -0
  151. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/test_finish.py +146 -0
  152. project_loop_harness-0.5.0/tests/test_profile_contracts.py +274 -0
  153. project_loop_harness-0.5.0/tests/test_profile_fixture_e2e.py +50 -0
  154. project_loop_harness-0.5.0/tests/test_profile_ingest_dry_run.py +1076 -0
  155. project_loop_harness-0.5.0/tests/test_profile_prepare.py +470 -0
  156. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/test_skill_command_examples.py +5 -0
  157. project_loop_harness-0.5.0/tests/test_skill_usage_report.py +932 -0
  158. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/test_start.py +31 -0
  159. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/test_verification_feedback.py +1 -1
  160. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/test_workflow_sandbox.py +40 -0
  161. project_loop_harness-0.4.3/src/pcl/__init__.py +0 -1
  162. project_loop_harness-0.4.3/tests/fixtures/v0.3.1-baseline/snapshots/pcl-help.json +0 -9
  163. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/LICENSE +0 -0
  164. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/MANIFEST.in +0 -0
  165. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/Makefile +0 -0
  166. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0001-hardening-cli.md +0 -0
  167. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0002-db-migrations.md +0 -0
  168. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0003-workflow-runner.md +0 -0
  169. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0004-dashboard-renderer.md +0 -0
  170. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0005-agent-integration.md +0 -0
  171. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0006-codex-plugin.md +0 -0
  172. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0007-mcp-server.md +0 -0
  173. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0008-loop-lifecycle.md +0 -0
  174. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0009-defect-lifecycle.md +0 -0
  175. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0010-reporting-evidence.md +0 -0
  176. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0011-validation-invariants.md +0 -0
  177. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0012-audit-log-integrity.md +0 -0
  178. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0013-validation-diagnostics.md +0 -0
  179. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0014-escalation-lifecycle.md +0 -0
  180. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0015-decision-lifecycle.md +0 -0
  181. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0016-escalation-decision-linkage.md +0 -0
  182. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0017-next-action-guided-loop.md +0 -0
  183. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0018-readme-golden-path.md +0 -0
  184. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0019-recovery-playbook.md +0 -0
  185. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0020-example-project-refresh.md +0 -0
  186. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0021-agent-adapter-contract.md +0 -0
  187. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0022-agent-output-validation.md +0 -0
  188. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0023-codex-exec-adapter-hardening.md +0 -0
  189. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0024-claude-manual-adapter-hardening.md +0 -0
  190. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0025-generic-shell-adapter.md +0 -0
  191. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0026-agent-job-evidence-ingestion.md +0 -0
  192. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0027-dashboard-data-contract.md +0 -0
  193. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0028-dashboard-evidence-navigation.md +0 -0
  194. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0029-dashboard-risk-and-blockers.md +0 -0
  195. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0030-distribution-readiness.md +0 -0
  196. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0031-workflow-proposal-mode.md +0 -0
  197. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0032-workflow-proposal-review.md +0 -0
  198. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0033-workflow-verifier.md +0 -0
  199. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0034-limited-execution-sandbox.md +0 -0
  200. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0035-automatic-workflow-executor.md +0 -0
  201. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0036-executor-dogfood-workflow.md +0 -0
  202. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0037-executor-retry-resume.md +0 -0
  203. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0038-story-test-lifecycle.md +0 -0
  204. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0039-workflow-yaml-rule-expressions.md +0 -0
  205. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0040-test-case-evidence-validation.md +0 -0
  206. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0041-feature-inspection-commands.md +0 -0
  207. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0042-report-coverage-context.md +0 -0
  208. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0043-feature-report.md +0 -0
  209. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0044-complete-csv-export.md +0 -0
  210. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0045-filtered-job-inspection.md +0 -0
  211. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0046-feature-status-lifecycle.md +0 -0
  212. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0047-feature-coverage-next-action.md +0 -0
  213. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0048-migration-status-command.md +0 -0
  214. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0049-render-json-artifact-paths.md +0 -0
  215. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0050-codex-plugin-package-inventory.md +0 -0
  216. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0051-mcp-render-artifact-paths.md +0 -0
  217. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0052-lifecycle-failure-job-cleanup.md +0 -0
  218. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0053-prompt-job-json-handoff.md +0 -0
  219. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0054-human-queue-linkage-cli.md +0 -0
  220. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0055-workflow-proposal-list-filter.md +0 -0
  221. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0056-sandbox-noop-execution-guard.md +0 -0
  222. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0057-executor-no-executable-step-guard.md +0 -0
  223. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0058-dogfood-usability-hardening.md +0 -0
  224. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0059-checkpoint-review-guidance.md +0 -0
  225. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0060-pypi-trusted-publishing.md +0 -0
  226. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0061-context-pack-v1.md +0 -0
  227. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0062-task-backlog-entity.md +0 -0
  228. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0063-structured-verification-rubric.md +0 -0
  229. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0064-task-loop-integration.md +0 -0
  230. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0065-dashboard-human-decisions.md +0 -0
  231. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0066-agent-registry-lease.md +0 -0
  232. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0067-context-pack-improvements.md +0 -0
  233. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0068-trust-hardening.md +0 -0
  234. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0069-explainable-code-context-v0.md +0 -0
  235. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0070-human-decision-cockpit.md +0 -0
  236. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0071-dogfood-impact-precision.md +0 -0
  237. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0072-sensitive-omission.md +0 -0
  238. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0073-code-context-module-split.md +0 -0
  239. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0074-search-snapshot-consistency.md +0 -0
  240. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0075-diff-source-modes.md +0 -0
  241. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0076-schema-version-integrity.md +0 -0
  242. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0077-index-output-budget-and-impact-noise.md +0 -0
  243. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0078-context-pack-code-context-bridge.md +0 -0
  244. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0079-receipt-human-summary.md +0 -0
  245. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0080-retrieval-eval-gate.md +0 -0
  246. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0081-diff-modes-completion.md +0 -0
  247. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0082-receipt-relevance-and-age.md +0 -0
  248. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0083-required-section-invariant.md +0 -0
  249. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0084-source-commands-honesty.md +0 -0
  250. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0085-distribution-source-completeness.md +0 -0
  251. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0086-command-surface-alignment.md +0 -0
  252. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0087-verification-suggestion-ids.md +0 -0
  253. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0088-verification-feedback.md +0 -0
  254. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0089-dogfood-fixture-propose.md +0 -0
  255. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0090-eval-baseline-record-compare.md +0 -0
  256. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0091-refresh-command-scope-fidelity.md +0 -0
  257. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0092-idempotent-status-transitions.md +0 -0
  258. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0093-evidence-add-command.md +0 -0
  259. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0094-job-completion-evidence.md +0 -0
  260. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0095-supporting-evidence-health.md +0 -0
  261. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0096-evidence-add-path-guards.md +0 -0
  262. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0097-evidence-durability-design.md +0 -0
  263. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0098-field-feedback-next-weight-and-run-report-scope.md +0 -0
  264. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0099-evidence-copy-mode.md +0 -0
  265. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0100-evidence-task-linking.md +0 -0
  266. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0101-evidence-id-allocation-race.md +0 -0
  267. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0102-source-drift-health-warning.md +0 -0
  268. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0103-security-policy-v02x.md +0 -0
  269. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0104-python-ci-matrix.md +0 -0
  270. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0105-evidence-copy-observability.md +0 -0
  271. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0106-release-checklist.md +0 -0
  272. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0107-agent-tasks-backlog-index.md +0 -0
  273. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0108-target-bound-code-context-receipts.md +0 -0
  274. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0113-evidence-links-table.md +0 -0
  275. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0114-source-hash-drift.md +0 -0
  276. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0115-context-pack-contract-fixtures.md +0 -0
  277. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0116-receipt-link-agreement-validation.md +0 -0
  278. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0117-markdown-target-refresh-command.md +0 -0
  279. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0118-canonical-target-bound-handoff-docs.md +0 -0
  280. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0119-context-check-preflight.md +0 -0
  281. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0120-pcl-finish-terminal-closeout.md +0 -0
  282. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0121-human-gate-japanese-guidance.md +0 -0
  283. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0122-feature-coverage-noop.md +0 -0
  284. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0123-master-trace-intent-index-contract.md +0 -0
  285. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0124-baseline-fixtures-v0-3-1.md +0 -0
  286. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0125-mcp-stdio-framing-negotiation.md +0 -0
  287. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0126-mcp-external-conformance.md +0 -0
  288. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0127-transactional-audit-outbox-design.md +0 -0
  289. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0128-event-outbox-jsonl-projector.md +0 -0
  290. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0129-audit-check-repair-rebuild.md +0 -0
  291. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0130-crash-concurrency-test-suite.md +0 -0
  292. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0131-guarded-executor-hardening.md +0 -0
  293. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0132-master-trace-context-pack-section.md +0 -0
  294. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0133-windows-lock-fallback.md +0 -0
  295. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0134-completion-packet-v1-contract.md +0 -0
  296. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0135-finish-emits-completion-packet.md +0 -0
  297. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0136-lite-pcl-start.md +0 -0
  298. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0137-handoff-packet-pcl-resume.md +0 -0
  299. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0138-kpi-report-surface.md +0 -0
  300. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0139-executable-resume-context.md +0 -0
  301. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0140-kpi-post-integration-sources.md +0 -0
  302. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0140a-skill-cli-contract-parity.md +0 -0
  303. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0140b-lifecycle-integrity-gate.md +0 -0
  304. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0140c-fail-open-check-guard.md +0 -0
  305. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0141-idle-routing-repair.md +0 -0
  306. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0142-lifecycle-repair-planner.md +0 -0
  307. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0143-terminal-link-repair.md +0 -0
  308. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0144-skill-runtime-provenance.md +0 -0
  309. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0145-structured-validation-diagnostics.md +0 -0
  310. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0145a-integrity-migration-dogfood.md +0 -0
  311. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0145b-v0.4.1-release-preparation.md +0 -0
  312. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0146-work-brief-evidence-contract.md +0 -0
  313. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0147-deterministic-route-recommendation.md +0 -0
  314. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0148-adaptive-policy-resolve-explain.md +0 -0
  315. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0149-route-policy-override-integration.md +0 -0
  316. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0149a-adaptive-entry-dogfood.md +0 -0
  317. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0149b-v0.4.2-release-preparation.md +0 -0
  318. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0150-evidence-set-completeness-contract.md +0 -0
  319. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0151-completion-policy-terminal-preflight.md +0 -0
  320. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0152-next-action-approval-provenance.md +0 -0
  321. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0153-cross-skill-integrity-dogfood.md +0 -0
  322. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/agent-tasks/0153b-v0.4.3-release-preparation.md +0 -0
  323. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/adaptive-policy-v1.md +0 -0
  324. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/adr/0001-hybrid-state.md +0 -0
  325. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/adr/0002-cli-is-the-runtime.md +0 -0
  326. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/adr/0003-static-workflows-before-dynamic-workflows.md +0 -0
  327. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/adr/ADR-002-transactional-audit-outbox.md +0 -0
  328. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/agent-adapter-contract.md +0 -0
  329. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/agent-output-template.md +0 -0
  330. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/agent-roles.md +0 -0
  331. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/approval-provenance-v1.md +0 -0
  332. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/architecture.md +0 -0
  333. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/canonical-state-baseline-v0.4.2.md +0 -0
  334. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/code-context.md +0 -0
  335. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/completion-packet-v1.md +0 -0
  336. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/completion-policy-v1.md +0 -0
  337. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/context-check.md +0 -0
  338. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/context-pack.md +0 -0
  339. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/crash-concurrency-reliability.md +0 -0
  340. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/dashboard-data-contract.md +0 -0
  341. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/dashboard-design.md +0 -0
  342. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/distribution.md +0 -0
  343. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/dogfood/adaptive-entry-v0.4.2.md +0 -0
  344. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/dogfood/lp-production-cross-skill-review.md +0 -0
  345. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/dogfood/v0.4.3-cross-skill-integrity.md +0 -0
  346. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/dogfood-report-v0.4.1-integrity-migration.md +0 -0
  347. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/dogfood-report-v0.4.md +0 -0
  348. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/event-outbox-compatibility.md +0 -0
  349. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/evidence/0136-pcl-start-demo.md +0 -0
  350. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/evidence/0146-work-brief-validation.md +0 -0
  351. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/evidence/0147-route-recommendation-validation.md +0 -0
  352. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/evidence/0148-adaptive-policy-validation.md +0 -0
  353. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/evidence/0149-route-override-validation.md +0 -0
  354. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/evidence/0150-evidence-set-validation.md +0 -0
  355. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/evidence/0151-completion-policy-validation.md +0 -0
  356. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/evidence/0152-next-action-approval-provenance-validation.md +0 -0
  357. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/evidence/0152a-agent-mediated-human-approval-validation.md +0 -0
  358. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/evidence/0153-human-dogfood-approval.md +0 -0
  359. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/evidence/d0002-autonomous-continuation-validation.md +0 -0
  360. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/evidence-durability-design.md +0 -0
  361. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/evidence-entry-paths-design.md +0 -0
  362. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/evidence-set-v1.md +0 -0
  363. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/feedback/2026-07-06-ax1-moc1-agent-feedback.md +0 -0
  364. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/golden-path.md +0 -0
  365. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/handoff-packet-v1.md +0 -0
  366. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/master-trace-handoff.md +0 -0
  367. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/master-trace-intent-index.md +0 -0
  368. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/mcp-compatibility.md +0 -0
  369. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/mcp-manual-smoke-runbook.md +0 -0
  370. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/pcl-start.md +0 -0
  371. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/plan-v0.4.0.md +0 -0
  372. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/plan-v0.4.1.md +0 -0
  373. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/plan-v0.4.2.md +0 -0
  374. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/plan-v0.4.3.md +0 -0
  375. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/plh_v0_1_11_review_agenda.md +0 -0
  376. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/plh_v0_1_12_review_agenda.md +0 -0
  377. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/project-loop-harness-v0.2.3-third-party-review.md +0 -0
  378. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/pypi-publishing.md +0 -0
  379. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/recovery-playbook.md +0 -0
  380. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/release-checklist.md +0 -0
  381. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/release-notes/v0.2.4.md +0 -0
  382. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/release-notes/v0.3.0.md +0 -0
  383. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/release-notes/v0.3.1.md +0 -0
  384. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/release-notes/v0.3.3.md +0 -0
  385. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/release-notes/v0.4.0.md +0 -0
  386. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/release-notes/v0.4.1.md +0 -0
  387. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/release-notes/v0.4.2.md +0 -0
  388. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/releases/v0.3.1-baseline.md +0 -0
  389. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/releases/v0.3.3-mcp-stdio.md +0 -0
  390. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/roadmap/integrated/00-executive-roadmap.md +0 -0
  391. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/roadmap/integrated/01-adaptive-loop-architecture.md +0 -0
  392. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/roadmap/integrated/03-implementation-plan.md +0 -0
  393. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/roadmap/integrated/04-evaluation-and-rollout.md +0 -0
  394. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/roadmap/integrated/05-pdm-discussion-guide.md +0 -0
  395. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/roadmap/integrated/06-cli-contract-draft.md +0 -0
  396. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/roadmap/integrated/07-state-machines-and-events.md +0 -0
  397. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/roadmap/integrated/08-repository-integration.md +0 -0
  398. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/roadmap/integrated/09-ai-plc-integration-mapping.md +0 -0
  399. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/roadmap/integrated/README.md +0 -0
  400. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/roadmap/integrated/SOURCE_BASIS.md +0 -0
  401. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/roadmap/integrated/VALIDATION_REPORT.md +0 -0
  402. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/roadmap/integrated/adr/ADR-001-profile-not-entity.md +0 -0
  403. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/roadmap/integrated/adr/ADR-002-transactional-audit-outbox.md +0 -0
  404. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/roadmap/integrated/adr/ADR-003-adaptive-policy-axes.md +0 -0
  405. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/roadmap/integrated/adr/ADR-004-contract-first-promotion.md +0 -0
  406. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/roadmap/integrated/agent-tasks-proposed/0123-release-v0-3-1-baseline.md +0 -0
  407. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/roadmap/integrated/agent-tasks-proposed/0124-mcp-stdio-framing-negotiation.md +0 -0
  408. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/roadmap/integrated/agent-tasks-proposed/0125-mcp-external-conformance.md +0 -0
  409. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/roadmap/integrated/agent-tasks-proposed/0126-transactional-audit-outbox-design.md +0 -0
  410. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/roadmap/integrated/agent-tasks-proposed/0127-event-outbox-jsonl-projector.md +0 -0
  411. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/roadmap/integrated/agent-tasks-proposed/0128-audit-check-repair-rebuild.md +0 -0
  412. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/roadmap/integrated/agent-tasks-proposed/0129-crash-concurrency-test-suite.md +0 -0
  413. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/roadmap/integrated/agent-tasks-proposed/0130-guarded-executor-hardening.md +0 -0
  414. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/roadmap/integrated/agent-tasks-proposed/0131-completion-packet-v1-contract.md +0 -0
  415. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/roadmap/integrated/agent-tasks-proposed/0132-finish-emits-completion-packet.md +0 -0
  416. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/roadmap/integrated/agent-tasks-proposed/0133-lite-pcl-start.md +0 -0
  417. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/roadmap/integrated/agent-tasks-proposed/0134-handoff-packet-pcl-resume.md +0 -0
  418. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/roadmap/integrated/agent-tasks-proposed/0135-work-brief-v1-evidence.md +0 -0
  419. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/roadmap/integrated/agent-tasks-proposed/0136-deterministic-route-recommendation.md +0 -0
  420. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/roadmap/integrated/agent-tasks-proposed/0137-adaptive-policy-explain-override.md +0 -0
  421. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/roadmap/integrated/agent-tasks-proposed/0138-work-brief-revision-replan.md +0 -0
  422. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/roadmap/integrated/agent-tasks-proposed/0139-stale-invalidation-propagation.md +0 -0
  423. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/roadmap/integrated/agent-tasks-proposed/0140-verifier-provenance-separation.md +0 -0
  424. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/roadmap/integrated/agent-tasks-proposed/0141-risk-based-verification-policy.md +0 -0
  425. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/roadmap/integrated/agent-tasks-proposed/0142-profile-contract-boundary.md +0 -0
  426. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/roadmap/integrated/agent-tasks-proposed/0143-discovery-reference-profile.md +0 -0
  427. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/roadmap/integrated/agent-tasks-proposed/0144-decision-proposal-human-selection.md +0 -0
  428. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/roadmap/integrated/agent-tasks-proposed/0145-master-trace-handoff-integration.md +0 -0
  429. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/roadmap/integrated/agent-tasks-proposed/0146-capability-profile-v0.md +0 -0
  430. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/roadmap/integrated/agent-tasks-proposed/0147-budget-profile-incomplete-packet.md +0 -0
  431. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/roadmap/integrated/agent-tasks-proposed/0148-context-cache-delta-handoff.md +0 -0
  432. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/roadmap/integrated/agent-tasks-proposed/0149-knowledge-proposal-experiment.md +0 -0
  433. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/roadmap/integrated/agent-tasks-proposed/0150-cross-model-evaluation-harness.md +0 -0
  434. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/roadmap/integrated/agent-tasks-proposed/0151-design-partner-operations.md +0 -0
  435. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/roadmap/integrated/agent-tasks-proposed/0152-adoption-stability-release.md +0 -0
  436. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/roadmap/integrated/agent-tasks-proposed/README.md +0 -0
  437. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/roadmap/integrated/handoff/ARCHITECTURE_REVIEW_PROMPT.md +0 -0
  438. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/roadmap/integrated/handoff/IMPLEMENTATION_AGENT_PROMPT.md +0 -0
  439. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/roadmap/integrated/handoff/PDM_REVIEW_PROMPT.md +0 -0
  440. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/route-recommendation-v1.md +0 -0
  441. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/safety-permissions.md +0 -0
  442. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/v0.2.0-plan.md +0 -0
  443. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/verification-feedback-design.md +0 -0
  444. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/verification-feedback.md +0 -0
  445. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/verification-rubric.md +0 -0
  446. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/work-brief-v1.md +0 -0
  447. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/docs/workflow-contract.md +0 -0
  448. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/scripts/run_advisory_retrieval_eval.py +0 -0
  449. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/scripts/verify_sdist_contracts.py +0 -0
  450. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/setup.cfg +0 -0
  451. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/__main__.py +0 -0
  452. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/adaptive_policy.py +0 -0
  453. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/agents.py +0 -0
  454. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/approval_provenance.py +0 -0
  455. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/checkpoints.py +0 -0
  456. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/code_context/__init__.py +0 -0
  457. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/code_context/diff.py +0 -0
  458. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/code_context/eval.py +0 -0
  459. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/code_context/impact.py +0 -0
  460. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/code_context/receipts.py +0 -0
  461. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/code_context/scan.py +0 -0
  462. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/code_context/search.py +0 -0
  463. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/code_context/store.py +0 -0
  464. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/code_context/summary.py +0 -0
  465. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/code_context/symbols.py +0 -0
  466. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/code_context/test_hints.py +0 -0
  467. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/code_index.py +0 -0
  468. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/completion_policies.py +0 -0
  469. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/context.py +0 -0
  470. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/context_binding.py +0 -0
  471. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/context_usage.py +0 -0
  472. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/contracts/completion_policy.py +0 -0
  473. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/contracts/evidence_set.py +0 -0
  474. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/contracts/handoff_packet.py +0 -0
  475. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/contracts/policies/adaptive-policy-v1-default.json +0 -0
  476. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/contracts/route_override.py +0 -0
  477. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/contracts/route_recommendation.py +0 -0
  478. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/contracts/schemas/adaptive-policy-resolution-v1.schema.json +0 -0
  479. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/contracts/schemas/completion-policy-v1.schema.json +0 -0
  480. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/contracts/schemas/evidence-set-v1.schema.json +0 -0
  481. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/contracts/schemas/handoff-packet-v1.schema.json +0 -0
  482. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/contracts/schemas/route-override-v1.schema.json +0 -0
  483. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/contracts/schemas/route-recommendation-v1.schema.json +0 -0
  484. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/contracts/schemas/work-brief-v1.schema.json +0 -0
  485. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/contracts/work_brief.py +0 -0
  486. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/db/migrations/001_initial.sql +0 -0
  487. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/db/migrations/002_tasks.sql +0 -0
  488. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/db/migrations/003_agent_registry.sql +0 -0
  489. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/db/migrations/004_code_index.sql +0 -0
  490. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/db/migrations/005_verification_feedback.sql +0 -0
  491. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/db/migrations/006_evidence_task_link.sql +0 -0
  492. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/db/migrations/007_evidence_links.sql +0 -0
  493. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/db/migrations/008_event_outbox.sql +0 -0
  494. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/db/schema.sql +0 -0
  495. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/db.py +0 -0
  496. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/dispatch.py +0 -0
  497. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/escalations.py +0 -0
  498. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/evidence_sets.py +0 -0
  499. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/exporters.py +0 -0
  500. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/guarded_process.py +0 -0
  501. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/guards.py +0 -0
  502. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/ids.py +0 -0
  503. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/kpi_report.py +0 -0
  504. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/lifecycle.py +0 -0
  505. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/lifecycle_repair.py +0 -0
  506. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/links.py +0 -0
  507. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/locks.py +0 -0
  508. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/mcp_server.py +0 -0
  509. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/migrations.py +0 -0
  510. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/outbox.py +0 -0
  511. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/paths.py +0 -0
  512. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/receipt_show.py +0 -0
  513. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/redaction.py +0 -0
  514. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/registry.py +0 -0
  515. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/relationship_repair.py +0 -0
  516. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/reports.py +0 -0
  517. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/resources.py +0 -0
  518. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/resume.py +0 -0
  519. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/route_overrides.py +0 -0
  520. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/routing.py +0 -0
  521. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/rubric.py +0 -0
  522. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/stories.py +0 -0
  523. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/tasks.py +0 -0
  524. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/templates/project/AGENTS.block.md +0 -0
  525. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/templates/project/CLAUDE.block.md +0 -0
  526. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/templates/project/gitignore.fragment +0 -0
  527. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/templates/project/pcl.yaml +0 -0
  528. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/templates/workflows/defect_repair.yaml +0 -0
  529. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/templates/workflows/executor_smoke.yaml +0 -0
  530. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/templates/workflows/feature_coverage.yaml +0 -0
  531. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/templates/workflows/regression_loop.yaml +0 -0
  532. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/test_faults.py +0 -0
  533. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/timeutil.py +0 -0
  534. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/token_estimation.py +0 -0
  535. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/update_check.py +0 -0
  536. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/verification_feedback.py +0 -0
  537. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/verifications.py +0 -0
  538. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/work_briefs.py +0 -0
  539. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/workflow_executor.py +0 -0
  540. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/workflow_proposal_validation.py +0 -0
  541. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/workflow_proposals.py +0 -0
  542. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/workflow_verifier.py +0 -0
  543. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/workflow_yaml.py +0 -0
  544. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/pcl/workflows.py +0 -0
  545. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/project_loop_harness.egg-info/dependency_links.txt +0 -0
  546. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/project_loop_harness.egg-info/entry_points.txt +0 -0
  547. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/project_loop_harness.egg-info/requires.txt +0 -0
  548. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/src/project_loop_harness.egg-info/top_level.txt +0 -0
  549. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/baseline_fixture_tools.py +0 -0
  550. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/fixtures/code_context_summary_v0.json +0 -0
  551. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/fixtures/completion_packet/full.json +0 -0
  552. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/fixtures/completion_packet/minimal.json +0 -0
  553. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/fixtures/completion_packet/negative-budget-next-action.json +0 -0
  554. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/fixtures/completion_packet/negative-cases.json +0 -0
  555. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/fixtures/completion_packet/negative-critical-proof.json +0 -0
  556. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/fixtures/completion_packet/negative-passed-result.json +0 -0
  557. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/fixtures/completion_policy/minimal.json +0 -0
  558. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/fixtures/context_pack_code_context_contract_v0.json +0 -0
  559. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/fixtures/context_receipt_v0.json +0 -0
  560. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/fixtures/context_receipt_v0_legacy_string_suggestions.json +0 -0
  561. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/fixtures/cross_skill_dogfood/complete/reports/completion_verdict.json +0 -0
  562. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/fixtures/cross_skill_dogfood/complete/reports/coordinate_report.json +0 -0
  563. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/fixtures/cross_skill_dogfood/complete/reports/report-manifest.json +0 -0
  564. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/fixtures/cross_skill_dogfood/complete/reports/responsive_report.json +0 -0
  565. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/fixtures/cross_skill_dogfood/completion-policy.json +0 -0
  566. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/fixtures/cross_skill_dogfood/incomplete/reports/completion_verdict.json +0 -0
  567. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/fixtures/cross_skill_dogfood/incomplete/reports/coordinate_report.json +0 -0
  568. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/fixtures/cross_skill_dogfood/incomplete/reports/report-manifest.json +0 -0
  569. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/fixtures/cross_skill_dogfood/incomplete/reports/responsive_report.json +0 -0
  570. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/fixtures/evidence_set/minimal.json +0 -0
  571. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/fixtures/evidence_set/report-manifest.json +0 -0
  572. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/fixtures/evidence_set/visual-check.json +0 -0
  573. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/fixtures/handoff_packet/minimal.json +0 -0
  574. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/fixtures/kpi_report_empty_v1.json +0 -0
  575. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/fixtures/lifecycle_repair/all_classifications_v1.json +0 -0
  576. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/fixtures/master_trace_context_contract_v0.json +0 -0
  577. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/fixtures/retrieval_adversarial_v0.json +0 -0
  578. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/fixtures/retrieval_real_history_v0.json +0 -0
  579. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/fixtures/retrieval_v0.json +0 -0
  580. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/fixtures/v0.3.1-baseline/snapshots/context-check-help.json +0 -0
  581. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/fixtures/v0.3.1-baseline/snapshots/empty-context-check-json.json +0 -0
  582. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/fixtures/v0.3.1-baseline/snapshots/empty-next-json.json +0 -0
  583. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/fixtures/v0.3.1-baseline/snapshots/empty-render-json.json +0 -0
  584. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/fixtures/v0.3.1-baseline/snapshots/empty-validate-strict-json.json +0 -0
  585. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/fixtures/v0.3.1-baseline/snapshots/next-help.json +0 -0
  586. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/fixtures/v0.3.1-baseline/snapshots/render-help.json +0 -0
  587. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/fixtures/v0.3.1-baseline/snapshots/representative-context-check-json.json +0 -0
  588. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/fixtures/v0.3.1-baseline/snapshots/representative-next-json.json +0 -0
  589. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/fixtures/v0.3.1-baseline/snapshots/representative-render-json.json +0 -0
  590. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/fixtures/v0.3.1-baseline/snapshots/representative-validate-strict-json.json +0 -0
  591. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/fixtures/v0.3.1-baseline/snapshots/validate-help.json +0 -0
  592. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/fixtures/work_brief/minimal.json +0 -0
  593. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/fixtures/work_brief/negative-embedded-route.json +0 -0
  594. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/mcp/conftest.py +0 -0
  595. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/mcp/fixtures/negative-matrix.json +0 -0
  596. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/mcp/test_external_conformance.py +0 -0
  597. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/test_adaptive_policy.py +0 -0
  598. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/test_advisory_retrieval_eval_script.py +0 -0
  599. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/test_agent_adapter_contract.py +0 -0
  600. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/test_agent_output_validation.py +0 -0
  601. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/test_agents.py +0 -0
  602. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/test_audit_commands.py +0 -0
  603. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/test_audit_log_integrity.py +0 -0
  604. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/test_baseline_fixtures.py +0 -0
  605. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/test_checkpoints.py +0 -0
  606. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/test_claude_manual_adapter.py +0 -0
  607. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/test_code_context_summary.py +0 -0
  608. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/test_code_index.py +0 -0
  609. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/test_codex_exec_adapter.py +0 -0
  610. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/test_completion_packet_contract.py +0 -0
  611. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/test_completion_packet_package.py +0 -0
  612. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/test_completion_policy.py +0 -0
  613. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/test_context.py +0 -0
  614. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/test_context_check.py +0 -0
  615. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/test_contract_cli.py +0 -0
  616. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/test_crash_concurrency.py +0 -0
  617. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/test_cross_skill_integrity_dogfood.py +0 -0
  618. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/test_dashboard_data_contract.py +0 -0
  619. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/test_decisions.py +0 -0
  620. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/test_defects.py +0 -0
  621. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/test_dispatch.py +0 -0
  622. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/test_escalations.py +0 -0
  623. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/test_event_outbox.py +0 -0
  624. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/test_evidence_sets.py +0 -0
  625. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/test_examples.py +0 -0
  626. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/test_execution_provenance.py +0 -0
  627. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/test_features.py +0 -0
  628. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/test_generic_shell_adapter.py +0 -0
  629. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/test_golden_path.py +0 -0
  630. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/test_guarded_process.py +0 -0
  631. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/test_handoff_packet_contract.py +0 -0
  632. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/test_integrity_migration_dogfood.py +0 -0
  633. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/test_kpi_report.py +0 -0
  634. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/test_lifecycle.py +0 -0
  635. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/test_lifecycle_integrity.py +0 -0
  636. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/test_lifecycle_repair.py +0 -0
  637. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/test_locks.py +0 -0
  638. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/test_mcp_server.py +0 -0
  639. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/test_migrations.py +0 -0
  640. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/test_next_actions.py +0 -0
  641. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/test_pypi_publishing.py +0 -0
  642. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/test_receipt_show.py +0 -0
  643. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/test_recovery_playbook.py +0 -0
  644. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/test_registry.py +0 -0
  645. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/test_reports.py +0 -0
  646. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/test_resume.py +0 -0
  647. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/test_route_overrides.py +0 -0
  648. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/test_route_recommendation.py +0 -0
  649. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/test_rubric.py +0 -0
  650. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/test_stories.py +0 -0
  651. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/test_tasks.py +0 -0
  652. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/test_update_check.py +0 -0
  653. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/test_validation.py +0 -0
  654. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/test_validation_diagnostics.py +0 -0
  655. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/test_validation_finding_sources.py +0 -0
  656. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/test_work_briefs.py +0 -0
  657. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/test_workflow_executor.py +0 -0
  658. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/test_workflow_proposals.py +0 -0
  659. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/test_workflow_verifier.py +0 -0
  660. {project_loop_harness-0.4.3 → project_loop_harness-0.5.0}/tests/test_workflows.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: project-loop-harness
3
- Version: 0.4.3
3
+ Version: 0.5.0
4
4
  Summary: Local control plane for agentic project development loops
5
5
  Author: Project Loop Harness Contributors
6
6
  License: MIT
@@ -34,23 +34,77 @@ Dynamic: license-file
34
34
 
35
35
  # Project Loop Harness
36
36
 
37
- Project Loop Harness is a local control plane for coding agents.
37
+ > A local, model-neutral control plane that turns an agent's “done” into
38
+ > reviewable Evidence, verification status, residual risk, and a resumable next
39
+ > step.
38
40
 
39
- It is not just an Agent Skill. The core product is `pcl`, a small local CLI/runtime that gives Codex, Claude Code, and similar agents a guarded project-scoped loop: durable state in SQLite, append-only audit events in JSONL, generated prompts and evidence, strict validation, human-readable reports, and a deterministic dashboard.
41
+ ## Understand it in 30 seconds
40
42
 
41
- ## Quick Start
43
+ Coding agents are good at producing changes. They are less reliable at
44
+ remembering project state, proving completion, stopping at human decisions, and
45
+ handing work to another session or model.
42
46
 
43
- Install the published `pcl` CLI/runtime from PyPI with `pipx`:
47
+ Project Loop Harness (`pcl`) gives Codex, Claude Code, and similar agents a
48
+ shared local state machine:
49
+
50
+ - SQLite keeps current state; JSONL keeps an auditable event projection.
51
+ - Tests, artifacts, reviews, and completion packets preserve what “done” means.
52
+ - Agents continue routine safe work; humans are asked only for genuine product,
53
+ permission, security, destructive, or external-service decisions.
54
+ - The runtime does not call an LLM and does not depend on one agent vendor.
55
+
56
+ It is designed for people coordinating multiple coding agents, not as another
57
+ single-agent chat wrapper.
58
+
59
+ ## Get first value in five minutes
60
+
61
+ ### One-time operator setup
62
+
63
+ Install the runtime, inspect the adoption plan, and initialize the repository:
44
64
 
45
65
  ```bash
46
66
  pipx install project-loop-harness
47
- pcl --version
48
- pcl --help
67
+ cd /path/to/your-project
68
+ pcl init --dry-run --json
69
+ pcl init
49
70
  ```
50
71
 
72
+ `pcl init` retains existing `AGENTS.md`, `CLAUDE.md`, and `.gitignore` content
73
+ and appends its marked instruction block once. It also preserves an existing
74
+ `pcl.yaml` by default. `--force` can replace generated templates such as
75
+ `pcl.yaml`, workflows, the bundled Skill, and dashboard files; it does not
76
+ replace existing project-instruction content. See the
77
+ [Adoption Guide](docs/adoption-guide.md) for the exact file boundary.
78
+
79
+ ### After setup, tell the agent the outcome you want
80
+
81
+ Copy this into Cockpit, Codex, Claude Code, or another coding-agent session:
82
+
83
+ ```text
84
+ Read AGENTS.md, CLAUDE.md if present, and pcl.yaml. Use the Project Control
85
+ Loop. Start this goal: <describe the outcome>. Continue every agent-safe next
86
+ action, run the configured checks, preserve evidence, emit a completion packet,
87
+ and close the goal. Do not ask me to run routine pcl commands. Stop only for a
88
+ genuine human decision or external blocker.
89
+ ```
90
+
91
+ The agent owns the routine `pcl start → implementation → finish → close` flow.
92
+ The operator uses the CLI during setup or deliberate maintenance, not to
93
+ manually advance every task.
94
+
95
+ The project remains local-only by default. No telemetry, provider call, cloud
96
+ sync, or automatic GitHub write is enabled by initialization.
97
+
98
+ ## Install and inspect in more detail
99
+
51
100
  Use `python -m pip install project-loop-harness` when installing inside a
52
101
  project-specific virtual environment or CI job instead of exposing the command
53
- globally.
102
+ globally. Confirm the installed runtime with:
103
+
104
+ ```bash
105
+ pcl --version
106
+ pcl --help
107
+ ```
54
108
 
55
109
  For unreleased changes, install from a pinned GitHub tag or commit:
56
110
 
@@ -85,6 +139,10 @@ advisory warning alongside normal harness health checks. Set
85
139
  Then ask your coding agent to read `AGENTS.md`, `CLAUDE.md` if present, and
86
140
  `pcl.yaml`, run `pcl next --json`, and follow the next safe harness action.
87
141
 
142
+ Compatibility promises for JSON contracts, typed errors, migrations, and
143
+ internal surfaces are documented in the
144
+ [Alpha Stability Policy](docs/stability-policy.md).
145
+
88
146
  ## Mental Model
89
147
 
90
148
  ```text
@@ -289,6 +347,39 @@ resolution as separate hash-bound Evidence. Task context, completion packets,
289
347
  and resume handoffs expose additive references without rewriting historical
290
348
  artifacts.
291
349
 
350
+ ## Council Profile (opt-in)
351
+
352
+ Council is an external advisory boundary for ambiguous or high-risk work. It is
353
+ not a model provider, executor, verifier, approval, or replacement for Direct.
354
+ The Core prepares a deterministic request, validates and stores returned bytes,
355
+ and keeps any proposed choice behind a human Decision:
356
+
357
+ ```bash
358
+ pcl --json profile list
359
+ pcl --json profile prepare council.discovery --target task:T-0001 --brief E-0001 \
360
+ --output /tmp/council-request.json
361
+ pcl --json profile fixture-run --request /tmp/council-request.json --status completed \
362
+ --output-dir /tmp/council-output
363
+ pcl --json profile ingest --request /tmp/council-request.json \
364
+ --bundle /tmp/council-output/profile-output-bundle.json --dry-run
365
+ pcl --json profile ingest --request /tmp/council-request.json \
366
+ --bundle /tmp/council-output/profile-output-bundle.json
367
+ ```
368
+
369
+ Real network or paid execution is outside Core and requires a hash-bound human
370
+ authorization. `pcl profile authorize` only emits an authorized request; it
371
+ never runs a provider. Revoke an authorization through the governed CLI, never
372
+ by editing SQLite:
373
+
374
+ ```bash
375
+ pcl --json profile authorize --revoke EV-XXXXXXXXXXXX --actor "human:owner" \
376
+ --recorded-by "agent:codex" --source-kind cockpit \
377
+ --source-ref "cockpit:<task-id>" --reason "Withdraw provider scope"
378
+ ```
379
+
380
+ See [docs/council-profile.md](docs/council-profile.md) for the operator flow,
381
+ privacy boundary, status handling, and adoption constraints.
382
+
292
383
  ## Evidence Sets
293
384
 
294
385
  Use `evidence-set/v1` when one passing artifact is not enough and the target
@@ -509,10 +600,14 @@ pcl report run --root /tmp/pcl-demo WR-0001
509
600
  pcl report feature --root /tmp/pcl-demo F-0001
510
601
  pcl report defect --root /tmp/pcl-demo D-0001
511
602
  pcl report validation --root /tmp/pcl-demo --strict
603
+ pcl report skill-usage --since 2026-07-01 --json
512
604
  pcl render --root /tmp/pcl-demo
513
605
  ```
514
606
 
515
- Reports are written to `.project-loop/reports/`. The dashboard writes:
607
+ Entity and validation reports are written to `.project-loop/reports/`.
608
+ `report skill-usage` is read-only and prints its privacy-safe aggregate to
609
+ stdout unless `--output` is explicit; see [Local Skill usage report](docs/skill-usage-report.md).
610
+ The dashboard writes:
516
611
 
517
612
  ```text
518
613
  .project-loop/dashboard/dashboard-data.json
@@ -527,6 +622,17 @@ flag, `pcl render` reads `dashboard.locale` from `pcl.yaml` and then falls back
527
622
  to English. The locale affects only `dashboard.html`; `dashboard-data.json`
528
623
  keys and values stay English for agents and integrations.
529
624
 
625
+ The dashboard opens with a simple operator view: **Now, Done, Next, Human
626
+ needed, and Risks**. `Done` lists only evidence-backed terminal records; it does
627
+ not turn a status label into a success claim. Counters, commands, queues, and
628
+ entity tables remain available under **Detailed Project Loop information**.
629
+
630
+ Agents should render routinely but present the dashboard only after plan
631
+ approval, at a major milestone, when a human decision blocks progress, and
632
+ after goal closure. When the host provides a visual or file panel, the agent
633
+ opens it and explains what to review; otherwise it provides the generated path.
634
+ The human should not need to remember when to ask for the dashboard.
635
+
530
636
  If validation fails or generated artifacts look stale, use [docs/recovery-playbook.md](docs/recovery-playbook.md) before continuing normal work.
531
637
 
532
638
  ## Example Projects
@@ -1,22 +1,76 @@
1
1
  # Project Loop Harness
2
2
 
3
- Project Loop Harness is a local control plane for coding agents.
3
+ > A local, model-neutral control plane that turns an agent's “done” into
4
+ > reviewable Evidence, verification status, residual risk, and a resumable next
5
+ > step.
4
6
 
5
- It is not just an Agent Skill. The core product is `pcl`, a small local CLI/runtime that gives Codex, Claude Code, and similar agents a guarded project-scoped loop: durable state in SQLite, append-only audit events in JSONL, generated prompts and evidence, strict validation, human-readable reports, and a deterministic dashboard.
7
+ ## Understand it in 30 seconds
6
8
 
7
- ## Quick Start
9
+ Coding agents are good at producing changes. They are less reliable at
10
+ remembering project state, proving completion, stopping at human decisions, and
11
+ handing work to another session or model.
8
12
 
9
- Install the published `pcl` CLI/runtime from PyPI with `pipx`:
13
+ Project Loop Harness (`pcl`) gives Codex, Claude Code, and similar agents a
14
+ shared local state machine:
15
+
16
+ - SQLite keeps current state; JSONL keeps an auditable event projection.
17
+ - Tests, artifacts, reviews, and completion packets preserve what “done” means.
18
+ - Agents continue routine safe work; humans are asked only for genuine product,
19
+ permission, security, destructive, or external-service decisions.
20
+ - The runtime does not call an LLM and does not depend on one agent vendor.
21
+
22
+ It is designed for people coordinating multiple coding agents, not as another
23
+ single-agent chat wrapper.
24
+
25
+ ## Get first value in five minutes
26
+
27
+ ### One-time operator setup
28
+
29
+ Install the runtime, inspect the adoption plan, and initialize the repository:
10
30
 
11
31
  ```bash
12
32
  pipx install project-loop-harness
13
- pcl --version
14
- pcl --help
33
+ cd /path/to/your-project
34
+ pcl init --dry-run --json
35
+ pcl init
15
36
  ```
16
37
 
38
+ `pcl init` retains existing `AGENTS.md`, `CLAUDE.md`, and `.gitignore` content
39
+ and appends its marked instruction block once. It also preserves an existing
40
+ `pcl.yaml` by default. `--force` can replace generated templates such as
41
+ `pcl.yaml`, workflows, the bundled Skill, and dashboard files; it does not
42
+ replace existing project-instruction content. See the
43
+ [Adoption Guide](docs/adoption-guide.md) for the exact file boundary.
44
+
45
+ ### After setup, tell the agent the outcome you want
46
+
47
+ Copy this into Cockpit, Codex, Claude Code, or another coding-agent session:
48
+
49
+ ```text
50
+ Read AGENTS.md, CLAUDE.md if present, and pcl.yaml. Use the Project Control
51
+ Loop. Start this goal: <describe the outcome>. Continue every agent-safe next
52
+ action, run the configured checks, preserve evidence, emit a completion packet,
53
+ and close the goal. Do not ask me to run routine pcl commands. Stop only for a
54
+ genuine human decision or external blocker.
55
+ ```
56
+
57
+ The agent owns the routine `pcl start → implementation → finish → close` flow.
58
+ The operator uses the CLI during setup or deliberate maintenance, not to
59
+ manually advance every task.
60
+
61
+ The project remains local-only by default. No telemetry, provider call, cloud
62
+ sync, or automatic GitHub write is enabled by initialization.
63
+
64
+ ## Install and inspect in more detail
65
+
17
66
  Use `python -m pip install project-loop-harness` when installing inside a
18
67
  project-specific virtual environment or CI job instead of exposing the command
19
- globally.
68
+ globally. Confirm the installed runtime with:
69
+
70
+ ```bash
71
+ pcl --version
72
+ pcl --help
73
+ ```
20
74
 
21
75
  For unreleased changes, install from a pinned GitHub tag or commit:
22
76
 
@@ -51,6 +105,10 @@ advisory warning alongside normal harness health checks. Set
51
105
  Then ask your coding agent to read `AGENTS.md`, `CLAUDE.md` if present, and
52
106
  `pcl.yaml`, run `pcl next --json`, and follow the next safe harness action.
53
107
 
108
+ Compatibility promises for JSON contracts, typed errors, migrations, and
109
+ internal surfaces are documented in the
110
+ [Alpha Stability Policy](docs/stability-policy.md).
111
+
54
112
  ## Mental Model
55
113
 
56
114
  ```text
@@ -255,6 +313,39 @@ resolution as separate hash-bound Evidence. Task context, completion packets,
255
313
  and resume handoffs expose additive references without rewriting historical
256
314
  artifacts.
257
315
 
316
+ ## Council Profile (opt-in)
317
+
318
+ Council is an external advisory boundary for ambiguous or high-risk work. It is
319
+ not a model provider, executor, verifier, approval, or replacement for Direct.
320
+ The Core prepares a deterministic request, validates and stores returned bytes,
321
+ and keeps any proposed choice behind a human Decision:
322
+
323
+ ```bash
324
+ pcl --json profile list
325
+ pcl --json profile prepare council.discovery --target task:T-0001 --brief E-0001 \
326
+ --output /tmp/council-request.json
327
+ pcl --json profile fixture-run --request /tmp/council-request.json --status completed \
328
+ --output-dir /tmp/council-output
329
+ pcl --json profile ingest --request /tmp/council-request.json \
330
+ --bundle /tmp/council-output/profile-output-bundle.json --dry-run
331
+ pcl --json profile ingest --request /tmp/council-request.json \
332
+ --bundle /tmp/council-output/profile-output-bundle.json
333
+ ```
334
+
335
+ Real network or paid execution is outside Core and requires a hash-bound human
336
+ authorization. `pcl profile authorize` only emits an authorized request; it
337
+ never runs a provider. Revoke an authorization through the governed CLI, never
338
+ by editing SQLite:
339
+
340
+ ```bash
341
+ pcl --json profile authorize --revoke EV-XXXXXXXXXXXX --actor "human:owner" \
342
+ --recorded-by "agent:codex" --source-kind cockpit \
343
+ --source-ref "cockpit:<task-id>" --reason "Withdraw provider scope"
344
+ ```
345
+
346
+ See [docs/council-profile.md](docs/council-profile.md) for the operator flow,
347
+ privacy boundary, status handling, and adoption constraints.
348
+
258
349
  ## Evidence Sets
259
350
 
260
351
  Use `evidence-set/v1` when one passing artifact is not enough and the target
@@ -475,10 +566,14 @@ pcl report run --root /tmp/pcl-demo WR-0001
475
566
  pcl report feature --root /tmp/pcl-demo F-0001
476
567
  pcl report defect --root /tmp/pcl-demo D-0001
477
568
  pcl report validation --root /tmp/pcl-demo --strict
569
+ pcl report skill-usage --since 2026-07-01 --json
478
570
  pcl render --root /tmp/pcl-demo
479
571
  ```
480
572
 
481
- Reports are written to `.project-loop/reports/`. The dashboard writes:
573
+ Entity and validation reports are written to `.project-loop/reports/`.
574
+ `report skill-usage` is read-only and prints its privacy-safe aggregate to
575
+ stdout unless `--output` is explicit; see [Local Skill usage report](docs/skill-usage-report.md).
576
+ The dashboard writes:
482
577
 
483
578
  ```text
484
579
  .project-loop/dashboard/dashboard-data.json
@@ -493,6 +588,17 @@ flag, `pcl render` reads `dashboard.locale` from `pcl.yaml` and then falls back
493
588
  to English. The locale affects only `dashboard.html`; `dashboard-data.json`
494
589
  keys and values stay English for agents and integrations.
495
590
 
591
+ The dashboard opens with a simple operator view: **Now, Done, Next, Human
592
+ needed, and Risks**. `Done` lists only evidence-backed terminal records; it does
593
+ not turn a status label into a success claim. Counters, commands, queues, and
594
+ entity tables remain available under **Detailed Project Loop information**.
595
+
596
+ Agents should render routinely but present the dashboard only after plan
597
+ approval, at a major milestone, when a human decision blocks progress, and
598
+ after goal closure. When the host provides a visual or file panel, the agent
599
+ opens it and explains what to review; otherwise it provides the generated path.
600
+ The human should not need to remember when to ask for the dashboard.
601
+
496
602
  If validation fails or generated artifacts look stale, use [docs/recovery-playbook.md](docs/recovery-playbook.md) before continuing normal work.
497
603
 
498
604
  ## Example Projects
@@ -0,0 +1,55 @@
1
+ # 0154: Profile boundary ADR and proposal contract freeze
2
+
3
+ - **Status:** Done; ADR accepted by human owner on 2026-07-12
4
+ - **Milestone:** v0.5.0 Council Profile
5
+ - **Priority:** P0
6
+ - **Size:** M
7
+ - **Dependencies:** 0153b; human Accept/Modify/Reject of the Profile boundary
8
+ - **DB schema:** no change
9
+
10
+ ## Goal
11
+
12
+ Freeze the model-independent PLH/external-runner boundary and the seven
13
+ artifact shapes before adding runtime Profile behavior.
14
+
15
+ ## Scope
16
+
17
+ - Add ADR-005 and the Council proposal under `docs/proposals/council-profile/`.
18
+ - Add seven proposal schemas plus canonical positive and targeted negative
19
+ fixtures outside the runtime package.
20
+ - Resolve the unshipped `decision-proposal/v0` shape conflict in the integrated
21
+ roadmap and update its example/references atomically.
22
+ - Record canonical JSON/digest, status, path, size, and cross-reference rules.
23
+ - Define request-basis digest and embedded `approval-provenance/v1` binding for
24
+ paid/network authorization without a circular request digest.
25
+ - Freeze exact request-basis exclusions for generated time and context receipt
26
+ age fields while retaining receipt timestamps, source refs, and hashes.
27
+ - Define project fingerprint inputs and confirm only the digest is emitted.
28
+ - Define how `claim-set/v0` classes map to normal Evidence, Verification,
29
+ Decision, Work Brief, residual risk, and completion-packet boundaries.
30
+ - Record the terminology contract: route profile, runner Profile ID, and role
31
+ profile use distinct JSON fields, help text, and error language.
32
+ - Record that MVP is v0.5.0, built-in-only, schema 8, and strict-human-gated.
33
+
34
+ ## Invariants
35
+
36
+ - No runtime Profile command, provider code, network, credential, external
37
+ execution, DB migration, or state mutation.
38
+ - No two incompatible shapes remain documented under one contract version.
39
+ - Model judgment is never deterministic proof.
40
+
41
+ ## Acceptance
42
+
43
+ 1. ADR has an explicit human outcome.
44
+ 2. Seven schemas are valid JSON, declare Draft 2020-12, and have canonical
45
+ examples plus a validation transcript. Runtime conformance is implemented
46
+ by 0155 standard-library validators; no dependency is added.
47
+ 3. Negative fixtures cover unknown fields, unsupported versions, bad status,
48
+ bad references, and invalid digest/path declarations.
49
+ 4. The old decision-proposal draft has a visible supersession note.
50
+ 5. Authorized-policy fixtures prove any semantic request change invalidates the
51
+ approval binding.
52
+ 6. Candidate and authorized requests built at different wall-clock times have
53
+ the same basis digest when semantic state is unchanged.
54
+ 7. Claim-to-proof and terminology mappings have no implicit promotion path.
55
+ 8. `ruff check .` and full `pytest` pass without dependency changes.
@@ -0,0 +1,44 @@
1
+ # 0155: Profile contract runtime and built-in registry
2
+
3
+ - **Status:** Done
4
+ - **Milestone:** v0.5.0 Council Profile
5
+ - **Priority:** P0
6
+ - **Size:** L
7
+ - **Dependencies:** 0154 contract freeze
8
+ - **DB schema:** no change
9
+
10
+ ## Goal
11
+
12
+ Package standard-library validators and expose a deterministic, non-executable
13
+ registry for the built-in `council.discovery` manifest.
14
+
15
+ ## Scope
16
+
17
+ - Add one current-convention validator module and packaged schema per contract.
18
+ - Export contracts through `src/pcl/contracts/__init__.py`.
19
+ - Add `src/pcl/profiles.py` and a package-data built-in manifest.
20
+ - Add `pcl profile list/show/validate` in text and JSON modes.
21
+ - Use `route_profile`, `runner_profile_id`, and `role_profile` consistently in
22
+ public JSON/help/errors; snapshot help text that explains the distinction.
23
+ - Reject unknown keys/versions, duplicate IDs, invalid capabilities, missing
24
+ package data, and executable hooks.
25
+ - Enforce mediated approval recording: an agent/system recorder of a human
26
+ action requires conversation/Cockpit source provenance and a non-empty
27
+ source ref.
28
+ - Enforce the frozen authorization data-class mapping and provider/cost scope;
29
+ JSON Schema shape conformance alone is insufficient.
30
+
31
+ ## Invariants
32
+
33
+ - Built-in only; arbitrary filesystem discovery is unsupported.
34
+ - Manifest is data-only and cannot import or invoke code.
35
+ - No provider SDK, runtime dependency, state mutation, or hidden network call.
36
+ - Discovery and finding order are deterministic.
37
+
38
+ ## Acceptance
39
+
40
+ 1. Canonical and negative contract fixtures pass manual validators.
41
+ 2. list/show/validate have stable JSON and text snapshots.
42
+ 3. Wheel/sdist contain every schema and the manifest.
43
+ 4. Clean-wheel commands run without source checkout or network.
44
+ 5. Existing CLI snapshots and full test suite pass.
@@ -0,0 +1,49 @@
1
+ # 0156: Deterministic read-only Profile request preparation
2
+
3
+ - **Status:** Done
4
+ - **Milestone:** v0.5.0 Council Profile
5
+ - **Priority:** P0
6
+ - **Size:** L
7
+ - **Dependencies:** 0155
8
+ - **DB schema:** no change
9
+
10
+ ## Goal
11
+
12
+ Build `profile-run-request/v1` from current PLH state without invoking a runner
13
+ or mutating project state.
14
+
15
+ ## Scope
16
+
17
+ - Add `pcl profile prepare <id> --target type:ID [--brief E-ID] [--output]`.
18
+ - Resolve one healthy Work Brief candidate, effective route, adaptive policy,
19
+ context payload, and linked Evidence hashes.
20
+ - Allow an unapproved Brief for Discovery but label it; require `--brief` when
21
+ candidates are ambiguous.
22
+ - Bind manifest, project fingerprint, target, Brief, route/override, policy,
23
+ context, limits, data policy, and request digest.
24
+ - Compute a stable request-basis digest. Without matching authorization,
25
+ paid/network policy returns a candidate request plus `human_required` and
26
+ does not claim permission.
27
+ - Normalize generated time and receipt-age presentation fields using the exact
28
+ 0154 pointer list while retaining underlying receipts and source hashes.
29
+ - Compute the project fingerprint from local root/config/schema/Git inputs and
30
+ emit only the digest plus project basename.
31
+
32
+ ## Invariants
33
+
34
+ - No SQLite, event, outbox, Evidence, report, dashboard, or route mutation.
35
+ - `--output` writes only the named request file.
36
+ - No absolute project root, dashboard HTML, database, secret, or transcript.
37
+ - Route mismatch fails and points to existing audited override commands.
38
+
39
+ ## Acceptance
40
+
41
+ 1. Reverse-order data reads and different wall-clock execution produce the same
42
+ basis digest when semantic state is unchanged.
43
+ 2. Before/after DB, JSONL, Evidence, report, and dashboard hashes are unchanged.
44
+ 3. Missing/ambiguous Brief, route mismatch, approval, and context-budget errors
45
+ are stable and repairable.
46
+ 4. Root path and secret sentinels are absent.
47
+ 5. Paid/network policy cannot become allowed without a matching authorization
48
+ event; the offline path remains fully usable before 0159.
49
+ 6. Targeted and full suites pass.
@@ -0,0 +1,52 @@
1
+ # 0157: Profile bundle validation and dry-run planner
2
+
3
+ - **Status:** Done
4
+ - **Milestone:** v0.5.0 Council Profile
5
+ - **Priority:** P0
6
+ - **Size:** L
7
+ - **Dependencies:** 0156
8
+ - **DB schema:** no change
9
+
10
+ ## Goal
11
+
12
+ Validate an externally produced bundle and return a deterministic mutation plan
13
+ without copying files or touching PLH state.
14
+
15
+ ## Scope
16
+
17
+ - Add `pcl profile ingest --request ... --bundle ... --dry-run`.
18
+ - Enforce parse/size limits before schema validation and reject duplicate keys.
19
+ - Validate request/project/target/manifest binding, bundle digest/status,
20
+ listed paths, parents, symlinks, case-fold collisions, files, sizes, hashes,
21
+ contracts, and cross-references.
22
+ - Return exact planned Evidence/link/Decision/event counts and next action.
23
+ - Add valid status fixtures and a comprehensive invalid corpus.
24
+
25
+ ## Invariants
26
+
27
+ - Dry-run is entirely read-only and ignores unlisted neighboring files.
28
+ - Verification-plan commands are data and are never executed.
29
+ - Findings and repair guidance are stable and deterministically ordered.
30
+ - `partial`, `budget_exhausted`, and `failed` are never execution-ready.
31
+
32
+ ## Acceptance
33
+
34
+ 1. Valid fixtures yield stable plans and next actions.
35
+ 2. Every invalid fixture fails with zero filesystem/DB/event mutation.
36
+ 3. Path traversal, absolute/UNC/drive paths, symlinks, case collisions,
37
+ hash/size drift, bad status, and cross-reference errors are covered.
38
+ 4. Bundle/request limits are enforced before expensive parsing/hashing.
39
+ 5. Targeted and full suites pass.
40
+
41
+ ## Implementation evidence
42
+
43
+ - `src/pcl/profile_ingest.py` validates request/bundle bindings, bounded strict
44
+ JSON, listed artifact bytes, safe paths, contracts, and cross-references.
45
+ - `pcl profile ingest --request ... --bundle ... --dry-run` returns a stable,
46
+ exact mutation plan without copying files or executing runner/verification
47
+ commands.
48
+ - `tests/fixtures/profile_bundle/cases.json` and
49
+ `tests/test_profile_ingest_dry_run.py` cover all six statuses and the invalid
50
+ corpus, with before/after state snapshots.
51
+ - Verification after Claude Fable review fixes: `ruff check .` and `pytest -q`
52
+ (912 passed, 1 skipped).
@@ -0,0 +1,61 @@
1
+ # 0158: Atomic Profile bundle Evidence ingest and idempotency
2
+
3
+ - **Status:** Done
4
+ - **Milestone:** v0.5.0 Council Profile
5
+ - **Priority:** P0
6
+ - **Size:** L
7
+ - **Dependencies:** 0157
8
+ - **DB schema:** remain 8; stop if a migration becomes necessary
9
+
10
+ ## Goal
11
+
12
+ Persist one validated external bundle as immutable target-linked Evidence with
13
+ an outbox event, zero partial mutation, and exact replay idempotency.
14
+
15
+ ## Scope
16
+
17
+ - Add a dedicated directory-bundle staging/copy service for validated external
18
+ inputs without changing the existing permissive adhoc outside-root policy.
19
+ - Re-hash staged bytes before beginning the DB mutation.
20
+ - Insert one `profile_output_bundle` Evidence, target link, and
21
+ `profile_output_ingested` event in one transaction.
22
+ - Store profile/request/bundle metadata in the immutable manifest and event.
23
+ - Implement exact replay and same-ID/different-digest conflict behavior.
24
+ - Require `--accept-failed --summary` to persist a failed bundle.
25
+ - Extend `audit._check_evidence` to detect finalized unreferenced Profile bundle
26
+ directories left by rename-before-commit crashes and return report/quarantine
27
+ guidance without automatic deletion.
28
+
29
+ ## Invariants
30
+
31
+ - Rejected or interrupted pre-commit input leaves zero rows/events and no
32
+ staging residue.
33
+ - Existing Evidence semantics and adhoc path restrictions do not weaken.
34
+ - Stored artifacts are immutable and only listed files are authoritative.
35
+ - JSONL projection remains recoverable through the existing outbox/audit path.
36
+
37
+ ## Acceptance
38
+
39
+ 1. A valid non-human bundle adds exactly one Evidence, one target link, and one
40
+ ingest event.
41
+ 2. Exact replay returns original IDs with zero mutation; conflicts fail.
42
+ 3. Crash injection covers copy, pre-rename, post-rename/pre-commit, and outbox.
43
+ 4. Audit detects Profile temp files and finalized unreferenced bundle
44
+ directories; cleanup remains explicit and never guesses durable state.
45
+ 5. Source, wheel, and sdist ingest tests pass without migration/dependency.
46
+
47
+ ## Implementation evidence
48
+
49
+ - `src/pcl/profile_bundle_store.py` re-validates staged bytes, copies only
50
+ listed artifacts, atomically publishes one immutable directory, and commits
51
+ one Evidence/link/event/outbox transaction.
52
+ - Exact replay returns the original Evidence/event IDs; same bundle ID with a
53
+ different digest fails closed.
54
+ - Failed bundles require `--accept-failed --summary`; `needs_human` remains
55
+ blocked until task 0159 adds Decision handling.
56
+ - `audit._check_evidence` validates stored hashes and reports staging/finalized
57
+ orphan directories with explicit quarantine/report guidance only.
58
+ - Four process-kill fault points cover copy, pre-rename,
59
+ post-rename/pre-commit, and post-outbox/pre-commit behavior.
60
+ - Verification: `ruff check .`; targeted source/wheel/sdist tests 46 passed;
61
+ full suite 922 passed, 1 skipped.