codd-dev 2.98.0__tar.gz → 2.99.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (623) hide show
  1. {codd_dev-2.98.0 → codd_dev-2.99.0}/PKG-INFO +1 -1
  2. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/__init__.py +1 -1
  3. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/implement_oracle.py +58 -80
  4. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/languages/adapters/implement_oracle.py +15 -3
  5. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/languages/adapters/oracle_python.py +140 -24
  6. {codd_dev-2.98.0 → codd_dev-2.99.0}/pyproject.toml +1 -1
  7. {codd_dev-2.98.0 → codd_dev-2.99.0}/.gitignore +0 -0
  8. {codd_dev-2.98.0 → codd_dev-2.99.0}/LICENSE +0 -0
  9. {codd_dev-2.98.0 → codd_dev-2.99.0}/README.md +0 -0
  10. {codd_dev-2.98.0 → codd_dev-2.99.0}/bench_fixture/README.md +0 -0
  11. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/__main__.py +0 -0
  12. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/_git_helper.py +0 -0
  13. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/action_outcome.py +0 -0
  14. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/ai_invoke.py +0 -0
  15. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/ai_patch.py +0 -0
  16. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/artifact_contract.py +0 -0
  17. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/artifact_ids.py +0 -0
  18. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/artifacts/catalog.yaml +0 -0
  19. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/ask_user_question_adapter.py +0 -0
  20. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/assembler.py +0 -0
  21. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/bridge.py +0 -0
  22. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/brownfield/__init__.py +0 -0
  23. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/brownfield/pipeline.py +0 -0
  24. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/capability_completeness.py +0 -0
  25. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/claude_cli.py +0 -0
  26. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/cli.py +0 -0
  27. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/clustering.py +0 -0
  28. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/coherence_adapters.py +0 -0
  29. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/coherence_engine.py +0 -0
  30. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/confidence.py +0 -0
  31. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/config.py +0 -0
  32. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/config_schema.py +0 -0
  33. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/contracts.py +0 -0
  34. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/contracts_registry/__init__.py +0 -0
  35. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/contracts_registry/__main__.py +0 -0
  36. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/contracts_registry/certify.py +0 -0
  37. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/contracts_registry/generate_matrix.py +0 -0
  38. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/contracts_registry/registry.py +0 -0
  39. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/coverage_auditor.py +0 -0
  40. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/coverage_execution_coherence.py +0 -0
  41. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/coverage_metrics.py +0 -0
  42. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/dag/__init__.py +0 -0
  43. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/dag/auto_repair.py +0 -0
  44. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/dag/builder.py +0 -0
  45. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/dag/checks/__init__.py +0 -0
  46. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/dag/checks/_one_to_many_detection.py +0 -0
  47. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/dag/checks/artifact_contract_check.py +0 -0
  48. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/dag/checks/ci_health.py +0 -0
  49. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/dag/checks/dependency_freshness.py +0 -0
  50. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/dag/checks/depends_on_consistency.py +0 -0
  51. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/dag/checks/deployment_completeness.py +0 -0
  52. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/dag/checks/edge_validity.py +0 -0
  53. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/dag/checks/environment_coverage.py +0 -0
  54. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/dag/checks/implementation_coverage.py +0 -0
  55. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/dag/checks/node_completeness.py +0 -0
  56. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/dag/checks/opt_out.py +0 -0
  57. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/dag/checks/task_completion.py +0 -0
  58. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/dag/checks/transitive_closure.py +0 -0
  59. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/dag/checks/ui_coherence.py +0 -0
  60. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/dag/checks/user_journey_coherence.py +0 -0
  61. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/dag/coverage_axes.py +0 -0
  62. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/dag/defaults/cli.yaml +0 -0
  63. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/dag/defaults/cpp_embedded.yaml +0 -0
  64. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/dag/defaults/csharp.yaml +0 -0
  65. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/dag/defaults/elixir.yaml +0 -0
  66. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/dag/defaults/generic.yaml +0 -0
  67. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/dag/defaults/iot.yaml +0 -0
  68. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/dag/defaults/java.yaml +0 -0
  69. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/dag/defaults/kotlin.yaml +0 -0
  70. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/dag/defaults/mobile.yaml +0 -0
  71. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/dag/defaults/ruby.yaml +0 -0
  72. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/dag/defaults/rust.yaml +0 -0
  73. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/dag/defaults/scala.yaml +0 -0
  74. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/dag/defaults/swift.yaml +0 -0
  75. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/dag/defaults/test_frameworks.yaml +0 -0
  76. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/dag/defaults/web.yaml +0 -0
  77. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/dag/extractor.py +0 -0
  78. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/dag/impact.py +0 -0
  79. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/dag/runner.py +0 -0
  80. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/defaults.py +0 -0
  81. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/defaults.yaml +0 -0
  82. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/dependency_lock_coherence.py +0 -0
  83. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/deploy_targets/__init__.py +0 -0
  84. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/deploy_targets/app_service.py +0 -0
  85. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/deploy_targets/base.py +0 -0
  86. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/deploy_targets/docker_compose.py +0 -0
  87. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/deployer.py +0 -0
  88. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/deployment/__init__.py +0 -0
  89. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/deployment/checks/__init__.py +0 -0
  90. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/deployment/defaults/deploy_targets.yaml +0 -0
  91. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/deployment/defaults/runtime_capability_inference.yaml +0 -0
  92. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/deployment/defaults/schema_providers.yaml +0 -0
  93. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/deployment/defaults/verification_templates.yaml +0 -0
  94. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/deployment/extractor.py +0 -0
  95. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/deployment/providers/__init__.py +0 -0
  96. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/deployment/providers/ai_command.py +0 -0
  97. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/deployment/providers/ai_command_factory.py +0 -0
  98. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/deployment/providers/codex_app_server.py +0 -0
  99. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/deployment/providers/llm_consideration.py +0 -0
  100. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/deployment/providers/schema/__init__.py +0 -0
  101. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/deployment/providers/schema/prisma.py +0 -0
  102. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/deployment/providers/target/__init__.py +0 -0
  103. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/deployment/providers/target/docker_compose.py +0 -0
  104. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/deployment/providers/verification/__init__.py +0 -0
  105. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/deployment/providers/verification/assertion_handlers.py +0 -0
  106. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/deployment/providers/verification/cdp_browser.py +0 -0
  107. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/deployment/providers/verification/cdp_engines.py +0 -0
  108. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/deployment/providers/verification/cdp_launchers.py +0 -0
  109. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/deployment/providers/verification/cdp_wire.py +0 -0
  110. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/deployment/providers/verification/curl.py +0 -0
  111. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/deployment/providers/verification/form_strategies.py +0 -0
  112. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/deployment/providers/verification/means_catalog.py +0 -0
  113. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/deployment/providers/verification/playwright.py +0 -0
  114. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/deployment/providers/verification/pytest_http.py +0 -0
  115. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/deployment/providers/verification/vitest.py +0 -0
  116. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/design_md.py +0 -0
  117. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/diff/__init__.py +0 -0
  118. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/diff/apply.py +0 -0
  119. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/diff/engine.py +0 -0
  120. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/diff/persistence.py +0 -0
  121. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/diff/templates/diff_prompt.md +0 -0
  122. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/discovery.py +0 -0
  123. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/drift.py +0 -0
  124. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/e2e_contract_coherence.py +0 -0
  125. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/e2e_extractor.py +0 -0
  126. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/e2e_generator.py +0 -0
  127. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/e2e_harness.py +0 -0
  128. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/e2e_runner.py +0 -0
  129. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/elicit/__init__.py +0 -0
  130. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/elicit/apply.py +0 -0
  131. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/elicit/engine.py +0 -0
  132. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/elicit/finding.py +0 -0
  133. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/elicit/formatters/__init__.py +0 -0
  134. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/elicit/formatters/base.py +0 -0
  135. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/elicit/formatters/interactive.py +0 -0
  136. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/elicit/formatters/json_fmt.py +0 -0
  137. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/elicit/formatters/md.py +0 -0
  138. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/elicit/lexicon_loader.py +0 -0
  139. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/elicit/persistence.py +0 -0
  140. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/elicit/templates/elicit_prompt_L0.md +0 -0
  141. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/env_refs.py +0 -0
  142. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/extract_ai.py +0 -0
  143. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/extract_paths.py +0 -0
  144. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/extractor.py +0 -0
  145. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/fix/__init__.py +0 -0
  146. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/fix/candidate_selector.py +0 -0
  147. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/fix/design_updater.py +0 -0
  148. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/fix/impl_propagation.py +0 -0
  149. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/fix/interactive_prompt.py +0 -0
  150. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/fix/phenomenon_fixer.py +0 -0
  151. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/fix/phenomenon_parser.py +0 -0
  152. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/fix/risk_classifier.py +0 -0
  153. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/fix/templates/clarification_question.txt +0 -0
  154. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/fix/templates/design_update.txt +0 -0
  155. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/fix/templates/impl_update.txt +0 -0
  156. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/fix/templates/phenomenon_parse.txt +0 -0
  157. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/fix/templates/risk_assessment.txt +0 -0
  158. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/fix/templates_loader.py +0 -0
  159. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/fixer.py +0 -0
  160. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/fixup_drift.py +0 -0
  161. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/fixup_drift_strategies/__init__.py +0 -0
  162. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/fixup_drift_strategies/design_token_drift.py +0 -0
  163. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/fixup_drift_strategies/lexicon_violation.py +0 -0
  164. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/fixup_drift_strategies/url_drift.py +0 -0
  165. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/frontmatter.py +0 -0
  166. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/generator.py +0 -0
  167. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/git_evidence.py +0 -0
  168. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/graph.py +0 -0
  169. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/greenfield/__init__.py +0 -0
  170. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/greenfield/pipeline.py +0 -0
  171. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/hitl_session.py +0 -0
  172. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/hooks/__init__.py +0 -0
  173. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/hooks/pre-commit +0 -0
  174. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/hooks/recipes/claude_requirements_nudge.json +0 -0
  175. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/hooks/recipes/claude_settings_example.json +0 -0
  176. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/hooks/recipes/codex_hook.sh +0 -0
  177. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/hooks/recipes/git_post_commit.sh +0 -0
  178. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/hooks/recipes/git_pre_commit.sh +0 -0
  179. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/iac_nfr.py +0 -0
  180. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/implement_oracle_scope.py +0 -0
  181. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/implement_oracle_types.py +0 -0
  182. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/implementer/__init__.py +0 -0
  183. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/implementer/chunked_runner.py +0 -0
  184. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/implementer/typecheck_loop.py +0 -0
  185. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/implementer.py +0 -0
  186. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/import_coherence.py +0 -0
  187. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/inheritance.py +0 -0
  188. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/init/__init__.py +0 -0
  189. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/init/lexicon_suggest.py +0 -0
  190. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/init/llm_lexicon_suggester.py +0 -0
  191. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/init/stack_detector.py +0 -0
  192. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/knowledge_fetcher.py +0 -0
  193. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/languages/__init__.py +0 -0
  194. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/languages/adapters/__init__.py +0 -0
  195. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/languages/adapters/oracle_go.py +0 -0
  196. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/languages/adapters/oracle_typescript.py +0 -0
  197. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/languages/adapters/runner_report.py +0 -0
  198. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/languages/builtin_adapters.py +0 -0
  199. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/languages/compat.py +0 -0
  200. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/languages/contract.py +0 -0
  201. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/languages/loader.py +0 -0
  202. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/languages/oracle_executor.py +0 -0
  203. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/languages/path_planner.py +0 -0
  204. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/languages/profile.py +0 -0
  205. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/languages/profiles/go.yaml +0 -0
  206. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/languages/profiles/python.yaml +0 -0
  207. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/languages/profiles/typescript.yaml +0 -0
  208. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/languages/registry.py +0 -0
  209. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/languages/verify_executor.py +0 -0
  210. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/languages/verify_plan.py +0 -0
  211. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/lexicon.py +0 -0
  212. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/lexicon_cli/__init__.py +0 -0
  213. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/lexicon_cli/formatters/__init__.py +0 -0
  214. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/lexicon_cli/formatters/html.py +0 -0
  215. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/lexicon_cli/formatters/json_fmt.py +0 -0
  216. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/lexicon_cli/formatters/md.py +0 -0
  217. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/lexicon_cli/inspector.py +0 -0
  218. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/lexicon_cli/manager.py +0 -0
  219. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/lexicon_cli/reporter.py +0 -0
  220. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/lexicon_cli/threshold.py +0 -0
  221. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/llm/__init__.py +0 -0
  222. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/llm/approval.py +0 -0
  223. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/llm/best_practice_augmenter.py +0 -0
  224. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/llm/criteria_expander.py +0 -0
  225. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/llm/design_doc_extractor.py +0 -0
  226. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/llm/impl_step_deriver.py +0 -0
  227. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/llm/means_catalog_loader.py +0 -0
  228. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/llm/parser.py +0 -0
  229. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/llm/plan_deriver.py +0 -0
  230. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/llm/prompt_builder.py +0 -0
  231. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/llm/strategy_validator.py +0 -0
  232. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/llm/templates/best_practice_augment_meta.md +0 -0
  233. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/llm/templates/criteria_expand_meta.md +0 -0
  234. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/llm/templates/design_doc_extract_meta.md +0 -0
  235. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/llm/templates/impl_step_derive_meta.md +0 -0
  236. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/llm/templates/implementation_step_catalog.yaml +0 -0
  237. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/llm/templates/meta_instruction.md +0 -0
  238. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/llm/templates/plan_derive_meta.md +0 -0
  239. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/llm/templates/verification_means_catalog.yaml +0 -0
  240. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/mcp_server.py +0 -0
  241. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/measure.py +0 -0
  242. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/operational_e2e_audit.py +0 -0
  243. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/operations_derive.py +0 -0
  244. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/parsing/__init__.py +0 -0
  245. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/parsing/_shared.py +0 -0
  246. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/parsing/api_specs.py +0 -0
  247. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/parsing/extractor_registry.py +0 -0
  248. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/parsing/filesystem_routes.py +0 -0
  249. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/parsing/iac.py +0 -0
  250. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/parsing/python_ast.py +0 -0
  251. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/parsing/regex_strategies.py +0 -0
  252. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/parsing/schemas.py +0 -0
  253. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/parsing/tests_builddeps.py +0 -0
  254. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/parsing/treesitter.py +0 -0
  255. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/planner.py +0 -0
  256. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/policy.py +0 -0
  257. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/preflight/__init__.py +0 -0
  258. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/preflight/defaults/cli.yaml +0 -0
  259. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/preflight/defaults/generic.yaml +0 -0
  260. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/preflight/defaults/iot.yaml +0 -0
  261. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/preflight/defaults/mobile.yaml +0 -0
  262. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/preflight/defaults/web.yaml +0 -0
  263. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/project_types.py +0 -0
  264. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/propagate.py +0 -0
  265. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/propagation_common.py +0 -0
  266. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/propagator.py +0 -0
  267. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/reconciliation_ledger.py +0 -0
  268. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/reference_resolution.py +0 -0
  269. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/registry.py +0 -0
  270. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/repair/__init__.py +0 -0
  271. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/repair/approval_repair.py +0 -0
  272. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/repair/auto_scope_guard.py +0 -0
  273. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/repair/engine.py +0 -0
  274. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/repair/git_patcher.py +0 -0
  275. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/repair/history.py +0 -0
  276. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/repair/llm_repair_engine.py +0 -0
  277. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/repair/loop.py +0 -0
  278. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/repair/primary_picker.py +0 -0
  279. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/repair/proof_breaks.py +0 -0
  280. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/repair/repair_result.py +0 -0
  281. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/repair/repairability_classifier.py +0 -0
  282. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/repair/schema.py +0 -0
  283. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/repair/templates/analyze_meta.md +0 -0
  284. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/repair/templates/propose_meta.md +0 -0
  285. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/repair/templates/repair_strategy_meta.md +0 -0
  286. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/repair/templates/repairability_meta.md +0 -0
  287. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/repair/test_failure_attribution.py +0 -0
  288. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/repair/verify_runner.py +0 -0
  289. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/repair_slice.py +0 -0
  290. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/require.py +0 -0
  291. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/require_plugins.py +0 -0
  292. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/require_propagate.py +0 -0
  293. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/required_artifacts/defaults/cli.yaml +0 -0
  294. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/required_artifacts/defaults/generic.yaml +0 -0
  295. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/required_artifacts/defaults/iot.yaml +0 -0
  296. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/required_artifacts/defaults/mobile.yaml +0 -0
  297. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/required_artifacts/defaults/web.yaml +0 -0
  298. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/required_artifacts_deriver.py +0 -0
  299. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/requirement_completeness/defaults/cli.yaml +0 -0
  300. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/requirement_completeness/defaults/generic.yaml +0 -0
  301. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/requirement_completeness/defaults/iot.yaml +0 -0
  302. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/requirement_completeness/defaults/mobile.yaml +0 -0
  303. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/requirement_completeness/defaults/web.yaml +0 -0
  304. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/requirement_completeness_auditor.py +0 -0
  305. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/requirement_reconciliation.py +0 -0
  306. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/requirements_meta.py +0 -0
  307. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/restoration_report.py +0 -0
  308. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/restore.py +0 -0
  309. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/routes_extractor.py +0 -0
  310. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/runtime_smoke/__init__.py +0 -0
  311. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/runtime_smoke/checks.py +0 -0
  312. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/runtime_smoke/config.py +0 -0
  313. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/runtime_smoke/report.py +0 -0
  314. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/runtime_smoke/runner.py +0 -0
  315. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/scanner.py +0 -0
  316. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/schema_refs.py +0 -0
  317. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/screen_flow_validator.py +0 -0
  318. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/screen_transition_extractor.py +0 -0
  319. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/screen_transitions/defaults.yaml +0 -0
  320. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/skills_cli/__init__.py +0 -0
  321. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/skills_cli/discovery.py +0 -0
  322. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/skills_cli/manager.py +0 -0
  323. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/skills_cli/paths.py +0 -0
  324. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/stack/__init__.py +0 -0
  325. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/stack/adapters/__init__.py +0 -0
  326. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/stack/adapters/_base.py +0 -0
  327. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/stack/adapters/nextjs.py +0 -0
  328. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/stack/adapters/playwright.py +0 -0
  329. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/stack/command_authenticity.py +0 -0
  330. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/stack/command_plan.py +0 -0
  331. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/stack/compose.py +0 -0
  332. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/stack/loader.py +0 -0
  333. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/stack/lock.py +0 -0
  334. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/stack/obligations.py +0 -0
  335. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/stack/profile.py +0 -0
  336. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/stack/profiles/addons/playwright.yaml +0 -0
  337. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/stack/profiles/addons/prisma.yaml +0 -0
  338. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/stack/profiles/frameworks/nextjs.yaml +0 -0
  339. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/stack/project.py +0 -0
  340. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/stack/registry.py +0 -0
  341. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/stack/replacement_proof.py +0 -0
  342. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/stack/resolve.py +0 -0
  343. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/surface_reconciliation.py +0 -0
  344. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/synth.py +0 -0
  345. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/templates/codd.yaml.tmpl +0 -0
  346. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/templates/conventions.yaml.tmpl +0 -0
  347. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/templates/data_dependencies.yaml.tmpl +0 -0
  348. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/templates/doc_links.yaml.tmpl +0 -0
  349. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/templates/extract_ai_prompt_baseline.md +0 -0
  350. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/templates/extracted/api-contract.md.j2 +0 -0
  351. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/templates/extracted/architecture-overview.md.j2 +0 -0
  352. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/templates/extracted/module-detail.md.j2 +0 -0
  353. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/templates/extracted/schema-design.md.j2 +0 -0
  354. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/templates/extracted/system-context.md.j2 +0 -0
  355. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/templates/gitignore.tmpl +0 -0
  356. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/templates/lexicon_questions.md +0 -0
  357. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/templates/lexicon_schema.yaml +0 -0
  358. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/templates/overrides.yaml.tmpl +0 -0
  359. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/test_detection.py +0 -0
  360. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/test_import_coherence.py +0 -0
  361. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/traceability.py +0 -0
  362. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/validator.py +0 -0
  363. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/vb_marker_authenticity.py +0 -0
  364. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/vb_rerun_scope.py +0 -0
  365. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/verifiable_behavior_audit.py +0 -0
  366. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/watch/__init__.py +0 -0
  367. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/watch/events.py +0 -0
  368. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/watch/propagation_log.py +0 -0
  369. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/watch/propagation_pipeline.py +0 -0
  370. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/watch/test_runner.py +0 -0
  371. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/watch/watcher.py +0 -0
  372. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd/wiring.py +0 -0
  373. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/ai_governance_eu_act/coverage_matrix.md +0 -0
  374. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/ai_governance_eu_act/elicit_extend.md +0 -0
  375. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/ai_governance_eu_act/lexicon.yaml +0 -0
  376. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/ai_governance_eu_act/manifest.yaml +0 -0
  377. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/ai_governance_eu_act/recommended_kinds.yaml +0 -0
  378. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/ai_governance_eu_act/severity_rules.yaml +0 -0
  379. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/api_rate_limiting_caching/coverage_matrix.md +0 -0
  380. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/api_rate_limiting_caching/elicit_extend.md +0 -0
  381. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/api_rate_limiting_caching/lexicon.yaml +0 -0
  382. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/api_rate_limiting_caching/manifest.yaml +0 -0
  383. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/api_rate_limiting_caching/recommended_kinds.yaml +0 -0
  384. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/api_rate_limiting_caching/severity_rules.yaml +0 -0
  385. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/api_rest_openapi/coverage_matrix.md +0 -0
  386. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/api_rest_openapi/elicit_extend.md +0 -0
  387. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/api_rest_openapi/lexicon.yaml +0 -0
  388. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/api_rest_openapi/manifest.yaml +0 -0
  389. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/api_rest_openapi/recommended_kinds.yaml +0 -0
  390. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/api_rest_openapi/severity_rules.yaml +0 -0
  391. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/babok/elicit_extend.md +0 -0
  392. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/babok/lexicon.yaml +0 -0
  393. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/babok/manifest.yaml +0 -0
  394. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/babok/recommended_kinds.yaml +0 -0
  395. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/babok/severity_rules.yaml +0 -0
  396. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/backend_event_cloudevents/coverage_matrix.md +0 -0
  397. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/backend_event_cloudevents/elicit_extend.md +0 -0
  398. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/backend_event_cloudevents/lexicon.yaml +0 -0
  399. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/backend_event_cloudevents/manifest.yaml +0 -0
  400. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/backend_event_cloudevents/recommended_kinds.yaml +0 -0
  401. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/backend_event_cloudevents/severity_rules.yaml +0 -0
  402. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/backend_graphql/coverage_matrix.md +0 -0
  403. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/backend_graphql/elicit_extend.md +0 -0
  404. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/backend_graphql/lexicon.yaml +0 -0
  405. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/backend_graphql/manifest.yaml +0 -0
  406. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/backend_graphql/recommended_kinds.yaml +0 -0
  407. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/backend_graphql/severity_rules.yaml +0 -0
  408. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/backend_grpc_proto/coverage_matrix.md +0 -0
  409. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/backend_grpc_proto/elicit_extend.md +0 -0
  410. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/backend_grpc_proto/lexicon.yaml +0 -0
  411. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/backend_grpc_proto/manifest.yaml +0 -0
  412. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/backend_grpc_proto/recommended_kinds.yaml +0 -0
  413. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/backend_grpc_proto/severity_rules.yaml +0 -0
  414. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/compliance_hipaa/coverage_matrix.md +0 -0
  415. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/compliance_hipaa/elicit_extend.md +0 -0
  416. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/compliance_hipaa/lexicon.yaml +0 -0
  417. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/compliance_hipaa/manifest.yaml +0 -0
  418. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/compliance_hipaa/recommended_kinds.yaml +0 -0
  419. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/compliance_hipaa/severity_rules.yaml +0 -0
  420. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/compliance_iso27001/coverage_matrix.md +0 -0
  421. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/compliance_iso27001/elicit_extend.md +0 -0
  422. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/compliance_iso27001/lexicon.yaml +0 -0
  423. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/compliance_iso27001/manifest.yaml +0 -0
  424. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/compliance_iso27001/recommended_kinds.yaml +0 -0
  425. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/compliance_iso27001/severity_rules.yaml +0 -0
  426. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/compliance_pci_dss_4/coverage_matrix.md +0 -0
  427. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/compliance_pci_dss_4/elicit_extend.md +0 -0
  428. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/compliance_pci_dss_4/lexicon.yaml +0 -0
  429. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/compliance_pci_dss_4/manifest.yaml +0 -0
  430. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/compliance_pci_dss_4/recommended_kinds.yaml +0 -0
  431. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/compliance_pci_dss_4/severity_rules.yaml +0 -0
  432. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/data_aggregation_policies/coverage_matrix.md +0 -0
  433. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/data_aggregation_policies/elicit_extend.md +0 -0
  434. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/data_aggregation_policies/lexicon.yaml +0 -0
  435. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/data_aggregation_policies/manifest.yaml +0 -0
  436. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/data_aggregation_policies/recommended_kinds.yaml +0 -0
  437. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/data_aggregation_policies/severity_rules.yaml +0 -0
  438. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/coverage_matrix.md +0 -0
  439. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/elicit_extend.md +0 -0
  440. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/lexicon.yaml +0 -0
  441. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/manifest.yaml +0 -0
  442. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/recommended_kinds.yaml +0 -0
  443. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/severity_rules.yaml +0 -0
  444. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/data_governance_appi_gdpr/coverage_matrix.md +0 -0
  445. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/data_governance_appi_gdpr/elicit_extend.md +0 -0
  446. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/data_governance_appi_gdpr/lexicon.yaml +0 -0
  447. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/data_governance_appi_gdpr/manifest.yaml +0 -0
  448. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/data_governance_appi_gdpr/recommended_kinds.yaml +0 -0
  449. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/data_governance_appi_gdpr/severity_rules.yaml +0 -0
  450. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/data_nosql_jsonschema/coverage_matrix.md +0 -0
  451. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/data_nosql_jsonschema/elicit_extend.md +0 -0
  452. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/data_nosql_jsonschema/lexicon.yaml +0 -0
  453. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/data_nosql_jsonschema/manifest.yaml +0 -0
  454. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/data_nosql_jsonschema/recommended_kinds.yaml +0 -0
  455. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/data_nosql_jsonschema/severity_rules.yaml +0 -0
  456. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/data_relational_iso_sql/coverage_matrix.md +0 -0
  457. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/data_relational_iso_sql/elicit_extend.md +0 -0
  458. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/data_relational_iso_sql/lexicon.yaml +0 -0
  459. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/data_relational_iso_sql/manifest.yaml +0 -0
  460. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/data_relational_iso_sql/recommended_kinds.yaml +0 -0
  461. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/data_relational_iso_sql/severity_rules.yaml +0 -0
  462. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/ddd_domain_driven_design/coverage_matrix.md +0 -0
  463. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/ddd_domain_driven_design/elicit_extend.md +0 -0
  464. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/ddd_domain_driven_design/lexicon.yaml +0 -0
  465. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/ddd_domain_driven_design/manifest.yaml +0 -0
  466. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/ddd_domain_driven_design/recommended_kinds.yaml +0 -0
  467. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/ddd_domain_driven_design/severity_rules.yaml +0 -0
  468. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/dora_sre_metrics/coverage_matrix.md +0 -0
  469. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/dora_sre_metrics/elicit_extend.md +0 -0
  470. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/dora_sre_metrics/lexicon.yaml +0 -0
  471. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/dora_sre_metrics/manifest.yaml +0 -0
  472. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/dora_sre_metrics/recommended_kinds.yaml +0 -0
  473. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/dora_sre_metrics/severity_rules.yaml +0 -0
  474. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/i18n_unicode_cldr/coverage_matrix.md +0 -0
  475. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/i18n_unicode_cldr/elicit_extend.md +0 -0
  476. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/i18n_unicode_cldr/lexicon.yaml +0 -0
  477. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/i18n_unicode_cldr/manifest.yaml +0 -0
  478. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/i18n_unicode_cldr/recommended_kinds.yaml +0 -0
  479. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/i18n_unicode_cldr/severity_rules.yaml +0 -0
  480. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/ml_model_cards/coverage_matrix.md +0 -0
  481. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/ml_model_cards/elicit_extend.md +0 -0
  482. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/ml_model_cards/lexicon.yaml +0 -0
  483. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/ml_model_cards/manifest.yaml +0 -0
  484. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/ml_model_cards/recommended_kinds.yaml +0 -0
  485. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/ml_model_cards/severity_rules.yaml +0 -0
  486. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/mobile_a11y_native/coverage_matrix.md +0 -0
  487. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/mobile_a11y_native/elicit_extend.md +0 -0
  488. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/mobile_a11y_native/lexicon.yaml +0 -0
  489. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/mobile_a11y_native/manifest.yaml +0 -0
  490. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/mobile_a11y_native/recommended_kinds.yaml +0 -0
  491. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/mobile_a11y_native/severity_rules.yaml +0 -0
  492. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/mobile_android_material3/coverage_matrix.md +0 -0
  493. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/mobile_android_material3/elicit_extend.md +0 -0
  494. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/mobile_android_material3/lexicon.yaml +0 -0
  495. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/mobile_android_material3/manifest.yaml +0 -0
  496. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/mobile_android_material3/recommended_kinds.yaml +0 -0
  497. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/mobile_android_material3/severity_rules.yaml +0 -0
  498. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/mobile_ios_hig/coverage_matrix.md +0 -0
  499. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/mobile_ios_hig/elicit_extend.md +0 -0
  500. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/mobile_ios_hig/lexicon.yaml +0 -0
  501. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/mobile_ios_hig/manifest.yaml +0 -0
  502. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/mobile_ios_hig/recommended_kinds.yaml +0 -0
  503. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/mobile_ios_hig/severity_rules.yaml +0 -0
  504. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/mobile_security_masvs/coverage_matrix.md +0 -0
  505. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/mobile_security_masvs/elicit_extend.md +0 -0
  506. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/mobile_security_masvs/lexicon.yaml +0 -0
  507. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/mobile_security_masvs/manifest.yaml +0 -0
  508. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/mobile_security_masvs/recommended_kinds.yaml +0 -0
  509. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/mobile_security_masvs/severity_rules.yaml +0 -0
  510. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/ops_cicd_pipeline/coverage_matrix.md +0 -0
  511. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/ops_cicd_pipeline/elicit_extend.md +0 -0
  512. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/ops_cicd_pipeline/lexicon.yaml +0 -0
  513. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/ops_cicd_pipeline/manifest.yaml +0 -0
  514. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/ops_cicd_pipeline/recommended_kinds.yaml +0 -0
  515. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/ops_cicd_pipeline/severity_rules.yaml +0 -0
  516. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/ops_iac_terraform/coverage_matrix.md +0 -0
  517. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/ops_iac_terraform/elicit_extend.md +0 -0
  518. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/ops_iac_terraform/lexicon.yaml +0 -0
  519. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/ops_iac_terraform/manifest.yaml +0 -0
  520. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/ops_iac_terraform/recommended_kinds.yaml +0 -0
  521. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/ops_iac_terraform/severity_rules.yaml +0 -0
  522. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/ops_kubernetes/coverage_matrix.md +0 -0
  523. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/ops_kubernetes/elicit_extend.md +0 -0
  524. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/ops_kubernetes/lexicon.yaml +0 -0
  525. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/ops_kubernetes/manifest.yaml +0 -0
  526. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/ops_kubernetes/recommended_kinds.yaml +0 -0
  527. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/ops_kubernetes/severity_rules.yaml +0 -0
  528. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/ops_observability_otel/coverage_matrix.md +0 -0
  529. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/ops_observability_otel/elicit_extend.md +0 -0
  530. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/ops_observability_otel/lexicon.yaml +0 -0
  531. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/ops_observability_otel/manifest.yaml +0 -0
  532. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/ops_observability_otel/recommended_kinds.yaml +0 -0
  533. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/ops_observability_otel/severity_rules.yaml +0 -0
  534. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/process_iso25010/coverage_matrix.md +0 -0
  535. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/process_iso25010/elicit_extend.md +0 -0
  536. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/process_iso25010/lexicon.yaml +0 -0
  537. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/process_iso25010/manifest.yaml +0 -0
  538. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/process_iso25010/recommended_kinds.yaml +0 -0
  539. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/process_iso25010/severity_rules.yaml +0 -0
  540. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/process_test_iso29119/coverage_matrix.md +0 -0
  541. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/process_test_iso29119/elicit_extend.md +0 -0
  542. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/process_test_iso29119/lexicon.yaml +0 -0
  543. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/process_test_iso29119/manifest.yaml +0 -0
  544. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/process_test_iso29119/recommended_kinds.yaml +0 -0
  545. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/process_test_iso29119/severity_rules.yaml +0 -0
  546. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/twelve_factor_app/coverage_matrix.md +0 -0
  547. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/twelve_factor_app/elicit_extend.md +0 -0
  548. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/twelve_factor_app/lexicon.yaml +0 -0
  549. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/twelve_factor_app/manifest.yaml +0 -0
  550. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/twelve_factor_app/recommended_kinds.yaml +0 -0
  551. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/twelve_factor_app/severity_rules.yaml +0 -0
  552. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/coverage_matrix.md +0 -0
  553. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/elicit_extend.md +0 -0
  554. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/lexicon.yaml +0 -0
  555. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/manifest.yaml +0 -0
  556. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/recommended_kinds.yaml +0 -0
  557. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/severity_rules.yaml +0 -0
  558. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/web_authn_webauthn/coverage_matrix.md +0 -0
  559. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/web_authn_webauthn/elicit_extend.md +0 -0
  560. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/web_authn_webauthn/lexicon.yaml +0 -0
  561. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/web_authn_webauthn/manifest.yaml +0 -0
  562. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/web_authn_webauthn/recommended_kinds.yaml +0 -0
  563. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/web_authn_webauthn/severity_rules.yaml +0 -0
  564. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/web_browser_compat/coverage_matrix.md +0 -0
  565. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/web_browser_compat/elicit_extend.md +0 -0
  566. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/web_browser_compat/lexicon.yaml +0 -0
  567. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/web_browser_compat/manifest.yaml +0 -0
  568. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/web_browser_compat/recommended_kinds.yaml +0 -0
  569. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/web_browser_compat/severity_rules.yaml +0 -0
  570. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/web_forms_html5/coverage_matrix.md +0 -0
  571. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/web_forms_html5/elicit_extend.md +0 -0
  572. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/web_forms_html5/lexicon.yaml +0 -0
  573. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/web_forms_html5/manifest.yaml +0 -0
  574. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/web_forms_html5/recommended_kinds.yaml +0 -0
  575. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/web_forms_html5/severity_rules.yaml +0 -0
  576. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/web_performance_core_web_vitals/coverage_matrix.md +0 -0
  577. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/web_performance_core_web_vitals/elicit_extend.md +0 -0
  578. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/web_performance_core_web_vitals/lexicon.yaml +0 -0
  579. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/web_performance_core_web_vitals/manifest.yaml +0 -0
  580. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/web_performance_core_web_vitals/recommended_kinds.yaml +0 -0
  581. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/web_performance_core_web_vitals/severity_rules.yaml +0 -0
  582. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/web_pwa_manifest/coverage_matrix.md +0 -0
  583. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/web_pwa_manifest/elicit_extend.md +0 -0
  584. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/web_pwa_manifest/lexicon.yaml +0 -0
  585. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/web_pwa_manifest/manifest.yaml +0 -0
  586. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/web_pwa_manifest/recommended_kinds.yaml +0 -0
  587. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/web_pwa_manifest/severity_rules.yaml +0 -0
  588. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/web_responsive/coverage_matrix.md +0 -0
  589. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/web_responsive/elicit_extend.md +0 -0
  590. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/web_responsive/lexicon.yaml +0 -0
  591. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/web_responsive/manifest.yaml +0 -0
  592. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/web_responsive/recommended_kinds.yaml +0 -0
  593. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/web_responsive/severity_rules.yaml +0 -0
  594. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/web_security_owasp/coverage_matrix.md +0 -0
  595. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/web_security_owasp/elicit_extend.md +0 -0
  596. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/web_security_owasp/lexicon.yaml +0 -0
  597. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/web_security_owasp/manifest.yaml +0 -0
  598. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/web_security_owasp/recommended_kinds.yaml +0 -0
  599. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/web_security_owasp/severity_rules.yaml +0 -0
  600. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/web_seo_schemaorg/coverage_matrix.md +0 -0
  601. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/web_seo_schemaorg/elicit_extend.md +0 -0
  602. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/web_seo_schemaorg/lexicon.yaml +0 -0
  603. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/web_seo_schemaorg/manifest.yaml +0 -0
  604. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/web_seo_schemaorg/recommended_kinds.yaml +0 -0
  605. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/lexicons/web_seo_schemaorg/severity_rules.yaml +0 -0
  606. {codd_dev-2.98.0 → codd_dev-2.99.0}/codd_plugins/stack_map.yaml +0 -0
  607. {codd_dev-2.98.0 → codd_dev-2.99.0}/docs/cookbook/cdp_browser/README.md +0 -0
  608. {codd_dev-2.98.0 → codd_dev-2.99.0}/docs/cookbook/presentation_aggregation/README.md +0 -0
  609. {codd_dev-2.98.0 → codd_dev-2.99.0}/docs/requirements/README.md +0 -0
  610. {codd_dev-2.98.0 → codd_dev-2.99.0}/dogfood/README.md +0 -0
  611. {codd_dev-2.98.0 → codd_dev-2.99.0}/dogfood/fixtures/flat_py_app/README.md +0 -0
  612. {codd_dev-2.98.0 → codd_dev-2.99.0}/examples/README.md +0 -0
  613. {codd_dev-2.98.0 → codd_dev-2.99.0}/skills/codd-assemble/SKILL.md +0 -0
  614. {codd_dev-2.98.0 → codd_dev-2.99.0}/skills/codd-evolve/SKILL.md +0 -0
  615. {codd_dev-2.98.0 → codd_dev-2.99.0}/skills/codd-generate/SKILL.md +0 -0
  616. {codd_dev-2.98.0 → codd_dev-2.99.0}/skills/codd-greenfield/SKILL.md +0 -0
  617. {codd_dev-2.98.0 → codd_dev-2.99.0}/skills/codd-impact/SKILL.md +0 -0
  618. {codd_dev-2.98.0 → codd_dev-2.99.0}/skills/codd-init/SKILL.md +0 -0
  619. {codd_dev-2.98.0 → codd_dev-2.99.0}/skills/codd-propagate/SKILL.md +0 -0
  620. {codd_dev-2.98.0 → codd_dev-2.99.0}/skills/codd-restore/SKILL.md +0 -0
  621. {codd_dev-2.98.0 → codd_dev-2.99.0}/skills/codd-scan/SKILL.md +0 -0
  622. {codd_dev-2.98.0 → codd_dev-2.99.0}/skills/codd-validate/SKILL.md +0 -0
  623. {codd_dev-2.98.0 → codd_dev-2.99.0}/tests/integration/standalone_repair_skeleton/README.md +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: codd-dev
