codd-dev 3.29.0__tar.gz → 3.31.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 (652) hide show
  1. {codd_dev-3.29.0 → codd_dev-3.31.0}/PKG-INFO +1 -1
  2. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/__init__.py +1 -1
  3. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/dag/checks/source_completeness.py +59 -9
  4. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/generator.py +16 -1
  5. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/implementer.py +18 -0
  6. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/languages/__init__.py +2 -0
  7. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/languages/contract.py +44 -0
  8. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/languages/profiles/cpp.yaml +8 -0
  9. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/languages/profiles/csharp.yaml +17 -0
  10. {codd_dev-3.29.0 → codd_dev-3.31.0}/pyproject.toml +1 -1
  11. {codd_dev-3.29.0 → codd_dev-3.31.0}/.gitignore +0 -0
  12. {codd_dev-3.29.0 → codd_dev-3.31.0}/LICENSE +0 -0
  13. {codd_dev-3.29.0 → codd_dev-3.31.0}/README.md +0 -0
  14. {codd_dev-3.29.0 → codd_dev-3.31.0}/bench_fixture/README.md +0 -0
  15. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/__main__.py +0 -0
  16. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/_git_helper.py +0 -0
  17. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/action_outcome.py +0 -0
  18. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/ai_invoke.py +0 -0
  19. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/ai_patch.py +0 -0
  20. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/artifact_contract.py +0 -0
  21. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/artifact_ids.py +0 -0
  22. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/artifacts/catalog.yaml +0 -0
  23. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/ask_user_question_adapter.py +0 -0
  24. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/assembler.py +0 -0
  25. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/bridge.py +0 -0
  26. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/brownfield/__init__.py +0 -0
  27. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/brownfield/pipeline.py +0 -0
  28. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/capability_completeness.py +0 -0
  29. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/claude_cli.py +0 -0
  30. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/cli.py +0 -0
  31. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/clustering.py +0 -0
  32. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/coherence_adapters.py +0 -0
  33. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/coherence_engine.py +0 -0
  34. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/confidence.py +0 -0
  35. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/config.py +0 -0
  36. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/config_schema.py +0 -0
  37. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/contracts.py +0 -0
  38. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/contracts_registry/__init__.py +0 -0
  39. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/contracts_registry/__main__.py +0 -0
  40. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/contracts_registry/certify.py +0 -0
  41. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/contracts_registry/generate_matrix.py +0 -0
  42. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/contracts_registry/registry.py +0 -0
  43. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/coverage_auditor.py +0 -0
  44. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/coverage_execution_coherence.py +0 -0
  45. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/coverage_metrics.py +0 -0
  46. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/dag/__init__.py +0 -0
  47. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/dag/auto_repair.py +0 -0
  48. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/dag/builder.py +0 -0
  49. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/dag/checks/__init__.py +0 -0
  50. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/dag/checks/_one_to_many_detection.py +0 -0
  51. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/dag/checks/artifact_contract_check.py +0 -0
  52. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/dag/checks/cardinality_coverage.py +0 -0
  53. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/dag/checks/ci_health.py +0 -0
  54. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/dag/checks/dependency_freshness.py +0 -0
  55. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/dag/checks/depends_on_consistency.py +0 -0
  56. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/dag/checks/deployment_completeness.py +0 -0
  57. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/dag/checks/edge_validity.py +0 -0
  58. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/dag/checks/environment_coverage.py +0 -0
  59. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/dag/checks/extraction_diagnostics.py +0 -0
  60. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/dag/checks/implementation_coverage.py +0 -0
  61. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/dag/checks/negative_space.py +0 -0
  62. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/dag/checks/node_completeness.py +0 -0
  63. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/dag/checks/opt_out.py +0 -0
  64. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/dag/checks/resource_flow_coherence.py +0 -0
  65. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/dag/checks/semantic_contract_conflict.py +0 -0
  66. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/dag/checks/stale_evidence.py +0 -0
  67. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/dag/checks/task_completion.py +0 -0
  68. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/dag/checks/transitive_closure.py +0 -0
  69. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/dag/checks/ui_coherence.py +0 -0
  70. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/dag/checks/unresolved_import_residue.py +0 -0
  71. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/dag/checks/user_journey_coherence.py +0 -0
  72. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/dag/coverage_axes.py +0 -0
  73. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/dag/defaults/cli.yaml +0 -0
  74. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/dag/defaults/cpp_embedded.yaml +0 -0
  75. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/dag/defaults/csharp.yaml +0 -0
  76. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/dag/defaults/elixir.yaml +0 -0
  77. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/dag/defaults/generic.yaml +0 -0
  78. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/dag/defaults/iot.yaml +0 -0
  79. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/dag/defaults/java.yaml +0 -0
  80. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/dag/defaults/kotlin.yaml +0 -0
  81. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/dag/defaults/mobile.yaml +0 -0
  82. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/dag/defaults/ruby.yaml +0 -0
  83. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/dag/defaults/rust.yaml +0 -0
  84. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/dag/defaults/scala.yaml +0 -0
  85. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/dag/defaults/swift.yaml +0 -0
  86. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/dag/defaults/test_frameworks.yaml +0 -0
  87. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/dag/defaults/web.yaml +0 -0
  88. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/dag/extractor.py +0 -0
  89. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/dag/impact.py +0 -0
  90. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/dag/materiality.py +0 -0
  91. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/dag/metadata_access.py +0 -0
  92. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/dag/result_status.py +0 -0
  93. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/dag/runner.py +0 -0
  94. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/defaults.py +0 -0
  95. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/defaults.yaml +0 -0
  96. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/dependency_lock_coherence.py +0 -0
  97. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/deploy_targets/__init__.py +0 -0
  98. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/deploy_targets/app_service.py +0 -0
  99. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/deploy_targets/base.py +0 -0
  100. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/deploy_targets/docker_compose.py +0 -0
  101. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/deployer.py +0 -0
  102. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/deployment/__init__.py +0 -0
  103. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/deployment/checks/__init__.py +0 -0
  104. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/deployment/defaults/deploy_targets.yaml +0 -0
  105. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/deployment/defaults/runtime_capability_inference.yaml +0 -0
  106. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/deployment/defaults/schema_providers.yaml +0 -0
  107. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/deployment/defaults/verification_templates.yaml +0 -0
  108. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/deployment/extractor.py +0 -0
  109. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/deployment/providers/__init__.py +0 -0
  110. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/deployment/providers/ai_command.py +0 -0
  111. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/deployment/providers/ai_command_factory.py +0 -0
  112. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/deployment/providers/codex_app_server.py +0 -0
  113. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/deployment/providers/llm_consideration.py +0 -0
  114. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/deployment/providers/schema/__init__.py +0 -0
  115. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/deployment/providers/schema/prisma.py +0 -0
  116. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/deployment/providers/target/__init__.py +0 -0
  117. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/deployment/providers/target/docker_compose.py +0 -0
  118. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/deployment/providers/verification/__init__.py +0 -0
  119. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/deployment/providers/verification/assertion_handlers.py +0 -0
  120. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/deployment/providers/verification/cdp_browser.py +0 -0
  121. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/deployment/providers/verification/cdp_engines.py +0 -0
  122. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/deployment/providers/verification/cdp_launchers.py +0 -0
  123. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/deployment/providers/verification/cdp_wire.py +0 -0
  124. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/deployment/providers/verification/curl.py +0 -0
  125. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/deployment/providers/verification/form_strategies.py +0 -0
  126. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/deployment/providers/verification/means_catalog.py +0 -0
  127. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/deployment/providers/verification/playwright.py +0 -0
  128. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/deployment/providers/verification/pytest_http.py +0 -0
  129. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/deployment/providers/verification/vitest.py +0 -0
  130. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/design_md.py +0 -0
  131. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/diff/__init__.py +0 -0
  132. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/diff/apply.py +0 -0
  133. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/diff/engine.py +0 -0
  134. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/diff/persistence.py +0 -0
  135. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/diff/templates/diff_prompt.md +0 -0
  136. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/discovery.py +0 -0
  137. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/drift.py +0 -0
  138. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/e2e_contract_coherence.py +0 -0
  139. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/e2e_extractor.py +0 -0
  140. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/e2e_generator.py +0 -0
  141. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/e2e_harness.py +0 -0
  142. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/e2e_runner.py +0 -0
  143. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/elicit/__init__.py +0 -0
  144. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/elicit/apply.py +0 -0
  145. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/elicit/engine.py +0 -0
  146. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/elicit/finding.py +0 -0
  147. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/elicit/formatters/__init__.py +0 -0
  148. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/elicit/formatters/base.py +0 -0
  149. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/elicit/formatters/interactive.py +0 -0
  150. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/elicit/formatters/json_fmt.py +0 -0
  151. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/elicit/formatters/md.py +0 -0
  152. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/elicit/gap_to_ask.py +0 -0
  153. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/elicit/lexicon_loader.py +0 -0
  154. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/elicit/persistence.py +0 -0
  155. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/elicit/promote.py +0 -0
  156. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/elicit/routing.py +0 -0
  157. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/elicit/templates/elicit_prompt_L0.md +0 -0
  158. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/env_refs.py +0 -0
  159. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/extract_ai.py +0 -0
  160. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/extract_paths.py +0 -0
  161. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/extractor.py +0 -0
  162. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/fix/__init__.py +0 -0
  163. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/fix/candidate_selector.py +0 -0
  164. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/fix/design_updater.py +0 -0
  165. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/fix/impact_planner.py +0 -0
  166. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/fix/impl_propagation.py +0 -0
  167. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/fix/interactive_prompt.py +0 -0
  168. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/fix/phenomenon_fixer.py +0 -0
  169. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/fix/phenomenon_parser.py +0 -0
  170. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/fix/risk_classifier.py +0 -0
  171. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/fix/templates/clarification_question.txt +0 -0
  172. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/fix/templates/design_update.txt +0 -0
  173. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/fix/templates/impl_update.txt +0 -0
  174. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/fix/templates/phenomenon_parse.txt +0 -0
  175. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/fix/templates/risk_assessment.txt +0 -0
  176. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/fix/templates_loader.py +0 -0
  177. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/fixer.py +0 -0
  178. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/fixup_drift.py +0 -0
  179. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/fixup_drift_strategies/__init__.py +0 -0
  180. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/fixup_drift_strategies/design_token_drift.py +0 -0
  181. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/fixup_drift_strategies/lexicon_violation.py +0 -0
  182. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/fixup_drift_strategies/url_drift.py +0 -0
  183. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/frontmatter.py +0 -0
  184. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/git_evidence.py +0 -0
  185. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/graph.py +0 -0
  186. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/greenfield/__init__.py +0 -0
  187. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/greenfield/pipeline.py +0 -0
  188. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/greenfield/test_rederivation.py +0 -0
  189. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/hitl_session.py +0 -0
  190. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/hooks/__init__.py +0 -0
  191. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/hooks/pre-commit +0 -0
  192. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/hooks/recipes/claude_requirements_nudge.json +0 -0
  193. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/hooks/recipes/claude_settings_example.json +0 -0
  194. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/hooks/recipes/codex_hook.sh +0 -0
  195. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/hooks/recipes/git_post_commit.sh +0 -0
  196. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/hooks/recipes/git_pre_commit.sh +0 -0
  197. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/iac_nfr.py +0 -0
  198. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/implement_oracle.py +0 -0
  199. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/implement_oracle_scope.py +0 -0
  200. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/implement_oracle_types.py +0 -0
  201. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/implementer/__init__.py +0 -0
  202. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/implementer/chunked_runner.py +0 -0
  203. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/implementer/typecheck_loop.py +0 -0
  204. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/import_coherence.py +0 -0
  205. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/inheritance.py +0 -0
  206. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/init/__init__.py +0 -0
  207. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/init/lexicon_suggest.py +0 -0
  208. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/init/llm_lexicon_suggester.py +0 -0
  209. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/init/stack_detector.py +0 -0
  210. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/json_safe.py +0 -0
  211. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/knowledge_fetcher.py +0 -0
  212. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/languages/adapters/__init__.py +0 -0
  213. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/languages/adapters/implement_oracle.py +0 -0
  214. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/languages/adapters/import_resolver.py +0 -0
  215. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/languages/adapters/oracle_cpp.py +0 -0
  216. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/languages/adapters/oracle_csharp.py +0 -0
  217. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/languages/adapters/oracle_go.py +0 -0
  218. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/languages/adapters/oracle_java.py +0 -0
  219. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/languages/adapters/oracle_javascript.py +0 -0
  220. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/languages/adapters/oracle_python.py +0 -0
  221. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/languages/adapters/oracle_typescript.py +0 -0
  222. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/languages/adapters/runner_report.py +0 -0
  223. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/languages/builtin_adapters.py +0 -0
  224. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/languages/compat.py +0 -0
  225. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/languages/loader.py +0 -0
  226. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/languages/oracle_executor.py +0 -0
  227. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/languages/path_planner.py +0 -0
  228. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/languages/profile.py +0 -0
  229. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/languages/profiles/go.yaml +0 -0
  230. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/languages/profiles/java.yaml +0 -0
  231. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/languages/profiles/javascript.yaml +0 -0
  232. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/languages/profiles/python.yaml +0 -0
  233. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/languages/profiles/typescript.yaml +0 -0
  234. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/languages/registry.py +0 -0
  235. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/languages/verify_executor.py +0 -0
  236. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/languages/verify_plan.py +0 -0
  237. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/lexicon.py +0 -0
  238. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/lexicon_cli/__init__.py +0 -0
  239. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/lexicon_cli/formatters/__init__.py +0 -0
  240. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/lexicon_cli/formatters/html.py +0 -0
  241. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/lexicon_cli/formatters/json_fmt.py +0 -0
  242. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/lexicon_cli/formatters/md.py +0 -0
  243. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/lexicon_cli/inspector.py +0 -0
  244. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/lexicon_cli/manager.py +0 -0
  245. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/lexicon_cli/reporter.py +0 -0
  246. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/lexicon_cli/threshold.py +0 -0
  247. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/llm/__init__.py +0 -0
  248. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/llm/approval.py +0 -0
  249. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/llm/best_practice_augmenter.py +0 -0
  250. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/llm/criteria_expander.py +0 -0
  251. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/llm/design_doc_extractor.py +0 -0
  252. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/llm/impl_step_deriver.py +0 -0
  253. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/llm/means_catalog_loader.py +0 -0
  254. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/llm/parser.py +0 -0
  255. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/llm/plan_deriver.py +0 -0
  256. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/llm/prompt_builder.py +0 -0
  257. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/llm/strategy_validator.py +0 -0
  258. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/llm/templates/best_practice_augment_meta.md +0 -0
  259. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/llm/templates/criteria_expand_meta.md +0 -0
  260. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/llm/templates/design_doc_extract_meta.md +0 -0
  261. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/llm/templates/impl_step_derive_meta.md +0 -0
  262. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/llm/templates/implementation_step_catalog.yaml +0 -0
  263. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/llm/templates/meta_instruction.md +0 -0
  264. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/llm/templates/plan_derive_meta.md +0 -0
  265. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/llm/templates/verification_means_catalog.yaml +0 -0
  266. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/mcp_server.py +0 -0
  267. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/measure.py +0 -0
  268. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/operational_e2e_audit.py +0 -0
  269. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/operations_derive.py +0 -0
  270. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/parsing/__init__.py +0 -0
  271. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/parsing/_shared.py +0 -0
  272. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/parsing/api_specs.py +0 -0
  273. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/parsing/extractor_registry.py +0 -0
  274. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/parsing/filesystem_routes.py +0 -0
  275. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/parsing/iac.py +0 -0
  276. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/parsing/python_ast.py +0 -0
  277. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/parsing/regex_strategies.py +0 -0
  278. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/parsing/schemas.py +0 -0
  279. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/parsing/tests_builddeps.py +0 -0
  280. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/parsing/treesitter.py +0 -0
  281. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/path_safety.py +0 -0
  282. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/planner.py +0 -0
  283. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/policy.py +0 -0
  284. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/preflight/__init__.py +0 -0
  285. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/preflight/defaults/cli.yaml +0 -0
  286. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/preflight/defaults/generic.yaml +0 -0
  287. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/preflight/defaults/iot.yaml +0 -0
  288. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/preflight/defaults/mobile.yaml +0 -0
  289. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/preflight/defaults/web.yaml +0 -0
  290. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/project_types.py +0 -0
  291. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/propagate.py +0 -0
  292. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/propagation_common.py +0 -0
  293. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/propagator.py +0 -0
  294. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/reconciliation_ledger.py +0 -0
  295. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/reference_resolution.py +0 -0
  296. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/registry.py +0 -0
  297. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/repair/__init__.py +0 -0
  298. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/repair/approval_repair.py +0 -0
  299. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/repair/auto_scope_guard.py +0 -0
  300. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/repair/design_context.py +0 -0
  301. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/repair/engine.py +0 -0
  302. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/repair/git_patcher.py +0 -0
  303. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/repair/history.py +0 -0
  304. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/repair/llm_repair_engine.py +0 -0
  305. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/repair/loop.py +0 -0
  306. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/repair/primary_picker.py +0 -0
  307. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/repair/proof_breaks.py +0 -0
  308. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/repair/repair_result.py +0 -0
  309. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/repair/repairability_classifier.py +0 -0
  310. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/repair/schema.py +0 -0
  311. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/repair/templates/analyze_meta.md +0 -0
  312. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/repair/templates/propose_meta.md +0 -0
  313. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/repair/templates/repair_strategy_meta.md +0 -0
  314. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/repair/templates/repairability_meta.md +0 -0
  315. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/repair/test_failure_attribution.py +0 -0
  316. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/repair/verify_runner.py +0 -0
  317. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/repair_slice.py +0 -0
  318. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/require.py +0 -0
  319. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/require_plugins.py +0 -0
  320. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/require_propagate.py +0 -0
  321. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/required_artifacts/defaults/cli.yaml +0 -0
  322. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/required_artifacts/defaults/generic.yaml +0 -0
  323. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/required_artifacts/defaults/iot.yaml +0 -0
  324. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/required_artifacts/defaults/mobile.yaml +0 -0
  325. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/required_artifacts/defaults/web.yaml +0 -0
  326. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/required_artifacts_deriver.py +0 -0
  327. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/requirement_completeness/defaults/cli.yaml +0 -0
  328. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/requirement_completeness/defaults/generic.yaml +0 -0
  329. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/requirement_completeness/defaults/iot.yaml +0 -0
  330. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/requirement_completeness/defaults/mobile.yaml +0 -0
  331. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/requirement_completeness/defaults/web.yaml +0 -0
  332. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/requirement_completeness_auditor.py +0 -0
  333. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/requirement_reconciliation.py +0 -0
  334. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/requirements_meta.py +0 -0
  335. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/restoration_report.py +0 -0
  336. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/restore.py +0 -0
  337. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/routes_extractor.py +0 -0
  338. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/runtime_smoke/__init__.py +0 -0
  339. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/runtime_smoke/checks.py +0 -0
  340. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/runtime_smoke/config.py +0 -0
  341. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/runtime_smoke/report.py +0 -0
  342. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/runtime_smoke/runner.py +0 -0
  343. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/scanner.py +0 -0
  344. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/schema_refs.py +0 -0
  345. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/screen_flow_validator.py +0 -0
  346. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/screen_transition_extractor.py +0 -0
  347. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/screen_transitions/defaults.yaml +0 -0
  348. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/skills_cli/__init__.py +0 -0
  349. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/skills_cli/discovery.py +0 -0
  350. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/skills_cli/manager.py +0 -0
  351. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/skills_cli/paths.py +0 -0
  352. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/stack/__init__.py +0 -0
  353. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/stack/adapters/__init__.py +0 -0
  354. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/stack/adapters/_base.py +0 -0
  355. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/stack/adapters/nextjs.py +0 -0
  356. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/stack/adapters/playwright.py +0 -0
  357. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/stack/adapters/prisma.py +0 -0
  358. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/stack/command_authenticity.py +0 -0
  359. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/stack/command_override.py +0 -0
  360. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/stack/command_plan.py +0 -0
  361. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/stack/compose.py +0 -0
  362. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/stack/loader.py +0 -0
  363. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/stack/lock.py +0 -0
  364. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/stack/obligations.py +0 -0
  365. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/stack/profile.py +0 -0
  366. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/stack/profiles/addons/playwright.yaml +0 -0
  367. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/stack/profiles/addons/prisma.yaml +0 -0
  368. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/stack/profiles/frameworks/nextjs.yaml +0 -0
  369. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/stack/project.py +0 -0
  370. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/stack/registry.py +0 -0
  371. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/stack/replacement_proof.py +0 -0
  372. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/stack/resolve.py +0 -0
  373. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/surface_reconciliation.py +0 -0
  374. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/synth.py +0 -0
  375. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/templates/codd.yaml.tmpl +0 -0
  376. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/templates/conventions.yaml.tmpl +0 -0
  377. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/templates/data_dependencies.yaml.tmpl +0 -0
  378. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/templates/doc_links.yaml.tmpl +0 -0
  379. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/templates/extract_ai_prompt_baseline.md +0 -0
  380. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/templates/extracted/api-contract.md.j2 +0 -0
  381. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/templates/extracted/architecture-overview.md.j2 +0 -0
  382. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/templates/extracted/module-detail.md.j2 +0 -0
  383. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/templates/extracted/schema-design.md.j2 +0 -0
  384. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/templates/extracted/system-context.md.j2 +0 -0
  385. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/templates/gitignore.tmpl +0 -0
  386. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/templates/lexicon_questions.md +0 -0
  387. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/templates/lexicon_schema.yaml +0 -0
  388. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/templates/overrides.yaml.tmpl +0 -0
  389. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/test_detection.py +0 -0
  390. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/test_import_coherence.py +0 -0
  391. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/traceability.py +0 -0
  392. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/validator.py +0 -0
  393. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/vb_marker_authenticity.py +0 -0
  394. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/vb_rerun_scope.py +0 -0
  395. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/verifiable_behavior_audit.py +0 -0
  396. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/watch/__init__.py +0 -0
  397. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/watch/events.py +0 -0
  398. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/watch/propagation_log.py +0 -0
  399. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/watch/propagation_pipeline.py +0 -0
  400. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/watch/test_runner.py +0 -0
  401. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/watch/watcher.py +0 -0
  402. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd/wiring.py +0 -0
  403. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/ai_governance_eu_act/coverage_matrix.md +0 -0
  404. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/ai_governance_eu_act/elicit_extend.md +0 -0
  405. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/ai_governance_eu_act/lexicon.yaml +0 -0
  406. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/ai_governance_eu_act/manifest.yaml +0 -0
  407. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/ai_governance_eu_act/recommended_kinds.yaml +0 -0
  408. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/ai_governance_eu_act/severity_rules.yaml +0 -0
  409. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/api_rate_limiting_caching/coverage_matrix.md +0 -0
  410. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/api_rate_limiting_caching/elicit_extend.md +0 -0
  411. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/api_rate_limiting_caching/lexicon.yaml +0 -0
  412. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/api_rate_limiting_caching/manifest.yaml +0 -0
  413. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/api_rate_limiting_caching/recommended_kinds.yaml +0 -0
  414. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/api_rate_limiting_caching/severity_rules.yaml +0 -0
  415. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/api_rest_openapi/coverage_matrix.md +0 -0
  416. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/api_rest_openapi/elicit_extend.md +0 -0
  417. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/api_rest_openapi/lexicon.yaml +0 -0
  418. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/api_rest_openapi/manifest.yaml +0 -0
  419. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/api_rest_openapi/recommended_kinds.yaml +0 -0
  420. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/api_rest_openapi/severity_rules.yaml +0 -0
  421. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/babok/elicit_extend.md +0 -0
  422. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/babok/lexicon.yaml +0 -0
  423. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/babok/manifest.yaml +0 -0
  424. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/babok/recommended_kinds.yaml +0 -0
  425. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/babok/severity_rules.yaml +0 -0
  426. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/backend_event_cloudevents/coverage_matrix.md +0 -0
  427. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/backend_event_cloudevents/elicit_extend.md +0 -0
  428. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/backend_event_cloudevents/lexicon.yaml +0 -0
  429. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/backend_event_cloudevents/manifest.yaml +0 -0
  430. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/backend_event_cloudevents/recommended_kinds.yaml +0 -0
  431. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/backend_event_cloudevents/severity_rules.yaml +0 -0
  432. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/backend_graphql/coverage_matrix.md +0 -0
  433. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/backend_graphql/elicit_extend.md +0 -0
  434. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/backend_graphql/lexicon.yaml +0 -0
  435. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/backend_graphql/manifest.yaml +0 -0
  436. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/backend_graphql/recommended_kinds.yaml +0 -0
  437. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/backend_graphql/severity_rules.yaml +0 -0
  438. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/backend_grpc_proto/coverage_matrix.md +0 -0
  439. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/backend_grpc_proto/elicit_extend.md +0 -0
  440. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/backend_grpc_proto/lexicon.yaml +0 -0
  441. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/backend_grpc_proto/manifest.yaml +0 -0
  442. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/backend_grpc_proto/recommended_kinds.yaml +0 -0
  443. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/backend_grpc_proto/severity_rules.yaml +0 -0
  444. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/compliance_hipaa/coverage_matrix.md +0 -0
  445. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/compliance_hipaa/elicit_extend.md +0 -0
  446. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/compliance_hipaa/lexicon.yaml +0 -0
  447. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/compliance_hipaa/manifest.yaml +0 -0
  448. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/compliance_hipaa/recommended_kinds.yaml +0 -0
  449. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/compliance_hipaa/severity_rules.yaml +0 -0
  450. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/compliance_iso27001/coverage_matrix.md +0 -0
  451. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/compliance_iso27001/elicit_extend.md +0 -0
  452. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/compliance_iso27001/lexicon.yaml +0 -0
  453. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/compliance_iso27001/manifest.yaml +0 -0
  454. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/compliance_iso27001/recommended_kinds.yaml +0 -0
  455. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/compliance_iso27001/severity_rules.yaml +0 -0
  456. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/compliance_pci_dss_4/coverage_matrix.md +0 -0
  457. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/compliance_pci_dss_4/elicit_extend.md +0 -0
  458. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/compliance_pci_dss_4/lexicon.yaml +0 -0
  459. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/compliance_pci_dss_4/manifest.yaml +0 -0
  460. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/compliance_pci_dss_4/recommended_kinds.yaml +0 -0
  461. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/compliance_pci_dss_4/severity_rules.yaml +0 -0
  462. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/data_aggregation_policies/coverage_matrix.md +0 -0
  463. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/data_aggregation_policies/elicit_extend.md +0 -0
  464. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/data_aggregation_policies/lexicon.yaml +0 -0
  465. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/data_aggregation_policies/manifest.yaml +0 -0
  466. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/data_aggregation_policies/recommended_kinds.yaml +0 -0
  467. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/data_aggregation_policies/severity_rules.yaml +0 -0
  468. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/coverage_matrix.md +0 -0
  469. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/elicit_extend.md +0 -0
  470. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/lexicon.yaml +0 -0
  471. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/manifest.yaml +0 -0
  472. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/recommended_kinds.yaml +0 -0
  473. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/severity_rules.yaml +0 -0
  474. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/data_governance_appi_gdpr/coverage_matrix.md +0 -0
  475. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/data_governance_appi_gdpr/elicit_extend.md +0 -0
  476. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/data_governance_appi_gdpr/lexicon.yaml +0 -0
  477. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/data_governance_appi_gdpr/manifest.yaml +0 -0
  478. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/data_governance_appi_gdpr/recommended_kinds.yaml +0 -0
  479. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/data_governance_appi_gdpr/severity_rules.yaml +0 -0
  480. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/data_nosql_jsonschema/coverage_matrix.md +0 -0
  481. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/data_nosql_jsonschema/elicit_extend.md +0 -0
  482. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/data_nosql_jsonschema/lexicon.yaml +0 -0
  483. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/data_nosql_jsonschema/manifest.yaml +0 -0
  484. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/data_nosql_jsonschema/recommended_kinds.yaml +0 -0
  485. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/data_nosql_jsonschema/severity_rules.yaml +0 -0
  486. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/data_relational_iso_sql/coverage_matrix.md +0 -0
  487. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/data_relational_iso_sql/elicit_extend.md +0 -0
  488. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/data_relational_iso_sql/lexicon.yaml +0 -0
  489. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/data_relational_iso_sql/manifest.yaml +0 -0
  490. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/data_relational_iso_sql/recommended_kinds.yaml +0 -0
  491. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/data_relational_iso_sql/severity_rules.yaml +0 -0
  492. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/ddd_domain_driven_design/coverage_matrix.md +0 -0
  493. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/ddd_domain_driven_design/elicit_extend.md +0 -0
  494. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/ddd_domain_driven_design/lexicon.yaml +0 -0
  495. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/ddd_domain_driven_design/manifest.yaml +0 -0
  496. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/ddd_domain_driven_design/recommended_kinds.yaml +0 -0
  497. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/ddd_domain_driven_design/severity_rules.yaml +0 -0
  498. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/dora_sre_metrics/coverage_matrix.md +0 -0
  499. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/dora_sre_metrics/elicit_extend.md +0 -0
  500. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/dora_sre_metrics/lexicon.yaml +0 -0
  501. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/dora_sre_metrics/manifest.yaml +0 -0
  502. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/dora_sre_metrics/recommended_kinds.yaml +0 -0
  503. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/dora_sre_metrics/severity_rules.yaml +0 -0
  504. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/i18n_unicode_cldr/coverage_matrix.md +0 -0
  505. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/i18n_unicode_cldr/elicit_extend.md +0 -0
  506. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/i18n_unicode_cldr/lexicon.yaml +0 -0
  507. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/i18n_unicode_cldr/manifest.yaml +0 -0
  508. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/i18n_unicode_cldr/recommended_kinds.yaml +0 -0
  509. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/i18n_unicode_cldr/severity_rules.yaml +0 -0
  510. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/ml_model_cards/coverage_matrix.md +0 -0
  511. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/ml_model_cards/elicit_extend.md +0 -0
  512. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/ml_model_cards/lexicon.yaml +0 -0
  513. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/ml_model_cards/manifest.yaml +0 -0
  514. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/ml_model_cards/recommended_kinds.yaml +0 -0
  515. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/ml_model_cards/severity_rules.yaml +0 -0
  516. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/mobile_a11y_native/coverage_matrix.md +0 -0
  517. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/mobile_a11y_native/elicit_extend.md +0 -0
  518. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/mobile_a11y_native/lexicon.yaml +0 -0
  519. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/mobile_a11y_native/manifest.yaml +0 -0
  520. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/mobile_a11y_native/recommended_kinds.yaml +0 -0
  521. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/mobile_a11y_native/severity_rules.yaml +0 -0
  522. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/mobile_android_material3/coverage_matrix.md +0 -0
  523. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/mobile_android_material3/elicit_extend.md +0 -0
  524. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/mobile_android_material3/lexicon.yaml +0 -0
  525. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/mobile_android_material3/manifest.yaml +0 -0
  526. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/mobile_android_material3/recommended_kinds.yaml +0 -0
  527. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/mobile_android_material3/severity_rules.yaml +0 -0
  528. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/mobile_ios_hig/coverage_matrix.md +0 -0
  529. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/mobile_ios_hig/elicit_extend.md +0 -0
  530. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/mobile_ios_hig/lexicon.yaml +0 -0
  531. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/mobile_ios_hig/manifest.yaml +0 -0
  532. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/mobile_ios_hig/recommended_kinds.yaml +0 -0
  533. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/mobile_ios_hig/severity_rules.yaml +0 -0
  534. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/mobile_security_masvs/coverage_matrix.md +0 -0
  535. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/mobile_security_masvs/elicit_extend.md +0 -0
  536. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/mobile_security_masvs/lexicon.yaml +0 -0
  537. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/mobile_security_masvs/manifest.yaml +0 -0
  538. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/mobile_security_masvs/recommended_kinds.yaml +0 -0
  539. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/mobile_security_masvs/severity_rules.yaml +0 -0
  540. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/ops_cicd_pipeline/coverage_matrix.md +0 -0
  541. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/ops_cicd_pipeline/elicit_extend.md +0 -0
  542. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/ops_cicd_pipeline/lexicon.yaml +0 -0
  543. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/ops_cicd_pipeline/manifest.yaml +0 -0
  544. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/ops_cicd_pipeline/recommended_kinds.yaml +0 -0
  545. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/ops_cicd_pipeline/severity_rules.yaml +0 -0
  546. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/ops_iac_terraform/coverage_matrix.md +0 -0
  547. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/ops_iac_terraform/elicit_extend.md +0 -0
  548. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/ops_iac_terraform/lexicon.yaml +0 -0
  549. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/ops_iac_terraform/manifest.yaml +0 -0
  550. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/ops_iac_terraform/recommended_kinds.yaml +0 -0
  551. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/ops_iac_terraform/severity_rules.yaml +0 -0
  552. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/ops_kubernetes/coverage_matrix.md +0 -0
  553. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/ops_kubernetes/elicit_extend.md +0 -0
  554. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/ops_kubernetes/lexicon.yaml +0 -0
  555. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/ops_kubernetes/manifest.yaml +0 -0
  556. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/ops_kubernetes/recommended_kinds.yaml +0 -0
  557. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/ops_kubernetes/severity_rules.yaml +0 -0
  558. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/ops_observability_otel/coverage_matrix.md +0 -0
  559. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/ops_observability_otel/elicit_extend.md +0 -0
  560. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/ops_observability_otel/lexicon.yaml +0 -0
  561. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/ops_observability_otel/manifest.yaml +0 -0
  562. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/ops_observability_otel/recommended_kinds.yaml +0 -0
  563. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/ops_observability_otel/severity_rules.yaml +0 -0
  564. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/process_iso25010/coverage_matrix.md +0 -0
  565. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/process_iso25010/elicit_extend.md +0 -0
  566. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/process_iso25010/lexicon.yaml +0 -0
  567. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/process_iso25010/manifest.yaml +0 -0
  568. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/process_iso25010/recommended_kinds.yaml +0 -0
  569. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/process_iso25010/severity_rules.yaml +0 -0
  570. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/process_test_iso29119/coverage_matrix.md +0 -0
  571. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/process_test_iso29119/elicit_extend.md +0 -0
  572. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/process_test_iso29119/lexicon.yaml +0 -0
  573. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/process_test_iso29119/manifest.yaml +0 -0
  574. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/process_test_iso29119/recommended_kinds.yaml +0 -0
  575. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/process_test_iso29119/severity_rules.yaml +0 -0
  576. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/twelve_factor_app/coverage_matrix.md +0 -0
  577. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/twelve_factor_app/elicit_extend.md +0 -0
  578. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/twelve_factor_app/lexicon.yaml +0 -0
  579. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/twelve_factor_app/manifest.yaml +0 -0
  580. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/twelve_factor_app/recommended_kinds.yaml +0 -0
  581. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/twelve_factor_app/severity_rules.yaml +0 -0
  582. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/coverage_matrix.md +0 -0
  583. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/elicit_extend.md +0 -0
  584. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/lexicon.yaml +0 -0
  585. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/manifest.yaml +0 -0
  586. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/recommended_kinds.yaml +0 -0
  587. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/severity_rules.yaml +0 -0
  588. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/web_authn_webauthn/coverage_matrix.md +0 -0
  589. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/web_authn_webauthn/elicit_extend.md +0 -0
  590. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/web_authn_webauthn/lexicon.yaml +0 -0
  591. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/web_authn_webauthn/manifest.yaml +0 -0
  592. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/web_authn_webauthn/recommended_kinds.yaml +0 -0
  593. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/web_authn_webauthn/severity_rules.yaml +0 -0
  594. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/web_browser_compat/coverage_matrix.md +0 -0
  595. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/web_browser_compat/elicit_extend.md +0 -0
  596. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/web_browser_compat/lexicon.yaml +0 -0
  597. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/web_browser_compat/manifest.yaml +0 -0
  598. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/web_browser_compat/recommended_kinds.yaml +0 -0
  599. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/web_browser_compat/severity_rules.yaml +0 -0
  600. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/web_forms_html5/coverage_matrix.md +0 -0
  601. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/web_forms_html5/elicit_extend.md +0 -0
  602. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/web_forms_html5/lexicon.yaml +0 -0
  603. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/web_forms_html5/manifest.yaml +0 -0
  604. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/web_forms_html5/recommended_kinds.yaml +0 -0
  605. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/web_forms_html5/severity_rules.yaml +0 -0
  606. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/web_performance_core_web_vitals/coverage_matrix.md +0 -0
  607. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/web_performance_core_web_vitals/elicit_extend.md +0 -0
  608. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/web_performance_core_web_vitals/lexicon.yaml +0 -0
  609. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/web_performance_core_web_vitals/manifest.yaml +0 -0
  610. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/web_performance_core_web_vitals/recommended_kinds.yaml +0 -0
  611. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/web_performance_core_web_vitals/severity_rules.yaml +0 -0
  612. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/web_pwa_manifest/coverage_matrix.md +0 -0
  613. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/web_pwa_manifest/elicit_extend.md +0 -0
  614. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/web_pwa_manifest/lexicon.yaml +0 -0
  615. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/web_pwa_manifest/manifest.yaml +0 -0
  616. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/web_pwa_manifest/recommended_kinds.yaml +0 -0
  617. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/web_pwa_manifest/severity_rules.yaml +0 -0
  618. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/web_responsive/coverage_matrix.md +0 -0
  619. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/web_responsive/elicit_extend.md +0 -0
  620. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/web_responsive/lexicon.yaml +0 -0
  621. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/web_responsive/manifest.yaml +0 -0
  622. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/web_responsive/recommended_kinds.yaml +0 -0
  623. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/web_responsive/severity_rules.yaml +0 -0
  624. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/web_security_owasp/coverage_matrix.md +0 -0
  625. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/web_security_owasp/elicit_extend.md +0 -0
  626. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/web_security_owasp/lexicon.yaml +0 -0
  627. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/web_security_owasp/manifest.yaml +0 -0
  628. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/web_security_owasp/recommended_kinds.yaml +0 -0
  629. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/web_security_owasp/severity_rules.yaml +0 -0
  630. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/web_seo_schemaorg/coverage_matrix.md +0 -0
  631. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/web_seo_schemaorg/elicit_extend.md +0 -0
  632. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/web_seo_schemaorg/lexicon.yaml +0 -0
  633. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/web_seo_schemaorg/manifest.yaml +0 -0
  634. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/web_seo_schemaorg/recommended_kinds.yaml +0 -0
  635. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/lexicons/web_seo_schemaorg/severity_rules.yaml +0 -0
  636. {codd_dev-3.29.0 → codd_dev-3.31.0}/codd_plugins/stack_map.yaml +0 -0
  637. {codd_dev-3.29.0 → codd_dev-3.31.0}/docs/cookbook/cdp_browser/README.md +0 -0
  638. {codd_dev-3.29.0 → codd_dev-3.31.0}/docs/cookbook/presentation_aggregation/README.md +0 -0
  639. {codd_dev-3.29.0 → codd_dev-3.31.0}/docs/requirements/README.md +0 -0
  640. {codd_dev-3.29.0 → codd_dev-3.31.0}/examples/README.md +0 -0
  641. {codd_dev-3.29.0 → codd_dev-3.31.0}/skills/codd-assemble/SKILL.md +0 -0
  642. {codd_dev-3.29.0 → codd_dev-3.31.0}/skills/codd-evolve/SKILL.md +0 -0
  643. {codd_dev-3.29.0 → codd_dev-3.31.0}/skills/codd-fable-consult/SKILL.md +0 -0
  644. {codd_dev-3.29.0 → codd_dev-3.31.0}/skills/codd-generate/SKILL.md +0 -0
  645. {codd_dev-3.29.0 → codd_dev-3.31.0}/skills/codd-greenfield/SKILL.md +0 -0
  646. {codd_dev-3.29.0 → codd_dev-3.31.0}/skills/codd-impact/SKILL.md +0 -0
  647. {codd_dev-3.29.0 → codd_dev-3.31.0}/skills/codd-init/SKILL.md +0 -0
  648. {codd_dev-3.29.0 → codd_dev-3.31.0}/skills/codd-propagate/SKILL.md +0 -0
  649. {codd_dev-3.29.0 → codd_dev-3.31.0}/skills/codd-restore/SKILL.md +0 -0
  650. {codd_dev-3.29.0 → codd_dev-3.31.0}/skills/codd-scan/SKILL.md +0 -0
  651. {codd_dev-3.29.0 → codd_dev-3.31.0}/skills/codd-validate/SKILL.md +0 -0
  652. {codd_dev-3.29.0 → codd_dev-3.31.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: 3.29.0
3
+ Version: 3.31.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__ = "3.29.0"
3
+ __version__ = "3.31.0"
@@ -9,10 +9,17 @@ discovery gap and a false-green risk). This is the first-class,
9
9
  The two share the pure :func:`codd.dag.builder.compute_source_completeness`, so
