pactkit 2.25.0__tar.gz → 2.25.2__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 (1019) hide show
  1. {pactkit-2.25.0 → pactkit-2.25.2}/CHANGELOG.md +12 -0
  2. {pactkit-2.25.0 → pactkit-2.25.2}/PKG-INFO +35 -3
  3. {pactkit-2.25.0 → pactkit-2.25.2}/README.md +34 -2
  4. pactkit-2.25.2/docs/architecture/governance/lessons/LESSON-20260902100234-6fa7694bad.md +10 -0
  5. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/rules.md +1 -1
  6. pactkit-2.25.2/docs/product/sprint_board.md +371 -0
  7. pactkit-2.25.2/docs/product/stories/HOTFIX-slim-20260830bbb5bc219d35.yaml +19 -0
  8. pactkit-2.25.2/docs/product/stories/HOTFIX-slim-20260901469666ef23a8.yaml +16 -0
  9. pactkit-2.25.2/docs/product/stories/STORY-slim-202609025bc9246b6a54.yaml +25 -0
  10. pactkit-2.25.2/docs/specs/HOTFIX-slim-20260830bbb5bc219d35.md +42 -0
  11. pactkit-2.25.2/docs/specs/HOTFIX-slim-20260901469666ef23a8.md +55 -0
  12. pactkit-2.25.2/docs/specs/STORY-slim-202609025bc9246b6a54.md +181 -0
  13. pactkit-2.25.2/docs/test_cases/STORY-slim-202609025bc9246b6a54_case.md +63 -0
  14. {pactkit-2.25.0 → pactkit-2.25.2}/pyproject.toml +1 -1
  15. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/__init__.py +1 -1
  16. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/cli.py +13 -3
  17. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/commit_gate.py +182 -12
  18. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/regression.py +6 -0
  19. {pactkit-2.25.0 → pactkit-2.25.2}/tests/fixtures/cli_help_golden/gate.txt +3 -2
  20. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_commit_gate.py +2 -2
  21. pactkit-2.25.2/tests/unit/test_gate_junit_counts.py +221 -0
  22. pactkit-2.25.2/tests/unit/test_hotfix_20260830_gate_cli.py +164 -0
  23. pactkit-2.25.2/tests/unit/test_hotfix_20260901_gate_docsonly.py +161 -0
  24. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_push_gate.py +1 -1
  25. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_stack_test_command.py +12 -3
  26. pactkit-2.25.0/docs/product/sprint_board.md +0 -207
  27. {pactkit-2.25.0 → pactkit-2.25.2}/.codegraph/.gitignore +0 -0
  28. {pactkit-2.25.0 → pactkit-2.25.2}/.coverage +0 -0
  29. {pactkit-2.25.0 → pactkit-2.25.2}/.github/workflows/pactkit.yml +0 -0
  30. {pactkit-2.25.0 → pactkit-2.25.2}/.github/workflows/publish.yml +0 -0
  31. {pactkit-2.25.0 → pactkit-2.25.2}/.gitignore +0 -0
  32. {pactkit-2.25.0 → pactkit-2.25.2}/AGENTS.md +0 -0
  33. {pactkit-2.25.0 → pactkit-2.25.2}/CODE_OF_CONDUCT.md +0 -0
  34. {pactkit-2.25.0 → pactkit-2.25.2}/CONTRIBUTING.md +0 -0
  35. {pactkit-2.25.0 → pactkit-2.25.2}/LICENSE +0 -0
  36. {pactkit-2.25.0 → pactkit-2.25.2}/SECURITY.md +0 -0
  37. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/archive/lessons_archive_202602.md +0 -0
  38. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/archive/lessons_archive_202603.md +0 -0
  39. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/archive/lessons_archive_202604.md +0 -0
  40. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/harness_audit.json +0 -0
  41. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260227-8e92f52c86.md +0 -0
  42. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260227-a21cacfde2.md +0 -0
  43. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260227-ccb19799ea.md +0 -0
  44. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260228-6e4b02ff08.md +0 -0
  45. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260228-b87245d5fc.md +0 -0
  46. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260302-8980b2512d.md +0 -0
  47. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260302-8f58fa2045.md +0 -0
  48. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260302-a3a1b7900e.md +0 -0
  49. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260303-3f65c0442b.md +0 -0
  50. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260304-23c605e495.md +0 -0
  51. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260304-8bd6c10219.md +0 -0
  52. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260305-129d1dea2a.md +0 -0
  53. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260305-48752d79c3.md +0 -0
  54. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260305-b9afdd8720.md +0 -0
  55. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260305-f93ee5b19f.md +0 -0
  56. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260306-7061390095.md +0 -0
  57. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260313-edf7807faf.md +0 -0
  58. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260316-091567c2bb.md +0 -0
  59. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260316-4661b3789a.md +0 -0
  60. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260316-7214dac8fc.md +0 -0
  61. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260317-3d8a855086.md +0 -0
  62. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260317-4ba69c35f0.md +0 -0
  63. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260317-6cd2a53ba5.md +0 -0
  64. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260317-7a0dd3407e.md +0 -0
  65. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260317-86927e3701.md +0 -0
  66. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260317-9a8025eaac.md +0 -0
  67. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260317-a0721cc066.md +0 -0
  68. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260317-a1f53d759b.md +0 -0
  69. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260317-a9f7897b36.md +0 -0
  70. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260317-ff430eaa29.md +0 -0
  71. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260318-fb0bcd928b.md +0 -0
  72. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260319-f320fbb5cc.md +0 -0
  73. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260320-b2d80c56b3.md +0 -0
  74. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260320-c102dbd6f8.md +0 -0
  75. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260320-e8f6ddae81.md +0 -0
  76. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260321-5e57da75b0.md +0 -0
  77. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260321-6a4a30628f.md +0 -0
  78. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260321-b5a58de3f9.md +0 -0
  79. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260321-e0138991ed.md +0 -0
  80. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260321-e49663fc95.md +0 -0
  81. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260322-4c0480e882.md +0 -0
  82. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260322-d1ece5c0d4.md +0 -0
  83. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260323-4bd30888ce.md +0 -0
  84. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260323-7a02b3eb85.md +0 -0
  85. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260323-8624e0d93a.md +0 -0
  86. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260323-a8faeea78c.md +0 -0
  87. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260324-075e3332b8.md +0 -0
  88. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260324-0f6f041a52.md +0 -0
  89. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260324-2dab5931de.md +0 -0
  90. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260324-8bcda73e9b.md +0 -0
  91. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260324-9e6238f0c8.md +0 -0
  92. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260324-a1cace9846.md +0 -0
  93. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260324-bf64dd9564.md +0 -0
  94. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260324-c344d7655c.md +0 -0
  95. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260324-e60c50dcc9.md +0 -0
  96. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260324-f5149caffe.md +0 -0
  97. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260325-1a5eeea04c.md +0 -0
  98. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260326-02460b22de.md +0 -0
  99. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260326-09de627b2b.md +0 -0
  100. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260326-204ea48f84.md +0 -0
  101. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260326-32e2fd3074.md +0 -0
  102. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260326-6c6dbfc365.md +0 -0
  103. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260326-7811ad7ff2.md +0 -0
  104. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260326-88e7123370.md +0 -0
  105. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260326-d2376010b1.md +0 -0
  106. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260326-e4f0eb8850.md +0 -0
  107. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260326-e68b8aa47f.md +0 -0
  108. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260326-fdd06ad981.md +0 -0
  109. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260327-e3c7f5abcb.md +0 -0
  110. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260330-eb1760def2.md +0 -0
  111. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260331-1b58a289ea.md +0 -0
  112. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260331-26e474753e.md +0 -0
  113. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260331-3028ab9cf5.md +0 -0
  114. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260331-350048862b.md +0 -0
  115. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260331-7d41cdf5a3.md +0 -0
  116. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260331-8e5558a077.md +0 -0
  117. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260331-c46df1c3b1.md +0 -0
  118. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260401-41515789f6.md +0 -0
  119. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260401-4453752dda.md +0 -0
  120. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260401-5a225a1c0a.md +0 -0
  121. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260401-90724b10f0.md +0 -0
  122. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260401-9e322eb76e.md +0 -0
  123. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260401-bd20019d3d.md +0 -0
  124. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260401-de035be681.md +0 -0
  125. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260401-f44c8f499e.md +0 -0
  126. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260401-fa52f596ff.md +0 -0
  127. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260402-5b063207c8.md +0 -0
  128. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260402-5e0913ec81.md +0 -0
  129. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260415-3d8b5e8f81.md +0 -0
  130. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260415-84219771ca.md +0 -0
  131. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260416-41d4564480.md +0 -0
  132. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260416-5cdc3cf53f.md +0 -0
  133. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260416-807c65a8e7.md +0 -0
  134. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260416-ade561c777.md +0 -0
  135. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260416-b78aaf129a.md +0 -0
  136. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260416-db8a5430a0.md +0 -0
  137. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260416-f5a765c496.md +0 -0
  138. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260417-f1d777e9c9.md +0 -0
  139. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260418-ee12f2ff0d.md +0 -0
  140. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260420-2260437be7.md +0 -0
  141. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260420-a35a083e29.md +0 -0
  142. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260420-fa7d958d56.md +0 -0
  143. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260421-309c998a10.md +0 -0
  144. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260422-6509ac4df0.md +0 -0
  145. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260422-8dd5ed6a24.md +0 -0
  146. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260423-b0890ad9c2.md +0 -0
  147. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260424-24cc1d5e19.md +0 -0
  148. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260424-39a99c887d.md +0 -0
  149. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260427-f7955d5775.md +0 -0
  150. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260507-7b75a5cab8.md +0 -0
  151. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260507-b26f97255d.md +0 -0
  152. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260525-1fe96d2ff4.md +0 -0
  153. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260525-717e18e190.md +0 -0
  154. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260525-df4853fa3f.md +0 -0
  155. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260526-4c230f3a9d.md +0 -0
  156. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260601-6d6b779a83.md +0 -0
  157. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260601-e65d3407ed.md +0 -0
  158. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260610-51c3cf895e.md +0 -0
  159. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260629-6171e54ac8.md +0 -0
  160. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260702-4616caa284.md +0 -0
  161. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260713-da6d40dcc0.md +0 -0
  162. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260723-d4c9801300.md +0 -0
  163. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260813-18efcf9687.md +0 -0
  164. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260813-1dc6e2e1c7.md +0 -0
  165. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260813-21d4da632f.md +0 -0
  166. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260817-3587ae1a22.md +0 -0
  167. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260817-5f08a6affa.md +0 -0
  168. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260817-800f717c9d.md +0 -0
  169. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260817-a2cd839a2d.md +0 -0
  170. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260822-9175485749.md +0 -0
  171. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260822105138-298451a42c.md +0 -0
  172. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260822105138-522c7e4af4.md +0 -0
  173. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260822105138-72cc1d0343.md +0 -0
  174. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260823015950-6b8cbea92e.md +0 -0
  175. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260823022240-d3570f57fb.md +0 -0
  176. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260823050717-9192db37f8.md +0 -0
  177. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260826072120-c6db5dd5b1.md +0 -0
  178. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260826074629-f5119ea78b.md +0 -0
  179. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260826080242-012107ada2.md +0 -0
  180. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260826082256-eff3747d60.md +0 -0
  181. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260827093143-3236113033.md +0 -0
  182. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260827095642-059a7e996b.md +0 -0
  183. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260827102057-e04522a6fc.md +0 -0
  184. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260828102433-81cd3e00a0.md +0 -0
  185. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons/LESSON-20260830034504-4f7d0f8c58.md +0 -0
  186. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/lessons.md +0 -0
  187. {pactkit-2.25.0 → pactkit-2.25.2}/docs/architecture/governance/philosophy.md +0 -0
  188. {pactkit-2.25.0 → pactkit-2.25.2}/docs/assets/logo.png +0 -0
  189. {pactkit-2.25.0 → pactkit-2.25.2}/docs/e2e/journey.md +0 -0
  190. {pactkit-2.25.0 → pactkit-2.25.2}/docs/guides/codex-integration-preresearch.md +0 -0
  191. {pactkit-2.25.0 → pactkit-2.25.2}/docs/guides/tool-integration-checklist.md +0 -0
  192. {pactkit-2.25.0 → pactkit-2.25.2}/docs/product/archive/archive_202602.md +0 -0
  193. {pactkit-2.25.0 → pactkit-2.25.2}/docs/product/archive/archive_202603.md +0 -0
  194. {pactkit-2.25.0 → pactkit-2.25.2}/docs/product/archive/archive_202604.md +0 -0
  195. {pactkit-2.25.0 → pactkit-2.25.2}/docs/product/archive/archive_202605.md +0 -0
  196. {pactkit-2.25.0 → pactkit-2.25.2}/docs/product/archive/archive_202606.md +0 -0
  197. {pactkit-2.25.0 → pactkit-2.25.2}/docs/product/archive/archive_202607.md +0 -0
  198. {pactkit-2.25.0 → pactkit-2.25.2}/docs/product/archive/archive_202608.md +0 -0
  199. {pactkit-2.25.0 → pactkit-2.25.2}/docs/product/context.md +0 -0
  200. {pactkit-2.25.0 → pactkit-2.25.2}/docs/product/friction-log.md +0 -0
  201. {pactkit-2.25.0 → pactkit-2.25.2}/docs/product/harness-comparison-2026-08-27.md +0 -0
  202. {pactkit-2.25.0 → pactkit-2.25.2}/docs/product/prd.md +0 -0
  203. {pactkit-2.25.0 → pactkit-2.25.2}/docs/product/stories/HOTFIX-slim-127.yaml +0 -0
  204. {pactkit-2.25.0 → pactkit-2.25.2}/docs/product/stories/HOTFIX-slim-131.yaml +0 -0
  205. {pactkit-2.25.0 → pactkit-2.25.2}/docs/product/stories/HOTFIX-slim-132.yaml +0 -0
  206. {pactkit-2.25.0 → pactkit-2.25.2}/docs/product/stories/HOTFIX-slim-20260828ee6cde3108fb.yaml +0 -0
  207. {pactkit-2.25.0 → pactkit-2.25.2}/docs/product/stories/STORY-slim-115.yaml +0 -0
  208. {pactkit-2.25.0 → pactkit-2.25.2}/docs/product/stories/STORY-slim-118.yaml +0 -0
  209. {pactkit-2.25.0 → pactkit-2.25.2}/docs/product/stories/STORY-slim-119.yaml +0 -0
  210. {pactkit-2.25.0 → pactkit-2.25.2}/docs/product/stories/STORY-slim-145.yaml +0 -0
  211. {pactkit-2.25.0 → pactkit-2.25.2}/docs/product/stories/STORY-slim-147.yaml +0 -0
  212. {pactkit-2.25.0 → pactkit-2.25.2}/docs/product/stories/STORY-slim-148.yaml +0 -0
  213. {pactkit-2.25.0 → pactkit-2.25.2}/docs/product/stories/STORY-slim-149.yaml +0 -0
  214. {pactkit-2.25.0 → pactkit-2.25.2}/docs/product/stories/STORY-slim-2026082381e832771d4e.yaml +0 -0
  215. {pactkit-2.25.0 → pactkit-2.25.2}/docs/product/stories/STORY-slim-20260823d854b0cf1875.yaml +0 -0
  216. {pactkit-2.25.0 → pactkit-2.25.2}/docs/product/stories/STORY-slim-20260823de7e85d6042a.yaml +0 -0
  217. {pactkit-2.25.0 → pactkit-2.25.2}/docs/product/stories/STORY-slim-20260825b1c83a046b4b.yaml +0 -0
  218. {pactkit-2.25.0 → pactkit-2.25.2}/docs/product/stories/STORY-slim-202608264cf429c75e22.yaml +0 -0
  219. {pactkit-2.25.0 → pactkit-2.25.2}/docs/product/stories/STORY-slim-2026082672b57c78fd67.yaml +0 -0
  220. {pactkit-2.25.0 → pactkit-2.25.2}/docs/product/stories/STORY-slim-202608267c3989223b4d.yaml +0 -0
  221. {pactkit-2.25.0 → pactkit-2.25.2}/docs/product/stories/STORY-slim-202608268fc379dbe6ef.yaml +0 -0
  222. {pactkit-2.25.0 → pactkit-2.25.2}/docs/product/stories/STORY-slim-20260826ac1f0bfe4148.yaml +0 -0
  223. {pactkit-2.25.0 → pactkit-2.25.2}/docs/product/stories/STORY-slim-20260826cb37edfdd4da.yaml +0 -0
  224. {pactkit-2.25.0 → pactkit-2.25.2}/docs/product/stories/STORY-slim-20260826ce35b77ce005.yaml +0 -0
  225. {pactkit-2.25.0 → pactkit-2.25.2}/docs/product/stories/STORY-slim-20260826f9492ab32c3d.yaml +0 -0
  226. {pactkit-2.25.0 → pactkit-2.25.2}/docs/product/stories/STORY-slim-20260827024e71df170f.yaml +0 -0
  227. {pactkit-2.25.0 → pactkit-2.25.2}/docs/product/stories/STORY-slim-2026082727cc4ab535e7.yaml +0 -0
  228. {pactkit-2.25.0 → pactkit-2.25.2}/docs/product/stories/STORY-slim-2026082730b5954cf538.yaml +0 -0
  229. {pactkit-2.25.0 → pactkit-2.25.2}/docs/product/stories/STORY-slim-20260827625b870eb7da.yaml +0 -0
  230. {pactkit-2.25.0 → pactkit-2.25.2}/docs/product/stories/STORY-slim-202608277ec1236a7b99.yaml +0 -0
  231. {pactkit-2.25.0 → pactkit-2.25.2}/docs/product/stories/STORY-slim-20260827833e7a200f9a.yaml +0 -0
  232. {pactkit-2.25.0 → pactkit-2.25.2}/docs/product/stories/STORY-slim-20260827855bf3efaec3.yaml +0 -0
  233. {pactkit-2.25.0 → pactkit-2.25.2}/docs/product/stories/STORY-slim-2026082799fa651655be.yaml +0 -0
  234. {pactkit-2.25.0 → pactkit-2.25.2}/docs/product/stories/STORY-slim-20260827c67e3add6af5.yaml +0 -0
  235. {pactkit-2.25.0 → pactkit-2.25.2}/docs/product/stories/STORY-slim-20260827d0ae0dfada51.yaml +0 -0
  236. {pactkit-2.25.0 → pactkit-2.25.2}/docs/product/stories/STORY-slim-20260827eddbe9669c87.yaml +0 -0
  237. {pactkit-2.25.0 → pactkit-2.25.2}/docs/product/stories/STORY-slim-20260827fb6291b717eb.yaml +0 -0
  238. {pactkit-2.25.0 → pactkit-2.25.2}/docs/product/stories/STORY-slim-20260827fc9de5542ad7.yaml +0 -0
  239. {pactkit-2.25.0 → pactkit-2.25.2}/docs/product/stories/STORY-slim-20260828897396a935ab.yaml +0 -0
  240. {pactkit-2.25.0 → pactkit-2.25.2}/docs/product/stories/STORY-slim-202608289e83eeb30df4.yaml +0 -0
  241. {pactkit-2.25.0 → pactkit-2.25.2}/docs/product/stories/STORY-slim-20260828d43fae4edbb6.yaml +0 -0
  242. {pactkit-2.25.0 → pactkit-2.25.2}/docs/product/stories/STORY-slim-20260830c65491123af1.yaml +0 -0
  243. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/BUG-001.md +0 -0
  244. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/BUG-002.md +0 -0
  245. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/BUG-003.md +0 -0
  246. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/BUG-004.md +0 -0
  247. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/BUG-005.md +0 -0
  248. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/BUG-006.md +0 -0
  249. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/BUG-007.md +0 -0
  250. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/BUG-008.md +0 -0
  251. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/BUG-009.md +0 -0
  252. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/BUG-010.md +0 -0
  253. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/BUG-011.md +0 -0
  254. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/BUG-012.md +0 -0
  255. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/BUG-013.md +0 -0
  256. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/BUG-014.md +0 -0
  257. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/BUG-015.md +0 -0
  258. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/BUG-016.md +0 -0
  259. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/BUG-017.md +0 -0
  260. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/BUG-018.md +0 -0
  261. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/BUG-019.md +0 -0
  262. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/BUG-020.md +0 -0
  263. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/BUG-021.md +0 -0
  264. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/BUG-022.md +0 -0
  265. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/BUG-023.md +0 -0
  266. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/BUG-024.md +0 -0
  267. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/BUG-025.md +0 -0
  268. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/BUG-026.md +0 -0
  269. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/BUG-027.md +0 -0
  270. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/BUG-028.md +0 -0
  271. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/BUG-029.md +0 -0
  272. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/BUG-030.md +0 -0
  273. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/BUG-031.md +0 -0
  274. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/BUG-032.md +0 -0
  275. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/BUG-033.md +0 -0
  276. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/BUG-034.md +0 -0
  277. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/BUG-035.md +0 -0
  278. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/BUG-slim-001.md +0 -0
  279. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/BUG-slim-002.md +0 -0
  280. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/BUG-slim-003.md +0 -0
  281. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/BUG-slim-004.md +0 -0
  282. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/BUG-slim-005.md +0 -0
  283. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/BUG-slim-006.md +0 -0
  284. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/BUG-slim-089.md +0 -0
  285. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/BUG-slim-107.md +0 -0
  286. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/HOTFIX-slim-023.md +0 -0
  287. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/HOTFIX-slim-049.md +0 -0
  288. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/HOTFIX-slim-050.md +0 -0
  289. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/HOTFIX-slim-051.md +0 -0
  290. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/HOTFIX-slim-052.md +0 -0
  291. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/HOTFIX-slim-061.md +0 -0
  292. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/HOTFIX-slim-062.md +0 -0
  293. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/HOTFIX-slim-067.md +0 -0
  294. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/HOTFIX-slim-069.md +0 -0
  295. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/HOTFIX-slim-070.md +0 -0
  296. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/HOTFIX-slim-085.md +0 -0
  297. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/HOTFIX-slim-087.md +0 -0
  298. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/HOTFIX-slim-096.md +0 -0
  299. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/HOTFIX-slim-099.md +0 -0
  300. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/HOTFIX-slim-107.md +0 -0
  301. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/HOTFIX-slim-117.md +0 -0
  302. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/HOTFIX-slim-122.md +0 -0
  303. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/HOTFIX-slim-123.md +0 -0
  304. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/HOTFIX-slim-126.md +0 -0
  305. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/HOTFIX-slim-127.md +0 -0
  306. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/HOTFIX-slim-130.md +0 -0
  307. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/HOTFIX-slim-131.md +0 -0
  308. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/HOTFIX-slim-132.md +0 -0
  309. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/HOTFIX-slim-20260828ee6cde3108fb.md +0 -0
  310. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-001.md +0 -0
  311. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-002.md +0 -0
  312. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-003.md +0 -0
  313. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-004.md +0 -0
  314. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-005.md +0 -0
  315. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-006.md +0 -0
  316. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-007.md +0 -0
  317. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-008.md +0 -0
  318. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-009.md +0 -0
  319. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-010.md +0 -0
  320. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-011.md +0 -0
  321. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-012.md +0 -0
  322. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-013.md +0 -0
  323. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-014.md +0 -0
  324. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-015.md +0 -0
  325. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-016.md +0 -0
  326. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-017.md +0 -0
  327. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-018.md +0 -0
  328. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-019.md +0 -0
  329. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-020.md +0 -0
  330. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-021.md +0 -0
  331. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-022.md +0 -0
  332. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-023.md +0 -0
  333. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-024.md +0 -0
  334. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-025.md +0 -0
  335. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-026.md +0 -0
  336. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-027.md +0 -0
  337. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-028.md +0 -0
  338. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-029.md +0 -0
  339. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-030.md +0 -0
  340. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-031.md +0 -0
  341. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-032.md +0 -0
  342. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-033.md +0 -0
  343. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-034.md +0 -0
  344. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-035.md +0 -0
  345. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-036.md +0 -0
  346. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-037.md +0 -0
  347. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-038.md +0 -0
  348. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-039.md +0 -0
  349. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-040.md +0 -0
  350. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-041.md +0 -0
  351. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-042.md +0 -0
  352. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-043.md +0 -0
  353. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-044.md +0 -0
  354. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-045.md +0 -0
  355. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-046.md +0 -0
  356. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-047.md +0 -0
  357. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-048.md +0 -0
  358. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-049.md +0 -0
  359. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-050.md +0 -0
  360. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-051.md +0 -0
  361. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-052.md +0 -0
  362. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-053.md +0 -0
  363. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-054.md +0 -0
  364. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-055.md +0 -0
  365. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-056.md +0 -0
  366. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-057.md +0 -0
  367. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-058.md +0 -0
  368. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-059.md +0 -0
  369. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-060.md +0 -0
  370. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-061.md +0 -0
  371. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-062.md +0 -0
  372. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-063.md +0 -0
  373. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-064.md +0 -0
  374. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-065.md +0 -0
  375. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-069.md +0 -0
  376. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-070.md +0 -0
  377. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-071.md +0 -0
  378. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-072.md +0 -0
  379. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-073.md +0 -0
  380. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-001.md +0 -0
  381. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-005.md +0 -0
  382. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-006.md +0 -0
  383. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-007.md +0 -0
  384. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-009.md +0 -0
  385. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-010.md +0 -0
  386. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-011.md +0 -0
  387. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-012.md +0 -0
  388. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-013.md +0 -0
  389. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-014.md +0 -0
  390. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-015.md +0 -0
  391. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-016.md +0 -0
  392. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-017.md +0 -0
  393. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-018.md +0 -0
  394. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-019.md +0 -0
  395. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-020.md +0 -0
  396. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-021.md +0 -0
  397. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-022.md +0 -0
  398. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-023.md +0 -0
  399. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-024.md +0 -0
  400. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-028.md +0 -0
  401. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-029.md +0 -0
  402. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-030.md +0 -0
  403. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-031.md +0 -0
  404. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-032.md +0 -0
  405. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-033.md +0 -0
  406. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-034.md +0 -0
  407. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-035.md +0 -0
  408. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-036.md +0 -0
  409. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-037.md +0 -0
  410. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-038.md +0 -0
  411. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-039.md +0 -0
  412. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-040.md +0 -0
  413. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-041.md +0 -0
  414. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-042.md +0 -0
  415. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-043.md +0 -0
  416. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-044.md +0 -0
  417. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-045.md +0 -0
  418. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-046.md +0 -0
  419. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-047.md +0 -0
  420. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-048.md +0 -0
  421. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-049.md +0 -0
  422. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-050.md +0 -0
  423. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-051.md +0 -0
  424. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-052.md +0 -0
  425. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-053.md +0 -0
  426. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-054.md +0 -0
  427. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-055.md +0 -0
  428. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-056.md +0 -0
  429. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-057.md +0 -0
  430. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-058.md +0 -0
  431. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-059.md +0 -0
  432. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-060.md +0 -0
  433. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-063.md +0 -0
  434. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-066.md +0 -0
  435. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-067.md +0 -0
  436. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-068.md +0 -0
  437. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-069.md +0 -0
  438. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-070.md +0 -0
  439. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-071.md +0 -0
  440. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-072.md +0 -0
  441. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-073.md +0 -0
  442. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-074.md +0 -0
  443. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-075.md +0 -0
  444. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-076.md +0 -0
  445. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-077.md +0 -0
  446. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-078.md +0 -0
  447. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-079.md +0 -0
  448. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-080.md +0 -0
  449. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-081.md +0 -0
  450. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-082.md +0 -0
  451. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-083.md +0 -0
  452. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-084.md +0 -0
  453. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-086.md +0 -0
  454. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-088.md +0 -0
  455. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-089.md +0 -0
  456. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-090.md +0 -0
  457. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-091.md +0 -0
  458. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-092.md +0 -0
  459. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-093.md +0 -0
  460. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-094.md +0 -0
  461. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-095.md +0 -0
  462. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-097.md +0 -0
  463. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-098.md +0 -0
  464. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-099.md +0 -0
  465. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-100.md +0 -0
  466. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-101.md +0 -0
  467. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-102.md +0 -0
  468. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-103.md +0 -0
  469. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-104.md +0 -0
  470. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-105.md +0 -0
  471. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-106.md +0 -0
  472. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-107.md +0 -0
  473. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-108.md +0 -0
  474. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-109.md +0 -0
  475. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-110.md +0 -0
  476. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-111.md +0 -0
  477. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-112.md +0 -0
  478. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-113.md +0 -0
  479. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-114.md +0 -0
  480. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-115.md +0 -0
  481. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-116.md +0 -0
  482. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-118.md +0 -0
  483. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-119.md +0 -0
  484. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-120.md +0 -0
  485. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-121.md +0 -0
  486. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-124.md +0 -0
  487. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-125.md +0 -0
  488. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-126.md +0 -0
  489. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-127.md +0 -0
  490. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-128.md +0 -0
  491. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-129.md +0 -0
  492. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-132.md +0 -0
  493. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-133.md +0 -0
  494. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-134.md +0 -0
  495. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-135.md +0 -0
  496. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-136.md +0 -0
  497. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-137.md +0 -0
  498. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-138.md +0 -0
  499. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-139.md +0 -0
  500. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-140.md +0 -0
  501. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-141.md +0 -0
  502. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-142.md +0 -0
  503. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-143.md +0 -0
  504. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-144.md +0 -0
  505. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-145.md +0 -0
  506. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-146.md +0 -0
  507. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-147.md +0 -0
  508. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-148.md +0 -0
  509. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-149.md +0 -0
  510. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-2026082381e832771d4e.md +0 -0
  511. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-20260823d854b0cf1875.md +0 -0
  512. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-20260823de7e85d6042a.md +0 -0
  513. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-2026082466c8670d9655.md +0 -0
  514. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-20260824dd23a0ed3b4c.md +0 -0
  515. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-20260825b1c83a046b4b.md +0 -0
  516. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-202608264cf429c75e22.md +0 -0
  517. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-2026082672b57c78fd67.md +0 -0
  518. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-202608267c3989223b4d.md +0 -0
  519. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-202608268fc379dbe6ef.md +0 -0
  520. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-20260826ac1f0bfe4148.md +0 -0
  521. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-20260826cb37edfdd4da.md +0 -0
  522. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-20260826ce35b77ce005.md +0 -0
  523. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-20260826f9492ab32c3d.md +0 -0
  524. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-20260827024e71df170f.md +0 -0
  525. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-20260827eddbe9669c87.md +0 -0
  526. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-20260827fc9de5542ad7.md +0 -0
  527. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-20260828897396a935ab.md +0 -0
  528. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-202608289e83eeb30df4.md +0 -0
  529. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-20260828d43fae4edbb6.md +0 -0
  530. {pactkit-2.25.0 → pactkit-2.25.2}/docs/specs/STORY-slim-20260830c65491123af1.md +0 -0
  531. {pactkit-2.25.0 → pactkit-2.25.2}/docs/test_cases/BUG-001_case.md +0 -0
  532. {pactkit-2.25.0 → pactkit-2.25.2}/docs/test_cases/BUG-002_case.md +0 -0
  533. {pactkit-2.25.0 → pactkit-2.25.2}/docs/test_cases/STORY-slim-028_case.md +0 -0
  534. {pactkit-2.25.0 → pactkit-2.25.2}/docs/test_cases/STORY-slim-029_case.md +0 -0
  535. {pactkit-2.25.0 → pactkit-2.25.2}/docs/test_cases/STORY-slim-031_case.md +0 -0
  536. {pactkit-2.25.0 → pactkit-2.25.2}/docs/test_cases/STORY-slim-032_case.md +0 -0
  537. {pactkit-2.25.0 → pactkit-2.25.2}/docs/test_cases/STORY-slim-033_case.md +0 -0
  538. {pactkit-2.25.0 → pactkit-2.25.2}/docs/test_cases/STORY-slim-034_case.md +0 -0
  539. {pactkit-2.25.0 → pactkit-2.25.2}/docs/test_cases/STORY-slim-135_case.md +0 -0
  540. {pactkit-2.25.0 → pactkit-2.25.2}/docs/test_cases/STORY-slim-136_case.md +0 -0
  541. {pactkit-2.25.0 → pactkit-2.25.2}/docs/test_cases/STORY-slim-137_case.md +0 -0
  542. {pactkit-2.25.0 → pactkit-2.25.2}/docs/test_cases/STORY-slim-138_case.md +0 -0
  543. {pactkit-2.25.0 → pactkit-2.25.2}/docs/test_cases/STORY-slim-139_case.md +0 -0
  544. {pactkit-2.25.0 → pactkit-2.25.2}/docs/test_cases/STORY-slim-140_case.md +0 -0
  545. {pactkit-2.25.0 → pactkit-2.25.2}/docs/test_cases/STORY-slim-141_case.md +0 -0
  546. {pactkit-2.25.0 → pactkit-2.25.2}/docs/test_cases/STORY-slim-142_case.md +0 -0
  547. {pactkit-2.25.0 → pactkit-2.25.2}/docs/test_cases/STORY-slim-143_case.md +0 -0
  548. {pactkit-2.25.0 → pactkit-2.25.2}/docs/test_cases/STORY-slim-144_case.md +0 -0
  549. {pactkit-2.25.0 → pactkit-2.25.2}/docs/test_cases/STORY-slim-146_case.md +0 -0
  550. {pactkit-2.25.0 → pactkit-2.25.2}/docs/test_cases/STORY-slim-147_case.md +0 -0
  551. {pactkit-2.25.0 → pactkit-2.25.2}/docs/test_cases/STORY-slim-148_case.md +0 -0
  552. {pactkit-2.25.0 → pactkit-2.25.2}/docs/test_cases/STORY-slim-149_case.md +0 -0
  553. {pactkit-2.25.0 → pactkit-2.25.2}/docs/test_cases/STORY-slim-2026082381e832771d4e_case.md +0 -0
  554. {pactkit-2.25.0 → pactkit-2.25.2}/docs/test_cases/STORY-slim-20260823d854b0cf1875_case.md +0 -0
  555. {pactkit-2.25.0 → pactkit-2.25.2}/docs/test_cases/STORY-slim-20260823de7e85d6042a_case.md +0 -0
  556. {pactkit-2.25.0 → pactkit-2.25.2}/docs/test_cases/STORY-slim-20260825b1c83a046b4b_case.md +0 -0
  557. {pactkit-2.25.0 → pactkit-2.25.2}/docs/test_cases/STORY-slim-202608264cf429c75e22_case.md +0 -0
  558. {pactkit-2.25.0 → pactkit-2.25.2}/docs/test_cases/STORY-slim-2026082672b57c78fd67_case.md +0 -0
  559. {pactkit-2.25.0 → pactkit-2.25.2}/docs/test_cases/STORY-slim-202608267c3989223b4d_case.md +0 -0
  560. {pactkit-2.25.0 → pactkit-2.25.2}/docs/test_cases/STORY-slim-202608268fc379dbe6ef_case.md +0 -0
  561. {pactkit-2.25.0 → pactkit-2.25.2}/docs/test_cases/STORY-slim-20260826ac1f0bfe4148_case.md +0 -0
  562. {pactkit-2.25.0 → pactkit-2.25.2}/docs/test_cases/STORY-slim-20260826cb37edfdd4da_case.md +0 -0
  563. {pactkit-2.25.0 → pactkit-2.25.2}/docs/test_cases/STORY-slim-20260826ce35b77ce005_case.md +0 -0
  564. {pactkit-2.25.0 → pactkit-2.25.2}/docs/test_cases/STORY-slim-20260826f9492ab32c3d_case.md +0 -0
  565. {pactkit-2.25.0 → pactkit-2.25.2}/docs/test_cases/STORY-slim-20260827024e71df170f_case.md +0 -0
  566. {pactkit-2.25.0 → pactkit-2.25.2}/docs/test_cases/STORY-slim-20260827eddbe9669c87_case.md +0 -0
  567. {pactkit-2.25.0 → pactkit-2.25.2}/docs/test_cases/STORY-slim-20260827fc9de5542ad7_case.md +0 -0
  568. {pactkit-2.25.0 → pactkit-2.25.2}/docs/test_cases/STORY-slim-20260828897396a935ab_case.md +0 -0
  569. {pactkit-2.25.0 → pactkit-2.25.2}/docs/test_cases/STORY-slim-20260830c65491123af1_case.md +0 -0
  570. {pactkit-2.25.0 → pactkit-2.25.2}/opencode.json +0 -0
  571. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/__main__.py +0 -0
  572. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/audit.py +0 -0
  573. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/auth_gate.py +0 -0
  574. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/backfill.py +0 -0
  575. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/cleaners.py +0 -0
  576. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/config.py +0 -0
  577. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/context_gen.py +0 -0
  578. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/continuation.py +0 -0
  579. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/coverage_gate.py +0 -0
  580. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/delivery_evidence.py +0 -0
  581. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/deploy_manifest.py +0 -0
  582. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/deployment_transaction.py +0 -0
  583. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/deps.py +0 -0
  584. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/doctor.py +0 -0
  585. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/done_verify.py +0 -0
  586. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/enforcement.py +0 -0
  587. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/garden.py +0 -0
  588. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/generators/__init__.py +0 -0
  589. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/generators/claude_md.py +0 -0
  590. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/generators/command_ownership.py +0 -0
  591. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/generators/deploy_base.py +0 -0
  592. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/generators/deployer.py +0 -0
  593. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/governance.py +0 -0
  594. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/graph_query.py +0 -0
  595. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/guards.py +0 -0
  596. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/host_continuation.py +0 -0
  597. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/id_generator.py +0 -0
  598. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/invariants.py +0 -0
  599. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/issue_sync.py +0 -0
  600. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/lazy_visualize.py +0 -0
  601. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/legacy/__init__.py +0 -0
  602. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/legacy/host_continuation.py +0 -0
  603. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/legacy/usage.py +0 -0
  604. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/legacy/workflow_engine.py +0 -0
  605. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/lessons.py +0 -0
  606. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/lint_runner.py +0 -0
  607. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/observe.py +0 -0
  608. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/portable_methods.py +0 -0
  609. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/profiles.py +0 -0
  610. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/project_root.py +0 -0
  611. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/prompts/__init__.py +0 -0
  612. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/prompts/agents.py +0 -0
  613. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/prompts/commands.py +0 -0
  614. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/prompts/guides.py +0 -0
  615. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/prompts/references.py +0 -0
  616. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/prompts/rules.py +0 -0
  617. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/prompts/skills.py +0 -0
  618. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/prompts/workflows.py +0 -0
  619. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/protocols.py +0 -0
  620. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/risk_profile.py +0 -0
  621. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/run_events.py +0 -0
  622. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/run_stats.py +0 -0
  623. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/schemas.py +0 -0
  624. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/scripts.py +0 -0
  625. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/sec_scope.py +0 -0
  626. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/secrets_gate.py +0 -0
  627. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/session_gate.py +0 -0
  628. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/skills/__init__.py +0 -0
  629. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/skills/analyzers/__init__.py +0 -0
  630. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/skills/analyzers/go_analyzer.py +0 -0
  631. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/skills/analyzers/java_analyzer.py +0 -0
  632. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/skills/analyzers/python_analyzer.py +0 -0
  633. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/skills/analyzers/ts_analyzer.py +0 -0
  634. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/skills/board.py +0 -0
  635. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/skills/interface_summary.py +0 -0
  636. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/skills/report.py +0 -0
  637. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/skills/scaffold.py +0 -0
  638. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/skills/spec_linter.py +0 -0
  639. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/skills/visualize.py +0 -0
  640. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/spec_graph.py +0 -0
  641. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/spec_preflight.py +0 -0
  642. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/spec_status.py +0 -0
  643. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/tamper_guard.py +0 -0
  644. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/test_mapper.py +0 -0
  645. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/utils.py +0 -0
  646. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/validators.py +0 -0
  647. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/workflow_engine.py +0 -0
  648. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/workflow_registry.py +0 -0
  649. {pactkit-2.25.0 → pactkit-2.25.2}/src/pactkit/workflow_validators.py +0 -0
  650. {pactkit-2.25.0 → pactkit-2.25.2}/tests/conftest.py +0 -0
  651. {pactkit-2.25.0 → pactkit-2.25.2}/tests/e2e/__init__.py +0 -0
  652. {pactkit-2.25.0 → pactkit-2.25.2}/tests/e2e/cli/__init__.py +0 -0
  653. {pactkit-2.25.0 → pactkit-2.25.2}/tests/e2e/cli/test_cli_e2e.py +0 -0
  654. {pactkit-2.25.0 → pactkit-2.25.2}/tests/e2e/cli/test_story_slim146_cli.py +0 -0
  655. {pactkit-2.25.0 → pactkit-2.25.2}/tests/e2e/cli/test_story_slim147_workflow_cli.py +0 -0
  656. {pactkit-2.25.0 → pactkit-2.25.2}/tests/e2e/cli/test_story_slim148_governance_cli.py +0 -0
  657. {pactkit-2.25.0 → pactkit-2.25.2}/tests/e2e/cli/test_story_slim149_query_cli.py +0 -0
  658. {pactkit-2.25.0 → pactkit-2.25.2}/tests/fixtures/agent_parser/agents_dir/researcher.yaml +0 -0
  659. {pactkit-2.25.0 → pactkit-2.25.2}/tests/fixtures/agent_parser/agents_dir/writer.yaml +0 -0
  660. {pactkit-2.25.0 → pactkit-2.25.2}/tests/fixtures/agent_parser/langgraph_app.py +0 -0
  661. {pactkit-2.25.0 → pactkit-2.25.2}/tests/fixtures/agent_parser/mcp_settings.json +0 -0
  662. {pactkit-2.25.0 → pactkit-2.25.2}/tests/fixtures/api_call_parser/axios_style.tsx +0 -0
  663. {pactkit-2.25.0 → pactkit-2.25.2}/tests/fixtures/api_call_parser/dynamic.tsx +0 -0
  664. {pactkit-2.25.0 → pactkit-2.25.2}/tests/fixtures/api_call_parser/page.tsx +0 -0
  665. {pactkit-2.25.0 → pactkit-2.25.2}/tests/fixtures/cli_help_golden/__root__.txt +0 -0
  666. {pactkit-2.25.0 → pactkit-2.25.2}/tests/fixtures/cli_help_golden/audit.txt +0 -0
  667. {pactkit-2.25.0 → pactkit-2.25.2}/tests/fixtures/cli_help_golden/backfill-release.txt +0 -0
  668. {pactkit-2.25.0 → pactkit-2.25.2}/tests/fixtures/cli_help_golden/board.txt +0 -0
  669. {pactkit-2.25.0 → pactkit-2.25.2}/tests/fixtures/cli_help_golden/clean.txt +0 -0
  670. {pactkit-2.25.0 → pactkit-2.25.2}/tests/fixtures/cli_help_golden/commit-gate.txt +0 -0
  671. {pactkit-2.25.0 → pactkit-2.25.2}/tests/fixtures/cli_help_golden/context.txt +0 -0
  672. {pactkit-2.25.0 → pactkit-2.25.2}/tests/fixtures/cli_help_golden/continuation.txt +0 -0
  673. {pactkit-2.25.0 → pactkit-2.25.2}/tests/fixtures/cli_help_golden/coverage-gate.txt +0 -0
  674. {pactkit-2.25.0 → pactkit-2.25.2}/tests/fixtures/cli_help_golden/deps.txt +0 -0
  675. {pactkit-2.25.0 → pactkit-2.25.2}/tests/fixtures/cli_help_golden/doctor.txt +0 -0
  676. {pactkit-2.25.0 → pactkit-2.25.2}/tests/fixtures/cli_help_golden/done-verify.txt +0 -0
  677. {pactkit-2.25.0 → pactkit-2.25.2}/tests/fixtures/cli_help_golden/garden.txt +0 -0
  678. {pactkit-2.25.0 → pactkit-2.25.2}/tests/fixtures/cli_help_golden/generate-id.txt +0 -0
  679. {pactkit-2.25.0 → pactkit-2.25.2}/tests/fixtures/cli_help_golden/governance.txt +0 -0
  680. {pactkit-2.25.0 → pactkit-2.25.2}/tests/fixtures/cli_help_golden/guard.txt +0 -0
  681. {pactkit-2.25.0 → pactkit-2.25.2}/tests/fixtures/cli_help_golden/init.txt +0 -0
  682. {pactkit-2.25.0 → pactkit-2.25.2}/tests/fixtures/cli_help_golden/interface-summary.txt +0 -0
  683. {pactkit-2.25.0 → pactkit-2.25.2}/tests/fixtures/cli_help_golden/invariants-refresh.txt +0 -0
  684. {pactkit-2.25.0 → pactkit-2.25.2}/tests/fixtures/cli_help_golden/issue-sync.txt +0 -0
  685. {pactkit-2.25.0 → pactkit-2.25.2}/tests/fixtures/cli_help_golden/lesson-append.txt +0 -0
  686. {pactkit-2.25.0 → pactkit-2.25.2}/tests/fixtures/cli_help_golden/lint-context.txt +0 -0
  687. {pactkit-2.25.0 → pactkit-2.25.2}/tests/fixtures/cli_help_golden/lint-lessons.txt +0 -0
  688. {pactkit-2.25.0 → pactkit-2.25.2}/tests/fixtures/cli_help_golden/lint-testcase.txt +0 -0
  689. {pactkit-2.25.0 → pactkit-2.25.2}/tests/fixtures/cli_help_golden/lint.txt +0 -0
  690. {pactkit-2.25.0 → pactkit-2.25.2}/tests/fixtures/cli_help_golden/observe.txt +0 -0
  691. {pactkit-2.25.0 → pactkit-2.25.2}/tests/fixtures/cli_help_golden/query.txt +0 -0
  692. {pactkit-2.25.0 → pactkit-2.25.2}/tests/fixtures/cli_help_golden/redetect-stack.txt +0 -0
  693. {pactkit-2.25.0 → pactkit-2.25.2}/tests/fixtures/cli_help_golden/regression.txt +0 -0
  694. {pactkit-2.25.0 → pactkit-2.25.2}/tests/fixtures/cli_help_golden/report.txt +0 -0
  695. {pactkit-2.25.0 → pactkit-2.25.2}/tests/fixtures/cli_help_golden/schema.txt +0 -0
  696. {pactkit-2.25.0 → pactkit-2.25.2}/tests/fixtures/cli_help_golden/sec-scope.txt +0 -0
  697. {pactkit-2.25.0 → pactkit-2.25.2}/tests/fixtures/cli_help_golden/spec-graph.txt +0 -0
  698. {pactkit-2.25.0 → pactkit-2.25.2}/tests/fixtures/cli_help_golden/spec-lint.txt +0 -0
  699. {pactkit-2.25.0 → pactkit-2.25.2}/tests/fixtures/cli_help_golden/spec-preflight.txt +0 -0
  700. {pactkit-2.25.0 → pactkit-2.25.2}/tests/fixtures/cli_help_golden/spec-status.txt +0 -0
  701. {pactkit-2.25.0 → pactkit-2.25.2}/tests/fixtures/cli_help_golden/stats.txt +0 -0
  702. {pactkit-2.25.0 → pactkit-2.25.2}/tests/fixtures/cli_help_golden/sync.txt +0 -0
  703. {pactkit-2.25.0 → pactkit-2.25.2}/tests/fixtures/cli_help_golden/test-map.txt +0 -0
  704. {pactkit-2.25.0 → pactkit-2.25.2}/tests/fixtures/cli_help_golden/update.txt +0 -0
  705. {pactkit-2.25.0 → pactkit-2.25.2}/tests/fixtures/cli_help_golden/upgrade.txt +0 -0
  706. {pactkit-2.25.0 → pactkit-2.25.2}/tests/fixtures/cli_help_golden/version.txt +0 -0
  707. {pactkit-2.25.0 → pactkit-2.25.2}/tests/fixtures/cli_help_golden/visualize.txt +0 -0
  708. {pactkit-2.25.0 → pactkit-2.25.2}/tests/fixtures/cli_help_golden/work-unit.txt +0 -0
  709. {pactkit-2.25.0 → pactkit-2.25.2}/tests/fixtures/cli_help_golden/workflow.txt +0 -0
  710. {pactkit-2.25.0 → pactkit-2.25.2}/tests/fixtures/config_golden/copy_claude.json +0 -0
  711. {pactkit-2.25.0 → pactkit-2.25.2}/tests/fixtures/config_golden/copy_claude.yaml +0 -0
  712. {pactkit-2.25.0 → pactkit-2.25.2}/tests/fixtures/config_golden/copy_codex.json +0 -0
  713. {pactkit-2.25.0 → pactkit-2.25.2}/tests/fixtures/config_golden/copy_codex.yaml +0 -0
  714. {pactkit-2.25.0 → pactkit-2.25.2}/tests/fixtures/config_golden/copy_github.json +0 -0
  715. {pactkit-2.25.0 → pactkit-2.25.2}/tests/fixtures/config_golden/copy_github.yaml +0 -0
  716. {pactkit-2.25.0 → pactkit-2.25.2}/tests/fixtures/config_golden/empty.json +0 -0
  717. {pactkit-2.25.0 → pactkit-2.25.2}/tests/fixtures/config_golden/empty.yaml +0 -0
  718. {pactkit-2.25.0 → pactkit-2.25.2}/tests/fixtures/config_golden/full_legacy.json +0 -0
  719. {pactkit-2.25.0 → pactkit-2.25.2}/tests/fixtures/config_golden/full_legacy.yaml +0 -0
  720. {pactkit-2.25.0 → pactkit-2.25.2}/tests/fixtures/config_golden/minimal.json +0 -0
  721. {pactkit-2.25.0 → pactkit-2.25.2}/tests/fixtures/config_golden/minimal.yaml +0 -0
  722. {pactkit-2.25.0 → pactkit-2.25.2}/tests/fixtures/config_golden/unknown_keys.json +0 -0
  723. {pactkit-2.25.0 → pactkit-2.25.2}/tests/fixtures/config_golden/unknown_keys.yaml +0 -0
  724. {pactkit-2.25.0 → pactkit-2.25.2}/tests/integration/__init__.py +0 -0
  725. {pactkit-2.25.0 → pactkit-2.25.2}/tests/integration/test_deploy_classic.py +0 -0
  726. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_agent_features.py +0 -0
  727. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_agent_frontmatter.py +0 -0
  728. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_agents_enrichment.py +0 -0
  729. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_audit.py +0 -0
  730. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_blast_radius.py +0 -0
  731. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_board_bug027.py +0 -0
  732. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_board_sections.py +0 -0
  733. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_bug001_skill_path.py +0 -0
  734. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_bug002_plugin_paths.py +0 -0
  735. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_bug003_multi_import.py +0 -0
  736. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_bug004_dead_set.py +0 -0
  737. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_bug005_archive_taskless.py +0 -0
  738. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_bug006_scan_excludes.py +0 -0
  739. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_bug007_stale_trace_refs.py +0 -0
  740. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_bug008_stale_command_refs.py +0 -0
  741. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_bug009_project_config_backfill.py +0 -0
  742. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_bug010_rewrite_yaml.py +0 -0
  743. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_bug011_stale_refs.py +0 -0
  744. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_bug012_call_graph_filter.py +0 -0
  745. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_bug013_config_single_source.py +0 -0
  746. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_bug014_version_hygiene.py +0 -0
  747. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_bug017_project_init_playbook.py +0 -0
  748. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_bug018_issue_tracker_verification.py +0 -0
  749. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_bug019_venv_deployment.py +0 -0
  750. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_bug020_claude_md_backup.py +0 -0
  751. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_bug025_release_delegation.py +0 -0
  752. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_bug026_version_sync.py +0 -0
  753. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_bug028_ghost_refs.py +0 -0
  754. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_bug029_stack_detection_fallback.py +0 -0
  755. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_bug030_spec_lint_cli.py +0 -0
  756. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_bug031_docstring_accuracy.py +0 -0
  757. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_bug034_plan_metadata_template.py +0 -0
  758. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_bug_021.py +0 -0
  759. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_bug_022.py +0 -0
  760. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_bug_023.py +0 -0
  761. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_bug_024.py +0 -0
  762. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_bug_slim001_env_detection.py +0 -0
  763. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_bug_slim002_instruction_collision.py +0 -0
  764. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_bug_slim003.py +0 -0
  765. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_bug_slim004.py +0 -0
  766. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_bug_slim005.py +0 -0
  767. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_bug_slim006.py +0 -0
  768. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_bug_slim089_global_claude_md.py +0 -0
  769. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_check_command.py +0 -0
  770. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_check_extensions_072_073.py +0 -0
  771. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_check_playbook_072_073.py +0 -0
  772. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_cli_help_surface.py +0 -0
  773. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_codex_hook_channel.py +0 -0
  774. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_command_frontmatter.py +0 -0
  775. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_command_ownership_v2.py +0 -0
  776. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_command_visualize_modes.py +0 -0
  777. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_complexity.py +0 -0
  778. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_config.py +0 -0
  779. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_config_auto_merge.py +0 -0
  780. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_config_sync_precedence.py +0 -0
  781. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_constitution_sharpening.py +0 -0
  782. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_context_gen.py +0 -0
  783. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_continuation_hardening.py +0 -0
  784. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_create_skill.py +0 -0
  785. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_cross_flow_matrix.py +0 -0
  786. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_deploy_base.py +0 -0
  787. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_deploy_ownership_safety.py +0 -0
  788. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_deployer_cleanup.py +0 -0
  789. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_deployer_plugin.py +0 -0
  790. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_deployment_transaction.py +0 -0
  791. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_deps.py +0 -0
  792. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_design_command.py +0 -0
  793. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_done_gates.py +0 -0
  794. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_done_verify.py +0 -0
  795. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_draw_prompt.py +0 -0
  796. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_draw_references.py +0 -0
  797. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_drawio_mcp.py +0 -0
  798. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_enforcement.py +0 -0
  799. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_engine_robustness.py +0 -0
  800. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_garden.py +0 -0
  801. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_gate_fail_closed.py +0 -0
  802. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_gate_telemetry.py +0 -0
  803. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_home_path_fix.py +0 -0
  804. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_hook_expansion.py +0 -0
  805. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_hotfix_command.py +0 -0
  806. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_hotfix_legacy_constitution.py +0 -0
  807. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_init_guard.py +0 -0
  808. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_init_playbook_074.py +0 -0
  809. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_interface_summary.py +0 -0
  810. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_lang_profiles.py +0 -0
  811. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_layer_violations.py +0 -0
  812. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_legacy_engine_freeze.py +0 -0
  813. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_lessons_rotation_075.py +0 -0
  814. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_list_stories.py +0 -0
  815. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_mcp_integration.py +0 -0
  816. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_model_config.py +0 -0
  817. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_modular_constitution.py +0 -0
  818. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_monorepo_detect.py +0 -0
  819. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_multi_prefix.py +0 -0
  820. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_observe.py +0 -0
  821. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_pdca_semantics_v2.py +0 -0
  822. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_pdca_slim.py +0 -0
  823. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_profiles.py +0 -0
  824. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_project_root.py +0 -0
  825. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_project_visibility.py +0 -0
  826. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_prompt_cli_contract.py +0 -0
  827. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_prompt_cli_refs.py +0 -0
  828. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_prompt_quality_075.py +0 -0
  829. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_prompt_structural_invariants.py +0 -0
  830. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_prompts_package.py +0 -0
  831. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_release.py +0 -0
  832. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_release_field.py +0 -0
  833. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_release_v110.py +0 -0
  834. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_render_prompt.py +0 -0
  835. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_report_parser.py +0 -0
  836. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_report_unified.py +0 -0
  837. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_resolve_scope.py +0 -0
  838. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_review_command.py +0 -0
  839. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_rule_registry_architecture.py +0 -0
  840. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_rules_enrichment.py +0 -0
  841. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_run_events.py +0 -0
  842. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_run_stats.py +0 -0
  843. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_scaffold.py +0 -0
  844. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_scaffold_developer_prefix.py +0 -0
  845. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_schemas.py +0 -0
  846. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_script_extraction.py +0 -0
  847. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_selective_deploy.py +0 -0
  848. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_session_context.py +0 -0
  849. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_skill_structure.py +0 -0
  850. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_skills_enrichment.py +0 -0
  851. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_slim_deps_088.py +0 -0
  852. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_smart_regression.py +0 -0
  853. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_solution_design_rule.py +0 -0
  854. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_spec_preflight.py +0 -0
  855. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_sprint_command.py +0 -0
  856. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_stack_references.py +0 -0
  857. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_status_command.py +0 -0
  858. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_statusline.py +0 -0
  859. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story014_release.py +0 -0
  860. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story015_ci_lint_gate.py +0 -0
  861. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story016_claude_md.py +0 -0
  862. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story017_init_claude_md.py +0 -0
  863. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story018_arch_staleness.py +0 -0
  864. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story019_bailout.py +0 -0
  865. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story020_horizon.py +0 -0
  866. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story021_rfc.py +0 -0
  867. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story022_decision_tree.py +0 -0
  868. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story023_test_quality.py +0 -0
  869. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story024_native_agent.py +0 -0
  870. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story025_ci_pipeline.py +0 -0
  871. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story026_issue_tracker.py +0 -0
  872. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story028_rule_scoping.py +0 -0
  873. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story029_doctor.py +0 -0
  874. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story030_lint.py +0 -0
  875. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story031_git_init_guard.py +0 -0
  876. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story032_greenfield_redirect.py +0 -0
  877. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story033_config_backfill.py +0 -0
  878. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story034_plan_config_refresh.py +0 -0
  879. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story035_readme_docs.py +0 -0
  880. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story037_regression_fix.py +0 -0
  881. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story038_call_graph_update.py +0 -0
  882. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story039_venv_config.py +0 -0
  883. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story040_layered_claude_md.py +0 -0
  884. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story042_spec_linter.py +0 -0
  885. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story043_active_clarify.py +0 -0
  886. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story044_consistency_check.py +0 -0
  887. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story045_auto_pr.py +0 -0
  888. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story047_enterprise_flags.py +0 -0
  889. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story048_worktree_isolation.py +0 -0
  890. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story049_community_standards.py +0 -0
  891. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story050_doc_only_shortcut.py +0 -0
  892. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story051_workflow_streamlining.py +0 -0
  893. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story052_conditional_github_release.py +0 -0
  894. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story053_impact_regression.py +0 -0
  895. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story055_commands.py +0 -0
  896. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story055_config.py +0 -0
  897. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story055_spec_linter.py +0 -0
  898. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story056_commands.py +0 -0
  899. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story056_config.py +0 -0
  900. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story057_implicit_cleanup.py +0 -0
  901. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story058_opencode_extraction.py +0 -0
  902. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story058_routing_fix.py +0 -0
  903. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story059_codex_removal.py +0 -0
  904. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story060_init_hang.py +0 -0
  905. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story061_remove_thinking.py +0 -0
  906. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story062_mcp_recommendations.py +0 -0
  907. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story063_prompt_slimming.py +0 -0
  908. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story064_venv_local_md.py +0 -0
  909. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story065_sprint_model.py +0 -0
  910. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story072_developer_prefix.py +0 -0
  911. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story106_lateral_scan.py +0 -0
  912. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story133_debug_skill.py +0 -0
  913. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_pdca_host_capsules.py +0 -0
  914. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_pdca_semantics_v2.py +0 -0
  915. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim009_lazy_rules.py +0 -0
  916. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim010_dry_refactor.py +0 -0
  917. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim011_command_rules.py +0 -0
  918. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim012_ci.py +0 -0
  919. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim014_clean.py +0 -0
  920. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim014_context.py +0 -0
  921. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim014_guard.py +0 -0
  922. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim014_lazy_viz.py +0 -0
  923. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim014_next_id.py +0 -0
  924. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim014_regression.py +0 -0
  925. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim014_sec_scope.py +0 -0
  926. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim014_validators.py +0 -0
  927. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim015_doctor.py +0 -0
  928. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim016_testmap_lint.py +0 -0
  929. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim017.py +0 -0
  930. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim018.py +0 -0
  931. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim019_plan_subphases.py +0 -0
  932. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim020_explore_stall_fix.py +0 -0
  933. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim021.py +0 -0
  934. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim022.py +0 -0
  935. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim023.py +0 -0
  936. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim024.py +0 -0
  937. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim025.py +0 -0
  938. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim026.py +0 -0
  939. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim027.py +0 -0
  940. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim028.py +0 -0
  941. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim029.py +0 -0
  942. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim030.py +0 -0
  943. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim031.py +0 -0
  944. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim032.py +0 -0
  945. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim033.py +0 -0
  946. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim034.py +0 -0
  947. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim035.py +0 -0
  948. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim036.py +0 -0
  949. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim037.py +0 -0
  950. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim038.py +0 -0
  951. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim039.py +0 -0
  952. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim040.py +0 -0
  953. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim041.py +0 -0
  954. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim042.py +0 -0
  955. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim043.py +0 -0
  956. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim044.py +0 -0
  957. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim045.py +0 -0
  958. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim046.py +0 -0
  959. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim047.py +0 -0
  960. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim048.py +0 -0
  961. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim049.py +0 -0
  962. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim051.py +0 -0
  963. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim052.py +0 -0
  964. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim053.py +0 -0
  965. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim054.py +0 -0
  966. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim055.py +0 -0
  967. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim056.py +0 -0
  968. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim060_codex_profile.py +0 -0
  969. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim063.py +0 -0
  970. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim065.py +0 -0
  971. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim076_multistack.py +0 -0
  972. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim077_monorepo_stack.py +0 -0
  973. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim078.py +0 -0
  974. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim079.py +0 -0
  975. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim080.py +0 -0
  976. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim081.py +0 -0
  977. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim082.py +0 -0
  978. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim083.py +0 -0
  979. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim084.py +0 -0
  980. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim095.py +0 -0
  981. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim098_pdca_nudge.py +0 -0
  982. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim099_act_context_ref.py +0 -0
  983. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim102_version_marker.py +0 -0
  984. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim104_should_semantics.py +0 -0
  985. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim107.py +0 -0
  986. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim109_journey_spec.py +0 -0
  987. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim111_playwright_assertion.py +0 -0
  988. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim112_rules_split.py +0 -0
  989. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim114_journey_sync.py +0 -0
  990. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim119.py +0 -0
  991. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim120.py +0 -0
  992. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim121.py +0 -0
  993. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim125.py +0 -0
  994. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim126.py +0 -0
  995. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim127_managed_block.py +0 -0
  996. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim128_engineering_concerns.py +0 -0
  997. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim132.py +0 -0
  998. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim134_no_model_in_frontmatter.py +0 -0
  999. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim135_config_schema.py +0 -0
  1000. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim139_skill_manifest.py +0 -0
  1001. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim141_manifest_hash.py +0 -0
  1002. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim142_all_target_isolation.py +0 -0
  1003. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim143_spec_graph.py +0 -0
  1004. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim144_wave_mode.py +0 -0
  1005. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim145.py +0 -0
  1006. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim146.py +0 -0
  1007. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim147.py +0 -0
  1008. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim148.py +0 -0
  1009. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim149.py +0 -0
  1010. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim150.py +0 -0
  1011. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim_stop_hook.py +0 -0
  1012. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_story_slim_work_units.py +0 -0
  1013. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_tools.py +0 -0
  1014. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_topology_parsers_066.py +0 -0
  1015. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_update_task.py +0 -0
  1016. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_visualize_call_nested.py +0 -0
  1017. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_visualize_chain_fix.py +0 -0
  1018. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_visualize_modes.py +0 -0
  1019. {pactkit-2.25.0 → pactkit-2.25.2}/tests/unit/test_visualize_multilang_chain.py +0 -0
@@ -1,5 +1,17 @@
1
1
  # Changelog
2
2
 
3
+ ## [2.25.2] - 2026-09-02
4
+
5
+ ### Fixed
6
+ - **commit-gate counts survive repo `addopts` interference** — the gate parsed pass/fail counts from pytest's terminal summary line, but a repo's `addopts = "-q"` stacks with the gate's own `-q` into `-qq`, where pytest 9 prints no final summary at all: every run parsed as all-zero, and a genuinely red (flaky) run was misreported as "no tests collected" (live incident 2026-09-02, harness-backend; STORY-slim-202609025bc9246b6a54). Counts now come from a `--junitxml` side channel (pinned `junit_family=xunit2`) that verbosity cannot suppress, with the terminal parse as fallback. Repo `addopts` are otherwise fully honored — required run flags such as `--asyncio-mode=auto` keep applying, addopts are never cleared — and a repo that disables the junitxml plugin degrades to terminal parsing instead of locking commits. Failure messages now report the exit code's actual meaning (`no tests ran` for exit 5, usage/collection error for exit 4, `counts unparseable` with an addopts hint otherwise), and the gate runs `-rsfE` so `FAILED`/`ERROR` short-summary lines — which survive `-qq` — reach the block message.
7
+
8
+ ## [2.25.1] - 2026-09-01
9
+
10
+ ### Fixed
11
+ - **`pactkit gate authorize <scope>` parses as documented** — 2.25.0's parser accepted only the bare positional form (`pactkit gate <scope>`), so the form printed by every block message and the L1 Override Protocol failed with "unrecognized arguments"; both forms now parse (HOTFIX-slim-20260830bbb5bc219d35).
12
+ - **Cross-repo commands are judged by the repo they operate on** — `cd <other-repo> && git push` was evaluated against the session cwd's enforcement config; `hook_entry` now resolves the last `cd` target before the git command and evaluates gates against that repository (HOTFIX-slim-20260830bbb5bc219d35).
13
+ - **commit-gate no longer misfires on docs/meta-only commits** — three defects that blocked a zero-code design-baseline commit three times and forced test-writing before allowing it (HOTFIX-slim-20260901469666ef23a8): `.gitignore`/`.claude/**`/`.codex/**` are now doc-only (repo/agent metadata carries no runtime code and no longer disqualifies the change set from the skip path); the full-suite target falls back from `tests/unit/` to `tests/` when only a flat layout exists, and a zero-collected run reports "no tests collected" instead of implying failures (still RED — the TDD contract is unchanged); "No module named pytest" from the venv-less fallback interpreter raises `GateUnavailable` → WARN + allow, matching the missing-binary path (R3 self-lock protection).
14
+
3
15
  ## [2.25.0] - 2026-08-30
4
16
 
5
17
  ### Added
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: pactkit
3
- Version: 2.25.0
3
+ Version: 2.25.2
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
@@ -106,6 +106,22 @@ T Truth Data is the Truth Factual basis for all judgment — no memory,
106
106
  - **Full PDCA Lifecycle** — Plan -> Act -> Check -> Done, with quality gates at every stage
107
107
  - **Safe by Design** — TDD-first, safe regression, pre-existing test protection
108
108
  - **Multi-Tool Support** — Works with Claude Code, OpenCode, and Codex CLI
109
+ - **AI-Native SDLC, Operationalized** — The artifact chain, gates, and audit trail that Anthropic's engineering practice describes — running across all 3 hosts
110
+
111
+ ## AI-Native SDLC Alignment
112
+
113
+ Anthropic's engineering team has published their practice for an AI-native software development lifecycle: six stages, each producing a committed artifact, humans at the gates, and the commit chain as the audit trail. PactKit operationalizes that model today — across all 3 supported hosts:
114
+
115
+ | AI-Native SDLC | Practice | PactKit mechanism |
116
+ |----------------|----------|-------------------|
117
+ | Plan — `intent.md` | Ideas become committed artifacts with provenance | `/project-clarify` -> `/project-plan` (Spec + Story, timestamped in git history) |
118
+ | Design — `spec.md` | Requirements + design in one pass; policies applied at generation time | Spec generation reads rule modules; `spec_guard` keeps the Spec law during Act |
119
+ | Build — `plan.md` | No code before an accepted plan; guardrails as code, not prompt discipline | Spec lint + consistency check gate `/project-act`; enforcement gates enforce what prompts can only state |
120
+ | Test — `diff + tests` | Sessions self-verify; steering config is regression-tested | TDD loop + regression gates; `commit-gate` blocks RED suites with skip != pass transparency |
121
+ | Deploy — `PR + findings` | Multi-pass review; hooks as allow/ask/block gates | `auth_gate` authorization pairs, `push_gate`, `tamper_guard` — every block and bypass audited |
122
+ | Maintain | Incidents feed the next cycle | Gate telemetry + friction stats (`pactkit stats`) decide what to tune next |
123
+
124
+ Beyond the published practice: the same governance runs on Claude Code, OpenCode, and Codex CLI; interrupted sessions leave machine-observable `outcome_unknown` fences that block resume until the gate re-runs; and every gate decision lands in `.pactkit/enforcement/` as an audit record.
109
125
 
110
126
  ## Installation
111
127
 
@@ -280,7 +296,7 @@ PactKit deploys 10 skills (3 scripted + 7 prompt-only), auto-invoked by commands
280
296
 
281
297
  ## CLI Subcommands
282
298
 
283
- PactKit ships 36 deterministic CLI subcommands — operations that were previously delegated to AI prompts are now enforced in Python code (the "C" in P.A.C.T.):
299
+ PactKit ships 45 deterministic CLI subcommands — operations that were previously delegated to AI prompts are now enforced in Python code (the "C" in P.A.C.T.):
284
300
 
285
301
  | Command | Purpose |
286
302
  |---------|---------|
@@ -312,11 +328,27 @@ PactKit ships 36 deterministic CLI subcommands — operations that were previous
312
328
  | `pactkit lint-lessons` | Validate lessons.md structure |
313
329
  | `pactkit lint-testcase` | Validate test case structure |
314
330
  | `pactkit done-verify` | Archive honesty gate: requirement→test evidence chain, checkbox↔case consistency, status machine (blocks `/project-done` on FAIL) |
315
- | `pactkit commit-gate` | Pre-commit test gate with skip≠pass transparency; PreToolUse hook + git pre-commit channels, auto-installed per format |
331
+ | `pactkit commit-gate` | Pre-commit test gate with skip≠pass transparency; stack-aware (pytest/npm test/go test/mvn/gradle); counts via junitxml — immune to repo `addopts` verbosity tricks — with exit-code-truthful failure messages; PreToolUse hook + git pre-commit/pre-push channels, auto-installed per format |
332
+ | `pactkit gate` | Session context hooks (`--hook session-start/pre-compact`) + external-effect authorization (`pactkit gate <scope> [--ttl-minutes N]`) |
316
333
  | `pactkit deps` | External dependency check (`deps check`) and guided install (`deps install`) for node/codegraph/gh |
317
334
  | `pactkit schema config` | List every pactkit.yaml key with default, effective value, and source |
318
335
  | `pactkit sync` | Sync codegraph index |
319
336
 
337
+ ### Enforcement Gates (2.25.0)
338
+
339
+ The hook layer enforces the rules prompt text can only state — protected branches, specs, credentials, and external effects survive a conflicting instruction instead of losing to it:
340
+
341
+ | Gate | Blocks | Bypass (human/config only) |
342
+ |------|--------|---------------------------|
343
+ | `push_gate` | Direct push to a protected branch (default `main`/`master`) | `PACTKIT_ALLOW_DIRECT_PUSH=1` or `enforcement.allow_direct_push` |
344
+ | `commit_gate` | Commits on protected branches (default) and RED test suites | same as push_gate; `develop` keeps the full-suite rule |
345
+ | `spec_guard` | Editing a spec that has an active preflight receipt (Spec is Law during Act) | `PACTKIT_ALLOW_SPEC_EDIT=1` or `pactkit gate spec_edit` |
346
+ | `auth_gate` | External-effect commands (PR/release/publish/repo) until the user confirms | `pactkit gate <scope>` TTL token or `PACTKIT_AUTHORIZED=1` |
347
+ | `secrets_gate` | Literal credential material in commands (env-var indirection is exempt) | `PACTKIT_ALLOW_SECRET=1` |
348
+ | `tamper_guard` | Modifying enforcement artifacts (hooks, gate registrations, audit records) | `PACTKIT_ALLOW_CONFIG_EDIT=1` |
349
+
350
+ All blocks/bypasses are audited (`.pactkit/enforcement/`) and feed `pactkit stats` as gate telemetry (per-gate block counts, per-command invocation counts, authorization pairs) — the friction data that decides what to tune next.
351
+
320
352
  ## Deployment Architecture
321
353
 
322
354
  PactKit supports three deployment formats:
@@ -61,6 +61,22 @@ T Truth Data is the Truth Factual basis for all judgment — no memory,
61
61
  - **Full PDCA Lifecycle** — Plan -> Act -> Check -> Done, with quality gates at every stage
62
62
  - **Safe by Design** — TDD-first, safe regression, pre-existing test protection
63
63
  - **Multi-Tool Support** — Works with Claude Code, OpenCode, and Codex CLI
64
+ - **AI-Native SDLC, Operationalized** — The artifact chain, gates, and audit trail that Anthropic's engineering practice describes — running across all 3 hosts
65
+
66
+ ## AI-Native SDLC Alignment
67
+
68
+ Anthropic's engineering team has published their practice for an AI-native software development lifecycle: six stages, each producing a committed artifact, humans at the gates, and the commit chain as the audit trail. PactKit operationalizes that model today — across all 3 supported hosts:
69
+
70
+ | AI-Native SDLC | Practice | PactKit mechanism |
71
+ |----------------|----------|-------------------|
72
+ | Plan — `intent.md` | Ideas become committed artifacts with provenance | `/project-clarify` -> `/project-plan` (Spec + Story, timestamped in git history) |
73
+ | Design — `spec.md` | Requirements + design in one pass; policies applied at generation time | Spec generation reads rule modules; `spec_guard` keeps the Spec law during Act |
74
+ | Build — `plan.md` | No code before an accepted plan; guardrails as code, not prompt discipline | Spec lint + consistency check gate `/project-act`; enforcement gates enforce what prompts can only state |
75
+ | Test — `diff + tests` | Sessions self-verify; steering config is regression-tested | TDD loop + regression gates; `commit-gate` blocks RED suites with skip != pass transparency |
76
+ | Deploy — `PR + findings` | Multi-pass review; hooks as allow/ask/block gates | `auth_gate` authorization pairs, `push_gate`, `tamper_guard` — every block and bypass audited |
77
+ | Maintain | Incidents feed the next cycle | Gate telemetry + friction stats (`pactkit stats`) decide what to tune next |
78
+
79
+ Beyond the published practice: the same governance runs on Claude Code, OpenCode, and Codex CLI; interrupted sessions leave machine-observable `outcome_unknown` fences that block resume until the gate re-runs; and every gate decision lands in `.pactkit/enforcement/` as an audit record.
64
80
 
65
81
  ## Installation
66
82
 
@@ -235,7 +251,7 @@ PactKit deploys 10 skills (3 scripted + 7 prompt-only), auto-invoked by commands
235
251
 
236
252
  ## CLI Subcommands
237
253
 
238
- PactKit ships 36 deterministic CLI subcommands — operations that were previously delegated to AI prompts are now enforced in Python code (the "C" in P.A.C.T.):
254
+ PactKit ships 45 deterministic CLI subcommands — operations that were previously delegated to AI prompts are now enforced in Python code (the "C" in P.A.C.T.):
239
255
 
240
256
  | Command | Purpose |
241
257
  |---------|---------|
@@ -267,11 +283,27 @@ PactKit ships 36 deterministic CLI subcommands — operations that were previous
267
283
  | `pactkit lint-lessons` | Validate lessons.md structure |
268
284
  | `pactkit lint-testcase` | Validate test case structure |
269
285
  | `pactkit done-verify` | Archive honesty gate: requirement→test evidence chain, checkbox↔case consistency, status machine (blocks `/project-done` on FAIL) |
270
- | `pactkit commit-gate` | Pre-commit test gate with skip≠pass transparency; PreToolUse hook + git pre-commit channels, auto-installed per format |
286
+ | `pactkit commit-gate` | Pre-commit test gate with skip≠pass transparency; stack-aware (pytest/npm test/go test/mvn/gradle); counts via junitxml — immune to repo `addopts` verbosity tricks — with exit-code-truthful failure messages; PreToolUse hook + git pre-commit/pre-push channels, auto-installed per format |
287
+ | `pactkit gate` | Session context hooks (`--hook session-start/pre-compact`) + external-effect authorization (`pactkit gate <scope> [--ttl-minutes N]`) |
271
288
  | `pactkit deps` | External dependency check (`deps check`) and guided install (`deps install`) for node/codegraph/gh |
272
289
  | `pactkit schema config` | List every pactkit.yaml key with default, effective value, and source |
273
290
  | `pactkit sync` | Sync codegraph index |
274
291
 
292
+ ### Enforcement Gates (2.25.0)
293
+
294
+ The hook layer enforces the rules prompt text can only state — protected branches, specs, credentials, and external effects survive a conflicting instruction instead of losing to it:
295
+
296
+ | Gate | Blocks | Bypass (human/config only) |
297
+ |------|--------|---------------------------|
298
+ | `push_gate` | Direct push to a protected branch (default `main`/`master`) | `PACTKIT_ALLOW_DIRECT_PUSH=1` or `enforcement.allow_direct_push` |
299
+ | `commit_gate` | Commits on protected branches (default) and RED test suites | same as push_gate; `develop` keeps the full-suite rule |
300
+ | `spec_guard` | Editing a spec that has an active preflight receipt (Spec is Law during Act) | `PACTKIT_ALLOW_SPEC_EDIT=1` or `pactkit gate spec_edit` |
301
+ | `auth_gate` | External-effect commands (PR/release/publish/repo) until the user confirms | `pactkit gate <scope>` TTL token or `PACTKIT_AUTHORIZED=1` |
302
+ | `secrets_gate` | Literal credential material in commands (env-var indirection is exempt) | `PACTKIT_ALLOW_SECRET=1` |
303
+ | `tamper_guard` | Modifying enforcement artifacts (hooks, gate registrations, audit records) | `PACTKIT_ALLOW_CONFIG_EDIT=1` |
304
+
305
+ All blocks/bypasses are audited (`.pactkit/enforcement/`) and feed `pactkit stats` as gate telemetry (per-gate block counts, per-command invocation counts, authorization pairs) — the friction data that decides what to tune next.
306
+
275
307
  ## Deployment Architecture
276
308
 
277
309
  PactKit supports three deployment formats:
@@ -0,0 +1,10 @@
1
+ ---
2
+ schema_version: 1
3
+ id: LESSON-20260902100234-6fa7694bad
4
+ date: '2026-09-02'
5
+ story_id: STORY-slim-202609025bc9246b6a54
6
+ context: commit_gate.py:run_pytest
7
+ tags: []
8
+ ---
9
+
10
+ commit_gate.py run_pytest 解析 pytest 计数不能依赖终端输出:显式 -r 会覆盖默认 short-summary 集合(-rs 挤掉 FAILED 行),verbosity -qq 吞最终 summary 行——已改走 --junitxml 权威通道
@@ -15,7 +15,7 @@
15
15
 
16
16
  ## Invariants
17
17
 
18
- 1. All 4791+ tests must pass before any commit to `main`.
18
+ 1. All 4820+ 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,371 @@
1
+ # Sprint Board
2
+
3
+ ## 📋 Backlog
4
+
5
+ ### [HOTFIX-slim-127] Add codegraph sync to PDCA command source templates
6
+ > Spec: docs/specs/HOTFIX-slim-127.md
7
+
8
+ - [ ] Fix project-plan
9
+ - [ ] Fix project-act
10
+ - [ ] Fix project-done
11
+ - [ ] Fix project-hotfix
12
+
13
+ ### [HOTFIX-slim-131] Fix deployer @ refs before frontmatter
14
+ > Spec: docs/specs/HOTFIX-slim-131.md
15
+
16
+ - [ ] Fix _deploy_commands prepend order
17
+
18
+ ### [HOTFIX-slim-132] Add explicit board.py move_story command to project-act
19
+ > Spec: docs/specs/HOTFIX-slim-132.md
20
+
21
+ - [ ] Add move_story command template to Phase 0.6
22
+
23
+ ### [STORY-slim-115] Worktree/Parallel Session Artifact Drift Prevention
24
+ > Spec: docs/specs/STORY-slim-115.md
25
+
26
+ - [ ] 实现派生 Board 视图
27
+ - [ ] 增加 Board 生成与状态命令
28
+ - [ ] 迁移 PDCA Board 操作
29
+ - [ ] 验证并行 Session 安全
30
+ - [ ] 完成兼容迁移与回归
31
+
32
+ ### [STORY-slim-118] codegraph MCP Integration for Semantic Code Queries
33
+ > Spec: docs/specs/STORY-slim-118.md
34
+
35
+ - [ ] Document replacement vs augmentation decision
36
+ - [ ] Add codegraph MCP conditional note to SKILL_VISUALIZE_MD Graph Query Protocol
37
+ - [ ] Run pactkit update to redeploy
38
+
39
+ ### [STORY-slim-119] Improve Python Call Graph Coverage
40
+ > Spec: docs/specs/STORY-slim-119.md
41
+
42
+ - [ ] Extend _extract_calls to capture non-self attribute method calls (R1)
43
+ - [ ] Capture function references in list/assignment contexts (R2)
44
+ - [ ] Use ast.walk to scan nested functions (R3)
45
+ - [ ] Write TDD tests for AC1-AC4
46
+ - [ ] Run pactkit update to redeploy
47
+
48
+ ### [STORY-slim-2026082727cc4ab535e7] [P2-1 backlog] 生成式目录 + 漂移门
49
+ > Spec: docs/specs/STORY-slim-2026082727cc4ab535e7.md
50
+
51
+ - [ ] workflow_registry + RULE_DEFINITIONS 生成 docs/reference/ 目录页,CI 校验 diff 为零
52
+
53
+ ### [STORY-slim-2026082730b5954cf538] [P2-4 backlog] 治理工具 MCP 化
54
+ > Spec: docs/specs/STORY-slim-2026082730b5954cf538.md
55
+
56
+ - [ ] board/continuation/doctor 关键子命令包成 MCP server([mcp_servers] 配置段生成)
57
+ - [ ] Codex hook handler 可走 MCP 不必 shell out
58
+
59
+ ### [STORY-slim-20260827625b870eb7da] [P2-3 backlog] 配置分层组合(企业基线→项目→用户 overlay)
60
+ > Spec: docs/specs/STORY-slim-20260827625b870eb7da.md
61
+
62
+ - [ ] pactkit.yaml 层叠 last-write-wins + pactkit config dump
63
+ - [ ] 参考 Codex config loader 与 dsh profile/bundle/patch 语义
64
+
65
+ ### [STORY-slim-202608277ec1236a7b99] [P1-2 backlog] outcome_unknown 崩溃恢复中间态
66
+ > Spec: docs/specs/STORY-slim-202608277ec1236a7b99.md
67
+
68
+ - [ ] checkpoint 状态机增加 outcome_unknown(evidence 级 unknown 标记)
69
+ - [ ] 恢复时强制重跑验证步骤而非沿用旧结论(Ctrl-C 半途场景)
70
+
71
+ ### [STORY-slim-20260827833e7a200f9a] [P2-2 backlog] 跨宿主 prompt snapshot 测试
72
+ > Spec: docs/specs/STORY-slim-20260827833e7a200f9a.md
73
+
74
+ - [ ] deploy 到临时目录,对 Claude/OpenCode/Codex 三 profile 产物做字节级 snapshot
75
+ - [ ] 拦截 prompt 模板静默回归(2.21/2.22 类事故)
76
+
77
+ ### [STORY-slim-20260827855bf3efaec3] [P1-3 backlog] 设计决策记录(Agent Notes 治理版)
78
+ > Spec: docs/specs/STORY-slim-20260827855bf3efaec3.md
79
+
80
+ - [ ] decision note 模板 + commit-gate 规则:触及 governance/spec/architecture 文件须有对应 note
81
+ - [ ] enterprise adoption:可追溯架构决定
82
+
83
+ ### [STORY-slim-2026082799fa651655be] [P2-5 backlog] 宿主版本/能力探测泛化
84
+ > Spec: docs/specs/STORY-slim-2026082799fa651655be.md
85
+
86
+ - [ ] 大部分已被 STORY-slim-20260827024e71df170f R4/R5(Codex 探测)覆盖
87
+ - [ ] 剩余:OpenCode/Copilot 的版本探测与 profiles 能力标志动态化
88
+
89
+ ### [STORY-slim-20260827c67e3add6af5] [P1-1 backlog] 授权审计事件对:authorization/asked + granted|denied 落事件流
90
+ > Spec: docs/specs/STORY-slim-20260827c67e3add6af5.md
91
+
92
+ - [ ] 依赖 P0 事件流(STORY-slim-20260827024e71df170f)落地后在 blocker 升降路径落审计事件对
93
+ - [ ] enterprise 合规刚需,实现成本低
94
+
95
+ ### [STORY-slim-20260827d0ae0dfada51] [P1-5 backlog] write_scope 编译到宿主策略层
96
+ > Spec: docs/specs/STORY-slim-20260827d0ae0dfada51.md
97
+
98
+ - [ ] Spec Touches∪项目 write_scope 编译为 Codex sandbox/permission profile + Claude allowlist
99
+ - [ ] 从 prompt 劝告升级为宿主结构性拒绝
100
+
101
+ ### [STORY-slim-20260827fb6291b717eb] [P1-4 backlog] Codex 插件分发形态(.codex-plugin manifest)
102
+ > Spec: docs/specs/STORY-slim-20260827fb6291b717eb.md
103
+
104
+ - [ ] 生成 .codex-plugin manifest 捆绑 skills+hooks+MCP 声明
105
+ - [ ] 依赖 P0-4 hooks.json;对称于现有 Claude plugin 发布流程
106
+
107
+ ## 🔄 In Progress
108
+
109
+ ## ✅ Done
110
+
111
+ ### [HOTFIX-slim-20260828ee6cde3108fb] git hooks must not lock everyone out when pactkit is missing
112
+ > Spec: docs/specs/HOTFIX-slim-20260828ee6cde3108fb.md
113
+
114
+ - [x] PATH probe in generated pre-commit/pre-push scripts
115
+
116
+ ### [HOTFIX-slim-20260830bbb5bc219d35] gate CLI syntax + push-gate cross-repo root
117
+ > Spec: docs/specs/HOTFIX-slim-20260830bbb5bc219d35.md
118
+
119
+ - [x] Accept authorize keyword in gate CLI
120
+ - [x] Resolve cd-target repo in hook_entry
121
+ - [x] Focused tests + golden refresh
122
+
123
+ ### [HOTFIX-slim-20260901469666ef23a8] commit-gate misfires on docs/meta-only commits
124
+ > Spec: docs/specs/HOTFIX-slim-20260901469666ef23a8.md
125
+
126
+ - [x] Fix three defects: doc-only patterns miss repo meta files (.gitignore/.claude/.codex); full-suite target hard-codes tests/unit/ with no tests/ fallback and counts exit 4/5 as RED; missing pytest module (pipx fallback) reads as RED instead of GateUnavailable. From harness-backend 2026-09-01 friction.
127
+
128
+ ### [STORY-slim-145] Codex 部署命令语义完整性与 Adapter 兼容门禁
129
+ > Spec: docs/specs/STORY-slim-145.md
130
+
131
+ - [x] 建立 CLI policy 与结构化操作渲染契约
132
+ - [x] 移除 pactkit-codex 有损命令前缀替换
133
+ - [x] 增加 prompt 完整性与 Classic/Codex parity 门禁
134
+ - [x] 阻止不兼容 Core/adapter 组合静默部署
135
+ - [x] 完成隔离迁移、双仓回归与 2.23.0 同版本构建验证
136
+
137
+ ### [STORY-slim-147] 全 Skill 执行可靠性协议与 Plan 可恢复工作流
138
+ > Spec: docs/specs/STORY-slim-147.md
139
+
140
+ - [x] 建立 25 入口执行可靠性注册表
141
+ - [x] 抽象通用 continuation engine
142
+ - [x] 无损迁移 project-act
143
+ - [x] 接入 project-plan 可恢复 workflow
144
+ - [x] 增加迁移诊断与安全门禁
145
+ - [x] 验证四种部署目标语义一致
146
+
147
+ ### [STORY-slim-148] Git 友好的分片治理事实源与无冲突投影视图
148
+ > Spec: docs/specs/STORY-slim-148.md
149
+
150
+ - [x] 定义 Story/Lesson 分片 schema 与唯一字段所有权
151
+ - [x] 实现无中心唯一 ITEM ID 与新旧解析兼容
152
+ - [x] 迁移 Board 和 Lesson 写入到单记录 repository
153
+ - [x] 将 Context 与 Board 降级为只读 projection
154
+ - [x] 实现无损迁移、回滚与禁止双写门禁
155
+ - [x] 迁移所有消费者并验证双工作树无冲突
156
+ - [x] 验证四种 Adapter 的新治理语义
157
+
158
+ ### [STORY-slim-149] Codegraph-first 静态分析路由与显式降级
159
+ > Spec: docs/specs/STORY-slim-149.md
160
+
161
+ - [x] 实现统一 GraphProviderRouter 与结果模型
162
+ - [x] 实现 Codegraph 健康、新鲜度和单次 sync
163
+ - [x] 扩展 query/explore/impact CLI 与显式 fallback
164
+ - [x] 让 Plan Act Trace 统一走查询路由
165
+ - [x] 校验 continuation provider evidence
166
+ - [x] 增加 doctor 与部署完整性诊断
167
+ - [x] 验证四种 Adapter 的查询语义
168
+
169
+ ### [STORY-slim-2026082381e832771d4e] Codex 未完成 Workflow 终止门禁与宿主续跑协议
170
+ > Spec: docs/specs/STORY-slim-2026082381e832771d4e.md
171
+
172
+ - [x] 实现 workflow finish-guard 与稳定终止决策
173
+ - [x] 为关键写操作增加 managed active-run ownership
174
+ - [x] 定义宿主 capability handshake 与 bounded resume runner
175
+ - [x] 加入 lease、无进展检测与人工副作用边界
176
+ - [x] 在四平台模板中部署 Pre-Final Protocol
177
+ - [x] 建立 transcript-level agent-loop 与 adapter 验收
178
+ - [x] 补充 doctor、manifest 与保证等级文档
179
+ - [x] 为十个通用 Project Workflow 增加命令级完成证据
180
+ - [x] 在 Codex、OpenCode 与 Copilot 部署 Sprint 串行降级入口
181
+
182
+ ### [STORY-slim-20260823d854b0cf1875] Portable Methods 与宿主能力分层工作流架构
183
+ > Spec: docs/specs/STORY-slim-20260823d854b0cf1875.md
184
+
185
+ - [x] 定义三层产品边界与单一事实源
186
+ - [x] 实现 Work Unit 与租约状态机
187
+ - [x] 实现 ExecutionAttempt 与 EvidenceReceipt 复验
188
+ - [x] 建立 Host Capability Contract 与诚实降级
189
+ - [x] 提取 Portable Methods 单一内容源
190
+ - [x] 迁移 project-plan 与原子 finalize
191
+ - [x] 移除 Stop hook 正确性依赖
192
+ - [x] 完成兼容迁移、doctor 与真实宿主验证
193
+
194
+ ### [STORY-slim-20260823de7e85d6042a] Codex Stop Hook 强制续跑与真实宿主完成门禁
195
+ > Spec: docs/specs/STORY-slim-20260823de7e85d6042a.md
196
+
197
+ - [x] 实现 Core session/turn 绑定与 hook-facing decision 接口
198
+ - [x] 实现 Codex Stop handler 与 finish-guard 映射
199
+ - [x] 部署并无损管理 Codex hooks 配置
200
+ - [x] 增加 trust/capability/doctor 与 manifest 诊断
201
+ - [x] 覆盖 handler、部署和防循环测试
202
+ - [x] 完成真实 Codex Plan/Done 提前终止 E2E
203
+ - [x] pip 更新并验证真实本机 Codex 部署
204
+
205
+ ### [STORY-slim-20260825b1c83a046b4b] PactKit 场景化规则架构与非阻塞执行契约
206
+ > Spec: docs/specs/STORY-slim-20260825b1c83a046b4b.md
207
+
208
+ - [x] 建立规则注册表与最小 Runtime Kernel
209
+ - [x] 拆分 Phase Contracts 与共享能力模块
210
+ - [x] 统一非阻塞失败和完成语义
211
+ - [x] 重写风险驱动 Engineering Guides
212
+ - [x] 实现 ownership 安全迁移与回滚
213
+ - [x] 验证四种 Adapter 语义一致性
214
+
215
+ ### [STORY-slim-202608264cf429c75e22] Unify deployment ownership safety across skills, agents, CLAUDE.md and rollback
216
+ > Spec: docs/specs/STORY-slim-202608264cf429c75e22.md
217
+
218
+ - [x] Extract shared ownership helper (load_previous_hashes + preserve_or_write) in deploy_manifest.py; narrow manifest skill ownership to registered artifacts
219
+ - [x] Write RED tests for skill/agent ownership preservation (AC1-AC4, AC9)
220
+ - [x] Refactor _deploy_rules/_deploy_guides to shared helper; add ownership checks to _deploy_skills/_deploy_agents; fix _deploy_claude_md unreadable+appended-content paths; retire disabled skills with proof
221
+ - [x] Write RED tests for CLAUDE.md preservation and skill retirement (AC5, AC8)
222
+ - [x] Fix rollback_paths: catch BaseException + per-restore isolation
223
+ - [x] Write RED tests for KeyboardInterrupt rollback and restore isolation (AC7, AC10)
224
+ - [x] Full regression + update spec status
225
+ - [x] QA fix iteration — command-skill ownership, CLAUDE.md boundary tightening, gate unification, retirement hardening, count honesty
226
+
227
+ ### [STORY-slim-2026082672b57c78fd67] Subtraction pass: dead code removal, completion-rule dedup, CLI decomposition
228
+ > Spec: docs/specs/STORY-slim-2026082672b57c78fd67.md
229
+
230
+ - [x] RED: taxonomy-consistency + help-surface snapshot tests
231
+ - [x] Completion-rule delegation to workflow_validators (R1)
232
+ - [x] Shared step taxonomy (R2)
233
+ - [x] cli.py decomposition (R3)
234
+ - [x] Dead code removal with adapter-package grep proof (R4)
235
+ - [x] Doctor FORMAT_PROFILES root helper (R5)
236
+ - [x] Full regression + CHANGELOG
237
+ - [x] Delivered scope: R3 bounded + R4 partial + R5 project-level (R1/R2 dropped per legacy freeze)
238
+
239
+ ### [STORY-slim-202608267c3989223b4d] Workflow engine robustness: no bricked runs, corrupt-file isolation, Windows locks
240
+ > Spec: docs/specs/STORY-slim-202608267c3989223b4d.md
241
+
242
+ - [x] RED tests AC1-AC6
243
+ - [x] workflow_engine: fingerprint consistency + scan isolation
244
+ - [x] continuation: platform-split lock + story lock + stale tolerance + typed guards
245
+ - [x] host_continuation typed access
246
+ - [x] Full regression
247
+
248
+ ### [STORY-slim-202608268fc379dbe6ef] PactKit PDCA 规则语义深化与风险驱动执行模型
249
+ > Spec: docs/specs/STORY-slim-202608268fc379dbe6ef.md
250
+
251
+ - [x] 细化 RuleClause 与 PhaseContract schema
252
+ - [x] 实现 Sprint 动态 phase capsule
253
+ - [x] 建立 Change Risk Profile 与风险路由
254
+ - [x] 原生重写 engineering guides 并补三类实践
255
+ - [x] 实现 scope integrity 与 test adequacy evidence
256
+ - [x] 完善兼容迁移、doctor 与四 Adapter parity
257
+
258
+ ### [STORY-slim-20260826ac1f0bfe4148] Prompt-to-CLI contract consistency: machine-checked and gap-closed
259
+ > Spec: docs/specs/STORY-slim-20260826ac1f0bfe4148.md
260
+
261
+ - [x] RED contract test AC1/AC2
262
+ - [x] board.py add_task subcommand + AC3 round-trip test
263
+ - [x] spec_preflight dedup + oversized-reference WARN + AC4/AC5 tests
264
+ - [x] Playbook interface inventory (R4)
265
+ - [x] Full regression
266
+
267
+ ### [STORY-slim-20260826cb37edfdd4da] Freeze and isolate the legacy workflow engine with a data-driven deletion track
268
+ > Spec: docs/specs/STORY-slim-20260826cb37edfdd4da.md
269
+
270
+ - [x] RED tests AC1-AC8
271
+ - [x] Create protocols.py neutral constants module
272
+ - [x] Move workflow_engine + host_continuation to frozen legacy package with compat shims
273
+ - [x] Re-point cli/doctor/deploy_manifest imports + usage instrumentation + doctor usage line
274
+ - [x] Test import migration + full regression
275
+ - [x] CHANGELOG deprecation notice
276
+
277
+ ### [STORY-slim-20260826ce35b77ce005] Gate subsystem fails closed: fix inverted and fail-open gates
278
+ > Spec: docs/specs/STORY-slim-20260826ce35b77ce005.md
279
+
280
+ - [x] RED tests AC1-AC9 with mocked subprocesses
281
+ - [x] Fix audit.py: pip-audit exit contract, exception surfacing, no_secrets pathspec, single-layer scorecard guard, load_config path
282
+ - [x] Fix done_verify.py word-boundary matching
283
+ - [x] Extract shared venv-aware pytest helper; coverage_gate fail-closed + CLI exit code
284
+ - [x] Fix commit_gate collection-failure transparency + tests/** classification
285
+ - [x] Fix doctor.py stale-graph config loading
286
+ - [x] Full regression
287
+
288
+ ### [STORY-slim-20260826f9492ab32c3d] Unify pactkit.yaml read and sync precedence into one canonical order
289
+ > Spec: docs/specs/STORY-slim-20260826f9492ab32c3d.md
290
+
291
+ - [x] RED tests AC1-AC4 fixture matrix
292
+ - [x] Expose single candidate-order constant in profiles.py
293
+ - [x] sync_config_copies: sync-from-effective + atomic write + divergence warning
294
+ - [x] Full regression + pre-existing sync test migration
295
+
296
+ ### [STORY-slim-20260827024e71df170f] P0 可观测性与拦截力升级:run 事件流、friction 统计、gate 完整度上报、Codex 原生 hooks 接入
297
+ > Spec: docs/specs/STORY-slim-20260827024e71df170f.md
298
+
299
+ - [x] R1 事件流写入:continuation.py 锁内追加 events/*.jsonl + 归档随行
300
+ - [x] R2 pactkit stats 聚合命令 + golden CLI snapshot 更新
301
+ - [x] R3 enforcement 状态模型(full/degraded/unavailable)+ doctor 聚合
302
+ - [x] R4 Codex hooks.json 薄注册(create-if-absent,依赖 ownership 契约修复)
303
+ - [x] R4b Codex hook schema 适配 + doctor 真实能力检测 + profiles 能力标志修正
304
+ - [x] 单测:AC1-AC3 事件流(投影一致/blocker 对/崩溃安全)
305
+ - [x] e2e:AC7-AC9 config.toml 字节不变 + hooks 幂等 + doctor 检测
306
+
307
+ ### [STORY-slim-20260827eddbe9669c87] Continuation 状态机补强:授权审计事件对与 outcome_unknown 恢复语义
308
+ > Spec: docs/specs/STORY-slim-20260827eddbe9669c87.md
309
+
310
+ - [x] R1 授权审计事件对(asked/granted 自动 + denied 显式,双路径发射)
311
+ - [x] R2 pactkit continuation deny 命令(锁内、前置校验、blocked 重写)
312
+ - [x] R3 验证尝试围栏 record_attempt + commit-gate 接入
313
+ - [x] R4 resume/finish_guard outcome_unknown 交叉检查(阻塞与解除)
314
+ - [x] R5 stats 授权决策计数 + golden CLI 更新
315
+
316
+ ### [STORY-slim-20260827fc9de5542ad7] Codex command references 所有权契约修复:command manifest v2 记录 reference 摘要
317
+ > Spec: docs/specs/STORY-slim-20260827fc9de5542ad7.md
318
+
319
+ - [x] core: command_ownership.py v2 schema + record_deployed_reference + v1 兼容读取 + 单测
320
+ - [x] adapter: deploy_codex_command_skills 渲染时记录 reference 摘要(snapshot 事务内)
321
+ - [x] adapter: _cleanup_stale_command_references 证明来源 ∪ command manifest v2
322
+ - [x] adapter tests: 修复两个红测试 + AC3/AC5/AC6 覆盖
323
+ - [x] core tests: v2 单测 + 全量回归
324
+
325
+ ### [STORY-slim-20260828897396a935ab] Hook coverage expansion: session context, spec/auth/secrets gates
326
+ > Spec: docs/specs/STORY-slim-20260828897396a935ab.md
327
+
328
+ - [x] auth_gate module + TTL token
329
+ - [x] secrets_gate credential patterns
330
+ - [x] session_gate SessionStart/PreCompact
331
+ - [x] spec_guard in tamper_guard
332
+ - [x] dispatch wiring + install registration
333
+ - [x] config/enforcement/cli extensions
334
+ - [x] unit tests AC1-AC6
335
+
336
+ ### [STORY-slim-202608289e83eeb30df4] Protected-branch push gate + L1 hard-rule override protocol
337
+ > Spec: docs/specs/STORY-slim-202608289e83eeb30df4.md
338
+
339
+ - [x] Extend hook_entry with git push matching + branch resolution + block/bypass
340
+ - [x] Add enforcement config section to config.py
341
+ - [x] Install pre-push hook + tamper guard registration + ensure_gate_channel
342
+ - [x] Extend GATES + probe_push_gate + doctor output
343
+ - [x] Upgrade prompts/rules.py: L1 entries + Override Protocol
344
+ - [x] Write unit tests for AC1-AC8
345
+ - [x] Set pactkit self-config allow_direct_push/tamper_guard
346
+
347
+ ### [STORY-slim-20260828d43fae4edbb6] Stack-aware commit-gate test commands (node/go/java)
348
+ > Spec: docs/specs/STORY-slim-20260828d43fae4edbb6.md
349
+
350
+ - [x] utils.stack_test_command marker resolution
351
+ - [x] run_pytest stack dispatch + GateUnavailable
352
+ - [x] probe_commit_gate stack-aware
353
+ - [x] unit tests AC1-AC5
354
+
355
+ ### [STORY-slim-20260830c65491123af1] Gate telemetry truthfulness + audit-record redaction
356
+ > Spec: docs/specs/STORY-slim-20260830c65491123af1.md
357
+
358
+ - [x] redact_command helper + persisted reason redaction
359
+ - [x] EVENT_TYPES extension + gate event emission
360
+ - [x] Skill matcher telemetry branch
361
+ - [x] run_stats gate/command counters
362
+ - [x] clean-time legacy record scrub
363
+ - [x] unit tests AC1-AC5
364
+
365
+ ### [STORY-slim-202609025bc9246b6a54] commit-gate 计数解析鲁棒性:中和 repo addopts 干扰 + 真实失败文案
366
+ > Spec: docs/specs/STORY-slim-202609025bc9246b6a54.md
367
+
368
+ - [x] R1 计数可得性——gate 的 pytest 调用不受 repo addopts 干扰(2026-09-02 harness-backend 事故:addopts=-q 与 gate -q 叠加成 -qq,pytest 9 在 -qq 下不打印 summary 行→解析永远全 0);候选 -o addopts= 清空 / --junitxml 机器可读计数,需权衡 addopts 中必要运行参数(如 --asyncio-mode=auto)不可被清空
369
+ - [x] R2 文案真实化——rc≠0 且计数全 0 时按 exit code 报因:5=没跑、4=usage/collection、其余=跑了但 summary 不可解析(附 addopts 干扰提示),不再一律报 no tests collected
370
+ - [x] R3 回归测试——fixture repo 带 pyproject addopts=-q 复现事故场景,断言修复后计数解析正确、文案与事实一致
371
+ - [x] R4 全量套件绿 + CHANGELOG/README 更新
@@ -0,0 +1,19 @@
1
+ schema_version: 1
2
+ id: HOTFIX-slim-20260830bbb5bc219d35
3
+ title: gate CLI syntax + push-gate cross-repo root
4
+ spec_path: docs/specs/HOTFIX-slim-20260830bbb5bc219d35.md
5
+ status: archived
6
+ tasks:
7
+ - id: task-28c4e1d550
8
+ title: Accept authorize keyword in gate CLI
9
+ completed: true
10
+ - id: task-f5de85695c
11
+ title: Resolve cd-target repo in hook_entry
12
+ completed: true
13
+ - id: task-0764566491
14
+ title: Focused tests + golden refresh
15
+ completed: true
16
+ created_at: '2026-08-30T04:48:13+00:00'
17
+ updated_at: '2026-09-01T09:06:16+00:00'
18
+ completed_at: '2026-08-30T04:52:32+00:00'
19
+ archived_at: '2026-09-01T09:06:16+00:00'
@@ -0,0 +1,16 @@
1
+ schema_version: 1
2
+ id: HOTFIX-slim-20260901469666ef23a8
3
+ title: commit-gate misfires on docs/meta-only commits
4
+ spec_path: docs/specs/HOTFIX-slim-20260901469666ef23a8.md
5
+ status: archived
6
+ tasks:
7
+ - id: task-b98663e6af
8
+ title: 'Fix three defects: doc-only patterns miss repo meta files (.gitignore/.claude/.codex);
9
+ full-suite target hard-codes tests/unit/ with no tests/ fallback and counts exit
10
+ 4/5 as RED; missing pytest module (pipx fallback) reads as RED instead of GateUnavailable.
11
+ From harness-backend 2026-09-01 friction.'
12
+ completed: true
13
+ created_at: '2026-09-01T08:29:59+00:00'
14
+ updated_at: '2026-09-01T09:06:16+00:00'
15
+ completed_at: '2026-09-01T08:50:16+00:00'
16
+ archived_at: '2026-09-01T09:06:16+00:00'
@@ -0,0 +1,25 @@
1
+ schema_version: 1
2
+ id: STORY-slim-202609025bc9246b6a54
3
+ title: commit-gate 计数解析鲁棒性:中和 repo addopts 干扰 + 真实失败文案
4
+ spec_path: docs/specs/STORY-slim-202609025bc9246b6a54.md
5
+ status: archived
6
+ tasks:
7
+ - id: task-941986cb31
8
+ title: R1 计数可得性——gate 的 pytest 调用不受 repo addopts 干扰(2026-09-02 harness-backend 事故:addopts=-q
9
+ 与 gate -q 叠加成 -qq,pytest 9 在 -qq 下不打印 summary 行→解析永远全 0);候选 -o addopts= 清空 / --junitxml
10
+ 机器可读计数,需权衡 addopts 中必要运行参数(如 --asyncio-mode=auto)不可被清空
11
+ completed: true
12
+ - id: task-9ec4d9781d
13
+ title: R2 文案真实化——rc≠0 且计数全 0 时按 exit code 报因:5=没跑、4=usage/collection、其余=跑了但 summary
14
+ 不可解析(附 addopts 干扰提示),不再一律报 no tests collected
15
+ completed: true
16
+ - id: task-b654f21aa3
17
+ title: R3 回归测试——fixture repo 带 pyproject addopts=-q 复现事故场景,断言修复后计数解析正确、文案与事实一致
18
+ completed: true
19
+ - id: task-f95e26ae4b
20
+ title: R4 全量套件绿 + CHANGELOG/README 更新
21
+ completed: true
22
+ created_at: '2026-09-02T09:29:38+00:00'
23
+ updated_at: '2026-09-02T10:03:21+00:00'
24
+ completed_at: '2026-09-02T09:54:10+00:00'
25
+ archived_at: '2026-09-02T10:03:21+00:00'
@@ -0,0 +1,42 @@
1
+ # HOTFIX-slim-20260830bbb5bc219d35: gate CLI syntax mismatch + push-gate cross-repo blind spot
2
+
3
+ | Field | Value |
4
+ |-------|-------|
5
+ | ID | HOTFIX-slim-20260830bbb5bc219d35 |
6
+ | Status | Done |
7
+ | Priority | P1 |
8
+ | Release | 2.25.1 |
9
+
10
+ ## Background
11
+
12
+ Two defects surfaced during the 2.25.0 release run (post-tag, so they
13
+ ship in 2.25.1):
14
+
15
+ 1. **auth-gate teaches a CLI form that does not exist.** The block
16
+ message (and the L1 Override Protocol prompt text, and
17
+ critical-rules.md on the user's machine) instructs
18
+ `pactkit gate authorize <scope>` — but the `gate` parser accepts only
19
+ the bare positional `pactkit gate <scope>`. The documented form fails
20
+ with "unrecognized arguments". Unit tests call `auth_gate.authorize()`
21
+ directly, so the CLI layer was never exercised. Every internal user
22
+ hits this on their first external-effect command.
23
+ 2. **push-gate evaluates the wrong repository for cross-repo commands.**
24
+ `cd ~/other-repo && git push` is judged against the SESSION cwd's
25
+ enforcement config (payload `cwd`), not the target repo's — observed
26
+ live when the plugin-repo push was allowed by pactkit's own
27
+ `allow_direct_push: true` although the plugin repo has no config.
28
+
29
+ ## Fix
30
+
31
+ 1. `cli.py`: `gate` accepts both `pactkit gate authorize <scope>` and
32
+ `pactkit gate <scope>` (positional `scope` becomes `nargs="*"`; an
33
+ `authorize` keyword is normalized away). Help text documents both.
34
+ All existing message/prompt text becomes correct as-is.
35
+ 2. `commit_gate.py`: `_command_root()` resolves the last `cd <dir>`
36
+ prefix target in the command (absolute, or relative to the payload
37
+ root; non-dirs ignored) and `hook_entry` evaluates gates against that
38
+ root — a `cd`-prefixed command is judged by the repo it operates on.
39
+
40
+ Verification: focused unit tests for both behaviors + full suite +
41
+ regenerated `gate.txt` help golden. Push to main only; no release, no
42
+ version bump, no adapter/plugin/site sync (deferred to 2.25.1).