3
- Version: 2.98.0
3
+ Version: 2.99.0
4
4
  Summary: CoDD: Coherence-Driven Development — cross-artifact change impact analysis
5
5
  Project-URL: Homepage, https://github.com/yohey-w/codd-dev
6
6
  Project-URL: Repository, https://github.com/yohey-w/codd-dev
@@ -1,3 +1,3 @@
1
1
  """CoDD — Coherence-Driven Development."""
2
2
 
3
- __version__ = "2.98.0"
3
+ __version__ = "2.99.0"
@@ -140,7 +140,6 @@ __all__ = [
140
140
  "normalize_python_tool_output",
141
141
  "resolve_implement_oracle",
142
142
  "run_implement_oracle_gate",
143
- "synthesize_minimal_layout_view",
144
143
  ]
145
144
 
146
145
  #: Internal-but-tested campaign entry point (the anti-false-green acceptance tests
@@ -617,11 +616,12 @@ def certify_oracle_scope(
617
616
  :func:`_resolve_contract_oracle` — with NO hardcoded language-name comparison
618
617
  (Cut Condition A; the legacy in-gate tsc certifier moved to the TS adapter).
619
618
 
620
- For a ``kind="adapter"`` language (Python) the legacy ``LayoutProfile`` is handed
621
- to the adapter as the layout VIEW (it reads ``source_root``/``test_root`` from it;
622
- the ``LayoutSpec`` does not carry those). A command-sequence oracle (Go reads
623
- ``module_root``; TS reads ``source_sets``/``test_sets``) reads from the resolved
624
- ``LanguageProfile.layout`` (no override).
619
+ Cut A.3: the ``OracleContext.layout_profile`` is ALWAYS the resolved ``LayoutSpec``
620
+ (``lang_profile.layout``) NO legacy ``LayoutProfile`` layout-VIEW override. A
621
+ ``kind="adapter"`` language (Python) derives its ``source_root``/``test_root`` from
622
+ the ``LayoutSpec`` (``source_sets``/``package_root`` template) + the gate-resolved
623
+ ``package_name`` carried on the context. A command-sequence oracle (Go reads
624
+ ``module_root``; TS reads ``source_sets``/``test_sets``) reads the SAME ``LayoutSpec``.
625
625
  """
626
626
  contract = _resolve_contract_oracle(profile.language)
627
627
  if contract is None:
@@ -637,15 +637,13 @@ def certify_oracle_scope(
637
637
  lang_profile, oracle_decl, adapter = contract
638
638
  from codd.languages.adapters.implement_oracle import OracleContext
639
639
 
640
- layout_view = (
641
- profile if getattr(oracle_decl, "kind", None) == "adapter" else lang_profile.layout
642
- )
643
640
  ctx = OracleContext(
644
641
  project_root=project_root,
645
- layout_profile=layout_view,
642
+ layout_profile=lang_profile.layout,
646
643
  language_profile=lang_profile,
647
644
  oracle=oracle_decl,
648
645
  config=None,
646
+ package_name=getattr(profile, "package_name", None),
649
647
  )
650
648
  return adapter.certify_scope(ctx)
651
649
 
@@ -995,7 +993,7 @@ def _run_contract_oracle(
995
993
  adapter: Any,
996
994
  config: Mapping[str, Any] | None,
997
995
  *,
998
- layout_override: Any = None,
996
+ package_name: str | None = None,
999
997
  ) -> ImplementOracleResult:
1000
998
  """Run a modeled oracle on the contract path (certify already done by caller).
1001
999
 
@@ -1012,14 +1010,12 @@ def _run_contract_oracle(
1012
1010
  declared ``kind="adapter"`` with no ``execute`` is an incomplete contract →
1013
1011
  RED, never a silent pass).
1014
1012
 
1015
- ``layout_override`` lets a ``kind="adapter"`` language hand the adapter a RICHER
1016
- layout VIEW than the profile's ``LayoutSpec``: Python's ``python-composite``
1017
- reads ``source_root`` / ``test_root`` / ``package_root`` / ``package_name`` (the
1018
- legacy Python ``LayoutProfile`` carries them; ``LayoutSpec`` does not). Go's
1019
- command-sequence adapter still reads ``module_root`` from ``lang_profile.layout``
1020
- (``layout_override`` is ``None`` for it). The ``OracleContext.layout_profile``
1021
- field is duck-typed (the generic executor only reads ``module_root``/cwd/env from
1022
- it on the command-sequence path, which the adapter path does not take).
1013
+ Cut A.3: ``OracleContext.layout_profile`` is ALWAYS ``lang_profile.layout`` (the
1014
+ resolved ``LayoutSpec``) there is NO legacy ``LayoutProfile`` layout-VIEW
1015
+ override. A ``kind="adapter"`` language whose layout template carries
1016
+ ``{package_name}`` (Python's ``src/{package_name}``) SUBSTITUTES the gate-resolved
1017
+ ``package_name`` carried on the context; Go's command-sequence adapter reads
1018
+ ``module_root`` from the same ``LayoutSpec`` (``package_name`` is ``None`` for it).
1023
1019
  """
1024
1020
  from codd.languages.adapters.implement_oracle import (
1025
1021
  OracleContext,
@@ -1029,10 +1025,11 @@ def _run_contract_oracle(
1029
1025
 
1030
1026
  ctx = OracleContext(
1031
1027
  project_root=project_root,
1032
- layout_profile=layout_override if layout_override is not None else lang_profile.layout,
1028
+ layout_profile=lang_profile.layout,
1033
1029
  language_profile=lang_profile,
1034
1030
  oracle=oracle_decl,
1035
1031
  config=config,
1032
+ package_name=package_name,
1036
1033
  )
1037
1034
 
1038
1035
  # Install preflight (language-free, BEFORE dispatch so run_command_sequence stays
@@ -1109,12 +1106,13 @@ def _run_oracle_command(
1109
1106
  in-process ``execute`` (compile + first-party import resolver + ``pytest
1110
1107
  --collect-only``).
1111
1108
 
1112
- For a ``kind="adapter"`` contract (Python) the legacy ``LayoutProfile`` is handed
1113
- to the adapter as the layout VIEW (``layout_override``): the Python adapter reads
1114
- ``source_root`` / ``test_root`` / ``package_root`` / ``package_name`` from it (the
1115
- profile's ``LayoutSpec`` does not carry those). A command-sequence oracle (Go reads
1116
- ``module_root``; TS reads ``source_sets``/``test_sets``) needs no override — it
1117
- reads from the resolved ``LanguageProfile.layout``.
1109
+ Cut A.3: the ``OracleContext.layout_profile`` is ALWAYS the resolved ``LayoutSpec``
1110
+ (``lang_profile.layout``) the legacy ``LayoutProfile`` layout-VIEW override is
1111
+ retired. The Python adapter derives its ``source_root`` / ``test_root`` /
1112
+ ``package_root`` from the ``LayoutSpec`` (``source_sets`` / ``test_sets`` /
1113
+ ``package_root`` template) + the gate-resolved ``package_name`` (carried on the
1114
+ context, not a synthesized legacy profile). A command-sequence oracle (Go reads
1115
+ ``module_root``; TS reads ``source_sets``/``test_sets``) reads the SAME ``LayoutSpec``.
1118
1116
 
1119
1117
  No contract resolves (an unsupported stack reaching here) → an honest
1120
1118
  ``environment_build_error`` RED, never a silent pass (anti-false-green).
@@ -1139,14 +1137,14 @@ def _run_oracle_command(
1139
1137
  detail=f"no contract oracle for language {profile.language!r}",
1140
1138
  )
1141
1139
  lang_profile, oracle_decl, adapter = contract
1142
- # A kind="adapter" oracle (Python) runs in-process and needs the richer legacy
1143
- # layout (source_root/test_root/package_root); hand it the gate's LayoutProfile as
1144
- # the layout view. A command-sequence oracle (Go/TS) reads from the profile's
1145
- # LayoutSpec no override.
1146
- layout_override = profile if getattr(oracle_decl, "kind", None) == "adapter" else None
1140
+ # Cut A.3: carry the gate-resolved canonical ``package_name`` (the legacy profile
1141
+ # resolved it via ``resolve_canonical_package_name``) so a ``kind="adapter"`` oracle
1142
+ # whose layout template carries ``{package_name}`` (Python's ``src/{package_name}``)
1143
+ # can SUBSTITUTE it — instead of handing the adapter a legacy LayoutProfile layout
1144
+ # view. No override mechanism; the layout authority is the LayoutSpec.
1147
1145
  return _run_contract_oracle(
1148
1146
  project_root, lang_profile, oracle_decl, adapter, config,
1149
- layout_override=layout_override,
1147
+ package_name=getattr(profile, "package_name", None),
1150
1148
  )
1151
1149
 
1152
1150
 
@@ -1213,41 +1211,6 @@ def resolve_implement_oracle(
1213
1211
  return profile, profile.implement_oracle
1214
1212
 
1215
1213
 
1216
- def synthesize_minimal_layout_view(lang_profile: Any) -> LayoutProfile:
1217
- """A minimal :class:`LayoutProfile` COMPAT VIEW from a ``LanguageProfile.layout``.
1218
-
1219
- GPT §5 "synthesize_minimal_layout_view": a ``kind="adapter"`` oracle (the
1220
- Python-style in-process composite) reads ``source_root`` / ``test_root`` /
1221
- ``package_root`` / ``package_name`` off ``OracleContext.layout_profile`` — fields
1222
- the modeled ``LayoutSpec`` does NOT carry. When such a language has NO legacy
1223
- ``LayoutProfile`` builder, this synthesizes those fields from the profile's
1224
- ``layout.source_sets`` / ``layout.test_sets`` (first set's ``root``; defensive
1225
- ``src`` / ``tests`` defaults) so the adapter still gets the layout view it needs.
1226
-
1227
- This is a COMPAT VIEW, not the scope AUTHORITY: the real scope authority is the
1228
- ``LanguageProfile.layout`` + the oracle adapter's ``certify_scope`` (anti-false-
1229
- green). It carries only what an ``adapter``-kind oracle reads, never a per-language
1230
- policy. ``package_root`` defaults to ``source_root`` (a Python-style adapter
1231
- derives the package root from ``package_name`` when one is set; an adapter with no
1232
- package concept simply reads ``source_root``).
1233
- """
1234
- layout = getattr(lang_profile, "layout", None)
1235
- source_sets = tuple(getattr(layout, "source_sets", ()) or ()) if layout is not None else ()
1236
- test_sets = tuple(getattr(layout, "test_sets", ()) or ()) if layout is not None else ()
1237
- source_root = _norm(source_sets[0].root) if source_sets else "src"
1238
- test_root = _norm(test_sets[0].root) if test_sets else "tests"
1239
- source_root = source_root or "src"
1240
- test_root = test_root or "tests"
1241
- package_id = getattr(lang_profile, "id", "") or "app"
1242
- return LayoutProfile(
1243
- language=package_id, # canonical id — carried for the contract re-resolve
1244
- package_name=package_id,
1245
- source_root=source_root,
1246
- package_root=source_root,
1247
- test_root=test_root,
1248
- )
1249
-
1250
-
1251
1214
  def _resolve_registry_oracle(
1252
1215
  language: str | None,
1253
1216
  ) -> tuple[LayoutProfile, ImplementOracleSpec] | None:
@@ -1265,16 +1228,21 @@ def _resolve_registry_oracle(
1265
1228
  ``execute``) — no kind allowlist, so a synthetic ``kind="command"``/``"adapter"``
1266
1229
  language runs its oracle instead of falling to a silent NO-OP (the gap §8 closes).
1267
1230
 
1268
- LAYOUT VIEW per kind:
1231
+ Cut A.3: the synthetic ``LayoutProfile`` is ONLY the gate's SPEC CARRIER (it
1232
+ carries ``language`` for the contract re-resolve, ``package_name`` for the
1233
+ context's ``{package_name}`` substitution, and the ``implement_oracle`` spec the
1234
+ certify/run/retry machinery reads) — it is NEVER a layout AUTHORITY. The adapter
1235
+ reads the real ``LayoutSpec`` off ``ctx.language_profile.layout`` (the
1236
+ ``synthesize_minimal_layout_view`` compat-view bridge is retired):
1269
1237
 
1270
1238
  * ``command`` / ``composite`` (Go: ``go-toolchain``) — the command-sequence
1271
- executor reads cwd/env from ``lang_profile.layout`` (module root etc.), so the
1272
- synthetic ``LayoutProfile`` only needs to carry the module root (as
1273
- ``source_root``/etc.) + the canonical ``language`` for the contract re-resolve.
1239
+ executor reads cwd/env from ``lang_profile.layout`` (module root etc.); the
1240
+ synthetic ``LayoutProfile``'s ``source_root`` field is a vestigial carrier the
1241
+ adapter does not read.
1274
1242
  * ``adapter`` (a Python-style in-process composite with no legacy profile) — the
1275
- adapter reads ``source_root``/``test_root``/``package_root``/``package_name`` off
1276
- the layout VIEW, so we synthesize that view from ``LanguageProfile.layout`` via
1277
- :func:`synthesize_minimal_layout_view`.
1243
+ adapter derives its source/test/package roots from ``ctx.language_profile.layout``
1244
+ (``source_sets``/``test_sets``/``package_root``) + ``ctx.package_name``; the
1245
+ synthetic profile only carries ``package_name`` + the spec.
1278
1246
 
1279
1247
  In practice Go is the only BUILT-IN that reaches here (TS/Python HAVE legacy
1280
1248
  ``LayoutProfile`` builders); the command/adapter branches exist so a NEW language
@@ -1289,12 +1257,22 @@ def _resolve_registry_oracle(
1289
1257
  lang_profile, oracle_decl, _adapter = contract
1290
1258
  kind = getattr(oracle_decl, "kind", None)
1291
1259
  if kind == "adapter":
1292
- # An in-process ``kind="adapter"`` oracle reads the richer layout view; build
1293
- # it from the profile's modeled layout (the compat-view synthesis).
1294
- synthetic = synthesize_minimal_layout_view(lang_profile)
1295
- synthetic = _with_implement_oracle(
1296
- synthetic,
1297
- ImplementOracleSpec(
1260
+ # An in-process ``kind="adapter"`` oracle reads the LayoutSpec off the resolved
1261
+ # LanguageProfile (Cut A.3 no synthesized layout view). The synthetic profile
1262
+ # is only the gate's spec carrier: ``language`` (contract re-resolve) +
1263
+ # ``package_name`` (the context's ``{package_name}`` substitution) + the spec.
1264
+ # The topology fields are required by the dataclass but VESTIGIAL here (the
1265
+ # adapter never reads them — it uses ``ctx.language_profile.layout``); fill them
1266
+ # from the LayoutSpec's first source-set so the carrier stays well-formed.
1267
+ _src_sets = tuple(getattr(lang_profile.layout, "source_sets", ()) or ())
1268
+ _carrier_root = _norm(_src_sets[0].root) if _src_sets else "src"
1269
+ synthetic = LayoutProfile(
1270
+ language=lang_profile.id,
1271
+ package_name=lang_profile.id,
1272
+ source_root=_carrier_root,
1273
+ package_root=_carrier_root,
1274
+ test_root="tests",
1275
+ implement_oracle=ImplementOracleSpec(
1298
1276
  command=f"{lang_profile.id}-adapter", # sentinel; kind dispatch runs the contract path
1299
1277
  kind="adapter",
1300
1278
  # An adapter bakes its own scope policy in certify_scope; the spec scope
@@ -55,9 +55,12 @@ class OracleContext:
55
55
 
56
56
  project_root: Path
57
57
  #: The resolved layout topology (``module_root`` / ``repo_root`` / ``manifest_root``
58
- #: etc.). The generic executor substitutes these into a command's ``cwd``/``env``
59
- #: placeholders before spawning. Held separately from ``language_profile`` (though
60
- #: it is ``language_profile.layout``) so a caller can pass a layout VIEW.
58
+ #: / ``source_sets`` / ``test_sets`` / ``package_root``). It is ALWAYS the resolved
59
+ #: :class:`LayoutSpec` (``language_profile.layout``) Cut A.3 retired the legacy
60
+ #: ``LayoutProfile`` layout-VIEW override: NO adapter reads a legacy
61
+ #: ``source_root``/``package_root`` off this field anymore (the Python adapter
62
+ #: derives its source/package/test roots from ``source_sets``/``package_root`` +
63
+ #: :attr:`package_name`, like the TS/Go adapters read ``source_sets``/``module_root``).
61
64
  layout_profile: LayoutSpec
62
65
  #: The resolved language contract the dispatch already produced — the adapter
63
66
  #: reads ``commands[command_id]`` from it; it NEVER re-resolves a language.
@@ -66,6 +69,15 @@ class OracleContext:
66
69
  oracle: ImplementOracleProfileSpec
67
70
  #: The run config (``implement.*`` knobs: timeouts, etc.). ``None`` ⇒ defaults.
68
71
  config: Mapping[str, Any] | None = None
72
+ #: The harness-owned RESOLVED package name (``resolve_canonical_package_name``:
73
+ #: config override → single top-level package on disk → project-name default).
74
+ #: The gate resolves it (it has ``project_name``); an adapter whose layout
75
+ #: template carries ``{package_name}`` (Python's ``src/{package_name}``)
76
+ #: SUBSTITUTES this — it is NOT the adapter's job to re-resolve a name. ``None``
77
+ #: when the stack's layout has no package-name placeholder (Go/TS): substituting
78
+ #: an absent ``{package_name}`` is a HARD FAIL, never a silent ``src`` fallback
79
+ #: (a wrong package_root is a false-green — Cut A.3 nuance).
80
+ package_name: str | None = None
69
81
 
70
82
 
71
83
  @dataclass(frozen=True)
@@ -1345,13 +1345,20 @@ def _certify_python_tool_observability(
1345
1345
  # ═════════════════════════════════════════════════════════════════════════════
1346
1346
  # Layout reading (the Python-specific scope knowledge baked into the adapter).
1347
1347
  #
1348
- # The OracleContext carries the legacy Python ``LayoutProfile`` as ``layout_profile``
1349
- # (the gate passes it — it has ``source_root`` / ``test_root`` / ``package_root`` /
1350
- # ``package_name``; ``LayoutSpec`` does not). Python's scope policy (require source_
1351
- # root; test_root for the collect layer) is Python-specific knowledge baked here,
1352
- # not depending on a legacy OracleScopeSpec. ``require_test_root`` is True for the
1353
- # Python composite (matches the legacy spec, ``OracleScopeSpec(require_source_root=
1354
- # True, require_test_root=True)``).
1348
+ # Cut A.3: the adapter derives ``(source_root, package_root, test_root)`` from the
1349
+ # resolved ``LayoutSpec`` (``ctx.language_profile.layout`` ``source_sets`` /
1350
+ # ``test_sets`` / ``package_root`` template) + the gate-resolved ``ctx.package_name``,
1351
+ # NOT from a legacy ``LayoutProfile.source_root`` layout VIEW (that bridge is gone).
1352
+ # This MIRRORS the TS adapter's ``_ts_layout_roots`` (reads ``layout.source_sets`` /
1353
+ # ``test_sets``), but with Python's named-package nuance: Python's single source-set
1354
+ # root is ``src/{package_name}`` (the PACKAGE dir), so the bare ``source_root`` is
1355
+ # the PARENT of the substituted ``package_root`` (``src/app`` → ``src``) — the import
1356
+ # index keys a module under ``package_root`` as ``<pkg>.mod`` and a flat module under
1357
+ # ``source_root`` outside it as a bare name, so the two roots are NOT interchangeable.
1358
+ #
1359
+ # Python's scope policy (require source root; require test root for the collect
1360
+ # layer) is Python-specific knowledge → baked here, not depending on a legacy
1361
+ # OracleScopeSpec.
1355
1362
  # ═════════════════════════════════════════════════════════════════════════════
1356
1363
 
1357
1364
  #: Python's composite oracle requires BOTH a source scope (the keystone resolver +
@@ -1361,20 +1368,126 @@ _REQUIRE_SOURCE_ROOT = True
1361
1368
  _REQUIRE_TEST_ROOT = True
1362
1369
 
1363
1370
 
1364
- def _layout_roots(ctx: OracleContext) -> tuple[str, str, str]:
1365
- """``(source_root, package_root, test_root)`` from ctx's legacy Python layout.
1371
+ def _py_parent_dir(path: str) -> str:
1372
+ """Parent directory of a POSIX relative path (``src/app`` → ``src``).
1366
1373
 
1367
- The gate builds the context with the legacy ``LayoutProfile`` (which carries
1368
- these). Defensive defaults mirror the Python profile's standard src-layout so a
1369
- minimal/synthetic layout view still anchors first-party classification.
1374
+ Returns ``"."`` when there is no parent segment. Mirrors
1375
+ :func:`codd.languages.compat._parent_dir` (the proven-byte-identical derivation):
1376
+ a ``named_package`` layout always nests ``<src>/<pkg>``, so the legacy
1377
+ ``source_root`` is the package_root's parent.
1378
+ """
1379
+ norm = _py_norm(path)
1380
+ if "/" not in norm:
1381
+ return "."
1382
+ return norm.rsplit("/", 1)[0]
1383
+
1384
+
1385
+ def _py_layout_from_layout_spec(ctx: OracleContext) -> tuple[str, str, str]:
1386
+ """``(source_root, package_root, test_root)`` derived from the resolved ``LayoutSpec``.
1387
+
1388
+ Cut A.3 (the Python oracle's layout AUTHORITY): the adapter reads the v3
1389
+ ``LayoutSpec`` (``ctx.language_profile.layout``) + the gate-resolved
1390
+ ``ctx.package_name``, NOT a legacy ``LayoutProfile.source_root``. Anti-false-green
1391
+ is paramount — a silent wrong layout here is a false-green — so this is strict:
1392
+
1393
+ * **Multi-source-set / multi-(required-)test-set → HARD FAIL** (RED via
1394
+ :class:`OracleScopeError`). Python declares exactly ONE source-set + ONE unit
1395
+ test-set today; the import index + collect scope are single-root. Reading only
1396
+ ``source_sets[0]`` would SILENTLY drop the v3 set-semantics (a dropped root =
1397
+ unproven code = false-green), so >1 is an explicit unsupported RED, never a
1398
+ silent first-root collapse. (Multi-root observe-all is a later increment +
1399
+ Stage-5 poison test; this increment is behavior-preserving on single-root.)
1400
+ * **package_root** = the ``package_root`` template with ``{package_name}``
1401
+ SUBSTITUTED from ``ctx.package_name`` (``named_package`` → ``src/app``).
1402
+ * **source_root** = the PARENT of ``package_root`` for ``named_package``
1403
+ (``src/app`` → ``src``); the bare set root for ``path_root``.
1404
+ * **test_root** = the single test-set's root (``tests``).
1405
+ * **Unresolved ``{package_name}`` → HARD FAIL** (no ``src`` fallback): a leftover
1406
+ ``{package_name}`` (gate did not resolve a name) means the package_root is
1407
+ UNKNOWN; a ``src`` fallback would point the oracle at the wrong tree (the
1408
+ biggest drift risk Cut A.3 flags) → RED, never a silent wrong package_root.
1370
1409
  """
1371
- layout = ctx.layout_profile
1372
- source_root = _py_norm(getattr(layout, "source_root", "") or "src") or "src"
1373
- package_root = _py_norm(getattr(layout, "package_root", "") or "")
1374
- test_root = _py_norm(getattr(layout, "test_root", "") or "tests") or "tests"
1375
- if not package_root:
1376
- package_name = getattr(layout, "package_name", "") or ""
1377
- package_root = f"{source_root}/{package_name}".strip("/") if package_name else source_root
1410
+ layout = ctx.language_profile.layout
1411
+ source_sets = tuple(getattr(layout, "source_sets", ()) or ())
1412
+ test_sets = tuple(getattr(layout, "test_sets", ()) or ())
1413
+
1414
+ # Multi-set → hard-fail (never a silent first-root collapse — anti-false-green).
1415
+ if len(source_sets) > 1:
1416
+ raise OracleScopeError(
1417
+ "python implement-time oracle cannot be certified: the resolved layout "
1418
+ f"declares {len(source_sets)} source_sets "
1419
+ f"({[s.id for s in source_sets]}), but the Python composite oracle is "
1420
+ "single-source-root (its first-party import index + compile + collect "
1421
+ "scope are rooted at ONE source tree). Observing only the first set would "
1422
+ "SILENTLY drop the others (unproven code = false-green); a multi-source-set "
1423
+ "Python layout is UNSUPPORTED by this oracle today (RED, never a silent "
1424
+ "first-root collapse)."
1425
+ )
1426
+ # A REQUIRED (non-optional) test-set count > 1 is the same hazard for the collect
1427
+ # scope. ``optional``/``colocated`` sets are not REQUIRED roots, so they do not
1428
+ # trigger the hard-fail (the collect layer runs over the single required test root).
1429
+ required_test_sets = tuple(s for s in test_sets if not getattr(s, "optional", False))
1430
+ if len(required_test_sets) > 1:
1431
+ raise OracleScopeError(
1432
+ "python implement-time oracle cannot be certified: the resolved layout "
1433
+ f"declares {len(required_test_sets)} required test_sets "
1434
+ f"({[s.id for s in required_test_sets]}), but the Python composite oracle "
1435
+ "collects a SINGLE test root. A multi-required-test-set Python layout is "
1436
+ "UNSUPPORTED by this oracle today (RED, never a silent first-root collapse)."
1437
+ )
1438
+
1439
+ pkg_spec = getattr(layout, "package_root", None)
1440
+ pkg_kind = getattr(pkg_spec, "kind", "none")
1441
+ pkg_path = getattr(pkg_spec, "path", None) or ""
1442
+ package_name = ctx.package_name
1443
+
1444
+ def _subst(template: str) -> str:
1445
+ """Substitute ``{package_name}``; a leftover placeholder is a HARD FAIL."""
1446
+ rendered = template
1447
+ if "{package_name}" in template:
1448
+ if not package_name:
1449
+ raise OracleScopeError(
1450
+ "python implement-time oracle cannot be certified: the layout "
1451
+ f"template {template!r} carries an UNRESOLVED '{{package_name}}' "
1452
+ "(the gate did not resolve a canonical package name), so the "
1453
+ "package_root is UNKNOWN. A 'src' fallback would point the oracle "
1454
+ "at the WRONG package tree (silent wrong layout = false-green) — "
1455
+ "this is a HARD FAIL, not a fallback. Ensure the project's package "
1456
+ "name resolves (project.package_name / a single top-level package "
1457
+ "on disk / the project name)."
1458
+ )
1459
+ rendered = template.replace("{package_name}", package_name)
1460
+ if "{" in rendered and "}" in rendered:
1461
+ # Any OTHER leftover placeholder ({module_path}, …) is equally undecidable.
1462
+ raise OracleScopeError(
1463
+ "python implement-time oracle cannot be certified: the layout template "
1464
+ f"{template!r} has an unresolved placeholder after substitution "
1465
+ f"({rendered!r}); the scope is undecidable (HARD FAIL, never a guess)."
1466
+ )
1467
+ return _py_norm(rendered)
1468
+
1469
+ if pkg_kind == "named_package":
1470
+ if not pkg_path:
1471
+ raise OracleScopeError(
1472
+ "python implement-time oracle cannot be certified: package_root.kind="
1473
+ "named_package but no path (the layout is incomplete; HARD FAIL)."
1474
+ )
1475
+ package_root = _subst(pkg_path)
1476
+ source_root = _py_parent_dir(package_root)
1477
+ elif pkg_kind == "path_root":
1478
+ package_root = _subst(pkg_path) if pkg_path else ""
1479
+ source_root = package_root
1480
+ else:
1481
+ # ``none`` (no single package root — Go) or unknown: derive the source root
1482
+ # from the single source-set, package_root == source_root (no named package).
1483
+ source_root = _subst(source_sets[0].root) if source_sets else "src"
1484
+ package_root = source_root
1485
+
1486
+ if not source_root:
1487
+ source_root = "src"
1488
+ test_root = _subst(test_sets[0].root) if test_sets else "tests"
1489
+ if not test_root:
1490
+ test_root = "tests"
1378
1491
  return source_root, package_root, test_root
1379
1492
 
1380
1493
 
@@ -1449,10 +1562,11 @@ class PythonCompositeOracleAdapter:
1449
1562
  """Certify the Python oracle's concrete file-list covers the required root(s).
1450
1563
 
1451
1564
  Anti-false-green: a required source/test root with ZERO ``.py`` is a HARD
1452
- FAIL (:class:`OracleScopeError`, never a silent pass). Reads source_root /
1453
- test_root from ``ctx.layout_profile`` (the legacy Python LayoutProfile).
1565
+ FAIL (:class:`OracleScopeError`, never a silent pass). Derives source_root /
1566
+ test_root from the resolved ``LayoutSpec`` (``ctx.language_profile.layout`` +
1567
+ ``ctx.package_name``) — Cut A.3: NO legacy ``LayoutProfile.source_root`` read.
1454
1568
  """
1455
- source_root, _package_root, test_root = _layout_roots(ctx)
1569
+ source_root, _package_root, test_root = _py_layout_from_layout_spec(ctx)
1456
1570
  scope = _python_oracle_scope(ctx.project_root, source_root, test_root)
1457
1571
  missing_roots: list[str] = []
1458
1572
  if _REQUIRE_SOURCE_ROOT and not scope.source_files:
@@ -1485,9 +1599,11 @@ class PythonCompositeOracleAdapter:
1485
1599
  ``diagnostics=[]`` (no scoped Python rerun — the bounded loop falls to broad
1486
1600
  rerun, which is safe). Preserves EVERY tolerance precisely (third-party
1487
1601
  import tolerate, third-party-only collection tolerate, pytest-missing →
1488
- environment_build_error).
1602
+ environment_build_error). Derives its roots from the resolved ``LayoutSpec``
1603
+ (``ctx.language_profile.layout`` + ``ctx.package_name``) — Cut A.3: NO legacy
1604
+ ``LayoutProfile.source_root`` read.
1489
1605
  """
1490
- source_root, package_root, test_root = _layout_roots(ctx)
1606
+ source_root, package_root, test_root = _py_layout_from_layout_spec(ctx)
1491
1607
  project_root = ctx.project_root
1492
1608
  config = ctx.config
1493
1609
  scope = _python_oracle_scope(project_root, source_root, test_root)
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "codd-dev"
7
- version = "2.98.0"
7
+ version = "2.99.0"
8
8
  description = "CoDD: Coherence-Driven Development — cross-artifact change impact analysis"
9
9
  readme = "README.md"
10
10
  license = "MIT"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes