PTSIP 0.3.8a2__tar.gz → 0.3.8a3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (332) hide show
  1. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/PKG-INFO +32 -16
  2. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/README.md +31 -15
  3. ptsip-0.3.8a3/docs/Support_policy/policy/SFP-0022.yaml +53 -0
  4. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/docs/Support_policy/policy/index.yaml +3 -0
  5. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/docs/Support_policy/policy/registries/ptsip-support-authority-role-registry.yaml +12 -0
  6. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/docs/Support_policy/policy/registries/ptsip-support-authority-schema-registry.yaml +5 -0
  7. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/docs/Support_policy/policy/registries/ptsip-support-authority-subject-registry.yaml +1 -0
  8. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/docs/Support_policy/policy/schemas/ptsip-support-authority-semantics.schema.json +44 -0
  9. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/docs/Support_policy/policy/schemas/ptsip-support-feature-policy-index.schema.json +2 -2
  10. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/pyproject.toml +1 -1
  11. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/PTSIP.egg-info/PKG-INFO +32 -16
  12. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/PTSIP.egg-info/SOURCES.txt +2 -0
  13. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/cli.py +65 -0
  14. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/constants.py +1 -1
  15. ptsip-0.3.8a3/src/ptsip/context_plane.py +687 -0
  16. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/License-Authority/COMMERCIAL-USE.md +0 -0
  17. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/License-Authority/LICENSE-GUIDE.md +0 -0
  18. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/License-Authority/LICENSE-HISTORY.md +0 -0
  19. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/License-Authority/LICENSE.md +0 -0
  20. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/License-Authority/NOTICE.md +0 -0
  21. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/License-Authority/license-authority.yaml +0 -0
  22. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/MANIFEST.in +0 -0
  23. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/docs/Support_policy/policy/SFP-0001.yaml +0 -0
  24. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/docs/Support_policy/policy/SFP-0002.yaml +0 -0
  25. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/docs/Support_policy/policy/SFP-0003.yaml +0 -0
  26. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/docs/Support_policy/policy/SFP-0004.yaml +0 -0
  27. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/docs/Support_policy/policy/SFP-0005.yaml +0 -0
  28. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/docs/Support_policy/policy/SFP-0006.yaml +0 -0
  29. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/docs/Support_policy/policy/SFP-0007.yaml +0 -0
  30. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/docs/Support_policy/policy/SFP-0008.yaml +0 -0
  31. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/docs/Support_policy/policy/SFP-0009.yaml +0 -0
  32. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/docs/Support_policy/policy/SFP-0010.yaml +0 -0
  33. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/docs/Support_policy/policy/SFP-0011.yaml +0 -0
  34. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/docs/Support_policy/policy/SFP-0012.yaml +0 -0
  35. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/docs/Support_policy/policy/SFP-0013.yaml +0 -0
  36. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/docs/Support_policy/policy/SFP-0014.yaml +0 -0
  37. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/docs/Support_policy/policy/SFP-0015.yaml +0 -0
  38. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/docs/Support_policy/policy/SFP-0016.yaml +0 -0
  39. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/docs/Support_policy/policy/SFP-0017.yaml +0 -0
  40. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/docs/Support_policy/policy/SFP-0018.yaml +0 -0
  41. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/docs/Support_policy/policy/SFP-0019.yaml +0 -0
  42. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/docs/Support_policy/policy/SFP-0020.yaml +0 -0
  43. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/docs/Support_policy/policy/SFP-0021.yaml +0 -0
  44. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/docs/Support_policy/policy/registries/ptsip-support-authorization-registry.yaml +0 -0
  45. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/docs/Support_policy/policy/schemas/ptsip-support-authority-eligibility-result.schema.json +0 -0
  46. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/docs/Support_policy/policy/schemas/ptsip-support-authority-role.schema.json +0 -0
  47. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/docs/Support_policy/policy/schemas/ptsip-support-feature-policy.schema.json +0 -0
  48. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/docs/Support_policy/policy/schemas/ptsip-support-governance-registry.schema.json +0 -0
  49. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/docs/Support_policy/policy/schemas/ptsip-support-project-authority-record.schema.json +0 -0
  50. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/docs/Support_policy/policy/schemas/ptsip-support-subject-binding.schema.json +0 -0
  51. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/profiles/example.ptsip.yaml +0 -0
  52. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/profiles/history/pp.1.01/example.ptsip.yaml +0 -0
  53. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/profiles/history/pp.1.01/hybrid-python-package.ptsip.yaml +0 -0
  54. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/profiles/history/pp.1.01/template-python-package.ptsip.yaml +0 -0
  55. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/profiles/history/pp.1.02/example.ptsip.yaml +0 -0
  56. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/profiles/history/pp.1.02/hybrid-python-package.ptsip.yaml +0 -0
  57. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/profiles/history/pp.1.02/template-python-package.ptsip.yaml +0 -0
  58. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/profiles/hybrid-python-package.ptsip.yaml +0 -0
  59. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/profiles/index.yaml +0 -0
  60. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/profiles/template-python-package.ptsip.yaml +0 -0
  61. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/registry/project-profile-contracts.yaml +0 -0
  62. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/setup.cfg +0 -0
  63. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/setup.py +0 -0
  64. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/PTSIP.egg-info/dependency_links.txt +0 -0
  65. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/PTSIP.egg-info/entry_points.txt +0 -0
  66. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/PTSIP.egg-info/requires.txt +0 -0
  67. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/PTSIP.egg-info/top_level.txt +0 -0
  68. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/__init__.py +0 -0
  69. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/actions/analyze-source-profile.yaml +0 -0
  70. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/actions/apply-adoption.yaml +0 -0
  71. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/actions/apply-profile-transition.yaml +0 -0
  72. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/actions/build-adoption-plan.yaml +0 -0
  73. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/actions/build-transition-plan.yaml +0 -0
  74. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/actions/capture-repository-snapshot.yaml +0 -0
  75. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/actions/collect-conformance-evidence.yaml +0 -0
  76. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/actions/compare-profile-authority.yaml +0 -0
  77. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/actions/emit-conformance-result.yaml +0 -0
  78. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/actions/evaluate-conformance-rules.yaml +0 -0
  79. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/actions/map-profile-target.yaml +0 -0
  80. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/actions/project-authority-winner.yaml +0 -0
  81. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/actions/read-relevant-authority.yaml +0 -0
  82. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/actions/resolve-adoption-facts.yaml +0 -0
  83. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/actions/resolve-profile-schema.yaml +0 -0
  84. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/actions/resolve-reconciliation-state.yaml +0 -0
  85. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/actions/validate-profile-structure.yaml +0 -0
  86. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/actions/validate-responsibility-map-semantics.yaml +0 -0
  87. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/bindings/current.yaml +0 -0
  88. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/conditions/adopt-apply-requested.yaml +0 -0
  89. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/conditions/adopt-authority-fresh.yaml +0 -0
  90. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/conditions/adopt-facts-resolved.yaml +0 -0
  91. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/conditions/adopt-profile-fresh.yaml +0 -0
  92. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/conditions/adopt-repository-fresh.yaml +0 -0
  93. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/conditions/adopt-snapshot-identified.yaml +0 -0
  94. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/conditions/adopt-write-authorized.yaml +0 -0
  95. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/conditions/authority-authority-fresh.yaml +0 -0
  96. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/conditions/authority-coordination-available.yaml +0 -0
  97. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/conditions/authority-profile-fresh.yaml +0 -0
  98. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/conditions/authority-projection-required.yaml +0 -0
  99. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/conditions/authority-semantic-conflict-absent.yaml +0 -0
  100. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/conditions/authority-write-authorized.yaml +0 -0
  101. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/conditions/conform-profile-ready.yaml +0 -0
  102. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/conditions/conform-snapshot-identified.yaml +0 -0
  103. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/conditions/migrate-apply-requested.yaml +0 -0
  104. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/conditions/migrate-source-fresh.yaml +0 -0
  105. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/conditions/migrate-source-profile-identified.yaml +0 -0
  106. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/conditions/migrate-target-contract-resolved.yaml +0 -0
  107. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/conditions/migrate-target-fresh.yaml +0 -0
  108. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/conditions/migrate-write-authorized.yaml +0 -0
  109. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/conditions/validate-contract-resolved.yaml +0 -0
  110. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/conditions/validate-profile-selected.yaml +0 -0
  111. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/gates/adoption-write.yaml +0 -0
  112. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/gates/authority-projection-write.yaml +0 -0
  113. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/gates/profile-transition-write.yaml +0 -0
  114. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/index.yaml +0 -0
  115. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/operations/adopt.yaml +0 -0
  116. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/operations/conform.yaml +0 -0
  117. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/operations/migrate-profile.yaml +0 -0
  118. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/operations/reconcile-authority.yaml +0 -0
  119. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/operations/validate.yaml +0 -0
  120. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/resolver.py +0 -0
  121. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/schemas/contracts/action.schema.json +0 -0
  122. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/schemas/contracts/binding.schema.json +0 -0
  123. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/schemas/contracts/condition.schema.json +0 -0
  124. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/schemas/contracts/index.schema.json +0 -0
  125. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/schemas/contracts/io.schema.json +0 -0
  126. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/schemas/contracts/mutation-gate.schema.json +0 -0
  127. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/schemas/contracts/operation.schema.json +0 -0
  128. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/schemas/contracts/spec.schema.json +0 -0
  129. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/schemas/contracts/vocabulary.schema.json +0 -0
  130. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/schemas/io/adopt-request.schema.json +0 -0
  131. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/schemas/io/adopt-result.schema.json +0 -0
  132. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/schemas/io/adopt-state.schema.json +0 -0
  133. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/schemas/io/authority-request.schema.json +0 -0
  134. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/schemas/io/authority-result.schema.json +0 -0
  135. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/schemas/io/authority-state.schema.json +0 -0
  136. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/schemas/io/conform-request.schema.json +0 -0
  137. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/schemas/io/conform-result.schema.json +0 -0
  138. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/schemas/io/conform-state.schema.json +0 -0
  139. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/schemas/io/migrate-request.schema.json +0 -0
  140. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/schemas/io/migrate-result.schema.json +0 -0
  141. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/schemas/io/migrate-state.schema.json +0 -0
  142. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/schemas/io/validate-request.schema.json +0 -0
  143. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/schemas/io/validate-result.schema.json +0 -0
  144. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/schemas/io/validate-state.schema.json +0 -0
  145. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/spec/adoption-procedure.yaml +0 -0
  146. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/spec/adoption.yaml +0 -0
  147. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/spec/agent-behavior.yaml +0 -0
  148. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/spec/authority.yaml +0 -0
  149. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/spec/classification.yaml +0 -0
  150. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/spec/conformance-detail.yaml +0 -0
  151. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/spec/conformance.yaml +0 -0
  152. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/spec/core.yaml +0 -0
  153. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/spec/governance.yaml +0 -0
  154. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/spec/profile-transition-detail.yaml +0 -0
  155. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/spec/profile-transition.yaml +0 -0
  156. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/spec/repository-boundaries.yaml +0 -0
  157. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/spec/responsibility-map-detail.yaml +0 -0
  158. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/spec/responsibility-map.yaml +0 -0
  159. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/spec/specification-governance.yaml +0 -0
  160. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/validator.py +0 -0
  161. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/vocabulary/authority.yaml +0 -0
  162. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/vocabulary/diagnostics.yaml +0 -0
  163. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/vocabulary/lifecycle.yaml +0 -0
  164. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/vocabulary/outcomes.yaml +0 -0
  165. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/agent_contracts/vocabulary/terminology.yaml +0 -0
  166. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/__init__.py +0 -0
  167. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/__main__.py +0 -0
  168. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/adoption.py +0 -0
  169. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/agent_contracts/__init__.py +0 -0
  170. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/agent_contracts/bindings/current.yaml +0 -0
  171. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/agent_contracts/index.yaml +0 -0
  172. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/agent_contracts/operations/adopt.yaml +0 -0
  173. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/agent_contracts/operations/conform.yaml +0 -0
  174. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/agent_contracts/operations/migrate-profile.yaml +0 -0
  175. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/agent_contracts/operations/reconcile-authority.yaml +0 -0
  176. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/agent_contracts/operations/validate.yaml +0 -0
  177. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/agent_contracts/runtime.py +0 -0
  178. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/agent_contracts/schemas/binding.schema.json +0 -0
  179. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/agent_contracts/schemas/index.schema.json +0 -0
  180. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/agent_contracts/schemas/operation.schema.json +0 -0
  181. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/agent_contracts/schemas/spec.schema.json +0 -0
  182. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/agent_contracts/schemas/vocabulary.schema.json +0 -0
  183. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/agent_contracts/spec/adoption.yaml +0 -0
  184. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/agent_contracts/spec/authority.yaml +0 -0
  185. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/agent_contracts/spec/classification.yaml +0 -0
  186. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/agent_contracts/spec/conformance.yaml +0 -0
  187. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/agent_contracts/spec/core.yaml +0 -0
  188. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/agent_contracts/spec/governance.yaml +0 -0
  189. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/agent_contracts/spec/profile-transition.yaml +0 -0
  190. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/agent_contracts/spec/responsibility-map.yaml +0 -0
  191. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/agent_contracts/validator.py +0 -0
  192. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/agent_contracts/vocabulary/authority.yaml +0 -0
  193. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/agent_contracts/vocabulary/diagnostics.yaml +0 -0
  194. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/agent_contracts/vocabulary/lifecycle.yaml +0 -0
  195. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/agent_contracts/vocabulary/outcomes.yaml +0 -0
  196. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/app/__init__.py +0 -0
  197. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/app/client.py +0 -0
  198. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/app/github_authority.py +0 -0
  199. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/app/github_client.py +0 -0
  200. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/app/github_reconciliation.py +0 -0
  201. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/app/local_client.py +0 -0
  202. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/app/server.py +0 -0
  203. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/app/service.py +0 -0
  204. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/app/store.py +0 -0
  205. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/artifact_evidence.py +0 -0
  206. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/build_resolution.py +0 -0
  207. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/clarification/__init__.py +0 -0
  208. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/clarification/generator.py +0 -0
  209. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/clarification/generator_core.py +0 -0
  210. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/clarification/i18n.py +0 -0
  211. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/clarification/model.py +0 -0
  212. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/clarification/render.py +0 -0
  213. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/clarification/resolution/__init__.py +0 -0
  214. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/clarification/resolution/model.py +0 -0
  215. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/clarification/resolution/parser.py +0 -0
  216. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/clarification/resolution/profile_projection.py +0 -0
  217. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/clarification/resolution/resolver.py +0 -0
  218. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/clarification/transports/__init__.py +0 -0
  219. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/clarification/transports/github_issue.py +0 -0
  220. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/conformance.py +0 -0
  221. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/conformance_audit.py +0 -0
  222. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/conformance_engine.py +0 -0
  223. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/dependency_analysis.py +0 -0
  224. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/dependency_cache.py +0 -0
  225. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/dependency_reconciliation.py +0 -0
  226. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/dependency_review.py +0 -0
  227. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/dependency_validation.py +0 -0
  228. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/doctor.py +0 -0
  229. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/evidence/__init__.py +0 -0
  230. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/evidence/adapters.py +0 -0
  231. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/evidence/contract.py +0 -0
  232. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/evidence/normalization.py +0 -0
  233. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/governance/__init__.py +0 -0
  234. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/governance/authority.py +0 -0
  235. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/governance/authorization.py +0 -0
  236. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/governance/model.py +0 -0
  237. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/governance/subject_matching.py +0 -0
  238. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/governance/support_assets.py +0 -0
  239. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/inspection/__init__.py +0 -0
  240. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/inspection/candidate_evidence.py +0 -0
  241. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/inspection/components.py +0 -0
  242. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/inspection/dependencies.py +0 -0
  243. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/inspection/dependencies_030.py +0 -0
  244. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/inspection/dotnet.py +0 -0
  245. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/inspection/go.py +0 -0
  246. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/inspection/inventory.py +0 -0
  247. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/inspection/javascript.py +0 -0
  248. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/inspection/lexing.py +0 -0
  249. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/inspection/python_resolution.py +0 -0
  250. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/inspection/source_adapters.py +0 -0
  251. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/lifecycle_evidence.py +0 -0
  252. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/local_profile_catalog.py +0 -0
  253. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/migration/__init__.py +0 -0
  254. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/migration/analyzer.py +0 -0
  255. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/migration/direct_convergence.py +0 -0
  256. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/migration/direct_execution.py +0 -0
  257. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/migration/direct_planner.py +0 -0
  258. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/migration/execution_apply.py +0 -0
  259. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/migration/execution_binding.py +0 -0
  260. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/migration/execution_ledger.py +0 -0
  261. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/migration/execution_model.py +0 -0
  262. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/migration/execution_promotion.py +0 -0
  263. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/migration/identity_rewrite.py +0 -0
  264. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/migration/model.py +0 -0
  265. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/migration/planner.py +0 -0
  266. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/migration/proposal.py +0 -0
  267. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/model.py +0 -0
  268. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/pilot/__init__.py +0 -0
  269. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/pilot/runner.py +0 -0
  270. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/profile_compatibility.py +0 -0
  271. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/profile_identity.py +0 -0
  272. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/profile_metadata.py +0 -0
  273. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/project_profile_contracts.py +0 -0
  274. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/proposed_component.py +0 -0
  275. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/remediation/__init__.py +0 -0
  276. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/remediation/domain/__init__.py +0 -0
  277. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/remediation/domain/model.py +0 -0
  278. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/remediation/escalation/__init__.py +0 -0
  279. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/remediation/escalation/contract.py +0 -0
  280. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/remediation/escalation/engine.py +0 -0
  281. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/remediation/rules/__init__.py +0 -0
  282. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/remediation/rules/contract.py +0 -0
  283. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/remediation/solution/candidate.py +0 -0
  284. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/remediation/solution/elimination.py +0 -0
  285. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/repository/__init__.py +0 -0
  286. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/repository/discover.py +0 -0
  287. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/repository/namespace.py +0 -0
  288. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/repository/profile_convergence.py +0 -0
  289. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/repository/profile_path.py +0 -0
  290. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/repository/profile_transition.py +0 -0
  291. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/repository/remote.py +0 -0
  292. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/repository/schemas/repository-index.schema.json +0 -0
  293. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/repository/snapshot.py +0 -0
  294. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/review_evidence.py +0 -0
  295. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/source_compat/__init__.py +0 -0
  296. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/source_compat/integrity.py +0 -0
  297. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/source_compat/model.py +0 -0
  298. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/source_compat/reader.py +0 -0
  299. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/spec_identity.py +0 -0
  300. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/specdata/project-profile-contracts.yaml +0 -0
  301. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/specdata/ptsip-agent-classification.schema.json +0 -0
  302. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/specdata/ptsip-artifact-evidence.schema.json +0 -0
  303. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/specdata/ptsip-diagnostic.schema.json +0 -0
  304. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/specdata/ptsip-normalized-evidence.schema.json +0 -0
  305. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/specdata/ptsip-profile-pp-1.01.schema.json +0 -0
  306. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/specdata/ptsip-profile-pp-1.02.schema.json +0 -0
  307. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/specdata/ptsip-profile.schema.json +0 -0
  308. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/specdata/ptsip-registry.yaml +0 -0
  309. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/specdata/ptsip-source-profile-0.3.4.schema.json +0 -0
  310. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/specdata/ptsip-source-profile-0.3.6.schema.json +0 -0
  311. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/specification_binding.py +0 -0
  312. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/storage/__init__.py +0 -0
  313. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/storage/local_state.py +0 -0
  314. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/topology.py +0 -0
  315. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/validation/__init__.py +0 -0
  316. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/validation/components.py +0 -0
  317. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/validation/profile.py +0 -0
  318. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/validation/rules.py +0 -0
  319. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/validation/specification.py +0 -0
  320. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/validation/templates.py +0 -0
  321. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/ptsip/validation_capture.py +0 -0
  322. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/vpms/__init__.py +0 -0
  323. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/vpms/domain/__init__.py +0 -0
  324. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/vpms/domain/model.py +0 -0
  325. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/vpms/domain/registry.py +0 -0
  326. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/vpms/domain/selector.py +0 -0
  327. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/vpms/execution/__init__.py +0 -0
  328. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/vpms/execution/adapters/__init__.py +0 -0
  329. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/vpms/execution/adapters/command.py +0 -0
  330. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/vpms/execution/runner.py +0 -0
  331. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/vpms/integration/__init__.py +0 -0
  332. {ptsip-0.3.8a2 → ptsip-0.3.8a3}/src/vpms/integration/ptsip_bridge.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: PTSIP
