pactkit 2.26.0__tar.gz → 2.27.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1401) hide show
  1. {pactkit-2.26.0 → pactkit-2.27.0}/CHANGELOG.md +90 -0
  2. {pactkit-2.26.0 → pactkit-2.27.0}/CODE_OF_CONDUCT.md +2 -2
  3. {pactkit-2.26.0 → pactkit-2.27.0}/CONTRIBUTING.md +4 -3
  4. {pactkit-2.26.0 → pactkit-2.27.0}/PKG-INFO +114 -23
  5. {pactkit-2.26.0 → pactkit-2.27.0}/README.md +109 -18
  6. {pactkit-2.26.0 → pactkit-2.27.0}/SECURITY.md +6 -3
  7. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/adr/ADR-0006-verification-evidence-is-stamped-by-code-touchpo.md +1 -0
  8. pactkit-2.27.0/docs/architecture/governance/lessons/LESSON-20260916025924-0161b23415.md +10 -0
  9. pactkit-2.27.0/docs/architecture/governance/lessons/LESSON-20260916060833-a56ceb5473.md +10 -0
  10. pactkit-2.27.0/docs/architecture/governance/lessons/LESSON-20260916071655-f231d85eeb.md +10 -0
  11. pactkit-2.27.0/docs/architecture/governance/lessons/LESSON-20260916073935-f3b66ad2fa.md +10 -0
  12. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/rules.md +1 -1
  13. pactkit-2.27.0/docs/guides/support-matrix.md +73 -0
  14. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/sprint_board.md +73 -0
  15. pactkit-2.27.0/docs/product/stories/HOTFIX-slim-2026091645aa03e71927.yaml +24 -0
  16. pactkit-2.27.0/docs/product/stories/HOTFIX-slim-202609166519bc076345.yaml +18 -0
  17. pactkit-2.27.0/docs/product/stories/HOTFIX-slim-202609166a956c024963.yaml +12 -0
  18. pactkit-2.27.0/docs/product/stories/HOTFIX-slim-2026091673a4d1c8c33b.yaml +11 -0
  19. pactkit-2.27.0/docs/product/stories/HOTFIX-slim-2026091699cba1b49506.yaml +11 -0
  20. pactkit-2.27.0/docs/product/stories/HOTFIX-slim-20260916bcd9deb4bec0.yaml +18 -0
  21. pactkit-2.27.0/docs/product/stories/HOTFIX-slim-20260916cccbb8ee26fb.yaml +15 -0
  22. pactkit-2.27.0/docs/product/stories/STORY-slim-202609160fe9825c04b7.yaml +19 -0
  23. pactkit-2.27.0/docs/product/stories/STORY-slim-2026091644dd0bd263d1.yaml +18 -0
  24. pactkit-2.27.0/docs/product/stories/STORY-slim-202609165747a3fc13b8.yaml +28 -0
  25. pactkit-2.27.0/docs/product/stories/STORY-slim-20260916823f60779f1a.yaml +29 -0
  26. pactkit-2.27.0/docs/product/stories/STORY-slim-20260916e9aadb6b2b46.yaml +28 -0
  27. pactkit-2.27.0/docs/specs/HOTFIX-slim-2026091645aa03e71927.md +31 -0
  28. pactkit-2.27.0/docs/specs/HOTFIX-slim-202609166519bc076345.md +27 -0
  29. pactkit-2.27.0/docs/specs/HOTFIX-slim-202609166a956c024963.md +85 -0
  30. pactkit-2.27.0/docs/specs/HOTFIX-slim-2026091673a4d1c8c33b.md +110 -0
  31. pactkit-2.27.0/docs/specs/HOTFIX-slim-20260916991f0b0d0a2e.md +110 -0
  32. pactkit-2.27.0/docs/specs/HOTFIX-slim-2026091699cba1b49506.md +91 -0
  33. pactkit-2.27.0/docs/specs/HOTFIX-slim-20260916bcd9deb4bec0.md +23 -0
  34. pactkit-2.27.0/docs/specs/HOTFIX-slim-20260916c4f2a9e6b013.md +102 -0
  35. pactkit-2.27.0/docs/specs/HOTFIX-slim-20260916cccbb8ee26fb.md +21 -0
  36. pactkit-2.27.0/docs/specs/STORY-slim-202609160fe9825c04b7.md +223 -0
  37. pactkit-2.27.0/docs/specs/STORY-slim-202609165747a3fc13b8.md +176 -0
  38. pactkit-2.27.0/docs/specs/STORY-slim-20260916823f60779f1a.md +165 -0
  39. pactkit-2.27.0/docs/specs/STORY-slim-20260916b5beb25459bd.md +38 -0
  40. pactkit-2.27.0/docs/specs/STORY-slim-20260916e9aadb6b2b46.md +235 -0
  41. pactkit-2.27.0/docs/test_cases/STORY-slim-202609160fe9825c04b7_case.md +47 -0
  42. pactkit-2.27.0/docs/test_cases/STORY-slim-202609165747a3fc13b8_case.md +47 -0
  43. pactkit-2.27.0/docs/test_cases/STORY-slim-20260916823f60779f1a_case.md +48 -0
  44. pactkit-2.27.0/docs/test_cases/STORY-slim-20260916e9aadb6b2b46_case.md +53 -0
  45. {pactkit-2.26.0 → pactkit-2.27.0}/pyproject.toml +3 -3
  46. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/__init__.py +1 -1
  47. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/auth_gate.py +19 -6
  48. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/cleaners.py +39 -16
  49. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/cli.py +113 -23
  50. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/commit_gate.py +679 -136
  51. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/config.py +181 -13
  52. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/continuation.py +6 -6
  53. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/enforcement.py +36 -17
  54. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/generators/deployer.py +32 -7
  55. pactkit-2.27.0/src/pactkit/project_contract.py +180 -0
  56. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/prompts/commands.py +4 -4
  57. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/prompts/rules.py +7 -0
  58. pactkit-2.27.0/src/pactkit/secrets_gate.py +146 -0
  59. pactkit-2.27.0/src/pactkit/tamper_guard.py +654 -0
  60. pactkit-2.27.0/src/pactkit/utils.py +415 -0
  61. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/__root__.txt +8 -3
  62. pactkit-2.27.0/tests/fixtures/cli_help_golden/adopt.txt +5 -0
  63. pactkit-2.27.0/tests/fixtures/cli_help_golden/project-preflight.txt +5 -0
  64. pactkit-2.27.0/tests/fixtures/cli_help_golden/reconcile.txt +5 -0
  65. pactkit-2.27.0/tests/fixtures/cli_help_golden/redetect-stack.txt +6 -0
  66. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/update.txt +3 -1
  67. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/host_prompt_snapshots/classic.json +5 -5
  68. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/host_prompt_snapshots/codex.json +11 -11
  69. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/host_prompt_snapshots/opencode.json +11 -11
  70. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_commit_gate.py +141 -4
  71. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_gate_fail_closed.py +121 -0
  72. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_gate_reuse_dedup.py +4 -2
  73. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_gate_telemetry.py +17 -6
  74. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_hotfix_20260830_gate_cli.py +4 -2
  75. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_hotfix_20260901_gate_docsonly.py +14 -2
  76. pactkit-2.27.0/tests/unit/test_hotfix_slim2026091645aa03e71927_cli_venv_fixes.py +98 -0
  77. pactkit-2.27.0/tests/unit/test_hotfix_slim202609166519bc076345_gate_dispatch.py +149 -0
  78. pactkit-2.27.0/tests/unit/test_hotfix_slim2026091673a4d1c8c33b_gate_bypass.py +364 -0
  79. pactkit-2.27.0/tests/unit/test_hotfix_slim20260916991f0b0d0a2e_audit_findings.py +411 -0
  80. pactkit-2.27.0/tests/unit/test_hotfix_slim2026091699cba1b49506_astra_findings.py +293 -0
  81. pactkit-2.27.0/tests/unit/test_hotfix_slim20260916bcd9deb4bec0_watchdog.py +92 -0
  82. pactkit-2.27.0/tests/unit/test_hotfix_slim20260916c4f2a9e6b013_gate_review.py +391 -0
  83. pactkit-2.27.0/tests/unit/test_hotfix_slim20260916cccbb8ee26fb_atomic_write.py +78 -0
  84. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_post_commit_stamp.py +67 -2
  85. pactkit-2.27.0/tests/unit/test_project_contract.py +64 -0
  86. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_prompt_cli_refs.py +3 -0
  87. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_push_gate.py +13 -3
  88. pactkit-2.27.0/tests/unit/test_readme_counts.py +230 -0
  89. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_release_v110.py +15 -8
  90. pactkit-2.27.0/tests/unit/test_stack_test_command.py +676 -0
  91. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story059_codex_removal.py +6 -1
  92. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim20260915ac3e5c24fdd3_governance.py +21 -5
  93. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim20260915eaf18678ce23_commit_path.py +48 -4
  94. pactkit-2.27.0/tests/unit/test_story_slim202609160fe9825c04b7_yaml_fidelity.py +205 -0
  95. pactkit-2.27.0/tests/unit/test_story_slim20260916823f60779f1a_verification_receipt.py +259 -0
  96. pactkit-2.27.0/tests/unit/test_support_matrix.py +101 -0
  97. pactkit-2.26.0/src/pactkit/secrets_gate.py +0 -83
  98. pactkit-2.26.0/src/pactkit/tamper_guard.py +0 -336
  99. pactkit-2.26.0/src/pactkit/utils.py +0 -162
  100. pactkit-2.26.0/tests/fixtures/cli_help_golden/redetect-stack.txt +0 -4
  101. pactkit-2.26.0/tests/unit/test_readme_counts.py +0 -127
  102. pactkit-2.26.0/tests/unit/test_stack_test_command.py +0 -300
  103. {pactkit-2.26.0 → pactkit-2.27.0}/.codegraph/.gitignore +0 -0
  104. {pactkit-2.26.0 → pactkit-2.27.0}/.github/workflows/pactkit.yml +0 -0
  105. {pactkit-2.26.0 → pactkit-2.27.0}/.github/workflows/publish.yml +0 -0
  106. {pactkit-2.26.0 → pactkit-2.27.0}/.github/workflows/release-acceptance.yml +0 -0
  107. {pactkit-2.26.0 → pactkit-2.27.0}/.gitignore +0 -0
  108. {pactkit-2.26.0 → pactkit-2.27.0}/AGENTS.md +0 -0
  109. {pactkit-2.26.0 → pactkit-2.27.0}/LICENSE +0 -0
  110. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/STORY-slim-20260911b2bbd79889e0-review-round2.md +0 -0
  111. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/STORY-slim-202609144d0b3cb593aa-context-reuse.md +0 -0
  112. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/dimensions.md +0 -0
  113. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/INDEX.md +0 -0
  114. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/driver3.sh +0 -0
  115. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/driver4.sh +0 -0
  116. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/AC1/docs/specs/AC1.md +0 -0
  117. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/AC1/src/profile.py +0 -0
  118. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/AC1/tests/unit/test_profile.py +0 -0
  119. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/AC10/docs/ACT_NOTES.md +0 -0
  120. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/AC10/docs/specs/AC10.md +0 -0
  121. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/AC10/src/billing.py +0 -0
  122. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/AC2/docs/VERIFY.md +0 -0
  123. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/AC2/docs/specs/AC2.md +0 -0
  124. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/AC2/src/textutil.py +0 -0
  125. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/AC2/tests/unit/test_textutil.py +0 -0
  126. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/AC3/docs/specs/AC3.md +0 -0
  127. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/AC4/docs/specs/AC4.md +0 -0
  128. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/AC4/src/reporter.py +0 -0
  129. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/AC5/db/migrations/001_rename.py +0 -0
  130. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/AC5/docs/specs/AC5.md +0 -0
  131. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/AC5/premise.sh +0 -0
  132. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/AC5/src/deployer.py +0 -0
  133. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/AC5/src/workflow_engine.py +0 -0
  134. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/AC6/docs/specs/AC6.md +0 -0
  135. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/AC6/src/pull.py +0 -0
  136. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/AC7/NEEDS_GIT +0 -0
  137. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/AC7/docs/specs/AC7.md +0 -0
  138. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/AC7/post_git.sh +0 -0
  139. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/AC7/premise.sh +0 -0
  140. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/AC7/src/audit.py +0 -0
  141. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/AC7/tests/unit/test_audit.py +0 -0
  142. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/AC8/NEEDS_GIT +0 -0
  143. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/AC8/docs/specs/AC8.md +0 -0
  144. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/AC8/post_git.sh +0 -0
  145. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/AC8/premise.sh +0 -0
  146. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/AC8/src/audit.py +0 -0
  147. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/AC8/tests/unit/test_audit.py +0 -0
  148. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/AC9/NEEDS_GIT +0 -0
  149. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/AC9/docs/specs/AC9.md +0 -0
  150. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/AC9/post_git.sh +0 -0
  151. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/AC9/premise.sh +0 -0
  152. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/AC9/src/audit.py +0 -0
  153. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/AC9/tests/unit/test_audit.py +0 -0
  154. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/_template/README.md +0 -0
  155. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/_template/src/widget.py +0 -0
  156. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/_template/tests/unit/test_widget.py +0 -0
  157. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/harness.py +0 -0
  158. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/prompts/AC1.txt +0 -0
  159. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/prompts/AC10.txt +0 -0
  160. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/prompts/AC2.txt +0 -0
  161. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/prompts/AC3.txt +0 -0
  162. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/prompts/AC4.txt +0 -0
  163. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/prompts/AC5.txt +0 -0
  164. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/prompts/AC6.txt +0 -0
  165. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/prompts/AC7.txt +0 -0
  166. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/prompts/AC8.txt +0 -0
  167. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/prompts/AC9.txt +0 -0
  168. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round1/baseline/AC1-r2.json.gz +0 -0
  169. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round1/baseline/AC1-r3.json.gz +0 -0
  170. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round1/baseline/AC10-r1.json.gz +0 -0
  171. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round1/baseline/AC2-r1.json.gz +0 -0
  172. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round1/baseline/AC3-r1.json.gz +0 -0
  173. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round1/baseline/AC4-r1.json.gz +0 -0
  174. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round1/baseline/AC5-r1.json.gz +0 -0
  175. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round1/baseline/AC5-r2.json.gz +0 -0
  176. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round1/baseline/AC6-r1.json.gz +0 -0
  177. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round1/baseline/AC7-r1.json.gz +0 -0
  178. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round1/baseline/AC7-r2.json.gz +0 -0
  179. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round1/baseline/AC8-r1.json.gz +0 -0
  180. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round1/baseline/AC9-r1.json.gz +0 -0
  181. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round1/baseline/AC9-r2.json.gz +0 -0
  182. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round1/candidate/AC1-r1.json.gz +0 -0
  183. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round1/candidate/AC1-r2.json.gz +0 -0
  184. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round1/candidate/AC1-r3.json.gz +0 -0
  185. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round1/candidate/AC10-r1.json.gz +0 -0
  186. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round1/candidate/AC2-r1.json.gz +0 -0
  187. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round1/candidate/AC3-r1.json.gz +0 -0
  188. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round1/candidate/AC4-r1.json.gz +0 -0
  189. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round1/candidate/AC5-r1.json.gz +0 -0
  190. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round1/candidate/AC5-r2.json.gz +0 -0
  191. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round1/candidate/AC6-r1.json.gz +0 -0
  192. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round1/candidate/AC7-r1.json.gz +0 -0
  193. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round1/candidate/AC7-r2.json.gz +0 -0
  194. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round1/candidate/AC8-r1.json.gz +0 -0
  195. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round1/candidate/AC9-r1.json.gz +0 -0
  196. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round1/candidate/AC9-r2.json.gz +0 -0
  197. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round3/baseline/AC1-r1.json +0 -0
  198. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round3/baseline/AC1-r12.json +0 -0
  199. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round3/baseline/AC1-r2.json +0 -0
  200. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round3/baseline/AC10-r1.json +0 -0
  201. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round3/baseline/AC2-r1.json +0 -0
  202. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round3/baseline/AC3-r1.json +0 -0
  203. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round3/baseline/AC4-r1.json +0 -0
  204. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round3/baseline/AC5-r1.json +0 -0
  205. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round3/baseline/AC5-r2.json +0 -0
  206. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round3/baseline/AC6-r1.json +0 -0
  207. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round3/baseline/AC7-r1.json +0 -0
  208. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round3/baseline/AC7-r2.json +0 -0
  209. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round3/baseline/AC8-r1.json +0 -0
  210. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round3/baseline/AC8-r11.json +0 -0
  211. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round3/baseline/AC9-r1.json +0 -0
  212. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round3/baseline/AC9-r11.json +0 -0
  213. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round3/baseline/AC9-r2.json +0 -0
  214. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round3/candidate/AC1-r1.json +0 -0
  215. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round3/candidate/AC1-r12.json +0 -0
  216. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round3/candidate/AC1-r2.json +0 -0
  217. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round3/candidate/AC10-r1.json +0 -0
  218. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round3/candidate/AC2-r1.json +0 -0
  219. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round3/candidate/AC3-r1.json +0 -0
  220. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round3/candidate/AC4-r1.json +0 -0
  221. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round3/candidate/AC5-r1.json +0 -0
  222. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round3/candidate/AC5-r2.json +0 -0
  223. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round3/candidate/AC6-r1.json +0 -0
  224. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round3/candidate/AC7-r1.json +0 -0
  225. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round3/candidate/AC7-r11.json +0 -0
  226. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round3/candidate/AC7-r2.json +0 -0
  227. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round3/candidate/AC8-r1.json +0 -0
  228. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round3/candidate/AC9-r1.json +0 -0
  229. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round3/candidate/AC9-r11.json +0 -0
  230. {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round3/candidate/AC9-r2.json +0 -0
  231. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/adr/ADR-0001-compliance-enforcement-lives-in-code-gates-promp.md +0 -0
  232. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/adr/ADR-0002-guides-carry-operational-practice-content-not-ju.md +0 -0
  233. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/adr/ADR-0003-rule-telemetry-is-consumed-at-code-touchpoints-w.md +0 -0
  234. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/adr/ADR-0004-verification-decisions-are-structured-data-consu.md +0 -0
  235. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/adr/ADR-0005-rule-adjustments-are-evaluated-on-a-fixed-corpus.md +0 -0
  236. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/adr/ADR-0007-config-layering-with-tighten-only-direction-cons.md +0 -0
  237. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/adr/ADR-0008-semantic-code-queries-go-through-the-pactkit-que.md +0 -0
  238. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/archive/lessons_archive_202602.md +0 -0
  239. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/archive/lessons_archive_202603.md +0 -0
  240. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/archive/lessons_archive_202604.md +0 -0
  241. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/harness_audit.json +0 -0
  242. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260227-8e92f52c86.md +0 -0
  243. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260227-a21cacfde2.md +0 -0
  244. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260227-ccb19799ea.md +0 -0
  245. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260228-6e4b02ff08.md +0 -0
  246. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260228-b87245d5fc.md +0 -0
  247. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260302-8980b2512d.md +0 -0
  248. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260302-8f58fa2045.md +0 -0
  249. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260302-a3a1b7900e.md +0 -0
  250. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260303-3f65c0442b.md +0 -0
  251. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260304-23c605e495.md +0 -0
  252. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260304-8bd6c10219.md +0 -0
  253. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260305-129d1dea2a.md +0 -0
  254. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260305-48752d79c3.md +0 -0
  255. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260305-b9afdd8720.md +0 -0
  256. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260305-f93ee5b19f.md +0 -0
  257. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260306-7061390095.md +0 -0
  258. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260313-edf7807faf.md +0 -0
  259. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260316-091567c2bb.md +0 -0
  260. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260316-4661b3789a.md +0 -0
  261. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260316-7214dac8fc.md +0 -0
  262. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260317-3d8a855086.md +0 -0
  263. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260317-4ba69c35f0.md +0 -0
  264. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260317-6cd2a53ba5.md +0 -0
  265. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260317-7a0dd3407e.md +0 -0
  266. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260317-86927e3701.md +0 -0
  267. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260317-9a8025eaac.md +0 -0
  268. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260317-a0721cc066.md +0 -0
  269. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260317-a1f53d759b.md +0 -0
  270. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260317-a9f7897b36.md +0 -0
  271. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260317-ff430eaa29.md +0 -0
  272. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260318-fb0bcd928b.md +0 -0
  273. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260319-f320fbb5cc.md +0 -0
  274. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260320-b2d80c56b3.md +0 -0
  275. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260320-c102dbd6f8.md +0 -0
  276. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260320-e8f6ddae81.md +0 -0
  277. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260321-5e57da75b0.md +0 -0
  278. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260321-6a4a30628f.md +0 -0
  279. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260321-b5a58de3f9.md +0 -0
  280. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260321-e0138991ed.md +0 -0
  281. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260321-e49663fc95.md +0 -0
  282. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260322-4c0480e882.md +0 -0
  283. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260322-d1ece5c0d4.md +0 -0
  284. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260323-4bd30888ce.md +0 -0
  285. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260323-7a02b3eb85.md +0 -0
  286. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260323-8624e0d93a.md +0 -0
  287. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260323-a8faeea78c.md +0 -0
  288. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260324-075e3332b8.md +0 -0
  289. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260324-0f6f041a52.md +0 -0
  290. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260324-2dab5931de.md +0 -0
  291. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260324-8bcda73e9b.md +0 -0
  292. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260324-9e6238f0c8.md +0 -0
  293. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260324-a1cace9846.md +0 -0
  294. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260324-bf64dd9564.md +0 -0
  295. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260324-c344d7655c.md +0 -0
  296. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260324-e60c50dcc9.md +0 -0
  297. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260324-f5149caffe.md +0 -0
  298. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260325-1a5eeea04c.md +0 -0
  299. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260326-02460b22de.md +0 -0
  300. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260326-09de627b2b.md +0 -0
  301. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260326-204ea48f84.md +0 -0
  302. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260326-32e2fd3074.md +0 -0
  303. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260326-6c6dbfc365.md +0 -0
  304. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260326-7811ad7ff2.md +0 -0
  305. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260326-88e7123370.md +0 -0
  306. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260326-d2376010b1.md +0 -0
  307. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260326-e4f0eb8850.md +0 -0
  308. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260326-e68b8aa47f.md +0 -0
  309. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260326-fdd06ad981.md +0 -0
  310. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260327-e3c7f5abcb.md +0 -0
  311. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260330-eb1760def2.md +0 -0
  312. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260331-1b58a289ea.md +0 -0
  313. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260331-26e474753e.md +0 -0
  314. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260331-3028ab9cf5.md +0 -0
  315. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260331-350048862b.md +0 -0
  316. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260331-7d41cdf5a3.md +0 -0
  317. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260331-8e5558a077.md +0 -0
  318. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260331-c46df1c3b1.md +0 -0
  319. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260401-41515789f6.md +0 -0
  320. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260401-4453752dda.md +0 -0
  321. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260401-5a225a1c0a.md +0 -0
  322. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260401-90724b10f0.md +0 -0
  323. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260401-9e322eb76e.md +0 -0
  324. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260401-bd20019d3d.md +0 -0
  325. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260401-de035be681.md +0 -0
  326. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260401-f44c8f499e.md +0 -0
  327. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260401-fa52f596ff.md +0 -0
  328. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260402-5b063207c8.md +0 -0
  329. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260402-5e0913ec81.md +0 -0
  330. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260415-3d8b5e8f81.md +0 -0
  331. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260415-84219771ca.md +0 -0
  332. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260416-41d4564480.md +0 -0
  333. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260416-5cdc3cf53f.md +0 -0
  334. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260416-807c65a8e7.md +0 -0
  335. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260416-ade561c777.md +0 -0
  336. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260416-b78aaf129a.md +0 -0
  337. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260416-db8a5430a0.md +0 -0
  338. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260416-f5a765c496.md +0 -0
  339. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260417-f1d777e9c9.md +0 -0
  340. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260418-ee12f2ff0d.md +0 -0
  341. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260420-2260437be7.md +0 -0
  342. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260420-a35a083e29.md +0 -0
  343. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260420-fa7d958d56.md +0 -0
  344. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260421-309c998a10.md +0 -0
  345. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260422-6509ac4df0.md +0 -0
  346. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260422-8dd5ed6a24.md +0 -0
  347. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260423-b0890ad9c2.md +0 -0
  348. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260424-24cc1d5e19.md +0 -0
  349. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260424-39a99c887d.md +0 -0
  350. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260427-f7955d5775.md +0 -0
  351. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260507-7b75a5cab8.md +0 -0
  352. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260507-b26f97255d.md +0 -0
  353. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260525-1fe96d2ff4.md +0 -0
  354. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260525-717e18e190.md +0 -0
  355. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260525-df4853fa3f.md +0 -0
  356. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260526-4c230f3a9d.md +0 -0
  357. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260601-6d6b779a83.md +0 -0
  358. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260601-e65d3407ed.md +0 -0
  359. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260610-51c3cf895e.md +0 -0
  360. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260629-6171e54ac8.md +0 -0
  361. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260702-4616caa284.md +0 -0
  362. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260713-da6d40dcc0.md +0 -0
  363. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260723-d4c9801300.md +0 -0
  364. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260813-18efcf9687.md +0 -0
  365. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260813-1dc6e2e1c7.md +0 -0
  366. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260813-21d4da632f.md +0 -0
  367. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260817-3587ae1a22.md +0 -0
  368. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260817-5f08a6affa.md +0 -0
  369. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260817-800f717c9d.md +0 -0
  370. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260817-a2cd839a2d.md +0 -0
  371. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260822-9175485749.md +0 -0
  372. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260822105138-298451a42c.md +0 -0
  373. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260822105138-522c7e4af4.md +0 -0
  374. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260822105138-72cc1d0343.md +0 -0
  375. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260823015950-6b8cbea92e.md +0 -0
  376. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260823022240-d3570f57fb.md +0 -0
  377. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260823050717-9192db37f8.md +0 -0
  378. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260826072120-c6db5dd5b1.md +0 -0
  379. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260826074629-f5119ea78b.md +0 -0
  380. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260826080242-012107ada2.md +0 -0
  381. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260826082256-eff3747d60.md +0 -0
  382. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260827093143-3236113033.md +0 -0
  383. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260827095642-059a7e996b.md +0 -0
  384. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260827102057-e04522a6fc.md +0 -0
  385. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260828102433-81cd3e00a0.md +0 -0
  386. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260830034504-4f7d0f8c58.md +0 -0
  387. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260902100234-6fa7694bad.md +0 -0
  388. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260903031356-434a87fc47.md +0 -0
  389. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260903074136-2ad6569039.md +0 -0
  390. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260903074336-9d34da327e.md +0 -0
  391. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260903105934-7f4db3bb3d.md +0 -0
  392. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260905225746-b931bfdd36.md +0 -0
  393. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260905225755-a1676b4a92.md +0 -0
  394. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260905232251-99aae9139a.md +0 -0
  395. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260909071100-ae89cd100f.md +0 -0
  396. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260909071100-f0c830f573.md +0 -0
  397. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260911140126-2a137f5de7.md +0 -0
  398. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260914134141-1b7d68cc0d.md +0 -0
  399. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260915101454-f5cd8980ed.md +0 -0
  400. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260915101507-81b164b62d.md +0 -0
  401. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons.md +0 -0
  402. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/philosophy.md +0 -0
  403. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/postmortems/PM-20260903-codex-stale-embedded-copies.md +0 -0
  404. {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/postmortems/PM-20260903-opencode-ledger-wipe.md +0 -0
  405. {pactkit-2.26.0 → pactkit-2.27.0}/docs/assets/logo.png +0 -0
  406. {pactkit-2.26.0 → pactkit-2.27.0}/docs/e2e/journey.md +0 -0
  407. {pactkit-2.26.0 → pactkit-2.27.0}/docs/guides/codex-integration-preresearch.md +0 -0
  408. {pactkit-2.26.0 → pactkit-2.27.0}/docs/guides/tool-integration-checklist.md +0 -0
  409. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/archive/archive_202602.md +0 -0
  410. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/archive/archive_202603.md +0 -0
  411. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/archive/archive_202604.md +0 -0
  412. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/archive/archive_202605.md +0 -0
  413. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/archive/archive_202606.md +0 -0
  414. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/archive/archive_202607.md +0 -0
  415. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/archive/archive_202608.md +0 -0
  416. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/context.md +0 -0
  417. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/friction-log.md +0 -0
  418. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/harness-comparison-2026-08-27.md +0 -0
  419. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/prd.md +0 -0
  420. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/HOTFIX-slim-127.yaml +0 -0
  421. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/HOTFIX-slim-131.yaml +0 -0
  422. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/HOTFIX-slim-132.yaml +0 -0
  423. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/HOTFIX-slim-20260828ee6cde3108fb.yaml +0 -0
  424. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/HOTFIX-slim-20260830bbb5bc219d35.yaml +0 -0
  425. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/HOTFIX-slim-20260901469666ef23a8.yaml +0 -0
  426. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/HOTFIX-slim-20260903d464746b1909.yaml +0 -0
  427. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/HOTFIX-slim-202609061713452e9748.yaml +0 -0
  428. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/HOTFIX-slim-2026090643cc9415bb85.yaml +0 -0
  429. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/HOTFIX-slim-202609064f74efbe75ac.yaml +0 -0
  430. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/HOTFIX-slim-2026090656e948c25a14.yaml +0 -0
  431. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/HOTFIX-slim-20260906a1457ace4c11.yaml +0 -0
  432. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/HOTFIX-slim-20260906a71fc0080034.yaml +0 -0
  433. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/HOTFIX-slim-20260906ac9bf3ab9910.yaml +0 -0
  434. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-115.yaml +0 -0
  435. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-118.yaml +0 -0
  436. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-119.yaml +0 -0
  437. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-145.yaml +0 -0
  438. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-147.yaml +0 -0
  439. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-148.yaml +0 -0
  440. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-149.yaml +0 -0
  441. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-2026082381e832771d4e.yaml +0 -0
  442. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-20260823d854b0cf1875.yaml +0 -0
  443. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-20260823de7e85d6042a.yaml +0 -0
  444. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-20260825b1c83a046b4b.yaml +0 -0
  445. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-202608264cf429c75e22.yaml +0 -0
  446. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-2026082672b57c78fd67.yaml +0 -0
  447. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-202608267c3989223b4d.yaml +0 -0
  448. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-202608268fc379dbe6ef.yaml +0 -0
  449. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-20260826ac1f0bfe4148.yaml +0 -0
  450. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-20260826cb37edfdd4da.yaml +0 -0
  451. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-20260826ce35b77ce005.yaml +0 -0
  452. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-20260826f9492ab32c3d.yaml +0 -0
  453. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-20260827024e71df170f.yaml +0 -0
  454. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-2026082727cc4ab535e7.yaml +0 -0
  455. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-2026082730b5954cf538.yaml +0 -0
  456. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-20260827625b870eb7da.yaml +0 -0
  457. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-202608277ec1236a7b99.yaml +0 -0
  458. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-20260827833e7a200f9a.yaml +0 -0
  459. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-20260827855bf3efaec3.yaml +0 -0
  460. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-2026082799fa651655be.yaml +0 -0
  461. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-20260827c67e3add6af5.yaml +0 -0
  462. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-20260827d0ae0dfada51.yaml +0 -0
  463. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-20260827eddbe9669c87.yaml +0 -0
  464. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-20260827fb6291b717eb.yaml +0 -0
  465. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-20260827fc9de5542ad7.yaml +0 -0
  466. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-20260828897396a935ab.yaml +0 -0
  467. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-202608289e83eeb30df4.yaml +0 -0
  468. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-20260828d43fae4edbb6.yaml +0 -0
  469. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-20260830c65491123af1.yaml +0 -0
  470. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-202609025bc9246b6a54.yaml +0 -0
  471. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-2026090301691dea72e8.yaml +0 -0
  472. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-2026090333d6b72f7645.yaml +0 -0
  473. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-20260903699c84c217e0.yaml +0 -0
  474. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-202609037a7d4be200e7.yaml +0 -0
  475. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-20260903a24e1ece0d7f.yaml +0 -0
  476. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-20260903a4ef6915ed62.yaml +0 -0
  477. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-20260903b5ce6be5f7e0.yaml +0 -0
  478. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-20260905efced66ebc9c.yaml +0 -0
  479. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-2026090699752886f924.yaml +0 -0
  480. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-20260909b90ba785f55a.yaml +0 -0
  481. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-20260909e47c92ef09ec.yaml +0 -0
  482. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-202609110568ba869adb.yaml +0 -0
  483. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-202609110d1567cfbc04.yaml +0 -0
  484. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-2026091122a1144a1ac5.yaml +0 -0
  485. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-20260911453c59076a8a.yaml +0 -0
  486. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-20260911511cde75db9b.yaml +0 -0
  487. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-20260911614214d936d9.yaml +0 -0
  488. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-2026091171392be2a603.yaml +0 -0
  489. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-2026091184808465e1fc.yaml +0 -0
  490. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-20260911912c981c9d5e.yaml +0 -0
  491. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-202609119b5e42fd459a.yaml +0 -0
  492. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-20260911ab8de391c5a9.yaml +0 -0
  493. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-20260911b1e7c94d3f28.yaml +0 -0
  494. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-20260911b2bbd79889e0.yaml +0 -0
  495. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-20260911ba339646a2da.yaml +0 -0
  496. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-20260911c4a8e17b6d02.yaml +0 -0
  497. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-20260912ddc450b6fdcf.yaml +0 -0
  498. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-202609144d0b3cb593aa.yaml +0 -0
  499. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-2026091519c812a6db71.yaml +0 -0
  500. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-20260915ac3e5c24fdd3.yaml +0 -0
  501. {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-20260915eaf18678ce23.yaml +0 -0
  502. {pactkit-2.26.0 → pactkit-2.27.0}/docs/reference/phases.md +0 -0
  503. {pactkit-2.26.0 → pactkit-2.27.0}/docs/reference/rules.md +0 -0
  504. {pactkit-2.26.0 → pactkit-2.27.0}/docs/reference/workflow-units.md +0 -0
  505. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-001.md +0 -0
  506. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-002.md +0 -0
  507. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-003.md +0 -0
  508. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-004.md +0 -0
  509. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-005.md +0 -0
  510. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-006.md +0 -0
  511. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-007.md +0 -0
  512. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-008.md +0 -0
  513. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-009.md +0 -0
  514. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-010.md +0 -0
  515. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-011.md +0 -0
  516. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-012.md +0 -0
  517. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-013.md +0 -0
  518. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-014.md +0 -0
  519. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-015.md +0 -0
  520. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-016.md +0 -0
  521. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-017.md +0 -0
  522. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-018.md +0 -0
  523. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-019.md +0 -0
  524. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-020.md +0 -0
  525. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-021.md +0 -0
  526. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-022.md +0 -0
  527. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-023.md +0 -0
  528. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-024.md +0 -0
  529. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-025.md +0 -0
  530. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-026.md +0 -0
  531. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-027.md +0 -0
  532. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-028.md +0 -0
  533. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-029.md +0 -0
  534. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-030.md +0 -0
  535. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-031.md +0 -0
  536. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-032.md +0 -0
  537. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-033.md +0 -0
  538. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-034.md +0 -0
  539. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-035.md +0 -0
  540. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-slim-001.md +0 -0
  541. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-slim-002.md +0 -0
  542. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-slim-003.md +0 -0
  543. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-slim-004.md +0 -0
  544. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-slim-005.md +0 -0
  545. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-slim-006.md +0 -0
  546. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-slim-089.md +0 -0
  547. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-slim-107.md +0 -0
  548. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/HOTFIX-slim-023.md +0 -0
  549. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/HOTFIX-slim-049.md +0 -0
  550. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/HOTFIX-slim-050.md +0 -0
  551. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/HOTFIX-slim-051.md +0 -0
  552. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/HOTFIX-slim-052.md +0 -0
  553. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/HOTFIX-slim-061.md +0 -0
  554. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/HOTFIX-slim-062.md +0 -0
  555. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/HOTFIX-slim-067.md +0 -0
  556. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/HOTFIX-slim-069.md +0 -0
  557. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/HOTFIX-slim-070.md +0 -0
  558. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/HOTFIX-slim-085.md +0 -0
  559. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/HOTFIX-slim-087.md +0 -0
  560. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/HOTFIX-slim-096.md +0 -0
  561. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/HOTFIX-slim-099.md +0 -0
  562. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/HOTFIX-slim-107.md +0 -0
  563. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/HOTFIX-slim-117.md +0 -0
  564. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/HOTFIX-slim-122.md +0 -0
  565. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/HOTFIX-slim-123.md +0 -0
  566. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/HOTFIX-slim-126.md +0 -0
  567. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/HOTFIX-slim-127.md +0 -0
  568. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/HOTFIX-slim-130.md +0 -0
  569. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/HOTFIX-slim-131.md +0 -0
  570. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/HOTFIX-slim-132.md +0 -0
  571. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/HOTFIX-slim-20260828ee6cde3108fb.md +0 -0
  572. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/HOTFIX-slim-20260830bbb5bc219d35.md +0 -0
  573. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/HOTFIX-slim-20260901469666ef23a8.md +0 -0
  574. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/HOTFIX-slim-20260903d464746b1909.md +0 -0
  575. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/HOTFIX-slim-202609061713452e9748.md +0 -0
  576. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/HOTFIX-slim-2026090643cc9415bb85.md +0 -0
  577. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/HOTFIX-slim-202609064f74efbe75ac.md +0 -0
  578. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/HOTFIX-slim-2026090656e948c25a14.md +0 -0
  579. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/HOTFIX-slim-20260906a1457ace4c11.md +0 -0
  580. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/HOTFIX-slim-20260906a71fc0080034.md +0 -0
  581. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/HOTFIX-slim-20260906ac9bf3ab9910.md +0 -0
  582. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-001.md +0 -0
  583. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-002.md +0 -0
  584. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-003.md +0 -0
  585. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-004.md +0 -0
  586. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-005.md +0 -0
  587. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-006.md +0 -0
  588. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-007.md +0 -0
  589. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-008.md +0 -0
  590. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-009.md +0 -0
  591. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-010.md +0 -0
  592. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-011.md +0 -0
  593. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-012.md +0 -0
  594. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-013.md +0 -0
  595. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-014.md +0 -0
  596. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-015.md +0 -0
  597. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-016.md +0 -0
  598. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-017.md +0 -0
  599. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-018.md +0 -0
  600. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-019.md +0 -0
  601. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-020.md +0 -0
  602. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-021.md +0 -0
  603. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-022.md +0 -0
  604. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-023.md +0 -0
  605. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-024.md +0 -0
  606. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-025.md +0 -0
  607. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-026.md +0 -0
  608. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-027.md +0 -0
  609. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-028.md +0 -0
  610. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-029.md +0 -0
  611. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-030.md +0 -0
  612. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-031.md +0 -0
  613. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-032.md +0 -0
  614. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-033.md +0 -0
  615. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-034.md +0 -0
  616. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-035.md +0 -0
  617. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-036.md +0 -0
  618. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-037.md +0 -0
  619. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-038.md +0 -0
  620. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-039.md +0 -0
  621. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-040.md +0 -0
  622. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-041.md +0 -0
  623. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-042.md +0 -0
  624. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-043.md +0 -0
  625. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-044.md +0 -0
  626. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-045.md +0 -0
  627. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-046.md +0 -0
  628. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-047.md +0 -0
  629. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-048.md +0 -0
  630. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-049.md +0 -0
  631. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-050.md +0 -0
  632. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-051.md +0 -0
  633. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-052.md +0 -0
  634. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-053.md +0 -0
  635. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-054.md +0 -0
  636. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-055.md +0 -0
  637. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-056.md +0 -0
  638. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-057.md +0 -0
  639. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-058.md +0 -0
  640. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-059.md +0 -0
  641. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-060.md +0 -0
  642. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-061.md +0 -0
  643. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-062.md +0 -0
  644. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-063.md +0 -0
  645. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-064.md +0 -0
  646. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-065.md +0 -0
  647. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-069.md +0 -0
  648. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-070.md +0 -0
  649. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-071.md +0 -0
  650. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-072.md +0 -0
  651. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-073.md +0 -0
  652. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-001.md +0 -0
  653. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-005.md +0 -0
  654. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-006.md +0 -0
  655. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-007.md +0 -0
  656. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-009.md +0 -0
  657. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-010.md +0 -0
  658. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-011.md +0 -0
  659. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-012.md +0 -0
  660. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-013.md +0 -0
  661. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-014.md +0 -0
  662. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-015.md +0 -0
  663. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-016.md +0 -0
  664. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-017.md +0 -0
  665. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-018.md +0 -0
  666. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-019.md +0 -0
  667. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-020.md +0 -0
  668. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-021.md +0 -0
  669. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-022.md +0 -0
  670. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-023.md +0 -0
  671. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-024.md +0 -0
  672. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-028.md +0 -0
  673. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-029.md +0 -0
  674. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-030.md +0 -0
  675. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-031.md +0 -0
  676. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-032.md +0 -0
  677. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-033.md +0 -0
  678. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-034.md +0 -0
  679. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-035.md +0 -0
  680. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-036.md +0 -0
  681. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-037.md +0 -0
  682. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-038.md +0 -0
  683. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-039.md +0 -0
  684. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-040.md +0 -0
  685. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-041.md +0 -0
  686. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-042.md +0 -0
  687. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-043.md +0 -0
  688. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-044.md +0 -0
  689. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-045.md +0 -0
  690. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-046.md +0 -0
  691. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-047.md +0 -0
  692. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-048.md +0 -0
  693. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-049.md +0 -0
  694. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-050.md +0 -0
  695. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-051.md +0 -0
  696. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-052.md +0 -0
  697. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-053.md +0 -0
  698. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-054.md +0 -0
  699. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-055.md +0 -0
  700. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-056.md +0 -0
  701. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-057.md +0 -0
  702. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-058.md +0 -0
  703. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-059.md +0 -0
  704. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-060.md +0 -0
  705. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-063.md +0 -0
  706. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-066.md +0 -0
  707. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-067.md +0 -0
  708. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-068.md +0 -0
  709. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-069.md +0 -0
  710. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-070.md +0 -0
  711. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-071.md +0 -0
  712. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-072.md +0 -0
  713. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-073.md +0 -0
  714. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-074.md +0 -0
  715. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-075.md +0 -0
  716. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-076.md +0 -0
  717. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-077.md +0 -0
  718. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-078.md +0 -0
  719. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-079.md +0 -0
  720. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-080.md +0 -0
  721. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-081.md +0 -0
  722. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-082.md +0 -0
  723. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-083.md +0 -0
  724. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-084.md +0 -0
  725. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-086.md +0 -0
  726. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-088.md +0 -0
  727. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-089.md +0 -0
  728. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-090.md +0 -0
  729. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-091.md +0 -0
  730. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-092.md +0 -0
  731. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-093.md +0 -0
  732. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-094.md +0 -0
  733. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-095.md +0 -0
  734. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-097.md +0 -0
  735. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-098.md +0 -0
  736. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-099.md +0 -0
  737. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-100.md +0 -0
  738. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-101.md +0 -0
  739. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-102.md +0 -0
  740. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-103.md +0 -0
  741. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-104.md +0 -0
  742. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-105.md +0 -0
  743. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-106.md +0 -0
  744. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-107.md +0 -0
  745. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-108.md +0 -0
  746. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-109.md +0 -0
  747. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-110.md +0 -0
  748. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-111.md +0 -0
  749. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-112.md +0 -0
  750. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-113.md +0 -0
  751. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-114.md +0 -0
  752. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-115.md +0 -0
  753. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-116.md +0 -0
  754. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-118.md +0 -0
  755. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-119.md +0 -0
  756. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-120.md +0 -0
  757. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-121.md +0 -0
  758. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-124.md +0 -0
  759. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-125.md +0 -0
  760. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-126.md +0 -0
  761. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-127.md +0 -0
  762. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-128.md +0 -0
  763. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-129.md +0 -0
  764. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-132.md +0 -0
  765. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-133.md +0 -0
  766. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-134.md +0 -0
  767. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-135.md +0 -0
  768. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-136.md +0 -0
  769. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-137.md +0 -0
  770. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-138.md +0 -0
  771. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-139.md +0 -0
  772. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-140.md +0 -0
  773. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-141.md +0 -0
  774. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-142.md +0 -0
  775. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-143.md +0 -0
  776. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-144.md +0 -0
  777. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-145.md +0 -0
  778. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-146.md +0 -0
  779. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-147.md +0 -0
  780. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-148.md +0 -0
  781. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-149.md +0 -0
  782. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-2026082381e832771d4e.md +0 -0
  783. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-20260823d854b0cf1875.md +0 -0
  784. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-20260823de7e85d6042a.md +0 -0
  785. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-2026082466c8670d9655.md +0 -0
  786. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-20260824dd23a0ed3b4c.md +0 -0
  787. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-20260825b1c83a046b4b.md +0 -0
  788. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-202608264cf429c75e22.md +0 -0
  789. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-2026082672b57c78fd67.md +0 -0
  790. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-202608267c3989223b4d.md +0 -0
  791. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-202608268fc379dbe6ef.md +0 -0
  792. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-20260826ac1f0bfe4148.md +0 -0
  793. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-20260826cb37edfdd4da.md +0 -0
  794. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-20260826ce35b77ce005.md +0 -0
  795. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-20260826f9492ab32c3d.md +0 -0
  796. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-20260827024e71df170f.md +0 -0
  797. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-2026082727cc4ab535e7.md +0 -0
  798. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-2026082730b5954cf538.md +0 -0
  799. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-20260827625b870eb7da.md +0 -0
  800. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-20260827833e7a200f9a.md +0 -0
  801. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-20260827855bf3efaec3.md +0 -0
  802. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-20260827eddbe9669c87.md +0 -0
  803. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-20260827fb6291b717eb.md +0 -0
  804. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-20260827fc9de5542ad7.md +0 -0
  805. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-20260828897396a935ab.md +0 -0
  806. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-202608289e83eeb30df4.md +0 -0
  807. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-20260828d43fae4edbb6.md +0 -0
  808. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-20260830c65491123af1.md +0 -0
  809. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-202609025bc9246b6a54.md +0 -0
  810. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-2026090301691dea72e8.md +0 -0
  811. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-2026090333d6b72f7645.md +0 -0
  812. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-20260903699c84c217e0.md +0 -0
  813. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-202609037a7d4be200e7.md +0 -0
  814. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-20260903a24e1ece0d7f.md +0 -0
  815. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-20260903a4ef6915ed62.md +0 -0
  816. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-20260903b5ce6be5f7e0.md +0 -0
  817. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-20260905efced66ebc9c.md +0 -0
  818. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-2026090699752886f924.md +0 -0
  819. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-20260909b90ba785f55a.md +0 -0
  820. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-20260909e47c92ef09ec.md +0 -0
  821. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-202609110568ba869adb.md +0 -0
  822. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-202609110d1567cfbc04.md +0 -0
  823. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-2026091122a1144a1ac5.md +0 -0
  824. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-20260911453c59076a8a.md +0 -0
  825. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-20260911511cde75db9b.md +0 -0
  826. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-20260911614214d936d9.md +0 -0
  827. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-2026091171392be2a603.md +0 -0
  828. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-2026091184808465e1fc.md +0 -0
  829. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-20260911912c981c9d5e.md +0 -0
  830. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-202609119b5e42fd459a.md +0 -0
  831. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-20260911ab8de391c5a9.md +0 -0
  832. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-20260911b1e7c94d3f28.md +0 -0
  833. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-20260911b2bbd79889e0.md +0 -0
  834. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-202609144d0b3cb593aa.md +0 -0
  835. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-20260915ac3e5c24fdd3.md +0 -0
  836. {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-20260915eaf18678ce23.md +0 -0
  837. {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/BUG-001_case.md +0 -0
  838. {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/BUG-002_case.md +0 -0
  839. {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-028_case.md +0 -0
  840. {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-029_case.md +0 -0
  841. {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-031_case.md +0 -0
  842. {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-032_case.md +0 -0
  843. {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-033_case.md +0 -0
  844. {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-034_case.md +0 -0
  845. {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-135_case.md +0 -0
  846. {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-136_case.md +0 -0
  847. {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-137_case.md +0 -0
  848. {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-138_case.md +0 -0
  849. {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-139_case.md +0 -0
  850. {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-140_case.md +0 -0
  851. {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-141_case.md +0 -0
  852. {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-142_case.md +0 -0
  853. {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-143_case.md +0 -0
  854. {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-144_case.md +0 -0
  855. {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-146_case.md +0 -0
  856. {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-147_case.md +0 -0
  857. {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-148_case.md +0 -0
  858. {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-149_case.md +0 -0
  859. {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-2026082381e832771d4e_case.md +0 -0
  860. {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-20260823d854b0cf1875_case.md +0 -0
  861. {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-20260823de7e85d6042a_case.md +0 -0
  862. {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-20260825b1c83a046b4b_case.md +0 -0
  863. {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-202608264cf429c75e22_case.md +0 -0
  864. {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-2026082672b57c78fd67_case.md +0 -0
  865. {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-202608267c3989223b4d_case.md +0 -0
  866. {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-202608268fc379dbe6ef_case.md +0 -0
  867. {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-20260826ac1f0bfe4148_case.md +0 -0
  868. {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-20260826cb37edfdd4da_case.md +0 -0
  869. {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-20260826ce35b77ce005_case.md +0 -0
  870. {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-20260826f9492ab32c3d_case.md +0 -0
  871. {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-20260827024e71df170f_case.md +0 -0
  872. {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-20260827eddbe9669c87_case.md +0 -0
  873. {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-20260827fc9de5542ad7_case.md +0 -0
  874. {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-20260828897396a935ab_case.md +0 -0
  875. {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-20260830c65491123af1_case.md +0 -0
  876. {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-202609025bc9246b6a54_case.md +0 -0
  877. {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-2026090301691dea72e8_case.md +0 -0
  878. {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-2026090333d6b72f7645_case.md +0 -0
  879. {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-20260903699c84c217e0_case.md +0 -0
  880. {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-202609037a7d4be200e7_case.md +0 -0
  881. {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-20260903a24e1ece0d7f_case.md +0 -0
  882. {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-20260903a4ef6915ed62_case.md +0 -0
  883. {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-20260903b5ce6be5f7e0_case.md +0 -0
  884. {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-20260905efced66ebc9c_case.md +0 -0
  885. {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-20260909b90ba785f55a_case.md +0 -0
  886. {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-20260909e47c92ef09ec_case.md +0 -0
  887. {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-20260911b2bbd79889e0_case.md +0 -0
  888. {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-202609144d0b3cb593aa_case.md +0 -0
  889. {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-20260915ac3e5c24fdd3_case.md +0 -0
  890. {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-20260915eaf18678ce23_case.md +0 -0
  891. {pactkit-2.26.0 → pactkit-2.27.0}/opencode.json +0 -0
  892. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/__main__.py +0 -0
  893. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/accept_candidates.py +0 -0
  894. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/audit.py +0 -0
  895. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/backfill.py +0 -0
  896. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/baseline.py +0 -0
  897. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/context_gen.py +0 -0
  898. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/coverage_gate.py +0 -0
  899. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/delivery_evidence.py +0 -0
  900. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/deploy_manifest.py +0 -0
  901. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/deployment_transaction.py +0 -0
  902. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/deps.py +0 -0
  903. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/doctor.py +0 -0
  904. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/done_verify.py +0 -0
  905. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/garden.py +0 -0
  906. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/gate_matrix.py +0 -0
  907. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/generators/__init__.py +0 -0
  908. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/generators/claude_md.py +0 -0
  909. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/generators/command_ownership.py +0 -0
  910. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/generators/deploy_base.py +0 -0
  911. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/governance.py +0 -0
  912. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/graph_query.py +0 -0
  913. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/guards.py +0 -0
  914. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/host_continuation.py +0 -0
  915. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/id_generator.py +0 -0
  916. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/invariants.py +0 -0
  917. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/issue_sync.py +0 -0
  918. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/lazy_visualize.py +0 -0
  919. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/legacy/__init__.py +0 -0
  920. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/legacy/host_continuation.py +0 -0
  921. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/legacy/usage.py +0 -0
  922. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/legacy/workflow_engine.py +0 -0
  923. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/lessons.py +0 -0
  924. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/lint_runner.py +0 -0
  925. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/observe.py +0 -0
  926. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/orchestration_cost.py +0 -0
  927. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/plugin_manifest.py +0 -0
  928. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/portable_methods.py +0 -0
  929. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/profiles.py +0 -0
  930. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/project_root.py +0 -0
  931. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/prompts/__init__.py +0 -0
  932. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/prompts/agents.py +0 -0
  933. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/prompts/guides.py +0 -0
  934. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/prompts/references.py +0 -0
  935. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/prompts/skills.py +0 -0
  936. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/prompts/workflows.py +0 -0
  937. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/protocols.py +0 -0
  938. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/reference.py +0 -0
  939. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/regression.py +0 -0
  940. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/risk_profile.py +0 -0
  941. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/rule_diagnostics.py +0 -0
  942. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/rule_events.py +0 -0
  943. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/rules_eval.py +0 -0
  944. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/run_events.py +0 -0
  945. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/run_stats.py +0 -0
  946. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/schemas.py +0 -0
  947. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/scripts.py +0 -0
  948. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/sec_scope.py +0 -0
  949. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/session_gate.py +0 -0
  950. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/skills/__init__.py +0 -0
  951. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/skills/analyzers/__init__.py +0 -0
  952. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/skills/analyzers/go_analyzer.py +0 -0
  953. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/skills/analyzers/java_analyzer.py +0 -0
  954. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/skills/analyzers/python_analyzer.py +0 -0
  955. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/skills/analyzers/ts_analyzer.py +0 -0
  956. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/skills/board.py +0 -0
  957. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/skills/interface_summary.py +0 -0
  958. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/skills/report.py +0 -0
  959. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/skills/scaffold.py +0 -0
  960. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/skills/spec_linter.py +0 -0
  961. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/skills/visualize.py +0 -0
  962. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/spec_graph.py +0 -0
  963. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/spec_preflight.py +0 -0
  964. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/spec_status.py +0 -0
  965. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/test_mapper.py +0 -0
  966. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/uninstall.py +0 -0
  967. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/validators.py +0 -0
  968. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/workflow_engine.py +0 -0
  969. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/workflow_registry.py +0 -0
  970. {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/workflow_validators.py +0 -0
  971. {pactkit-2.26.0 → pactkit-2.27.0}/tests/conftest.py +0 -0
  972. {pactkit-2.26.0 → pactkit-2.27.0}/tests/e2e/__init__.py +0 -0
  973. {pactkit-2.26.0 → pactkit-2.27.0}/tests/e2e/acceptance/__init__.py +0 -0
  974. {pactkit-2.26.0 → pactkit-2.27.0}/tests/e2e/acceptance/test_verification_acceptance.py +0 -0
  975. {pactkit-2.26.0 → pactkit-2.27.0}/tests/e2e/cli/__init__.py +0 -0
  976. {pactkit-2.26.0 → pactkit-2.27.0}/tests/e2e/cli/test_cli_e2e.py +0 -0
  977. {pactkit-2.26.0 → pactkit-2.27.0}/tests/e2e/cli/test_story_slim146_cli.py +0 -0
  978. {pactkit-2.26.0 → pactkit-2.27.0}/tests/e2e/cli/test_story_slim147_workflow_cli.py +0 -0
  979. {pactkit-2.26.0 → pactkit-2.27.0}/tests/e2e/cli/test_story_slim148_governance_cli.py +0 -0
  980. {pactkit-2.26.0 → pactkit-2.27.0}/tests/e2e/cli/test_story_slim149_query_cli.py +0 -0
  981. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/agent_parser/agents_dir/researcher.yaml +0 -0
  982. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/agent_parser/agents_dir/writer.yaml +0 -0
  983. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/agent_parser/langgraph_app.py +0 -0
  984. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/agent_parser/mcp_settings.json +0 -0
  985. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/api_call_parser/axios_style.tsx +0 -0
  986. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/api_call_parser/dynamic.tsx +0 -0
  987. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/api_call_parser/page.tsx +0 -0
  988. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/accept-candidates.txt +0 -0
  989. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/audit.txt +0 -0
  990. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/backfill-release.txt +0 -0
  991. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/board.txt +0 -0
  992. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/clean.txt +0 -0
  993. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/commit-gate.txt +0 -0
  994. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/context.txt +0 -0
  995. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/continuation.txt +0 -0
  996. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/coverage-gate.txt +0 -0
  997. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/deps.txt +0 -0
  998. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/doctor.txt +0 -0
  999. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/done-verify.txt +0 -0
  1000. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/garden.txt +0 -0
  1001. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/gate.txt +0 -0
  1002. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/generate-id.txt +0 -0
  1003. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/governance.txt +0 -0
  1004. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/guard.txt +0 -0
  1005. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/guide.txt +0 -0
  1006. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/init.txt +0 -0
  1007. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/interface-summary.txt +0 -0
  1008. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/invariants-refresh.txt +0 -0
  1009. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/issue-sync.txt +0 -0
  1010. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/lesson-append.txt +0 -0
  1011. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/lint-adr.txt +0 -0
  1012. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/lint-context.txt +0 -0
  1013. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/lint-lessons.txt +0 -0
  1014. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/lint-testcase.txt +0 -0
  1015. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/lint.txt +0 -0
  1016. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/mcp.txt +0 -0
  1017. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/observe.txt +0 -0
  1018. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/query.txt +0 -0
  1019. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/regression.txt +0 -0
  1020. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/report.txt +0 -0
  1021. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/risk.txt +0 -0
  1022. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/rules-eval.txt +0 -0
  1023. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/schema.txt +0 -0
  1024. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/sec-scope.txt +0 -0
  1025. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/spec-graph.txt +0 -0
  1026. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/spec-lint.txt +0 -0
  1027. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/spec-preflight.txt +0 -0
  1028. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/spec-status.txt +0 -0
  1029. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/stats.txt +0 -0
  1030. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/sync.txt +0 -0
  1031. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/test-map.txt +0 -0
  1032. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/uninstall.txt +0 -0
  1033. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/upgrade.txt +0 -0
  1034. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/version.txt +0 -0
  1035. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/visualize.txt +0 -0
  1036. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/work-unit.txt +0 -0
  1037. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/workflow.txt +0 -0
  1038. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/config_golden/copy_claude.json +0 -0
  1039. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/config_golden/copy_claude.yaml +0 -0
  1040. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/config_golden/copy_codex.json +0 -0
  1041. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/config_golden/copy_codex.yaml +0 -0
  1042. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/config_golden/copy_github.json +0 -0
  1043. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/config_golden/copy_github.yaml +0 -0
  1044. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/config_golden/empty.json +0 -0
  1045. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/config_golden/empty.yaml +0 -0
  1046. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/config_golden/full_legacy.json +0 -0
  1047. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/config_golden/full_legacy.yaml +0 -0
  1048. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/config_golden/minimal.json +0 -0
  1049. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/config_golden/minimal.yaml +0 -0
  1050. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/config_golden/unknown_keys.json +0 -0
  1051. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/config_golden/unknown_keys.yaml +0 -0
  1052. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/rules_corpus/STORY-c-001.md +0 -0
  1053. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/rules_corpus/STORY-c-002.md +0 -0
  1054. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/rules_corpus/STORY-c-003.md +0 -0
  1055. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/rules_corpus/STORY-c-004.md +0 -0
  1056. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/rules_corpus/STORY-c-005.md +0 -0
  1057. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/rules_corpus/STORY-c-006.md +0 -0
  1058. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/rules_corpus/STORY-c-007.md +0 -0
  1059. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/rules_corpus/STORY-c-008.md +0 -0
  1060. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/rules_corpus/STORY-c-009.md +0 -0
  1061. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/rules_corpus/STORY-c-010.md +0 -0
  1062. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/rules_corpus/STORY-c-011.md +0 -0
  1063. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/rules_corpus/STORY-c-012.md +0 -0
  1064. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/rules_corpus/STORY-c-013.md +0 -0
  1065. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/rules_corpus/STORY-c-014.md +0 -0
  1066. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/rules_corpus/STORY-c-015.md +0 -0
  1067. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/rules_corpus/STORY-c-016.md +0 -0
  1068. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/rules_corpus/STORY-c-017.md +0 -0
  1069. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/rules_corpus/STORY-c-018.md +0 -0
  1070. {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/rules_corpus/manifest.json +0 -0
  1071. {pactkit-2.26.0 → pactkit-2.27.0}/tests/integration/__init__.py +0 -0
  1072. {pactkit-2.26.0 → pactkit-2.27.0}/tests/integration/test_deploy_classic.py +0 -0
  1073. {pactkit-2.26.0 → pactkit-2.27.0}/tests/scripts/refresh_host_prompt_snapshots.py +0 -0
  1074. {pactkit-2.26.0 → pactkit-2.27.0}/tests/scripts/refresh_reference_docs.py +0 -0
  1075. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_ac4_ownership_evidence.py +0 -0
  1076. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_accept_candidates.py +0 -0
  1077. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_agent_features.py +0 -0
  1078. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_agent_frontmatter.py +0 -0
  1079. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_agents_enrichment.py +0 -0
  1080. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_audit.py +0 -0
  1081. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_audit_suggested_tasks.py +0 -0
  1082. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_b1_effective_config.py +0 -0
  1083. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_b2_display_accuracy.py +0 -0
  1084. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_baseline_failure_surface.py +0 -0
  1085. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_blast_radius.py +0 -0
  1086. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_board_bug027.py +0 -0
  1087. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_board_sections.py +0 -0
  1088. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_bug001_skill_path.py +0 -0
  1089. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_bug002_plugin_paths.py +0 -0
  1090. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_bug003_multi_import.py +0 -0
  1091. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_bug004_dead_set.py +0 -0
  1092. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_bug005_archive_taskless.py +0 -0
  1093. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_bug006_scan_excludes.py +0 -0
  1094. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_bug007_stale_trace_refs.py +0 -0
  1095. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_bug008_stale_command_refs.py +0 -0
  1096. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_bug009_project_config_backfill.py +0 -0
  1097. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_bug010_rewrite_yaml.py +0 -0
  1098. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_bug011_stale_refs.py +0 -0
  1099. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_bug012_call_graph_filter.py +0 -0
  1100. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_bug013_config_single_source.py +0 -0
  1101. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_bug014_version_hygiene.py +0 -0
  1102. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_bug017_project_init_playbook.py +0 -0
  1103. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_bug018_issue_tracker_verification.py +0 -0
  1104. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_bug019_venv_deployment.py +0 -0
  1105. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_bug020_claude_md_backup.py +0 -0
  1106. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_bug025_release_delegation.py +0 -0
  1107. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_bug026_version_sync.py +0 -0
  1108. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_bug028_ghost_refs.py +0 -0
  1109. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_bug029_stack_detection_fallback.py +0 -0
  1110. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_bug030_spec_lint_cli.py +0 -0
  1111. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_bug031_docstring_accuracy.py +0 -0
  1112. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_bug034_plan_metadata_template.py +0 -0
  1113. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_bug_021.py +0 -0
  1114. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_bug_022.py +0 -0
  1115. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_bug_023.py +0 -0
  1116. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_bug_024.py +0 -0
  1117. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_bug_slim001_env_detection.py +0 -0
  1118. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_bug_slim002_instruction_collision.py +0 -0
  1119. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_bug_slim003.py +0 -0
  1120. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_bug_slim004.py +0 -0
  1121. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_bug_slim005.py +0 -0
  1122. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_bug_slim006.py +0 -0
  1123. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_bug_slim089_global_claude_md.py +0 -0
  1124. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_c1_body_snapshots.py +0 -0
  1125. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_c1_legacy_and_cost.py +0 -0
  1126. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_candidate_cleanup.py +0 -0
  1127. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_check_command.py +0 -0
  1128. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_check_extensions_072_073.py +0 -0
  1129. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_check_playbook_072_073.py +0 -0
  1130. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_cli_help_surface.py +0 -0
  1131. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_codex_hook_channel.py +0 -0
  1132. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_codex_hook_migration.py +0 -0
  1133. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_codex_plugin_manifest.py +0 -0
  1134. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_command_frontmatter.py +0 -0
  1135. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_command_ownership_v2.py +0 -0
  1136. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_command_visualize_modes.py +0 -0
  1137. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_complexity.py +0 -0
  1138. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_config.py +0 -0
  1139. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_config_auto_merge.py +0 -0
  1140. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_config_sync_precedence.py +0 -0
  1141. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_constitution_sharpening.py +0 -0
  1142. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_context_gen.py +0 -0
  1143. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_continuation_hardening.py +0 -0
  1144. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_contract_conflict_fixes.py +0 -0
  1145. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_create_skill.py +0 -0
  1146. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_cross_flow_matrix.py +0 -0
  1147. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_decision_traceability.py +0 -0
  1148. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_deploy_base.py +0 -0
  1149. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_deploy_ledger_lifecycle.py +0 -0
  1150. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_deploy_ownership_safety.py +0 -0
  1151. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_deployer_cleanup.py +0 -0
  1152. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_deployer_plugin.py +0 -0
  1153. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_deployment_transaction.py +0 -0
  1154. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_deps.py +0 -0
  1155. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_design_command.py +0 -0
  1156. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_done_gates.py +0 -0
  1157. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_done_verify.py +0 -0
  1158. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_draw_prompt.py +0 -0
  1159. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_draw_references.py +0 -0
  1160. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_drawio_mcp.py +0 -0
  1161. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_enforcement.py +0 -0
  1162. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_engine_robustness.py +0 -0
  1163. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_enterprise_flags.py +0 -0
  1164. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_garden.py +0 -0
  1165. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_gate_junit_counts.py +0 -0
  1166. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_gate_matrix.py +0 -0
  1167. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_home_path_fix.py +0 -0
  1168. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_hook_expansion.py +0 -0
  1169. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_host_prompt_snapshots.py +0 -0
  1170. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_hotfix_20260903_design_research.py +0 -0
  1171. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_hotfix_20260903_visualize_sync.py +0 -0
  1172. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_hotfix_20260914_guide_wording.py +0 -0
  1173. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_hotfix_command.py +0 -0
  1174. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_hotfix_legacy_constitution.py +0 -0
  1175. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_init_global_disclosure.py +0 -0
  1176. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_init_guard.py +0 -0
  1177. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_init_playbook_074.py +0 -0
  1178. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_interface_summary.py +0 -0
  1179. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_lang_profiles.py +0 -0
  1180. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_layer_violations.py +0 -0
  1181. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_legacy_engine_freeze.py +0 -0
  1182. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_lessons_rotation_075.py +0 -0
  1183. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_list_stories.py +0 -0
  1184. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_marketplace_stale_claude_md.py +0 -0
  1185. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_mcp_integration.py +0 -0
  1186. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_mcp_retired.py +0 -0
  1187. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_model_config.py +0 -0
  1188. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_modular_constitution.py +0 -0
  1189. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_monorepo_detect.py +0 -0
  1190. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_multi_prefix.py +0 -0
  1191. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_observe.py +0 -0
  1192. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_orchestration_cost.py +0 -0
  1193. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_org_baseline.py +0 -0
  1194. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_pdca_semantics_v2.py +0 -0
  1195. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_pdca_slim.py +0 -0
  1196. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_profiles.py +0 -0
  1197. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_project_root.py +0 -0
  1198. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_project_visibility.py +0 -0
  1199. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_prompt_cli_contract.py +0 -0
  1200. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_prompt_quality_075.py +0 -0
  1201. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_prompt_structural_invariants.py +0 -0
  1202. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_prompts_package.py +0 -0
  1203. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_reference_drift.py +0 -0
  1204. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_release.py +0 -0
  1205. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_release_field.py +0 -0
  1206. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_render_prompt.py +0 -0
  1207. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_report_parser.py +0 -0
  1208. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_report_unified.py +0 -0
  1209. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_resolve_scope.py +0 -0
  1210. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_review_command.py +0 -0
  1211. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_rule_diagnostics.py +0 -0
  1212. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_rule_registry_architecture.py +0 -0
  1213. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_rules_enrichment.py +0 -0
  1214. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_rules_eval.py +0 -0
  1215. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_run_events.py +0 -0
  1216. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_run_stats.py +0 -0
  1217. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_scaffold.py +0 -0
  1218. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_scaffold_developer_prefix.py +0 -0
  1219. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_schemas.py +0 -0
  1220. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_script_extraction.py +0 -0
  1221. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_security_dimension_rules.py +0 -0
  1222. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_selective_deploy.py +0 -0
  1223. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_session_context.py +0 -0
  1224. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_skill_structure.py +0 -0
  1225. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_skills_enrichment.py +0 -0
  1226. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_slim_deps_088.py +0 -0
  1227. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_smart_regression.py +0 -0
  1228. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_solution_design_rule.py +0 -0
  1229. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_spec_guard_repeat.py +0 -0
  1230. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_spec_preflight.py +0 -0
  1231. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_sprint_command.py +0 -0
  1232. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_stack_references.py +0 -0
  1233. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_status_command.py +0 -0
  1234. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_statusline.py +0 -0
  1235. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story014_release.py +0 -0
  1236. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story015_ci_lint_gate.py +0 -0
  1237. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story016_claude_md.py +0 -0
  1238. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story017_init_claude_md.py +0 -0
  1239. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story018_arch_staleness.py +0 -0
  1240. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story019_bailout.py +0 -0
  1241. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story020_horizon.py +0 -0
  1242. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story021_rfc.py +0 -0
  1243. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story022_decision_tree.py +0 -0
  1244. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story023_test_quality.py +0 -0
  1245. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story024_native_agent.py +0 -0
  1246. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story025_ci_pipeline.py +0 -0
  1247. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story026_issue_tracker.py +0 -0
  1248. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story028_rule_scoping.py +0 -0
  1249. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story029_doctor.py +0 -0
  1250. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story030_lint.py +0 -0
  1251. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story031_git_init_guard.py +0 -0
  1252. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story032_greenfield_redirect.py +0 -0
  1253. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story033_config_backfill.py +0 -0
  1254. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story034_plan_config_refresh.py +0 -0
  1255. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story035_readme_docs.py +0 -0
  1256. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story037_regression_fix.py +0 -0
  1257. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story038_call_graph_update.py +0 -0
  1258. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story039_venv_config.py +0 -0
  1259. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story040_layered_claude_md.py +0 -0
  1260. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story042_spec_linter.py +0 -0
  1261. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story043_active_clarify.py +0 -0
  1262. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story044_consistency_check.py +0 -0
  1263. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story045_auto_pr.py +0 -0
  1264. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story047_enterprise_flags.py +0 -0
  1265. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story048_worktree_isolation.py +0 -0
  1266. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story049_community_standards.py +0 -0
  1267. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story050_doc_only_shortcut.py +0 -0
  1268. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story051_workflow_streamlining.py +0 -0
  1269. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story052_conditional_github_release.py +0 -0
  1270. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story053_impact_regression.py +0 -0
  1271. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story055_commands.py +0 -0
  1272. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story055_config.py +0 -0
  1273. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story055_spec_linter.py +0 -0
  1274. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story056_commands.py +0 -0
  1275. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story056_config.py +0 -0
  1276. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story057_implicit_cleanup.py +0 -0
  1277. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story058_opencode_extraction.py +0 -0
  1278. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story058_routing_fix.py +0 -0
  1279. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story060_init_hang.py +0 -0
  1280. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story061_remove_thinking.py +0 -0
  1281. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story063_prompt_slimming.py +0 -0
  1282. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story064_venv_local_md.py +0 -0
  1283. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story065_sprint_model.py +0 -0
  1284. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story072_developer_prefix.py +0 -0
  1285. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story106_lateral_scan.py +0 -0
  1286. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story133_debug_skill.py +0 -0
  1287. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_2026090301_rule_compliance.py +0 -0
  1288. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_2026090333_sdlc_t1.py +0 -0
  1289. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_202609037a_practice_batch2.py +0 -0
  1290. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_20260903b5_practice_guides.py +0 -0
  1291. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_202609144d0b3cb593aa_context_reuse.py +0 -0
  1292. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_pdca_host_capsules.py +0 -0
  1293. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_pdca_semantics_v2.py +0 -0
  1294. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim009_lazy_rules.py +0 -0
  1295. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim010_dry_refactor.py +0 -0
  1296. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim011_command_rules.py +0 -0
  1297. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim012_ci.py +0 -0
  1298. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim014_clean.py +0 -0
  1299. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim014_context.py +0 -0
  1300. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim014_guard.py +0 -0
  1301. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim014_lazy_viz.py +0 -0
  1302. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim014_next_id.py +0 -0
  1303. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim014_regression.py +0 -0
  1304. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim014_sec_scope.py +0 -0
  1305. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim014_validators.py +0 -0
  1306. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim015_doctor.py +0 -0
  1307. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim016_testmap_lint.py +0 -0
  1308. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim017.py +0 -0
  1309. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim018.py +0 -0
  1310. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim019_plan_subphases.py +0 -0
  1311. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim020_explore_stall_fix.py +0 -0
  1312. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim021.py +0 -0
  1313. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim022.py +0 -0
  1314. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim023.py +0 -0
  1315. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim024.py +0 -0
  1316. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim025.py +0 -0
  1317. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim026.py +0 -0
  1318. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim027.py +0 -0
  1319. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim028.py +0 -0
  1320. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim029.py +0 -0
  1321. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim030.py +0 -0
  1322. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim031.py +0 -0
  1323. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim032.py +0 -0
  1324. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim033.py +0 -0
  1325. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim034.py +0 -0
  1326. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim035.py +0 -0
  1327. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim036.py +0 -0
  1328. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim037.py +0 -0
  1329. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim038.py +0 -0
  1330. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim039.py +0 -0
  1331. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim040.py +0 -0
  1332. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim041.py +0 -0
  1333. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim042.py +0 -0
  1334. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim043.py +0 -0
  1335. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim044.py +0 -0
  1336. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim045.py +0 -0
  1337. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim046.py +0 -0
  1338. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim047.py +0 -0
  1339. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim048.py +0 -0
  1340. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim049.py +0 -0
  1341. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim051.py +0 -0
  1342. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim052.py +0 -0
  1343. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim053.py +0 -0
  1344. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim054.py +0 -0
  1345. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim055.py +0 -0
  1346. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim056.py +0 -0
  1347. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim060_codex_profile.py +0 -0
  1348. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim063.py +0 -0
  1349. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim065.py +0 -0
  1350. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim076_multistack.py +0 -0
  1351. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim077_monorepo_stack.py +0 -0
  1352. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim078.py +0 -0
  1353. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim079.py +0 -0
  1354. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim080.py +0 -0
  1355. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim081.py +0 -0
  1356. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim082.py +0 -0
  1357. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim083.py +0 -0
  1358. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim084.py +0 -0
  1359. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim095.py +0 -0
  1360. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim098_pdca_nudge.py +0 -0
  1361. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim099_act_context_ref.py +0 -0
  1362. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim102_version_marker.py +0 -0
  1363. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim104_should_semantics.py +0 -0
  1364. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim107.py +0 -0
  1365. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim109_journey_spec.py +0 -0
  1366. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim111_playwright_assertion.py +0 -0
  1367. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim112_rules_split.py +0 -0
  1368. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim114_journey_sync.py +0 -0
  1369. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim119.py +0 -0
  1370. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim120.py +0 -0
  1371. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim121.py +0 -0
  1372. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim125.py +0 -0
  1373. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim126.py +0 -0
  1374. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim127_managed_block.py +0 -0
  1375. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim128_engineering_concerns.py +0 -0
  1376. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim132.py +0 -0
  1377. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim134_no_model_in_frontmatter.py +0 -0
  1378. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim135_config_schema.py +0 -0
  1379. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim139_skill_manifest.py +0 -0
  1380. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim141_manifest_hash.py +0 -0
  1381. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim142_all_target_isolation.py +0 -0
  1382. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim143_spec_graph.py +0 -0
  1383. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim144_wave_mode.py +0 -0
  1384. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim145.py +0 -0
  1385. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim146.py +0 -0
  1386. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim147.py +0 -0
  1387. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim148.py +0 -0
  1388. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim149.py +0 -0
  1389. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim150.py +0 -0
  1390. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim_stop_hook.py +0 -0
  1391. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim_work_units.py +0 -0
  1392. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_tools.py +0 -0
  1393. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_topology_parsers_066.py +0 -0
  1394. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_uninstall.py +0 -0
  1395. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_uninstall_cli_defaults.py +0 -0
  1396. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_update_task.py +0 -0
  1397. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_verification_decision.py +0 -0
  1398. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_visualize_call_nested.py +0 -0
  1399. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_visualize_chain_fix.py +0 -0
  1400. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_visualize_modes.py +0 -0
  1401. {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_visualize_multilang_chain.py +0 -0
@@ -1,5 +1,95 @@
1
1
  # Changelog
2
2
 
3
+ ## [2.27.0] - 2026-09-17
4
+
5
+ > 安全加固版本:六轮对抗评审修复 34 条门禁缺陷 + 项目契约生命周期
6
+ > (adopt / reconcile / project-preflight)。包含行为变更,升级前请阅读 Migration。
7
+
8
+ ### Migration (2.26.1 → 2.27.0)
9
+
10
+ - **spec_guard:内容漂移从「解锁」改为「锁定」**。live receipt 的哈希与 Spec
11
+ 不符意味着 Spec 被改过——这正是该门禁存在的理由,此前却作为"receipt 失效"
12
+ 解锁编辑,且改动本身又解锁 Edit 面(spec_guard 退化为一次性减速带)。已授权
13
+ 修改不受影响(`pactkit gate authorize spec_edit` / env / 关闸)。
14
+ - **secrets_gate 与 auth_gate 的审计和提示不再回显命令文本**。清洗只覆盖已知的
15
+ 凭据形态,同一条命令里任何未命中的凭据会随之进入审计记录。现在只记录命中的
16
+ 形态名。
17
+ - **tamper_guard 保护面扩大**:`.pactkit/**` 整个状态目录(含 preflight
18
+ receipt)、`.claude/settings.local.json`(宿主把 settings 的 env 注入 hook
19
+ 进程且会话内热加载——一次 Write 即可植入 `PACTKIT_ALLOW_*` 关掉全部门禁)、
20
+ 全部四份 `pactkit.yaml` 候选(`.opencode/` 与 `.github/` 优先级更高却曾被
21
+ 排除在保护外)、更多写动词(`touch`/`ln`/`install`/`rsync`)。需要 agent
22
+ 编辑这些文件的团队用 `PACTKIT_ALLOW_CONFIG_EDIT=1` 人工通道或关闭该门禁。
23
+ - **core↔adapter 钉版同步升至 2.27.0**:`pactkit[opencode]`/`pactkit[codex]`
24
+ 要求 adapter ≥2.27.0。core 与三个 adapter 需一起升级(发布顺序:core 先发,
25
+ adapter 紧随)。
26
+
27
+ ### Added
28
+
29
+ - **项目契约生命周期**(PR #13):`pactkit adopt`(最小本地契约,仅在四份配置
30
+ 候选全部缺席时创建)、`pactkit reconcile`(确定性安全迁移:行级插入
31
+ `schema_version` 保留注释与未知键、写前回读验证、`utils.atomic_write` 落盘)、
32
+ `pactkit project-preflight`(UNADOPTED / RECONCILE / CURRENT / BLOCKED 四态,
33
+ 过新或非法 schema 给出可行动的阻断信息)。项目采用保持纯本地——无项目注册表、
34
+ 无全局扫描、无跨项目变更。CLI 子命令 52 → 55。
35
+ - **支持矩阵** `docs/guides/support-matrix.md`:宿主 × 门禁 × Python × OS。
36
+ 宿主表从 `gate_matrix.gate_coverage()` 派生并有守卫测试钉住——OpenCode /
37
+ Copilot 只有 git-hook 层,四个 pre-tool 门禁(auth/secrets/tamper/spec)
38
+ 在该层不存在;macOS 未被 CI 覆盖、Windows 分支零覆盖,均如实写明。
39
+
40
+ ### Fixed — 六轮对抗评审(34 条)
41
+
42
+ 评审覆盖了全部六个门禁的输入解析;每条均带对照组端到端复现后修复。
43
+
44
+ - **push_gate**:带引号 refspec(`git push origin 'main'`)与强推标记
45
+ (`+main`)曾放行受保护分支并写入"not protected"假保证;`$VAR`/反斜杠
46
+ refspec 现判为不可解析(WARN + DEGRADED,不再产出确定性放行);git
47
+ pre-push hook 改用 git 交给 hook 的 stdin refspec(此前硬编码当前分支,
48
+ feature 分支上 `push origin HEAD:main` 曾真实放行);`git -C` 现决定被检查
49
+ 的仓库("检查 A、提交 B")。
50
+ - **commit_gate**:`git -c core.hooksPath=/dev/null commit` 曾交棒给不会运行的
51
+ hook 使 RED 代码零验证落地(含大小写变体 `core.hookspath` 与
52
+ `GIT_CONFIG_COUNT/KEY_n/VALUE_n` 环境注入);分派改为锚定命令位置
53
+ (`printf ... '{"note":"git commit"}' > .codex/hooks.json` 曾因字符串共现
54
+ 跳过 tamper 并交棒);命令替换(`git commit -m "$(rm ...)"`)补检;审计写
55
+ 失败不再把 BLOCK 翻成崩溃(exit 1 对宿主是非阻塞);畸形 stdin 从静默放行
56
+ 改为留 WARN。
57
+ - **tamper_guard**:复合命令分段回归(`cd .git/hooks && rm -f pre-commit` 曾
58
+ 放行,`cd` 相对路径写受保护文件同样已覆盖);`pactkit.yaml` 弱化即拦截
59
+ (关 gate 标志 / 开 allow_direct_push / 删 protected_branches,普通编辑与
60
+ 已是 false 的值不误拦不自锁);settings env 旁路通道(见 Migration);
61
+ `rm -rf .pactkit && touch .pactkit` 曾把状态目录替换成普通文件使所有
62
+ 凭据命令崩溃放行;符号链接 spec 与 `DOCS/SPECS` 大小写拼写(Edit + Bash
63
+ 两个面);Edit 模拟尊重 `replace_all`;Bash 面只读操作(备份/统计 spec)
64
+ 不再误拦。
65
+ - **secrets_gate**:补齐自身动机案例与常见形态——`curl -u/--user`、
66
+ `Authorization: Bearer/Basic`、`sk-proj-`/`sk-ant-`、AWS secret key、URL
67
+ userinfo、sshpass/docker login/redis-cli/openssl 内联口令;私钥清洗从只吞
68
+ BEGIN 行改为整段(此前密钥正文原样进入 `.pactkit/events/`——防泄露门禁
69
+ 自己在制造持久化泄露);含空格口令整段清洗;误拦收敛(`rg -n 'pwd='`
70
+ 不再命中)。
71
+ - **auth_gate**:`gh -R owner/repo pr create` 等子命令前置全局旗标此前不
72
+ 命中;审计不再回显命令(同 secrets_gate)。
73
+ - **基础设施**:`config._atomic_write_text` 并发写崩溃(与 utils 侧已修的
74
+ 同源副本,统一到单一 `temp_sibling` 实现);`enforcement._status_path`
75
+ gate 名路径逃逸守卫;YAML 解析的 TypeError/RecursionError 不再逃出 hook
76
+ 且不再锁死修复;`pactkit clean` 对符号链接不再崩溃且不跟随。
77
+
78
+ ### Docs
79
+
80
+ - README 计数改为从注册表**派生**并由守卫测试钉住(防漂移测试此前从错误的
81
+ 注册表派生、认证了过时数字;commands/skills/rules 11/10/8 → 12/25/21);
82
+ Copilot 列为第四宿主;新增 Troubleshooting 与受限/CI 环境段;
83
+ SECURITY.md 支持版本表必须覆盖当前发布版本(守卫钉住);
84
+ CONTRIBUTING/CODE_OF_CONDUCT 的 404 仓库链接修正(贡献 clone 指向源码仓
85
+ pactkit-src,安全通告与 issue 指向 pactkit-public)。
86
+
87
+ ## [2.26.1] - 2026-09-15
88
+
89
+ ### Fixed
90
+ - **deploy 不再因扫描根下的不可读目录崩溃**——`Path.exists()` 只吞 ENOENT/ENOTDIR/ELOOP,EACCES 会直接抛出;GitHub Ubuntu runner 的 `/tmp` 含 root 属主 0750 的 `systemd-private-*` 目录,中性 cwd 下 `deploy → cleaners.detect_stacks` 的子目录 marker 检查抛 `PermissionError`(pactkit-opencode 2.26.0 Release Acceptance 8 项失败、publish 被拒)。`cleaners.detect_stacks` 与 `utils.stack_test_plans/_issues` 的全部 marker 检查改为 OSError 安全版(一律视为无 marker)。
91
+
92
+
3
93
  ## [2.26.0] - 2026-09-15
4
94
 
5
95
  > 产品重定位版本:PactKit 收敛为**轻量开发赋能脚手架**——无管理员、无集中控制、
@@ -60,8 +60,8 @@ representative at an online or offline event.
60
60
 
61
61
  Instances of abusive, harassing, or otherwise unacceptable behavior may be
62
62
  reported to the community leaders responsible for enforcement via
63
- [GitHub Security Advisories](https://github.com/pactkit/pactkit/security/advisories/new)
64
- or by opening a [GitHub Issue](https://github.com/pactkit/pactkit/issues).
63
+ [GitHub Security Advisories](https://github.com/pactkit/pactkit-public/security/advisories/new)
64
+ or by opening a [GitHub Issue](https://github.com/pactkit/pactkit-public/issues).
65
65
 
66
66
  All complaints will be reviewed and investigated promptly and fairly.
67
67
 
@@ -4,8 +4,9 @@ Thank you for your interest in contributing to PactKit!
4
4
 
5
5
  ## Getting Started
6
6
 
7
- 1. Fork the repository
8
- 2. Clone your fork: `git clone https://github.com/YOUR_USERNAME/pactkit.git`
7
+ 1. Fork [`pactkit/pactkit-src`](https://github.com/pactkit/pactkit-src) — the
8
+ source repository (`pactkit-public` is a curated mirror with no code)
9
+ 2. Clone your fork: `git clone https://github.com/YOUR_USERNAME/pactkit-src.git`
9
10
  3. Create a branch: `git checkout -b feature/your-feature`
10
11
  4. Install in development mode: `pip install -e ".[lint,visualize,test]"` plus
11
12
  `pip install -e <path-to-adapter-repo>` for any adapter you're touching
@@ -42,4 +43,4 @@ refactor(scope): code refactoring
42
43
 
43
44
  ## Code of Conduct
44
45
 
45
- This project adheres to the [Contributor Covenant Code of Conduct](CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code. Please report unacceptable behavior through [GitHub Security Advisories](https://github.com/pactkit/pactkit/security/advisories/new) or by opening a [GitHub Issue](https://github.com/pactkit/pactkit/issues).
46
+ This project adheres to the [Contributor Covenant Code of Conduct](CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code. Please report unacceptable behavior through [GitHub Security Advisories](https://github.com/pactkit/pactkit-public/security/advisories/new) or by opening a [GitHub Issue](https://github.com/pactkit/pactkit-public/issues).
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: pactkit
3
- Version: 2.26.0
3
+ Version: 2.27.0
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,19 +23,19 @@ 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.27.0,>=2.26.0; extra == 'all'
27
- Requires-Dist: pactkit-opencode>=2.9.0; extra == 'all'
26
+ Requires-Dist: pactkit-codex<2.28.0,>=2.27.0; extra == 'all'
27
+ Requires-Dist: pactkit-opencode<2.28.0,>=2.27.0; extra == 'all'
28
28
  Requires-Dist: ruff>=0.4; extra == 'all'
29
29
  Requires-Dist: tree-sitter-go>=0.25; extra == 'all'
30
30
  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.27.0,>=2.26.0; extra == 'codex'
34
+ Requires-Dist: pactkit-codex<2.28.0,>=2.27.0; extra == 'codex'
35
35
  Provides-Extra: lint
36
36
  Requires-Dist: ruff>=0.4; extra == 'lint'
37
37
  Provides-Extra: opencode
38
- Requires-Dist: pactkit-opencode>=2.9.0; extra == 'opencode'
38
+ Requires-Dist: pactkit-opencode<2.28.0,>=2.27.0; extra == 'opencode'
39
39
  Provides-Extra: test
40
40
  Requires-Dist: pytest>=7; extra == 'test'
41
41
  Requires-Dist: tomli>=1.1.0; (python_version < '3.11') and extra == 'test'
@@ -61,7 +61,7 @@ Description-Content-Type: text/markdown
61
61
 
62
62
  > **PactKit** (Pact 契约 + Kit) is a lightweight dev-enablement scaffold: it gives AI coding assistants the standards, specs and methods of a disciplined engineering workflow, without getting in the way. Ordinary questions and ordinary coding never activate the workflow — you opt in per task. There is no admin plane, no central control, and nothing that cannot be uninstalled.
63
63
  >
64
- > Deterministic operations run as code, not prompts (CODE is the Law). Decisions are grounded in data, not memory (Data is the Truth). 52 CLI subcommands, 9 specialized agents, 12 commands, 13 skills, and a Plan-Act-Check-Done lifecycle you invoke when you want it. One `pip install` deploys to all 3 supported IDEs (adapters are opt-in extras).
64
+ > Deterministic operations run as code, not prompts (CODE is the Law). Decisions are grounded in data, not memory (Data is the Truth). 55 CLI subcommands, 9 specialized agents, 12 commands, 25 skills, and a Plan-Act-Check-Done lifecycle you invoke when you want it. One `pip install` deploys to all 4 supported IDEs (adapters are opt-in extras).
65
65
 
66
66
  ### Supported AI Tools
67
67
 
@@ -70,8 +70,14 @@ Description-Content-Type: text/markdown
70
70
  | **Claude Code** | Classic | `pactkit init` |
71
71
  | **OpenCode** | OpenCode | `pactkit init` |
72
72
  | **Codex CLI** | Codex | `pactkit init` |
73
+ | **GitHub Copilot** | Copilot | `pactkit init --format copilot` |
73
74
 
74
- > `pactkit init` deploys all 3 IDEs at once. Use `--format <name>` to target a single IDE.
75
+ > `pactkit init` deploys all 4 IDE formats at once. Use `--format <name>` to target a single IDE.
76
+
77
+ Gate coverage differs by host: Claude Code and Codex CLI get the full gate set
78
+ through native hooks; OpenCode and Copilot fall back to the git-hook layer,
79
+ which covers the commit and push gates but not the pre-tool ones
80
+ (`auth_gate`, `secrets_gate`, `tamper_guard`, `spec_guard`).
75
81
 
76
82
  ### What it looks like
77
83
 
@@ -286,30 +292,40 @@ PactKit deploys 9 specialized agents, each with constrained tools and focused re
286
292
 
287
293
  ## Skills
288
294
 
289
- PactKit deploys 13 skills (4 scripted + 9 prompt-only), auto-invoked by commands:
295
+ PactKit deploys 25 skills. That total is the 12 PDCA commands (registered as
296
+ skills, so `/project-plan` and `pactkit-visualize` deploy the same way) plus the
297
+ 13 tool skills below, auto-invoked by commands:
298
+
299
+ 13 tool skills (4 scripted + 9 prompt-only):
290
300
 
291
301
  | Skill | Type | Purpose |
292
302
  |-------|------|---------|
293
303
  | **pactkit-visualize** | Scripted | Code dependency graph (Mermaid .mmd): file-level, class-level, call-level |
294
304
  | **pactkit-board** | Scripted | Sprint board operations: add story, update task, archive |
295
305
  | **pactkit-scaffold** | Scripted | File scaffolding: create spec, test files, git branches, skills |
306
+ | **pactkit-report** | Scripted | Interactive HTML dashboard from Mermaid architecture graphs |
296
307
  | **pactkit-trace** | Prompt-only | Deep code tracing and execution flow analysis |
297
308
  | **pactkit-draw** | Prompt-only | Generate Draw.io XML architecture diagrams |
298
309
  | **pactkit-analyze** | Prompt-only | Cross-artifact consistency check: Spec <-> Board <-> Test Cases |
310
+ | **pactkit-audit** | Prompt-only | H1-H7 AI readiness assessment and hotspot analysis |
299
311
  | **pactkit-status** | Prompt-only | Cold-start project overview (sprint + git + health) |
300
312
  | **pactkit-doctor** | Prompt-only | Configuration drift detection and health report |
313
+ | **pactkit-garden** | Prompt-only | Codebase quality patrol: dead code, stale docs, duplication |
301
314
  | **pactkit-review** | Prompt-only | PR code review with SOLID/Security/Quality checklists |
302
315
  | **pactkit-release** | Prompt-only | Version bump, architecture snapshot, git tag |
303
316
 
304
317
  ## CLI Subcommands
305
318
 
306
- PactKit ships 52 deterministic CLI subcommands — operations that were previously delegated to AI prompts are now enforced in Python code (the "C" in P.A.C.T.):
319
+ PactKit ships 55 deterministic CLI subcommands — operations that were previously delegated to AI prompts are now enforced in Python code (the "C" in P.A.C.T.):
307
320
 
308
321
  | Command | Purpose |
309
322
  |---------|---------|
310
323
  | `pactkit init` | Deploy toolkit to AI coding assistant |
311
324
  | `pactkit update` | Update playbooks (preserves config) |
312
325
  | `pactkit upgrade` | Upgrade with format selection |
326
+ | `pactkit adopt` | Create a minimal versioned contract for the current project |
327
+ | `pactkit reconcile` | Preview or apply safe project-schema migrations |
328
+ | `pactkit project-preflight` | Check adoption and compatibility before governed work |
313
329
  | `pactkit version` | Show installed version |
314
330
  | `pactkit schema` | Print document schemas |
315
331
  | `pactkit doctor` | Diagnose project health (HLD drift, board, config, deployment content parity, adapter skew) |
@@ -341,6 +357,42 @@ PactKit ships 52 deterministic CLI subcommands — operations that were previous
341
357
  | `pactkit schema config` | List every pactkit.yaml key with default, effective value, and source |
342
358
  | `pactkit sync` | Sync codegraph index |
343
359
 
360
+ ### Commit Path Convergence (2.26.0)
361
+
362
+ - **Single test executor**: worktree and `core.hooksPath` layouts resolve the
363
+ real git hooks path — the host PreToolUse pass defers to the shared git
364
+ pre-commit hook instead of double-running the suite.
365
+ - **Real incremental selection**: a changed test file maps to itself
366
+ (`test_X.py` runs `test_X.py`); an empty mapping runs the fast layer with an
367
+ explicit full-suite recommendation instead of silently escalating; polyglot
368
+ repos run every detected workspace's native test command.
369
+ - **Observability**: the gate prints its plan (strategy, reason, command,
370
+ scope) before any test runs, streams pytest output, and records per-phase
371
+ timings into the enforcement record.
372
+ - **Staged-first scope**: the gate checks what this commit will introduce
373
+ (`git diff --cached`); unstaged work is reported as excluded.
374
+
375
+ ### Verification Facts & Governance (2.26.0)
376
+
377
+ - Verification records are keyed by **content fingerprint** (cross-story
378
+ reuse); with no fresh, unambiguous preflight receipt the post-commit stamp
379
+ lands **unattributed** instead of guessing a story.
380
+ - PreCompact writes a lightweight marker — one context generation per
381
+ compaction cycle.
382
+ - The spec guard binds a receipt only while its spec hash matches and the
383
+ receipt is fresh (expired/drifted receipts unlock with a reason).
384
+ - `telemetry.enabled: false` skips event-stream writes without touching gate
385
+ semantics.
386
+
387
+ ### Engineering Guidance by Gap (2.26.0)
388
+
389
+ - The reuse classification (availability / applicability / decisions /
390
+ evidence) lives once in the shared lifecycle capsule loaded by all four
391
+ phases; Act loads guidance by gap — an empty `pactkit risk` result is never
392
+ "no risk", 0 guides is valid when there is no gap, and confirmed risks
393
+ past the first three are still read and verified.
394
+ - `pactkit risk --json` returns the full per-concern decisions for review.
395
+
344
396
  ### Enforcement Gates (2.25.0)
345
397
 
346
398
  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:
@@ -358,15 +410,15 @@ All blocks/bypasses are audited (`.pactkit/enforcement/`) and feed `pactkit stat
358
410
 
359
411
  ## Deployment Architecture
360
412
 
361
- PactKit supports three deployment formats:
413
+ PactKit supports four deployment formats:
362
414
 
363
415
  ### Claude Code (Classic)
364
416
 
365
417
  ```
366
418
  ~/.claude/
367
419
  ├── CLAUDE.md <- Project context entry point
368
- ├── rules/ <- 8 rule modules (loaded per-command, not globally)
369
- ├── skills/ <- 21 skill packages (11 commands + 10 embedded)
420
+ ├── rules/ <- 21 rule modules (loaded per-command, not globally)
421
+ ├── skills/ <- 25 skill packages (12 commands + 13 tool skills)
370
422
  └── agents/ <- 9 agent definitions
371
423
  ```
372
424
 
@@ -377,10 +429,10 @@ Commands are deployed as skills (`skills/project-*/SKILL.md`), invoked with `/pr
377
429
  ```
378
430
  ~/.config/opencode/
379
431
  ├── AGENTS.md <- On-demand @reference index (lazy rule loading)
380
- ├── rules/ <- 8 rule modules (3 core always-load + 6 on-demand)
381
- ├── commands/ <- 11 command playbooks (auto-discovered, invoked via /)
432
+ ├── rules/ <- 21 rule modules
433
+ ├── commands/ <- 12 command playbooks (auto-discovered, invoked via /)
382
434
  ├── agents/ <- 9 agent definitions (mode: subagent)
383
- ├── skills/ <- 10 skill packages (AI agent loads on demand)
435
+ ├── skills/ <- 13 tool skills (AI agent loads on demand)
384
436
  └── opencode.json <- Global config (model routing, instructions)
385
437
  ```
386
438
 
@@ -392,8 +444,8 @@ OpenCode uses dual mechanism: `commands/` for user-facing PDCA entry points, `sk
392
444
  ~/.codex/
393
445
  ├── AGENTS.md <- Global constitution
394
446
  ├── config.toml <- Model, sandbox, MCP config
395
- ├── rules/ <- 8 rule modules
396
- ├── skills/ <- 21 skill packages (11 commands + 10 embedded)
447
+ ├── rules/ <- 21 rule modules
448
+ ├── skills/ <- 25 skill packages (12 commands + 13 tool skills)
397
449
  └── .pactkit-version <- Version marker for updates
398
450
  ```
399
451
 
@@ -438,9 +490,11 @@ Session context is generated locally at `.pactkit/context.md` and is ignored by
438
490
  | `stack` | string | auto-detected | Project stack (`python`, `node`, `go`, `java`) |
439
491
  | `developer` | string | `""` | Developer prefix for Story IDs (multi-developer collaboration) |
440
492
  | `agents` | list | all 9 | Agent definitions to deploy |
441
- | `commands` | list | all 11 | Command playbooks to deploy |
442
- | `skills` | list | all 10 | Skills to deploy |
443
- | `rules` | list | all 8 | Constitution rule modules to deploy |
493
+ | `commands` | list | all 12 | Command playbooks to deploy |
494
+ | `skills` | list | all 25 | Skills to deploy (12 commands + 13 tool skills) |
495
+ | `rules` | list | all 21 | Constitution rule modules to deploy |
496
+ | `enforcement` | object | see below | Gate configuration — `protected_branches` (`["main","master"]`), `allow_direct_push` (`false`), `tamper_guard` (`true`), `spec_guard` (`true`), `auth_gate` (`true`), `secrets_gate` (`true`), `auth_ttl_minutes` (`30`) |
497
+ | `telemetry` | object | `enabled: true` | Local-only usage telemetry (`.pactkit/events/`). Set `enabled: false` to stop recording; gate verdicts are unaffected |
444
498
  | `exclude` | object | `{}` | Components to exclude (e.g., `exclude.agents: [agent-name]`) |
445
499
  | `visualize.graph_provider` | string | (absent) | Graph query backend. Set `codegraph` to use `.codegraph/codegraph.db` for `pactkit query`. Absent = grep `.mmd` |
446
500
  | `ci` | object | `provider: none` | CI/CD pipeline generation (`github`, `gitlab`, `none`). Sub-fields: `runner` (default: `ubuntu-latest`), `language_version` (default: auto per stack), `github_host` (GHE server address), `actions_ref` (GHE actions prefix) |
@@ -472,16 +526,19 @@ When conflicts arise: Spec wins. Always. The agent modifies code, never the spec
472
526
 
473
527
  ## MCP Integration
474
528
 
475
- PactKit conditionally integrates with MCP servers when available:
529
+ As of **2.26.0**, PactKit is a lightweight development-enablement scaffold with
530
+ **zero MCP server injection** — `pactkit init` no longer registers any server,
531
+ and the self-hosted governance MCP server is retired (`pactkit mcp` prints the
532
+ retirement note and migration path). Host-side MCP servers you configure
533
+ yourself (Context7, Playwright, Chrome DevTools, Memory, …) still work: the
534
+ playbooks reference them conditionally and skip gracefully when unavailable.
476
535
 
477
536
  | MCP Server | Purpose | PDCA Phase |
478
537
  |------------|---------|------------|
479
538
  | Context7 | Library documentation lookup | Act |
480
- | shadcn | UI component search/install | Design |
481
539
  | Playwright | Browser automation testing | Check |
482
540
  | Chrome DevTools | Performance/console/network | Check |
483
541
  | Memory | Cross-session knowledge graph | Plan/Act/Done |
484
- | Draw.io | Architecture diagram instant preview | Plan, Design |
485
542
 
486
543
  All MCP instructions are conditional — gracefully skipped when unavailable.
487
544
 
@@ -494,6 +551,40 @@ pactkit update # Updates all deployed IDEs
494
551
 
495
552
  Use `pactkit update --format <name>` to update a single IDE.
496
553
 
554
+ Rolling back is `pip install pactkit==<previous-version>` followed by
555
+ `pactkit update`. `pactkit doctor` reports a deployment whose files no longer
556
+ match the installed CLI, which is how a partial rollback shows up.
557
+
558
+ ## Restricted and CI Environments
559
+
560
+ `pactkit init` and `pactkit update` accept flags for environments that cannot
561
+ reach the network or answer prompts:
562
+
563
+ | Flag | Effect |
564
+ |------|--------|
565
+ | `--no-git` | Skips every git operation (hook installation, `.gitignore` edits) — for air-gapped or git-less setups |
566
+ | `--no-external` | Skips external network calls (MCP registration, `gh` CLI, `pip`) |
567
+ | `--non-interactive` | Auto-accepts defaults — for CI/CD |
568
+
569
+ PactKit never sends your code or usage data anywhere. Telemetry is written
570
+ locally under `.pactkit/events/` and can be turned off with
571
+ `telemetry.enabled: false`. The only network access is the package index you
572
+ install from.
573
+
574
+ ## Troubleshooting
575
+
576
+ Start with `pactkit doctor` — it reports configuration drift, deployment
577
+ parity against the installed CLI, adapter version skew, hook registration, and
578
+ rule health. `pactkit doctor --json` emits the same data for scripts.
579
+
580
+ | Symptom | Likely cause | What to do |
581
+ |---------|--------------|------------|
582
+ | A commit is blocked with `commit-gate` | Tests are RED, or you are committing directly to a protected branch | Fix the tests, or push a feature branch and open a PR. `enforcement.allow_direct_push: true` is for single-maintainer repos that work directly on `main` |
583
+ | A command is blocked with `push-gate` / `auth-gate` | Direct push to a protected branch, or an external-effect command (`gh pr create`, `npm publish`, …) without authorization | Run `pactkit gate authorize <scope>` after the user agrees, or have the user run it themselves |
584
+ | Gates behave inconsistently across teammates | Deployments are stale — each clone updates independently | `pactkit update` in that project, then `pactkit doctor` |
585
+ | `pactkit doctor` reports adapter skew | `pactkit-codex`/`-opencode` version does not match core | Upgrade the adapter extras; core and adapters are version-pinned to each other |
586
+ | The gate blocks work and you believe it is wrong | Genuine gate bug | `PACTKIT_ALLOW_*` env vars (see the gate table above) are the human channel; report the false positive with `pactkit stats` output |
587
+
497
588
  ## Contributing
498
589
 
499
590
  See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
@@ -13,7 +13,7 @@
13
13
 
14
14
  > **PactKit** (Pact 契约 + Kit) is a lightweight dev-enablement scaffold: it gives AI coding assistants the standards, specs and methods of a disciplined engineering workflow, without getting in the way. Ordinary questions and ordinary coding never activate the workflow — you opt in per task. There is no admin plane, no central control, and nothing that cannot be uninstalled.
15
15
  >
16
- > Deterministic operations run as code, not prompts (CODE is the Law). Decisions are grounded in data, not memory (Data is the Truth). 52 CLI subcommands, 9 specialized agents, 12 commands, 13 skills, and a Plan-Act-Check-Done lifecycle you invoke when you want it. One `pip install` deploys to all 3 supported IDEs (adapters are opt-in extras).
16
+ > Deterministic operations run as code, not prompts (CODE is the Law). Decisions are grounded in data, not memory (Data is the Truth). 55 CLI subcommands, 9 specialized agents, 12 commands, 25 skills, and a Plan-Act-Check-Done lifecycle you invoke when you want it. One `pip install` deploys to all 4 supported IDEs (adapters are opt-in extras).
17
17
 
18
18
  ### Supported AI Tools
19
19
 
@@ -22,8 +22,14 @@
22
22
  | **Claude Code** | Classic | `pactkit init` |
23
23
  | **OpenCode** | OpenCode | `pactkit init` |
24
24
  | **Codex CLI** | Codex | `pactkit init` |
25
+ | **GitHub Copilot** | Copilot | `pactkit init --format copilot` |
25
26
 
26
- > `pactkit init` deploys all 3 IDEs at once. Use `--format <name>` to target a single IDE.
27
+ > `pactkit init` deploys all 4 IDE formats at once. Use `--format <name>` to target a single IDE.
28
+
29
+ Gate coverage differs by host: Claude Code and Codex CLI get the full gate set
30
+ through native hooks; OpenCode and Copilot fall back to the git-hook layer,
31
+ which covers the commit and push gates but not the pre-tool ones
32
+ (`auth_gate`, `secrets_gate`, `tamper_guard`, `spec_guard`).
27
33
 
28
34
  ### What it looks like
29
35
 
@@ -238,30 +244,40 @@ PactKit deploys 9 specialized agents, each with constrained tools and focused re
238
244
 
239
245
  ## Skills
240
246
 
241
- PactKit deploys 13 skills (4 scripted + 9 prompt-only), auto-invoked by commands:
247
+ PactKit deploys 25 skills. That total is the 12 PDCA commands (registered as
248
+ skills, so `/project-plan` and `pactkit-visualize` deploy the same way) plus the
249
+ 13 tool skills below, auto-invoked by commands:
250
+
251
+ 13 tool skills (4 scripted + 9 prompt-only):
242
252
 
243
253
  | Skill | Type | Purpose |
244
254
  |-------|------|---------|
245
255
  | **pactkit-visualize** | Scripted | Code dependency graph (Mermaid .mmd): file-level, class-level, call-level |
246
256
  | **pactkit-board** | Scripted | Sprint board operations: add story, update task, archive |
247
257
  | **pactkit-scaffold** | Scripted | File scaffolding: create spec, test files, git branches, skills |
258
+ | **pactkit-report** | Scripted | Interactive HTML dashboard from Mermaid architecture graphs |
248
259
  | **pactkit-trace** | Prompt-only | Deep code tracing and execution flow analysis |
249
260
  | **pactkit-draw** | Prompt-only | Generate Draw.io XML architecture diagrams |
250
261
  | **pactkit-analyze** | Prompt-only | Cross-artifact consistency check: Spec <-> Board <-> Test Cases |
262
+ | **pactkit-audit** | Prompt-only | H1-H7 AI readiness assessment and hotspot analysis |
251
263
  | **pactkit-status** | Prompt-only | Cold-start project overview (sprint + git + health) |
252
264
  | **pactkit-doctor** | Prompt-only | Configuration drift detection and health report |
265
+ | **pactkit-garden** | Prompt-only | Codebase quality patrol: dead code, stale docs, duplication |
253
266
  | **pactkit-review** | Prompt-only | PR code review with SOLID/Security/Quality checklists |
254
267
  | **pactkit-release** | Prompt-only | Version bump, architecture snapshot, git tag |
255
268
 
256
269
  ## CLI Subcommands
257
270
 
258
- PactKit ships 52 deterministic CLI subcommands — operations that were previously delegated to AI prompts are now enforced in Python code (the "C" in P.A.C.T.):
271
+ PactKit ships 55 deterministic CLI subcommands — operations that were previously delegated to AI prompts are now enforced in Python code (the "C" in P.A.C.T.):
259
272
 
260
273
  | Command | Purpose |
261
274
  |---------|---------|
262
275
  | `pactkit init` | Deploy toolkit to AI coding assistant |
263
276
  | `pactkit update` | Update playbooks (preserves config) |
264
277
  | `pactkit upgrade` | Upgrade with format selection |
278
+ | `pactkit adopt` | Create a minimal versioned contract for the current project |
279
+ | `pactkit reconcile` | Preview or apply safe project-schema migrations |
280
+ | `pactkit project-preflight` | Check adoption and compatibility before governed work |
265
281
  | `pactkit version` | Show installed version |
266
282
  | `pactkit schema` | Print document schemas |
267
283
  | `pactkit doctor` | Diagnose project health (HLD drift, board, config, deployment content parity, adapter skew) |
@@ -293,6 +309,42 @@ PactKit ships 52 deterministic CLI subcommands — operations that were previous
293
309
  | `pactkit schema config` | List every pactkit.yaml key with default, effective value, and source |
294
310
  | `pactkit sync` | Sync codegraph index |
295
311
 
312
+ ### Commit Path Convergence (2.26.0)
313
+
314
+ - **Single test executor**: worktree and `core.hooksPath` layouts resolve the
315
+ real git hooks path — the host PreToolUse pass defers to the shared git
316
+ pre-commit hook instead of double-running the suite.
317
+ - **Real incremental selection**: a changed test file maps to itself
318
+ (`test_X.py` runs `test_X.py`); an empty mapping runs the fast layer with an
319
+ explicit full-suite recommendation instead of silently escalating; polyglot
320
+ repos run every detected workspace's native test command.
321
+ - **Observability**: the gate prints its plan (strategy, reason, command,
322
+ scope) before any test runs, streams pytest output, and records per-phase
323
+ timings into the enforcement record.
324
+ - **Staged-first scope**: the gate checks what this commit will introduce
325
+ (`git diff --cached`); unstaged work is reported as excluded.
326
+
327
+ ### Verification Facts & Governance (2.26.0)
328
+
329
+ - Verification records are keyed by **content fingerprint** (cross-story
330
+ reuse); with no fresh, unambiguous preflight receipt the post-commit stamp
331
+ lands **unattributed** instead of guessing a story.
332
+ - PreCompact writes a lightweight marker — one context generation per
333
+ compaction cycle.
334
+ - The spec guard binds a receipt only while its spec hash matches and the
335
+ receipt is fresh (expired/drifted receipts unlock with a reason).
336
+ - `telemetry.enabled: false` skips event-stream writes without touching gate
337
+ semantics.
338
+
339
+ ### Engineering Guidance by Gap (2.26.0)
340
+
341
+ - The reuse classification (availability / applicability / decisions /
342
+ evidence) lives once in the shared lifecycle capsule loaded by all four
343
+ phases; Act loads guidance by gap — an empty `pactkit risk` result is never
344
+ "no risk", 0 guides is valid when there is no gap, and confirmed risks
345
+ past the first three are still read and verified.
346
+ - `pactkit risk --json` returns the full per-concern decisions for review.
347
+
296
348
  ### Enforcement Gates (2.25.0)
297
349
 
298
350
  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:
@@ -310,15 +362,15 @@ All blocks/bypasses are audited (`.pactkit/enforcement/`) and feed `pactkit stat
310
362
 
311
363
  ## Deployment Architecture
312
364
 
313
- PactKit supports three deployment formats:
365
+ PactKit supports four deployment formats:
314
366
 
315
367
  ### Claude Code (Classic)
316
368
 
317
369
  ```
318
370
  ~/.claude/
319
371
  ├── CLAUDE.md <- Project context entry point
320
- ├── rules/ <- 8 rule modules (loaded per-command, not globally)
321
- ├── skills/ <- 21 skill packages (11 commands + 10 embedded)
372
+ ├── rules/ <- 21 rule modules (loaded per-command, not globally)
373
+ ├── skills/ <- 25 skill packages (12 commands + 13 tool skills)
322
374
  └── agents/ <- 9 agent definitions
323
375
  ```
324
376
 
@@ -329,10 +381,10 @@ Commands are deployed as skills (`skills/project-*/SKILL.md`), invoked with `/pr
329
381
  ```
330
382
  ~/.config/opencode/
331
383
  ├── AGENTS.md <- On-demand @reference index (lazy rule loading)
332
- ├── rules/ <- 8 rule modules (3 core always-load + 6 on-demand)
333
- ├── commands/ <- 11 command playbooks (auto-discovered, invoked via /)
384
+ ├── rules/ <- 21 rule modules
385
+ ├── commands/ <- 12 command playbooks (auto-discovered, invoked via /)
334
386
  ├── agents/ <- 9 agent definitions (mode: subagent)
335
- ├── skills/ <- 10 skill packages (AI agent loads on demand)
387
+ ├── skills/ <- 13 tool skills (AI agent loads on demand)
336
388
  └── opencode.json <- Global config (model routing, instructions)
337
389
  ```
338
390
 
@@ -344,8 +396,8 @@ OpenCode uses dual mechanism: `commands/` for user-facing PDCA entry points, `sk
344
396
  ~/.codex/
345
397
  ├── AGENTS.md <- Global constitution
346
398
  ├── config.toml <- Model, sandbox, MCP config
347
- ├── rules/ <- 8 rule modules
348
- ├── skills/ <- 21 skill packages (11 commands + 10 embedded)
399
+ ├── rules/ <- 21 rule modules
400
+ ├── skills/ <- 25 skill packages (12 commands + 13 tool skills)
349
401
  └── .pactkit-version <- Version marker for updates
350
402
  ```
351
403
 
@@ -390,9 +442,11 @@ Session context is generated locally at `.pactkit/context.md` and is ignored by
390
442
  | `stack` | string | auto-detected | Project stack (`python`, `node`, `go`, `java`) |
391
443
  | `developer` | string | `""` | Developer prefix for Story IDs (multi-developer collaboration) |
392
444
  | `agents` | list | all 9 | Agent definitions to deploy |
393
- | `commands` | list | all 11 | Command playbooks to deploy |
394
- | `skills` | list | all 10 | Skills to deploy |
395
- | `rules` | list | all 8 | Constitution rule modules to deploy |
445
+ | `commands` | list | all 12 | Command playbooks to deploy |
446
+ | `skills` | list | all 25 | Skills to deploy (12 commands + 13 tool skills) |
447
+ | `rules` | list | all 21 | Constitution rule modules to deploy |
448
+ | `enforcement` | object | see below | Gate configuration — `protected_branches` (`["main","master"]`), `allow_direct_push` (`false`), `tamper_guard` (`true`), `spec_guard` (`true`), `auth_gate` (`true`), `secrets_gate` (`true`), `auth_ttl_minutes` (`30`) |
449
+ | `telemetry` | object | `enabled: true` | Local-only usage telemetry (`.pactkit/events/`). Set `enabled: false` to stop recording; gate verdicts are unaffected |
396
450
  | `exclude` | object | `{}` | Components to exclude (e.g., `exclude.agents: [agent-name]`) |
397
451
  | `visualize.graph_provider` | string | (absent) | Graph query backend. Set `codegraph` to use `.codegraph/codegraph.db` for `pactkit query`. Absent = grep `.mmd` |
398
452
  | `ci` | object | `provider: none` | CI/CD pipeline generation (`github`, `gitlab`, `none`). Sub-fields: `runner` (default: `ubuntu-latest`), `language_version` (default: auto per stack), `github_host` (GHE server address), `actions_ref` (GHE actions prefix) |
@@ -424,16 +478,19 @@ When conflicts arise: Spec wins. Always. The agent modifies code, never the spec
424
478
 
425
479
  ## MCP Integration
426
480
 
427
- PactKit conditionally integrates with MCP servers when available:
481
+ As of **2.26.0**, PactKit is a lightweight development-enablement scaffold with
482
+ **zero MCP server injection** — `pactkit init` no longer registers any server,
483
+ and the self-hosted governance MCP server is retired (`pactkit mcp` prints the
484
+ retirement note and migration path). Host-side MCP servers you configure
485
+ yourself (Context7, Playwright, Chrome DevTools, Memory, …) still work: the
486
+ playbooks reference them conditionally and skip gracefully when unavailable.
428
487
 
429
488
  | MCP Server | Purpose | PDCA Phase |
430
489
  |------------|---------|------------|
431
490
  | Context7 | Library documentation lookup | Act |
432
- | shadcn | UI component search/install | Design |
433
491
  | Playwright | Browser automation testing | Check |
434
492
  | Chrome DevTools | Performance/console/network | Check |
435
493
  | Memory | Cross-session knowledge graph | Plan/Act/Done |
436
- | Draw.io | Architecture diagram instant preview | Plan, Design |
437
494
 
438
495
  All MCP instructions are conditional — gracefully skipped when unavailable.
439
496
 
@@ -446,6 +503,40 @@ pactkit update # Updates all deployed IDEs
446
503
 
447
504
  Use `pactkit update --format <name>` to update a single IDE.
448
505
 
506
+ Rolling back is `pip install pactkit==<previous-version>` followed by
507
+ `pactkit update`. `pactkit doctor` reports a deployment whose files no longer
508
+ match the installed CLI, which is how a partial rollback shows up.
509
+
510
+ ## Restricted and CI Environments
511
+
512
+ `pactkit init` and `pactkit update` accept flags for environments that cannot
513
+ reach the network or answer prompts:
514
+
515
+ | Flag | Effect |
516
+ |------|--------|
517
+ | `--no-git` | Skips every git operation (hook installation, `.gitignore` edits) — for air-gapped or git-less setups |
518
+ | `--no-external` | Skips external network calls (MCP registration, `gh` CLI, `pip`) |
519
+ | `--non-interactive` | Auto-accepts defaults — for CI/CD |
520
+
521
+ PactKit never sends your code or usage data anywhere. Telemetry is written
522
+ locally under `.pactkit/events/` and can be turned off with
523
+ `telemetry.enabled: false`. The only network access is the package index you
524
+ install from.
525
+
526
+ ## Troubleshooting
527
+
528
+ Start with `pactkit doctor` — it reports configuration drift, deployment
529
+ parity against the installed CLI, adapter version skew, hook registration, and
530
+ rule health. `pactkit doctor --json` emits the same data for scripts.
531
+
532
+ | Symptom | Likely cause | What to do |
533
+ |---------|--------------|------------|
534
+ | A commit is blocked with `commit-gate` | Tests are RED, or you are committing directly to a protected branch | Fix the tests, or push a feature branch and open a PR. `enforcement.allow_direct_push: true` is for single-maintainer repos that work directly on `main` |
535
+ | A command is blocked with `push-gate` / `auth-gate` | Direct push to a protected branch, or an external-effect command (`gh pr create`, `npm publish`, …) without authorization | Run `pactkit gate authorize <scope>` after the user agrees, or have the user run it themselves |
536
+ | Gates behave inconsistently across teammates | Deployments are stale — each clone updates independently | `pactkit update` in that project, then `pactkit doctor` |
537
+ | `pactkit doctor` reports adapter skew | `pactkit-codex`/`-opencode` version does not match core | Upgrade the adapter extras; core and adapters are version-pinned to each other |
538
+ | The gate blocks work and you believe it is wrong | Genuine gate bug | `PACTKIT_ALLOW_*` env vars (see the gate table above) are the human channel; report the false positive with `pactkit stats` output |
539
+
449
540
  ## Contributing
450
541
 
451
542
  See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
@@ -4,14 +4,17 @@
4
4
 
5
5
  | Version | Supported |
6
6
  |---------|--------------------|
7
- | 2.25.x | :white_check_mark: |
8
- | 2.24.x | :white_check_mark: |
9
- | < 2.24 | :x: |
7
+ | 2.27.x | :white_check_mark: |
8
+ | 2.26.x | :white_check_mark: |
9
+ | < 2.26 | :x: |
10
10
 
11
11
  We provide security fixes for the current and previous minor release. Users on
12
12
  older versions should upgrade — the version is reported by `pactkit version`,
13
13
  and `pactkit doctor` flags a deployment that lags the installed CLI.
14
14
 
15
+ > This table is refreshed on every minor release; a guard test fails whenever
16
+ > the version in `pyproject.toml` is missing from it.
17
+
15
18
  ## Reporting a Vulnerability
16
19
 
17
20
  **Please do NOT report security vulnerabilities through public GitHub issues.**