codd-dev 2.81.0__tar.gz → 2.83.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 (618) hide show
  1. {codd_dev-2.81.0 → codd_dev-2.83.0}/PKG-INFO +1 -1
  2. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/__init__.py +1 -1
  3. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/greenfield/pipeline.py +40 -4
  4. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/implement_oracle.py +264 -35
  5. {codd_dev-2.81.0 → codd_dev-2.83.0}/pyproject.toml +1 -1
  6. {codd_dev-2.81.0 → codd_dev-2.83.0}/.gitignore +0 -0
  7. {codd_dev-2.81.0 → codd_dev-2.83.0}/LICENSE +0 -0
  8. {codd_dev-2.81.0 → codd_dev-2.83.0}/README.md +0 -0
  9. {codd_dev-2.81.0 → codd_dev-2.83.0}/bench_fixture/README.md +0 -0
  10. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/__main__.py +0 -0
  11. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/_git_helper.py +0 -0
  12. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/action_outcome.py +0 -0
  13. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/ai_invoke.py +0 -0
  14. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/ai_patch.py +0 -0
  15. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/artifact_contract.py +0 -0
  16. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/artifact_ids.py +0 -0
  17. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/artifacts/catalog.yaml +0 -0
  18. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/ask_user_question_adapter.py +0 -0
  19. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/assembler.py +0 -0
  20. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/bridge.py +0 -0
  21. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/brownfield/__init__.py +0 -0
  22. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/brownfield/pipeline.py +0 -0
  23. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/capability_completeness.py +0 -0
  24. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/claude_cli.py +0 -0
  25. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/cli.py +0 -0
  26. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/clustering.py +0 -0
  27. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/coherence_adapters.py +0 -0
  28. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/coherence_engine.py +0 -0
  29. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/confidence.py +0 -0
  30. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/config.py +0 -0
  31. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/config_schema.py +0 -0
  32. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/contracts.py +0 -0
  33. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/contracts_registry/__init__.py +0 -0
  34. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/contracts_registry/__main__.py +0 -0
  35. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/contracts_registry/certify.py +0 -0
  36. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/contracts_registry/generate_matrix.py +0 -0
  37. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/contracts_registry/registry.py +0 -0
  38. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/coverage_auditor.py +0 -0
  39. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/coverage_execution_coherence.py +0 -0
  40. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/coverage_metrics.py +0 -0
  41. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/dag/__init__.py +0 -0
  42. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/dag/auto_repair.py +0 -0
  43. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/dag/builder.py +0 -0
  44. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/dag/checks/__init__.py +0 -0
  45. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/dag/checks/_one_to_many_detection.py +0 -0
  46. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/dag/checks/artifact_contract_check.py +0 -0
  47. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/dag/checks/ci_health.py +0 -0
  48. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/dag/checks/dependency_freshness.py +0 -0
  49. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/dag/checks/depends_on_consistency.py +0 -0
  50. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/dag/checks/deployment_completeness.py +0 -0
  51. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/dag/checks/edge_validity.py +0 -0
  52. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/dag/checks/environment_coverage.py +0 -0
  53. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/dag/checks/implementation_coverage.py +0 -0
  54. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/dag/checks/node_completeness.py +0 -0
  55. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/dag/checks/opt_out.py +0 -0
  56. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/dag/checks/task_completion.py +0 -0
  57. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/dag/checks/transitive_closure.py +0 -0
  58. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/dag/checks/ui_coherence.py +0 -0
  59. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/dag/checks/user_journey_coherence.py +0 -0
  60. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/dag/coverage_axes.py +0 -0
  61. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/dag/defaults/cli.yaml +0 -0
  62. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/dag/defaults/cpp_embedded.yaml +0 -0
  63. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/dag/defaults/csharp.yaml +0 -0
  64. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/dag/defaults/elixir.yaml +0 -0
  65. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/dag/defaults/generic.yaml +0 -0
  66. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/dag/defaults/iot.yaml +0 -0
  67. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/dag/defaults/java.yaml +0 -0
  68. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/dag/defaults/kotlin.yaml +0 -0
  69. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/dag/defaults/mobile.yaml +0 -0
  70. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/dag/defaults/ruby.yaml +0 -0
  71. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/dag/defaults/rust.yaml +0 -0
  72. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/dag/defaults/scala.yaml +0 -0
  73. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/dag/defaults/swift.yaml +0 -0
  74. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/dag/defaults/test_frameworks.yaml +0 -0
  75. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/dag/defaults/web.yaml +0 -0
  76. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/dag/extractor.py +0 -0
  77. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/dag/impact.py +0 -0
  78. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/dag/runner.py +0 -0
  79. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/defaults.py +0 -0
  80. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/defaults.yaml +0 -0
  81. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/dependency_lock_coherence.py +0 -0
  82. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/deploy_targets/__init__.py +0 -0
  83. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/deploy_targets/app_service.py +0 -0
  84. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/deploy_targets/base.py +0 -0
  85. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/deploy_targets/docker_compose.py +0 -0
  86. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/deployer.py +0 -0
  87. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/deployment/__init__.py +0 -0
  88. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/deployment/checks/__init__.py +0 -0
  89. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/deployment/defaults/deploy_targets.yaml +0 -0
  90. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/deployment/defaults/runtime_capability_inference.yaml +0 -0
  91. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/deployment/defaults/schema_providers.yaml +0 -0
  92. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/deployment/defaults/verification_templates.yaml +0 -0
  93. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/deployment/extractor.py +0 -0
  94. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/deployment/providers/__init__.py +0 -0
  95. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/deployment/providers/ai_command.py +0 -0
  96. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/deployment/providers/ai_command_factory.py +0 -0
  97. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/deployment/providers/codex_app_server.py +0 -0
  98. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/deployment/providers/llm_consideration.py +0 -0
  99. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/deployment/providers/schema/__init__.py +0 -0
  100. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/deployment/providers/schema/prisma.py +0 -0
  101. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/deployment/providers/target/__init__.py +0 -0
  102. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/deployment/providers/target/docker_compose.py +0 -0
  103. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/deployment/providers/verification/__init__.py +0 -0
  104. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/deployment/providers/verification/assertion_handlers.py +0 -0
  105. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/deployment/providers/verification/cdp_browser.py +0 -0
  106. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/deployment/providers/verification/cdp_engines.py +0 -0
  107. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/deployment/providers/verification/cdp_launchers.py +0 -0
  108. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/deployment/providers/verification/cdp_wire.py +0 -0
  109. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/deployment/providers/verification/curl.py +0 -0
  110. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/deployment/providers/verification/form_strategies.py +0 -0
  111. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/deployment/providers/verification/means_catalog.py +0 -0
  112. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/deployment/providers/verification/playwright.py +0 -0
  113. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/deployment/providers/verification/pytest_http.py +0 -0
  114. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/deployment/providers/verification/vitest.py +0 -0
  115. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/design_md.py +0 -0
  116. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/diff/__init__.py +0 -0
  117. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/diff/apply.py +0 -0
  118. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/diff/engine.py +0 -0
  119. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/diff/persistence.py +0 -0
  120. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/diff/templates/diff_prompt.md +0 -0
  121. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/discovery.py +0 -0
  122. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/drift.py +0 -0
  123. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/e2e_contract_coherence.py +0 -0
  124. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/e2e_extractor.py +0 -0
  125. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/e2e_generator.py +0 -0
  126. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/e2e_harness.py +0 -0
  127. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/e2e_runner.py +0 -0
  128. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/elicit/__init__.py +0 -0
  129. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/elicit/apply.py +0 -0
  130. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/elicit/engine.py +0 -0
  131. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/elicit/finding.py +0 -0
  132. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/elicit/formatters/__init__.py +0 -0
  133. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/elicit/formatters/base.py +0 -0
  134. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/elicit/formatters/interactive.py +0 -0
  135. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/elicit/formatters/json_fmt.py +0 -0
  136. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/elicit/formatters/md.py +0 -0
  137. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/elicit/lexicon_loader.py +0 -0
  138. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/elicit/persistence.py +0 -0
  139. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/elicit/templates/elicit_prompt_L0.md +0 -0
  140. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/env_refs.py +0 -0
  141. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/extract_ai.py +0 -0
  142. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/extract_paths.py +0 -0
  143. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/extractor.py +0 -0
  144. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/fix/__init__.py +0 -0
  145. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/fix/candidate_selector.py +0 -0
  146. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/fix/design_updater.py +0 -0
  147. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/fix/impl_propagation.py +0 -0
  148. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/fix/interactive_prompt.py +0 -0
  149. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/fix/phenomenon_fixer.py +0 -0
  150. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/fix/phenomenon_parser.py +0 -0
  151. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/fix/risk_classifier.py +0 -0
  152. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/fix/templates/clarification_question.txt +0 -0
  153. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/fix/templates/design_update.txt +0 -0
  154. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/fix/templates/impl_update.txt +0 -0
  155. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/fix/templates/phenomenon_parse.txt +0 -0
  156. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/fix/templates/risk_assessment.txt +0 -0
  157. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/fix/templates_loader.py +0 -0
  158. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/fixer.py +0 -0
  159. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/fixup_drift.py +0 -0
  160. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/fixup_drift_strategies/__init__.py +0 -0
  161. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/fixup_drift_strategies/design_token_drift.py +0 -0
  162. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/fixup_drift_strategies/lexicon_violation.py +0 -0
  163. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/fixup_drift_strategies/url_drift.py +0 -0
  164. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/frontmatter.py +0 -0
  165. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/generator.py +0 -0
  166. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/git_evidence.py +0 -0
  167. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/graph.py +0 -0
  168. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/greenfield/__init__.py +0 -0
  169. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/hitl_session.py +0 -0
  170. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/hooks/__init__.py +0 -0
  171. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/hooks/pre-commit +0 -0
  172. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/hooks/recipes/claude_requirements_nudge.json +0 -0
  173. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/hooks/recipes/claude_settings_example.json +0 -0
  174. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/hooks/recipes/codex_hook.sh +0 -0
  175. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/hooks/recipes/git_post_commit.sh +0 -0
  176. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/hooks/recipes/git_pre_commit.sh +0 -0
  177. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/iac_nfr.py +0 -0
  178. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/implement_oracle_scope.py +0 -0
  179. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/implement_oracle_types.py +0 -0
  180. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/implementer/__init__.py +0 -0
  181. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/implementer/chunked_runner.py +0 -0
  182. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/implementer/typecheck_loop.py +0 -0
  183. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/implementer.py +0 -0
  184. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/import_coherence.py +0 -0
  185. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/inheritance.py +0 -0
  186. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/init/__init__.py +0 -0
  187. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/init/lexicon_suggest.py +0 -0
  188. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/init/llm_lexicon_suggester.py +0 -0
  189. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/init/stack_detector.py +0 -0
  190. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/knowledge_fetcher.py +0 -0
  191. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/languages/__init__.py +0 -0
  192. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/languages/adapters/__init__.py +0 -0
  193. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/languages/adapters/implement_oracle.py +0 -0
  194. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/languages/adapters/oracle_go.py +0 -0
  195. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/languages/adapters/oracle_python.py +0 -0
  196. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/languages/adapters/oracle_typescript.py +0 -0
  197. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/languages/adapters/runner_report.py +0 -0
  198. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/languages/builtin_adapters.py +0 -0
  199. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/languages/compat.py +0 -0
  200. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/languages/contract.py +0 -0
  201. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/languages/loader.py +0 -0
  202. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/languages/oracle_executor.py +0 -0
  203. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/languages/path_planner.py +0 -0
  204. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/languages/profile.py +0 -0
  205. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/languages/profiles/go.yaml +0 -0
  206. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/languages/profiles/python.yaml +0 -0
  207. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/languages/profiles/typescript.yaml +0 -0
  208. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/languages/registry.py +0 -0
  209. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/languages/verify_executor.py +0 -0
  210. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/languages/verify_plan.py +0 -0
  211. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/lexicon.py +0 -0
  212. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/lexicon_cli/__init__.py +0 -0
  213. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/lexicon_cli/formatters/__init__.py +0 -0
  214. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/lexicon_cli/formatters/html.py +0 -0
  215. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/lexicon_cli/formatters/json_fmt.py +0 -0
  216. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/lexicon_cli/formatters/md.py +0 -0
  217. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/lexicon_cli/inspector.py +0 -0
  218. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/lexicon_cli/manager.py +0 -0
  219. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/lexicon_cli/reporter.py +0 -0
  220. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/lexicon_cli/threshold.py +0 -0
  221. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/llm/__init__.py +0 -0
  222. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/llm/approval.py +0 -0
  223. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/llm/best_practice_augmenter.py +0 -0
  224. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/llm/criteria_expander.py +0 -0
  225. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/llm/design_doc_extractor.py +0 -0
  226. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/llm/impl_step_deriver.py +0 -0
  227. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/llm/means_catalog_loader.py +0 -0
  228. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/llm/parser.py +0 -0
  229. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/llm/plan_deriver.py +0 -0
  230. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/llm/prompt_builder.py +0 -0
  231. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/llm/strategy_validator.py +0 -0
  232. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/llm/templates/best_practice_augment_meta.md +0 -0
  233. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/llm/templates/criteria_expand_meta.md +0 -0
  234. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/llm/templates/design_doc_extract_meta.md +0 -0
  235. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/llm/templates/impl_step_derive_meta.md +0 -0
  236. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/llm/templates/implementation_step_catalog.yaml +0 -0
  237. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/llm/templates/meta_instruction.md +0 -0
  238. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/llm/templates/plan_derive_meta.md +0 -0
  239. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/llm/templates/verification_means_catalog.yaml +0 -0
  240. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/mcp_server.py +0 -0
  241. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/measure.py +0 -0
  242. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/operational_e2e_audit.py +0 -0
  243. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/operations_derive.py +0 -0
  244. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/parsing/__init__.py +0 -0
  245. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/parsing/_shared.py +0 -0
  246. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/parsing/api_specs.py +0 -0
  247. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/parsing/filesystem_routes.py +0 -0
  248. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/parsing/iac.py +0 -0
  249. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/parsing/python_ast.py +0 -0
  250. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/parsing/schemas.py +0 -0
  251. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/parsing/tests_builddeps.py +0 -0
  252. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/parsing/treesitter.py +0 -0
  253. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/planner.py +0 -0
  254. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/policy.py +0 -0
  255. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/preflight/__init__.py +0 -0
  256. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/preflight/defaults/cli.yaml +0 -0
  257. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/preflight/defaults/generic.yaml +0 -0
  258. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/preflight/defaults/iot.yaml +0 -0
  259. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/preflight/defaults/mobile.yaml +0 -0
  260. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/preflight/defaults/web.yaml +0 -0
  261. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/project_types.py +0 -0
  262. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/propagate.py +0 -0
  263. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/propagation_common.py +0 -0
  264. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/propagator.py +0 -0
  265. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/reconciliation_ledger.py +0 -0
  266. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/reference_resolution.py +0 -0
  267. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/registry.py +0 -0
  268. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/repair/__init__.py +0 -0
  269. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/repair/approval_repair.py +0 -0
  270. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/repair/auto_scope_guard.py +0 -0
  271. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/repair/engine.py +0 -0
  272. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/repair/git_patcher.py +0 -0
  273. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/repair/history.py +0 -0
  274. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/repair/llm_repair_engine.py +0 -0
  275. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/repair/loop.py +0 -0
  276. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/repair/primary_picker.py +0 -0
  277. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/repair/proof_breaks.py +0 -0
  278. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/repair/repair_result.py +0 -0
  279. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/repair/repairability_classifier.py +0 -0
  280. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/repair/schema.py +0 -0
  281. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/repair/templates/analyze_meta.md +0 -0
  282. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/repair/templates/propose_meta.md +0 -0
  283. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/repair/templates/repair_strategy_meta.md +0 -0
  284. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/repair/templates/repairability_meta.md +0 -0
  285. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/repair/test_failure_attribution.py +0 -0
  286. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/repair/verify_runner.py +0 -0
  287. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/repair_slice.py +0 -0
  288. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/require.py +0 -0
  289. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/require_plugins.py +0 -0
  290. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/require_propagate.py +0 -0
  291. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/required_artifacts/defaults/cli.yaml +0 -0
  292. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/required_artifacts/defaults/generic.yaml +0 -0
  293. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/required_artifacts/defaults/iot.yaml +0 -0
  294. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/required_artifacts/defaults/mobile.yaml +0 -0
  295. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/required_artifacts/defaults/web.yaml +0 -0
  296. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/required_artifacts_deriver.py +0 -0
  297. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/requirement_completeness/defaults/cli.yaml +0 -0
  298. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/requirement_completeness/defaults/generic.yaml +0 -0
  299. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/requirement_completeness/defaults/iot.yaml +0 -0
  300. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/requirement_completeness/defaults/mobile.yaml +0 -0
  301. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/requirement_completeness/defaults/web.yaml +0 -0
  302. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/requirement_completeness_auditor.py +0 -0
  303. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/requirement_reconciliation.py +0 -0
  304. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/requirements_meta.py +0 -0
  305. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/restoration_report.py +0 -0
  306. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/restore.py +0 -0
  307. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/routes_extractor.py +0 -0
  308. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/runtime_smoke/__init__.py +0 -0
  309. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/runtime_smoke/checks.py +0 -0
  310. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/runtime_smoke/config.py +0 -0
  311. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/runtime_smoke/report.py +0 -0
  312. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/runtime_smoke/runner.py +0 -0
  313. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/scanner.py +0 -0
  314. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/schema_refs.py +0 -0
  315. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/screen_flow_validator.py +0 -0
  316. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/screen_transition_extractor.py +0 -0
  317. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/screen_transitions/defaults.yaml +0 -0
  318. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/skills_cli/__init__.py +0 -0
  319. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/skills_cli/discovery.py +0 -0
  320. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/skills_cli/manager.py +0 -0
  321. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/skills_cli/paths.py +0 -0
  322. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/stack/__init__.py +0 -0
  323. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/stack/adapters/__init__.py +0 -0
  324. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/stack/adapters/_base.py +0 -0
  325. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/stack/adapters/nextjs.py +0 -0
  326. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/stack/adapters/playwright.py +0 -0
  327. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/stack/compose.py +0 -0
  328. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/stack/loader.py +0 -0
  329. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/stack/lock.py +0 -0
  330. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/stack/obligations.py +0 -0
  331. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/stack/profile.py +0 -0
  332. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/stack/profiles/addons/playwright.yaml +0 -0
  333. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/stack/profiles/addons/prisma.yaml +0 -0
  334. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/stack/profiles/frameworks/nextjs.yaml +0 -0
  335. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/stack/project.py +0 -0
  336. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/stack/registry.py +0 -0
  337. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/stack/resolve.py +0 -0
  338. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/surface_reconciliation.py +0 -0
  339. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/synth.py +0 -0
  340. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/templates/codd.yaml.tmpl +0 -0
  341. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/templates/conventions.yaml.tmpl +0 -0
  342. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/templates/data_dependencies.yaml.tmpl +0 -0
  343. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/templates/doc_links.yaml.tmpl +0 -0
  344. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/templates/extract_ai_prompt_baseline.md +0 -0
  345. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/templates/extracted/api-contract.md.j2 +0 -0
  346. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/templates/extracted/architecture-overview.md.j2 +0 -0
  347. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/templates/extracted/module-detail.md.j2 +0 -0
  348. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/templates/extracted/schema-design.md.j2 +0 -0
  349. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/templates/extracted/system-context.md.j2 +0 -0
  350. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/templates/gitignore.tmpl +0 -0
  351. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/templates/lexicon_questions.md +0 -0
  352. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/templates/lexicon_schema.yaml +0 -0
  353. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/templates/overrides.yaml.tmpl +0 -0
  354. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/test_detection.py +0 -0
  355. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/test_import_coherence.py +0 -0
  356. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/traceability.py +0 -0
  357. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/validator.py +0 -0
  358. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/vb_marker_authenticity.py +0 -0
  359. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/vb_rerun_scope.py +0 -0
  360. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/verifiable_behavior_audit.py +0 -0
  361. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/watch/__init__.py +0 -0
  362. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/watch/events.py +0 -0
  363. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/watch/propagation_log.py +0 -0
  364. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/watch/propagation_pipeline.py +0 -0
  365. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/watch/test_runner.py +0 -0
  366. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/watch/watcher.py +0 -0
  367. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd/wiring.py +0 -0
  368. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/ai_governance_eu_act/coverage_matrix.md +0 -0
  369. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/ai_governance_eu_act/elicit_extend.md +0 -0
  370. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/ai_governance_eu_act/lexicon.yaml +0 -0
  371. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/ai_governance_eu_act/manifest.yaml +0 -0
  372. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/ai_governance_eu_act/recommended_kinds.yaml +0 -0
  373. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/ai_governance_eu_act/severity_rules.yaml +0 -0
  374. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/api_rate_limiting_caching/coverage_matrix.md +0 -0
  375. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/api_rate_limiting_caching/elicit_extend.md +0 -0
  376. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/api_rate_limiting_caching/lexicon.yaml +0 -0
  377. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/api_rate_limiting_caching/manifest.yaml +0 -0
  378. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/api_rate_limiting_caching/recommended_kinds.yaml +0 -0
  379. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/api_rate_limiting_caching/severity_rules.yaml +0 -0
  380. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/api_rest_openapi/coverage_matrix.md +0 -0
  381. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/api_rest_openapi/elicit_extend.md +0 -0
  382. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/api_rest_openapi/lexicon.yaml +0 -0
  383. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/api_rest_openapi/manifest.yaml +0 -0
  384. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/api_rest_openapi/recommended_kinds.yaml +0 -0
  385. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/api_rest_openapi/severity_rules.yaml +0 -0
  386. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/babok/elicit_extend.md +0 -0
  387. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/babok/lexicon.yaml +0 -0
  388. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/babok/manifest.yaml +0 -0
  389. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/babok/recommended_kinds.yaml +0 -0
  390. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/babok/severity_rules.yaml +0 -0
  391. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/backend_event_cloudevents/coverage_matrix.md +0 -0
  392. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/backend_event_cloudevents/elicit_extend.md +0 -0
  393. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/backend_event_cloudevents/lexicon.yaml +0 -0
  394. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/backend_event_cloudevents/manifest.yaml +0 -0
  395. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/backend_event_cloudevents/recommended_kinds.yaml +0 -0
  396. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/backend_event_cloudevents/severity_rules.yaml +0 -0
  397. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/backend_graphql/coverage_matrix.md +0 -0
  398. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/backend_graphql/elicit_extend.md +0 -0
  399. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/backend_graphql/lexicon.yaml +0 -0
  400. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/backend_graphql/manifest.yaml +0 -0
  401. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/backend_graphql/recommended_kinds.yaml +0 -0
  402. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/backend_graphql/severity_rules.yaml +0 -0
  403. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/backend_grpc_proto/coverage_matrix.md +0 -0
  404. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/backend_grpc_proto/elicit_extend.md +0 -0
  405. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/backend_grpc_proto/lexicon.yaml +0 -0
  406. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/backend_grpc_proto/manifest.yaml +0 -0
  407. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/backend_grpc_proto/recommended_kinds.yaml +0 -0
  408. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/backend_grpc_proto/severity_rules.yaml +0 -0
  409. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/compliance_hipaa/coverage_matrix.md +0 -0
  410. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/compliance_hipaa/elicit_extend.md +0 -0
  411. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/compliance_hipaa/lexicon.yaml +0 -0
  412. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/compliance_hipaa/manifest.yaml +0 -0
  413. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/compliance_hipaa/recommended_kinds.yaml +0 -0
  414. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/compliance_hipaa/severity_rules.yaml +0 -0
  415. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/compliance_iso27001/coverage_matrix.md +0 -0
  416. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/compliance_iso27001/elicit_extend.md +0 -0
  417. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/compliance_iso27001/lexicon.yaml +0 -0
  418. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/compliance_iso27001/manifest.yaml +0 -0
  419. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/compliance_iso27001/recommended_kinds.yaml +0 -0
  420. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/compliance_iso27001/severity_rules.yaml +0 -0
  421. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/compliance_pci_dss_4/coverage_matrix.md +0 -0
  422. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/compliance_pci_dss_4/elicit_extend.md +0 -0
  423. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/compliance_pci_dss_4/lexicon.yaml +0 -0
  424. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/compliance_pci_dss_4/manifest.yaml +0 -0
  425. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/compliance_pci_dss_4/recommended_kinds.yaml +0 -0
  426. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/compliance_pci_dss_4/severity_rules.yaml +0 -0
  427. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/data_aggregation_policies/coverage_matrix.md +0 -0
  428. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/data_aggregation_policies/elicit_extend.md +0 -0
  429. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/data_aggregation_policies/lexicon.yaml +0 -0
  430. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/data_aggregation_policies/manifest.yaml +0 -0
  431. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/data_aggregation_policies/recommended_kinds.yaml +0 -0
  432. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/data_aggregation_policies/severity_rules.yaml +0 -0
  433. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/coverage_matrix.md +0 -0
  434. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/elicit_extend.md +0 -0
  435. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/lexicon.yaml +0 -0
  436. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/manifest.yaml +0 -0
  437. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/recommended_kinds.yaml +0 -0
  438. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/severity_rules.yaml +0 -0
  439. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/data_governance_appi_gdpr/coverage_matrix.md +0 -0
  440. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/data_governance_appi_gdpr/elicit_extend.md +0 -0
  441. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/data_governance_appi_gdpr/lexicon.yaml +0 -0
  442. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/data_governance_appi_gdpr/manifest.yaml +0 -0
  443. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/data_governance_appi_gdpr/recommended_kinds.yaml +0 -0
  444. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/data_governance_appi_gdpr/severity_rules.yaml +0 -0
  445. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/data_nosql_jsonschema/coverage_matrix.md +0 -0
  446. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/data_nosql_jsonschema/elicit_extend.md +0 -0
  447. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/data_nosql_jsonschema/lexicon.yaml +0 -0
  448. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/data_nosql_jsonschema/manifest.yaml +0 -0
  449. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/data_nosql_jsonschema/recommended_kinds.yaml +0 -0
  450. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/data_nosql_jsonschema/severity_rules.yaml +0 -0
  451. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/data_relational_iso_sql/coverage_matrix.md +0 -0
  452. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/data_relational_iso_sql/elicit_extend.md +0 -0
  453. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/data_relational_iso_sql/lexicon.yaml +0 -0
  454. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/data_relational_iso_sql/manifest.yaml +0 -0
  455. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/data_relational_iso_sql/recommended_kinds.yaml +0 -0
  456. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/data_relational_iso_sql/severity_rules.yaml +0 -0
  457. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/ddd_domain_driven_design/coverage_matrix.md +0 -0
  458. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/ddd_domain_driven_design/elicit_extend.md +0 -0
  459. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/ddd_domain_driven_design/lexicon.yaml +0 -0
  460. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/ddd_domain_driven_design/manifest.yaml +0 -0
  461. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/ddd_domain_driven_design/recommended_kinds.yaml +0 -0
  462. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/ddd_domain_driven_design/severity_rules.yaml +0 -0
  463. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/dora_sre_metrics/coverage_matrix.md +0 -0
  464. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/dora_sre_metrics/elicit_extend.md +0 -0
  465. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/dora_sre_metrics/lexicon.yaml +0 -0
  466. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/dora_sre_metrics/manifest.yaml +0 -0
  467. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/dora_sre_metrics/recommended_kinds.yaml +0 -0
  468. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/dora_sre_metrics/severity_rules.yaml +0 -0
  469. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/i18n_unicode_cldr/coverage_matrix.md +0 -0
  470. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/i18n_unicode_cldr/elicit_extend.md +0 -0
  471. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/i18n_unicode_cldr/lexicon.yaml +0 -0
  472. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/i18n_unicode_cldr/manifest.yaml +0 -0
  473. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/i18n_unicode_cldr/recommended_kinds.yaml +0 -0
  474. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/i18n_unicode_cldr/severity_rules.yaml +0 -0
  475. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/ml_model_cards/coverage_matrix.md +0 -0
  476. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/ml_model_cards/elicit_extend.md +0 -0
  477. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/ml_model_cards/lexicon.yaml +0 -0
  478. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/ml_model_cards/manifest.yaml +0 -0
  479. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/ml_model_cards/recommended_kinds.yaml +0 -0
  480. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/ml_model_cards/severity_rules.yaml +0 -0
  481. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/mobile_a11y_native/coverage_matrix.md +0 -0
  482. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/mobile_a11y_native/elicit_extend.md +0 -0
  483. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/mobile_a11y_native/lexicon.yaml +0 -0
  484. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/mobile_a11y_native/manifest.yaml +0 -0
  485. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/mobile_a11y_native/recommended_kinds.yaml +0 -0
  486. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/mobile_a11y_native/severity_rules.yaml +0 -0
  487. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/mobile_android_material3/coverage_matrix.md +0 -0
  488. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/mobile_android_material3/elicit_extend.md +0 -0
  489. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/mobile_android_material3/lexicon.yaml +0 -0
  490. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/mobile_android_material3/manifest.yaml +0 -0
  491. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/mobile_android_material3/recommended_kinds.yaml +0 -0
  492. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/mobile_android_material3/severity_rules.yaml +0 -0
  493. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/mobile_ios_hig/coverage_matrix.md +0 -0
  494. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/mobile_ios_hig/elicit_extend.md +0 -0
  495. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/mobile_ios_hig/lexicon.yaml +0 -0
  496. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/mobile_ios_hig/manifest.yaml +0 -0
  497. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/mobile_ios_hig/recommended_kinds.yaml +0 -0
  498. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/mobile_ios_hig/severity_rules.yaml +0 -0
  499. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/mobile_security_masvs/coverage_matrix.md +0 -0
  500. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/mobile_security_masvs/elicit_extend.md +0 -0
  501. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/mobile_security_masvs/lexicon.yaml +0 -0
  502. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/mobile_security_masvs/manifest.yaml +0 -0
  503. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/mobile_security_masvs/recommended_kinds.yaml +0 -0
  504. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/mobile_security_masvs/severity_rules.yaml +0 -0
  505. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/ops_cicd_pipeline/coverage_matrix.md +0 -0
  506. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/ops_cicd_pipeline/elicit_extend.md +0 -0
  507. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/ops_cicd_pipeline/lexicon.yaml +0 -0
  508. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/ops_cicd_pipeline/manifest.yaml +0 -0
  509. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/ops_cicd_pipeline/recommended_kinds.yaml +0 -0
  510. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/ops_cicd_pipeline/severity_rules.yaml +0 -0
  511. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/ops_iac_terraform/coverage_matrix.md +0 -0
  512. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/ops_iac_terraform/elicit_extend.md +0 -0
  513. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/ops_iac_terraform/lexicon.yaml +0 -0
  514. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/ops_iac_terraform/manifest.yaml +0 -0
  515. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/ops_iac_terraform/recommended_kinds.yaml +0 -0
  516. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/ops_iac_terraform/severity_rules.yaml +0 -0
  517. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/ops_kubernetes/coverage_matrix.md +0 -0
  518. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/ops_kubernetes/elicit_extend.md +0 -0
  519. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/ops_kubernetes/lexicon.yaml +0 -0
  520. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/ops_kubernetes/manifest.yaml +0 -0
  521. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/ops_kubernetes/recommended_kinds.yaml +0 -0
  522. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/ops_kubernetes/severity_rules.yaml +0 -0
  523. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/ops_observability_otel/coverage_matrix.md +0 -0
  524. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/ops_observability_otel/elicit_extend.md +0 -0
  525. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/ops_observability_otel/lexicon.yaml +0 -0
  526. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/ops_observability_otel/manifest.yaml +0 -0
  527. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/ops_observability_otel/recommended_kinds.yaml +0 -0
  528. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/ops_observability_otel/severity_rules.yaml +0 -0
  529. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/process_iso25010/coverage_matrix.md +0 -0
  530. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/process_iso25010/elicit_extend.md +0 -0
  531. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/process_iso25010/lexicon.yaml +0 -0
  532. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/process_iso25010/manifest.yaml +0 -0
  533. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/process_iso25010/recommended_kinds.yaml +0 -0
  534. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/process_iso25010/severity_rules.yaml +0 -0
  535. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/process_test_iso29119/coverage_matrix.md +0 -0
  536. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/process_test_iso29119/elicit_extend.md +0 -0
  537. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/process_test_iso29119/lexicon.yaml +0 -0
  538. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/process_test_iso29119/manifest.yaml +0 -0
  539. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/process_test_iso29119/recommended_kinds.yaml +0 -0
  540. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/process_test_iso29119/severity_rules.yaml +0 -0
  541. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/twelve_factor_app/coverage_matrix.md +0 -0
  542. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/twelve_factor_app/elicit_extend.md +0 -0
  543. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/twelve_factor_app/lexicon.yaml +0 -0
  544. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/twelve_factor_app/manifest.yaml +0 -0
  545. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/twelve_factor_app/recommended_kinds.yaml +0 -0
  546. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/twelve_factor_app/severity_rules.yaml +0 -0
  547. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/coverage_matrix.md +0 -0
  548. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/elicit_extend.md +0 -0
  549. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/lexicon.yaml +0 -0
  550. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/manifest.yaml +0 -0
  551. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/recommended_kinds.yaml +0 -0
  552. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/severity_rules.yaml +0 -0
  553. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/web_authn_webauthn/coverage_matrix.md +0 -0
  554. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/web_authn_webauthn/elicit_extend.md +0 -0
  555. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/web_authn_webauthn/lexicon.yaml +0 -0
  556. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/web_authn_webauthn/manifest.yaml +0 -0
  557. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/web_authn_webauthn/recommended_kinds.yaml +0 -0
  558. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/web_authn_webauthn/severity_rules.yaml +0 -0
  559. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/web_browser_compat/coverage_matrix.md +0 -0
  560. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/web_browser_compat/elicit_extend.md +0 -0
  561. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/web_browser_compat/lexicon.yaml +0 -0
  562. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/web_browser_compat/manifest.yaml +0 -0
  563. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/web_browser_compat/recommended_kinds.yaml +0 -0
  564. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/web_browser_compat/severity_rules.yaml +0 -0
  565. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/web_forms_html5/coverage_matrix.md +0 -0
  566. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/web_forms_html5/elicit_extend.md +0 -0
  567. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/web_forms_html5/lexicon.yaml +0 -0
  568. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/web_forms_html5/manifest.yaml +0 -0
  569. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/web_forms_html5/recommended_kinds.yaml +0 -0
  570. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/web_forms_html5/severity_rules.yaml +0 -0
  571. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/web_performance_core_web_vitals/coverage_matrix.md +0 -0
  572. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/web_performance_core_web_vitals/elicit_extend.md +0 -0
  573. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/web_performance_core_web_vitals/lexicon.yaml +0 -0
  574. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/web_performance_core_web_vitals/manifest.yaml +0 -0
  575. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/web_performance_core_web_vitals/recommended_kinds.yaml +0 -0
  576. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/web_performance_core_web_vitals/severity_rules.yaml +0 -0
  577. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/web_pwa_manifest/coverage_matrix.md +0 -0
  578. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/web_pwa_manifest/elicit_extend.md +0 -0
  579. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/web_pwa_manifest/lexicon.yaml +0 -0
  580. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/web_pwa_manifest/manifest.yaml +0 -0
  581. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/web_pwa_manifest/recommended_kinds.yaml +0 -0
  582. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/web_pwa_manifest/severity_rules.yaml +0 -0
  583. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/web_responsive/coverage_matrix.md +0 -0
  584. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/web_responsive/elicit_extend.md +0 -0
  585. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/web_responsive/lexicon.yaml +0 -0
  586. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/web_responsive/manifest.yaml +0 -0
  587. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/web_responsive/recommended_kinds.yaml +0 -0
  588. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/web_responsive/severity_rules.yaml +0 -0
  589. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/web_security_owasp/coverage_matrix.md +0 -0
  590. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/web_security_owasp/elicit_extend.md +0 -0
  591. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/web_security_owasp/lexicon.yaml +0 -0
  592. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/web_security_owasp/manifest.yaml +0 -0
  593. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/web_security_owasp/recommended_kinds.yaml +0 -0
  594. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/web_security_owasp/severity_rules.yaml +0 -0
  595. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/web_seo_schemaorg/coverage_matrix.md +0 -0
  596. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/web_seo_schemaorg/elicit_extend.md +0 -0
  597. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/web_seo_schemaorg/lexicon.yaml +0 -0
  598. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/web_seo_schemaorg/manifest.yaml +0 -0
  599. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/web_seo_schemaorg/recommended_kinds.yaml +0 -0
  600. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/lexicons/web_seo_schemaorg/severity_rules.yaml +0 -0
  601. {codd_dev-2.81.0 → codd_dev-2.83.0}/codd_plugins/stack_map.yaml +0 -0
  602. {codd_dev-2.81.0 → codd_dev-2.83.0}/docs/cookbook/cdp_browser/README.md +0 -0
  603. {codd_dev-2.81.0 → codd_dev-2.83.0}/docs/cookbook/presentation_aggregation/README.md +0 -0
  604. {codd_dev-2.81.0 → codd_dev-2.83.0}/docs/requirements/README.md +0 -0
  605. {codd_dev-2.81.0 → codd_dev-2.83.0}/dogfood/README.md +0 -0
  606. {codd_dev-2.81.0 → codd_dev-2.83.0}/dogfood/fixtures/flat_py_app/README.md +0 -0
  607. {codd_dev-2.81.0 → codd_dev-2.83.0}/examples/README.md +0 -0
  608. {codd_dev-2.81.0 → codd_dev-2.83.0}/skills/codd-assemble/SKILL.md +0 -0
  609. {codd_dev-2.81.0 → codd_dev-2.83.0}/skills/codd-evolve/SKILL.md +0 -0
  610. {codd_dev-2.81.0 → codd_dev-2.83.0}/skills/codd-generate/SKILL.md +0 -0
  611. {codd_dev-2.81.0 → codd_dev-2.83.0}/skills/codd-greenfield/SKILL.md +0 -0
  612. {codd_dev-2.81.0 → codd_dev-2.83.0}/skills/codd-impact/SKILL.md +0 -0
  613. {codd_dev-2.81.0 → codd_dev-2.83.0}/skills/codd-init/SKILL.md +0 -0
  614. {codd_dev-2.81.0 → codd_dev-2.83.0}/skills/codd-propagate/SKILL.md +0 -0
  615. {codd_dev-2.81.0 → codd_dev-2.83.0}/skills/codd-restore/SKILL.md +0 -0
  616. {codd_dev-2.81.0 → codd_dev-2.83.0}/skills/codd-scan/SKILL.md +0 -0
  617. {codd_dev-2.81.0 → codd_dev-2.83.0}/skills/codd-validate/SKILL.md +0 -0
  618. {codd_dev-2.81.0 → codd_dev-2.83.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.81.0
3
+ Version: 2.83.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.81.0"
3
+ __version__ = "2.83.0"
@@ -1133,7 +1133,9 @@ class GreenfieldPipeline:
1133
1133
  declared implement-time oracle.
1134
1134
  """
1135
1135
  from codd.implement_oracle import (
1136
+ ORACLE_STATE_UNSUPPORTED_EXPLICIT,
1136
1137
  OracleScopeError,
1138
+ classify_implement_oracle_state,
1137
1139
  resolve_implement_oracle,
1138
1140
  run_implement_oracle_gate,
1139
1141
  )
@@ -1141,17 +1143,51 @@ class GreenfieldPipeline:
1141
1143
  config, language, source_dirs, test_dirs = self._layout_inputs(project_root)
1142
1144
  project_name = self._layout_project_name(project_root, config)
1143
1145
 
1144
- # Cheap NO-OP short-circuit: if the stack declares no implement-time
1145
- # oracle (Python today), do not even scaffold/echo skip silently.
1146
- if resolve_implement_oracle(
1146
+ # NO-OP short-circuit but the 4-state model decides WHICH "no oracle" this is
1147
+ # (Contract Kernel oracle dispatch §9). ``_stage_implement`` is strict by
1148
+ # construction: it GENERATED the code and must PROVE it. So a DECLARED-but-
1149
+ # UNSUPPORTED stack must NOT be silently skipped here — that is the very false-
1150
+ # green §9 closes. Only a NON-DECLARED stack (LEGACY_ABSENT) or an explicit
1151
+ # opt-out (OPT_OUT) is genuinely skippable (the gate's visible trace covers the
1152
+ # observability; here the short-circuit avoids needless scaffolding).
1153
+ resolved = resolve_implement_oracle(
1147
1154
  project_root,
1148
1155
  language=language,
1149
1156
  project_name=project_name,
1150
1157
  source_dirs=source_dirs,
1151
1158
  test_dirs=test_dirs,
1152
1159
  config=config,
1153
- ) is None:
1160
+ )
1161
+ if resolved is None:
1162
+ state = classify_implement_oracle_state(language, config, resolved=resolved)
1163
+ if state == ORACLE_STATE_UNSUPPORTED_EXPLICIT:
1164
+ # A declared stack CoDD cannot prove (no registered oracle adapter) —
1165
+ # the strict greenfield implement stage RED. Mirror the gate's verdict
1166
+ # as a StageError instead of silently advancing to verify (where the
1167
+ # incoherence would surface later, or not at all).
1168
+ raise StageError(
1169
+ f"implement-time native-oracle gate: language {language!r} is declared "
1170
+ "but UNSUPPORTED — no registered implement-oracle adapter, so the "
1171
+ "generated code's cross-artifact coherence is UNPROVEN. A declared-but-"
1172
+ "unsupported stack is RED, never a silent pass (add a LanguageProfile + "
1173
+ "oracle adapter for this stack, or opt out via implement.implement_oracle:"
1174
+ " false)."
1175
+ )
1176
+ # LEGACY_ABSENT / OPT_OUT — genuinely skippable (visible-trace cases). Run the
1177
+ # gate once anyway so its (now VISIBLE) NO-OP trace is emitted, then return —
1178
+ # cheap, and it keeps the observability promise (§9: NO-OP is never silent).
1179
+ run_implement_oracle_gate(
1180
+ project_root,
1181
+ language=language,
1182
+ project_name=project_name,
1183
+ source_dirs=source_dirs,
1184
+ test_dirs=test_dirs,
1185
+ config=config,
1186
+ echo=self.echo,
1187
+ )
1154
1188
  return
1189
+ # A supported oracle resolved (resolved is not None) — fall through to
1190
+ # certify + run it below.
1155
1191
 
1156
1192
  # The oracle needs the scaffolded config (tsconfig) present NOW, at
1157
1193
  # implement-time — verify's scaffold runs later. Idempotent + non-
@@ -121,6 +121,10 @@ from codd.implement_oracle_types import ( # noqa: F401 — re-exported for back
121
121
 
122
122
  __all__ = [
123
123
  "EVIDENCE_CATEGORIES",
124
+ "ORACLE_STATE_LEGACY_ABSENT",
125
+ "ORACLE_STATE_OPT_OUT",
126
+ "ORACLE_STATE_SUPPORTED",
127
+ "ORACLE_STATE_UNSUPPORTED_EXPLICIT",
124
128
  "ImplementOracleFinding",
125
129
  "ImplementOracleResult",
126
130
  "OracleRerunCallback",
@@ -131,10 +135,12 @@ __all__ = [
131
135
  "certify_go_oracle_scope",
132
136
  "certify_oracle_scope",
133
137
  "certify_python_oracle_scope",
138
+ "classify_implement_oracle_state",
134
139
  "normalize_oracle_output",
135
140
  "normalize_python_tool_output",
136
141
  "resolve_implement_oracle",
137
142
  "run_implement_oracle_gate",
143
+ "synthesize_minimal_layout_view",
138
144
  ]
139
145
 
140
146
  #: Internal-but-tested campaign entry point (the anti-false-green acceptance tests
@@ -207,6 +213,85 @@ def _oracle_opt_out(config: Mapping[str, Any] | None) -> bool:
207
213
  return False
208
214
 
209
215
 
216
+ # ── the 4-state oracle dispatch model (Contract Kernel oracle dispatch §6, §9) ──
217
+ #
218
+ # When :func:`resolve_implement_oracle` returns ``None`` it means ONLY "no runnable
219
+ # oracle resolved" — it COLLAPSES four very different reasons into one signal. §9
220
+ # closes the false-green that collapse hid: a DECLARED-but-UNSUPPORTED stack (a
221
+ # non-empty language CoDD was told to build, with NO registered oracle adapter) was
222
+ # waved through as a silent NO-OP PASS. The gate must distinguish:
223
+ #
224
+ # SUPPORTED — a contract oracle resolved (run it; GREEN only if it
225
+ # actually passes). [resolved is not None]
226
+ # UNSUPPORTED_EXPLICIT — a NON-EMPTY language is declared but NO oracle resolves
227
+ # AND not opted out → RED (passed=False, executed=False,
228
+ # code="implement_oracle_unsupported"). The §9 closure: a
229
+ # declared stack CoDD cannot prove must NOT pass.
230
+ # LEGACY_ABSENT — language is None/empty (NO declared stack) → NO-OP, but
231
+ # a VISIBLE fallback trace; NON-RED (nothing to be
232
+ # "unsupported" about — there is no declared stack).
233
+ # OPT_OUT — ``implement.implement_oracle: false`` → NO-OP-WITH-TRACE
234
+ # (``unsupported_oracle_allowed_by_config``), excluded from
235
+ # the green-gate; NON-RED by default (preserves the
236
+ # documented opt-out contract), never silent.
237
+ #
238
+ # Cardinal rule: false-GREEN is forbidden, but do NOT over-RED a legitimate
239
+ # no-oracle case (no language at all, or an explicit opt-out) — those are
240
+ # NO-OP-WITH-TRACE (visible), never silent, never RED.
241
+ #
242
+ # Language-FREE: the classification keys on "did a contract oracle resolve?" + "is
243
+ # a non-empty language declared?" + "is it opted out?" — NEVER on a specific
244
+ # language name (Cut Condition A). Adding a new compiler stack is still one profile
245
+ # entry + one leaf adapter; it then resolves SUPPORTED with no edit here.
246
+ ORACLE_STATE_SUPPORTED = "supported"
247
+ ORACLE_STATE_UNSUPPORTED_EXPLICIT = "unsupported_explicit"
248
+ ORACLE_STATE_LEGACY_ABSENT = "legacy_absent"
249
+ ORACLE_STATE_OPT_OUT = "opt_out"
250
+
251
+
252
+ def classify_implement_oracle_state(
253
+ language: str | None,
254
+ config: Mapping[str, Any] | None,
255
+ *,
256
+ resolved: object,
257
+ ) -> str:
258
+ """Classify the oracle dispatch state for ``language`` (the 4-state model, §9).
259
+
260
+ ``resolved`` is the :func:`resolve_implement_oracle` result (a ``(profile, spec)``
261
+ tuple, or ``None``). The classification is language-FREE — it keys on whether a
262
+ runnable oracle resolved, whether a NON-EMPTY language is declared, and whether
263
+ the gate is opted out — never on a language name (Cut Condition A):
264
+
265
+ * ``resolved is not None`` → ``SUPPORTED``.
266
+ * opted out → ``OPT_OUT`` (NO-OP-with-trace).
267
+ * empty/None language → ``LEGACY_ABSENT`` (NO-OP-with-trace).
268
+ * a SUPPORTED contract resolves anyway → ``LEGACY_ABSENT`` (defensive: the
269
+ resolver returned ``None`` for some OTHER reason than "unsupported"; never
270
+ RED a stack that genuinely HAS an adapter — bound the blast radius).
271
+ * otherwise (non-empty language, no contract, not opted out)
272
+ → ``UNSUPPORTED_EXPLICIT`` (RED).
273
+
274
+ The OPT_OUT check precedes the language-emptiness/contract checks because an
275
+ opt-out on a SUPPORTED language must read as the (visible, non-RED) opt-out, not
276
+ as supported — :func:`resolve_implement_oracle` already short-circuits opt-out to
277
+ ``None`` before it ever looks at the profile.
278
+ """
279
+ if resolved is not None:
280
+ return ORACLE_STATE_SUPPORTED
281
+ if _oracle_opt_out(config):
282
+ return ORACLE_STATE_OPT_OUT
283
+ if (language or "").strip() == "":
284
+ return ORACLE_STATE_LEGACY_ABSENT
285
+ # A non-empty language with no resolved (profile, spec). If a contract oracle
286
+ # nonetheless resolves (a registered adapter exists), the resolver returned None
287
+ # for an unrelated reason — do NOT RED a stack CoDD CAN actually prove; treat it
288
+ # as a (visible) legacy-absent NO-OP. Only a TRULY unsupported stack (no contract)
289
+ # is the §9 RED.
290
+ if _resolve_contract_oracle(language) is not None:
291
+ return ORACLE_STATE_LEGACY_ABSENT
292
+ return ORACLE_STATE_UNSUPPORTED_EXPLICIT
293
+
294
+
210
295
  # ── broad-repair campaign config (the budgeted residual coherence campaign) ──
211
296
  #
212
297
  # When a wide-fan-out artifact forces the broad RUNG, broad's EXECUTION is no
@@ -1095,13 +1180,16 @@ def resolve_implement_oracle(
1095
1180
  CONTRACT-PATH languages (the language→oracle map entry): a language with no
1096
1181
  legacy ``LayoutProfile`` builder (Go — ``resolve_layout_profile('go')`` returns
1097
1182
  None) but a modeled ``implement_oracle`` whose adapter is REGISTERED resolves
1098
- via :func:`_resolve_registry_composite_oracle`, which synthesizes a minimal
1099
- ``(LayoutProfile, ImplementOracleSpec)`` (``kind="composite"``) so the existing
1100
- gate machinery (certify/run/retry) works unchanged; the SAME dispatch in
1101
- :func:`_run_oracle_command` then routes it to the Contract-Kernel contract path
1102
- (:func:`_run_contract_oracle` → ``run_command_sequence`` + the registered
1103
- adapter). The selection is GENERIC (modeled oracle + registered adapter) no
1104
- ``if language=='go'`` literal in the gate.
1183
+ via :func:`_resolve_registry_oracle`, which synthesizes a minimal
1184
+ ``(LayoutProfile, ImplementOracleSpec)`` for ANY oracle ``kind`` (composite /
1185
+ command / adapter) so the existing gate machinery (certify/run/retry) works
1186
+ unchanged; the SAME dispatch in :func:`_run_oracle_command` then routes it to the
1187
+ Contract-Kernel contract path (:func:`_run_contract_oracle` →
1188
+ ``run_command_sequence`` for command/composite, the adapter's ``execute`` for
1189
+ ``adapter``). The selection is GENERIC (modeled oracle + registered adapter) — no
1190
+ ``if language=='go'`` literal in the gate, and NO kind allowlist (a synthetic
1191
+ ``kind="command"``/``"adapter"`` language with no legacy ``LayoutProfile`` runs
1192
+ its oracle too, never silently passes — Contract Kernel oracle dispatch §8).
1105
1193
  """
1106
1194
  if _oracle_opt_out(config):
1107
1195
  return None
@@ -1115,43 +1203,110 @@ def resolve_implement_oracle(
1115
1203
  project_root=project_root,
1116
1204
  )
1117
1205
  if profile is None:
1118
- # No legacy LayoutProfile — try the declarative registry (Go: a composite
1119
- # oracle synthesized from go.yaml, reachable WITHOUT a legacy profile).
1120
- return _resolve_registry_composite_oracle(language)
1206
+ # No legacy LayoutProfile — try the declarative registry. ANY kind resolves
1207
+ # (Go's composite, a synthetic command/adapter language): the generic
1208
+ # synthesizer builds the minimal gate-machinery ``(LayoutProfile, spec)`` and
1209
+ # the kind-routed dispatch runs the registered adapter (no kind allowlist).
1210
+ return _resolve_registry_oracle(language)
1121
1211
  if profile.implement_oracle is None:
1122
1212
  return None
1123
1213
  return profile, profile.implement_oracle
1124
1214
 
1125
1215
 
1126
- def _resolve_registry_composite_oracle(
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
+ def _resolve_registry_oracle(
1127
1252
  language: str | None,
1128
1253
  ) -> tuple[LayoutProfile, ImplementOracleSpec] | None:
1129
- """Synthesize a composite ``(LayoutProfile, spec)`` from the registry, or None.
1130
-
1131
- De-literalized (Contract Kernel oracle dispatch §5): the old hardcoded
1132
- ``{"go", "golang"}`` allowlist is gone. A language resolves to a synthesized
1133
- composite IFF :func:`_resolve_contract_oracle` returns a triple AND its oracle is
1134
- ``kind="composite"`` i.e. a modeled COMPOSITE ``implement_oracle`` whose adapter
1135
- is REGISTERED. In practice this is Go (``go-toolchain``): it has NO legacy
1136
- ``LayoutProfile`` builder (``package_root.kind == none``), so it reaches here, and
1137
- we build a MINIMAL ``LayoutProfile`` carrying just ``language`` + the module root
1138
- (as ``source_root``) so the gate machinery (certify/run/retry) works unchanged;
1139
- the dispatch then routes its ``kind="composite"`` spec to the contract path
1140
- (:func:`_run_contract_oracle`). TS (``kind="command"``) and Python both HAVE legacy
1141
- ``LayoutProfile`` builders, so they never reach this synthesis path and TS would
1142
- not match (it is ``command``, not ``composite``). ``None`` for any other language
1143
- (a stack with neither a legacy profile nor a composite contract oracle stays a
1144
- strict NO-OP). Best-effort: a registry error degrades to NO-OP (never a crash).
1254
+ """Synthesize a gate-machinery ``(LayoutProfile, spec)`` from the registry, or None.
1255
+
1256
+ De-literalized + de-kind-allowlisted (Contract Kernel oracle dispatch §5 + §8):
1257
+ BOTH the old hardcoded ``{"go", "golang"}`` language allowlist AND the old
1258
+ ``kind == "composite"`` ONLY gate are gone. A language resolves to a synthesized
1259
+ ``(LayoutProfile, spec)`` IFF :func:`_resolve_contract_oracle` returns a triple
1260
+ i.e. a modeled ``implement_oracle`` (ANY kind: composite / command / adapter)
1261
+ whose adapter is REGISTERED — and it has NO legacy ``LayoutProfile`` builder (so it
1262
+ reached here). The synthesized ``spec.kind`` MIRRORS the real declaration so the
1263
+ SAME kind-routed dispatch in :func:`_run_oracle_command` runs the registered
1264
+ adapter (composite/command ``run_command_sequence``; adapter the adapter's
1265
+ ``execute``) no kind allowlist, so a synthetic ``kind="command"``/``"adapter"``
1266
+ language runs its oracle instead of falling to a silent NO-OP (the gap §8 closes).
1267
+
1268
+ LAYOUT VIEW per kind:
1269
+
1270
+ * ``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.
1274
+ * ``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`.
1278
+
1279
+ In practice Go is the only BUILT-IN that reaches here (TS/Python HAVE legacy
1280
+ ``LayoutProfile`` builders); the command/adapter branches exist so a NEW language
1281
+ (the §8 synthetic-language proof) is addable with NO core change. ``None`` for any
1282
+ language with neither a legacy profile nor a contract oracle (a strict NO-OP — step
1283
+ 9 will make a profile-present-but-oracle-absent case explicit RED; untouched here).
1284
+ Best-effort: a registry error degrades to NO-OP (never a crash).
1145
1285
  """
1146
1286
  contract = _resolve_contract_oracle(language)
1147
1287
  if contract is None:
1148
1288
  return None
1149
1289
  lang_profile, oracle_decl, _adapter = contract
1150
- # Only a COMPOSITE oracle is synthesized into a LayoutProfile here (the legacy
1151
- # gate-machinery spec is composite-shaped); a command/adapter-kind contract
1152
- # oracle would route differently (none today).
1153
- if oracle_decl.kind != "composite":
1154
- return None
1290
+ kind = getattr(oracle_decl, "kind", None)
1291
+ 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(
1298
+ command=f"{lang_profile.id}-adapter", # sentinel; kind dispatch runs the contract path
1299
+ kind="adapter",
1300
+ # An adapter bakes its own scope policy in certify_scope; the spec scope
1301
+ # is not the authority. Default both-required (the conservative, Python-
1302
+ # composite-matching choice) — the adapter may still strengthen.
1303
+ scope=OracleScopeSpec(require_source_root=True, require_test_root=True),
1304
+ requires_node_install=False,
1305
+ ),
1306
+ )
1307
+ return synthetic, synthetic.implement_oracle
1308
+ # command / composite: a command-sequence oracle. Carry the module root for the
1309
+ # commands' cwd; the executor reads argv/cwd/env from lang_profile.layout.
1155
1310
  module_root = _norm(getattr(lang_profile.layout, "module_root", ".") or ".") or "."
1156
1311
  synthetic = LayoutProfile(
1157
1312
  language=lang_profile.id, # canonical id ("go") — carried for the contract re-resolve
@@ -1160,8 +1315,8 @@ def _resolve_registry_composite_oracle(
1160
1315
  package_root=module_root,
1161
1316
  test_root=module_root,
1162
1317
  implement_oracle=ImplementOracleSpec(
1163
- command=f"{lang_profile.id}-composite", # sentinel; kind dispatch runs the contract path
1164
- kind="composite",
1318
+ command=f"{lang_profile.id}-{kind}", # sentinel; kind dispatch runs the contract path
1319
+ kind=str(kind or "composite"),
1165
1320
  scope=OracleScopeSpec(require_source_root=True, require_test_root=False),
1166
1321
  requires_node_install=False,
1167
1322
  ),
@@ -1169,6 +1324,15 @@ def _resolve_registry_composite_oracle(
1169
1324
  return synthetic, synthetic.implement_oracle
1170
1325
 
1171
1326
 
1327
+ def _with_implement_oracle(
1328
+ profile: LayoutProfile, spec: ImplementOracleSpec
1329
+ ) -> LayoutProfile:
1330
+ """Return ``profile`` with its ``implement_oracle`` set to ``spec`` (frozen-safe)."""
1331
+ from dataclasses import replace
1332
+
1333
+ return replace(profile, implement_oracle=spec)
1334
+
1335
+
1172
1336
  #: The rerun callback the gate invokes to re-implement under the oracle feedback.
1173
1337
  #: ``scope is None`` ⇒ BROAD rerun (re-implement every task — the escalation
1174
1338
  #: fallback, the legacy behaviour). A non-None ``OracleRerunScope`` ⇒ a SCOPED
@@ -1239,11 +1403,76 @@ def run_implement_oracle_gate(
1239
1403
  profile=profile,
1240
1404
  )
1241
1405
  if resolved is None:
1406
+ # No runnable oracle resolved — but WHY decides the verdict (§9). The 4-state
1407
+ # model: a DECLARED-but-UNSUPPORTED stack is RED (never a silent pass); no
1408
+ # declared stack OR an explicit opt-out is a NO-OP-WITH-TRACE (visible, non-RED).
1409
+ state = classify_implement_oracle_state(language, config, resolved=resolved)
1410
+ if state == ORACLE_STATE_UNSUPPORTED_EXPLICIT:
1411
+ # The §9 closure: a non-empty language CoDD was told to build, with NO
1412
+ # registered oracle adapter. CoDD cannot prove this stack's coherence, so it
1413
+ # must NOT pass — an explicit unsupported RED, never a silent NO-OP.
1414
+ echo(
1415
+ f"[greenfield] implement-oracle: language {language!r} is declared but "
1416
+ "UNSUPPORTED (no registered oracle adapter) — RED (a declared stack CoDD "
1417
+ "cannot prove must not silently pass)."
1418
+ )
1419
+ return ImplementOracleResult(
1420
+ passed=False,
1421
+ executed=False,
1422
+ command=f"{language}-oracle",
1423
+ findings=[
1424
+ ImplementOracleFinding(
1425
+ category=EVIDENCE_ENVIRONMENT_BUILD,
1426
+ code="implement_oracle_unsupported",
1427
+ message=(
1428
+ f"no registered implement-oracle adapter for declared language "
1429
+ f"{language!r}; the implement-time coherence oracle cannot run, so "
1430
+ "the generated code's cross-artifact coherence is UNPROVEN. A "
1431
+ "declared-but-unsupported stack is RED, never a silent pass "
1432
+ "(add a LanguageProfile + oracle adapter for this stack, or opt "
1433
+ "out explicitly via implement.implement_oracle: false)."
1434
+ ),
1435
+ )
1436
+ ],
1437
+ detail=(
1438
+ f"declared-but-unsupported language {language!r}: no implement-time "
1439
+ "oracle adapter (unsupported → RED)"
1440
+ ),
1441
+ )
1442
+ if state == ORACLE_STATE_OPT_OUT:
1443
+ # The user explicitly opted out (implement.implement_oracle: false). NOT RED
1444
+ # by default (preserves the documented opt-out contract; bounds blast radius),
1445
+ # but the NO-OP is now VISIBLE + excluded from the release green-gate.
1446
+ # [GPT §6 notes a stricter "RED in strict/greenfield" reading; we default to
1447
+ # NO-OP-with-trace so opt-out is never silently broken. To make opt-out RED in
1448
+ # strict mode instead, this branch would emit the unsupported RED above.]
1449
+ echo(
1450
+ "[greenfield] implement-oracle: opted out by config "
1451
+ "(implement.implement_oracle=false) — skipped, excluded from the green-gate "
1452
+ "(unsupported_oracle_allowed_by_config=true). NOT a proof."
1453
+ )
1454
+ return ImplementOracleResult(
1455
+ passed=True,
1456
+ executed=False,
1457
+ command="",
1458
+ detail=(
1459
+ "implement-time oracle opted out by config "
1460
+ "(implement.implement_oracle=false) — skipped, excluded from the "
1461
+ "green-gate (unsupported_oracle_allowed_by_config=true)"
1462
+ ),
1463
+ )
1464
+ # LEGACY_ABSENT: no declared stack (language None/empty). Nothing to be
1465
+ # "unsupported" about — a passing NO-OP, but VISIBLE (a fallback, not a proof),
1466
+ # never silent.
1467
+ echo(
1468
+ "[greenfield] implement-oracle: no language declared — oracle skipped "
1469
+ "(fallback, not a proof)."
1470
+ )
1242
1471
  return ImplementOracleResult(
1243
1472
  passed=True,
1244
1473
  executed=False,
1245
1474
  command="",
1246
- detail=f"no implement-time oracle for language {language!r} (skipped)",
1475
+ detail=f"no language declared — implement-time oracle skipped (fallback) [{language!r}]",
1247
1476
  )
1248
1477
  profile, spec = resolved
1249
1478
 
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "codd-dev"
7
- version = "2.81.0"
7
+ version = "2.83.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