3
- Version: 0.3.8a2
3
+ Version: 0.3.8a3
4
4
  Summary: Reference tooling for primary lifecycle ownership and responsibility isolation
5
5
  Author: Kinirin
6
6
  Maintainer: Kinirin
@@ -42,8 +42,8 @@ Dynamic: license-file
42
42
 
43
43
  # PTSIP — Primary Lifecycle Ownership and Responsibility Isolation Policy
44
44
 
45
- **Status:** Tool `0.3.8a2` repository-namespace stabilization prerelease — publication pending<br>
46
- **Tool/package version:** `0.3.8a2`<br>
45
+ **Status:** Tool `0.3.8a3` Context Plane migration-semantics emergency prerelease — publication pending<br>
46
+ **Tool/package version:** `0.3.8a3`<br>
47
47
  **Project Profile contract:** `pp.1.02`<br>
48
48
  **Specification family:** `0.3.7-draft`<br>
49
49
  **Bound immutable Specification revision:** `3c47816770d194ae42f98faedc911d980db0e62a`<br>
@@ -55,11 +55,11 @@ PTSIP is a project-defined architecture policy for separating project responsibi
55
55
 
56
56
  > **Purpose precedes reuse.** Classify a coherent responsibility by why it exists and which lifecycle owns it before optimizing for code sharing.