10
10
  the advisory and the check can never drift.
11
11
 
12
- Severity is fixed ``amber`` and ``block_deploy`` is fixed ``False`` surfacing
13
- only. Promoting the gap to a red / deploy-blocking gate (e.g. via a tolerance
14
- threshold) is a NEW gate and therefore owner-gated; it is intentionally NOT done
15
- here (see the ``block_deploy`` note in :class:`SourceCompletenessResult`).
12
+ Severity is ``amber`` (surfacing) up to the RED-ESCALATION thresholds granted by
13
+ the Fable5 ruling of 2026-07-11 (the previously owner-gated promotion): when the
14
+ gap is SYSTEMIC ``missing >= red_min_missing`` (default 5, the small-project
15
+ ratio-spike guard) AND ``missing/on_disk >= red_min_ratio`` (default 0.5) — the
16
+ check escalates to red / deploy-blocking. The defaults are DATA-DERIVED from the
17
+ ②-green dogfood fleet's healthy measurements (max observed healthy state:
18
+ java 10 missing / 31 on disk = 32.3%, where the toolchain still executes the
19
+ inert files — a bookkeeping gap, not an execution gap), so the shipped values
20
+ never hit a measured-healthy project (F5). Knobs:
21
+ ``dag.source_completeness.red_min_missing`` / ``red_min_ratio`` — either set to
22
+ 0 disables the escalation (prior amber-only behavior).
16
23
 
17
24
  Generality: the check carries no ``language ==`` / framework literal. The set of
18
25
  "source" suffixes is DATA (``implementation_suffixes`` / ``test_suffixes`` from
@@ -38,10 +45,10 @@ class SourceCompletenessResult:
38
45
  findings: list[str] = field(default_factory=list)
39
46
  message: str = ""
40
47
  passed: bool = True
41
- # ``block_deploy`` is fixed ``False``: a source-scope gap is advisory (amber),
42
- # never a deploy gate. Promoting it to red (e.g. a "> N missing files fails"
43
- # threshold) introduces a NEW gate, which is owner-gated and deliberately out
44
- # of scope here.
48
+ # ``block_deploy`` defaults ``False`` (amber, advisory). The red escalation
49
+ # (Fable5 ruling 2026-07-11 the previously owner-gated promotion) sets it
50
+ # ``True`` only when the gap is systemic: missing >= red_min_missing AND
51
+ # missing/on_disk >= red_min_ratio (both data-derived; see module docstring).
45
52
  block_deploy: bool = False
46
53
  # ``status``/``skipped``/``checked_count`` mirror ``transitive_closure`` and
47
54
  # close the vacuous-pass hole: when no source file exists on disk the check
@@ -110,12 +117,55 @@ class SourceCompletenessCheck:
110
117
 
111
118
  if report.on_disk > report.node_count and report.missing:
112
119
  examples = ", ".join(report.missing[:5])
120
+ missing_count = len(report.missing)
113
121
  message = (
114
122
  f"{report.on_disk} source file(s) on disk but only {report.node_count} "
115
- f"source node(s) in the DAG — {len(report.missing)} file(s) are outside the "
123
+ f"source node(s) in the DAG — {missing_count} file(s) are outside the "
116
124
  f"configured source scope and will be inert (e.g. {examples}). Consider "
117
125
  f"widening source_dirs / impl_file_patterns."
118
126
  )
127
+
128
+ # RED ESCALATION (Fable5 ruling 2026-07-11): a SYSTEMIC discovery gap
129
+ # — both the absolute floor and the ratio must hold — fails the check
130
+ # and blocks deploy. Data-derived defaults (healthy ②-green max:
131
+ # 10/31 = 32.3%): missing >= 5 AND ratio >= 0.5. Either knob at 0
132
+ # disables (prior amber-only behavior).
133
+ esc_raw = effective_settings.get("source_completeness") if isinstance(effective_settings, dict) else None
134
+ esc = esc_raw if isinstance(esc_raw, dict) else {}
135
+ try:
136
+ red_min_missing = int(esc.get("red_min_missing", 5) or 0)
137
+ except (TypeError, ValueError):
138
+ red_min_missing = 5
139
+ try:
140
+ red_min_ratio = float(esc.get("red_min_ratio", 0.5) or 0.0)
141
+ except (TypeError, ValueError):
142
+ red_min_ratio = 0.5
143
+ ratio = missing_count / report.on_disk
144
+ if (
145
+ red_min_missing > 0
146
+ and red_min_ratio > 0
147
+ and missing_count >= red_min_missing
148
+ and ratio >= red_min_ratio
149
+ ):
150
+ message += (
151
+ f" RED escalation: {missing_count} missing >= {red_min_missing} and "
152
+ f"{ratio:.0%} of on-disk source is outside the DAG's scope "
153
+ f">= {red_min_ratio:.0%} — a systemic discovery gap "
154
+ f"(dag.source_completeness.red_min_missing / red_min_ratio)."
155
+ )
156
+ return SourceCompletenessResult(
157
+ severity="red",
158
+ findings=list(report.missing),
159
+ message=message,
160
+ passed=False,
161
+ block_deploy=True,
162
+ status="fail",
163
+ skipped=False,
164
+ checked_count=report.on_disk,
165
+ on_disk=report.on_disk,
166
+ node_count=report.node_count,
167
+ )
168
+
119
169
  return SourceCompletenessResult(
120
170
  findings=list(report.missing),
121
171
  message=message,
@@ -296,7 +296,22 @@ def _resolve_layout_placement_contract(
296
296
  config=config,
297
297
  project_root=project_root,
298
298
  )
299
- return render_layout_placement_contract(profile)
299
+ placement = render_layout_placement_contract(profile)
300
+ # NAMESPACE-coherence contract (profile-declared, {package_name}
301
+ # substituted) rides the same pre-rendered string: the design docs are
302
+ # where a namespace convention is first written down, so pinning it at
303
+ # GENERATE prevents the split the implement-stage oracle would otherwise
304
+ # only catch after the fact (csharp4 exprcalc dogfood, 2026-07-11).
305
+ # ""/None for every profile that doesn't declare it.
306
+ from codd.languages import resolve_namespace_guidance
307
+
308
+ namespace = resolve_namespace_guidance(
309
+ project.get("language") if isinstance(project, dict) else None,
310
+ package_name=getattr(profile, "package_name", None),
311
+ )
312
+ if namespace:
313
+ return f"{placement}\n\n{namespace}" if placement else namespace
314
+ return placement
300
315
  except Exception: # noqa: BLE001 — a projection failure must never break generation.
301
316
  return ""
302
317
 
@@ -2712,6 +2712,21 @@ def _build_implementation_prompt(
2712
2712
  project_root=project_root,
2713
2713
  )
2714
2714
  layout_block = render_import_coherence_contract(layout_profile)
2715
+ # NAMESPACE-coherence contract (profile-declared, {package_name}
2716
+ # substituted) — pins the first-party namespace convention so
2717
+ # independently-generated files cannot split on it (the native
2718
+ # oracle is the enforcing gate; csharp4 exprcalc dogfood 2026-07-11:
2719
+ # a namespace segment sharing a type's name shadowed the type →
2720
+ # CS0234 ×34). None/"" for every profile that doesn't declare it.
2721
+ from codd.languages import resolve_namespace_guidance
2722
+
2723
+ namespace_block = (
2724
+ resolve_namespace_guidance(
2725
+ language,
2726
+ package_name=getattr(layout_profile, "package_name", None),
2727
+ )
2728
+ or ""
2729
+ )
2715
2730
  # LAYOUT-PLACEMENT CONTRACT (2026-07-04): project the harness-owned
2716
2731
  # test-root / source-root / scaffold-owned-config topology onto the
2717
2732
  # SAME prompt, read from the SAME LayoutProfile. Complements the
@@ -2724,10 +2739,13 @@ def _build_implementation_prompt(
2724
2739
  except Exception: # noqa: BLE001 — a projection failure must never break generation.
2725
2740
  layout_block = ""
2726
2741
  placement_block = ""
2742
+ namespace_block = ""
2727
2743
  if layout_block:
2728
2744
  lines.extend([layout_block, ""])
2729
2745
  if placement_block:
2730
2746
  lines.extend([placement_block, ""])
2747
+ if namespace_block:
2748
+ lines.extend([namespace_block, ""])
2731
2749
 
2732
2750
  if _spec_targets_tests(spec, config):
2733
2751
  test_framework = resolve_test_framework_guidance(language)
@@ -53,6 +53,7 @@ from .contract import (
53
53
  ResolvedLanguageContract,
54
54
  build_language_contract,
55
55
  resolve_assertion_guidance,
56
+ resolve_namespace_guidance,
56
57
  resolve_language_contract,
57
58
  resolve_language_profile,
58
59
  resolve_test_framework_guidance,
@@ -115,6 +116,7 @@ __all__ = [
115
116
  "resolve_language_profile",
116
117
  "resolve_test_framework_guidance",
117
118
  "resolve_assertion_guidance",
119
+ "resolve_namespace_guidance",
118
120
  # verify run plan + semantic classifier (v2.69a, shadow)
119
121
  "ShadowComparison",
120
122
  "VerifyClass",
@@ -328,6 +328,50 @@ def resolve_assertion_guidance(
328
328
  return profile.tests.assertion_guidance
329
329
 
330
330
 
331
+ def resolve_namespace_guidance(
332
+ project_language: str | None,
333
+ *,
334
+ package_name: str | None = None,
335
+ registry: LanguageRegistry | None = None,
336
+ ) -> str | None:
337
+ """The optional per-language first-party NAMESPACE-coherence guidance.
338
+
339
+ Same convenience-seam contract as :func:`resolve_test_framework_guidance`
340
+ (an already-resolved language string, best-effort, never raises). Reads the
341
+ profile's ``imports.namespace_guidance`` prose from the raw view (the
342
+ ImportsSpec dataclass models resolver/first-party fields only; ``raw`` is
343
+ the documented later-phase escape hatch) and substitutes ``{package_name}``
344
+ when supplied. Returns ``None`` when the language is unknown or the profile
345
+ has not declared the field — callers MUST treat ``None`` as "append
346
+ nothing" (prior behavior). The enforcing gate for this contract is the
347
+ NATIVE ORACLE (a namespace-convention split between independently-generated
348
+ files fails the toolchain — csharp exprcalc dogfood, 2026-07-11: a
349
+ namespace segment sharing a TYPE's name shadowed the type under
350
+ ``using <root>;`` and every call failed CS0234); this seam states the
351
+ contract the gate already enforces, so prompt and gate cannot drift.
352
+ """
353
+ if not project_language:
354
+ return None
355
+ lang_registry = registry if registry is not None else default_registry
356
+ try:
357
+ profile = lang_registry.resolve(project_language)
358
+ except UnknownLanguageError:
359
+ return None
360
+ raw = getattr(profile, "raw", None)
361
+ text: str | None = None
362
+ if isinstance(raw, Mapping):
363
+ imports = raw.get("imports")
364
+ if isinstance(imports, Mapping):
365
+ declared = imports.get("namespace_guidance")
366
+ if isinstance(declared, str) and declared.strip():
367
+ text = declared.strip()
368
+ if not text:
369
+ return None
370
+ if package_name:
371
+ text = text.replace("{package_name}", str(package_name))
372
+ return text
373
+
374
+
331
375
  def resolve_language_contract(
332
376
  config: Mapping[str, Any] | None,
333
377
  *,
@@ -318,6 +318,14 @@ scaffold:
318
318
  file(GLOB_RECURSE CODD_TEST_SOURCES CONFIGURE_DEPENDS "tests/*.cpp" "tests/*.cc" "tests/*.cxx")
319
319
  if(CODD_TEST_SOURCES)
320
320
  add_executable({package_name}_tests ${CODD_TEST_SOURCES})
321
+ # Repo root as a PRIVATE include dir of the TEST target only: BOTH
322
+ # intra-tree quoted-include conventions resolve — file-relative
323
+ # ("helpers/x.h", the compiler's local lookup) AND root-relative
324
+ # ("tests/e2e/helpers/x.h"). Independently-generated test files
325
+ # legitimately disagree on that convention; the scaffolded build makes
326
+ # the ambiguity class moot. PRIVATE — never a usage requirement of the
327
+ # library target.
328
+ target_include_directories({package_name}_tests PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}")
321
329
  target_link_libraries({package_name}_tests PRIVATE GTest::gtest_main)
322
330
  if(TARGET {package_name})
323
331
  target_link_libraries({package_name}_tests PRIVATE {package_name})
@@ -139,6 +139,23 @@ imports:
139
139
  rule: root_namespace_prefix
140
140
  base: "src"
141
141
 
142
+ # First-party NAMESPACE-coherence contract, projected onto generation/implement
143
+ # prompts via resolve_namespace_guidance ({package_name} substituted). The
144
+ # enforcing gate is the native oracle: independently-generated files that split
145
+ # on the namespace convention fail `dotnet build` (csharp4 exprcalc dogfood,
146
+ # 2026-07-11 — `namespace ExprCalc.Evaluator; public static class Evaluator`
147
+ # made the type unreachable as `Evaluator.Evaluate(...)` under
148
+ # `using ExprCalc;`: the identifier resolved to the NAMESPACE → CS0234 ×34).
149
+ namespace_guidance: |
150
+ NAMESPACE COHERENCE (release-blocking — the native build enforces this):
151
+ every first-party file MUST declare exactly `namespace {package_name};`
152
+ (file-scoped). Do NOT create sub-namespaces (`{package_name}.<Segment>`).
153
+ In particular, a namespace segment must NEVER share a declared TYPE's name
154
+ (e.g. `namespace {package_name}.Evaluator` containing `class Evaluator`):
155
+ under `using {package_name};` the identifier resolves to the NAMESPACE and
156
+ shadows the type, so every call site fails to compile (CS0234), and files
157
+ that disagree on the namespace convention cannot reference each other.
158
+
142
159
  stdlib:
143
160
  classifier: adapter
144
161
 
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "codd-dev"
7
- version = "3.29.0"
7
+ version = "3.31.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
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes