pactkit 2.23.0__tar.gz → 2.24.1__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 (985) hide show
  1. {pactkit-2.23.0 → pactkit-2.24.1}/.coverage +0 -0
  2. {pactkit-2.23.0 → pactkit-2.24.1}/CHANGELOG.md +26 -0
  3. {pactkit-2.23.0 → pactkit-2.24.1}/PKG-INFO +3 -3
  4. pactkit-2.24.1/docs/architecture/governance/lessons/LESSON-20260827093143-3236113033.md +10 -0
  5. pactkit-2.24.1/docs/architecture/governance/lessons/LESSON-20260827095642-059a7e996b.md +10 -0
  6. pactkit-2.24.1/docs/architecture/governance/lessons/LESSON-20260827102057-e04522a6fc.md +10 -0
  7. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/rules.md +1 -1
  8. pactkit-2.24.1/docs/product/harness-comparison-2026-08-27.md +242 -0
  9. pactkit-2.24.1/docs/product/stories/STORY-slim-20260827024e71df170f.yaml +31 -0
  10. pactkit-2.24.1/docs/product/stories/STORY-slim-2026082727cc4ab535e7.yaml +11 -0
  11. pactkit-2.24.1/docs/product/stories/STORY-slim-2026082730b5954cf538.yaml +14 -0
  12. pactkit-2.24.1/docs/product/stories/STORY-slim-20260827625b870eb7da.yaml +14 -0
  13. pactkit-2.24.1/docs/product/stories/STORY-slim-202608277ec1236a7b99.yaml +14 -0
  14. pactkit-2.24.1/docs/product/stories/STORY-slim-20260827833e7a200f9a.yaml +14 -0
  15. pactkit-2.24.1/docs/product/stories/STORY-slim-20260827855bf3efaec3.yaml +15 -0
  16. pactkit-2.24.1/docs/product/stories/STORY-slim-2026082799fa651655be.yaml +14 -0
  17. pactkit-2.24.1/docs/product/stories/STORY-slim-20260827c67e3add6af5.yaml +14 -0
  18. pactkit-2.24.1/docs/product/stories/STORY-slim-20260827d0ae0dfada51.yaml +15 -0
  19. pactkit-2.24.1/docs/product/stories/STORY-slim-20260827eddbe9669c87.yaml +25 -0
  20. pactkit-2.24.1/docs/product/stories/STORY-slim-20260827fb6291b717eb.yaml +14 -0
  21. pactkit-2.24.1/docs/product/stories/STORY-slim-20260827fc9de5542ad7.yaml +26 -0
  22. pactkit-2.24.1/docs/specs/STORY-slim-20260827024e71df170f.md +182 -0
  23. pactkit-2.24.1/docs/specs/STORY-slim-20260827eddbe9669c87.md +157 -0
  24. pactkit-2.24.1/docs/specs/STORY-slim-20260827fc9de5542ad7.md +137 -0
  25. pactkit-2.24.1/docs/test_cases/STORY-slim-20260827024e71df170f_case.md +84 -0
  26. pactkit-2.24.1/docs/test_cases/STORY-slim-20260827eddbe9669c87_case.md +63 -0
  27. pactkit-2.24.1/docs/test_cases/STORY-slim-20260827fc9de5542ad7_case.md +56 -0
  28. {pactkit-2.23.0 → pactkit-2.24.1}/pyproject.toml +2 -2
  29. {pactkit-2.23.0 → pactkit-2.24.1}/src/pactkit/__init__.py +1 -1
  30. {pactkit-2.23.0 → pactkit-2.24.1}/src/pactkit/cli.py +104 -2
  31. {pactkit-2.23.0 → pactkit-2.24.1}/src/pactkit/commit_gate.py +202 -6
  32. {pactkit-2.23.0 → pactkit-2.24.1}/src/pactkit/continuation.py +208 -1
  33. {pactkit-2.23.0 → pactkit-2.24.1}/src/pactkit/coverage_gate.py +15 -0
  34. {pactkit-2.23.0 → pactkit-2.24.1}/src/pactkit/doctor.py +77 -12
  35. pactkit-2.24.1/src/pactkit/enforcement.py +271 -0
  36. {pactkit-2.23.0 → pactkit-2.24.1}/src/pactkit/generators/command_ownership.py +54 -4
  37. {pactkit-2.23.0 → pactkit-2.24.1}/src/pactkit/profiles.py +8 -0
  38. {pactkit-2.23.0 → pactkit-2.24.1}/src/pactkit/prompts/commands.py +1 -0
  39. pactkit-2.24.1/src/pactkit/run_events.py +100 -0
  40. pactkit-2.24.1/src/pactkit/run_stats.py +231 -0
  41. {pactkit-2.23.0 → pactkit-2.24.1}/tests/fixtures/cli_help_golden/__root__.txt +3 -2
  42. {pactkit-2.23.0 → pactkit-2.24.1}/tests/fixtures/cli_help_golden/continuation.txt +5 -2
  43. pactkit-2.24.1/tests/fixtures/cli_help_golden/doctor.txt +6 -0
  44. pactkit-2.24.1/tests/fixtures/cli_help_golden/stats.txt +6 -0
  45. pactkit-2.24.1/tests/unit/test_codex_hook_channel.py +299 -0
  46. pactkit-2.24.1/tests/unit/test_command_ownership_v2.py +142 -0
  47. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_commit_gate.py +5 -2
  48. pactkit-2.24.1/tests/unit/test_continuation_hardening.py +283 -0
  49. pactkit-2.24.1/tests/unit/test_enforcement.py +129 -0
  50. pactkit-2.24.1/tests/unit/test_run_events.py +217 -0
  51. pactkit-2.24.1/tests/unit/test_run_stats.py +213 -0
  52. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_selective_deploy.py +1 -1
  53. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_slim_deps_088.py +9 -1
  54. pactkit-2.23.0/tests/fixtures/cli_help_golden/doctor.txt +0 -4
  55. {pactkit-2.23.0 → pactkit-2.24.1}/.codegraph/.gitignore +0 -0
  56. {pactkit-2.23.0 → pactkit-2.24.1}/.github/workflows/pactkit.yml +0 -0
  57. {pactkit-2.23.0 → pactkit-2.24.1}/.github/workflows/publish.yml +0 -0
  58. {pactkit-2.23.0 → pactkit-2.24.1}/.gitignore +0 -0
  59. {pactkit-2.23.0 → pactkit-2.24.1}/AGENTS.md +0 -0
  60. {pactkit-2.23.0 → pactkit-2.24.1}/CODE_OF_CONDUCT.md +0 -0
  61. {pactkit-2.23.0 → pactkit-2.24.1}/CONTRIBUTING.md +0 -0
  62. {pactkit-2.23.0 → pactkit-2.24.1}/LICENSE +0 -0
  63. {pactkit-2.23.0 → pactkit-2.24.1}/README.md +0 -0
  64. {pactkit-2.23.0 → pactkit-2.24.1}/SECURITY.md +0 -0
  65. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/archive/lessons_archive_202602.md +0 -0
  66. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/archive/lessons_archive_202603.md +0 -0
  67. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/archive/lessons_archive_202604.md +0 -0
  68. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/harness_audit.json +0 -0
  69. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260227-8e92f52c86.md +0 -0
  70. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260227-a21cacfde2.md +0 -0
  71. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260227-ccb19799ea.md +0 -0
  72. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260228-6e4b02ff08.md +0 -0
  73. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260228-b87245d5fc.md +0 -0
  74. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260302-8980b2512d.md +0 -0
  75. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260302-8f58fa2045.md +0 -0
  76. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260302-a3a1b7900e.md +0 -0
  77. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260303-3f65c0442b.md +0 -0
  78. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260304-23c605e495.md +0 -0
  79. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260304-8bd6c10219.md +0 -0
  80. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260305-129d1dea2a.md +0 -0
  81. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260305-48752d79c3.md +0 -0
  82. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260305-b9afdd8720.md +0 -0
  83. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260305-f93ee5b19f.md +0 -0
  84. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260306-7061390095.md +0 -0
  85. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260313-edf7807faf.md +0 -0
  86. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260316-091567c2bb.md +0 -0
  87. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260316-4661b3789a.md +0 -0
  88. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260316-7214dac8fc.md +0 -0
  89. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260317-3d8a855086.md +0 -0
  90. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260317-4ba69c35f0.md +0 -0
  91. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260317-6cd2a53ba5.md +0 -0
  92. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260317-7a0dd3407e.md +0 -0
  93. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260317-86927e3701.md +0 -0
  94. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260317-9a8025eaac.md +0 -0
  95. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260317-a0721cc066.md +0 -0
  96. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260317-a1f53d759b.md +0 -0
  97. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260317-a9f7897b36.md +0 -0
  98. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260317-ff430eaa29.md +0 -0
  99. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260318-fb0bcd928b.md +0 -0
  100. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260319-f320fbb5cc.md +0 -0
  101. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260320-b2d80c56b3.md +0 -0
  102. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260320-c102dbd6f8.md +0 -0
  103. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260320-e8f6ddae81.md +0 -0
  104. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260321-5e57da75b0.md +0 -0
  105. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260321-6a4a30628f.md +0 -0
  106. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260321-b5a58de3f9.md +0 -0
  107. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260321-e0138991ed.md +0 -0
  108. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260321-e49663fc95.md +0 -0
  109. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260322-4c0480e882.md +0 -0
  110. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260322-d1ece5c0d4.md +0 -0
  111. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260323-4bd30888ce.md +0 -0
  112. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260323-7a02b3eb85.md +0 -0
  113. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260323-8624e0d93a.md +0 -0
  114. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260323-a8faeea78c.md +0 -0
  115. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260324-075e3332b8.md +0 -0
  116. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260324-0f6f041a52.md +0 -0
  117. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260324-2dab5931de.md +0 -0
  118. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260324-8bcda73e9b.md +0 -0
  119. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260324-9e6238f0c8.md +0 -0
  120. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260324-a1cace9846.md +0 -0
  121. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260324-bf64dd9564.md +0 -0
  122. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260324-c344d7655c.md +0 -0
  123. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260324-e60c50dcc9.md +0 -0
  124. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260324-f5149caffe.md +0 -0
  125. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260325-1a5eeea04c.md +0 -0
  126. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260326-02460b22de.md +0 -0
  127. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260326-09de627b2b.md +0 -0
  128. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260326-204ea48f84.md +0 -0
  129. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260326-32e2fd3074.md +0 -0
  130. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260326-6c6dbfc365.md +0 -0
  131. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260326-7811ad7ff2.md +0 -0
  132. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260326-88e7123370.md +0 -0
  133. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260326-d2376010b1.md +0 -0
  134. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260326-e4f0eb8850.md +0 -0
  135. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260326-e68b8aa47f.md +0 -0
  136. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260326-fdd06ad981.md +0 -0
  137. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260327-e3c7f5abcb.md +0 -0
  138. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260330-eb1760def2.md +0 -0
  139. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260331-1b58a289ea.md +0 -0
  140. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260331-26e474753e.md +0 -0
  141. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260331-3028ab9cf5.md +0 -0
  142. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260331-350048862b.md +0 -0
  143. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260331-7d41cdf5a3.md +0 -0
  144. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260331-8e5558a077.md +0 -0
  145. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260331-c46df1c3b1.md +0 -0
  146. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260401-41515789f6.md +0 -0
  147. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260401-4453752dda.md +0 -0
  148. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260401-5a225a1c0a.md +0 -0
  149. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260401-90724b10f0.md +0 -0
  150. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260401-9e322eb76e.md +0 -0
  151. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260401-bd20019d3d.md +0 -0
  152. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260401-de035be681.md +0 -0
  153. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260401-f44c8f499e.md +0 -0
  154. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260401-fa52f596ff.md +0 -0
  155. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260402-5b063207c8.md +0 -0
  156. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260402-5e0913ec81.md +0 -0
  157. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260415-3d8b5e8f81.md +0 -0
  158. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260415-84219771ca.md +0 -0
  159. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260416-41d4564480.md +0 -0
  160. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260416-5cdc3cf53f.md +0 -0
  161. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260416-807c65a8e7.md +0 -0
  162. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260416-ade561c777.md +0 -0
  163. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260416-b78aaf129a.md +0 -0
  164. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260416-db8a5430a0.md +0 -0
  165. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260416-f5a765c496.md +0 -0
  166. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260417-f1d777e9c9.md +0 -0
  167. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260418-ee12f2ff0d.md +0 -0
  168. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260420-2260437be7.md +0 -0
  169. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260420-a35a083e29.md +0 -0
  170. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260420-fa7d958d56.md +0 -0
  171. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260421-309c998a10.md +0 -0
  172. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260422-6509ac4df0.md +0 -0
  173. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260422-8dd5ed6a24.md +0 -0
  174. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260423-b0890ad9c2.md +0 -0
  175. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260424-24cc1d5e19.md +0 -0
  176. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260424-39a99c887d.md +0 -0
  177. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260427-f7955d5775.md +0 -0
  178. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260507-7b75a5cab8.md +0 -0
  179. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260507-b26f97255d.md +0 -0
  180. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260525-1fe96d2ff4.md +0 -0
  181. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260525-717e18e190.md +0 -0
  182. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260525-df4853fa3f.md +0 -0
  183. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260526-4c230f3a9d.md +0 -0
  184. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260601-6d6b779a83.md +0 -0
  185. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260601-e65d3407ed.md +0 -0
  186. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260610-51c3cf895e.md +0 -0
  187. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260629-6171e54ac8.md +0 -0
  188. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260702-4616caa284.md +0 -0
  189. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260713-da6d40dcc0.md +0 -0
  190. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260723-d4c9801300.md +0 -0
  191. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260813-18efcf9687.md +0 -0
  192. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260813-1dc6e2e1c7.md +0 -0
  193. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260813-21d4da632f.md +0 -0
  194. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260817-3587ae1a22.md +0 -0
  195. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260817-5f08a6affa.md +0 -0
  196. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260817-800f717c9d.md +0 -0
  197. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260817-a2cd839a2d.md +0 -0
  198. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260822-9175485749.md +0 -0
  199. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260822105138-298451a42c.md +0 -0
  200. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260822105138-522c7e4af4.md +0 -0
  201. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260822105138-72cc1d0343.md +0 -0
  202. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260823015950-6b8cbea92e.md +0 -0
  203. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260823022240-d3570f57fb.md +0 -0
  204. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260823050717-9192db37f8.md +0 -0
  205. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260826072120-c6db5dd5b1.md +0 -0
  206. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260826074629-f5119ea78b.md +0 -0
  207. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260826080242-012107ada2.md +0 -0
  208. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons/LESSON-20260826082256-eff3747d60.md +0 -0
  209. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/lessons.md +0 -0
  210. {pactkit-2.23.0 → pactkit-2.24.1}/docs/architecture/governance/philosophy.md +0 -0
  211. {pactkit-2.23.0 → pactkit-2.24.1}/docs/assets/logo.png +0 -0
  212. {pactkit-2.23.0 → pactkit-2.24.1}/docs/e2e/journey.md +0 -0
  213. {pactkit-2.23.0 → pactkit-2.24.1}/docs/guides/codex-integration-preresearch.md +0 -0
  214. {pactkit-2.23.0 → pactkit-2.24.1}/docs/guides/tool-integration-checklist.md +0 -0
  215. {pactkit-2.23.0 → pactkit-2.24.1}/docs/product/archive/archive_202602.md +0 -0
  216. {pactkit-2.23.0 → pactkit-2.24.1}/docs/product/archive/archive_202603.md +0 -0
  217. {pactkit-2.23.0 → pactkit-2.24.1}/docs/product/archive/archive_202604.md +0 -0
  218. {pactkit-2.23.0 → pactkit-2.24.1}/docs/product/archive/archive_202605.md +0 -0
  219. {pactkit-2.23.0 → pactkit-2.24.1}/docs/product/archive/archive_202606.md +0 -0
  220. {pactkit-2.23.0 → pactkit-2.24.1}/docs/product/archive/archive_202607.md +0 -0
  221. {pactkit-2.23.0 → pactkit-2.24.1}/docs/product/archive/archive_202608.md +0 -0
  222. {pactkit-2.23.0 → pactkit-2.24.1}/docs/product/context.md +0 -0
  223. {pactkit-2.23.0 → pactkit-2.24.1}/docs/product/friction-log.md +0 -0
  224. {pactkit-2.23.0 → pactkit-2.24.1}/docs/product/prd.md +0 -0
  225. {pactkit-2.23.0 → pactkit-2.24.1}/docs/product/sprint_board.md +0 -0
  226. {pactkit-2.23.0 → pactkit-2.24.1}/docs/product/stories/HOTFIX-slim-127.yaml +0 -0
  227. {pactkit-2.23.0 → pactkit-2.24.1}/docs/product/stories/HOTFIX-slim-131.yaml +0 -0
  228. {pactkit-2.23.0 → pactkit-2.24.1}/docs/product/stories/HOTFIX-slim-132.yaml +0 -0
  229. {pactkit-2.23.0 → pactkit-2.24.1}/docs/product/stories/STORY-slim-115.yaml +0 -0
  230. {pactkit-2.23.0 → pactkit-2.24.1}/docs/product/stories/STORY-slim-118.yaml +0 -0
  231. {pactkit-2.23.0 → pactkit-2.24.1}/docs/product/stories/STORY-slim-119.yaml +0 -0
  232. {pactkit-2.23.0 → pactkit-2.24.1}/docs/product/stories/STORY-slim-145.yaml +0 -0
  233. {pactkit-2.23.0 → pactkit-2.24.1}/docs/product/stories/STORY-slim-147.yaml +0 -0
  234. {pactkit-2.23.0 → pactkit-2.24.1}/docs/product/stories/STORY-slim-148.yaml +0 -0
  235. {pactkit-2.23.0 → pactkit-2.24.1}/docs/product/stories/STORY-slim-149.yaml +0 -0
  236. {pactkit-2.23.0 → pactkit-2.24.1}/docs/product/stories/STORY-slim-2026082381e832771d4e.yaml +0 -0
  237. {pactkit-2.23.0 → pactkit-2.24.1}/docs/product/stories/STORY-slim-20260823d854b0cf1875.yaml +0 -0
  238. {pactkit-2.23.0 → pactkit-2.24.1}/docs/product/stories/STORY-slim-20260823de7e85d6042a.yaml +0 -0
  239. {pactkit-2.23.0 → pactkit-2.24.1}/docs/product/stories/STORY-slim-20260825b1c83a046b4b.yaml +0 -0
  240. {pactkit-2.23.0 → pactkit-2.24.1}/docs/product/stories/STORY-slim-202608264cf429c75e22.yaml +0 -0
  241. {pactkit-2.23.0 → pactkit-2.24.1}/docs/product/stories/STORY-slim-2026082672b57c78fd67.yaml +0 -0
  242. {pactkit-2.23.0 → pactkit-2.24.1}/docs/product/stories/STORY-slim-202608267c3989223b4d.yaml +0 -0
  243. {pactkit-2.23.0 → pactkit-2.24.1}/docs/product/stories/STORY-slim-202608268fc379dbe6ef.yaml +0 -0
  244. {pactkit-2.23.0 → pactkit-2.24.1}/docs/product/stories/STORY-slim-20260826ac1f0bfe4148.yaml +0 -0
  245. {pactkit-2.23.0 → pactkit-2.24.1}/docs/product/stories/STORY-slim-20260826cb37edfdd4da.yaml +0 -0
  246. {pactkit-2.23.0 → pactkit-2.24.1}/docs/product/stories/STORY-slim-20260826ce35b77ce005.yaml +0 -0
  247. {pactkit-2.23.0 → pactkit-2.24.1}/docs/product/stories/STORY-slim-20260826f9492ab32c3d.yaml +0 -0
  248. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/BUG-001.md +0 -0
  249. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/BUG-002.md +0 -0
  250. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/BUG-003.md +0 -0
  251. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/BUG-004.md +0 -0
  252. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/BUG-005.md +0 -0
  253. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/BUG-006.md +0 -0
  254. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/BUG-007.md +0 -0
  255. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/BUG-008.md +0 -0
  256. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/BUG-009.md +0 -0
  257. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/BUG-010.md +0 -0
  258. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/BUG-011.md +0 -0
  259. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/BUG-012.md +0 -0
  260. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/BUG-013.md +0 -0
  261. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/BUG-014.md +0 -0
  262. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/BUG-015.md +0 -0
  263. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/BUG-016.md +0 -0
  264. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/BUG-017.md +0 -0
  265. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/BUG-018.md +0 -0
  266. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/BUG-019.md +0 -0
  267. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/BUG-020.md +0 -0
  268. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/BUG-021.md +0 -0
  269. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/BUG-022.md +0 -0
  270. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/BUG-023.md +0 -0
  271. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/BUG-024.md +0 -0
  272. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/BUG-025.md +0 -0
  273. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/BUG-026.md +0 -0
  274. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/BUG-027.md +0 -0
  275. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/BUG-028.md +0 -0
  276. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/BUG-029.md +0 -0
  277. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/BUG-030.md +0 -0
  278. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/BUG-031.md +0 -0
  279. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/BUG-032.md +0 -0
  280. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/BUG-033.md +0 -0
  281. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/BUG-034.md +0 -0
  282. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/BUG-035.md +0 -0
  283. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/BUG-slim-001.md +0 -0
  284. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/BUG-slim-002.md +0 -0
  285. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/BUG-slim-003.md +0 -0
  286. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/BUG-slim-004.md +0 -0
  287. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/BUG-slim-005.md +0 -0
  288. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/BUG-slim-006.md +0 -0
  289. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/BUG-slim-089.md +0 -0
  290. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/BUG-slim-107.md +0 -0
  291. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/HOTFIX-slim-023.md +0 -0
  292. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/HOTFIX-slim-049.md +0 -0
  293. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/HOTFIX-slim-050.md +0 -0
  294. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/HOTFIX-slim-051.md +0 -0
  295. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/HOTFIX-slim-052.md +0 -0
  296. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/HOTFIX-slim-061.md +0 -0
  297. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/HOTFIX-slim-062.md +0 -0
  298. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/HOTFIX-slim-067.md +0 -0
  299. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/HOTFIX-slim-069.md +0 -0
  300. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/HOTFIX-slim-070.md +0 -0
  301. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/HOTFIX-slim-085.md +0 -0
  302. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/HOTFIX-slim-087.md +0 -0
  303. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/HOTFIX-slim-096.md +0 -0
  304. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/HOTFIX-slim-099.md +0 -0
  305. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/HOTFIX-slim-107.md +0 -0
  306. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/HOTFIX-slim-117.md +0 -0
  307. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/HOTFIX-slim-122.md +0 -0
  308. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/HOTFIX-slim-123.md +0 -0
  309. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/HOTFIX-slim-126.md +0 -0
  310. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/HOTFIX-slim-127.md +0 -0
  311. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/HOTFIX-slim-130.md +0 -0
  312. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/HOTFIX-slim-131.md +0 -0
  313. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/HOTFIX-slim-132.md +0 -0
  314. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-001.md +0 -0
  315. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-002.md +0 -0
  316. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-003.md +0 -0
  317. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-004.md +0 -0
  318. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-005.md +0 -0
  319. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-006.md +0 -0
  320. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-007.md +0 -0
  321. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-008.md +0 -0
  322. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-009.md +0 -0
  323. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-010.md +0 -0
  324. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-011.md +0 -0
  325. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-012.md +0 -0
  326. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-013.md +0 -0
  327. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-014.md +0 -0
  328. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-015.md +0 -0
  329. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-016.md +0 -0
  330. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-017.md +0 -0
  331. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-018.md +0 -0
  332. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-019.md +0 -0
  333. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-020.md +0 -0
  334. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-021.md +0 -0
  335. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-022.md +0 -0
  336. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-023.md +0 -0
  337. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-024.md +0 -0
  338. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-025.md +0 -0
  339. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-026.md +0 -0
  340. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-027.md +0 -0
  341. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-028.md +0 -0
  342. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-029.md +0 -0
  343. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-030.md +0 -0
  344. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-031.md +0 -0
  345. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-032.md +0 -0
  346. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-033.md +0 -0
  347. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-034.md +0 -0
  348. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-035.md +0 -0
  349. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-036.md +0 -0
  350. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-037.md +0 -0
  351. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-038.md +0 -0
  352. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-039.md +0 -0
  353. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-040.md +0 -0
  354. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-041.md +0 -0
  355. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-042.md +0 -0
  356. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-043.md +0 -0
  357. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-044.md +0 -0
  358. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-045.md +0 -0
  359. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-046.md +0 -0
  360. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-047.md +0 -0
  361. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-048.md +0 -0
  362. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-049.md +0 -0
  363. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-050.md +0 -0
  364. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-051.md +0 -0
  365. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-052.md +0 -0
  366. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-053.md +0 -0
  367. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-054.md +0 -0
  368. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-055.md +0 -0
  369. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-056.md +0 -0
  370. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-057.md +0 -0
  371. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-058.md +0 -0
  372. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-059.md +0 -0
  373. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-060.md +0 -0
  374. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-061.md +0 -0
  375. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-062.md +0 -0
  376. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-063.md +0 -0
  377. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-064.md +0 -0
  378. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-065.md +0 -0
  379. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-069.md +0 -0
  380. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-070.md +0 -0
  381. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-071.md +0 -0
  382. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-072.md +0 -0
  383. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-073.md +0 -0
  384. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-001.md +0 -0
  385. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-005.md +0 -0
  386. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-006.md +0 -0
  387. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-007.md +0 -0
  388. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-009.md +0 -0
  389. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-010.md +0 -0
  390. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-011.md +0 -0
  391. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-012.md +0 -0
  392. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-013.md +0 -0
  393. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-014.md +0 -0
  394. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-015.md +0 -0
  395. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-016.md +0 -0
  396. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-017.md +0 -0
  397. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-018.md +0 -0
  398. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-019.md +0 -0
  399. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-020.md +0 -0
  400. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-021.md +0 -0
  401. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-022.md +0 -0
  402. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-023.md +0 -0
  403. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-024.md +0 -0
  404. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-028.md +0 -0
  405. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-029.md +0 -0
  406. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-030.md +0 -0
  407. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-031.md +0 -0
  408. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-032.md +0 -0
  409. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-033.md +0 -0
  410. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-034.md +0 -0
  411. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-035.md +0 -0
  412. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-036.md +0 -0
  413. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-037.md +0 -0
  414. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-038.md +0 -0
  415. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-039.md +0 -0
  416. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-040.md +0 -0
  417. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-041.md +0 -0
  418. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-042.md +0 -0
  419. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-043.md +0 -0
  420. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-044.md +0 -0
  421. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-045.md +0 -0
  422. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-046.md +0 -0
  423. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-047.md +0 -0
  424. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-048.md +0 -0
  425. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-049.md +0 -0
  426. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-050.md +0 -0
  427. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-051.md +0 -0
  428. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-052.md +0 -0
  429. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-053.md +0 -0
  430. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-054.md +0 -0
  431. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-055.md +0 -0
  432. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-056.md +0 -0
  433. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-057.md +0 -0
  434. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-058.md +0 -0
  435. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-059.md +0 -0
  436. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-060.md +0 -0
  437. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-063.md +0 -0
  438. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-066.md +0 -0
  439. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-067.md +0 -0
  440. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-068.md +0 -0
  441. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-069.md +0 -0
  442. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-070.md +0 -0
  443. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-071.md +0 -0
  444. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-072.md +0 -0
  445. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-073.md +0 -0
  446. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-074.md +0 -0
  447. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-075.md +0 -0
  448. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-076.md +0 -0
  449. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-077.md +0 -0
  450. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-078.md +0 -0
  451. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-079.md +0 -0
  452. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-080.md +0 -0
  453. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-081.md +0 -0
  454. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-082.md +0 -0
  455. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-083.md +0 -0
  456. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-084.md +0 -0
  457. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-086.md +0 -0
  458. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-088.md +0 -0
  459. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-089.md +0 -0
  460. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-090.md +0 -0
  461. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-091.md +0 -0
  462. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-092.md +0 -0
  463. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-093.md +0 -0
  464. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-094.md +0 -0
  465. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-095.md +0 -0
  466. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-097.md +0 -0
  467. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-098.md +0 -0
  468. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-099.md +0 -0
  469. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-100.md +0 -0
  470. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-101.md +0 -0
  471. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-102.md +0 -0
  472. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-103.md +0 -0
  473. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-104.md +0 -0
  474. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-105.md +0 -0
  475. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-106.md +0 -0
  476. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-107.md +0 -0
  477. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-108.md +0 -0
  478. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-109.md +0 -0
  479. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-110.md +0 -0
  480. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-111.md +0 -0
  481. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-112.md +0 -0
  482. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-113.md +0 -0
  483. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-114.md +0 -0
  484. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-115.md +0 -0
  485. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-116.md +0 -0
  486. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-118.md +0 -0
  487. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-119.md +0 -0
  488. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-120.md +0 -0
  489. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-121.md +0 -0
  490. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-124.md +0 -0
  491. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-125.md +0 -0
  492. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-126.md +0 -0
  493. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-127.md +0 -0
  494. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-128.md +0 -0
  495. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-129.md +0 -0
  496. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-132.md +0 -0
  497. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-133.md +0 -0
  498. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-134.md +0 -0
  499. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-135.md +0 -0
  500. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-136.md +0 -0
  501. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-137.md +0 -0
  502. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-138.md +0 -0
  503. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-139.md +0 -0
  504. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-140.md +0 -0
  505. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-141.md +0 -0
  506. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-142.md +0 -0
  507. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-143.md +0 -0
  508. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-144.md +0 -0
  509. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-145.md +0 -0
  510. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-146.md +0 -0
  511. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-147.md +0 -0
  512. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-148.md +0 -0
  513. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-149.md +0 -0
  514. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-2026082381e832771d4e.md +0 -0
  515. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-20260823d854b0cf1875.md +0 -0
  516. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-20260823de7e85d6042a.md +0 -0
  517. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-2026082466c8670d9655.md +0 -0
  518. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-20260824dd23a0ed3b4c.md +0 -0
  519. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-20260825b1c83a046b4b.md +0 -0
  520. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-202608264cf429c75e22.md +0 -0
  521. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-2026082672b57c78fd67.md +0 -0
  522. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-202608267c3989223b4d.md +0 -0
  523. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-202608268fc379dbe6ef.md +0 -0
  524. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-20260826ac1f0bfe4148.md +0 -0
  525. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-20260826cb37edfdd4da.md +0 -0
  526. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-20260826ce35b77ce005.md +0 -0
  527. {pactkit-2.23.0 → pactkit-2.24.1}/docs/specs/STORY-slim-20260826f9492ab32c3d.md +0 -0
  528. {pactkit-2.23.0 → pactkit-2.24.1}/docs/test_cases/BUG-001_case.md +0 -0
  529. {pactkit-2.23.0 → pactkit-2.24.1}/docs/test_cases/BUG-002_case.md +0 -0
  530. {pactkit-2.23.0 → pactkit-2.24.1}/docs/test_cases/STORY-slim-028_case.md +0 -0
  531. {pactkit-2.23.0 → pactkit-2.24.1}/docs/test_cases/STORY-slim-029_case.md +0 -0
  532. {pactkit-2.23.0 → pactkit-2.24.1}/docs/test_cases/STORY-slim-031_case.md +0 -0
  533. {pactkit-2.23.0 → pactkit-2.24.1}/docs/test_cases/STORY-slim-032_case.md +0 -0
  534. {pactkit-2.23.0 → pactkit-2.24.1}/docs/test_cases/STORY-slim-033_case.md +0 -0
  535. {pactkit-2.23.0 → pactkit-2.24.1}/docs/test_cases/STORY-slim-034_case.md +0 -0
  536. {pactkit-2.23.0 → pactkit-2.24.1}/docs/test_cases/STORY-slim-135_case.md +0 -0
  537. {pactkit-2.23.0 → pactkit-2.24.1}/docs/test_cases/STORY-slim-136_case.md +0 -0
  538. {pactkit-2.23.0 → pactkit-2.24.1}/docs/test_cases/STORY-slim-137_case.md +0 -0
  539. {pactkit-2.23.0 → pactkit-2.24.1}/docs/test_cases/STORY-slim-138_case.md +0 -0
  540. {pactkit-2.23.0 → pactkit-2.24.1}/docs/test_cases/STORY-slim-139_case.md +0 -0
  541. {pactkit-2.23.0 → pactkit-2.24.1}/docs/test_cases/STORY-slim-140_case.md +0 -0
  542. {pactkit-2.23.0 → pactkit-2.24.1}/docs/test_cases/STORY-slim-141_case.md +0 -0
  543. {pactkit-2.23.0 → pactkit-2.24.1}/docs/test_cases/STORY-slim-142_case.md +0 -0
  544. {pactkit-2.23.0 → pactkit-2.24.1}/docs/test_cases/STORY-slim-143_case.md +0 -0
  545. {pactkit-2.23.0 → pactkit-2.24.1}/docs/test_cases/STORY-slim-144_case.md +0 -0
  546. {pactkit-2.23.0 → pactkit-2.24.1}/docs/test_cases/STORY-slim-146_case.md +0 -0
  547. {pactkit-2.23.0 → pactkit-2.24.1}/docs/test_cases/STORY-slim-147_case.md +0 -0
  548. {pactkit-2.23.0 → pactkit-2.24.1}/docs/test_cases/STORY-slim-148_case.md +0 -0
  549. {pactkit-2.23.0 → pactkit-2.24.1}/docs/test_cases/STORY-slim-149_case.md +0 -0
  550. {pactkit-2.23.0 → pactkit-2.24.1}/docs/test_cases/STORY-slim-2026082381e832771d4e_case.md +0 -0
  551. {pactkit-2.23.0 → pactkit-2.24.1}/docs/test_cases/STORY-slim-20260823d854b0cf1875_case.md +0 -0
  552. {pactkit-2.23.0 → pactkit-2.24.1}/docs/test_cases/STORY-slim-20260823de7e85d6042a_case.md +0 -0
  553. {pactkit-2.23.0 → pactkit-2.24.1}/docs/test_cases/STORY-slim-20260825b1c83a046b4b_case.md +0 -0
  554. {pactkit-2.23.0 → pactkit-2.24.1}/docs/test_cases/STORY-slim-202608264cf429c75e22_case.md +0 -0
  555. {pactkit-2.23.0 → pactkit-2.24.1}/docs/test_cases/STORY-slim-2026082672b57c78fd67_case.md +0 -0
  556. {pactkit-2.23.0 → pactkit-2.24.1}/docs/test_cases/STORY-slim-202608267c3989223b4d_case.md +0 -0
  557. {pactkit-2.23.0 → pactkit-2.24.1}/docs/test_cases/STORY-slim-202608268fc379dbe6ef_case.md +0 -0
  558. {pactkit-2.23.0 → pactkit-2.24.1}/docs/test_cases/STORY-slim-20260826ac1f0bfe4148_case.md +0 -0
  559. {pactkit-2.23.0 → pactkit-2.24.1}/docs/test_cases/STORY-slim-20260826cb37edfdd4da_case.md +0 -0
  560. {pactkit-2.23.0 → pactkit-2.24.1}/docs/test_cases/STORY-slim-20260826ce35b77ce005_case.md +0 -0
  561. {pactkit-2.23.0 → pactkit-2.24.1}/docs/test_cases/STORY-slim-20260826f9492ab32c3d_case.md +0 -0
  562. {pactkit-2.23.0 → pactkit-2.24.1}/opencode.json +0 -0
  563. {pactkit-2.23.0 → pactkit-2.24.1}/src/pactkit/__main__.py +0 -0
  564. {pactkit-2.23.0 → pactkit-2.24.1}/src/pactkit/audit.py +0 -0
  565. {pactkit-2.23.0 → pactkit-2.24.1}/src/pactkit/backfill.py +0 -0
  566. {pactkit-2.23.0 → pactkit-2.24.1}/src/pactkit/cleaners.py +0 -0
  567. {pactkit-2.23.0 → pactkit-2.24.1}/src/pactkit/config.py +0 -0
  568. {pactkit-2.23.0 → pactkit-2.24.1}/src/pactkit/context_gen.py +0 -0
  569. {pactkit-2.23.0 → pactkit-2.24.1}/src/pactkit/delivery_evidence.py +0 -0
  570. {pactkit-2.23.0 → pactkit-2.24.1}/src/pactkit/deploy_manifest.py +0 -0
  571. {pactkit-2.23.0 → pactkit-2.24.1}/src/pactkit/deployment_transaction.py +0 -0
  572. {pactkit-2.23.0 → pactkit-2.24.1}/src/pactkit/deps.py +0 -0
  573. {pactkit-2.23.0 → pactkit-2.24.1}/src/pactkit/done_verify.py +0 -0
  574. {pactkit-2.23.0 → pactkit-2.24.1}/src/pactkit/garden.py +0 -0
  575. {pactkit-2.23.0 → pactkit-2.24.1}/src/pactkit/generators/__init__.py +0 -0
  576. {pactkit-2.23.0 → pactkit-2.24.1}/src/pactkit/generators/claude_md.py +0 -0
  577. {pactkit-2.23.0 → pactkit-2.24.1}/src/pactkit/generators/deploy_base.py +0 -0
  578. {pactkit-2.23.0 → pactkit-2.24.1}/src/pactkit/generators/deployer.py +0 -0
  579. {pactkit-2.23.0 → pactkit-2.24.1}/src/pactkit/governance.py +0 -0
  580. {pactkit-2.23.0 → pactkit-2.24.1}/src/pactkit/graph_query.py +0 -0
  581. {pactkit-2.23.0 → pactkit-2.24.1}/src/pactkit/guards.py +0 -0
  582. {pactkit-2.23.0 → pactkit-2.24.1}/src/pactkit/host_continuation.py +0 -0
  583. {pactkit-2.23.0 → pactkit-2.24.1}/src/pactkit/id_generator.py +0 -0
  584. {pactkit-2.23.0 → pactkit-2.24.1}/src/pactkit/invariants.py +0 -0
  585. {pactkit-2.23.0 → pactkit-2.24.1}/src/pactkit/issue_sync.py +0 -0
  586. {pactkit-2.23.0 → pactkit-2.24.1}/src/pactkit/lazy_visualize.py +0 -0
  587. {pactkit-2.23.0 → pactkit-2.24.1}/src/pactkit/legacy/__init__.py +0 -0
  588. {pactkit-2.23.0 → pactkit-2.24.1}/src/pactkit/legacy/host_continuation.py +0 -0
  589. {pactkit-2.23.0 → pactkit-2.24.1}/src/pactkit/legacy/usage.py +0 -0
  590. {pactkit-2.23.0 → pactkit-2.24.1}/src/pactkit/legacy/workflow_engine.py +0 -0
  591. {pactkit-2.23.0 → pactkit-2.24.1}/src/pactkit/lessons.py +0 -0
  592. {pactkit-2.23.0 → pactkit-2.24.1}/src/pactkit/lint_runner.py +0 -0
  593. {pactkit-2.23.0 → pactkit-2.24.1}/src/pactkit/observe.py +0 -0
  594. {pactkit-2.23.0 → pactkit-2.24.1}/src/pactkit/portable_methods.py +0 -0
  595. {pactkit-2.23.0 → pactkit-2.24.1}/src/pactkit/project_root.py +0 -0
  596. {pactkit-2.23.0 → pactkit-2.24.1}/src/pactkit/prompts/__init__.py +0 -0
  597. {pactkit-2.23.0 → pactkit-2.24.1}/src/pactkit/prompts/agents.py +0 -0
  598. {pactkit-2.23.0 → pactkit-2.24.1}/src/pactkit/prompts/guides.py +0 -0
  599. {pactkit-2.23.0 → pactkit-2.24.1}/src/pactkit/prompts/references.py +0 -0
  600. {pactkit-2.23.0 → pactkit-2.24.1}/src/pactkit/prompts/rules.py +0 -0
  601. {pactkit-2.23.0 → pactkit-2.24.1}/src/pactkit/prompts/skills.py +0 -0
  602. {pactkit-2.23.0 → pactkit-2.24.1}/src/pactkit/prompts/workflows.py +0 -0
  603. {pactkit-2.23.0 → pactkit-2.24.1}/src/pactkit/protocols.py +0 -0
  604. {pactkit-2.23.0 → pactkit-2.24.1}/src/pactkit/regression.py +0 -0
  605. {pactkit-2.23.0 → pactkit-2.24.1}/src/pactkit/risk_profile.py +0 -0
  606. {pactkit-2.23.0 → pactkit-2.24.1}/src/pactkit/schemas.py +0 -0
  607. {pactkit-2.23.0 → pactkit-2.24.1}/src/pactkit/scripts.py +0 -0
  608. {pactkit-2.23.0 → pactkit-2.24.1}/src/pactkit/sec_scope.py +0 -0
  609. {pactkit-2.23.0 → pactkit-2.24.1}/src/pactkit/skills/__init__.py +0 -0
  610. {pactkit-2.23.0 → pactkit-2.24.1}/src/pactkit/skills/analyzers/__init__.py +0 -0
  611. {pactkit-2.23.0 → pactkit-2.24.1}/src/pactkit/skills/analyzers/go_analyzer.py +0 -0
  612. {pactkit-2.23.0 → pactkit-2.24.1}/src/pactkit/skills/analyzers/java_analyzer.py +0 -0
  613. {pactkit-2.23.0 → pactkit-2.24.1}/src/pactkit/skills/analyzers/python_analyzer.py +0 -0
  614. {pactkit-2.23.0 → pactkit-2.24.1}/src/pactkit/skills/analyzers/ts_analyzer.py +0 -0
  615. {pactkit-2.23.0 → pactkit-2.24.1}/src/pactkit/skills/board.py +0 -0
  616. {pactkit-2.23.0 → pactkit-2.24.1}/src/pactkit/skills/interface_summary.py +0 -0
  617. {pactkit-2.23.0 → pactkit-2.24.1}/src/pactkit/skills/report.py +0 -0
  618. {pactkit-2.23.0 → pactkit-2.24.1}/src/pactkit/skills/scaffold.py +0 -0
  619. {pactkit-2.23.0 → pactkit-2.24.1}/src/pactkit/skills/spec_linter.py +0 -0
  620. {pactkit-2.23.0 → pactkit-2.24.1}/src/pactkit/skills/visualize.py +0 -0
  621. {pactkit-2.23.0 → pactkit-2.24.1}/src/pactkit/spec_graph.py +0 -0
  622. {pactkit-2.23.0 → pactkit-2.24.1}/src/pactkit/spec_preflight.py +0 -0
  623. {pactkit-2.23.0 → pactkit-2.24.1}/src/pactkit/spec_status.py +0 -0
  624. {pactkit-2.23.0 → pactkit-2.24.1}/src/pactkit/test_mapper.py +0 -0
  625. {pactkit-2.23.0 → pactkit-2.24.1}/src/pactkit/utils.py +0 -0
  626. {pactkit-2.23.0 → pactkit-2.24.1}/src/pactkit/validators.py +0 -0
  627. {pactkit-2.23.0 → pactkit-2.24.1}/src/pactkit/workflow_engine.py +0 -0
  628. {pactkit-2.23.0 → pactkit-2.24.1}/src/pactkit/workflow_registry.py +0 -0
  629. {pactkit-2.23.0 → pactkit-2.24.1}/src/pactkit/workflow_validators.py +0 -0
  630. {pactkit-2.23.0 → pactkit-2.24.1}/tests/conftest.py +0 -0
  631. {pactkit-2.23.0 → pactkit-2.24.1}/tests/e2e/__init__.py +0 -0
  632. {pactkit-2.23.0 → pactkit-2.24.1}/tests/e2e/cli/__init__.py +0 -0
  633. {pactkit-2.23.0 → pactkit-2.24.1}/tests/e2e/cli/test_cli_e2e.py +0 -0
  634. {pactkit-2.23.0 → pactkit-2.24.1}/tests/e2e/cli/test_story_slim146_cli.py +0 -0
  635. {pactkit-2.23.0 → pactkit-2.24.1}/tests/e2e/cli/test_story_slim147_workflow_cli.py +0 -0
  636. {pactkit-2.23.0 → pactkit-2.24.1}/tests/e2e/cli/test_story_slim148_governance_cli.py +0 -0
  637. {pactkit-2.23.0 → pactkit-2.24.1}/tests/e2e/cli/test_story_slim149_query_cli.py +0 -0
  638. {pactkit-2.23.0 → pactkit-2.24.1}/tests/fixtures/agent_parser/agents_dir/researcher.yaml +0 -0
  639. {pactkit-2.23.0 → pactkit-2.24.1}/tests/fixtures/agent_parser/agents_dir/writer.yaml +0 -0
  640. {pactkit-2.23.0 → pactkit-2.24.1}/tests/fixtures/agent_parser/langgraph_app.py +0 -0
  641. {pactkit-2.23.0 → pactkit-2.24.1}/tests/fixtures/agent_parser/mcp_settings.json +0 -0
  642. {pactkit-2.23.0 → pactkit-2.24.1}/tests/fixtures/api_call_parser/axios_style.tsx +0 -0
  643. {pactkit-2.23.0 → pactkit-2.24.1}/tests/fixtures/api_call_parser/dynamic.tsx +0 -0
  644. {pactkit-2.23.0 → pactkit-2.24.1}/tests/fixtures/api_call_parser/page.tsx +0 -0
  645. {pactkit-2.23.0 → pactkit-2.24.1}/tests/fixtures/cli_help_golden/audit.txt +0 -0
  646. {pactkit-2.23.0 → pactkit-2.24.1}/tests/fixtures/cli_help_golden/backfill-release.txt +0 -0
  647. {pactkit-2.23.0 → pactkit-2.24.1}/tests/fixtures/cli_help_golden/board.txt +0 -0
  648. {pactkit-2.23.0 → pactkit-2.24.1}/tests/fixtures/cli_help_golden/clean.txt +0 -0
  649. {pactkit-2.23.0 → pactkit-2.24.1}/tests/fixtures/cli_help_golden/commit-gate.txt +0 -0
  650. {pactkit-2.23.0 → pactkit-2.24.1}/tests/fixtures/cli_help_golden/context.txt +0 -0
  651. {pactkit-2.23.0 → pactkit-2.24.1}/tests/fixtures/cli_help_golden/coverage-gate.txt +0 -0
  652. {pactkit-2.23.0 → pactkit-2.24.1}/tests/fixtures/cli_help_golden/deps.txt +0 -0
  653. {pactkit-2.23.0 → pactkit-2.24.1}/tests/fixtures/cli_help_golden/done-verify.txt +0 -0
  654. {pactkit-2.23.0 → pactkit-2.24.1}/tests/fixtures/cli_help_golden/garden.txt +0 -0
  655. {pactkit-2.23.0 → pactkit-2.24.1}/tests/fixtures/cli_help_golden/generate-id.txt +0 -0
  656. {pactkit-2.23.0 → pactkit-2.24.1}/tests/fixtures/cli_help_golden/governance.txt +0 -0
  657. {pactkit-2.23.0 → pactkit-2.24.1}/tests/fixtures/cli_help_golden/guard.txt +0 -0
  658. {pactkit-2.23.0 → pactkit-2.24.1}/tests/fixtures/cli_help_golden/init.txt +0 -0
  659. {pactkit-2.23.0 → pactkit-2.24.1}/tests/fixtures/cli_help_golden/interface-summary.txt +0 -0
  660. {pactkit-2.23.0 → pactkit-2.24.1}/tests/fixtures/cli_help_golden/invariants-refresh.txt +0 -0
  661. {pactkit-2.23.0 → pactkit-2.24.1}/tests/fixtures/cli_help_golden/issue-sync.txt +0 -0
  662. {pactkit-2.23.0 → pactkit-2.24.1}/tests/fixtures/cli_help_golden/lesson-append.txt +0 -0
  663. {pactkit-2.23.0 → pactkit-2.24.1}/tests/fixtures/cli_help_golden/lint-context.txt +0 -0
  664. {pactkit-2.23.0 → pactkit-2.24.1}/tests/fixtures/cli_help_golden/lint-lessons.txt +0 -0
  665. {pactkit-2.23.0 → pactkit-2.24.1}/tests/fixtures/cli_help_golden/lint-testcase.txt +0 -0
  666. {pactkit-2.23.0 → pactkit-2.24.1}/tests/fixtures/cli_help_golden/lint.txt +0 -0
  667. {pactkit-2.23.0 → pactkit-2.24.1}/tests/fixtures/cli_help_golden/observe.txt +0 -0
  668. {pactkit-2.23.0 → pactkit-2.24.1}/tests/fixtures/cli_help_golden/query.txt +0 -0
  669. {pactkit-2.23.0 → pactkit-2.24.1}/tests/fixtures/cli_help_golden/redetect-stack.txt +0 -0
  670. {pactkit-2.23.0 → pactkit-2.24.1}/tests/fixtures/cli_help_golden/regression.txt +0 -0
  671. {pactkit-2.23.0 → pactkit-2.24.1}/tests/fixtures/cli_help_golden/report.txt +0 -0
  672. {pactkit-2.23.0 → pactkit-2.24.1}/tests/fixtures/cli_help_golden/schema.txt +0 -0
  673. {pactkit-2.23.0 → pactkit-2.24.1}/tests/fixtures/cli_help_golden/sec-scope.txt +0 -0
  674. {pactkit-2.23.0 → pactkit-2.24.1}/tests/fixtures/cli_help_golden/spec-graph.txt +0 -0
  675. {pactkit-2.23.0 → pactkit-2.24.1}/tests/fixtures/cli_help_golden/spec-lint.txt +0 -0
  676. {pactkit-2.23.0 → pactkit-2.24.1}/tests/fixtures/cli_help_golden/spec-preflight.txt +0 -0
  677. {pactkit-2.23.0 → pactkit-2.24.1}/tests/fixtures/cli_help_golden/spec-status.txt +0 -0
  678. {pactkit-2.23.0 → pactkit-2.24.1}/tests/fixtures/cli_help_golden/sync.txt +0 -0
  679. {pactkit-2.23.0 → pactkit-2.24.1}/tests/fixtures/cli_help_golden/test-map.txt +0 -0
  680. {pactkit-2.23.0 → pactkit-2.24.1}/tests/fixtures/cli_help_golden/update.txt +0 -0
  681. {pactkit-2.23.0 → pactkit-2.24.1}/tests/fixtures/cli_help_golden/upgrade.txt +0 -0
  682. {pactkit-2.23.0 → pactkit-2.24.1}/tests/fixtures/cli_help_golden/version.txt +0 -0
  683. {pactkit-2.23.0 → pactkit-2.24.1}/tests/fixtures/cli_help_golden/visualize.txt +0 -0
  684. {pactkit-2.23.0 → pactkit-2.24.1}/tests/fixtures/cli_help_golden/work-unit.txt +0 -0
  685. {pactkit-2.23.0 → pactkit-2.24.1}/tests/fixtures/cli_help_golden/workflow.txt +0 -0
  686. {pactkit-2.23.0 → pactkit-2.24.1}/tests/fixtures/config_golden/copy_claude.json +0 -0
  687. {pactkit-2.23.0 → pactkit-2.24.1}/tests/fixtures/config_golden/copy_claude.yaml +0 -0
  688. {pactkit-2.23.0 → pactkit-2.24.1}/tests/fixtures/config_golden/copy_codex.json +0 -0
  689. {pactkit-2.23.0 → pactkit-2.24.1}/tests/fixtures/config_golden/copy_codex.yaml +0 -0
  690. {pactkit-2.23.0 → pactkit-2.24.1}/tests/fixtures/config_golden/copy_github.json +0 -0
  691. {pactkit-2.23.0 → pactkit-2.24.1}/tests/fixtures/config_golden/copy_github.yaml +0 -0
  692. {pactkit-2.23.0 → pactkit-2.24.1}/tests/fixtures/config_golden/empty.json +0 -0
  693. {pactkit-2.23.0 → pactkit-2.24.1}/tests/fixtures/config_golden/empty.yaml +0 -0
  694. {pactkit-2.23.0 → pactkit-2.24.1}/tests/fixtures/config_golden/full_legacy.json +0 -0
  695. {pactkit-2.23.0 → pactkit-2.24.1}/tests/fixtures/config_golden/full_legacy.yaml +0 -0
  696. {pactkit-2.23.0 → pactkit-2.24.1}/tests/fixtures/config_golden/minimal.json +0 -0
  697. {pactkit-2.23.0 → pactkit-2.24.1}/tests/fixtures/config_golden/minimal.yaml +0 -0
  698. {pactkit-2.23.0 → pactkit-2.24.1}/tests/fixtures/config_golden/unknown_keys.json +0 -0
  699. {pactkit-2.23.0 → pactkit-2.24.1}/tests/fixtures/config_golden/unknown_keys.yaml +0 -0
  700. {pactkit-2.23.0 → pactkit-2.24.1}/tests/integration/__init__.py +0 -0
  701. {pactkit-2.23.0 → pactkit-2.24.1}/tests/integration/test_deploy_classic.py +0 -0
  702. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_agent_features.py +0 -0
  703. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_agent_frontmatter.py +0 -0
  704. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_agents_enrichment.py +0 -0
  705. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_audit.py +0 -0
  706. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_blast_radius.py +0 -0
  707. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_board_bug027.py +0 -0
  708. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_board_sections.py +0 -0
  709. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_bug001_skill_path.py +0 -0
  710. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_bug002_plugin_paths.py +0 -0
  711. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_bug003_multi_import.py +0 -0
  712. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_bug004_dead_set.py +0 -0
  713. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_bug005_archive_taskless.py +0 -0
  714. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_bug006_scan_excludes.py +0 -0
  715. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_bug007_stale_trace_refs.py +0 -0
  716. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_bug008_stale_command_refs.py +0 -0
  717. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_bug009_project_config_backfill.py +0 -0
  718. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_bug010_rewrite_yaml.py +0 -0
  719. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_bug011_stale_refs.py +0 -0
  720. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_bug012_call_graph_filter.py +0 -0
  721. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_bug013_config_single_source.py +0 -0
  722. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_bug014_version_hygiene.py +0 -0
  723. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_bug017_project_init_playbook.py +0 -0
  724. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_bug018_issue_tracker_verification.py +0 -0
  725. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_bug019_venv_deployment.py +0 -0
  726. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_bug020_claude_md_backup.py +0 -0
  727. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_bug025_release_delegation.py +0 -0
  728. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_bug026_version_sync.py +0 -0
  729. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_bug028_ghost_refs.py +0 -0
  730. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_bug029_stack_detection_fallback.py +0 -0
  731. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_bug030_spec_lint_cli.py +0 -0
  732. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_bug031_docstring_accuracy.py +0 -0
  733. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_bug034_plan_metadata_template.py +0 -0
  734. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_bug_021.py +0 -0
  735. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_bug_022.py +0 -0
  736. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_bug_023.py +0 -0
  737. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_bug_024.py +0 -0
  738. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_bug_slim001_env_detection.py +0 -0
  739. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_bug_slim002_instruction_collision.py +0 -0
  740. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_bug_slim003.py +0 -0
  741. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_bug_slim004.py +0 -0
  742. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_bug_slim005.py +0 -0
  743. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_bug_slim006.py +0 -0
  744. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_bug_slim089_global_claude_md.py +0 -0
  745. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_check_command.py +0 -0
  746. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_check_extensions_072_073.py +0 -0
  747. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_check_playbook_072_073.py +0 -0
  748. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_cli_help_surface.py +0 -0
  749. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_command_frontmatter.py +0 -0
  750. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_command_visualize_modes.py +0 -0
  751. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_complexity.py +0 -0
  752. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_config.py +0 -0
  753. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_config_auto_merge.py +0 -0
  754. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_config_sync_precedence.py +0 -0
  755. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_constitution_sharpening.py +0 -0
  756. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_context_gen.py +0 -0
  757. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_create_skill.py +0 -0
  758. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_cross_flow_matrix.py +0 -0
  759. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_deploy_base.py +0 -0
  760. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_deploy_ownership_safety.py +0 -0
  761. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_deployer_cleanup.py +0 -0
  762. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_deployer_plugin.py +0 -0
  763. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_deployment_transaction.py +0 -0
  764. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_deps.py +0 -0
  765. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_design_command.py +0 -0
  766. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_done_gates.py +0 -0
  767. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_done_verify.py +0 -0
  768. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_draw_prompt.py +0 -0
  769. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_draw_references.py +0 -0
  770. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_drawio_mcp.py +0 -0
  771. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_engine_robustness.py +0 -0
  772. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_garden.py +0 -0
  773. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_gate_fail_closed.py +0 -0
  774. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_home_path_fix.py +0 -0
  775. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_hotfix_command.py +0 -0
  776. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_hotfix_legacy_constitution.py +0 -0
  777. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_init_guard.py +0 -0
  778. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_init_playbook_074.py +0 -0
  779. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_interface_summary.py +0 -0
  780. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_lang_profiles.py +0 -0
  781. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_layer_violations.py +0 -0
  782. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_legacy_engine_freeze.py +0 -0
  783. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_lessons_rotation_075.py +0 -0
  784. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_list_stories.py +0 -0
  785. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_mcp_integration.py +0 -0
  786. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_model_config.py +0 -0
  787. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_modular_constitution.py +0 -0
  788. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_monorepo_detect.py +0 -0
  789. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_multi_prefix.py +0 -0
  790. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_observe.py +0 -0
  791. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_pdca_semantics_v2.py +0 -0
  792. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_pdca_slim.py +0 -0
  793. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_profiles.py +0 -0
  794. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_project_root.py +0 -0
  795. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_project_visibility.py +0 -0
  796. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_prompt_cli_contract.py +0 -0
  797. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_prompt_cli_refs.py +0 -0
  798. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_prompt_quality_075.py +0 -0
  799. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_prompt_structural_invariants.py +0 -0
  800. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_prompts_package.py +0 -0
  801. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_release.py +0 -0
  802. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_release_field.py +0 -0
  803. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_release_v110.py +0 -0
  804. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_render_prompt.py +0 -0
  805. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_report_parser.py +0 -0
  806. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_report_unified.py +0 -0
  807. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_resolve_scope.py +0 -0
  808. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_review_command.py +0 -0
  809. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_rule_registry_architecture.py +0 -0
  810. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_rules_enrichment.py +0 -0
  811. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_scaffold.py +0 -0
  812. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_scaffold_developer_prefix.py +0 -0
  813. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_schemas.py +0 -0
  814. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_script_extraction.py +0 -0
  815. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_session_context.py +0 -0
  816. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_skill_structure.py +0 -0
  817. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_skills_enrichment.py +0 -0
  818. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_smart_regression.py +0 -0
  819. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_solution_design_rule.py +0 -0
  820. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_spec_preflight.py +0 -0
  821. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_sprint_command.py +0 -0
  822. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_stack_references.py +0 -0
  823. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_status_command.py +0 -0
  824. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_statusline.py +0 -0
  825. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story014_release.py +0 -0
  826. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story015_ci_lint_gate.py +0 -0
  827. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story016_claude_md.py +0 -0
  828. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story017_init_claude_md.py +0 -0
  829. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story018_arch_staleness.py +0 -0
  830. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story019_bailout.py +0 -0
  831. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story020_horizon.py +0 -0
  832. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story021_rfc.py +0 -0
  833. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story022_decision_tree.py +0 -0
  834. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story023_test_quality.py +0 -0
  835. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story024_native_agent.py +0 -0
  836. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story025_ci_pipeline.py +0 -0
  837. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story026_issue_tracker.py +0 -0
  838. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story028_rule_scoping.py +0 -0
  839. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story029_doctor.py +0 -0
  840. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story030_lint.py +0 -0
  841. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story031_git_init_guard.py +0 -0
  842. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story032_greenfield_redirect.py +0 -0
  843. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story033_config_backfill.py +0 -0
  844. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story034_plan_config_refresh.py +0 -0
  845. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story035_readme_docs.py +0 -0
  846. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story037_regression_fix.py +0 -0
  847. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story038_call_graph_update.py +0 -0
  848. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story039_venv_config.py +0 -0
  849. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story040_layered_claude_md.py +0 -0
  850. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story042_spec_linter.py +0 -0
  851. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story043_active_clarify.py +0 -0
  852. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story044_consistency_check.py +0 -0
  853. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story045_auto_pr.py +0 -0
  854. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story047_enterprise_flags.py +0 -0
  855. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story048_worktree_isolation.py +0 -0
  856. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story049_community_standards.py +0 -0
  857. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story050_doc_only_shortcut.py +0 -0
  858. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story051_workflow_streamlining.py +0 -0
  859. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story052_conditional_github_release.py +0 -0
  860. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story053_impact_regression.py +0 -0
  861. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story055_commands.py +0 -0
  862. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story055_config.py +0 -0
  863. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story055_spec_linter.py +0 -0
  864. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story056_commands.py +0 -0
  865. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story056_config.py +0 -0
  866. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story057_implicit_cleanup.py +0 -0
  867. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story058_opencode_extraction.py +0 -0
  868. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story058_routing_fix.py +0 -0
  869. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story059_codex_removal.py +0 -0
  870. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story060_init_hang.py +0 -0
  871. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story061_remove_thinking.py +0 -0
  872. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story062_mcp_recommendations.py +0 -0
  873. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story063_prompt_slimming.py +0 -0
  874. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story064_venv_local_md.py +0 -0
  875. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story065_sprint_model.py +0 -0
  876. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story072_developer_prefix.py +0 -0
  877. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story106_lateral_scan.py +0 -0
  878. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story133_debug_skill.py +0 -0
  879. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_pdca_host_capsules.py +0 -0
  880. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_pdca_semantics_v2.py +0 -0
  881. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim009_lazy_rules.py +0 -0
  882. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim010_dry_refactor.py +0 -0
  883. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim011_command_rules.py +0 -0
  884. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim012_ci.py +0 -0
  885. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim014_clean.py +0 -0
  886. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim014_context.py +0 -0
  887. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim014_guard.py +0 -0
  888. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim014_lazy_viz.py +0 -0
  889. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim014_next_id.py +0 -0
  890. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim014_regression.py +0 -0
  891. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim014_sec_scope.py +0 -0
  892. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim014_validators.py +0 -0
  893. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim015_doctor.py +0 -0
  894. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim016_testmap_lint.py +0 -0
  895. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim017.py +0 -0
  896. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim018.py +0 -0
  897. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim019_plan_subphases.py +0 -0
  898. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim020_explore_stall_fix.py +0 -0
  899. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim021.py +0 -0
  900. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim022.py +0 -0
  901. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim023.py +0 -0
  902. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim024.py +0 -0
  903. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim025.py +0 -0
  904. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim026.py +0 -0
  905. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim027.py +0 -0
  906. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim028.py +0 -0
  907. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim029.py +0 -0
  908. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim030.py +0 -0
  909. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim031.py +0 -0
  910. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim032.py +0 -0
  911. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim033.py +0 -0
  912. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim034.py +0 -0
  913. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim035.py +0 -0
  914. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim036.py +0 -0
  915. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim037.py +0 -0
  916. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim038.py +0 -0
  917. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim039.py +0 -0
  918. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim040.py +0 -0
  919. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim041.py +0 -0
  920. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim042.py +0 -0
  921. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim043.py +0 -0
  922. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim044.py +0 -0
  923. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim045.py +0 -0
  924. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim046.py +0 -0
  925. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim047.py +0 -0
  926. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim048.py +0 -0
  927. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim049.py +0 -0
  928. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim051.py +0 -0
  929. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim052.py +0 -0
  930. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim053.py +0 -0
  931. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim054.py +0 -0
  932. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim055.py +0 -0
  933. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim056.py +0 -0
  934. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim060_codex_profile.py +0 -0
  935. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim063.py +0 -0
  936. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim065.py +0 -0
  937. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim076_multistack.py +0 -0
  938. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim077_monorepo_stack.py +0 -0
  939. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim078.py +0 -0
  940. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim079.py +0 -0
  941. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim080.py +0 -0
  942. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim081.py +0 -0
  943. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim082.py +0 -0
  944. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim083.py +0 -0
  945. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim084.py +0 -0
  946. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim095.py +0 -0
  947. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim098_pdca_nudge.py +0 -0
  948. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim099_act_context_ref.py +0 -0
  949. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim102_version_marker.py +0 -0
  950. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim104_should_semantics.py +0 -0
  951. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim107.py +0 -0
  952. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim109_journey_spec.py +0 -0
  953. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim111_playwright_assertion.py +0 -0
  954. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim112_rules_split.py +0 -0
  955. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim114_journey_sync.py +0 -0
  956. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim119.py +0 -0
  957. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim120.py +0 -0
  958. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim121.py +0 -0
  959. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim125.py +0 -0
  960. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim126.py +0 -0
  961. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim127_managed_block.py +0 -0
  962. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim128_engineering_concerns.py +0 -0
  963. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim132.py +0 -0
  964. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim134_no_model_in_frontmatter.py +0 -0
  965. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim135_config_schema.py +0 -0
  966. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim139_skill_manifest.py +0 -0
  967. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim141_manifest_hash.py +0 -0
  968. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim142_all_target_isolation.py +0 -0
  969. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim143_spec_graph.py +0 -0
  970. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim144_wave_mode.py +0 -0
  971. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim145.py +0 -0
  972. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim146.py +0 -0
  973. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim147.py +0 -0
  974. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim148.py +0 -0
  975. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim149.py +0 -0
  976. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim150.py +0 -0
  977. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim_stop_hook.py +0 -0
  978. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_story_slim_work_units.py +0 -0
  979. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_tools.py +0 -0
  980. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_topology_parsers_066.py +0 -0
  981. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_update_task.py +0 -0
  982. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_visualize_call_nested.py +0 -0
  983. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_visualize_chain_fix.py +0 -0
  984. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_visualize_modes.py +0 -0
  985. {pactkit-2.23.0 → pactkit-2.24.1}/tests/unit/test_visualize_multilang_chain.py +0 -0
@@ -1,5 +1,31 @@
1
1
  # Changelog
2
2
 
3
+ ## [2.24.1] - 2026-08-27
4
+
5
+ ### Fixed
6
+ - **Enforcement probes resolve the project venv's pytest** — 2.24.0's static probes checked `importlib` in the *current* interpreter, so a pipx-installed CLI (whose venv has no pytest) reported commit-gate and coverage-gate as `unavailable` even though the gates themselves run the project venv's pytest perfectly. Probes now resolve the interpreter the same way the gates do (`pytest_command`).
7
+
8
+ ## [2.24.0] - 2026-08-27
9
+
10
+ ### Added
11
+ - **Run event streams (append-only)** — every workflow-state mutation appends a typed event (`step_entered`, `checkpoint_written`, `evidence_invalidated`, `blocker_raised/cleared`, `run_completed`, `run_archived`) beside its checkpoint, written inside the same lock. The checkpoint JSON stays the projection; the event log holds the history the overwrite-style checkpoint cannot. Crash-tolerant: a torn trailing line is skipped and counted, never corrupts earlier lines.
12
+ - **`pactkit stats`** — per-run friction metrics (duration, blocker dwell by kind, step rework, authorization decisions) with `--format json` for dashboards; pre-2.24 runs degrade to `events: unavailable` instead of failing. `/project-done` now records a friction snapshot per story. `pactkit continuation events <story>` inspects a run's stream.
13
+ - **Gate enforcement completeness reporting** — every gate declares `full / degraded / unavailable` instead of degrading silently through a WARN line: commit-gate and coverage-gate record their observed status, `pactkit doctor --json` exposes an `enforcement` section (plus orphaned specs, config drift, graph provider, deploy parity, codex capabilities), and human doctor output gains per-gate summary lines. Self-lock degradation is now queryable, not silent.
14
+ - **Codex native hooks thin registration** — `pactkit init --format codex` merges a PreToolUse→`pactkit commit-gate --hook` entry into the project's `.codex/hooks.json` (Codex's hooks engine is deliberately Claude-wire-compatible: tool_name `Bash`, exit 2 + stderr block — verified against 0.149.1; hooks.json discovery requires ≥0.114.0). User entries are preserved verbatim, unmergeable structures are left byte-identical, `config.toml` is never touched, deployment output carries the one-time trust-confirmation notice, and the git pre-commit fallback stays active until trust is confirmed. `pactkit doctor` probes the local Codex version and reports engine/deployment/trust state.
15
+ - **Authorization audit trail** — `authorization_asked`/`authorization_granted` events fire automatically at authorization-blocker transitions (asked carries the sanitized question), and `pactkit continuation deny <story> --reason` records the state machine's first machine-expressible "no": an `authorization_denied` audit event plus a blocked-checkpoint rewrite (`denied: <reason>`), with double-deny and non-authorization denials rejected. `pactkit stats` reports per-run decision counts.
16
+ - **outcome_unknown crash recovery** — commit-gate opens an attempt fence (with pid) *before* running; the terminal record closes it. A crash between the two leaves a machine-observable open fence: `resume` blocks with an actionable reason (live pid → "still active, wait"; dead pid → "re-run the gate") — no time-window guessing. Re-running the gate closes the fence and restores normal decisions. Projects without fences behave exactly as before.
17
+ - **Command manifest v2 (reference digests)** — the ownership ledger for codex command skills records the sha256 of every deployed reference file (`record_deployed_reference`/`read_command_references`); stale-reference cleanup consumes these proofs, restoring the whole-directory retirement of disabled commands that core's 5311c56 ownership narrowing had inadvertently broken. v1 manifests read compatibly; corrupt manifests degrade to empty proofs.
18
+
19
+ ### Fixed
20
+ - **pactkit-codex 2.23.0 ownership regression** (never published) — `skills/*/references/**` files dropped out of the deployed manifest's files table after the ownership narrowing, so stale references could never be retired; the command manifest v2 reference ledger (above) repairs deletion proofs without re-render comparisons (the codex render pipeline depends on deploy-time `enabled_commands`, making content replay structurally unusable as ownership evidence).
21
+ - **`pactkit continuation events` path traversal** — story IDs are validated before the event-stream path is built (QA follow-up).
22
+ - **hooks.json merge safety** — invalid user structures (`hooks` non-dict, `PreToolUse` non-list) are left byte-identical with an explicit report instead of being rewritten; merges run under a best-effort inter-process lock that proceeds unlocked on timeout (deployment never hangs).
23
+ - **Blocker dwell undercount** — consecutive re-raises within one blocker episode no longer restart the dwell measurement; the episode is anchored at its first raise.
24
+
25
+ ### Changed
26
+ - **`hook_entry` dual-host normalization** — legacy codex array-form commands are joined before matching, and the payload `cwd` overrides the CLI-resolved project root on both hosts.
27
+ - **Golden CLI surface** — pins the new `stats` subcommand, `continuation deny`/`events` actions, and `doctor --json`.
28
+
3
29
  ## [2.23.0] - 2026-08-27
4
30
 
5
31
  ### Added
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: pactkit
3
- Version: 2.23.0
3
+ Version: 2.24.1
4
4
  Summary: Spec-driven agentic DevOps toolkit for AI coding assistants
5
5
  Project-URL: Homepage, https://pactkit.dev
6
6
  Project-URL: Repository, https://github.com/pactkit/pactkit-public
@@ -23,7 +23,7 @@ Classifier: Topic :: Software Development :: Quality Assurance
23
23
  Requires-Python: >=3.10
24
24
  Requires-Dist: pyyaml>=6.0
25
25
  Provides-Extra: all
26
- Requires-Dist: pactkit-codex<2.24.0,>=2.23.0; extra == 'all'
26
+ Requires-Dist: pactkit-codex<2.25.0,>=2.24.0; extra == 'all'
27
27
  Requires-Dist: pactkit-opencode>=2.9.0; extra == 'all'
28
28
  Requires-Dist: ruff>=0.4; extra == 'all'
29
29
  Requires-Dist: tree-sitter-go>=0.25; extra == 'all'
@@ -31,7 +31,7 @@ Requires-Dist: tree-sitter-java>=0.23; extra == 'all'
31
31
  Requires-Dist: tree-sitter-typescript>=0.23; extra == 'all'
32
32
  Requires-Dist: tree-sitter>=0.25; extra == 'all'
33
33
  Provides-Extra: codex
34
- Requires-Dist: pactkit-codex<2.24.0,>=2.23.0; extra == 'codex'
34
+ Requires-Dist: pactkit-codex<2.25.0,>=2.24.0; extra == 'codex'
35
35
  Provides-Extra: lint
36
36
  Requires-Dist: ruff>=0.4; extra == 'lint'
37
37
  Provides-Extra: opencode
@@ -0,0 +1,10 @@
1
+ ---
2
+ schema_version: 1
3
+ id: LESSON-20260827093143-3236113033
4
+ date: '2026-08-27'
5
+ story_id: STORY-slim-20260827fc9de5542ad7
6
+ context: STORY-slim-20260827fc9de5542ad7
7
+ tags: []
8
+ ---
9
+
10
+ Adapter-rendered artifacts (codex command references) need deploy-time digest recording via record_deployed_reference in command_ownership.py — content re-render comparison cannot prove ownership because _filter_codex_command_reference_sections in deployer.py depends on deploy-time enabled_commands
@@ -0,0 +1,10 @@
1
+ ---
2
+ schema_version: 1
3
+ id: LESSON-20260827095642-059a7e996b
4
+ date: '2026-08-27'
5
+ story_id: STORY-slim-20260827024e71df170f
6
+ context: STORY-slim-20260827024e71df170f
7
+ tags: []
8
+ ---
9
+
10
+ Codex hooks engine is deliberately Claude-Code wire-compatible (hook_names.rs serializes shell tool as 'Bash'; pre_tool_use.rs honors exit 2 + stderr block) — hook_entry in commit_gate.py needed only array-command normalization and payload-cwd root resolution, zero protocol fork
@@ -0,0 +1,10 @@
1
+ ---
2
+ schema_version: 1
3
+ id: LESSON-20260827102057-e04522a6fc
4
+ date: '2026-08-27'
5
+ story_id: STORY-slim-20260827eddbe9669c87
6
+ context: STORY-slim-20260827eddbe9669c87
7
+ tags: []
8
+ ---
9
+
10
+ Terminal-only status ledgers cannot detect interruption — record_attempt in enforcement.py must open a running fence BEFORE the verification runs so a crash between attempt and outcome leaves a machine-observable unknown; resume in continuation.py then blocks on the open fence until the gate re-runs
@@ -15,7 +15,7 @@
15
15
 
16
16
  ## Invariants
17
17
 
18
- 1. All 4651+ tests must pass before any commit to `main`.
18
+ 1. All 4711+ tests must pass before any commit to `main`.
19
19
  2. Specs (`docs/specs/`) are the source of truth — code conforms to specs, not the reverse.
20
20
  3. CLI entry point is `pactkit` via `src/pactkit/cli.py:main`.
21
21
  4. No runtime dependencies beyond `pyyaml`.
@@ -0,0 +1,242 @@
1
+ # PactKit vs DeepSeek Harness / Codex CLI — 对比分析与提升清单
2
+
3
+ > 日期:2026-08-27
4
+ > 对比对象:
5
+ > - [deepseek-harness](https://github.com/deepseek-ai/deepseek-harness)(本地 checkout:`/Users/slim/workspaces/deepseek-harness`,版本 0.1.1-rc.2,developer preview)— 全功能 agent 运行时(**机制思想参照系**)
6
+ > - [Codex CLI](https://github.com/openai/codex)(本地 checkout:`/Users/slim/workspaces/codex`,Rust workspace ~120 crates)— **PactKit 的部署宿主之一**(宿主对齐参照系)
7
+ >
8
+ > 结论用途:PactKit 后续版本改进候选清单(非承诺排期)
9
+
10
+ ---
11
+
12
+ ## 0. 一句话结论
13
+
14
+ **对比 dsh(运行时参照系)**:PactKit 在证据治理和 fail-closed 设计上领先(dsh 完全没有 PDCA / Spec / Board 对应物);dsh 值得抄的不是功能,而是三个机制思想:
15
+
16
+ 1. **事件溯源的会话模型**(append-only 事件流替代覆盖式 checkpoint)
17
+ 2. **自报降级状态的诚实门**(gate 必须声明自己的 enforcement completeness)
18
+ 3. **"文档由代码生成且 CI 防漂移"的工程纪律**(生成式目录 + 漂移门)
19
+
20
+ **对比 Codex(宿主参照系)**:宿主的扩展面进化速度超过了 pactkit-codex adapter 的利用程度 —— Codex 现已拥有**12 事件生命周期 hooks 引擎、插件+marketplace 系统、Starlark 确定性策略引擎**,而 adapter 目前只部署 skills/rules/prompts 静态文件,`commit-gate` 的 hook 通道只接了 Claude 侧。宿主已经把"确定性拦截"的原生机制造好了,PactKit 没用上。
21
+
22
+ 其中 dsh 线的前两条(事件流 + 诚实门)正好是 PactKit 当前"collecting friction data"阶段缺的那双眼睛;Codex 线则是**不新增语义、只接通既有机制**就能拿到的拦截力升级。
23
+
24
+ ---
25
+
26
+ ## 1. 定位差异(为什么不是逐功能对比)
27
+
28
+ 三个项目不在同一层:
29
+
30
+ - **dsh** 是完整的 agent **运行时**:基于 Cordis(vendored)的"一切皆插件"架构,自己驱动模型、执行工具、管理会话,含 Web UI、沙箱、subagent、工作流引擎。
31
+ - **Codex CLI** 是 PactKit 的**宿主**之一:OpenAI 的 Rust 实现 coding agent,拥有 OS 级沙箱、12 事件 hooks 引擎、插件系统。它既是"可借鉴机制的来源",也是"必须对齐的部署目标"。
32
+ - **PactKit** 是骑在宿主 CLI(Claude Code / OpenCode / Codex)之上的**治理层**:不驱动模型,只做确定性验证(evidence-typed workflow registry、fail-closed gates、部署完整性)。
33
+
34
+ 因此对比有两条线:
35
+ - **dsh 线**:哪些机制性思想可以移植到 PactKit 的治理定位内。两家是互补关系——dsh 甚至把 Claude Code 和 Codex 当作 subagent 后端(`packages/subagent/subagent-claude-code` / `subagent-codex`),它缺的 PDCA/证据层正是 PactKit 的主场。
36
+ - **Codex 线**:宿主的原生扩展面(hooks / 插件 / 策略层)与 pactkit-codex adapter 当前利用度之间的**已查证差距**(见第 4 节)。
37
+
38
+ ---
39
+
40
+ ## 2. 能力对比总览(dsh 线)
41
+
42
+ | 维度 | deepseek-harness | PactKit | 差距性质 |
43
+ |---|---|---|---|
44
+ | 运行时 | 完整 agent loop(Cordis 插件化,一切可插拔) | 无(寄生于宿主) | 定位使然,不补 |
45
+ | 会话模型 | **append-only 事件流**,"model-visible ⟺ logged" 不变量;fork/resume/compaction/telemetry 全部从同一条流推导 | 扁平 JSON checkpoint(`continuation.py`),覆盖式写入 | **可移植,价值高** |
46
+ | 崩溃恢复 | 持久化屏障(模型请求/副作用前先落盘)+ `TOOL_OUTCOME_UNKNOWN` 恢复语义 | 按 step checkpoint;artifact 消失会 fail 而非 brick,但无"结果未知"中间态 | **可移植** |
47
+ | 工具安全 | 单调 guard(只能拒绝不能放行)+ fail-closed 审批 + **每次审批落一对 `asked/decided` 审计事件** | 授权门控 Story 写入(结构性防篡改),但授权决策本身无审计流 | **可移植** |
48
+ | 证据/治理 | 无 PDCA 对应物(仅 Agent Notes 设计决策记录 + 运行时不变量注册表) | **PactKit 主场**:workflow registry、fail-closed gates、delivery evidence、commit/coverage gate | PactKit 领先 |
49
+ | 可观测性 | OTel、token meter、session query 工具、事件回放 | doctor stdout + H1-H7 静态审计 + observe.py(web 指标);无 agent 行为级追踪 | **可移植,价值高** |
50
+ | 文档工程 | 生成式目录(工具/配置/事件 catalog)+ type-equiv 漂移门 + 双语 blob-hash 配对 + 自定义 merge driver | prompt↔CLI 一致性 CI + golden CLI snapshot | 部分可移植 |
51
+ | 测试纪律 | 逐文件 100% 覆盖率门 + **任何 model-visible 变更必须同 PR 带真实组合 snapshot 测试**(ACP + headless + Chromium 双 SDK) | 288 单测 + 部署完整性检查 + golden help snapshot | **可移植** |
52
+ | 沙箱/并行/模型路由 | Landlock/Seatbelt 沙箱、continuable 后台 subagent、LLM 适配层 | 均无 | 定位使然,不补 |
53
+
54
+ ---
55
+
56
+ ## 3. 可移植提升点 — dsh 线(按优先级)
57
+
58
+ ### P0 — 直接服务当前阶段(collecting friction data + enterprise adoption)
59
+
60
+ #### P0-1. Checkpoint 升级为 append-only 事件流
61
+
62
+ **dsh 机制**:`packages/core/session` —— Session 是类型化事件的只追加日志;不变量 "model-visible ⟺ logged"(凡是到达模型请求的内容必须可从日志重建,由运行时不变量强制)。fork、resume、compaction、telemetry、UI 全是这条流的投影。
63
+
64
+ **PactKit 现状**:`continuation.py` 是覆盖式 JSON —— 只知道 run 的*当前状态*,丢失*历史*(evidence 被推翻过几次、blocker 挂了多久、重试了几次)。
65
+
66
+ **落地做法**:
67
+ - `.pactkit/continuations/runs/<id>/` 下新增 `events.jsonl`;step 进入、evidence 记录/失效、blocker 升降各追加一条带时间戳事件
68
+ - 现有 JSON checkpoint 保留,作为事件的投影物化视图(兼容既有 `finish_guard` 读取路径)
69
+ - 改动面集中在 `ContinuationEngine` 内部,是 P0-2 的前提
70
+
71
+ #### P0-2. Friction 数据管道(run 指标采集与导出)
72
+
73
+ **背景**:项目记忆里写着 "Feature-complete, collecting friction points. No new features until friction data" —— 但 PactKit 目前**没有任何结构化的 run 指标出口**,friction data 实际上收不上来。
74
+
75
+ **落地做法**:基于 P0-1 的事件流,新增 `pactkit stats`(或 `pactkit runs`)命令,输出:
76
+ - 每 run 时长、evidence 重试次数、blocker 停留时长(按 blocker kind 分桶)
77
+ - gate 通过 / 降级 / 拦截比例
78
+ - 哪条 rule 被触发、哪个 workflow step 最常返工
79
+ - JSON 导出(`--format json`),将来接任何 dashboard 都有数据源
80
+
81
+ 这是 dsh token-meter + session stats 的治理版对应物,也是 enterprise 客户的必问项("你们的流程到底省了多少返工")。
82
+
83
+ #### P0-3. Gate 执行完整度上报("honest sandbox" 思想)
84
+
85
+ **dsh 机制**:沙箱后端必须自报 enforcement completeness(`full|partial`),调用方被迫正视缺口,不许假装全覆盖。
86
+
87
+ **PactKit 现状**:已有雏形——commit-gate 自锁保护是 fail-open + WARN(`commit_gate.py`),但这属于"悄悄降级"。
88
+
89
+ **落地做法**:
90
+ - 统一约定:每个 gate 输出机器可读的 enforcement 状态(`full / degraded / unavailable`)
91
+ - `doctor` 汇总所有 gate 的当前降级状态
92
+ - 企业客户审计时,"你们的门什么时候是虚掩的"是必答题;答案应该在 `pactkit doctor --json` 里
93
+
94
+ ### P1 — 机制强度提升
95
+
96
+ #### P1-1. 授权审计事件对
97
+
98
+ **dsh 机制**:每次审批落一对 `approval/asked` + `approval/decided` 审计事件到不可变日志,不可抵赖。
99
+
100
+ **PactKit 现状**:`user_input / authorization` blocker 只是暂停等待,人来解除,但**决策本身没有留痕**。
101
+
102
+ **落地做法**:在 P0-1 事件流里落 `authorization/asked` + `authorization/granted|denied` 事件对。enterprise 场景的合规刚需,且实现几乎免费(依赖 P0-1)。
103
+
104
+ #### P1-2. 崩溃恢复语义补全:`outcome_unknown` 中间态
105
+
106
+ **dsh 机制**:`packages/session/session-checkpoint-policy` 在每个模型请求和副作用工具体之前落持久化屏障;崩溃恢复时注入模型可见的 `TOOL_OUTCOME_UNKNOWN` 结果,专门设计成不破坏 KV-cache 前缀,避免 agent 假设成功或失败。
107
+
108
+ **PactKit 现状**:`revalidate_artifacts` 只处理"artifact 消失"一种情况。commit-gate 跑到一半被 Ctrl-C 时,run 没有明确表达"验证结果未知"。
109
+
110
+ **落地做法**:checkpoint 状态机增加 `outcome_unknown`(或 evidence 级别的 unknown 标记),恢复时强制重跑该验证步骤而非沿用旧结论。
111
+
112
+ #### P1-3. 设计决策记录(Agent Notes 的治理版)
113
+
114
+ **dsh 机制**:`.agents/notes/` 强制每个非平凡 PR 附带一份带生命周期的决策记录(`proposed/implemented/rejected` × 类型分类,路径编码生命周期),pre-commit 门检查"同一 PR 必须有 note"。
115
+
116
+ **PactKit 现状**:有 lessons.md(教训)和 stories(任务),但缺**"为什么这么做"的决策层**。
117
+
118
+ **落地做法**:与现有 `pactkit scaffold` / commit-gate 基础设施契合——加一个 note 模板 + commit-gate 规则:"本 commit 触及 governance/spec/architecture 文件时须有对应 decision note"。对 enterprise adoption 价值极高(他们最怕不可追溯的架构决定)。
119
+
120
+ ### P2 — 工程纪律(低成本,防漂移)
121
+
122
+ #### P2-1. 生成式目录 + 漂移门
123
+
124
+ **dsh 机制**:从源码生成工具/配置/事件目录进文档(`scripts/gen-cordis-catalog.ts` 等),CI 检查再生成是否 diff 为零;`type-equiv` 门抽取源码声明+JSDoc,文档粘贴漂移即 fail。
125
+
126
+ **PactKit 落地**:`workflow_registry.py`(所有 workflow 的 evidence 要求表)和 `RULE_DEFINITIONS`(16 条规则)目前只存在于代码里——生成 `docs/reference/` 目录页并 CI 校验,规则和证据要求永不与文档漂移。是现有 prompt↔CLI 一致性 CI 的同一思想延伸。
127
+
128
+ #### P2-2. 组装后 prompt 的跨宿主 snapshot 测试
129
+
130
+ **dsh 机制**:任何 model-visible 变更必须同 PR 带真实组合的 snapshot 测试(无 key、真实组装、多表面)。
131
+
132
+ **PactKit 落地**:已有 golden CLI help snapshot 与部署完整性检查,但**没有三个宿主渲染出的最终 prompt 的字节级快照**。加一个 e2e:deploy 到临时目录,对 Claude / OpenCode / Codex 三个 profile 的产物做 snapshot。prompt 模板改动导致的静默回归(2.21/2.22 withdrawn 这类事故)会被直接拦住。
133
+
134
+ #### P2-3. 配置分层组合(profile → 项目 → 用户 overlay)
135
+
136
+ **dsh 机制**:profile / bundle / patch 三层 last-write-wins + `--dump-config` 打印最终组合树。
137
+
138
+ **PactKit 落地**:`pactkit.yaml` + `FormatProfile` 目前是平面的。做成层叠 + `pactkit config dump`;多团队 enterprise 场景"公司基线覆盖项目覆盖个人"是常见诉求。
139
+
140
+ ---
141
+
142
+ ## 4. Codex CLI 对比(宿主视角)
143
+
144
+ Codex 与 dsh 的角色不同:它不是"抄思想"的对象,而是 PactKit 的部署目标。本节回答两个问题:**(a) Codex harness 有哪些机制 PactKit 可以借力或借鉴;(b) pactkit-codex adapter 相对 Codex 现有扩展面的真实差距在哪**(差距部分已逐一查证 PactKit 源码)。
145
+
146
+ ### 4.1 Codex 值得关注的 harness 机制
147
+
148
+ | 机制 | 位置 | 与 PactKit 的关系 |
149
+ |---|---|---|
150
+ | **12 事件 hooks 引擎**:PreToolUse(可 block + 改写输入 + 附加上下文)、PermissionRequest(可裁决)、PostToolUse、Pre/PostCompact、SessionStart/End、SubagentStart/Stop、Stop、Interrupt;支持 shell 命令和 **MCP 调用**两种 handler | `codex-rs/hooks/src/lib.rs`,schema 在 `hooks/schema/generated/` | commit-gate 可增加 Codex 原生通道(现在只有 Claude hook + git pre-commit) |
151
+ | **Hook 信任机制**:第三方 hook 需 content-hash 信任确认才启用;企业 `allow_managed_hooks_only=true` 可全锁 | `hooks/src/registry.rs` | adapter 部署 hook 的安全前提(对应 feedback: 绝不静默改用户工具配置) |
152
+ | **插件 + marketplace 系统**:一个 `.codex-plugin` manifest 捆绑 skills + hooks + MCP servers + apps | `codex-rs/plugin/src/manifest.rs`, `core-plugins/` | PactKit 已有 Claude plugin(`pactkit-plugin/`),Codex 有等价分发形态 |
153
+ | **Anthropic 兼容 SKILL.md + 隐式调用检测**:命令匹配 skill 脚本时触发审批 | `codex-rs/skills/` | PactKit skills 天然可迁移;隐式调用 = 免提示词的确定性触发点 |
154
+ | **Starlark execpolicy**:命令前缀规则 `allow/prompt/forbidden` + justification + 加载时自测试 | `codex-rs/execpolicy/` | "策略即数据"——PactKit 规则的宿主原生执行版 |
155
+ | **沙箱策略 + permission profiles 作为配置数据**:read-only / workspace-write / danger-full-access,分域文件系统策略 | `protocol/src/config_types.rs` | PactKit 的 write_scope 治理可编译到这一层 |
156
+ | **分层配置栈**:enterprise `requirements.toml` → managed → project `.codex/config.toml` → profile | `codex-rs/config/src/loader/` | 与 P2-3 配置分层的诉求完全同构,可参考其合并语义 |
157
+ | **Guardian auto-review**:`approvals_reviewer=auto_review` 让一个专门 subagent 顶在审批环里 | `codex-rs/core/src/guardian/` | PactKit Check 阶段自动化评审的宿主内对应物 |
158
+ | **不可变 rollout JSONL + SQLite 状态库**:追加式会话记录,fork/revert 保 thread id | `codex-rs/rollout/` | 佐证 P0-1 方向:三家(dsh/Codex/Claude)都是事件流模式 |
159
+ | **app-server JSON-RPC**:VS Code 同款协议,可编程 approve/steer turn | `codex-rs/app-server/` | PactKit 未来做监督面板的免费通道(`pactkit supervise`) |
160
+
161
+ ### 4.2 已查证的 adapter 差距(最 actionable 的部分)
162
+
163
+ 以下四条均已在 PactKit 源码中逐一定位确认:
164
+
165
+ 1. **commit-gate 只接了 Claude hook 通道**
166
+ `commit_gate.py:274`(`install_hook`)只 merge `.claude/settings.json`;Codex 宿主上仅有 git pre-commit 兜底(退出码语义也不同:Claude exit 2 / git exit 1)。而 Codex 现在有原生 PreToolUse(可 block + `updated_input` 改写)和 Stop 事件——拦截时点可以从"提交时"提前到"工具调用时",且能把修正反馈直接注入对话。
167
+
168
+ 2. **Codex profile 的能力模型已过时**
169
+ `profiles.py:212` 的 codex `FormatProfile` 把 `"hooks"` 列入 `excluded_agent_fields`(基于"Codex 没有 hooks"的旧假设,现在 Codex 有 SubagentStart/Stop 等 hooks);`supports_model_routing=False` 也与 Codex 现有的 `model_providers`/profiles 机制不符。能力标志目前是**硬编码快照**,而 Codex 的 wire 格式(hook schema、app-server)与二进制版本钉死。
170
+
171
+ 3. **MCP 只是声明,没有部署动作**
172
+ `supports_mcp=True`,但 `deployer.py:305` 仅打印一句 "Configure in Claude Code settings.json → mcpServers" 的手动提示;没有生成 Codex `[mcp_servers]` 配置段,也没有 Claude 侧的自动注册。PactKit 的治理工具(board / continuation / doctor)本可以作为 MCP server 原生暴露给宿主调用。
173
+
174
+ 4. **没有 Codex 插件分发形态**
175
+ PactKit 为 Claude 打了 `pactkit-plugin/` 插件包,Codex 现在有完全对等的机制(一个包捆绑 skills+hooks+MCP,marketplace 可发现),但 adapter 没有 `.codex-plugin` manifest 输出。发布流程第 6 步天然可以扩展出 Codex 目标。
176
+
177
+ ### 4.3 Codex 线新增提升项
178
+
179
+ #### P0-4. pactkit-codex adapter 接入 Codex hooks 引擎
180
+
181
+ **落地做法**:
182
+ - commit-gate 增加 Codex 通道:生成 `.codex/hooks.json`(PreToolUse 拦截 Bash git commit / Stop 事件检查 run 状态),handler 复用现有 `pactkit commit-gate --hook` 入口(Codex hook 事件名与 Claude Code 风格对齐,输入/输出 schema 需按 `hooks/schema/generated/` 适配)
183
+ - **信任机制红线**:Codex hook 需要 content-hash 信任确认才生效,企业环境可能 `allow_managed_hooks_only`。部署绝不能静默写入(对应 codex config.toml 两次被清空的事故教训)——部署时显式告知用户需要信任确认,`doctor` 增加 Codex hook 信任状态检测
184
+ - 同步修正 `profiles.py` 的 codex 能力标志(hooks 不再排除)
185
+
186
+ #### P1-4. Codex 插件分发形态
187
+
188
+ 生成 `.codex-plugin/` manifest(捆绑 skills + hooks.json + MCP server 声明),对称于现有 Claude plugin 发布流程。发布 checklist 第 6 步扩展为双目标。
189
+
190
+ #### P1-5. write_scope 编译到宿主策略层
191
+
192
+ PactKit 的 write_scope(Spec `Touches` ∪ 项目配置)目前只存在于 prompt 规则层。编译为:
193
+ - Codex:`sandbox_workspace_write` 边界 / permission profile / execpolicy 前缀规则
194
+ - Claude:permissions allowlist
195
+
196
+ 从"模型被提示不要越界"升级为"宿主结构性拒绝越界"。这是 PactKit"确定性核心"哲学在宿主侧的自然延伸。
197
+
198
+ #### P2-4. 治理工具 MCP 化
199
+
200
+ 把 board / continuation / doctor 的关键子命令包成 MCP server:宿主可以原生调用(不再依赖 CLI 可用性探针),Codex 的 hook handler 甚至可以直接是 MCP 调用而不必 shell out。
201
+
202
+ #### P2-5. doctor 增加 Codex 版本/能力探测
203
+
204
+ Codex 的 hook schema 与 wire 格式和二进制版本钉死。`pactkit doctor` 探测本机 Codex 版本,按版本动态判定能力标志(替代 `profiles.py` 的硬编码快照),避免 adapter 对着旧能力模型部署。
205
+
206
+ ---
207
+
208
+ ## 5. 明确不抄的部分(及理由)
209
+
210
+ | 不抄 | 理由 |
211
+ |---|---|
212
+ | 运行时 / LLM 适配层 / token meter / compaction / Code Mode / 沙箱 | 这是宿主的职责。抄了就变成第二个 harness,与"治理层"定位冲突。dsh 与 PactKit 是互补关系 |
213
+ | Web UI | 宿主有 UI。P0-2 的 stats 做 JSON 导出即可,将来任何 dashboard 都有数据源;Codex 的 app-server JSON-RPC 已提供监督通道 |
214
+ | Cordis 插件运行时 / DI 容器 | PactKit 的 entry-point deployer 机制已覆盖"第三方扩展部署器"这个真实需求 |
215
+ | 双语 blob-hash 配对 + 自定义 merge driver | PactKit 双语内容量小(仅站点),收益配不上复杂度 |
216
+ | 逐文件 100% 覆盖率门 | PactKit 已有自己的覆盖率门治理宿主项目;对自身可参考但不强制 |
217
+ | Guardian auto-review 的完整实现 | 思路值得借鉴(Check 阶段自动评审),但审批环自动化是宿主职责;PactKit 只需保证自己的 review 工具产出结构化证据供其消费 |
218
+
219
+ ---
220
+
221
+ ## 6. 依赖关系与建议顺序
222
+
223
+ ```
224
+ dsh 线:
225
+ P0-1 事件流 ──┬──> P0-2 friction 管道
226
+ └──> P1-1 授权审计对
227
+ P0-3 gate 完整度上报(独立)
228
+ P1-2 outcome_unknown(依赖 checkpoint 状态机改动,可与 P0-1 同期)
229
+ P1-3 决策记录(独立,靠 commit-gate)
230
+ P2-1/P2-2/P2-3(独立,纯工程纪律)
231
+
232
+ Codex 线:
233
+ P0-4 Codex hooks 接入(独立;先于 P1-4,是插件包的内容物之一)
234
+ P1-4 Codex 插件形态(依赖 P0-4 的 hooks.json + P2-4 的 MCP 声明更佳)
235
+ P1-5 write_scope → 宿主策略层(独立)
236
+ P2-4 治理工具 MCP 化(独立)
237
+ P2-5 doctor 版本探测(独立,小改动)
238
+ ```
239
+
240
+ 若只做一件事:**做 P0-1 + P0-2**。它不改变治理语义、改动面可控,且直接解决"friction data 收不上来"这个当前阶段的卡点。
241
+
242
+ 若做两件事:加 **P0-4(Codex hooks 接入)**。它不新增任何治理语义——只是把已有的 commit-gate 接到宿主已造好的原生拦截机制上,投入最小、拦截时点提升最大,且 2.23.0 发布尾巴里的 codex ownership 契约缺口正好在这次 adapter 升级中一并补齐。
@@ -0,0 +1,31 @@
1
+ schema_version: 1
2
+ id: STORY-slim-20260827024e71df170f
3
+ title: P0 可观测性与拦截力升级:run 事件流、friction 统计、gate 完整度上报、Codex 原生 hooks 接入
4
+ spec_path: docs/specs/STORY-slim-20260827024e71df170f.md
5
+ status: archived
6
+ tasks:
7
+ - id: task-2eef2a1c10
8
+ title: R1 事件流写入:continuation.py 锁内追加 events/*.jsonl + 归档随行
9
+ completed: true
10
+ - id: task-700f96873a
11
+ title: R2 pactkit stats 聚合命令 + golden CLI snapshot 更新
12
+ completed: true
13
+ - id: task-73ac7e9fc9
14
+ title: R3 enforcement 状态模型(full/degraded/unavailable)+ doctor 聚合
15
+ completed: true
16
+ - id: task-c0f0c78797
17
+ title: R4 Codex hooks.json 薄注册(create-if-absent,依赖 ownership 契约修复)
18
+ completed: true
19
+ - id: task-75e82809da
20
+ title: R4b Codex hook schema 适配 + doctor 真实能力检测 + profiles 能力标志修正
21
+ completed: true
22
+ - id: task-db9a33cfeb
23
+ title: 单测:AC1-AC3 事件流(投影一致/blocker 对/崩溃安全)
24
+ completed: true
25
+ - id: task-e99a493355
26
+ title: e2e:AC7-AC9 config.toml 字节不变 + hooks 幂等 + doctor 检测
27
+ completed: true
28
+ created_at: '2026-08-27T08:48:58+00:00'
29
+ updated_at: '2026-08-27T09:56:42+00:00'
30
+ completed_at: '2026-08-27T09:56:00+00:00'
31
+ archived_at: '2026-08-27T09:56:42+00:00'
@@ -0,0 +1,11 @@
1
+ schema_version: 1
2
+ id: STORY-slim-2026082727cc4ab535e7
3
+ title: '[P2-1 backlog] 生成式目录 + 漂移门'
4
+ spec_path: docs/specs/STORY-slim-2026082727cc4ab535e7.md
5
+ status: backlog
6
+ tasks:
7
+ - id: task-bfca30c6d4
8
+ title: workflow_registry + RULE_DEFINITIONS 生成 docs/reference/ 目录页,CI 校验 diff 为零
9
+ completed: false
10
+ created_at: '2026-08-27T08:49:42+00:00'
11
+ updated_at: '2026-08-27T08:49:42+00:00'
@@ -0,0 +1,14 @@
1
+ schema_version: 1
2
+ id: STORY-slim-2026082730b5954cf538
3
+ title: '[P2-4 backlog] 治理工具 MCP 化'
4
+ spec_path: docs/specs/STORY-slim-2026082730b5954cf538.md
5
+ status: backlog
6
+ tasks:
7
+ - id: task-d3e006470a
8
+ title: board/continuation/doctor 关键子命令包成 MCP server([mcp_servers] 配置段生成)
9
+ completed: false
10
+ - id: task-277db672a9
11
+ title: Codex hook handler 可走 MCP 不必 shell out
12
+ completed: false
13
+ created_at: '2026-08-27T08:49:42+00:00'
14
+ updated_at: '2026-08-27T08:49:42+00:00'
@@ -0,0 +1,14 @@
1
+ schema_version: 1
2
+ id: STORY-slim-20260827625b870eb7da
3
+ title: '[P2-3 backlog] 配置分层组合(企业基线→项目→用户 overlay)'
4
+ spec_path: docs/specs/STORY-slim-20260827625b870eb7da.md
5
+ status: backlog
6
+ tasks:
7
+ - id: task-2679e2e287
8
+ title: pactkit.yaml 层叠 last-write-wins + pactkit config dump
9
+ completed: false
10
+ - id: task-c1d42aa3f3
11
+ title: 参考 Codex config loader 与 dsh profile/bundle/patch 语义
12
+ completed: false
13
+ created_at: '2026-08-27T08:49:42+00:00'
14
+ updated_at: '2026-08-27T08:49:42+00:00'
@@ -0,0 +1,14 @@
1
+ schema_version: 1
2
+ id: STORY-slim-202608277ec1236a7b99
3
+ title: '[P1-2 backlog] outcome_unknown 崩溃恢复中间态'
4
+ spec_path: docs/specs/STORY-slim-202608277ec1236a7b99.md
5
+ status: backlog
6
+ tasks:
7
+ - id: task-ff2e3a5ece
8
+ title: checkpoint 状态机增加 outcome_unknown(evidence 级 unknown 标记)
9
+ completed: false
10
+ - id: task-ded01b6504
11
+ title: 恢复时强制重跑验证步骤而非沿用旧结论(Ctrl-C 半途场景)
12
+ completed: false
13
+ created_at: '2026-08-27T08:49:42+00:00'
14
+ updated_at: '2026-08-27T08:49:42+00:00'
@@ -0,0 +1,14 @@
1
+ schema_version: 1
2
+ id: STORY-slim-20260827833e7a200f9a
3
+ title: '[P2-2 backlog] 跨宿主 prompt snapshot 测试'
4
+ spec_path: docs/specs/STORY-slim-20260827833e7a200f9a.md
5
+ status: backlog
6
+ tasks:
7
+ - id: task-01ebdf0a92
8
+ title: deploy 到临时目录,对 Claude/OpenCode/Codex 三 profile 产物做字节级 snapshot
9
+ completed: false
10
+ - id: task-a763670641
11
+ title: 拦截 prompt 模板静默回归(2.21/2.22 类事故)
12
+ completed: false
13
+ created_at: '2026-08-27T08:49:42+00:00'
14
+ updated_at: '2026-08-27T08:49:42+00:00'
@@ -0,0 +1,15 @@
1
+ schema_version: 1
2
+ id: STORY-slim-20260827855bf3efaec3
3
+ title: '[P1-3 backlog] 设计决策记录(Agent Notes 治理版)'
4
+ spec_path: docs/specs/STORY-slim-20260827855bf3efaec3.md
5
+ status: backlog
6
+ tasks:
7
+ - id: task-3591472ca8
8
+ title: decision note 模板 + commit-gate 规则:触及 governance/spec/architecture 文件须有对应
9
+ note
10
+ completed: false
11
+ - id: task-f613d0b46d
12
+ title: enterprise adoption:可追溯架构决定
13
+ completed: false
14
+ created_at: '2026-08-27T08:49:42+00:00'
15
+ updated_at: '2026-08-27T08:49:42+00:00'
@@ -0,0 +1,14 @@
1
+ schema_version: 1
2
+ id: STORY-slim-2026082799fa651655be
3
+ title: '[P2-5 backlog] 宿主版本/能力探测泛化'
4
+ spec_path: docs/specs/STORY-slim-2026082799fa651655be.md
5
+ status: backlog
6
+ tasks:
7
+ - id: task-5de27982c1
8
+ title: 大部分已被 STORY-slim-20260827024e71df170f R4/R5(Codex 探测)覆盖
9
+ completed: false
10
+ - id: task-c4fe968bfc
11
+ title: 剩余:OpenCode/Copilot 的版本探测与 profiles 能力标志动态化
12
+ completed: false
13
+ created_at: '2026-08-27T08:49:42+00:00'
14
+ updated_at: '2026-08-27T08:49:42+00:00'
@@ -0,0 +1,14 @@
1
+ schema_version: 1
2
+ id: STORY-slim-20260827c67e3add6af5
3
+ title: '[P1-1 backlog] 授权审计事件对:authorization/asked + granted|denied 落事件流'
4
+ spec_path: docs/specs/STORY-slim-20260827c67e3add6af5.md
5
+ status: backlog
6
+ tasks:
7
+ - id: task-4c09090c5f
8
+ title: 依赖 P0 事件流(STORY-slim-20260827024e71df170f)落地后在 blocker 升降路径落审计事件对
9
+ completed: false
10
+ - id: task-d235e1cc19
11
+ title: enterprise 合规刚需,实现成本低
12
+ completed: false
13
+ created_at: '2026-08-27T08:49:42+00:00'
14
+ updated_at: '2026-08-27T08:49:42+00:00'
@@ -0,0 +1,15 @@
1
+ schema_version: 1
2
+ id: STORY-slim-20260827d0ae0dfada51
3
+ title: '[P1-5 backlog] write_scope 编译到宿主策略层'
4
+ spec_path: docs/specs/STORY-slim-20260827d0ae0dfada51.md
5
+ status: backlog
6
+ tasks:
7
+ - id: task-58344cf3ec
8
+ title: Spec Touches∪项目 write_scope 编译为 Codex sandbox/permission profile + Claude
9
+ allowlist
10
+ completed: false
11
+ - id: task-b0d252b40a
12
+ title: 从 prompt 劝告升级为宿主结构性拒绝
13
+ completed: false
14
+ created_at: '2026-08-27T08:49:42+00:00'
15
+ updated_at: '2026-08-27T08:49:42+00:00'
@@ -0,0 +1,25 @@
1
+ schema_version: 1
2
+ id: STORY-slim-20260827eddbe9669c87
3
+ title: Continuation 状态机补强:授权审计事件对与 outcome_unknown 恢复语义
4
+ spec_path: docs/specs/STORY-slim-20260827eddbe9669c87.md
5
+ status: archived
6
+ tasks:
7
+ - id: task-a8efbbeec3
8
+ title: R1 授权审计事件对(asked/granted 自动 + denied 显式,双路径发射)
9
+ completed: true
10
+ - id: task-d110c08951
11
+ title: R2 pactkit continuation deny 命令(锁内、前置校验、blocked 重写)
12
+ completed: true
13
+ - id: task-2421d25f0b
14
+ title: R3 验证尝试围栏 record_attempt + commit-gate 接入
15
+ completed: true
16
+ - id: task-117b0a1a81
17
+ title: R4 resume/finish_guard outcome_unknown 交叉检查(阻塞与解除)
18
+ completed: true
19
+ - id: task-7f72e34442
20
+ title: R5 stats 授权决策计数 + golden CLI 更新
21
+ completed: true
22
+ created_at: '2026-08-27T10:10:27+00:00'
23
+ updated_at: '2026-08-27T10:22:05+00:00'
24
+ completed_at: '2026-08-27T10:20:23+00:00'
25
+ archived_at: '2026-08-27T10:22:05+00:00'
@@ -0,0 +1,14 @@
1
+ schema_version: 1
2
+ id: STORY-slim-20260827fb6291b717eb
3
+ title: '[P1-4 backlog] Codex 插件分发形态(.codex-plugin manifest)'
4
+ spec_path: docs/specs/STORY-slim-20260827fb6291b717eb.md
5
+ status: backlog
6
+ tasks:
7
+ - id: task-0d580253d2
8
+ title: 生成 .codex-plugin manifest 捆绑 skills+hooks+MCP 声明
9
+ completed: false
10
+ - id: task-f164041c5b
11
+ title: 依赖 P0-4 hooks.json;对称于现有 Claude plugin 发布流程
12
+ completed: false
13
+ created_at: '2026-08-27T08:49:42+00:00'
14
+ updated_at: '2026-08-27T08:49:42+00:00'
@@ -0,0 +1,26 @@
1
+ schema_version: 1
2
+ id: STORY-slim-20260827fc9de5542ad7
3
+ title: Codex command references 所有权契约修复:command manifest v2 记录 reference 摘要
4
+ spec_path: docs/specs/STORY-slim-20260827fc9de5542ad7.md
5
+ status: archived
6
+ tasks:
7
+ - id: task-d1692f4bfa
8
+ title: 'core: command_ownership.py v2 schema + record_deployed_reference + v1 兼容读取
9
+ + 单测'
10
+ completed: true
11
+ - id: task-c0be7952ec
12
+ title: 'adapter: deploy_codex_command_skills 渲染时记录 reference 摘要(snapshot 事务内)'
13
+ completed: true
14
+ - id: task-f1131d32f2
15
+ title: 'adapter: _cleanup_stale_command_references 证明来源 ∪ command manifest v2'
16
+ completed: true
17
+ - id: task-7879b106f3
18
+ title: 'adapter tests: 修复两个红测试 + AC3/AC5/AC6 覆盖'
19
+ completed: true
20
+ - id: task-2100a3eacd
21
+ title: 'core tests: v2 单测 + 全量回归'
22
+ completed: true
23
+ created_at: '2026-08-27T09:16:45+00:00'
24
+ updated_at: '2026-08-27T09:33:12+00:00'
25
+ completed_at: '2026-08-27T09:33:12+00:00'
26
+ archived_at: '2026-08-27T09:33:12+00:00'