57
57
 
58
- Tool `0.3.8a2` is a repository-namespace stabilization prerelease built on the already-published `0.3.8a1` bridge and the same frozen Specification binding. It preserves the proposed-candidate bridge while establishing `.ptsip/` as the canonical repository-local ownership boundary for PTSIP-managed contracts, registries, configuration, task/operation metadata, and execution state. Canonical repository indexes use JSON. This release reserves Task and runtime namespaces but does not claim a completed generic Task Engine, Go runtime, or Tool `0.4.0` capability-recovery implementation.
58
+ Tool `0.3.8a3` is an emergency corrective prerelease over the published `0.3.8a2` repository-namespace release. Tool `0.3.8a2` established `.ptsip/` and the provider-neutral Context Plane at repository level, but its Context Projection implementation remained under `developer/automation/` and therefore was not shipped in the installed Consumer Tool. Tool `0.3.8a3` closes that packaging and migration gap by shipping the canonical Context Plane implementation as `ptsip.context_plane`, exposing `ptsip context status|migrate|repair|check`, and binding release verification to the installed wheel. The Specification and Project Profile identities remain unchanged.
59
59
 
60
60
  ## Primary lifecycle ownership
61
61
 
62
- Canonical Tool `0.3.8a2` classifications remain exactly:
62
+ Canonical Tool `0.3.8a3` classifications remain exactly:
63
63
 
64
64
  | Classification | Meaning |
65
65
  | --- | --- |
@@ -81,9 +81,9 @@ TOOLCHAIN
81
81
  NEUTRAL_CONTRACT
82
82
  ```
83
83
 
84
- Tool `0.3.8a2` preserves the five-classification model established by Tool `0.3.6`. `TOOLCHAIN` is therefore **legacy Tool `0.3.5` input**, not a current canonical alias. A legacy Toolchain responsibility may become `DEVELOPMENT_TOOLING`, `DELIVERY`, `OPERATIONS`, or require a split depending on its actual lifecycle ownership. Blind `TOOLCHAIN -> DEVELOPMENT_TOOLING` rewriting is prohibited.
84
+ Tool `0.3.8a3` preserves the five-classification model established by Tool `0.3.6`. `TOOLCHAIN` is therefore **legacy Tool `0.3.5` input**, not a current canonical alias. A legacy Toolchain responsibility may become `DEVELOPMENT_TOOLING`, `DELIVERY`, `OPERATIONS`, or require a split depending on its actual lifecycle ownership. Blind `TOOLCHAIN -> DEVELOPMENT_TOOLING` rewriting is prohibited.
85
85
 
86
- Tool `0.3.8a2` provides evidence-bound direct current-target migration for explicitly supported historical sources. Migration capability remains separate from repository adoption authority and never turns inference into project intent.
86
+ Tool `0.3.8a3` provides evidence-bound direct current-target migration for explicitly supported historical sources. Migration capability remains separate from repository adoption authority and never turns inference into project intent.
87
87
 
88
88
  ## Classification is not path or technology
89
89
 
@@ -104,7 +104,7 @@ Paths such as `tests/`, `tools/`, `deploy/`, `ops/`, or `.github/workflows/` are
104
104
 
105
105
  ## Responsibility Map v2
106
106
 
107
- Tool `0.3.8a2` uses Responsibility Map v2 as the project-owned architecture declaration model. It keeps several axes independent:
107
+ Tool `0.3.8a3` uses Responsibility Map v2 as the project-owned architecture declaration model. It keeps several axes independent:
108
108
 
109
109
  ```text
