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.
- {pactkit-2.26.0 → pactkit-2.27.0}/CHANGELOG.md +90 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/CODE_OF_CONDUCT.md +2 -2
- {pactkit-2.26.0 → pactkit-2.27.0}/CONTRIBUTING.md +4 -3
- {pactkit-2.26.0 → pactkit-2.27.0}/PKG-INFO +114 -23
- {pactkit-2.26.0 → pactkit-2.27.0}/README.md +109 -18
- {pactkit-2.26.0 → pactkit-2.27.0}/SECURITY.md +6 -3
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/adr/ADR-0006-verification-evidence-is-stamped-by-code-touchpo.md +1 -0
- pactkit-2.27.0/docs/architecture/governance/lessons/LESSON-20260916025924-0161b23415.md +10 -0
- pactkit-2.27.0/docs/architecture/governance/lessons/LESSON-20260916060833-a56ceb5473.md +10 -0
- pactkit-2.27.0/docs/architecture/governance/lessons/LESSON-20260916071655-f231d85eeb.md +10 -0
- pactkit-2.27.0/docs/architecture/governance/lessons/LESSON-20260916073935-f3b66ad2fa.md +10 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/rules.md +1 -1
- pactkit-2.27.0/docs/guides/support-matrix.md +73 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/sprint_board.md +73 -0
- pactkit-2.27.0/docs/product/stories/HOTFIX-slim-2026091645aa03e71927.yaml +24 -0
- pactkit-2.27.0/docs/product/stories/HOTFIX-slim-202609166519bc076345.yaml +18 -0
- pactkit-2.27.0/docs/product/stories/HOTFIX-slim-202609166a956c024963.yaml +12 -0
- pactkit-2.27.0/docs/product/stories/HOTFIX-slim-2026091673a4d1c8c33b.yaml +11 -0
- pactkit-2.27.0/docs/product/stories/HOTFIX-slim-2026091699cba1b49506.yaml +11 -0
- pactkit-2.27.0/docs/product/stories/HOTFIX-slim-20260916bcd9deb4bec0.yaml +18 -0
- pactkit-2.27.0/docs/product/stories/HOTFIX-slim-20260916cccbb8ee26fb.yaml +15 -0
- pactkit-2.27.0/docs/product/stories/STORY-slim-202609160fe9825c04b7.yaml +19 -0
- pactkit-2.27.0/docs/product/stories/STORY-slim-2026091644dd0bd263d1.yaml +18 -0
- pactkit-2.27.0/docs/product/stories/STORY-slim-202609165747a3fc13b8.yaml +28 -0
- pactkit-2.27.0/docs/product/stories/STORY-slim-20260916823f60779f1a.yaml +29 -0
- pactkit-2.27.0/docs/product/stories/STORY-slim-20260916e9aadb6b2b46.yaml +28 -0
- pactkit-2.27.0/docs/specs/HOTFIX-slim-2026091645aa03e71927.md +31 -0
- pactkit-2.27.0/docs/specs/HOTFIX-slim-202609166519bc076345.md +27 -0
- pactkit-2.27.0/docs/specs/HOTFIX-slim-202609166a956c024963.md +85 -0
- pactkit-2.27.0/docs/specs/HOTFIX-slim-2026091673a4d1c8c33b.md +110 -0
- pactkit-2.27.0/docs/specs/HOTFIX-slim-20260916991f0b0d0a2e.md +110 -0
- pactkit-2.27.0/docs/specs/HOTFIX-slim-2026091699cba1b49506.md +91 -0
- pactkit-2.27.0/docs/specs/HOTFIX-slim-20260916bcd9deb4bec0.md +23 -0
- pactkit-2.27.0/docs/specs/HOTFIX-slim-20260916c4f2a9e6b013.md +102 -0
- pactkit-2.27.0/docs/specs/HOTFIX-slim-20260916cccbb8ee26fb.md +21 -0
- pactkit-2.27.0/docs/specs/STORY-slim-202609160fe9825c04b7.md +223 -0
- pactkit-2.27.0/docs/specs/STORY-slim-202609165747a3fc13b8.md +176 -0
- pactkit-2.27.0/docs/specs/STORY-slim-20260916823f60779f1a.md +165 -0
- pactkit-2.27.0/docs/specs/STORY-slim-20260916b5beb25459bd.md +38 -0
- pactkit-2.27.0/docs/specs/STORY-slim-20260916e9aadb6b2b46.md +235 -0
- pactkit-2.27.0/docs/test_cases/STORY-slim-202609160fe9825c04b7_case.md +47 -0
- pactkit-2.27.0/docs/test_cases/STORY-slim-202609165747a3fc13b8_case.md +47 -0
- pactkit-2.27.0/docs/test_cases/STORY-slim-20260916823f60779f1a_case.md +48 -0
- pactkit-2.27.0/docs/test_cases/STORY-slim-20260916e9aadb6b2b46_case.md +53 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/pyproject.toml +3 -3
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/__init__.py +1 -1
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/auth_gate.py +19 -6
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/cleaners.py +39 -16
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/cli.py +113 -23
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/commit_gate.py +679 -136
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/config.py +181 -13
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/continuation.py +6 -6
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/enforcement.py +36 -17
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/generators/deployer.py +32 -7
- pactkit-2.27.0/src/pactkit/project_contract.py +180 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/prompts/commands.py +4 -4
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/prompts/rules.py +7 -0
- pactkit-2.27.0/src/pactkit/secrets_gate.py +146 -0
- pactkit-2.27.0/src/pactkit/tamper_guard.py +654 -0
- pactkit-2.27.0/src/pactkit/utils.py +415 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/__root__.txt +8 -3
- pactkit-2.27.0/tests/fixtures/cli_help_golden/adopt.txt +5 -0
- pactkit-2.27.0/tests/fixtures/cli_help_golden/project-preflight.txt +5 -0
- pactkit-2.27.0/tests/fixtures/cli_help_golden/reconcile.txt +5 -0
- pactkit-2.27.0/tests/fixtures/cli_help_golden/redetect-stack.txt +6 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/update.txt +3 -1
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/host_prompt_snapshots/classic.json +5 -5
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/host_prompt_snapshots/codex.json +11 -11
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/host_prompt_snapshots/opencode.json +11 -11
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_commit_gate.py +141 -4
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_gate_fail_closed.py +121 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_gate_reuse_dedup.py +4 -2
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_gate_telemetry.py +17 -6
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_hotfix_20260830_gate_cli.py +4 -2
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_hotfix_20260901_gate_docsonly.py +14 -2
- pactkit-2.27.0/tests/unit/test_hotfix_slim2026091645aa03e71927_cli_venv_fixes.py +98 -0
- pactkit-2.27.0/tests/unit/test_hotfix_slim202609166519bc076345_gate_dispatch.py +149 -0
- pactkit-2.27.0/tests/unit/test_hotfix_slim2026091673a4d1c8c33b_gate_bypass.py +364 -0
- pactkit-2.27.0/tests/unit/test_hotfix_slim20260916991f0b0d0a2e_audit_findings.py +411 -0
- pactkit-2.27.0/tests/unit/test_hotfix_slim2026091699cba1b49506_astra_findings.py +293 -0
- pactkit-2.27.0/tests/unit/test_hotfix_slim20260916bcd9deb4bec0_watchdog.py +92 -0
- pactkit-2.27.0/tests/unit/test_hotfix_slim20260916c4f2a9e6b013_gate_review.py +391 -0
- pactkit-2.27.0/tests/unit/test_hotfix_slim20260916cccbb8ee26fb_atomic_write.py +78 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_post_commit_stamp.py +67 -2
- pactkit-2.27.0/tests/unit/test_project_contract.py +64 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_prompt_cli_refs.py +3 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_push_gate.py +13 -3
- pactkit-2.27.0/tests/unit/test_readme_counts.py +230 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_release_v110.py +15 -8
- pactkit-2.27.0/tests/unit/test_stack_test_command.py +676 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story059_codex_removal.py +6 -1
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim20260915ac3e5c24fdd3_governance.py +21 -5
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim20260915eaf18678ce23_commit_path.py +48 -4
- pactkit-2.27.0/tests/unit/test_story_slim202609160fe9825c04b7_yaml_fidelity.py +205 -0
- pactkit-2.27.0/tests/unit/test_story_slim20260916823f60779f1a_verification_receipt.py +259 -0
- pactkit-2.27.0/tests/unit/test_support_matrix.py +101 -0
- pactkit-2.26.0/src/pactkit/secrets_gate.py +0 -83
- pactkit-2.26.0/src/pactkit/tamper_guard.py +0 -336
- pactkit-2.26.0/src/pactkit/utils.py +0 -162
- pactkit-2.26.0/tests/fixtures/cli_help_golden/redetect-stack.txt +0 -4
- pactkit-2.26.0/tests/unit/test_readme_counts.py +0 -127
- pactkit-2.26.0/tests/unit/test_stack_test_command.py +0 -300
- {pactkit-2.26.0 → pactkit-2.27.0}/.codegraph/.gitignore +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/.github/workflows/pactkit.yml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/.github/workflows/publish.yml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/.github/workflows/release-acceptance.yml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/.gitignore +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/AGENTS.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/LICENSE +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/STORY-slim-20260911b2bbd79889e0-review-round2.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/STORY-slim-202609144d0b3cb593aa-context-reuse.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/dimensions.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/INDEX.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/driver3.sh +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/driver4.sh +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/AC1/docs/specs/AC1.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/AC1/src/profile.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/AC1/tests/unit/test_profile.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/AC10/docs/ACT_NOTES.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/AC10/docs/specs/AC10.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/AC10/src/billing.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/AC2/docs/VERIFY.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/AC2/docs/specs/AC2.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/AC2/src/textutil.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/AC2/tests/unit/test_textutil.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/AC3/docs/specs/AC3.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/AC4/docs/specs/AC4.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/AC4/src/reporter.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/AC5/db/migrations/001_rename.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/AC5/docs/specs/AC5.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/AC5/premise.sh +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/AC5/src/deployer.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/AC5/src/workflow_engine.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/AC6/docs/specs/AC6.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/AC6/src/pull.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/AC7/NEEDS_GIT +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/AC7/docs/specs/AC7.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/AC7/post_git.sh +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/AC7/premise.sh +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/AC7/src/audit.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/AC7/tests/unit/test_audit.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/AC8/NEEDS_GIT +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/AC8/docs/specs/AC8.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/AC8/post_git.sh +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/AC8/premise.sh +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/AC8/src/audit.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/AC8/tests/unit/test_audit.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/AC9/NEEDS_GIT +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/AC9/docs/specs/AC9.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/AC9/post_git.sh +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/AC9/premise.sh +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/AC9/src/audit.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/AC9/tests/unit/test_audit.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/_template/README.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/_template/src/widget.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/fixtures/_template/tests/unit/test_widget.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/harness.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/prompts/AC1.txt +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/prompts/AC10.txt +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/prompts/AC2.txt +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/prompts/AC3.txt +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/prompts/AC4.txt +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/prompts/AC5.txt +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/prompts/AC6.txt +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/prompts/AC7.txt +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/prompts/AC8.txt +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/prompts/AC9.txt +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round1/baseline/AC1-r2.json.gz +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round1/baseline/AC1-r3.json.gz +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round1/baseline/AC10-r1.json.gz +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round1/baseline/AC2-r1.json.gz +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round1/baseline/AC3-r1.json.gz +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round1/baseline/AC4-r1.json.gz +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round1/baseline/AC5-r1.json.gz +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round1/baseline/AC5-r2.json.gz +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round1/baseline/AC6-r1.json.gz +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round1/baseline/AC7-r1.json.gz +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round1/baseline/AC7-r2.json.gz +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round1/baseline/AC8-r1.json.gz +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round1/baseline/AC9-r1.json.gz +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round1/baseline/AC9-r2.json.gz +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round1/candidate/AC1-r1.json.gz +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round1/candidate/AC1-r2.json.gz +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round1/candidate/AC1-r3.json.gz +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round1/candidate/AC10-r1.json.gz +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round1/candidate/AC2-r1.json.gz +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round1/candidate/AC3-r1.json.gz +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round1/candidate/AC4-r1.json.gz +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round1/candidate/AC5-r1.json.gz +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round1/candidate/AC5-r2.json.gz +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round1/candidate/AC6-r1.json.gz +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round1/candidate/AC7-r1.json.gz +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round1/candidate/AC7-r2.json.gz +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round1/candidate/AC8-r1.json.gz +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round1/candidate/AC9-r1.json.gz +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round1/candidate/AC9-r2.json.gz +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round3/baseline/AC1-r1.json +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round3/baseline/AC1-r12.json +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round3/baseline/AC1-r2.json +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round3/baseline/AC10-r1.json +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round3/baseline/AC2-r1.json +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round3/baseline/AC3-r1.json +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round3/baseline/AC4-r1.json +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round3/baseline/AC5-r1.json +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round3/baseline/AC5-r2.json +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round3/baseline/AC6-r1.json +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round3/baseline/AC7-r1.json +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round3/baseline/AC7-r2.json +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round3/baseline/AC8-r1.json +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round3/baseline/AC8-r11.json +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round3/baseline/AC9-r1.json +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round3/baseline/AC9-r11.json +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round3/baseline/AC9-r2.json +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round3/candidate/AC1-r1.json +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round3/candidate/AC1-r12.json +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round3/candidate/AC1-r2.json +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round3/candidate/AC10-r1.json +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round3/candidate/AC2-r1.json +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round3/candidate/AC3-r1.json +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round3/candidate/AC4-r1.json +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round3/candidate/AC5-r1.json +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round3/candidate/AC5-r2.json +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round3/candidate/AC6-r1.json +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round3/candidate/AC7-r1.json +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round3/candidate/AC7-r11.json +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round3/candidate/AC7-r2.json +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round3/candidate/AC8-r1.json +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round3/candidate/AC9-r1.json +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round3/candidate/AC9-r11.json +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/acceptance/r8-trial/records/round3/candidate/AC9-r2.json +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/adr/ADR-0001-compliance-enforcement-lives-in-code-gates-promp.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/adr/ADR-0002-guides-carry-operational-practice-content-not-ju.md +0 -0
- {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
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/adr/ADR-0004-verification-decisions-are-structured-data-consu.md +0 -0
- {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
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/adr/ADR-0007-config-layering-with-tighten-only-direction-cons.md +0 -0
- {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
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/archive/lessons_archive_202602.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/archive/lessons_archive_202603.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/archive/lessons_archive_202604.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/harness_audit.json +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260227-8e92f52c86.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260227-a21cacfde2.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260227-ccb19799ea.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260228-6e4b02ff08.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260228-b87245d5fc.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260302-8980b2512d.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260302-8f58fa2045.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260302-a3a1b7900e.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260303-3f65c0442b.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260304-23c605e495.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260304-8bd6c10219.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260305-129d1dea2a.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260305-48752d79c3.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260305-b9afdd8720.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260305-f93ee5b19f.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260306-7061390095.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260313-edf7807faf.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260316-091567c2bb.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260316-4661b3789a.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260316-7214dac8fc.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260317-3d8a855086.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260317-4ba69c35f0.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260317-6cd2a53ba5.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260317-7a0dd3407e.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260317-86927e3701.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260317-9a8025eaac.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260317-a0721cc066.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260317-a1f53d759b.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260317-a9f7897b36.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260317-ff430eaa29.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260318-fb0bcd928b.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260319-f320fbb5cc.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260320-b2d80c56b3.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260320-c102dbd6f8.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260320-e8f6ddae81.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260321-5e57da75b0.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260321-6a4a30628f.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260321-b5a58de3f9.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260321-e0138991ed.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260321-e49663fc95.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260322-4c0480e882.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260322-d1ece5c0d4.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260323-4bd30888ce.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260323-7a02b3eb85.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260323-8624e0d93a.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260323-a8faeea78c.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260324-075e3332b8.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260324-0f6f041a52.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260324-2dab5931de.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260324-8bcda73e9b.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260324-9e6238f0c8.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260324-a1cace9846.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260324-bf64dd9564.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260324-c344d7655c.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260324-e60c50dcc9.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260324-f5149caffe.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260325-1a5eeea04c.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260326-02460b22de.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260326-09de627b2b.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260326-204ea48f84.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260326-32e2fd3074.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260326-6c6dbfc365.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260326-7811ad7ff2.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260326-88e7123370.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260326-d2376010b1.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260326-e4f0eb8850.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260326-e68b8aa47f.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260326-fdd06ad981.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260327-e3c7f5abcb.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260330-eb1760def2.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260331-1b58a289ea.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260331-26e474753e.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260331-3028ab9cf5.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260331-350048862b.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260331-7d41cdf5a3.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260331-8e5558a077.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260331-c46df1c3b1.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260401-41515789f6.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260401-4453752dda.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260401-5a225a1c0a.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260401-90724b10f0.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260401-9e322eb76e.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260401-bd20019d3d.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260401-de035be681.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260401-f44c8f499e.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260401-fa52f596ff.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260402-5b063207c8.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260402-5e0913ec81.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260415-3d8b5e8f81.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260415-84219771ca.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260416-41d4564480.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260416-5cdc3cf53f.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260416-807c65a8e7.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260416-ade561c777.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260416-b78aaf129a.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260416-db8a5430a0.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260416-f5a765c496.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260417-f1d777e9c9.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260418-ee12f2ff0d.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260420-2260437be7.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260420-a35a083e29.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260420-fa7d958d56.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260421-309c998a10.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260422-6509ac4df0.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260422-8dd5ed6a24.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260423-b0890ad9c2.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260424-24cc1d5e19.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260424-39a99c887d.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260427-f7955d5775.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260507-7b75a5cab8.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260507-b26f97255d.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260525-1fe96d2ff4.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260525-717e18e190.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260525-df4853fa3f.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260526-4c230f3a9d.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260601-6d6b779a83.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260601-e65d3407ed.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260610-51c3cf895e.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260629-6171e54ac8.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260702-4616caa284.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260713-da6d40dcc0.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260723-d4c9801300.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260813-18efcf9687.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260813-1dc6e2e1c7.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260813-21d4da632f.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260817-3587ae1a22.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260817-5f08a6affa.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260817-800f717c9d.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260817-a2cd839a2d.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260822-9175485749.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260822105138-298451a42c.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260822105138-522c7e4af4.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260822105138-72cc1d0343.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260823015950-6b8cbea92e.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260823022240-d3570f57fb.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260823050717-9192db37f8.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260826072120-c6db5dd5b1.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260826074629-f5119ea78b.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260826080242-012107ada2.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260826082256-eff3747d60.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260827093143-3236113033.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260827095642-059a7e996b.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260827102057-e04522a6fc.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260828102433-81cd3e00a0.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260830034504-4f7d0f8c58.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260902100234-6fa7694bad.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260903031356-434a87fc47.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260903074136-2ad6569039.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260903074336-9d34da327e.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260903105934-7f4db3bb3d.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260905225746-b931bfdd36.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260905225755-a1676b4a92.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260905232251-99aae9139a.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260909071100-ae89cd100f.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260909071100-f0c830f573.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260911140126-2a137f5de7.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260914134141-1b7d68cc0d.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260915101454-f5cd8980ed.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons/LESSON-20260915101507-81b164b62d.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/lessons.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/philosophy.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/postmortems/PM-20260903-codex-stale-embedded-copies.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/architecture/governance/postmortems/PM-20260903-opencode-ledger-wipe.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/assets/logo.png +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/e2e/journey.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/guides/codex-integration-preresearch.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/guides/tool-integration-checklist.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/archive/archive_202602.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/archive/archive_202603.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/archive/archive_202604.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/archive/archive_202605.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/archive/archive_202606.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/archive/archive_202607.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/archive/archive_202608.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/context.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/friction-log.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/harness-comparison-2026-08-27.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/prd.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/HOTFIX-slim-127.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/HOTFIX-slim-131.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/HOTFIX-slim-132.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/HOTFIX-slim-20260828ee6cde3108fb.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/HOTFIX-slim-20260830bbb5bc219d35.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/HOTFIX-slim-20260901469666ef23a8.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/HOTFIX-slim-20260903d464746b1909.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/HOTFIX-slim-202609061713452e9748.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/HOTFIX-slim-2026090643cc9415bb85.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/HOTFIX-slim-202609064f74efbe75ac.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/HOTFIX-slim-2026090656e948c25a14.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/HOTFIX-slim-20260906a1457ace4c11.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/HOTFIX-slim-20260906a71fc0080034.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/HOTFIX-slim-20260906ac9bf3ab9910.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-115.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-118.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-119.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-145.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-147.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-148.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-149.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-2026082381e832771d4e.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-20260823d854b0cf1875.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-20260823de7e85d6042a.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-20260825b1c83a046b4b.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-202608264cf429c75e22.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-2026082672b57c78fd67.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-202608267c3989223b4d.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-202608268fc379dbe6ef.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-20260826ac1f0bfe4148.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-20260826cb37edfdd4da.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-20260826ce35b77ce005.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-20260826f9492ab32c3d.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-20260827024e71df170f.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-2026082727cc4ab535e7.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-2026082730b5954cf538.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-20260827625b870eb7da.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-202608277ec1236a7b99.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-20260827833e7a200f9a.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-20260827855bf3efaec3.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-2026082799fa651655be.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-20260827c67e3add6af5.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-20260827d0ae0dfada51.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-20260827eddbe9669c87.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-20260827fb6291b717eb.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-20260827fc9de5542ad7.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-20260828897396a935ab.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-202608289e83eeb30df4.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-20260828d43fae4edbb6.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-20260830c65491123af1.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-202609025bc9246b6a54.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-2026090301691dea72e8.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-2026090333d6b72f7645.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-20260903699c84c217e0.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-202609037a7d4be200e7.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-20260903a24e1ece0d7f.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-20260903a4ef6915ed62.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-20260903b5ce6be5f7e0.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-20260905efced66ebc9c.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-2026090699752886f924.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-20260909b90ba785f55a.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-20260909e47c92ef09ec.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-202609110568ba869adb.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-202609110d1567cfbc04.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-2026091122a1144a1ac5.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-20260911453c59076a8a.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-20260911511cde75db9b.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-20260911614214d936d9.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-2026091171392be2a603.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-2026091184808465e1fc.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-20260911912c981c9d5e.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-202609119b5e42fd459a.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-20260911ab8de391c5a9.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-20260911b1e7c94d3f28.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-20260911b2bbd79889e0.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-20260911ba339646a2da.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-20260911c4a8e17b6d02.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-20260912ddc450b6fdcf.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-202609144d0b3cb593aa.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-2026091519c812a6db71.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-20260915ac3e5c24fdd3.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/product/stories/STORY-slim-20260915eaf18678ce23.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/reference/phases.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/reference/rules.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/reference/workflow-units.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-001.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-002.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-003.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-004.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-005.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-006.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-007.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-008.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-009.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-010.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-011.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-012.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-013.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-014.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-015.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-016.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-017.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-018.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-019.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-020.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-021.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-022.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-023.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-024.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-025.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-026.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-027.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-028.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-029.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-030.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-031.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-032.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-033.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-034.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-035.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-slim-001.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-slim-002.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-slim-003.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-slim-004.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-slim-005.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-slim-006.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-slim-089.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/BUG-slim-107.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/HOTFIX-slim-023.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/HOTFIX-slim-049.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/HOTFIX-slim-050.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/HOTFIX-slim-051.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/HOTFIX-slim-052.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/HOTFIX-slim-061.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/HOTFIX-slim-062.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/HOTFIX-slim-067.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/HOTFIX-slim-069.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/HOTFIX-slim-070.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/HOTFIX-slim-085.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/HOTFIX-slim-087.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/HOTFIX-slim-096.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/HOTFIX-slim-099.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/HOTFIX-slim-107.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/HOTFIX-slim-117.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/HOTFIX-slim-122.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/HOTFIX-slim-123.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/HOTFIX-slim-126.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/HOTFIX-slim-127.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/HOTFIX-slim-130.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/HOTFIX-slim-131.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/HOTFIX-slim-132.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/HOTFIX-slim-20260828ee6cde3108fb.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/HOTFIX-slim-20260830bbb5bc219d35.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/HOTFIX-slim-20260901469666ef23a8.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/HOTFIX-slim-20260903d464746b1909.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/HOTFIX-slim-202609061713452e9748.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/HOTFIX-slim-2026090643cc9415bb85.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/HOTFIX-slim-202609064f74efbe75ac.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/HOTFIX-slim-2026090656e948c25a14.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/HOTFIX-slim-20260906a1457ace4c11.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/HOTFIX-slim-20260906a71fc0080034.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/HOTFIX-slim-20260906ac9bf3ab9910.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-001.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-002.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-003.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-004.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-005.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-006.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-007.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-008.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-009.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-010.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-011.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-012.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-013.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-014.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-015.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-016.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-017.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-018.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-019.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-020.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-021.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-022.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-023.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-024.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-025.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-026.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-027.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-028.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-029.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-030.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-031.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-032.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-033.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-034.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-035.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-036.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-037.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-038.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-039.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-040.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-041.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-042.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-043.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-044.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-045.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-046.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-047.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-048.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-049.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-050.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-051.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-052.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-053.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-054.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-055.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-056.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-057.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-058.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-059.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-060.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-061.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-062.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-063.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-064.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-065.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-069.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-070.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-071.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-072.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-073.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-001.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-005.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-006.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-007.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-009.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-010.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-011.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-012.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-013.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-014.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-015.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-016.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-017.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-018.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-019.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-020.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-021.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-022.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-023.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-024.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-028.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-029.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-030.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-031.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-032.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-033.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-034.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-035.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-036.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-037.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-038.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-039.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-040.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-041.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-042.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-043.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-044.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-045.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-046.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-047.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-048.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-049.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-050.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-051.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-052.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-053.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-054.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-055.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-056.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-057.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-058.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-059.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-060.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-063.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-066.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-067.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-068.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-069.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-070.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-071.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-072.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-073.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-074.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-075.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-076.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-077.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-078.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-079.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-080.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-081.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-082.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-083.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-084.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-086.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-088.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-089.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-090.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-091.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-092.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-093.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-094.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-095.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-097.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-098.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-099.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-100.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-101.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-102.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-103.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-104.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-105.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-106.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-107.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-108.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-109.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-110.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-111.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-112.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-113.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-114.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-115.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-116.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-118.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-119.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-120.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-121.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-124.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-125.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-126.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-127.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-128.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-129.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-132.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-133.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-134.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-135.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-136.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-137.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-138.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-139.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-140.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-141.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-142.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-143.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-144.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-145.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-146.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-147.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-148.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-149.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-2026082381e832771d4e.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-20260823d854b0cf1875.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-20260823de7e85d6042a.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-2026082466c8670d9655.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-20260824dd23a0ed3b4c.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-20260825b1c83a046b4b.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-202608264cf429c75e22.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-2026082672b57c78fd67.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-202608267c3989223b4d.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-202608268fc379dbe6ef.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-20260826ac1f0bfe4148.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-20260826cb37edfdd4da.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-20260826ce35b77ce005.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-20260826f9492ab32c3d.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-20260827024e71df170f.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-2026082727cc4ab535e7.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-2026082730b5954cf538.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-20260827625b870eb7da.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-20260827833e7a200f9a.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-20260827855bf3efaec3.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-20260827eddbe9669c87.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-20260827fb6291b717eb.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-20260827fc9de5542ad7.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-20260828897396a935ab.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-202608289e83eeb30df4.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-20260828d43fae4edbb6.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-20260830c65491123af1.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-202609025bc9246b6a54.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-2026090301691dea72e8.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-2026090333d6b72f7645.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-20260903699c84c217e0.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-202609037a7d4be200e7.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-20260903a24e1ece0d7f.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-20260903a4ef6915ed62.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-20260903b5ce6be5f7e0.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-20260905efced66ebc9c.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-2026090699752886f924.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-20260909b90ba785f55a.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-20260909e47c92ef09ec.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-202609110568ba869adb.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-202609110d1567cfbc04.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-2026091122a1144a1ac5.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-20260911453c59076a8a.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-20260911511cde75db9b.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-20260911614214d936d9.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-2026091171392be2a603.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-2026091184808465e1fc.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-20260911912c981c9d5e.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-202609119b5e42fd459a.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-20260911ab8de391c5a9.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-20260911b1e7c94d3f28.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-20260911b2bbd79889e0.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-202609144d0b3cb593aa.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-20260915ac3e5c24fdd3.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/specs/STORY-slim-20260915eaf18678ce23.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/BUG-001_case.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/BUG-002_case.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-028_case.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-029_case.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-031_case.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-032_case.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-033_case.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-034_case.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-135_case.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-136_case.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-137_case.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-138_case.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-139_case.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-140_case.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-141_case.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-142_case.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-143_case.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-144_case.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-146_case.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-147_case.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-148_case.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-149_case.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-2026082381e832771d4e_case.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-20260823d854b0cf1875_case.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-20260823de7e85d6042a_case.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-20260825b1c83a046b4b_case.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-202608264cf429c75e22_case.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-2026082672b57c78fd67_case.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-202608267c3989223b4d_case.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-202608268fc379dbe6ef_case.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-20260826ac1f0bfe4148_case.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-20260826cb37edfdd4da_case.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-20260826ce35b77ce005_case.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-20260826f9492ab32c3d_case.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-20260827024e71df170f_case.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-20260827eddbe9669c87_case.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-20260827fc9de5542ad7_case.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-20260828897396a935ab_case.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-20260830c65491123af1_case.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-202609025bc9246b6a54_case.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-2026090301691dea72e8_case.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-2026090333d6b72f7645_case.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-20260903699c84c217e0_case.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-202609037a7d4be200e7_case.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-20260903a24e1ece0d7f_case.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-20260903a4ef6915ed62_case.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-20260903b5ce6be5f7e0_case.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-20260905efced66ebc9c_case.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-20260909b90ba785f55a_case.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-20260909e47c92ef09ec_case.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-20260911b2bbd79889e0_case.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-202609144d0b3cb593aa_case.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-20260915ac3e5c24fdd3_case.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/docs/test_cases/STORY-slim-20260915eaf18678ce23_case.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/opencode.json +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/__main__.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/accept_candidates.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/audit.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/backfill.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/baseline.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/context_gen.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/coverage_gate.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/delivery_evidence.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/deploy_manifest.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/deployment_transaction.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/deps.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/doctor.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/done_verify.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/garden.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/gate_matrix.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/generators/__init__.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/generators/claude_md.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/generators/command_ownership.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/generators/deploy_base.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/governance.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/graph_query.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/guards.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/host_continuation.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/id_generator.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/invariants.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/issue_sync.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/lazy_visualize.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/legacy/__init__.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/legacy/host_continuation.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/legacy/usage.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/legacy/workflow_engine.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/lessons.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/lint_runner.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/observe.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/orchestration_cost.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/plugin_manifest.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/portable_methods.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/profiles.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/project_root.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/prompts/__init__.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/prompts/agents.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/prompts/guides.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/prompts/references.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/prompts/skills.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/prompts/workflows.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/protocols.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/reference.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/regression.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/risk_profile.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/rule_diagnostics.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/rule_events.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/rules_eval.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/run_events.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/run_stats.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/schemas.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/scripts.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/sec_scope.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/session_gate.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/skills/__init__.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/skills/analyzers/__init__.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/skills/analyzers/go_analyzer.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/skills/analyzers/java_analyzer.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/skills/analyzers/python_analyzer.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/skills/analyzers/ts_analyzer.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/skills/board.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/skills/interface_summary.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/skills/report.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/skills/scaffold.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/skills/spec_linter.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/skills/visualize.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/spec_graph.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/spec_preflight.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/spec_status.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/test_mapper.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/uninstall.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/validators.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/workflow_engine.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/workflow_registry.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/src/pactkit/workflow_validators.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/conftest.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/e2e/__init__.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/e2e/acceptance/__init__.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/e2e/acceptance/test_verification_acceptance.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/e2e/cli/__init__.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/e2e/cli/test_cli_e2e.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/e2e/cli/test_story_slim146_cli.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/e2e/cli/test_story_slim147_workflow_cli.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/e2e/cli/test_story_slim148_governance_cli.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/e2e/cli/test_story_slim149_query_cli.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/agent_parser/agents_dir/researcher.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/agent_parser/agents_dir/writer.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/agent_parser/langgraph_app.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/agent_parser/mcp_settings.json +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/api_call_parser/axios_style.tsx +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/api_call_parser/dynamic.tsx +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/api_call_parser/page.tsx +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/accept-candidates.txt +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/audit.txt +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/backfill-release.txt +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/board.txt +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/clean.txt +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/commit-gate.txt +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/context.txt +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/continuation.txt +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/coverage-gate.txt +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/deps.txt +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/doctor.txt +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/done-verify.txt +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/garden.txt +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/gate.txt +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/generate-id.txt +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/governance.txt +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/guard.txt +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/guide.txt +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/init.txt +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/interface-summary.txt +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/invariants-refresh.txt +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/issue-sync.txt +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/lesson-append.txt +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/lint-adr.txt +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/lint-context.txt +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/lint-lessons.txt +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/lint-testcase.txt +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/lint.txt +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/mcp.txt +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/observe.txt +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/query.txt +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/regression.txt +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/report.txt +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/risk.txt +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/rules-eval.txt +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/schema.txt +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/sec-scope.txt +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/spec-graph.txt +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/spec-lint.txt +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/spec-preflight.txt +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/spec-status.txt +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/stats.txt +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/sync.txt +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/test-map.txt +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/uninstall.txt +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/upgrade.txt +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/version.txt +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/visualize.txt +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/work-unit.txt +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/cli_help_golden/workflow.txt +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/config_golden/copy_claude.json +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/config_golden/copy_claude.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/config_golden/copy_codex.json +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/config_golden/copy_codex.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/config_golden/copy_github.json +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/config_golden/copy_github.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/config_golden/empty.json +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/config_golden/empty.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/config_golden/full_legacy.json +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/config_golden/full_legacy.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/config_golden/minimal.json +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/config_golden/minimal.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/config_golden/unknown_keys.json +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/config_golden/unknown_keys.yaml +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/rules_corpus/STORY-c-001.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/rules_corpus/STORY-c-002.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/rules_corpus/STORY-c-003.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/rules_corpus/STORY-c-004.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/rules_corpus/STORY-c-005.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/rules_corpus/STORY-c-006.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/rules_corpus/STORY-c-007.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/rules_corpus/STORY-c-008.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/rules_corpus/STORY-c-009.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/rules_corpus/STORY-c-010.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/rules_corpus/STORY-c-011.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/rules_corpus/STORY-c-012.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/rules_corpus/STORY-c-013.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/rules_corpus/STORY-c-014.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/rules_corpus/STORY-c-015.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/rules_corpus/STORY-c-016.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/rules_corpus/STORY-c-017.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/rules_corpus/STORY-c-018.md +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/fixtures/rules_corpus/manifest.json +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/integration/__init__.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/integration/test_deploy_classic.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/scripts/refresh_host_prompt_snapshots.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/scripts/refresh_reference_docs.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_ac4_ownership_evidence.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_accept_candidates.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_agent_features.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_agent_frontmatter.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_agents_enrichment.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_audit.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_audit_suggested_tasks.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_b1_effective_config.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_b2_display_accuracy.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_baseline_failure_surface.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_blast_radius.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_board_bug027.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_board_sections.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_bug001_skill_path.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_bug002_plugin_paths.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_bug003_multi_import.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_bug004_dead_set.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_bug005_archive_taskless.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_bug006_scan_excludes.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_bug007_stale_trace_refs.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_bug008_stale_command_refs.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_bug009_project_config_backfill.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_bug010_rewrite_yaml.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_bug011_stale_refs.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_bug012_call_graph_filter.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_bug013_config_single_source.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_bug014_version_hygiene.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_bug017_project_init_playbook.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_bug018_issue_tracker_verification.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_bug019_venv_deployment.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_bug020_claude_md_backup.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_bug025_release_delegation.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_bug026_version_sync.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_bug028_ghost_refs.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_bug029_stack_detection_fallback.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_bug030_spec_lint_cli.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_bug031_docstring_accuracy.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_bug034_plan_metadata_template.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_bug_021.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_bug_022.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_bug_023.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_bug_024.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_bug_slim001_env_detection.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_bug_slim002_instruction_collision.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_bug_slim003.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_bug_slim004.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_bug_slim005.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_bug_slim006.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_bug_slim089_global_claude_md.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_c1_body_snapshots.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_c1_legacy_and_cost.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_candidate_cleanup.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_check_command.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_check_extensions_072_073.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_check_playbook_072_073.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_cli_help_surface.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_codex_hook_channel.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_codex_hook_migration.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_codex_plugin_manifest.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_command_frontmatter.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_command_ownership_v2.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_command_visualize_modes.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_complexity.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_config.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_config_auto_merge.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_config_sync_precedence.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_constitution_sharpening.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_context_gen.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_continuation_hardening.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_contract_conflict_fixes.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_create_skill.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_cross_flow_matrix.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_decision_traceability.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_deploy_base.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_deploy_ledger_lifecycle.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_deploy_ownership_safety.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_deployer_cleanup.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_deployer_plugin.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_deployment_transaction.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_deps.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_design_command.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_done_gates.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_done_verify.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_draw_prompt.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_draw_references.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_drawio_mcp.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_enforcement.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_engine_robustness.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_enterprise_flags.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_garden.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_gate_junit_counts.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_gate_matrix.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_home_path_fix.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_hook_expansion.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_host_prompt_snapshots.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_hotfix_20260903_design_research.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_hotfix_20260903_visualize_sync.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_hotfix_20260914_guide_wording.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_hotfix_command.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_hotfix_legacy_constitution.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_init_global_disclosure.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_init_guard.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_init_playbook_074.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_interface_summary.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_lang_profiles.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_layer_violations.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_legacy_engine_freeze.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_lessons_rotation_075.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_list_stories.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_marketplace_stale_claude_md.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_mcp_integration.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_mcp_retired.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_model_config.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_modular_constitution.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_monorepo_detect.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_multi_prefix.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_observe.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_orchestration_cost.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_org_baseline.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_pdca_semantics_v2.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_pdca_slim.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_profiles.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_project_root.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_project_visibility.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_prompt_cli_contract.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_prompt_quality_075.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_prompt_structural_invariants.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_prompts_package.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_reference_drift.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_release.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_release_field.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_render_prompt.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_report_parser.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_report_unified.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_resolve_scope.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_review_command.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_rule_diagnostics.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_rule_registry_architecture.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_rules_enrichment.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_rules_eval.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_run_events.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_run_stats.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_scaffold.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_scaffold_developer_prefix.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_schemas.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_script_extraction.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_security_dimension_rules.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_selective_deploy.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_session_context.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_skill_structure.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_skills_enrichment.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_slim_deps_088.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_smart_regression.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_solution_design_rule.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_spec_guard_repeat.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_spec_preflight.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_sprint_command.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_stack_references.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_status_command.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_statusline.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story014_release.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story015_ci_lint_gate.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story016_claude_md.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story017_init_claude_md.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story018_arch_staleness.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story019_bailout.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story020_horizon.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story021_rfc.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story022_decision_tree.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story023_test_quality.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story024_native_agent.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story025_ci_pipeline.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story026_issue_tracker.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story028_rule_scoping.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story029_doctor.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story030_lint.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story031_git_init_guard.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story032_greenfield_redirect.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story033_config_backfill.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story034_plan_config_refresh.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story035_readme_docs.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story037_regression_fix.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story038_call_graph_update.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story039_venv_config.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story040_layered_claude_md.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story042_spec_linter.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story043_active_clarify.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story044_consistency_check.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story045_auto_pr.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story047_enterprise_flags.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story048_worktree_isolation.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story049_community_standards.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story050_doc_only_shortcut.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story051_workflow_streamlining.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story052_conditional_github_release.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story053_impact_regression.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story055_commands.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story055_config.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story055_spec_linter.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story056_commands.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story056_config.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story057_implicit_cleanup.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story058_opencode_extraction.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story058_routing_fix.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story060_init_hang.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story061_remove_thinking.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story063_prompt_slimming.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story064_venv_local_md.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story065_sprint_model.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story072_developer_prefix.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story106_lateral_scan.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story133_debug_skill.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_2026090301_rule_compliance.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_2026090333_sdlc_t1.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_202609037a_practice_batch2.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_20260903b5_practice_guides.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_202609144d0b3cb593aa_context_reuse.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_pdca_host_capsules.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_pdca_semantics_v2.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim009_lazy_rules.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim010_dry_refactor.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim011_command_rules.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim012_ci.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim014_clean.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim014_context.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim014_guard.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim014_lazy_viz.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim014_next_id.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim014_regression.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim014_sec_scope.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim014_validators.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim015_doctor.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim016_testmap_lint.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim017.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim018.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim019_plan_subphases.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim020_explore_stall_fix.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim021.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim022.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim023.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim024.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim025.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim026.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim027.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim028.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim029.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim030.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim031.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim032.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim033.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim034.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim035.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim036.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim037.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim038.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim039.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim040.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim041.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim042.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim043.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim044.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim045.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim046.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim047.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim048.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim049.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim051.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim052.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim053.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim054.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim055.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim056.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim060_codex_profile.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim063.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim065.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim076_multistack.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim077_monorepo_stack.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim078.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim079.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim080.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim081.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim082.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim083.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim084.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim095.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim098_pdca_nudge.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim099_act_context_ref.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim102_version_marker.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim104_should_semantics.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim107.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim109_journey_spec.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim111_playwright_assertion.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim112_rules_split.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim114_journey_sync.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim119.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim120.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim121.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim125.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim126.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim127_managed_block.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim128_engineering_concerns.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim132.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim134_no_model_in_frontmatter.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim135_config_schema.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim139_skill_manifest.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim141_manifest_hash.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim142_all_target_isolation.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim143_spec_graph.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim144_wave_mode.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim145.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim146.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim147.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim148.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim149.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim150.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim_stop_hook.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_story_slim_work_units.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_tools.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_topology_parsers_066.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_uninstall.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_uninstall_cli_defaults.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_update_task.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_verification_decision.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_visualize_call_nested.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_visualize_chain_fix.py +0 -0
- {pactkit-2.26.0 → pactkit-2.27.0}/tests/unit/test_visualize_modes.py +0 -0
- {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
|
|
8
|
-
|
|
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.
|
|
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
|
-
Requires-Dist: pactkit-opencode
|
|
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.
|
|
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
|
|
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).
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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/ <-
|
|
369
|
-
├── skills/ <-
|
|
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/ <-
|
|
381
|
-
├── commands/ <-
|
|
432
|
+
├── rules/ <- 21 rule modules
|
|
433
|
+
├── commands/ <- 12 command playbooks (auto-discovered, invoked via /)
|
|
382
434
|
├── agents/ <- 9 agent definitions (mode: subagent)
|
|
383
|
-
├── skills/ <-
|
|
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/ <-
|
|
396
|
-
├── skills/ <-
|
|
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
|
|
442
|
-
| `skills` | list | all
|
|
443
|
-
| `rules` | list | all
|
|
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
|
|
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).
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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/ <-
|
|
321
|
-
├── skills/ <-
|
|
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/ <-
|
|
333
|
-
├── commands/ <-
|
|
384
|
+
├── rules/ <- 21 rule modules
|
|
385
|
+
├── commands/ <- 12 command playbooks (auto-discovered, invoked via /)
|
|
334
386
|
├── agents/ <- 9 agent definitions (mode: subagent)
|
|
335
|
-
├── skills/ <-
|
|
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/ <-
|
|
348
|
-
├── skills/ <-
|
|
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
|
|
394
|
-
| `skills` | list | all
|
|
395
|
-
| `rules` | list | all
|
|
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
|
|
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.
|
|
8
|
-
| 2.
|
|
9
|
-
| < 2.
|
|
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.**
|