pactkit 2.24.2__tar.gz → 2.25.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1014) hide show
  1. {pactkit-2.24.2 → pactkit-2.25.1}/CHANGELOG.md +31 -0
  2. {pactkit-2.24.2 → pactkit-2.25.1}/PKG-INFO +21 -5
  3. {pactkit-2.24.2 → pactkit-2.25.1}/README.md +18 -2
  4. pactkit-2.25.1/docs/architecture/governance/lessons/LESSON-20260828102433-81cd3e00a0.md +10 -0
  5. pactkit-2.25.1/docs/architecture/governance/lessons/LESSON-20260830034504-4f7d0f8c58.md +10 -0
  6. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/rules.md +1 -1
  7. pactkit-2.25.1/docs/product/stories/HOTFIX-slim-20260828ee6cde3108fb.yaml +13 -0
  8. pactkit-2.25.1/docs/product/stories/HOTFIX-slim-20260830bbb5bc219d35.yaml +19 -0
  9. pactkit-2.25.1/docs/product/stories/HOTFIX-slim-20260901469666ef23a8.yaml +16 -0
  10. pactkit-2.25.1/docs/product/stories/STORY-slim-20260828897396a935ab.yaml +31 -0
  11. pactkit-2.25.1/docs/product/stories/STORY-slim-202608289e83eeb30df4.yaml +31 -0
  12. pactkit-2.25.1/docs/product/stories/STORY-slim-20260828d43fae4edbb6.yaml +22 -0
  13. pactkit-2.25.1/docs/product/stories/STORY-slim-20260830c65491123af1.yaml +28 -0
  14. pactkit-2.25.1/docs/specs/HOTFIX-slim-20260828ee6cde3108fb.md +40 -0
  15. pactkit-2.25.1/docs/specs/HOTFIX-slim-20260830bbb5bc219d35.md +42 -0
  16. pactkit-2.25.1/docs/specs/HOTFIX-slim-20260901469666ef23a8.md +55 -0
  17. pactkit-2.25.1/docs/specs/STORY-slim-20260828897396a935ab.md +246 -0
  18. pactkit-2.25.1/docs/specs/STORY-slim-202608289e83eeb30df4.md +264 -0
  19. pactkit-2.25.1/docs/specs/STORY-slim-20260828d43fae4edbb6.md +155 -0
  20. pactkit-2.25.1/docs/specs/STORY-slim-20260830c65491123af1.md +178 -0
  21. pactkit-2.25.1/docs/test_cases/STORY-slim-20260828897396a935ab_case.md +56 -0
  22. pactkit-2.25.1/docs/test_cases/STORY-slim-20260830c65491123af1_case.md +43 -0
  23. {pactkit-2.24.2 → pactkit-2.25.1}/pyproject.toml +2 -2
  24. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/__init__.py +1 -1
  25. pactkit-2.25.1/src/pactkit/auth_gate.py +144 -0
  26. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/cleaners.py +35 -0
  27. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/cli.py +76 -4
  28. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/commit_gate.py +482 -53
  29. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/config.py +48 -0
  30. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/enforcement.py +89 -4
  31. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/prompts/commands.py +4 -0
  32. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/prompts/rules.py +17 -2
  33. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/regression.py +6 -0
  34. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/run_events.py +64 -0
  35. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/run_stats.py +66 -4
  36. pactkit-2.25.1/src/pactkit/secrets_gate.py +83 -0
  37. pactkit-2.25.1/src/pactkit/session_gate.py +54 -0
  38. pactkit-2.25.1/src/pactkit/tamper_guard.py +243 -0
  39. pactkit-2.25.1/src/pactkit/utils.py +92 -0
  40. {pactkit-2.24.2 → pactkit-2.25.1}/tests/fixtures/cli_help_golden/__root__.txt +4 -2
  41. {pactkit-2.24.2 → pactkit-2.25.1}/tests/fixtures/cli_help_golden/commit-gate.txt +3 -1
  42. pactkit-2.25.1/tests/fixtures/cli_help_golden/gate.txt +16 -0
  43. {pactkit-2.24.2 → pactkit-2.25.1}/tests/fixtures/config_golden/copy_claude.json +12 -0
  44. {pactkit-2.24.2 → pactkit-2.25.1}/tests/fixtures/config_golden/copy_codex.json +12 -0
  45. {pactkit-2.24.2 → pactkit-2.25.1}/tests/fixtures/config_golden/copy_github.json +12 -0
  46. {pactkit-2.24.2 → pactkit-2.25.1}/tests/fixtures/config_golden/empty.json +12 -0
  47. {pactkit-2.24.2 → pactkit-2.25.1}/tests/fixtures/config_golden/full_legacy.json +12 -0
  48. {pactkit-2.24.2 → pactkit-2.25.1}/tests/fixtures/config_golden/minimal.json +12 -0
  49. {pactkit-2.24.2 → pactkit-2.25.1}/tests/fixtures/config_golden/unknown_keys.json +12 -0
  50. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_commit_gate.py +40 -14
  51. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_constitution_sharpening.py +5 -1
  52. pactkit-2.25.1/tests/unit/test_gate_telemetry.py +252 -0
  53. pactkit-2.25.1/tests/unit/test_hook_expansion.py +394 -0
  54. pactkit-2.25.1/tests/unit/test_hotfix_20260830_gate_cli.py +164 -0
  55. pactkit-2.25.1/tests/unit/test_hotfix_20260901_gate_docsonly.py +160 -0
  56. pactkit-2.25.1/tests/unit/test_push_gate.py +479 -0
  57. pactkit-2.25.1/tests/unit/test_stack_test_command.py +195 -0
  58. pactkit-2.24.2/src/pactkit/utils.py +0 -39
  59. {pactkit-2.24.2 → pactkit-2.25.1}/.codegraph/.gitignore +0 -0
  60. {pactkit-2.24.2 → pactkit-2.25.1}/.coverage +0 -0
  61. {pactkit-2.24.2 → pactkit-2.25.1}/.github/workflows/pactkit.yml +0 -0
  62. {pactkit-2.24.2 → pactkit-2.25.1}/.github/workflows/publish.yml +0 -0
  63. {pactkit-2.24.2 → pactkit-2.25.1}/.gitignore +0 -0
  64. {pactkit-2.24.2 → pactkit-2.25.1}/AGENTS.md +0 -0
  65. {pactkit-2.24.2 → pactkit-2.25.1}/CODE_OF_CONDUCT.md +0 -0
  66. {pactkit-2.24.2 → pactkit-2.25.1}/CONTRIBUTING.md +0 -0
  67. {pactkit-2.24.2 → pactkit-2.25.1}/LICENSE +0 -0
  68. {pactkit-2.24.2 → pactkit-2.25.1}/SECURITY.md +0 -0
  69. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/archive/lessons_archive_202602.md +0 -0
  70. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/archive/lessons_archive_202603.md +0 -0
  71. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/archive/lessons_archive_202604.md +0 -0
  72. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/harness_audit.json +0 -0
  73. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260227-8e92f52c86.md +0 -0
  74. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260227-a21cacfde2.md +0 -0
  75. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260227-ccb19799ea.md +0 -0
  76. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260228-6e4b02ff08.md +0 -0
  77. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260228-b87245d5fc.md +0 -0
  78. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260302-8980b2512d.md +0 -0
  79. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260302-8f58fa2045.md +0 -0
  80. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260302-a3a1b7900e.md +0 -0
  81. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260303-3f65c0442b.md +0 -0
  82. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260304-23c605e495.md +0 -0
  83. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260304-8bd6c10219.md +0 -0
  84. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260305-129d1dea2a.md +0 -0
  85. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260305-48752d79c3.md +0 -0
  86. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260305-b9afdd8720.md +0 -0
  87. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260305-f93ee5b19f.md +0 -0
  88. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260306-7061390095.md +0 -0
  89. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260313-edf7807faf.md +0 -0
  90. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260316-091567c2bb.md +0 -0
  91. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260316-4661b3789a.md +0 -0
  92. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260316-7214dac8fc.md +0 -0
  93. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260317-3d8a855086.md +0 -0
  94. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260317-4ba69c35f0.md +0 -0
  95. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260317-6cd2a53ba5.md +0 -0
  96. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260317-7a0dd3407e.md +0 -0
  97. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260317-86927e3701.md +0 -0
  98. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260317-9a8025eaac.md +0 -0
  99. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260317-a0721cc066.md +0 -0
  100. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260317-a1f53d759b.md +0 -0
  101. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260317-a9f7897b36.md +0 -0
  102. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260317-ff430eaa29.md +0 -0
  103. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260318-fb0bcd928b.md +0 -0
  104. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260319-f320fbb5cc.md +0 -0
  105. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260320-b2d80c56b3.md +0 -0
  106. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260320-c102dbd6f8.md +0 -0
  107. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260320-e8f6ddae81.md +0 -0
  108. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260321-5e57da75b0.md +0 -0
  109. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260321-6a4a30628f.md +0 -0
  110. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260321-b5a58de3f9.md +0 -0
  111. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260321-e0138991ed.md +0 -0
  112. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260321-e49663fc95.md +0 -0
  113. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260322-4c0480e882.md +0 -0
  114. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260322-d1ece5c0d4.md +0 -0
  115. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260323-4bd30888ce.md +0 -0
  116. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260323-7a02b3eb85.md +0 -0
  117. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260323-8624e0d93a.md +0 -0
  118. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260323-a8faeea78c.md +0 -0
  119. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260324-075e3332b8.md +0 -0
  120. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260324-0f6f041a52.md +0 -0
  121. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260324-2dab5931de.md +0 -0
  122. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260324-8bcda73e9b.md +0 -0
  123. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260324-9e6238f0c8.md +0 -0
  124. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260324-a1cace9846.md +0 -0
  125. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260324-bf64dd9564.md +0 -0
  126. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260324-c344d7655c.md +0 -0
  127. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260324-e60c50dcc9.md +0 -0
  128. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260324-f5149caffe.md +0 -0
  129. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260325-1a5eeea04c.md +0 -0
  130. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260326-02460b22de.md +0 -0
  131. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260326-09de627b2b.md +0 -0
  132. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260326-204ea48f84.md +0 -0
  133. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260326-32e2fd3074.md +0 -0
  134. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260326-6c6dbfc365.md +0 -0
  135. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260326-7811ad7ff2.md +0 -0
  136. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260326-88e7123370.md +0 -0
  137. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260326-d2376010b1.md +0 -0
  138. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260326-e4f0eb8850.md +0 -0
  139. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260326-e68b8aa47f.md +0 -0
  140. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260326-fdd06ad981.md +0 -0
  141. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260327-e3c7f5abcb.md +0 -0
  142. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260330-eb1760def2.md +0 -0
  143. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260331-1b58a289ea.md +0 -0
  144. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260331-26e474753e.md +0 -0
  145. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260331-3028ab9cf5.md +0 -0
  146. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260331-350048862b.md +0 -0
  147. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260331-7d41cdf5a3.md +0 -0
  148. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260331-8e5558a077.md +0 -0
  149. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260331-c46df1c3b1.md +0 -0
  150. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260401-41515789f6.md +0 -0
  151. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260401-4453752dda.md +0 -0
  152. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260401-5a225a1c0a.md +0 -0
  153. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260401-90724b10f0.md +0 -0
  154. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260401-9e322eb76e.md +0 -0
  155. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260401-bd20019d3d.md +0 -0
  156. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260401-de035be681.md +0 -0
  157. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260401-f44c8f499e.md +0 -0
  158. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260401-fa52f596ff.md +0 -0
  159. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260402-5b063207c8.md +0 -0
  160. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260402-5e0913ec81.md +0 -0
  161. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260415-3d8b5e8f81.md +0 -0
  162. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260415-84219771ca.md +0 -0
  163. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260416-41d4564480.md +0 -0
  164. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260416-5cdc3cf53f.md +0 -0
  165. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260416-807c65a8e7.md +0 -0
  166. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260416-ade561c777.md +0 -0
  167. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260416-b78aaf129a.md +0 -0
  168. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260416-db8a5430a0.md +0 -0
  169. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260416-f5a765c496.md +0 -0
  170. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260417-f1d777e9c9.md +0 -0
  171. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260418-ee12f2ff0d.md +0 -0
  172. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260420-2260437be7.md +0 -0
  173. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260420-a35a083e29.md +0 -0
  174. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260420-fa7d958d56.md +0 -0
  175. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260421-309c998a10.md +0 -0
  176. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260422-6509ac4df0.md +0 -0
  177. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260422-8dd5ed6a24.md +0 -0
  178. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260423-b0890ad9c2.md +0 -0
  179. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260424-24cc1d5e19.md +0 -0
  180. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260424-39a99c887d.md +0 -0
  181. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260427-f7955d5775.md +0 -0
  182. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260507-7b75a5cab8.md +0 -0
  183. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260507-b26f97255d.md +0 -0
  184. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260525-1fe96d2ff4.md +0 -0
  185. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260525-717e18e190.md +0 -0
  186. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260525-df4853fa3f.md +0 -0
  187. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260526-4c230f3a9d.md +0 -0
  188. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260601-6d6b779a83.md +0 -0
  189. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260601-e65d3407ed.md +0 -0
  190. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260610-51c3cf895e.md +0 -0
  191. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260629-6171e54ac8.md +0 -0
  192. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260702-4616caa284.md +0 -0
  193. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260713-da6d40dcc0.md +0 -0
  194. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260723-d4c9801300.md +0 -0
  195. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260813-18efcf9687.md +0 -0
  196. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260813-1dc6e2e1c7.md +0 -0
  197. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260813-21d4da632f.md +0 -0
  198. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260817-3587ae1a22.md +0 -0
  199. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260817-5f08a6affa.md +0 -0
  200. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260817-800f717c9d.md +0 -0
  201. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260817-a2cd839a2d.md +0 -0
  202. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260822-9175485749.md +0 -0
  203. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260822105138-298451a42c.md +0 -0
  204. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260822105138-522c7e4af4.md +0 -0
  205. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260822105138-72cc1d0343.md +0 -0
  206. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260823015950-6b8cbea92e.md +0 -0
  207. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260823022240-d3570f57fb.md +0 -0
  208. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260823050717-9192db37f8.md +0 -0
  209. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260826072120-c6db5dd5b1.md +0 -0
  210. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260826074629-f5119ea78b.md +0 -0
  211. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260826080242-012107ada2.md +0 -0
  212. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260826082256-eff3747d60.md +0 -0
  213. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260827093143-3236113033.md +0 -0
  214. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260827095642-059a7e996b.md +0 -0
  215. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons/LESSON-20260827102057-e04522a6fc.md +0 -0
  216. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/lessons.md +0 -0
  217. {pactkit-2.24.2 → pactkit-2.25.1}/docs/architecture/governance/philosophy.md +0 -0
  218. {pactkit-2.24.2 → pactkit-2.25.1}/docs/assets/logo.png +0 -0
  219. {pactkit-2.24.2 → pactkit-2.25.1}/docs/e2e/journey.md +0 -0
  220. {pactkit-2.24.2 → pactkit-2.25.1}/docs/guides/codex-integration-preresearch.md +0 -0
  221. {pactkit-2.24.2 → pactkit-2.25.1}/docs/guides/tool-integration-checklist.md +0 -0
  222. {pactkit-2.24.2 → pactkit-2.25.1}/docs/product/archive/archive_202602.md +0 -0
  223. {pactkit-2.24.2 → pactkit-2.25.1}/docs/product/archive/archive_202603.md +0 -0
  224. {pactkit-2.24.2 → pactkit-2.25.1}/docs/product/archive/archive_202604.md +0 -0
  225. {pactkit-2.24.2 → pactkit-2.25.1}/docs/product/archive/archive_202605.md +0 -0
  226. {pactkit-2.24.2 → pactkit-2.25.1}/docs/product/archive/archive_202606.md +0 -0
  227. {pactkit-2.24.2 → pactkit-2.25.1}/docs/product/archive/archive_202607.md +0 -0
  228. {pactkit-2.24.2 → pactkit-2.25.1}/docs/product/archive/archive_202608.md +0 -0
  229. {pactkit-2.24.2 → pactkit-2.25.1}/docs/product/context.md +0 -0
  230. {pactkit-2.24.2 → pactkit-2.25.1}/docs/product/friction-log.md +0 -0
  231. {pactkit-2.24.2 → pactkit-2.25.1}/docs/product/harness-comparison-2026-08-27.md +0 -0
  232. {pactkit-2.24.2 → pactkit-2.25.1}/docs/product/prd.md +0 -0
  233. {pactkit-2.24.2 → pactkit-2.25.1}/docs/product/sprint_board.md +0 -0
  234. {pactkit-2.24.2 → pactkit-2.25.1}/docs/product/stories/HOTFIX-slim-127.yaml +0 -0
  235. {pactkit-2.24.2 → pactkit-2.25.1}/docs/product/stories/HOTFIX-slim-131.yaml +0 -0
  236. {pactkit-2.24.2 → pactkit-2.25.1}/docs/product/stories/HOTFIX-slim-132.yaml +0 -0
  237. {pactkit-2.24.2 → pactkit-2.25.1}/docs/product/stories/STORY-slim-115.yaml +0 -0
  238. {pactkit-2.24.2 → pactkit-2.25.1}/docs/product/stories/STORY-slim-118.yaml +0 -0
  239. {pactkit-2.24.2 → pactkit-2.25.1}/docs/product/stories/STORY-slim-119.yaml +0 -0
  240. {pactkit-2.24.2 → pactkit-2.25.1}/docs/product/stories/STORY-slim-145.yaml +0 -0
  241. {pactkit-2.24.2 → pactkit-2.25.1}/docs/product/stories/STORY-slim-147.yaml +0 -0
  242. {pactkit-2.24.2 → pactkit-2.25.1}/docs/product/stories/STORY-slim-148.yaml +0 -0
  243. {pactkit-2.24.2 → pactkit-2.25.1}/docs/product/stories/STORY-slim-149.yaml +0 -0
  244. {pactkit-2.24.2 → pactkit-2.25.1}/docs/product/stories/STORY-slim-2026082381e832771d4e.yaml +0 -0
  245. {pactkit-2.24.2 → pactkit-2.25.1}/docs/product/stories/STORY-slim-20260823d854b0cf1875.yaml +0 -0
  246. {pactkit-2.24.2 → pactkit-2.25.1}/docs/product/stories/STORY-slim-20260823de7e85d6042a.yaml +0 -0
  247. {pactkit-2.24.2 → pactkit-2.25.1}/docs/product/stories/STORY-slim-20260825b1c83a046b4b.yaml +0 -0
  248. {pactkit-2.24.2 → pactkit-2.25.1}/docs/product/stories/STORY-slim-202608264cf429c75e22.yaml +0 -0
  249. {pactkit-2.24.2 → pactkit-2.25.1}/docs/product/stories/STORY-slim-2026082672b57c78fd67.yaml +0 -0
  250. {pactkit-2.24.2 → pactkit-2.25.1}/docs/product/stories/STORY-slim-202608267c3989223b4d.yaml +0 -0
  251. {pactkit-2.24.2 → pactkit-2.25.1}/docs/product/stories/STORY-slim-202608268fc379dbe6ef.yaml +0 -0
  252. {pactkit-2.24.2 → pactkit-2.25.1}/docs/product/stories/STORY-slim-20260826ac1f0bfe4148.yaml +0 -0
  253. {pactkit-2.24.2 → pactkit-2.25.1}/docs/product/stories/STORY-slim-20260826cb37edfdd4da.yaml +0 -0
  254. {pactkit-2.24.2 → pactkit-2.25.1}/docs/product/stories/STORY-slim-20260826ce35b77ce005.yaml +0 -0
  255. {pactkit-2.24.2 → pactkit-2.25.1}/docs/product/stories/STORY-slim-20260826f9492ab32c3d.yaml +0 -0
  256. {pactkit-2.24.2 → pactkit-2.25.1}/docs/product/stories/STORY-slim-20260827024e71df170f.yaml +0 -0
  257. {pactkit-2.24.2 → pactkit-2.25.1}/docs/product/stories/STORY-slim-2026082727cc4ab535e7.yaml +0 -0
  258. {pactkit-2.24.2 → pactkit-2.25.1}/docs/product/stories/STORY-slim-2026082730b5954cf538.yaml +0 -0
  259. {pactkit-2.24.2 → pactkit-2.25.1}/docs/product/stories/STORY-slim-20260827625b870eb7da.yaml +0 -0
  260. {pactkit-2.24.2 → pactkit-2.25.1}/docs/product/stories/STORY-slim-202608277ec1236a7b99.yaml +0 -0
  261. {pactkit-2.24.2 → pactkit-2.25.1}/docs/product/stories/STORY-slim-20260827833e7a200f9a.yaml +0 -0
  262. {pactkit-2.24.2 → pactkit-2.25.1}/docs/product/stories/STORY-slim-20260827855bf3efaec3.yaml +0 -0
  263. {pactkit-2.24.2 → pactkit-2.25.1}/docs/product/stories/STORY-slim-2026082799fa651655be.yaml +0 -0
  264. {pactkit-2.24.2 → pactkit-2.25.1}/docs/product/stories/STORY-slim-20260827c67e3add6af5.yaml +0 -0
  265. {pactkit-2.24.2 → pactkit-2.25.1}/docs/product/stories/STORY-slim-20260827d0ae0dfada51.yaml +0 -0
  266. {pactkit-2.24.2 → pactkit-2.25.1}/docs/product/stories/STORY-slim-20260827eddbe9669c87.yaml +0 -0
  267. {pactkit-2.24.2 → pactkit-2.25.1}/docs/product/stories/STORY-slim-20260827fb6291b717eb.yaml +0 -0
  268. {pactkit-2.24.2 → pactkit-2.25.1}/docs/product/stories/STORY-slim-20260827fc9de5542ad7.yaml +0 -0
  269. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/BUG-001.md +0 -0
  270. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/BUG-002.md +0 -0
  271. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/BUG-003.md +0 -0
  272. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/BUG-004.md +0 -0
  273. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/BUG-005.md +0 -0
  274. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/BUG-006.md +0 -0
  275. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/BUG-007.md +0 -0
  276. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/BUG-008.md +0 -0
  277. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/BUG-009.md +0 -0
  278. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/BUG-010.md +0 -0
  279. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/BUG-011.md +0 -0
  280. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/BUG-012.md +0 -0
  281. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/BUG-013.md +0 -0
  282. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/BUG-014.md +0 -0
  283. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/BUG-015.md +0 -0
  284. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/BUG-016.md +0 -0
  285. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/BUG-017.md +0 -0
  286. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/BUG-018.md +0 -0
  287. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/BUG-019.md +0 -0
  288. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/BUG-020.md +0 -0
  289. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/BUG-021.md +0 -0
  290. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/BUG-022.md +0 -0
  291. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/BUG-023.md +0 -0
  292. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/BUG-024.md +0 -0
  293. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/BUG-025.md +0 -0
  294. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/BUG-026.md +0 -0
  295. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/BUG-027.md +0 -0
  296. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/BUG-028.md +0 -0
  297. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/BUG-029.md +0 -0
  298. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/BUG-030.md +0 -0
  299. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/BUG-031.md +0 -0
  300. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/BUG-032.md +0 -0
  301. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/BUG-033.md +0 -0
  302. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/BUG-034.md +0 -0
  303. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/BUG-035.md +0 -0
  304. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/BUG-slim-001.md +0 -0
  305. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/BUG-slim-002.md +0 -0
  306. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/BUG-slim-003.md +0 -0
  307. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/BUG-slim-004.md +0 -0
  308. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/BUG-slim-005.md +0 -0
  309. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/BUG-slim-006.md +0 -0
  310. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/BUG-slim-089.md +0 -0
  311. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/BUG-slim-107.md +0 -0
  312. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/HOTFIX-slim-023.md +0 -0
  313. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/HOTFIX-slim-049.md +0 -0
  314. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/HOTFIX-slim-050.md +0 -0
  315. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/HOTFIX-slim-051.md +0 -0
  316. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/HOTFIX-slim-052.md +0 -0
  317. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/HOTFIX-slim-061.md +0 -0
  318. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/HOTFIX-slim-062.md +0 -0
  319. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/HOTFIX-slim-067.md +0 -0
  320. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/HOTFIX-slim-069.md +0 -0
  321. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/HOTFIX-slim-070.md +0 -0
  322. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/HOTFIX-slim-085.md +0 -0
  323. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/HOTFIX-slim-087.md +0 -0
  324. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/HOTFIX-slim-096.md +0 -0
  325. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/HOTFIX-slim-099.md +0 -0
  326. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/HOTFIX-slim-107.md +0 -0
  327. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/HOTFIX-slim-117.md +0 -0
  328. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/HOTFIX-slim-122.md +0 -0
  329. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/HOTFIX-slim-123.md +0 -0
  330. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/HOTFIX-slim-126.md +0 -0
  331. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/HOTFIX-slim-127.md +0 -0
  332. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/HOTFIX-slim-130.md +0 -0
  333. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/HOTFIX-slim-131.md +0 -0
  334. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/HOTFIX-slim-132.md +0 -0
  335. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-001.md +0 -0
  336. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-002.md +0 -0
  337. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-003.md +0 -0
  338. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-004.md +0 -0
  339. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-005.md +0 -0
  340. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-006.md +0 -0
  341. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-007.md +0 -0
  342. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-008.md +0 -0
  343. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-009.md +0 -0
  344. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-010.md +0 -0
  345. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-011.md +0 -0
  346. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-012.md +0 -0
  347. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-013.md +0 -0
  348. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-014.md +0 -0
  349. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-015.md +0 -0
  350. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-016.md +0 -0
  351. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-017.md +0 -0
  352. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-018.md +0 -0
  353. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-019.md +0 -0
  354. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-020.md +0 -0
  355. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-021.md +0 -0
  356. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-022.md +0 -0
  357. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-023.md +0 -0
  358. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-024.md +0 -0
  359. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-025.md +0 -0
  360. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-026.md +0 -0
  361. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-027.md +0 -0
  362. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-028.md +0 -0
  363. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-029.md +0 -0
  364. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-030.md +0 -0
  365. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-031.md +0 -0
  366. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-032.md +0 -0
  367. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-033.md +0 -0
  368. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-034.md +0 -0
  369. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-035.md +0 -0
  370. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-036.md +0 -0
  371. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-037.md +0 -0
  372. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-038.md +0 -0
  373. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-039.md +0 -0
  374. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-040.md +0 -0
  375. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-041.md +0 -0
  376. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-042.md +0 -0
  377. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-043.md +0 -0
  378. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-044.md +0 -0
  379. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-045.md +0 -0
  380. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-046.md +0 -0
  381. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-047.md +0 -0
  382. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-048.md +0 -0
  383. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-049.md +0 -0
  384. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-050.md +0 -0
  385. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-051.md +0 -0
  386. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-052.md +0 -0
  387. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-053.md +0 -0
  388. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-054.md +0 -0
  389. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-055.md +0 -0
  390. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-056.md +0 -0
  391. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-057.md +0 -0
  392. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-058.md +0 -0
  393. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-059.md +0 -0
  394. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-060.md +0 -0
  395. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-061.md +0 -0
  396. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-062.md +0 -0
  397. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-063.md +0 -0
  398. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-064.md +0 -0
  399. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-065.md +0 -0
  400. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-069.md +0 -0
  401. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-070.md +0 -0
  402. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-071.md +0 -0
  403. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-072.md +0 -0
  404. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-073.md +0 -0
  405. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-001.md +0 -0
  406. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-005.md +0 -0
  407. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-006.md +0 -0
  408. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-007.md +0 -0
  409. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-009.md +0 -0
  410. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-010.md +0 -0
  411. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-011.md +0 -0
  412. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-012.md +0 -0
  413. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-013.md +0 -0
  414. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-014.md +0 -0
  415. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-015.md +0 -0
  416. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-016.md +0 -0
  417. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-017.md +0 -0
  418. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-018.md +0 -0
  419. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-019.md +0 -0
  420. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-020.md +0 -0
  421. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-021.md +0 -0
  422. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-022.md +0 -0
  423. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-023.md +0 -0
  424. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-024.md +0 -0
  425. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-028.md +0 -0
  426. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-029.md +0 -0
  427. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-030.md +0 -0
  428. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-031.md +0 -0
  429. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-032.md +0 -0
  430. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-033.md +0 -0
  431. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-034.md +0 -0
  432. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-035.md +0 -0
  433. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-036.md +0 -0
  434. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-037.md +0 -0
  435. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-038.md +0 -0
  436. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-039.md +0 -0
  437. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-040.md +0 -0
  438. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-041.md +0 -0
  439. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-042.md +0 -0
  440. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-043.md +0 -0
  441. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-044.md +0 -0
  442. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-045.md +0 -0
  443. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-046.md +0 -0
  444. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-047.md +0 -0
  445. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-048.md +0 -0
  446. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-049.md +0 -0
  447. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-050.md +0 -0
  448. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-051.md +0 -0
  449. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-052.md +0 -0
  450. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-053.md +0 -0
  451. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-054.md +0 -0
  452. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-055.md +0 -0
  453. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-056.md +0 -0
  454. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-057.md +0 -0
  455. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-058.md +0 -0
  456. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-059.md +0 -0
  457. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-060.md +0 -0
  458. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-063.md +0 -0
  459. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-066.md +0 -0
  460. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-067.md +0 -0
  461. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-068.md +0 -0
  462. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-069.md +0 -0
  463. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-070.md +0 -0
  464. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-071.md +0 -0
  465. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-072.md +0 -0
  466. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-073.md +0 -0
  467. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-074.md +0 -0
  468. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-075.md +0 -0
  469. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-076.md +0 -0
  470. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-077.md +0 -0
  471. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-078.md +0 -0
  472. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-079.md +0 -0
  473. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-080.md +0 -0
  474. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-081.md +0 -0
  475. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-082.md +0 -0
  476. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-083.md +0 -0
  477. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-084.md +0 -0
  478. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-086.md +0 -0
  479. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-088.md +0 -0
  480. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-089.md +0 -0
  481. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-090.md +0 -0
  482. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-091.md +0 -0
  483. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-092.md +0 -0
  484. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-093.md +0 -0
  485. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-094.md +0 -0
  486. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-095.md +0 -0
  487. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-097.md +0 -0
  488. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-098.md +0 -0
  489. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-099.md +0 -0
  490. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-100.md +0 -0
  491. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-101.md +0 -0
  492. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-102.md +0 -0
  493. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-103.md +0 -0
  494. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-104.md +0 -0
  495. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-105.md +0 -0
  496. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-106.md +0 -0
  497. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-107.md +0 -0
  498. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-108.md +0 -0
  499. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-109.md +0 -0
  500. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-110.md +0 -0
  501. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-111.md +0 -0
  502. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-112.md +0 -0
  503. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-113.md +0 -0
  504. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-114.md +0 -0
  505. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-115.md +0 -0
  506. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-116.md +0 -0
  507. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-118.md +0 -0
  508. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-119.md +0 -0
  509. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-120.md +0 -0
  510. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-121.md +0 -0
  511. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-124.md +0 -0
  512. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-125.md +0 -0
  513. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-126.md +0 -0
  514. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-127.md +0 -0
  515. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-128.md +0 -0
  516. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-129.md +0 -0
  517. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-132.md +0 -0
  518. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-133.md +0 -0
  519. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-134.md +0 -0
  520. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-135.md +0 -0
  521. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-136.md +0 -0
  522. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-137.md +0 -0
  523. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-138.md +0 -0
  524. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-139.md +0 -0
  525. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-140.md +0 -0
  526. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-141.md +0 -0
  527. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-142.md +0 -0
  528. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-143.md +0 -0
  529. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-144.md +0 -0
  530. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-145.md +0 -0
  531. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-146.md +0 -0
  532. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-147.md +0 -0
  533. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-148.md +0 -0
  534. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-149.md +0 -0
  535. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-2026082381e832771d4e.md +0 -0
  536. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-20260823d854b0cf1875.md +0 -0
  537. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-20260823de7e85d6042a.md +0 -0
  538. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-2026082466c8670d9655.md +0 -0
  539. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-20260824dd23a0ed3b4c.md +0 -0
  540. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-20260825b1c83a046b4b.md +0 -0
  541. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-202608264cf429c75e22.md +0 -0
  542. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-2026082672b57c78fd67.md +0 -0
  543. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-202608267c3989223b4d.md +0 -0
  544. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-202608268fc379dbe6ef.md +0 -0
  545. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-20260826ac1f0bfe4148.md +0 -0
  546. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-20260826cb37edfdd4da.md +0 -0
  547. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-20260826ce35b77ce005.md +0 -0
  548. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-20260826f9492ab32c3d.md +0 -0
  549. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-20260827024e71df170f.md +0 -0
  550. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-20260827eddbe9669c87.md +0 -0
  551. {pactkit-2.24.2 → pactkit-2.25.1}/docs/specs/STORY-slim-20260827fc9de5542ad7.md +0 -0
  552. {pactkit-2.24.2 → pactkit-2.25.1}/docs/test_cases/BUG-001_case.md +0 -0
  553. {pactkit-2.24.2 → pactkit-2.25.1}/docs/test_cases/BUG-002_case.md +0 -0
  554. {pactkit-2.24.2 → pactkit-2.25.1}/docs/test_cases/STORY-slim-028_case.md +0 -0
  555. {pactkit-2.24.2 → pactkit-2.25.1}/docs/test_cases/STORY-slim-029_case.md +0 -0
  556. {pactkit-2.24.2 → pactkit-2.25.1}/docs/test_cases/STORY-slim-031_case.md +0 -0
  557. {pactkit-2.24.2 → pactkit-2.25.1}/docs/test_cases/STORY-slim-032_case.md +0 -0
  558. {pactkit-2.24.2 → pactkit-2.25.1}/docs/test_cases/STORY-slim-033_case.md +0 -0
  559. {pactkit-2.24.2 → pactkit-2.25.1}/docs/test_cases/STORY-slim-034_case.md +0 -0
  560. {pactkit-2.24.2 → pactkit-2.25.1}/docs/test_cases/STORY-slim-135_case.md +0 -0
  561. {pactkit-2.24.2 → pactkit-2.25.1}/docs/test_cases/STORY-slim-136_case.md +0 -0
  562. {pactkit-2.24.2 → pactkit-2.25.1}/docs/test_cases/STORY-slim-137_case.md +0 -0
  563. {pactkit-2.24.2 → pactkit-2.25.1}/docs/test_cases/STORY-slim-138_case.md +0 -0
  564. {pactkit-2.24.2 → pactkit-2.25.1}/docs/test_cases/STORY-slim-139_case.md +0 -0
  565. {pactkit-2.24.2 → pactkit-2.25.1}/docs/test_cases/STORY-slim-140_case.md +0 -0
  566. {pactkit-2.24.2 → pactkit-2.25.1}/docs/test_cases/STORY-slim-141_case.md +0 -0
  567. {pactkit-2.24.2 → pactkit-2.25.1}/docs/test_cases/STORY-slim-142_case.md +0 -0
  568. {pactkit-2.24.2 → pactkit-2.25.1}/docs/test_cases/STORY-slim-143_case.md +0 -0
  569. {pactkit-2.24.2 → pactkit-2.25.1}/docs/test_cases/STORY-slim-144_case.md +0 -0
  570. {pactkit-2.24.2 → pactkit-2.25.1}/docs/test_cases/STORY-slim-146_case.md +0 -0
  571. {pactkit-2.24.2 → pactkit-2.25.1}/docs/test_cases/STORY-slim-147_case.md +0 -0
  572. {pactkit-2.24.2 → pactkit-2.25.1}/docs/test_cases/STORY-slim-148_case.md +0 -0
  573. {pactkit-2.24.2 → pactkit-2.25.1}/docs/test_cases/STORY-slim-149_case.md +0 -0
  574. {pactkit-2.24.2 → pactkit-2.25.1}/docs/test_cases/STORY-slim-2026082381e832771d4e_case.md +0 -0
  575. {pactkit-2.24.2 → pactkit-2.25.1}/docs/test_cases/STORY-slim-20260823d854b0cf1875_case.md +0 -0
  576. {pactkit-2.24.2 → pactkit-2.25.1}/docs/test_cases/STORY-slim-20260823de7e85d6042a_case.md +0 -0
  577. {pactkit-2.24.2 → pactkit-2.25.1}/docs/test_cases/STORY-slim-20260825b1c83a046b4b_case.md +0 -0
  578. {pactkit-2.24.2 → pactkit-2.25.1}/docs/test_cases/STORY-slim-202608264cf429c75e22_case.md +0 -0
  579. {pactkit-2.24.2 → pactkit-2.25.1}/docs/test_cases/STORY-slim-2026082672b57c78fd67_case.md +0 -0
  580. {pactkit-2.24.2 → pactkit-2.25.1}/docs/test_cases/STORY-slim-202608267c3989223b4d_case.md +0 -0
  581. {pactkit-2.24.2 → pactkit-2.25.1}/docs/test_cases/STORY-slim-202608268fc379dbe6ef_case.md +0 -0
  582. {pactkit-2.24.2 → pactkit-2.25.1}/docs/test_cases/STORY-slim-20260826ac1f0bfe4148_case.md +0 -0
  583. {pactkit-2.24.2 → pactkit-2.25.1}/docs/test_cases/STORY-slim-20260826cb37edfdd4da_case.md +0 -0
  584. {pactkit-2.24.2 → pactkit-2.25.1}/docs/test_cases/STORY-slim-20260826ce35b77ce005_case.md +0 -0
  585. {pactkit-2.24.2 → pactkit-2.25.1}/docs/test_cases/STORY-slim-20260826f9492ab32c3d_case.md +0 -0
  586. {pactkit-2.24.2 → pactkit-2.25.1}/docs/test_cases/STORY-slim-20260827024e71df170f_case.md +0 -0
  587. {pactkit-2.24.2 → pactkit-2.25.1}/docs/test_cases/STORY-slim-20260827eddbe9669c87_case.md +0 -0
  588. {pactkit-2.24.2 → pactkit-2.25.1}/docs/test_cases/STORY-slim-20260827fc9de5542ad7_case.md +0 -0
  589. {pactkit-2.24.2 → pactkit-2.25.1}/opencode.json +0 -0
  590. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/__main__.py +0 -0
  591. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/audit.py +0 -0
  592. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/backfill.py +0 -0
  593. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/context_gen.py +0 -0
  594. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/continuation.py +0 -0
  595. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/coverage_gate.py +0 -0
  596. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/delivery_evidence.py +0 -0
  597. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/deploy_manifest.py +0 -0
  598. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/deployment_transaction.py +0 -0
  599. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/deps.py +0 -0
  600. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/doctor.py +0 -0
  601. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/done_verify.py +0 -0
  602. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/garden.py +0 -0
  603. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/generators/__init__.py +0 -0
  604. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/generators/claude_md.py +0 -0
  605. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/generators/command_ownership.py +0 -0
  606. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/generators/deploy_base.py +0 -0
  607. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/generators/deployer.py +0 -0
  608. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/governance.py +0 -0
  609. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/graph_query.py +0 -0
  610. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/guards.py +0 -0
  611. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/host_continuation.py +0 -0
  612. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/id_generator.py +0 -0
  613. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/invariants.py +0 -0
  614. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/issue_sync.py +0 -0
  615. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/lazy_visualize.py +0 -0
  616. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/legacy/__init__.py +0 -0
  617. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/legacy/host_continuation.py +0 -0
  618. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/legacy/usage.py +0 -0
  619. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/legacy/workflow_engine.py +0 -0
  620. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/lessons.py +0 -0
  621. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/lint_runner.py +0 -0
  622. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/observe.py +0 -0
  623. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/portable_methods.py +0 -0
  624. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/profiles.py +0 -0
  625. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/project_root.py +0 -0
  626. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/prompts/__init__.py +0 -0
  627. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/prompts/agents.py +0 -0
  628. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/prompts/guides.py +0 -0
  629. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/prompts/references.py +0 -0
  630. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/prompts/skills.py +0 -0
  631. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/prompts/workflows.py +0 -0
  632. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/protocols.py +0 -0
  633. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/risk_profile.py +0 -0
  634. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/schemas.py +0 -0
  635. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/scripts.py +0 -0
  636. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/sec_scope.py +0 -0
  637. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/skills/__init__.py +0 -0
  638. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/skills/analyzers/__init__.py +0 -0
  639. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/skills/analyzers/go_analyzer.py +0 -0
  640. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/skills/analyzers/java_analyzer.py +0 -0
  641. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/skills/analyzers/python_analyzer.py +0 -0
  642. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/skills/analyzers/ts_analyzer.py +0 -0
  643. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/skills/board.py +0 -0
  644. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/skills/interface_summary.py +0 -0
  645. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/skills/report.py +0 -0
  646. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/skills/scaffold.py +0 -0
  647. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/skills/spec_linter.py +0 -0
  648. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/skills/visualize.py +0 -0
  649. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/spec_graph.py +0 -0
  650. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/spec_preflight.py +0 -0
  651. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/spec_status.py +0 -0
  652. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/test_mapper.py +0 -0
  653. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/validators.py +0 -0
  654. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/workflow_engine.py +0 -0
  655. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/workflow_registry.py +0 -0
  656. {pactkit-2.24.2 → pactkit-2.25.1}/src/pactkit/workflow_validators.py +0 -0
  657. {pactkit-2.24.2 → pactkit-2.25.1}/tests/conftest.py +0 -0
  658. {pactkit-2.24.2 → pactkit-2.25.1}/tests/e2e/__init__.py +0 -0
  659. {pactkit-2.24.2 → pactkit-2.25.1}/tests/e2e/cli/__init__.py +0 -0
  660. {pactkit-2.24.2 → pactkit-2.25.1}/tests/e2e/cli/test_cli_e2e.py +0 -0
  661. {pactkit-2.24.2 → pactkit-2.25.1}/tests/e2e/cli/test_story_slim146_cli.py +0 -0
  662. {pactkit-2.24.2 → pactkit-2.25.1}/tests/e2e/cli/test_story_slim147_workflow_cli.py +0 -0
  663. {pactkit-2.24.2 → pactkit-2.25.1}/tests/e2e/cli/test_story_slim148_governance_cli.py +0 -0
  664. {pactkit-2.24.2 → pactkit-2.25.1}/tests/e2e/cli/test_story_slim149_query_cli.py +0 -0
  665. {pactkit-2.24.2 → pactkit-2.25.1}/tests/fixtures/agent_parser/agents_dir/researcher.yaml +0 -0
  666. {pactkit-2.24.2 → pactkit-2.25.1}/tests/fixtures/agent_parser/agents_dir/writer.yaml +0 -0
  667. {pactkit-2.24.2 → pactkit-2.25.1}/tests/fixtures/agent_parser/langgraph_app.py +0 -0
  668. {pactkit-2.24.2 → pactkit-2.25.1}/tests/fixtures/agent_parser/mcp_settings.json +0 -0
  669. {pactkit-2.24.2 → pactkit-2.25.1}/tests/fixtures/api_call_parser/axios_style.tsx +0 -0
  670. {pactkit-2.24.2 → pactkit-2.25.1}/tests/fixtures/api_call_parser/dynamic.tsx +0 -0
  671. {pactkit-2.24.2 → pactkit-2.25.1}/tests/fixtures/api_call_parser/page.tsx +0 -0
  672. {pactkit-2.24.2 → pactkit-2.25.1}/tests/fixtures/cli_help_golden/audit.txt +0 -0
  673. {pactkit-2.24.2 → pactkit-2.25.1}/tests/fixtures/cli_help_golden/backfill-release.txt +0 -0
  674. {pactkit-2.24.2 → pactkit-2.25.1}/tests/fixtures/cli_help_golden/board.txt +0 -0
  675. {pactkit-2.24.2 → pactkit-2.25.1}/tests/fixtures/cli_help_golden/clean.txt +0 -0
  676. {pactkit-2.24.2 → pactkit-2.25.1}/tests/fixtures/cli_help_golden/context.txt +0 -0
  677. {pactkit-2.24.2 → pactkit-2.25.1}/tests/fixtures/cli_help_golden/continuation.txt +0 -0
  678. {pactkit-2.24.2 → pactkit-2.25.1}/tests/fixtures/cli_help_golden/coverage-gate.txt +0 -0
  679. {pactkit-2.24.2 → pactkit-2.25.1}/tests/fixtures/cli_help_golden/deps.txt +0 -0
  680. {pactkit-2.24.2 → pactkit-2.25.1}/tests/fixtures/cli_help_golden/doctor.txt +0 -0
  681. {pactkit-2.24.2 → pactkit-2.25.1}/tests/fixtures/cli_help_golden/done-verify.txt +0 -0
  682. {pactkit-2.24.2 → pactkit-2.25.1}/tests/fixtures/cli_help_golden/garden.txt +0 -0
  683. {pactkit-2.24.2 → pactkit-2.25.1}/tests/fixtures/cli_help_golden/generate-id.txt +0 -0
  684. {pactkit-2.24.2 → pactkit-2.25.1}/tests/fixtures/cli_help_golden/governance.txt +0 -0
  685. {pactkit-2.24.2 → pactkit-2.25.1}/tests/fixtures/cli_help_golden/guard.txt +0 -0
  686. {pactkit-2.24.2 → pactkit-2.25.1}/tests/fixtures/cli_help_golden/init.txt +0 -0
  687. {pactkit-2.24.2 → pactkit-2.25.1}/tests/fixtures/cli_help_golden/interface-summary.txt +0 -0
  688. {pactkit-2.24.2 → pactkit-2.25.1}/tests/fixtures/cli_help_golden/invariants-refresh.txt +0 -0
  689. {pactkit-2.24.2 → pactkit-2.25.1}/tests/fixtures/cli_help_golden/issue-sync.txt +0 -0
  690. {pactkit-2.24.2 → pactkit-2.25.1}/tests/fixtures/cli_help_golden/lesson-append.txt +0 -0
  691. {pactkit-2.24.2 → pactkit-2.25.1}/tests/fixtures/cli_help_golden/lint-context.txt +0 -0
  692. {pactkit-2.24.2 → pactkit-2.25.1}/tests/fixtures/cli_help_golden/lint-lessons.txt +0 -0
  693. {pactkit-2.24.2 → pactkit-2.25.1}/tests/fixtures/cli_help_golden/lint-testcase.txt +0 -0
  694. {pactkit-2.24.2 → pactkit-2.25.1}/tests/fixtures/cli_help_golden/lint.txt +0 -0
  695. {pactkit-2.24.2 → pactkit-2.25.1}/tests/fixtures/cli_help_golden/observe.txt +0 -0
  696. {pactkit-2.24.2 → pactkit-2.25.1}/tests/fixtures/cli_help_golden/query.txt +0 -0
  697. {pactkit-2.24.2 → pactkit-2.25.1}/tests/fixtures/cli_help_golden/redetect-stack.txt +0 -0
  698. {pactkit-2.24.2 → pactkit-2.25.1}/tests/fixtures/cli_help_golden/regression.txt +0 -0
  699. {pactkit-2.24.2 → pactkit-2.25.1}/tests/fixtures/cli_help_golden/report.txt +0 -0
  700. {pactkit-2.24.2 → pactkit-2.25.1}/tests/fixtures/cli_help_golden/schema.txt +0 -0
  701. {pactkit-2.24.2 → pactkit-2.25.1}/tests/fixtures/cli_help_golden/sec-scope.txt +0 -0
  702. {pactkit-2.24.2 → pactkit-2.25.1}/tests/fixtures/cli_help_golden/spec-graph.txt +0 -0
  703. {pactkit-2.24.2 → pactkit-2.25.1}/tests/fixtures/cli_help_golden/spec-lint.txt +0 -0
  704. {pactkit-2.24.2 → pactkit-2.25.1}/tests/fixtures/cli_help_golden/spec-preflight.txt +0 -0
  705. {pactkit-2.24.2 → pactkit-2.25.1}/tests/fixtures/cli_help_golden/spec-status.txt +0 -0
  706. {pactkit-2.24.2 → pactkit-2.25.1}/tests/fixtures/cli_help_golden/stats.txt +0 -0
  707. {pactkit-2.24.2 → pactkit-2.25.1}/tests/fixtures/cli_help_golden/sync.txt +0 -0
  708. {pactkit-2.24.2 → pactkit-2.25.1}/tests/fixtures/cli_help_golden/test-map.txt +0 -0
  709. {pactkit-2.24.2 → pactkit-2.25.1}/tests/fixtures/cli_help_golden/update.txt +0 -0
  710. {pactkit-2.24.2 → pactkit-2.25.1}/tests/fixtures/cli_help_golden/upgrade.txt +0 -0
  711. {pactkit-2.24.2 → pactkit-2.25.1}/tests/fixtures/cli_help_golden/version.txt +0 -0
  712. {pactkit-2.24.2 → pactkit-2.25.1}/tests/fixtures/cli_help_golden/visualize.txt +0 -0
  713. {pactkit-2.24.2 → pactkit-2.25.1}/tests/fixtures/cli_help_golden/work-unit.txt +0 -0
  714. {pactkit-2.24.2 → pactkit-2.25.1}/tests/fixtures/cli_help_golden/workflow.txt +0 -0
  715. {pactkit-2.24.2 → pactkit-2.25.1}/tests/fixtures/config_golden/copy_claude.yaml +0 -0
  716. {pactkit-2.24.2 → pactkit-2.25.1}/tests/fixtures/config_golden/copy_codex.yaml +0 -0
  717. {pactkit-2.24.2 → pactkit-2.25.1}/tests/fixtures/config_golden/copy_github.yaml +0 -0
  718. {pactkit-2.24.2 → pactkit-2.25.1}/tests/fixtures/config_golden/empty.yaml +0 -0
  719. {pactkit-2.24.2 → pactkit-2.25.1}/tests/fixtures/config_golden/full_legacy.yaml +0 -0
  720. {pactkit-2.24.2 → pactkit-2.25.1}/tests/fixtures/config_golden/minimal.yaml +0 -0
  721. {pactkit-2.24.2 → pactkit-2.25.1}/tests/fixtures/config_golden/unknown_keys.yaml +0 -0
  722. {pactkit-2.24.2 → pactkit-2.25.1}/tests/integration/__init__.py +0 -0
  723. {pactkit-2.24.2 → pactkit-2.25.1}/tests/integration/test_deploy_classic.py +0 -0
  724. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_agent_features.py +0 -0
  725. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_agent_frontmatter.py +0 -0
  726. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_agents_enrichment.py +0 -0
  727. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_audit.py +0 -0
  728. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_blast_radius.py +0 -0
  729. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_board_bug027.py +0 -0
  730. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_board_sections.py +0 -0
  731. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_bug001_skill_path.py +0 -0
  732. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_bug002_plugin_paths.py +0 -0
  733. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_bug003_multi_import.py +0 -0
  734. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_bug004_dead_set.py +0 -0
  735. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_bug005_archive_taskless.py +0 -0
  736. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_bug006_scan_excludes.py +0 -0
  737. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_bug007_stale_trace_refs.py +0 -0
  738. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_bug008_stale_command_refs.py +0 -0
  739. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_bug009_project_config_backfill.py +0 -0
  740. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_bug010_rewrite_yaml.py +0 -0
  741. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_bug011_stale_refs.py +0 -0
  742. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_bug012_call_graph_filter.py +0 -0
  743. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_bug013_config_single_source.py +0 -0
  744. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_bug014_version_hygiene.py +0 -0
  745. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_bug017_project_init_playbook.py +0 -0
  746. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_bug018_issue_tracker_verification.py +0 -0
  747. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_bug019_venv_deployment.py +0 -0
  748. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_bug020_claude_md_backup.py +0 -0
  749. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_bug025_release_delegation.py +0 -0
  750. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_bug026_version_sync.py +0 -0
  751. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_bug028_ghost_refs.py +0 -0
  752. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_bug029_stack_detection_fallback.py +0 -0
  753. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_bug030_spec_lint_cli.py +0 -0
  754. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_bug031_docstring_accuracy.py +0 -0
  755. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_bug034_plan_metadata_template.py +0 -0
  756. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_bug_021.py +0 -0
  757. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_bug_022.py +0 -0
  758. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_bug_023.py +0 -0
  759. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_bug_024.py +0 -0
  760. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_bug_slim001_env_detection.py +0 -0
  761. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_bug_slim002_instruction_collision.py +0 -0
  762. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_bug_slim003.py +0 -0
  763. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_bug_slim004.py +0 -0
  764. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_bug_slim005.py +0 -0
  765. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_bug_slim006.py +0 -0
  766. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_bug_slim089_global_claude_md.py +0 -0
  767. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_check_command.py +0 -0
  768. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_check_extensions_072_073.py +0 -0
  769. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_check_playbook_072_073.py +0 -0
  770. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_cli_help_surface.py +0 -0
  771. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_codex_hook_channel.py +0 -0
  772. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_command_frontmatter.py +0 -0
  773. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_command_ownership_v2.py +0 -0
  774. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_command_visualize_modes.py +0 -0
  775. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_complexity.py +0 -0
  776. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_config.py +0 -0
  777. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_config_auto_merge.py +0 -0
  778. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_config_sync_precedence.py +0 -0
  779. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_context_gen.py +0 -0
  780. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_continuation_hardening.py +0 -0
  781. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_create_skill.py +0 -0
  782. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_cross_flow_matrix.py +0 -0
  783. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_deploy_base.py +0 -0
  784. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_deploy_ownership_safety.py +0 -0
  785. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_deployer_cleanup.py +0 -0
  786. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_deployer_plugin.py +0 -0
  787. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_deployment_transaction.py +0 -0
  788. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_deps.py +0 -0
  789. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_design_command.py +0 -0
  790. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_done_gates.py +0 -0
  791. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_done_verify.py +0 -0
  792. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_draw_prompt.py +0 -0
  793. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_draw_references.py +0 -0
  794. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_drawio_mcp.py +0 -0
  795. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_enforcement.py +0 -0
  796. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_engine_robustness.py +0 -0
  797. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_garden.py +0 -0
  798. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_gate_fail_closed.py +0 -0
  799. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_home_path_fix.py +0 -0
  800. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_hotfix_command.py +0 -0
  801. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_hotfix_legacy_constitution.py +0 -0
  802. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_init_guard.py +0 -0
  803. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_init_playbook_074.py +0 -0
  804. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_interface_summary.py +0 -0
  805. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_lang_profiles.py +0 -0
  806. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_layer_violations.py +0 -0
  807. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_legacy_engine_freeze.py +0 -0
  808. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_lessons_rotation_075.py +0 -0
  809. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_list_stories.py +0 -0
  810. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_mcp_integration.py +0 -0
  811. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_model_config.py +0 -0
  812. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_modular_constitution.py +0 -0
  813. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_monorepo_detect.py +0 -0
  814. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_multi_prefix.py +0 -0
  815. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_observe.py +0 -0
  816. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_pdca_semantics_v2.py +0 -0
  817. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_pdca_slim.py +0 -0
  818. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_profiles.py +0 -0
  819. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_project_root.py +0 -0
  820. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_project_visibility.py +0 -0
  821. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_prompt_cli_contract.py +0 -0
  822. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_prompt_cli_refs.py +0 -0
  823. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_prompt_quality_075.py +0 -0
  824. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_prompt_structural_invariants.py +0 -0
  825. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_prompts_package.py +0 -0
  826. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_release.py +0 -0
  827. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_release_field.py +0 -0
  828. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_release_v110.py +0 -0
  829. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_render_prompt.py +0 -0
  830. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_report_parser.py +0 -0
  831. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_report_unified.py +0 -0
  832. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_resolve_scope.py +0 -0
  833. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_review_command.py +0 -0
  834. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_rule_registry_architecture.py +0 -0
  835. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_rules_enrichment.py +0 -0
  836. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_run_events.py +0 -0
  837. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_run_stats.py +0 -0
  838. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_scaffold.py +0 -0
  839. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_scaffold_developer_prefix.py +0 -0
  840. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_schemas.py +0 -0
  841. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_script_extraction.py +0 -0
  842. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_selective_deploy.py +0 -0
  843. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_session_context.py +0 -0
  844. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_skill_structure.py +0 -0
  845. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_skills_enrichment.py +0 -0
  846. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_slim_deps_088.py +0 -0
  847. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_smart_regression.py +0 -0
  848. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_solution_design_rule.py +0 -0
  849. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_spec_preflight.py +0 -0
  850. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_sprint_command.py +0 -0
  851. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_stack_references.py +0 -0
  852. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_status_command.py +0 -0
  853. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_statusline.py +0 -0
  854. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story014_release.py +0 -0
  855. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story015_ci_lint_gate.py +0 -0
  856. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story016_claude_md.py +0 -0
  857. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story017_init_claude_md.py +0 -0
  858. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story018_arch_staleness.py +0 -0
  859. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story019_bailout.py +0 -0
  860. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story020_horizon.py +0 -0
  861. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story021_rfc.py +0 -0
  862. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story022_decision_tree.py +0 -0
  863. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story023_test_quality.py +0 -0
  864. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story024_native_agent.py +0 -0
  865. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story025_ci_pipeline.py +0 -0
  866. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story026_issue_tracker.py +0 -0
  867. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story028_rule_scoping.py +0 -0
  868. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story029_doctor.py +0 -0
  869. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story030_lint.py +0 -0
  870. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story031_git_init_guard.py +0 -0
  871. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story032_greenfield_redirect.py +0 -0
  872. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story033_config_backfill.py +0 -0
  873. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story034_plan_config_refresh.py +0 -0
  874. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story035_readme_docs.py +0 -0
  875. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story037_regression_fix.py +0 -0
  876. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story038_call_graph_update.py +0 -0
  877. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story039_venv_config.py +0 -0
  878. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story040_layered_claude_md.py +0 -0
  879. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story042_spec_linter.py +0 -0
  880. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story043_active_clarify.py +0 -0
  881. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story044_consistency_check.py +0 -0
  882. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story045_auto_pr.py +0 -0
  883. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story047_enterprise_flags.py +0 -0
  884. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story048_worktree_isolation.py +0 -0
  885. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story049_community_standards.py +0 -0
  886. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story050_doc_only_shortcut.py +0 -0
  887. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story051_workflow_streamlining.py +0 -0
  888. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story052_conditional_github_release.py +0 -0
  889. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story053_impact_regression.py +0 -0
  890. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story055_commands.py +0 -0
  891. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story055_config.py +0 -0
  892. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story055_spec_linter.py +0 -0
  893. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story056_commands.py +0 -0
  894. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story056_config.py +0 -0
  895. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story057_implicit_cleanup.py +0 -0
  896. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story058_opencode_extraction.py +0 -0
  897. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story058_routing_fix.py +0 -0
  898. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story059_codex_removal.py +0 -0
  899. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story060_init_hang.py +0 -0
  900. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story061_remove_thinking.py +0 -0
  901. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story062_mcp_recommendations.py +0 -0
  902. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story063_prompt_slimming.py +0 -0
  903. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story064_venv_local_md.py +0 -0
  904. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story065_sprint_model.py +0 -0
  905. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story072_developer_prefix.py +0 -0
  906. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story106_lateral_scan.py +0 -0
  907. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story133_debug_skill.py +0 -0
  908. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_pdca_host_capsules.py +0 -0
  909. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_pdca_semantics_v2.py +0 -0
  910. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim009_lazy_rules.py +0 -0
  911. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim010_dry_refactor.py +0 -0
  912. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim011_command_rules.py +0 -0
  913. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim012_ci.py +0 -0
  914. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim014_clean.py +0 -0
  915. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim014_context.py +0 -0
  916. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim014_guard.py +0 -0
  917. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim014_lazy_viz.py +0 -0
  918. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim014_next_id.py +0 -0
  919. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim014_regression.py +0 -0
  920. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim014_sec_scope.py +0 -0
  921. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim014_validators.py +0 -0
  922. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim015_doctor.py +0 -0
  923. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim016_testmap_lint.py +0 -0
  924. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim017.py +0 -0
  925. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim018.py +0 -0
  926. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim019_plan_subphases.py +0 -0
  927. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim020_explore_stall_fix.py +0 -0
  928. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim021.py +0 -0
  929. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim022.py +0 -0
  930. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim023.py +0 -0
  931. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim024.py +0 -0
  932. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim025.py +0 -0
  933. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim026.py +0 -0
  934. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim027.py +0 -0
  935. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim028.py +0 -0
  936. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim029.py +0 -0
  937. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim030.py +0 -0
  938. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim031.py +0 -0
  939. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim032.py +0 -0
  940. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim033.py +0 -0
  941. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim034.py +0 -0
  942. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim035.py +0 -0
  943. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim036.py +0 -0
  944. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim037.py +0 -0
  945. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim038.py +0 -0
  946. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim039.py +0 -0
  947. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim040.py +0 -0
  948. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim041.py +0 -0
  949. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim042.py +0 -0
  950. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim043.py +0 -0
  951. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim044.py +0 -0
  952. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim045.py +0 -0
  953. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim046.py +0 -0
  954. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim047.py +0 -0
  955. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim048.py +0 -0
  956. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim049.py +0 -0
  957. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim051.py +0 -0
  958. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim052.py +0 -0
  959. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim053.py +0 -0
  960. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim054.py +0 -0
  961. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim055.py +0 -0
  962. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim056.py +0 -0
  963. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim060_codex_profile.py +0 -0
  964. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim063.py +0 -0
  965. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim065.py +0 -0
  966. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim076_multistack.py +0 -0
  967. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim077_monorepo_stack.py +0 -0
  968. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim078.py +0 -0
  969. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim079.py +0 -0
  970. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim080.py +0 -0
  971. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim081.py +0 -0
  972. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim082.py +0 -0
  973. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim083.py +0 -0
  974. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim084.py +0 -0
  975. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim095.py +0 -0
  976. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim098_pdca_nudge.py +0 -0
  977. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim099_act_context_ref.py +0 -0
  978. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim102_version_marker.py +0 -0
  979. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim104_should_semantics.py +0 -0
  980. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim107.py +0 -0
  981. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim109_journey_spec.py +0 -0
  982. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim111_playwright_assertion.py +0 -0
  983. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim112_rules_split.py +0 -0
  984. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim114_journey_sync.py +0 -0
  985. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim119.py +0 -0
  986. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim120.py +0 -0
  987. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim121.py +0 -0
  988. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim125.py +0 -0
  989. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim126.py +0 -0
  990. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim127_managed_block.py +0 -0
  991. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim128_engineering_concerns.py +0 -0
  992. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim132.py +0 -0
  993. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim134_no_model_in_frontmatter.py +0 -0
  994. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim135_config_schema.py +0 -0
  995. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim139_skill_manifest.py +0 -0
  996. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim141_manifest_hash.py +0 -0
  997. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim142_all_target_isolation.py +0 -0
  998. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim143_spec_graph.py +0 -0
  999. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim144_wave_mode.py +0 -0
  1000. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim145.py +0 -0
  1001. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim146.py +0 -0
  1002. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim147.py +0 -0
  1003. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim148.py +0 -0
  1004. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim149.py +0 -0
  1005. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim150.py +0 -0
  1006. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim_stop_hook.py +0 -0
  1007. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_story_slim_work_units.py +0 -0
  1008. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_tools.py +0 -0
  1009. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_topology_parsers_066.py +0 -0
  1010. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_update_task.py +0 -0
  1011. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_visualize_call_nested.py +0 -0
  1012. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_visualize_chain_fix.py +0 -0
  1013. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_visualize_modes.py +0 -0
  1014. {pactkit-2.24.2 → pactkit-2.25.1}/tests/unit/test_visualize_multilang_chain.py +0 -0
@@ -1,5 +1,36 @@
1
1
  # Changelog
2
2
 
3
+ ## [2.25.1] - 2026-09-01
4
+
5
+ ### Fixed
6
+ - **`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).
7
+ - **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).
8
+ - **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).
9
+
10
+ ## [2.25.0] - 2026-08-30
11
+
12
+ ### Added
13
+ - **Protected-branch push gate** — `git push` to a protected branch (default `main`/`master`) is intercepted across all three channels (PreToolUse, codex hooks.json, git pre-push) and blocked with an actionable message: the sanctioned path (feature branch + PR), the human bypass (`PACTKIT_ALLOW_DIRECT_PUSH=1` via the `!` prefix), and the repo-owner config (`enforcement.allow_direct_push`). Direct commits on protected branches block by default instead of merely running the full suite; `--no-verify` is no longer a free PreToolUse bypass (the agent can type it; only the env var proves a human channel). Every block and bypass is audited under `push_gate`.
14
+ - **Tamper guard** — agent modification of enforcement artifacts is blocked: `.git/hooks/**`, `.pactkit/enforcement/**`, `.codex/hooks.json` fully; `.claude/settings.json` only when the edit removes a gate registration. Bypass: `PACTKIT_ALLOW_CONFIG_EDIT=1` or `enforcement.tamper_guard: false`.
15
+ - **L1 Hard-Rule Override Protocol** — core rules now state that L1 rules are never waivable in conversation: a conflicting user instruction is refused (not obeyed), and editing rules/hooks/gate config to comply is itself L1 tampering. Sanctioned channels: do it the sanctioned way, the human runs the command via `!`, or the repo owner changes the config.
16
+ - **Stack-aware commit-gate test commands** — the gate runs the detected stack's real suite (`npm test` / `go test ./...` / `mvn|gradle test`) instead of forcing pytest onto Node/Go/Java repos; `pactkit doctor` probes report stack-specific availability. Python keeps the venv-aware pytest path verbatim (monorepos included).
17
+ - **Session context hooks** — `pactkit gate --hook session-start` regenerates `.pactkit/context.md` and prints it (SessionStart injects stdout as context; fires post-compaction too), `--hook pre-compact` refreshes state as a side effect and never blocks compaction. Cold-start orientation is deterministic instead of prompt-hoped.
18
+ - **Spec tampering guard** — during Act, editing a spec with an active preflight receipt is blocked ("Spec is Law", L1); Plan-phase spec writing is unaffected (no receipt exists yet). Bypass: `PACTKIT_ALLOW_SPEC_EDIT=1` or `pactkit gate authorize spec_edit`.
19
+ - **Authorization gate** — external-effect commands (`gh pr create`, `gh release create|delete|upload`, `gh repo create|delete`, `npm`/`pnpm`/`yarn`/`cargo publish`, `twine upload`, `docker push`) block until the user authorizes: ask first, then `pactkit gate authorize <scope>` opens a short-TTL audited window; the strict human channel is `PACTKIT_AUTHORIZED=1` via `!`. Read-only variants never match. Honest threat model: prevents forgetting, not malice — all uses leave records.
20
+ - **Secrets gate** — Bash commands containing literal credential material (AWS `AKIA…`, `ghp_`/`github_pat_`, `glpat-`, `xox?-`, `sk-…`, private keys, `password=`/`pwd=`/`passwd=` with a literal value) block by default; env-var indirection (`password=$DB_PASS`) is exempt as the sanctioned pattern. Bypass: `PACTKIT_ALLOW_SECRET=1` or `enforcement.secrets_gate: false`.
21
+ - **`pactkit gate` command** — one entry for session hooks and `authorize <scope> [--ttl-minutes N]` (token lives in the tamper-guard-protected `.pactkit/enforcement/`).
22
+ - **Gate telemetry** — gate blocks, authorizations, and Skill invocations feed the run-event stream (`gate_blocked` / `authorization_asked` / `authorization_granted` / `command_invoked`) so `pactkit stats` reflects real direct-PDCA usage, not only the workflow engine: per-gate block counts, per-command invocation counts, and the authorization pair at project scope. Telemetry is best-effort and never blocks a gate verdict.
23
+ - **`enforcement` config section** — `protected_branches` (default `[main, master]`), `allow_direct_push` (false), `tamper_guard` (true), `spec_guard` (true), `auth_gate` (true), `secrets_gate` (true), `auth_ttl_minutes` (30). Missing/malformed values fall back to safe defaults.
24
+
25
+ ### Fixed
26
+ - **Git hooks no longer lock out machines without pactkit** — generated pre-commit/pre-push scripts probe `command -v pactkit` and WARN + allow when the binary is missing (was: exit 127 blocking every commit for teammates/CI in non-Python teams).
27
+ - **Audit records no longer persist credentials** — command-derived text is redacted (`[REDACTED:{pattern}]`) before any persistence (enforcement reasons, event details, stderr); `pactkit clean` scrubs legacy records once. Found in the 2026-08-30 fleet inspection: a blocked `PGPASSWORD=…` command had written the literal password into the on-disk audit record.
28
+
29
+ ### Changed
30
+ - **Behavior change (intentional)**: direct commits on `main`/`master` that previously "just ran more tests" now block by default — set `enforcement.allow_direct_push: true` (PactKit's own repo does) or use the bypass env var.
31
+ - `pactkit stats` output gains a project-scoped `Gate telemetry` section (JSON: `gate_telemetry`).
32
+ - Constitution baseline: core protocol word budget 735→900 (L1 Override Protocol + authorize channel).
33
+
3
34
  ## [2.24.2] - 2026-08-27
4
35
 
5
36
  ### Fixed
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: pactkit
3
- Version: 2.24.2
3
+ Version: 2.25.1
4
4
  Summary: Spec-driven agentic DevOps toolkit for AI coding assistants
5
5
  Project-URL: Homepage, https://pactkit.dev
6
6
  Project-URL: Repository, https://github.com/pactkit/pactkit-public
@@ -23,7 +23,7 @@ Classifier: Topic :: Software Development :: Quality Assurance
23
23
  Requires-Python: >=3.10
24
24
  Requires-Dist: pyyaml>=6.0
25
25
  Provides-Extra: all
26
- Requires-Dist: pactkit-codex<2.25.0,>=2.24.0; extra == 'all'
26
+ Requires-Dist: pactkit-codex<2.26.0,>=2.25.0; extra == 'all'
27
27
  Requires-Dist: pactkit-opencode>=2.9.0; extra == 'all'
28
28
  Requires-Dist: ruff>=0.4; extra == 'all'
29
29
  Requires-Dist: tree-sitter-go>=0.25; extra == 'all'
@@ -31,7 +31,7 @@ Requires-Dist: tree-sitter-java>=0.23; extra == 'all'
31
31
  Requires-Dist: tree-sitter-typescript>=0.23; extra == 'all'
32
32
  Requires-Dist: tree-sitter>=0.25; extra == 'all'
33
33
  Provides-Extra: codex
34
- Requires-Dist: pactkit-codex<2.25.0,>=2.24.0; extra == 'codex'
34
+ Requires-Dist: pactkit-codex<2.26.0,>=2.25.0; extra == 'codex'
35
35
  Provides-Extra: lint
36
36
  Requires-Dist: ruff>=0.4; extra == 'lint'
37
37
  Provides-Extra: opencode
@@ -280,7 +280,7 @@ PactKit deploys 10 skills (3 scripted + 7 prompt-only), auto-invoked by commands
280
280
 
281
281
  ## CLI Subcommands
282
282
 
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.):
283
+ 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
284
 
285
285
  | Command | Purpose |
286
286
  |---------|---------|
@@ -312,11 +312,27 @@ PactKit ships 36 deterministic CLI subcommands — operations that were previous
312
312
  | `pactkit lint-lessons` | Validate lessons.md structure |
313
313
  | `pactkit lint-testcase` | Validate test case structure |
314
314
  | `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 |
315
+ | `pactkit commit-gate` | Pre-commit test gate with skip≠pass transparency; stack-aware (pytest/npm test/go test/mvn/gradle); PreToolUse hook + git pre-commit/pre-push channels, auto-installed per format |
316
+ | `pactkit gate` | Session context hooks (`--hook session-start/pre-compact`) + external-effect authorization (`pactkit gate <scope> [--ttl-minutes N]`) |
316
317
  | `pactkit deps` | External dependency check (`deps check`) and guided install (`deps install`) for node/codegraph/gh |
317
318
  | `pactkit schema config` | List every pactkit.yaml key with default, effective value, and source |
318
319
  | `pactkit sync` | Sync codegraph index |
319
320
 
321
+ ### Enforcement Gates (2.25.0)
322
+
323
+ 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:
324
+
325
+ | Gate | Blocks | Bypass (human/config only) |
326
+ |------|--------|---------------------------|
327
+ | `push_gate` | Direct push to a protected branch (default `main`/`master`) | `PACTKIT_ALLOW_DIRECT_PUSH=1` or `enforcement.allow_direct_push` |
328
+ | `commit_gate` | Commits on protected branches (default) and RED test suites | same as push_gate; `develop` keeps the full-suite rule |
329
+ | `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` |
330
+ | `auth_gate` | External-effect commands (PR/release/publish/repo) until the user confirms | `pactkit gate <scope>` TTL token or `PACTKIT_AUTHORIZED=1` |
331
+ | `secrets_gate` | Literal credential material in commands (env-var indirection is exempt) | `PACTKIT_ALLOW_SECRET=1` |
332
+ | `tamper_guard` | Modifying enforcement artifacts (hooks, gate registrations, audit records) | `PACTKIT_ALLOW_CONFIG_EDIT=1` |
333
+
334
+ 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.
335
+
320
336
  ## Deployment Architecture
321
337
 
322
338
  PactKit supports three deployment formats:
@@ -235,7 +235,7 @@ PactKit deploys 10 skills (3 scripted + 7 prompt-only), auto-invoked by commands
235
235
 
236
236
  ## CLI Subcommands
237
237
 
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.):
238
+ 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
239
 
240
240
  | Command | Purpose |
241
241
  |---------|---------|
@@ -267,11 +267,27 @@ PactKit ships 36 deterministic CLI subcommands — operations that were previous
267
267
  | `pactkit lint-lessons` | Validate lessons.md structure |
268
268
  | `pactkit lint-testcase` | Validate test case structure |
269
269
  | `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 |
270
+ | `pactkit commit-gate` | Pre-commit test gate with skip≠pass transparency; stack-aware (pytest/npm test/go test/mvn/gradle); PreToolUse hook + git pre-commit/pre-push channels, auto-installed per format |
271
+ | `pactkit gate` | Session context hooks (`--hook session-start/pre-compact`) + external-effect authorization (`pactkit gate <scope> [--ttl-minutes N]`) |
271
272
  | `pactkit deps` | External dependency check (`deps check`) and guided install (`deps install`) for node/codegraph/gh |
272
273
  | `pactkit schema config` | List every pactkit.yaml key with default, effective value, and source |
273
274
  | `pactkit sync` | Sync codegraph index |
274
275
 
276
+ ### Enforcement Gates (2.25.0)
277
+
278
+ 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:
279
+
280
+ | Gate | Blocks | Bypass (human/config only) |
281
+ |------|--------|---------------------------|
282
+ | `push_gate` | Direct push to a protected branch (default `main`/`master`) | `PACTKIT_ALLOW_DIRECT_PUSH=1` or `enforcement.allow_direct_push` |
283
+ | `commit_gate` | Commits on protected branches (default) and RED test suites | same as push_gate; `develop` keeps the full-suite rule |
284
+ | `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` |
285
+ | `auth_gate` | External-effect commands (PR/release/publish/repo) until the user confirms | `pactkit gate <scope>` TTL token or `PACTKIT_AUTHORIZED=1` |
286
+ | `secrets_gate` | Literal credential material in commands (env-var indirection is exempt) | `PACTKIT_ALLOW_SECRET=1` |
287
+ | `tamper_guard` | Modifying enforcement artifacts (hooks, gate registrations, audit records) | `PACTKIT_ALLOW_CONFIG_EDIT=1` |
288
+
289
+ 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.
290
+
275
291
  ## Deployment Architecture
276
292
 
277
293
  PactKit supports three deployment formats:
@@ -0,0 +1,10 @@
1
+ ---
2
+ schema_version: 1
3
+ id: LESSON-20260828102433-81cd3e00a0
4
+ date: '2026-08-28'
5
+ story_id: STORY-slim-20260828897396a935ab
6
+ context: session_gate.py:pre_compact_entry
7
+ tags: []
8
+ ---
9
+
10
+ SessionStart/PreCompact 契约不对称:前者 stdout 注入上下文且 compact 后触发,后者 stdout 只进 debug log——压缩前刷新状态文件必须做成副作用而非打印
@@ -0,0 +1,10 @@
1
+ ---
2
+ schema_version: 1
3
+ id: LESSON-20260830034504-4f7d0f8c58
4
+ date: '2026-08-30'
5
+ story_id: STORY-slim-20260830c65491123af1
6
+ context: run_stats.py:collect_gate_telemetry
7
+ tags: []
8
+ ---
9
+
10
+ 计数器断线的根因是聚合端与发射端分离:run_stats 早已统计 authorization_asked/granted 但只有 workflow engine 发射——补遥测的正确切入点是 gate 拦截咽喉点(_record_gate/tamper_guard、check_command 各 gate)而非聚合层
@@ -15,7 +15,7 @@
15
15
 
16
16
  ## Invariants
17
17
 
18
- 1. All 4711+ tests must pass before any commit to `main`.
18
+ 1. All 4791+ 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,13 @@
1
+ schema_version: 1
2
+ id: HOTFIX-slim-20260828ee6cde3108fb
3
+ title: git hooks must not lock everyone out when pactkit is missing
4
+ spec_path: docs/specs/HOTFIX-slim-20260828ee6cde3108fb.md
5
+ status: archived
6
+ tasks:
7
+ - id: task-ce700c4d7c
8
+ title: PATH probe in generated pre-commit/pre-push scripts
9
+ completed: true
10
+ created_at: '2026-08-28T09:40:06+00:00'
11
+ updated_at: '2026-08-28T10:25:19+00:00'
12
+ completed_at: '2026-08-28T09:45:19+00:00'
13
+ archived_at: '2026-08-28T10:25:19+00:00'
@@ -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,31 @@
1
+ schema_version: 1
2
+ id: STORY-slim-20260828897396a935ab
3
+ title: 'Hook coverage expansion: session context, spec/auth/secrets gates'
4
+ spec_path: docs/specs/STORY-slim-20260828897396a935ab.md
5
+ status: archived
6
+ tasks:
7
+ - id: task-88ef617a79
8
+ title: auth_gate module + TTL token
9
+ completed: true
10
+ - id: task-4fe2f5e463
11
+ title: secrets_gate credential patterns
12
+ completed: true
13
+ - id: task-3599c86e37
14
+ title: session_gate SessionStart/PreCompact
15
+ completed: true
16
+ - id: task-9ea9b99702
17
+ title: spec_guard in tamper_guard
18
+ completed: true
19
+ - id: task-dbae64cef8
20
+ title: dispatch wiring + install registration
21
+ completed: true
22
+ - id: task-58f20fc032
23
+ title: config/enforcement/cli extensions
24
+ completed: true
25
+ - id: task-fe4d5a6fb7
26
+ title: unit tests AC1-AC6
27
+ completed: true
28
+ created_at: '2026-08-28T10:12:42+00:00'
29
+ updated_at: '2026-08-28T10:25:19+00:00'
30
+ completed_at: '2026-08-28T10:23:54+00:00'
31
+ archived_at: '2026-08-28T10:25:19+00:00'
@@ -0,0 +1,31 @@
1
+ schema_version: 1
2
+ id: STORY-slim-202608289e83eeb30df4
3
+ title: Protected-branch push gate + L1 hard-rule override protocol
4
+ spec_path: docs/specs/STORY-slim-202608289e83eeb30df4.md
5
+ status: archived
6
+ tasks:
7
+ - id: task-ea1a074f1b
8
+ title: Extend hook_entry with git push matching + branch resolution + block/bypass
9
+ completed: true
10
+ - id: task-0697f734bc
11
+ title: Add enforcement config section to config.py
12
+ completed: true
13
+ - id: task-99362d5614
14
+ title: Install pre-push hook + tamper guard registration + ensure_gate_channel
15
+ completed: true
16
+ - id: task-642a8a34e6
17
+ title: Extend GATES + probe_push_gate + doctor output
18
+ completed: true
19
+ - id: task-0697d362c6
20
+ title: 'Upgrade prompts/rules.py: L1 entries + Override Protocol'
21
+ completed: true
22
+ - id: task-3957ff25e0
23
+ title: Write unit tests for AC1-AC8
24
+ completed: true
25
+ - id: task-4ae76ca85f
26
+ title: Set pactkit self-config allow_direct_push/tamper_guard
27
+ completed: true
28
+ created_at: '2026-08-28T07:32:17+00:00'
29
+ updated_at: '2026-08-28T10:25:19+00:00'
30
+ completed_at: '2026-08-28T09:37:23+00:00'
31
+ archived_at: '2026-08-28T10:25:19+00:00'
@@ -0,0 +1,22 @@
1
+ schema_version: 1
2
+ id: STORY-slim-20260828d43fae4edbb6
3
+ title: Stack-aware commit-gate test commands (node/go/java)
4
+ spec_path: docs/specs/STORY-slim-20260828d43fae4edbb6.md
5
+ status: archived
6
+ tasks:
7
+ - id: task-2f9bce4ef2
8
+ title: utils.stack_test_command marker resolution
9
+ completed: true
10
+ - id: task-f3ec4c758a
11
+ title: run_pytest stack dispatch + GateUnavailable
12
+ completed: true
13
+ - id: task-9fe787b9dd
14
+ title: probe_commit_gate stack-aware
15
+ completed: true
16
+ - id: task-8c24910f22
17
+ title: unit tests AC1-AC5
18
+ completed: true
19
+ created_at: '2026-08-28T09:43:04+00:00'
20
+ updated_at: '2026-08-28T10:25:19+00:00'
21
+ completed_at: '2026-08-28T09:45:19+00:00'
22
+ archived_at: '2026-08-28T10:25:19+00:00'
@@ -0,0 +1,28 @@
1
+ schema_version: 1
2
+ id: STORY-slim-20260830c65491123af1
3
+ title: Gate telemetry truthfulness + audit-record redaction
4
+ spec_path: docs/specs/STORY-slim-20260830c65491123af1.md
5
+ status: archived
6
+ tasks:
7
+ - id: task-e925929544
8
+ title: redact_command helper + persisted reason redaction
9
+ completed: true
10
+ - id: task-52f121ef11
11
+ title: EVENT_TYPES extension + gate event emission
12
+ completed: true
13
+ - id: task-14aa0a45c6
14
+ title: Skill matcher telemetry branch
15
+ completed: true
16
+ - id: task-c2d0f91cc2
17
+ title: run_stats gate/command counters
18
+ completed: true
19
+ - id: task-ca9189a213
20
+ title: clean-time legacy record scrub
21
+ completed: true
22
+ - id: task-31e039b53c
23
+ title: unit tests AC1-AC5
24
+ completed: true
25
+ created_at: '2026-08-30T03:29:00+00:00'
26
+ updated_at: '2026-08-30T03:46:05+00:00'
27
+ completed_at: '2026-08-30T03:35:56+00:00'
28
+ archived_at: '2026-08-30T03:46:05+00:00'
@@ -0,0 +1,40 @@
1
+ # HOTFIX-slim-20260828ee6cde3108fb: git hooks must not lock everyone out when pactkit is missing
2
+
3
+ | Field | Value |
4
+ |-------|-------|
5
+ | ID | HOTFIX-slim-20260828ee6cde3108fb |
6
+ | Status | Done |
7
+ | Priority | P1 |
8
+ | Release | 2.25.0 |
9
+
10
+ ## Background
11
+
12
+ The git hooks written by `install_git_hook` / `install_pre_push_hook`
13
+ (`src/pactkit/commit_gate.py`) call `exec pactkit commit-gate`. On a
14
+ machine without the pactkit binary on PATH (teammates, CI runners, docker
15
+ builds — the default state in Node.js teams that never install Python),
16
+ the shell exits 127 and git treats the failed hook as a block: **every
17
+ commit and push is locked out by a broken gate**, violating the R3
18
+ self-lock protection principle (a gate that cannot run must WARN and
19
+ allow, not masquerade as enforcement).
20
+
21
+ ## Target
22
+
23
+ `src/pactkit/commit_gate.py` — `install_git_hook` (~:687) and
24
+ `install_pre_push_hook` (~:702): generated hook scripts gain a PATH probe
25
+ (`command -v pactkit`) that prints a WARN and exits 0 when the binary is
26
+ missing. The chain-onto-existing-hook path gets the same probe.
27
+
28
+ ## Fix
29
+
30
+ Prepend to both generated scripts:
31
+
32
+ ```sh
33
+ command -v pactkit >/dev/null 2>&1 || {
34
+ echo "[WARN] pactkit not on PATH — gate skipped (unavailable, not enforced)"
35
+ exit 0
36
+ }
37
+ ```
38
+
39
+ Verification: unit tests assert the probe is present in installed hook
40
+ scripts (`tests/unit/test_commit_gate.py`, `tests/unit/test_push_gate.py`).
@@ -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).
@@ -0,0 +1,55 @@
1
+ # HOTFIX-slim-20260901469666ef23a8: commit-gate misfires on docs/meta-only commits
2
+
3
+ | Field | Value |
4
+ |-------|-------|
5
+ | ID | HOTFIX-slim-20260901469666ef23a8 |
6
+ | Status | Done |
7
+ | Priority | P1 |
8
+ | Release | 2.25.1 |
9
+
10
+ ## Background
11
+
12
+ A zero-code design-baseline commit (harness-backend root commit,
13
+ 2026-09-01) was blocked three times by the commit gate with "FULL —
14
+ impact mapping empty — full unit suite (safe default)" and finally
15
+ forced the agent to write tests, move them to `tests/unit/`, and
16
+ bootstrap a venv before the commit went through. Three defects
17
+ conspired, each violating the gate's own documented intent:
18
+
19
+ 1. **Repo meta files break doc-only classification.** `.gitignore` and
20
+ `.claude/settings.json` carry no runtime code, yet they disqualify
21
+ the whole change set from the doc-only skip
22
+ (`regression.py` `_DOC_ONLY_PATTERNS`), contradicting the module's
23
+ own "doc-only — safe to skip tests" contract.
24
+ 2. **"Repo has no tests" is treated as "tests failed".** The full
25
+ strategy hard-codes `tests/unit/`; a repo whose tests live at
26
+ `tests/` (or that has none yet) yields exit 4/5, and `run_gate`
27
+ counts any nonzero returncode as RED — converting "nothing to
28
+ verify" into "write tests before any commit".
29
+ 3. **Missing pytest module reads as RED, not unavailable.** With no
30
+ project venv, `pytest_command` falls back to the pipx interpreter;
31
+ `python -m pytest` exits 1 with "No module named pytest", which
32
+ `run_gate` reports as failing tests. This violates R3 self-lock
33
+ protection (a gate that cannot run must WARN and allow) and is
34
+ inconsistent with the existing `FileNotFoundError` → WARN path for
35
+ a missing pytest binary.
36
+
37
+ ## Fix
38
+
39
+ 1. `regression.py`: `_DOC_ONLY_PATTERNS` gains `.gitignore`,
40
+ `.claude/**`, `.codex/**` — agent/repo metadata with no runtime
41
+ code. Tamper guard is a separate channel and is unaffected.
42
+ 2. `commit_gate.py run_pytest`: the full-suite target falls back from
43
+ `tests/unit/` to `tests/` when only the latter exists, so a
44
+ non-convention suite is still run instead of erroring. A repo with
45
+ no tests at all keeps the RED verdict — the TDD contract ("code
46
+ changes require tests") is untouched, but the verdict message now
47
+ says "no tests collected" instead of implying failures.
48
+ 3. `commit_gate.py run_pytest`: output containing "No module named
49
+ pytest" raises `GateUnavailable` → WARN + allow, matching the
50
+ missing-binary path (R3).
51
+
52
+ Out of scope (unchanged): trunk full-suite rule, protected-branch
53
+ block rule, tamper guard, secrets gate.
54
+
55
+ Verification: focused unit tests for all three behaviors + full suite.