110
110
  classification
@@ -233,12 +233,12 @@ Upgrade to the latest **published** release:
233
233
  python -m pip install --upgrade PTSIP
234
234
  ```
235
235
 
236
- Tool `0.3.8a2` is a prerelease. A normal `pip install PTSIP` may continue to select the latest stable release unless prereleases are explicitly requested.
236
+ Tool `0.3.8a3` is a prerelease. A normal `pip install PTSIP` may continue to select the latest stable release unless prereleases are explicitly requested.
237
237
 
238
238
  After publication, install this prerelease explicitly with:
239
239
 
240
240
  ```powershell
241
- python -m pip install "PTSIP==0.3.8a2"
241
+ python -m pip install "PTSIP==0.3.8a3"
242
242
  ```
243
243
 
244
244
  For source development on this release line:
@@ -261,6 +261,8 @@ ptsip clarify .
261
261
  ptsip gate .
262
262
  ptsip resolve --help
263
263
  ptsip conform .
264
+ ptsip context status . --json
265
+ ptsip context check . --json
264
266
  ```
265
267
 
266
268
  New project-owned profiles are selected through `.ptsip/profiles/index.json`; the catalog's `default_profile` resolves the active `*.ptsip.yaml` resource. Repository-root `ptsip.yaml` remains a compatibility/migration input, and an explicit `--profile` path still takes precedence.
@@ -269,7 +271,7 @@ New project-owned profiles are selected through `.ptsip/profiles/index.json`; th
269
271
 
270
272
  Repository evidence is not architecture authority. Candidate discovery, path names, templates, heuristics, and agent confidence can support review but cannot manufacture project intent.
271
273
 
272
- Canonical Tool `0.3.8a2` explicit adoption facts center on `classification` as lifecycle ownership authority. New canonical decisions use facts such as:
274
+ Canonical Tool `0.3.8a3` explicit adoption facts center on `classification` as lifecycle ownership authority. New canonical decisions use facts such as:
273
275
 
274
276
  ```text
275
277
  classification
@@ -279,7 +281,7 @@ runtime_required
279
281
  executable
280
282
  ```
281
283
 
282
- The historical `lifecycle_owner` field is legacy migration evidence, not a second Tool `0.3.8a2` ownership authority.
284
+ The historical `lifecycle_owner` field is legacy migration evidence, not a second Tool `0.3.8a3` ownership authority.
283
285
 
284
286
  Example dry-run:
285
287
 
@@ -344,7 +346,7 @@ PTSIP uses action-time synchronization rather than continuous background polling
344
346
 
345
347
  Artifact ownership is independent from producer ownership. A `DEVELOPMENT_TOOLING` or `DELIVERY` component may validly build a `PRODUCT` artifact, but the resulting artifact must still satisfy the Product package boundary.
346
348
 
347
- Tool `0.3.8a2` supports snapshot-bound Product Artifact evidence. Release verification checks actual built distribution content rather than treating packaging configuration as proof. Product distribution verification rejects definite non-Product implementation leakage under `PTSIP-PKG-001`.
349
+ Tool `0.3.8a3` supports snapshot-bound Product Artifact evidence. Release verification checks actual built distribution content rather than treating packaging configuration as proof. Product distribution verification rejects definite non-Product implementation leakage under `PTSIP-PKG-001`.
348
350
 
349
351
  ## VPMS — Verification Purpose Management System
350
352
 
@@ -360,7 +362,7 @@ VPMS
360
362
 
361
363
  PTSIP classification and VPMS Verification Purpose remain separate axes. PTSIP core does not depend on VPMS. VPMS consumes only a narrow read-only projection of already-resolved PTSIP metadata.
362
364
 
363
- The current VPMS compatibility vocabulary may still contain `PRODUCT | TOOLCHAIN`. VPMS `TOOLCHAIN` is not a canonical Tool `0.3.8a2` PTSIP classification.
365
+ The current VPMS compatibility vocabulary may still contain `PRODUCT | TOOLCHAIN`. VPMS `TOOLCHAIN` is not a canonical Tool `0.3.8a3` PTSIP classification.
364
366
 
365
367
  VPMS verification PASS does not imply PTSIP `CONFORMANT`, and PTSIP `CONFORMANT` does not imply functional verification PASS.
366
368
 
@@ -431,6 +433,20 @@ in its Tool release note; advancing the PP contract does not rewrite that Tool h
431
433
 
432
434
  A new immutable revision is required only for a genuine normative change. Release workflow, test, planning, status, or documentation-only changes do not move `SPEC_REVISION` by themselves.
433
435
 
436
+ ## Tool 0.3.8a3 release identity
437
+
438
+ Tool `0.3.8a3` is an emergency Context Plane migration-semantics patch over the published `0.3.8a2` repository-namespace release.
439
+
440
+ ```text
441
+ Tool: 0.3.8a3
442
+ Project Profile: pp.1.02
443
+ Specification: 0.3.7-draft
444
+ SPEC_REVISION: 3c47816770d194ae42f98faedc911d980db0e62a
445
+ Release scope: deterministic MEMORY.md -> Context Plane migration and projection repair
446
+ ```
447
+
448
+ The canonical semantic write target is `.ptsip/context/source/context.source.json`. Generated `context.json`, `context.jsonl`, and `context.schema.json` are repaired from that source. Semantic ambiguity remains user-owned; deterministic projection repair is preauthorized for coding agents. Unlike Tool `0.3.8a2`, Tool `0.3.8a3` ships this implementation inside the Consumer Tool as `ptsip/context_plane.py`; a release build is invalid if that module or the `ptsip context` CLI surface is absent from the built wheel.
449
+
434
450
  ## Tool 0.3.8a2 release identity
435
451
 
436
452
  Tool `0.3.8a2` is a repository-namespace stabilization prerelease with a deliberately narrow compatibility goal.
@@ -482,8 +498,8 @@ Read-only inspection and Pilot operations remain read-only and do not create rep
482
498
 
483
499
  Repository tooling implementations may physically live under `tools/`, `scripts/`, `src/`, or another project-owned path. Their PTSIP-owned registration, policy bindings, task/operation contracts, indexes, and lifecycle state must not establish an alternative repository-local PTSIP control-plane root.
484
500
 
485
- Canonical machine indexes under `.ptsip/` use JSON. Tool `0.3.8a2` uses `.ptsip/index.json` as the root router and `.ptsip/profiles/index.json` for local Project Profile selection. The Task and runtime namespaces are reserved; runtime persistence details remain future work. A reserved or unavailable Task capability must fail closed for the dependent operation rather than causing an agent to invent a new Task Engine elsewhere in the repository.
501
+ Canonical machine indexes under `.ptsip/` use JSON. Tool `0.3.8a3` uses `.ptsip/index.json` as the root router and `.ptsip/profiles/index.json` for local Project Profile selection. The Task and runtime namespaces are reserved; runtime persistence details remain future work. A reserved or unavailable Task capability must fail closed for the dependent operation rather than causing an agent to invent a new Task Engine elsewhere in the repository.
486
502
 
487
503
  ## Project status
488
504
 
489
- PTSIP remains experimental. Tool `0.3.8a2` is the current namespace-stabilization prerelease candidate; its publication boundary is tracked in [`releasenote/tool/0.3.8a2.md`](releasenote/tool/0.3.8a2.md). Historical Tool releases, including `0.3.8a1`, and Specification notes are preserved under [`releasenote/`](releasenote/).
505
+ PTSIP remains experimental. Tool `0.3.8a3` is the current namespace-stabilization prerelease candidate; its publication boundary is tracked in [`releasenote/tool/0.3.8a3.md`](releasenote/tool/0.3.8a3.md). Historical Tool releases, including `0.3.8a1`, and Specification notes are preserved under [`releasenote/`](releasenote/).
@@ -4,8 +4,8 @@
4
4
 
5
5
  # PTSIP — Primary Lifecycle Ownership and Responsibility Isolation Policy
6
6
 
7
- **Status:** Tool `0.3.8a2` repository-namespace stabilization prerelease — publication pending<br>
8
- **Tool/package version:** `0.3.8a2`<br>
7
+ **Status:** Tool `0.3.8a3` Context Plane migration-semantics emergency prerelease — publication pending<br>
8
+ **Tool/package version:** `0.3.8a3`<br>
9
9
  **Project Profile contract:** `pp.1.02`<br>
10
10
  **Specification family:** `0.3.7-draft`<br>
11
11
  **Bound immutable Specification revision:** `3c47816770d194ae42f98faedc911d980db0e62a`<br>
@@ -17,11 +17,11 @@ PTSIP is a project-defined architecture policy for separating project responsibi
17
17
 
18
18
  > **Purpose precedes reuse.** Classify a coherent responsibility by why it exists and which lifecycle owns it before optimizing for code sharing.
19
19
 
20
- Tool `0.3.8a2` is a repository-namespace stabilization prerelease built on the already-published `0.3.8a1` bridge and the same frozen Specification binding. It preserves the proposed-candidate bridge while establishing `.ptsip/` as the canonical repository-local ownership boundary for PTSIP-managed contracts, registries, configuration, task/operation metadata, and execution state. Canonical repository indexes use JSON. This release reserves Task and runtime namespaces but does not claim a completed generic Task Engine, Go runtime, or Tool `0.4.0` capability-recovery implementation.
20
+ Tool `0.3.8a3` is an emergency corrective prerelease over the published `0.3.8a2` repository-namespace release. Tool `0.3.8a2` established `.ptsip/` and the provider-neutral Context Plane at repository level, but its Context Projection implementation remained under `developer/automation/` and therefore was not shipped in the installed Consumer Tool. Tool `0.3.8a3` closes that packaging and migration gap by shipping the canonical Context Plane implementation as `ptsip.context_plane`, exposing `ptsip context status|migrate|repair|check`, and binding release verification to the installed wheel. The Specification and Project Profile identities remain unchanged.
21
21
 
22
22
  ## Primary lifecycle ownership
23
23
 
24
- Canonical Tool `0.3.8a2` classifications remain exactly:
24
+ Canonical Tool `0.3.8a3` classifications remain exactly:
25
25
 
26
26
  | Classification | Meaning |
27
27
  | --- | --- |
@@ -43,9 +43,9 @@ TOOLCHAIN
43
43
  NEUTRAL_CONTRACT
44
44
  ```
45
45
 
46
- Tool `0.3.8a2` preserves the five-classification model established by Tool `0.3.6`. `TOOLCHAIN` is therefore **legacy Tool `0.3.5` input**, not a current canonical alias. A legacy Toolchain responsibility may become `DEVELOPMENT_TOOLING`, `DELIVERY`, `OPERATIONS`, or require a split depending on its actual lifecycle ownership. Blind `TOOLCHAIN -> DEVELOPMENT_TOOLING` rewriting is prohibited.
46
+ Tool `0.3.8a3` preserves the five-classification model established by Tool `0.3.6`. `TOOLCHAIN` is therefore **legacy Tool `0.3.5` input**, not a current canonical alias. A legacy Toolchain responsibility may become `DEVELOPMENT_TOOLING`, `DELIVERY`, `OPERATIONS`, or require a split depending on its actual lifecycle ownership. Blind `TOOLCHAIN -> DEVELOPMENT_TOOLING` rewriting is prohibited.
47
47
 
48
- Tool `0.3.8a2` provides evidence-bound direct current-target migration for explicitly supported historical sources. Migration capability remains separate from repository adoption authority and never turns inference into project intent.
48
+ Tool `0.3.8a3` provides evidence-bound direct current-target migration for explicitly supported historical sources. Migration capability remains separate from repository adoption authority and never turns inference into project intent.
49
49
 
50
50
  ## Classification is not path or technology
51
51
 
@@ -66,7 +66,7 @@ Paths such as `tests/`, `tools/`, `deploy/`, `ops/`, or `.github/workflows/` are
66
66
 
67
67
  ## Responsibility Map v2
68
68
 
69
- Tool `0.3.8a2` uses Responsibility Map v2 as the project-owned architecture declaration model. It keeps several axes independent:
69
+ Tool `0.3.8a3` uses Responsibility Map v2 as the project-owned architecture declaration model. It keeps several axes independent:
70
70
 
71
71
  ```text
72
72
  classification
@@ -195,12 +195,12 @@ Upgrade to the latest **published** release:
195
195
  python -m pip install --upgrade PTSIP
196
196
  ```
197
197
 
198
- Tool `0.3.8a2` is a prerelease. A normal `pip install PTSIP` may continue to select the latest stable release unless prereleases are explicitly requested.
198
+ Tool `0.3.8a3` is a prerelease. A normal `pip install PTSIP` may continue to select the latest stable release unless prereleases are explicitly requested.
199
199
 
200
200
  After publication, install this prerelease explicitly with:
201
201
 
202
202
  ```powershell
203
- python -m pip install "PTSIP==0.3.8a2"
203
+ python -m pip install "PTSIP==0.3.8a3"
204
204
  ```
205
205
 
206
206
  For source development on this release line:
@@ -223,6 +223,8 @@ ptsip clarify .
223
223
  ptsip gate .
224
224
  ptsip resolve --help
225
225
  ptsip conform .
226
+ ptsip context status . --json
227
+ ptsip context check . --json
226
228
  ```
227
229
 
228
230
  New project-owned profiles are selected through `.ptsip/profiles/index.json`; the catalog's `default_profile` resolves the active `*.ptsip.yaml` resource. Repository-root `ptsip.yaml` remains a compatibility/migration input, and an explicit `--profile` path still takes precedence.
@@ -231,7 +233,7 @@ New project-owned profiles are selected through `.ptsip/profiles/index.json`; th
231
233
 
232
234
  Repository evidence is not architecture authority. Candidate discovery, path names, templates, heuristics, and agent confidence can support review but cannot manufacture project intent.
233
235
 
234
- Canonical Tool `0.3.8a2` explicit adoption facts center on `classification` as lifecycle ownership authority. New canonical decisions use facts such as:
236
+ Canonical Tool `0.3.8a3` explicit adoption facts center on `classification` as lifecycle ownership authority. New canonical decisions use facts such as:
235
237
 
236
238
  ```text
237
239
  classification
@@ -241,7 +243,7 @@ runtime_required
241
243
  executable
242
244
  ```
243
245
 
244
- The historical `lifecycle_owner` field is legacy migration evidence, not a second Tool `0.3.8a2` ownership authority.
246
+ The historical `lifecycle_owner` field is legacy migration evidence, not a second Tool `0.3.8a3` ownership authority.
245
247
 
246
248
  Example dry-run:
247
249
 
@@ -306,7 +308,7 @@ PTSIP uses action-time synchronization rather than continuous background polling
306
308
 
307
309
  Artifact ownership is independent from producer ownership. A `DEVELOPMENT_TOOLING` or `DELIVERY` component may validly build a `PRODUCT` artifact, but the resulting artifact must still satisfy the Product package boundary.
308
310
 
309
- Tool `0.3.8a2` supports snapshot-bound Product Artifact evidence. Release verification checks actual built distribution content rather than treating packaging configuration as proof. Product distribution verification rejects definite non-Product implementation leakage under `PTSIP-PKG-001`.
311
+ Tool `0.3.8a3` supports snapshot-bound Product Artifact evidence. Release verification checks actual built distribution content rather than treating packaging configuration as proof. Product distribution verification rejects definite non-Product implementation leakage under `PTSIP-PKG-001`.
310
312
 
311
313
  ## VPMS — Verification Purpose Management System
312
314
 
@@ -322,7 +324,7 @@ VPMS
322
324
 
323
325
  PTSIP classification and VPMS Verification Purpose remain separate axes. PTSIP core does not depend on VPMS. VPMS consumes only a narrow read-only projection of already-resolved PTSIP metadata.
324
326
 
325
- The current VPMS compatibility vocabulary may still contain `PRODUCT | TOOLCHAIN`. VPMS `TOOLCHAIN` is not a canonical Tool `0.3.8a2` PTSIP classification.
327
+ The current VPMS compatibility vocabulary may still contain `PRODUCT | TOOLCHAIN`. VPMS `TOOLCHAIN` is not a canonical Tool `0.3.8a3` PTSIP classification.
326
328
 
327
329
  VPMS verification PASS does not imply PTSIP `CONFORMANT`, and PTSIP `CONFORMANT` does not imply functional verification PASS.
328
330
 
@@ -393,6 +395,20 @@ in its Tool release note; advancing the PP contract does not rewrite that Tool h
393
395
 
394
396
  A new immutable revision is required only for a genuine normative change. Release workflow, test, planning, status, or documentation-only changes do not move `SPEC_REVISION` by themselves.
395
397
 
398
+ ## Tool 0.3.8a3 release identity
399
+
400
+ Tool `0.3.8a3` is an emergency Context Plane migration-semantics patch over the published `0.3.8a2` repository-namespace release.
401
+
402
+ ```text
403
+ Tool: 0.3.8a3
404
+ Project Profile: pp.1.02
405
+ Specification: 0.3.7-draft
406
+ SPEC_REVISION: 3c47816770d194ae42f98faedc911d980db0e62a
407
+ Release scope: deterministic MEMORY.md -> Context Plane migration and projection repair
408
+ ```
409
+
410
+ The canonical semantic write target is `.ptsip/context/source/context.source.json`. Generated `context.json`, `context.jsonl`, and `context.schema.json` are repaired from that source. Semantic ambiguity remains user-owned; deterministic projection repair is preauthorized for coding agents. Unlike Tool `0.3.8a2`, Tool `0.3.8a3` ships this implementation inside the Consumer Tool as `ptsip/context_plane.py`; a release build is invalid if that module or the `ptsip context` CLI surface is absent from the built wheel.
411
+
396
412
  ## Tool 0.3.8a2 release identity
397
413
 
398
414
  Tool `0.3.8a2` is a repository-namespace stabilization prerelease with a deliberately narrow compatibility goal.
@@ -444,8 +460,8 @@ Read-only inspection and Pilot operations remain read-only and do not create rep
444
460
 
445
461
  Repository tooling implementations may physically live under `tools/`, `scripts/`, `src/`, or another project-owned path. Their PTSIP-owned registration, policy bindings, task/operation contracts, indexes, and lifecycle state must not establish an alternative repository-local PTSIP control-plane root.
446
462
 
447
- Canonical machine indexes under `.ptsip/` use JSON. Tool `0.3.8a2` uses `.ptsip/index.json` as the root router and `.ptsip/profiles/index.json` for local Project Profile selection. The Task and runtime namespaces are reserved; runtime persistence details remain future work. A reserved or unavailable Task capability must fail closed for the dependent operation rather than causing an agent to invent a new Task Engine elsewhere in the repository.
463
+ Canonical machine indexes under `.ptsip/` use JSON. Tool `0.3.8a3` uses `.ptsip/index.json` as the root router and `.ptsip/profiles/index.json` for local Project Profile selection. The Task and runtime namespaces are reserved; runtime persistence details remain future work. A reserved or unavailable Task capability must fail closed for the dependent operation rather than causing an agent to invent a new Task Engine elsewhere in the repository.
448
464
 
449
465
  ## Project status
450
466
 
451
- PTSIP remains experimental. Tool `0.3.8a2` is the current namespace-stabilization prerelease candidate; its publication boundary is tracked in [`releasenote/tool/0.3.8a2.md`](releasenote/tool/0.3.8a2.md). Historical Tool releases, including `0.3.8a1`, and Specification notes are preserved under [`releasenote/`](releasenote/).
467
+ PTSIP remains experimental. Tool `0.3.8a3` is the current namespace-stabilization prerelease candidate; its publication boundary is tracked in [`releasenote/tool/0.3.8a3.md`](releasenote/tool/0.3.8a3.md). Historical Tool releases, including `0.3.8a1`, and Specification notes are preserved under [`releasenote/`](releasenote/).
@@ -0,0 +1,53 @@
1
+ schema_version: ptsip-support-feature-policy/v1
2
+ policy_class: PTSIP_SUPPORT_FEATURE
3
+ policy:
4
+ id: SFP-0022
5
+ title: Context Plane Migration and Deterministic Projection Repair
6
+ status: ACTIVE
7
+ feature_contract:
8
+ shipped: true
9
+ runtime_surface:
10
+ - src/ptsip/context_plane.py
11
+ - src/ptsip/cli.py
12
+ authority_contract:
13
+ authority_type: CONTEXT_PLANE_MIGRATION_REPAIR
14
+ schema_id: ptsip.context/migration-repair
15
+ schema_version: 1
16
+ authority_semantics:
17
+ canonical_semantic_source: .ptsip/context/source/context.source.json
18
+ generated_projections:
19
+ - .ptsip/context/context.json
20
+ - .ptsip/context/context.jsonl
21
+ - .ptsip/context/context.schema.json
22
+ normal_direct_projection_edit: FORBIDDEN
23
+ deterministic_projection_repair:
24
+ coding_agent_authorization: PREAUTHORIZED
25
+ user_decision_required: false
26
+ semantic_source_creation_from_legacy_memory:
27
+ legacy_memory_read_scope: MIGRATION_ONLY
28
+ deterministic_conversion_authorization: PREAUTHORIZED
29
+ semantic_ambiguity: OWNER_DECISION_REQUIRED
30
+ existing_semantic_source_replacement:
31
+ authorization: USER_EXPLICIT
32
+ silent_agent_selection: FORBIDDEN
33
+ legacy_memory_deletion:
34
+ before_context_validation: FORBIDDEN
35
+ after_context_validation: PREAUTHORIZED
36
+ migration_failure_preserves_legacy_memory: true
37
+ emergency_direct_projection_repair:
38
+ authorization: USER_EXPLICIT
39
+ status: TEMPORARY_ONLY
40
+ release_while_active: FORBIDDEN
41
+ required_reconciliation:
42
+ - REGENERATE_FROM_CANONICAL_SOURCE
43
+ - CONTEXT_CHECK_PASS
44
+ release_gate:
45
+ context_check: REQUIRED
46
+ missing_projection: FAIL_CLOSED
47
+ projection_drift: FAIL_CLOSED
48
+ semantic_equivalence_failure: FAIL_CLOSED
49
+ relations:
50
+ supersedes: []
51
+ amends: []
52
+ extends: []
53
+ depends_on: []
@@ -64,3 +64,6 @@ policies:
64
64
  - id: SFP-0021
65
65
  path: SFP-0021.yaml
66
66
  status: ACTIVE
67
+ - id: SFP-0022
68
+ path: SFP-0022.yaml
69
+ status: ACTIVE
@@ -368,6 +368,18 @@ policy_roles:
368
368
  - govern_specification_capabilities
369
369
  - require_explicit_specification_binding
370
370
  - separate_cross_contract_identity_axes
371
+ - policy_id: SFP-0022
372
+ projection_role: PROJECT_ARCHITECTURE_AUTHORITY
373
+ resolution_state: DECLARED
374
+ effects:
375
+ - constrain_machine_output_structure
376
+ - deny_unauthorized_semantic_inference
377
+ - fail_closed_on_invalid_state
378
+ - govern_migration_execution_authorization
379
+ - govern_migration_execution_state_machine
380
+ - require_deterministic_integrity_digest
381
+ - require_project_owner_decision
382
+ - separate_global_authority_from_local_projection
371
383
  invariants:
372
384
  registered_effect_token_is_project_authority_by_itself: false
373
385
  projection_role_is_current_eligibility_result_by_itself: false
@@ -117,3 +117,8 @@ entries:
117
117
  schema_id: ptsip.governance/specification-binding-capability-registries
118
118
  schema_version: 1
119
119
  schema_definition: SFP_0021_V1
120
+ - policy_id: SFP-0022
121
+ authority_type: CONTEXT_PLANE_MIGRATION_REPAIR
122
+ schema_id: ptsip.context/migration-repair
123
+ schema_version: 1
124
+ schema_definition: SFP_0022_V1
@@ -31,6 +31,7 @@ subject_identity_schemes:
31
31
  - SFP-0019
32
32
  - SFP-0020
33
33
  - SFP-0021
34
+ - SFP-0022
34
35
  repository_identity_schemes:
35
36
  GITHUB_REPOSITORY_ID:
36
37
  host_required: true
@@ -581,6 +581,50 @@
581
581
  "historical_bridge_role": "MIGRATION_INTERPRETATION_ONLY",
582
582
  "unsupported_or_malformed_binding": "FAIL_CLOSED"
583
583
  }
584
+ },
585
+ "SFP_0022_V1": {
586
+ "const": {
587
+ "canonical_semantic_source": ".ptsip/context/source/context.source.json",
588
+ "generated_projections": [
589
+ ".ptsip/context/context.json",
590
+ ".ptsip/context/context.jsonl",
591
+ ".ptsip/context/context.schema.json"
592
+ ],
593
+ "normal_direct_projection_edit": "FORBIDDEN",
594
+ "deterministic_projection_repair": {
595
+ "coding_agent_authorization": "PREAUTHORIZED",
596
+ "user_decision_required": false
597
+ },
598
+ "semantic_source_creation_from_legacy_memory": {
599
+ "legacy_memory_read_scope": "MIGRATION_ONLY",
600
+ "deterministic_conversion_authorization": "PREAUTHORIZED",
601
+ "semantic_ambiguity": "OWNER_DECISION_REQUIRED"
602
+ },
603
+ "existing_semantic_source_replacement": {
604
+ "authorization": "USER_EXPLICIT",
605
+ "silent_agent_selection": "FORBIDDEN"
606
+ },
607
+ "legacy_memory_deletion": {
608
+ "before_context_validation": "FORBIDDEN",
609
+ "after_context_validation": "PREAUTHORIZED",
610
+ "migration_failure_preserves_legacy_memory": true
611
+ },
612
+ "emergency_direct_projection_repair": {
613
+ "authorization": "USER_EXPLICIT",
614
+ "status": "TEMPORARY_ONLY",
615
+ "release_while_active": "FORBIDDEN",
616
+ "required_reconciliation": [
617
+ "REGENERATE_FROM_CANONICAL_SOURCE",
618
+ "CONTEXT_CHECK_PASS"
619
+ ]
620
+ },
621
+ "release_gate": {
622
+ "context_check": "REQUIRED",
623
+ "missing_projection": "FAIL_CLOSED",
624
+ "projection_drift": "FAIL_CLOSED",
625
+ "semantic_equivalence_failure": "FAIL_CLOSED"
626
+ }
627
+ }
584
628
  }
585
629
  }
586
630
  }
@@ -17,8 +17,8 @@
17
17
  },
18
18
  "policies": {
19
19
  "type": "array",
20
- "minItems": 21,
21
- "maxItems": 21,
20
+ "minItems": 22,
21
+ "maxItems": 22,
22
22
  "uniqueItems": true,
23
23
  "items": {
24
24
  "type": "object",
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "PTSIP"
7
- version = "0.3.8a2"
7
+ version = "0.3.8a3"
8
8
  description = "Reference tooling for primary lifecycle ownership and responsibility isolation"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: PTSIP
3
- Version: 0.3.8a2
3
+ Version: 0.3.8a3
4
4
  Summary: Reference tooling for primary lifecycle ownership and responsibility isolation
5
5
  Author: Kinirin
6
6
  Maintainer: Kinirin
@@ -42,8 +42,8 @@ Dynamic: license-file
42
42
 
43
43
  # PTSIP — Primary Lifecycle Ownership and Responsibility Isolation Policy
44
44
 
45
- **Status:** Tool `0.3.8a2` repository-namespace stabilization prerelease — publication pending<br>
46
- **Tool/package version:** `0.3.8a2`<br>
45
+ **Status:** Tool `0.3.8a3` Context Plane migration-semantics emergency prerelease — publication pending<br>
46
+ **Tool/package version:** `0.3.8a3`<br>
47
47
  **Project Profile contract:** `pp.1.02`<br>
48
48
  **Specification family:** `0.3.7-draft`<br>
49
49
  **Bound immutable Specification revision:** `3c47816770d194ae42f98faedc911d980db0e62a`<br>
@@ -55,11 +55,11 @@ PTSIP is a project-defined architecture policy for separating project responsibi
55
55
 
56
56
  > **Purpose precedes reuse.** Classify a coherent responsibility by why it exists and which lifecycle owns it before optimizing for code sharing.
57
57
 
58
- Tool `0.3.8a2` is a repository-namespace stabilization prerelease built on the already-published `0.3.8a1` bridge and the same frozen Specification binding. It preserves the proposed-candidate bridge while establishing `.ptsip/` as the canonical repository-local ownership boundary for PTSIP-managed contracts, registries, configuration, task/operation metadata, and execution state. Canonical repository indexes use JSON. This release reserves Task and runtime namespaces but does not claim a completed generic Task Engine, Go runtime, or Tool `0.4.0` capability-recovery implementation.
58
+ Tool `0.3.8a3` is an emergency corrective prerelease over the published `0.3.8a2` repository-namespace release. Tool `0.3.8a2` established `.ptsip/` and the provider-neutral Context Plane at repository level, but its Context Projection implementation remained under `developer/automation/` and therefore was not shipped in the installed Consumer Tool. Tool `0.3.8a3` closes that packaging and migration gap by shipping the canonical Context Plane implementation as `ptsip.context_plane`, exposing `ptsip context status|migrate|repair|check`, and binding release verification to the installed wheel. The Specification and Project Profile identities remain unchanged.
59
59
 
60
60
  ## Primary lifecycle ownership
61
61
 
62
- Canonical Tool `0.3.8a2` classifications remain exactly:
62
+ Canonical Tool `0.3.8a3` classifications remain exactly:
63
63
 
64
64
  | Classification | Meaning |
65
65
  | --- | --- |
@@ -81,9 +81,9 @@ TOOLCHAIN
81
81
  NEUTRAL_CONTRACT
82
82
  ```
83
83
 
84
- Tool `0.3.8a2` preserves the five-classification model established by Tool `0.3.6`. `TOOLCHAIN` is therefore **legacy Tool `0.3.5` input**, not a current canonical alias. A legacy Toolchain responsibility may become `DEVELOPMENT_TOOLING`, `DELIVERY`, `OPERATIONS`, or require a split depending on its actual lifecycle ownership. Blind `TOOLCHAIN -> DEVELOPMENT_TOOLING` rewriting is prohibited.
84
+ Tool `0.3.8a3` preserves the five-classification model established by Tool `0.3.6`. `TOOLCHAIN` is therefore **legacy Tool `0.3.5` input**, not a current canonical alias. A legacy Toolchain responsibility may become `DEVELOPMENT_TOOLING`, `DELIVERY`, `OPERATIONS`, or require a split depending on its actual lifecycle ownership. Blind `TOOLCHAIN -> DEVELOPMENT_TOOLING` rewriting is prohibited.
85
85
 
86
- Tool `0.3.8a2` provides evidence-bound direct current-target migration for explicitly supported historical sources. Migration capability remains separate from repository adoption authority and never turns inference into project intent.
86
+ Tool `0.3.8a3` provides evidence-bound direct current-target migration for explicitly supported historical sources. Migration capability remains separate from repository adoption authority and never turns inference into project intent.
87
87
 
88
88
  ## Classification is not path or technology
89
89
 
@@ -104,7 +104,7 @@ Paths such as `tests/`, `tools/`, `deploy/`, `ops/`, or `.github/workflows/` are
104
104
 
105
105
  ## Responsibility Map v2
106
106
 
107
- Tool `0.3.8a2` uses Responsibility Map v2 as the project-owned architecture declaration model. It keeps several axes independent:
107
+ Tool `0.3.8a3` uses Responsibility Map v2 as the project-owned architecture declaration model. It keeps several axes independent:
108
108
 
109
109
  ```text
110
110
  classification
@@ -233,12 +233,12 @@ Upgrade to the latest **published** release:
233
233
  python -m pip install --upgrade PTSIP
234
234
  ```
235
235
 
236
- Tool `0.3.8a2` is a prerelease. A normal `pip install PTSIP` may continue to select the latest stable release unless prereleases are explicitly requested.
236
+ Tool `0.3.8a3` is a prerelease. A normal `pip install PTSIP` may continue to select the latest stable release unless prereleases are explicitly requested.
237
237
 
238
238
  After publication, install this prerelease explicitly with:
239
239
 
240
240
  ```powershell
241
- python -m pip install "PTSIP==0.3.8a2"
241
+ python -m pip install "PTSIP==0.3.8a3"
242
242
  ```
243
243
 
244
244
  For source development on this release line:
@@ -261,6 +261,8 @@ ptsip clarify .
261
261
  ptsip gate .
262
262
  ptsip resolve --help
263
263
  ptsip conform .
264
+ ptsip context status . --json
265
+ ptsip context check . --json
264
266
  ```
265
267
 
266
268
  New project-owned profiles are selected through `.ptsip/profiles/index.json`; the catalog's `default_profile` resolves the active `*.ptsip.yaml` resource. Repository-root `ptsip.yaml` remains a compatibility/migration input, and an explicit `--profile` path still takes precedence.
@@ -269,7 +271,7 @@ New project-owned profiles are selected through `.ptsip/profiles/index.json`; th
269
271
 
270
272
  Repository evidence is not architecture authority. Candidate discovery, path names, templates, heuristics, and agent confidence can support review but cannot manufacture project intent.
271
273
 
272
- Canonical Tool `0.3.8a2` explicit adoption facts center on `classification` as lifecycle ownership authority. New canonical decisions use facts such as:
274
+ Canonical Tool `0.3.8a3` explicit adoption facts center on `classification` as lifecycle ownership authority. New canonical decisions use facts such as:
273
275
 
274
276
  ```text
275
277
  classification
@@ -279,7 +281,7 @@ runtime_required
279
281
  executable
280
282
  ```
281
283
 
282
- The historical `lifecycle_owner` field is legacy migration evidence, not a second Tool `0.3.8a2` ownership authority.
284
+ The historical `lifecycle_owner` field is legacy migration evidence, not a second Tool `0.3.8a3` ownership authority.
283
285
 
284
286
  Example dry-run:
285
287
 
@@ -344,7 +346,7 @@ PTSIP uses action-time synchronization rather than continuous background polling
344
346
 
345
347
  Artifact ownership is independent from producer ownership. A `DEVELOPMENT_TOOLING` or `DELIVERY` component may validly build a `PRODUCT` artifact, but the resulting artifact must still satisfy the Product package boundary.
346
348
 
347
- Tool `0.3.8a2` supports snapshot-bound Product Artifact evidence. Release verification checks actual built distribution content rather than treating packaging configuration as proof. Product distribution verification rejects definite non-Product implementation leakage under `PTSIP-PKG-001`.
349
+ Tool `0.3.8a3` supports snapshot-bound Product Artifact evidence. Release verification checks actual built distribution content rather than treating packaging configuration as proof. Product distribution verification rejects definite non-Product implementation leakage under `PTSIP-PKG-001`.
348
350
 
349
351
  ## VPMS — Verification Purpose Management System
350
352
 
@@ -360,7 +362,7 @@ VPMS
360
362
 
361
363
  PTSIP classification and VPMS Verification Purpose remain separate axes. PTSIP core does not depend on VPMS. VPMS consumes only a narrow read-only projection of already-resolved PTSIP metadata.
362
364
 
363
- The current VPMS compatibility vocabulary may still contain `PRODUCT | TOOLCHAIN`. VPMS `TOOLCHAIN` is not a canonical Tool `0.3.8a2` PTSIP classification.
365
+ The current VPMS compatibility vocabulary may still contain `PRODUCT | TOOLCHAIN`. VPMS `TOOLCHAIN` is not a canonical Tool `0.3.8a3` PTSIP classification.
364
366
 
365
367
  VPMS verification PASS does not imply PTSIP `CONFORMANT`, and PTSIP `CONFORMANT` does not imply functional verification PASS.
366
368
 
@@ -431,6 +433,20 @@ in its Tool release note; advancing the PP contract does not rewrite that Tool h
431
433
 
432
434
  A new immutable revision is required only for a genuine normative change. Release workflow, test, planning, status, or documentation-only changes do not move `SPEC_REVISION` by themselves.
433
435
 
436
+ ## Tool 0.3.8a3 release identity
437
+
438
+ Tool `0.3.8a3` is an emergency Context Plane migration-semantics patch over the published `0.3.8a2` repository-namespace release.
439
+
440
+ ```text
441
+ Tool: 0.3.8a3
442
+ Project Profile: pp.1.02
443
+ Specification: 0.3.7-draft
444
+ SPEC_REVISION: 3c47816770d194ae42f98faedc911d980db0e62a
445
+ Release scope: deterministic MEMORY.md -> Context Plane migration and projection repair
446
+ ```
447
+
448
+ The canonical semantic write target is `.ptsip/context/source/context.source.json`. Generated `context.json`, `context.jsonl`, and `context.schema.json` are repaired from that source. Semantic ambiguity remains user-owned; deterministic projection repair is preauthorized for coding agents. Unlike Tool `0.3.8a2`, Tool `0.3.8a3` ships this implementation inside the Consumer Tool as `ptsip/context_plane.py`; a release build is invalid if that module or the `ptsip context` CLI surface is absent from the built wheel.
449
+
434
450
  ## Tool 0.3.8a2 release identity
435
451
 
436
452
  Tool `0.3.8a2` is a repository-namespace stabilization prerelease with a deliberately narrow compatibility goal.
@@ -482,8 +498,8 @@ Read-only inspection and Pilot operations remain read-only and do not create rep
482
498
 
483
499
  Repository tooling implementations may physically live under `tools/`, `scripts/`, `src/`, or another project-owned path. Their PTSIP-owned registration, policy bindings, task/operation contracts, indexes, and lifecycle state must not establish an alternative repository-local PTSIP control-plane root.
484
500
 
485
- Canonical machine indexes under `.ptsip/` use JSON. Tool `0.3.8a2` uses `.ptsip/index.json` as the root router and `.ptsip/profiles/index.json` for local Project Profile selection. The Task and runtime namespaces are reserved; runtime persistence details remain future work. A reserved or unavailable Task capability must fail closed for the dependent operation rather than causing an agent to invent a new Task Engine elsewhere in the repository.
501
+ Canonical machine indexes under `.ptsip/` use JSON. Tool `0.3.8a3` uses `.ptsip/index.json` as the root router and `.ptsip/profiles/index.json` for local Project Profile selection. The Task and runtime namespaces are reserved; runtime persistence details remain future work. A reserved or unavailable Task capability must fail closed for the dependent operation rather than causing an agent to invent a new Task Engine elsewhere in the repository.
486
502
 
487
503
  ## Project status
488
504
 
489
- PTSIP remains experimental. Tool `0.3.8a2` is the current namespace-stabilization prerelease candidate; its publication boundary is tracked in [`releasenote/tool/0.3.8a2.md`](releasenote/tool/0.3.8a2.md). Historical Tool releases, including `0.3.8a1`, and Specification notes are preserved under [`releasenote/`](releasenote/).
505
+ PTSIP remains experimental. Tool `0.3.8a3` is the current namespace-stabilization prerelease candidate; its publication boundary is tracked in [`releasenote/tool/0.3.8a3.md`](releasenote/tool/0.3.8a3.md). Historical Tool releases, including `0.3.8a1`, and Specification notes are preserved under [`releasenote/`](releasenote/).
@@ -29,6 +29,7 @@ docs/Support_policy/policy/SFP-0018.yaml
29
29
  docs/Support_policy/policy/SFP-0019.yaml
30
30
  docs/Support_policy/policy/SFP-0020.yaml
31
31
  docs/Support_policy/policy/SFP-0021.yaml
32
+ docs/Support_policy/policy/SFP-0022.yaml
32
33
  docs/Support_policy/policy/index.yaml
33
34
  docs/Support_policy/policy/registries/ptsip-support-authority-role-registry.yaml
34
35
  docs/Support_policy/policy/registries/ptsip-support-authority-schema-registry.yaml
@@ -167,6 +168,7 @@ src/ptsip/conformance.py
167
168
  src/ptsip/conformance_audit.py
168
169
  src/ptsip/conformance_engine.py
169
170
  src/ptsip/constants.py
171
+ src/ptsip/context_plane.py
170
172
  src/ptsip/dependency_analysis.py
171
173
  src/ptsip/dependency_cache.py
172
174
  src/ptsip/dependency_reconciliation.py