codd-dev 2.74.0__tar.gz → 2.76.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 (612) hide show
  1. {codd_dev-2.74.0 → codd_dev-2.76.0}/PKG-INFO +1 -1
  2. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/__init__.py +1 -1
  3. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/languages/profiles/go.yaml +7 -1
  4. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/languages/verify_plan.py +28 -3
  5. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/repair/verify_runner.py +268 -7
  6. {codd_dev-2.74.0 → codd_dev-2.76.0}/pyproject.toml +1 -1
  7. {codd_dev-2.74.0 → codd_dev-2.76.0}/.gitignore +0 -0
  8. {codd_dev-2.74.0 → codd_dev-2.76.0}/LICENSE +0 -0
  9. {codd_dev-2.74.0 → codd_dev-2.76.0}/README.md +0 -0
  10. {codd_dev-2.74.0 → codd_dev-2.76.0}/bench_fixture/README.md +0 -0
  11. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/__main__.py +0 -0
  12. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/_git_helper.py +0 -0
  13. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/action_outcome.py +0 -0
  14. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/ai_invoke.py +0 -0
  15. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/ai_patch.py +0 -0
  16. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/artifact_contract.py +0 -0
  17. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/artifact_ids.py +0 -0
  18. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/artifacts/catalog.yaml +0 -0
  19. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/ask_user_question_adapter.py +0 -0
  20. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/assembler.py +0 -0
  21. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/bridge.py +0 -0
  22. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/brownfield/__init__.py +0 -0
  23. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/brownfield/pipeline.py +0 -0
  24. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/capability_completeness.py +0 -0
  25. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/claude_cli.py +0 -0
  26. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/cli.py +0 -0
  27. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/clustering.py +0 -0
  28. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/coherence_adapters.py +0 -0
  29. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/coherence_engine.py +0 -0
  30. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/confidence.py +0 -0
  31. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/config.py +0 -0
  32. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/config_schema.py +0 -0
  33. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/contracts.py +0 -0
  34. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/contracts_registry/__init__.py +0 -0
  35. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/contracts_registry/__main__.py +0 -0
  36. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/contracts_registry/certify.py +0 -0
  37. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/contracts_registry/generate_matrix.py +0 -0
  38. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/contracts_registry/registry.py +0 -0
  39. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/coverage_auditor.py +0 -0
  40. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/coverage_execution_coherence.py +0 -0
  41. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/coverage_metrics.py +0 -0
  42. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/dag/__init__.py +0 -0
  43. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/dag/auto_repair.py +0 -0
  44. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/dag/builder.py +0 -0
  45. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/dag/checks/__init__.py +0 -0
  46. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/dag/checks/_one_to_many_detection.py +0 -0
  47. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/dag/checks/artifact_contract_check.py +0 -0
  48. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/dag/checks/ci_health.py +0 -0
  49. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/dag/checks/dependency_freshness.py +0 -0
  50. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/dag/checks/depends_on_consistency.py +0 -0
  51. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/dag/checks/deployment_completeness.py +0 -0
  52. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/dag/checks/edge_validity.py +0 -0
  53. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/dag/checks/environment_coverage.py +0 -0
  54. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/dag/checks/implementation_coverage.py +0 -0
  55. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/dag/checks/node_completeness.py +0 -0
  56. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/dag/checks/opt_out.py +0 -0
  57. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/dag/checks/task_completion.py +0 -0
  58. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/dag/checks/transitive_closure.py +0 -0
  59. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/dag/checks/ui_coherence.py +0 -0
  60. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/dag/checks/user_journey_coherence.py +0 -0
  61. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/dag/coverage_axes.py +0 -0
  62. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/dag/defaults/cli.yaml +0 -0
  63. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/dag/defaults/cpp_embedded.yaml +0 -0
  64. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/dag/defaults/csharp.yaml +0 -0
  65. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/dag/defaults/elixir.yaml +0 -0
  66. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/dag/defaults/generic.yaml +0 -0
  67. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/dag/defaults/iot.yaml +0 -0
  68. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/dag/defaults/java.yaml +0 -0
  69. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/dag/defaults/kotlin.yaml +0 -0
  70. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/dag/defaults/mobile.yaml +0 -0
  71. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/dag/defaults/ruby.yaml +0 -0
  72. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/dag/defaults/rust.yaml +0 -0
  73. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/dag/defaults/scala.yaml +0 -0
  74. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/dag/defaults/swift.yaml +0 -0
  75. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/dag/defaults/test_frameworks.yaml +0 -0
  76. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/dag/defaults/web.yaml +0 -0
  77. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/dag/extractor.py +0 -0
  78. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/dag/impact.py +0 -0
  79. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/dag/runner.py +0 -0
  80. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/defaults.py +0 -0
  81. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/defaults.yaml +0 -0
  82. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/dependency_lock_coherence.py +0 -0
  83. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/deploy_targets/__init__.py +0 -0
  84. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/deploy_targets/app_service.py +0 -0
  85. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/deploy_targets/base.py +0 -0
  86. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/deploy_targets/docker_compose.py +0 -0
  87. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/deployer.py +0 -0
  88. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/deployment/__init__.py +0 -0
  89. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/deployment/checks/__init__.py +0 -0
  90. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/deployment/defaults/deploy_targets.yaml +0 -0
  91. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/deployment/defaults/runtime_capability_inference.yaml +0 -0
  92. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/deployment/defaults/schema_providers.yaml +0 -0
  93. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/deployment/defaults/verification_templates.yaml +0 -0
  94. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/deployment/extractor.py +0 -0
  95. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/deployment/providers/__init__.py +0 -0
  96. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/deployment/providers/ai_command.py +0 -0
  97. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/deployment/providers/ai_command_factory.py +0 -0
  98. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/deployment/providers/codex_app_server.py +0 -0
  99. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/deployment/providers/llm_consideration.py +0 -0
  100. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/deployment/providers/schema/__init__.py +0 -0
  101. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/deployment/providers/schema/prisma.py +0 -0
  102. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/deployment/providers/target/__init__.py +0 -0
  103. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/deployment/providers/target/docker_compose.py +0 -0
  104. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/deployment/providers/verification/__init__.py +0 -0
  105. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/deployment/providers/verification/assertion_handlers.py +0 -0
  106. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/deployment/providers/verification/cdp_browser.py +0 -0
  107. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/deployment/providers/verification/cdp_engines.py +0 -0
  108. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/deployment/providers/verification/cdp_launchers.py +0 -0
  109. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/deployment/providers/verification/cdp_wire.py +0 -0
  110. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/deployment/providers/verification/curl.py +0 -0
  111. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/deployment/providers/verification/form_strategies.py +0 -0
  112. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/deployment/providers/verification/means_catalog.py +0 -0
  113. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/deployment/providers/verification/playwright.py +0 -0
  114. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/deployment/providers/verification/pytest_http.py +0 -0
  115. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/deployment/providers/verification/vitest.py +0 -0
  116. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/design_md.py +0 -0
  117. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/diff/__init__.py +0 -0
  118. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/diff/apply.py +0 -0
  119. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/diff/engine.py +0 -0
  120. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/diff/persistence.py +0 -0
  121. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/diff/templates/diff_prompt.md +0 -0
  122. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/discovery.py +0 -0
  123. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/drift.py +0 -0
  124. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/e2e_contract_coherence.py +0 -0
  125. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/e2e_extractor.py +0 -0
  126. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/e2e_generator.py +0 -0
  127. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/e2e_harness.py +0 -0
  128. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/e2e_runner.py +0 -0
  129. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/elicit/__init__.py +0 -0
  130. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/elicit/apply.py +0 -0
  131. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/elicit/engine.py +0 -0
  132. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/elicit/finding.py +0 -0
  133. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/elicit/formatters/__init__.py +0 -0
  134. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/elicit/formatters/base.py +0 -0
  135. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/elicit/formatters/interactive.py +0 -0
  136. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/elicit/formatters/json_fmt.py +0 -0
  137. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/elicit/formatters/md.py +0 -0
  138. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/elicit/lexicon_loader.py +0 -0
  139. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/elicit/persistence.py +0 -0
  140. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/elicit/templates/elicit_prompt_L0.md +0 -0
  141. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/env_refs.py +0 -0
  142. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/extract_ai.py +0 -0
  143. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/extract_paths.py +0 -0
  144. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/extractor.py +0 -0
  145. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/fix/__init__.py +0 -0
  146. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/fix/candidate_selector.py +0 -0
  147. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/fix/design_updater.py +0 -0
  148. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/fix/impl_propagation.py +0 -0
  149. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/fix/interactive_prompt.py +0 -0
  150. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/fix/phenomenon_fixer.py +0 -0
  151. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/fix/phenomenon_parser.py +0 -0
  152. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/fix/risk_classifier.py +0 -0
  153. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/fix/templates/clarification_question.txt +0 -0
  154. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/fix/templates/design_update.txt +0 -0
  155. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/fix/templates/impl_update.txt +0 -0
  156. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/fix/templates/phenomenon_parse.txt +0 -0
  157. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/fix/templates/risk_assessment.txt +0 -0
  158. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/fix/templates_loader.py +0 -0
  159. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/fixer.py +0 -0
  160. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/fixup_drift.py +0 -0
  161. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/fixup_drift_strategies/__init__.py +0 -0
  162. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/fixup_drift_strategies/design_token_drift.py +0 -0
  163. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/fixup_drift_strategies/lexicon_violation.py +0 -0
  164. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/fixup_drift_strategies/url_drift.py +0 -0
  165. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/frontmatter.py +0 -0
  166. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/generator.py +0 -0
  167. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/git_evidence.py +0 -0
  168. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/graph.py +0 -0
  169. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/greenfield/__init__.py +0 -0
  170. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/greenfield/pipeline.py +0 -0
  171. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/hitl_session.py +0 -0
  172. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/hooks/__init__.py +0 -0
  173. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/hooks/pre-commit +0 -0
  174. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/hooks/recipes/claude_requirements_nudge.json +0 -0
  175. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/hooks/recipes/claude_settings_example.json +0 -0
  176. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/hooks/recipes/codex_hook.sh +0 -0
  177. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/hooks/recipes/git_post_commit.sh +0 -0
  178. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/hooks/recipes/git_pre_commit.sh +0 -0
  179. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/iac_nfr.py +0 -0
  180. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/implement_oracle.py +0 -0
  181. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/implement_oracle_scope.py +0 -0
  182. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/implementer/__init__.py +0 -0
  183. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/implementer/chunked_runner.py +0 -0
  184. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/implementer/typecheck_loop.py +0 -0
  185. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/implementer.py +0 -0
  186. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/import_coherence.py +0 -0
  187. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/inheritance.py +0 -0
  188. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/init/__init__.py +0 -0
  189. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/init/lexicon_suggest.py +0 -0
  190. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/init/llm_lexicon_suggester.py +0 -0
  191. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/init/stack_detector.py +0 -0
  192. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/knowledge_fetcher.py +0 -0
  193. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/languages/__init__.py +0 -0
  194. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/languages/adapters/__init__.py +0 -0
  195. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/languages/adapters/runner_report.py +0 -0
  196. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/languages/builtin_adapters.py +0 -0
  197. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/languages/compat.py +0 -0
  198. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/languages/contract.py +0 -0
  199. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/languages/loader.py +0 -0
  200. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/languages/path_planner.py +0 -0
  201. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/languages/profile.py +0 -0
  202. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/languages/profiles/python.yaml +0 -0
  203. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/languages/profiles/typescript.yaml +0 -0
  204. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/languages/registry.py +0 -0
  205. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/languages/verify_executor.py +0 -0
  206. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/lexicon.py +0 -0
  207. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/lexicon_cli/__init__.py +0 -0
  208. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/lexicon_cli/formatters/__init__.py +0 -0
  209. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/lexicon_cli/formatters/html.py +0 -0
  210. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/lexicon_cli/formatters/json_fmt.py +0 -0
  211. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/lexicon_cli/formatters/md.py +0 -0
  212. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/lexicon_cli/inspector.py +0 -0
  213. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/lexicon_cli/manager.py +0 -0
  214. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/lexicon_cli/reporter.py +0 -0
  215. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/lexicon_cli/threshold.py +0 -0
  216. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/llm/__init__.py +0 -0
  217. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/llm/approval.py +0 -0
  218. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/llm/best_practice_augmenter.py +0 -0
  219. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/llm/criteria_expander.py +0 -0
  220. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/llm/design_doc_extractor.py +0 -0
  221. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/llm/impl_step_deriver.py +0 -0
  222. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/llm/means_catalog_loader.py +0 -0
  223. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/llm/parser.py +0 -0
  224. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/llm/plan_deriver.py +0 -0
  225. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/llm/prompt_builder.py +0 -0
  226. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/llm/strategy_validator.py +0 -0
  227. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/llm/templates/best_practice_augment_meta.md +0 -0
  228. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/llm/templates/criteria_expand_meta.md +0 -0
  229. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/llm/templates/design_doc_extract_meta.md +0 -0
  230. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/llm/templates/impl_step_derive_meta.md +0 -0
  231. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/llm/templates/implementation_step_catalog.yaml +0 -0
  232. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/llm/templates/meta_instruction.md +0 -0
  233. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/llm/templates/plan_derive_meta.md +0 -0
  234. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/llm/templates/verification_means_catalog.yaml +0 -0
  235. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/mcp_server.py +0 -0
  236. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/measure.py +0 -0
  237. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/operational_e2e_audit.py +0 -0
  238. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/operations_derive.py +0 -0
  239. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/parsing/__init__.py +0 -0
  240. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/parsing/_shared.py +0 -0
  241. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/parsing/api_specs.py +0 -0
  242. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/parsing/filesystem_routes.py +0 -0
  243. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/parsing/iac.py +0 -0
  244. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/parsing/python_ast.py +0 -0
  245. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/parsing/schemas.py +0 -0
  246. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/parsing/tests_builddeps.py +0 -0
  247. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/parsing/treesitter.py +0 -0
  248. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/planner.py +0 -0
  249. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/policy.py +0 -0
  250. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/preflight/__init__.py +0 -0
  251. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/preflight/defaults/cli.yaml +0 -0
  252. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/preflight/defaults/generic.yaml +0 -0
  253. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/preflight/defaults/iot.yaml +0 -0
  254. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/preflight/defaults/mobile.yaml +0 -0
  255. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/preflight/defaults/web.yaml +0 -0
  256. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/project_types.py +0 -0
  257. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/propagate.py +0 -0
  258. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/propagation_common.py +0 -0
  259. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/propagator.py +0 -0
  260. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/reconciliation_ledger.py +0 -0
  261. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/reference_resolution.py +0 -0
  262. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/registry.py +0 -0
  263. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/repair/__init__.py +0 -0
  264. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/repair/approval_repair.py +0 -0
  265. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/repair/auto_scope_guard.py +0 -0
  266. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/repair/engine.py +0 -0
  267. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/repair/git_patcher.py +0 -0
  268. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/repair/history.py +0 -0
  269. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/repair/llm_repair_engine.py +0 -0
  270. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/repair/loop.py +0 -0
  271. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/repair/primary_picker.py +0 -0
  272. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/repair/proof_breaks.py +0 -0
  273. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/repair/repair_result.py +0 -0
  274. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/repair/repairability_classifier.py +0 -0
  275. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/repair/schema.py +0 -0
  276. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/repair/templates/analyze_meta.md +0 -0
  277. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/repair/templates/propose_meta.md +0 -0
  278. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/repair/templates/repair_strategy_meta.md +0 -0
  279. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/repair/templates/repairability_meta.md +0 -0
  280. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/repair/test_failure_attribution.py +0 -0
  281. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/repair_slice.py +0 -0
  282. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/require.py +0 -0
  283. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/require_plugins.py +0 -0
  284. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/require_propagate.py +0 -0
  285. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/required_artifacts/defaults/cli.yaml +0 -0
  286. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/required_artifacts/defaults/generic.yaml +0 -0
  287. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/required_artifacts/defaults/iot.yaml +0 -0
  288. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/required_artifacts/defaults/mobile.yaml +0 -0
  289. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/required_artifacts/defaults/web.yaml +0 -0
  290. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/required_artifacts_deriver.py +0 -0
  291. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/requirement_completeness/defaults/cli.yaml +0 -0
  292. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/requirement_completeness/defaults/generic.yaml +0 -0
  293. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/requirement_completeness/defaults/iot.yaml +0 -0
  294. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/requirement_completeness/defaults/mobile.yaml +0 -0
  295. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/requirement_completeness/defaults/web.yaml +0 -0
  296. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/requirement_completeness_auditor.py +0 -0
  297. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/requirement_reconciliation.py +0 -0
  298. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/requirements_meta.py +0 -0
  299. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/restoration_report.py +0 -0
  300. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/restore.py +0 -0
  301. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/routes_extractor.py +0 -0
  302. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/runtime_smoke/__init__.py +0 -0
  303. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/runtime_smoke/checks.py +0 -0
  304. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/runtime_smoke/config.py +0 -0
  305. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/runtime_smoke/report.py +0 -0
  306. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/runtime_smoke/runner.py +0 -0
  307. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/scanner.py +0 -0
  308. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/schema_refs.py +0 -0
  309. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/screen_flow_validator.py +0 -0
  310. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/screen_transition_extractor.py +0 -0
  311. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/screen_transitions/defaults.yaml +0 -0
  312. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/skills_cli/__init__.py +0 -0
  313. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/skills_cli/discovery.py +0 -0
  314. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/skills_cli/manager.py +0 -0
  315. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/skills_cli/paths.py +0 -0
  316. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/stack/__init__.py +0 -0
  317. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/stack/adapters/__init__.py +0 -0
  318. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/stack/adapters/_base.py +0 -0
  319. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/stack/adapters/nextjs.py +0 -0
  320. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/stack/adapters/playwright.py +0 -0
  321. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/stack/compose.py +0 -0
  322. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/stack/loader.py +0 -0
  323. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/stack/lock.py +0 -0
  324. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/stack/obligations.py +0 -0
  325. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/stack/profile.py +0 -0
  326. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/stack/profiles/addons/playwright.yaml +0 -0
  327. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/stack/profiles/addons/prisma.yaml +0 -0
  328. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/stack/profiles/frameworks/nextjs.yaml +0 -0
  329. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/stack/project.py +0 -0
  330. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/stack/registry.py +0 -0
  331. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/stack/resolve.py +0 -0
  332. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/surface_reconciliation.py +0 -0
  333. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/synth.py +0 -0
  334. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/templates/codd.yaml.tmpl +0 -0
  335. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/templates/conventions.yaml.tmpl +0 -0
  336. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/templates/data_dependencies.yaml.tmpl +0 -0
  337. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/templates/doc_links.yaml.tmpl +0 -0
  338. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/templates/extract_ai_prompt_baseline.md +0 -0
  339. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/templates/extracted/api-contract.md.j2 +0 -0
  340. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/templates/extracted/architecture-overview.md.j2 +0 -0
  341. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/templates/extracted/module-detail.md.j2 +0 -0
  342. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/templates/extracted/schema-design.md.j2 +0 -0
  343. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/templates/extracted/system-context.md.j2 +0 -0
  344. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/templates/gitignore.tmpl +0 -0
  345. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/templates/lexicon_questions.md +0 -0
  346. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/templates/lexicon_schema.yaml +0 -0
  347. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/templates/overrides.yaml.tmpl +0 -0
  348. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/test_detection.py +0 -0
  349. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/test_import_coherence.py +0 -0
  350. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/traceability.py +0 -0
  351. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/validator.py +0 -0
  352. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/vb_marker_authenticity.py +0 -0
  353. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/vb_rerun_scope.py +0 -0
  354. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/verifiable_behavior_audit.py +0 -0
  355. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/watch/__init__.py +0 -0
  356. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/watch/events.py +0 -0
  357. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/watch/propagation_log.py +0 -0
  358. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/watch/propagation_pipeline.py +0 -0
  359. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/watch/test_runner.py +0 -0
  360. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/watch/watcher.py +0 -0
  361. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd/wiring.py +0 -0
  362. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/ai_governance_eu_act/coverage_matrix.md +0 -0
  363. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/ai_governance_eu_act/elicit_extend.md +0 -0
  364. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/ai_governance_eu_act/lexicon.yaml +0 -0
  365. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/ai_governance_eu_act/manifest.yaml +0 -0
  366. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/ai_governance_eu_act/recommended_kinds.yaml +0 -0
  367. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/ai_governance_eu_act/severity_rules.yaml +0 -0
  368. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/api_rate_limiting_caching/coverage_matrix.md +0 -0
  369. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/api_rate_limiting_caching/elicit_extend.md +0 -0
  370. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/api_rate_limiting_caching/lexicon.yaml +0 -0
  371. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/api_rate_limiting_caching/manifest.yaml +0 -0
  372. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/api_rate_limiting_caching/recommended_kinds.yaml +0 -0
  373. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/api_rate_limiting_caching/severity_rules.yaml +0 -0
  374. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/api_rest_openapi/coverage_matrix.md +0 -0
  375. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/api_rest_openapi/elicit_extend.md +0 -0
  376. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/api_rest_openapi/lexicon.yaml +0 -0
  377. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/api_rest_openapi/manifest.yaml +0 -0
  378. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/api_rest_openapi/recommended_kinds.yaml +0 -0
  379. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/api_rest_openapi/severity_rules.yaml +0 -0
  380. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/babok/elicit_extend.md +0 -0
  381. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/babok/lexicon.yaml +0 -0
  382. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/babok/manifest.yaml +0 -0
  383. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/babok/recommended_kinds.yaml +0 -0
  384. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/babok/severity_rules.yaml +0 -0
  385. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/backend_event_cloudevents/coverage_matrix.md +0 -0
  386. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/backend_event_cloudevents/elicit_extend.md +0 -0
  387. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/backend_event_cloudevents/lexicon.yaml +0 -0
  388. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/backend_event_cloudevents/manifest.yaml +0 -0
  389. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/backend_event_cloudevents/recommended_kinds.yaml +0 -0
  390. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/backend_event_cloudevents/severity_rules.yaml +0 -0
  391. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/backend_graphql/coverage_matrix.md +0 -0
  392. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/backend_graphql/elicit_extend.md +0 -0
  393. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/backend_graphql/lexicon.yaml +0 -0
  394. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/backend_graphql/manifest.yaml +0 -0
  395. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/backend_graphql/recommended_kinds.yaml +0 -0
  396. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/backend_graphql/severity_rules.yaml +0 -0
  397. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/backend_grpc_proto/coverage_matrix.md +0 -0
  398. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/backend_grpc_proto/elicit_extend.md +0 -0
  399. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/backend_grpc_proto/lexicon.yaml +0 -0
  400. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/backend_grpc_proto/manifest.yaml +0 -0
  401. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/backend_grpc_proto/recommended_kinds.yaml +0 -0
  402. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/backend_grpc_proto/severity_rules.yaml +0 -0
  403. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/compliance_hipaa/coverage_matrix.md +0 -0
  404. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/compliance_hipaa/elicit_extend.md +0 -0
  405. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/compliance_hipaa/lexicon.yaml +0 -0
  406. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/compliance_hipaa/manifest.yaml +0 -0
  407. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/compliance_hipaa/recommended_kinds.yaml +0 -0
  408. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/compliance_hipaa/severity_rules.yaml +0 -0
  409. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/compliance_iso27001/coverage_matrix.md +0 -0
  410. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/compliance_iso27001/elicit_extend.md +0 -0
  411. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/compliance_iso27001/lexicon.yaml +0 -0
  412. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/compliance_iso27001/manifest.yaml +0 -0
  413. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/compliance_iso27001/recommended_kinds.yaml +0 -0
  414. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/compliance_iso27001/severity_rules.yaml +0 -0
  415. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/compliance_pci_dss_4/coverage_matrix.md +0 -0
  416. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/compliance_pci_dss_4/elicit_extend.md +0 -0
  417. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/compliance_pci_dss_4/lexicon.yaml +0 -0
  418. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/compliance_pci_dss_4/manifest.yaml +0 -0
  419. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/compliance_pci_dss_4/recommended_kinds.yaml +0 -0
  420. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/compliance_pci_dss_4/severity_rules.yaml +0 -0
  421. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/data_aggregation_policies/coverage_matrix.md +0 -0
  422. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/data_aggregation_policies/elicit_extend.md +0 -0
  423. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/data_aggregation_policies/lexicon.yaml +0 -0
  424. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/data_aggregation_policies/manifest.yaml +0 -0
  425. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/data_aggregation_policies/recommended_kinds.yaml +0 -0
  426. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/data_aggregation_policies/severity_rules.yaml +0 -0
  427. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/coverage_matrix.md +0 -0
  428. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/elicit_extend.md +0 -0
  429. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/lexicon.yaml +0 -0
  430. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/manifest.yaml +0 -0
  431. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/recommended_kinds.yaml +0 -0
  432. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/severity_rules.yaml +0 -0
  433. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/data_governance_appi_gdpr/coverage_matrix.md +0 -0
  434. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/data_governance_appi_gdpr/elicit_extend.md +0 -0
  435. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/data_governance_appi_gdpr/lexicon.yaml +0 -0
  436. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/data_governance_appi_gdpr/manifest.yaml +0 -0
  437. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/data_governance_appi_gdpr/recommended_kinds.yaml +0 -0
  438. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/data_governance_appi_gdpr/severity_rules.yaml +0 -0
  439. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/data_nosql_jsonschema/coverage_matrix.md +0 -0
  440. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/data_nosql_jsonschema/elicit_extend.md +0 -0
  441. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/data_nosql_jsonschema/lexicon.yaml +0 -0
  442. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/data_nosql_jsonschema/manifest.yaml +0 -0
  443. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/data_nosql_jsonschema/recommended_kinds.yaml +0 -0
  444. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/data_nosql_jsonschema/severity_rules.yaml +0 -0
  445. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/data_relational_iso_sql/coverage_matrix.md +0 -0
  446. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/data_relational_iso_sql/elicit_extend.md +0 -0
  447. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/data_relational_iso_sql/lexicon.yaml +0 -0
  448. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/data_relational_iso_sql/manifest.yaml +0 -0
  449. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/data_relational_iso_sql/recommended_kinds.yaml +0 -0
  450. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/data_relational_iso_sql/severity_rules.yaml +0 -0
  451. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/ddd_domain_driven_design/coverage_matrix.md +0 -0
  452. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/ddd_domain_driven_design/elicit_extend.md +0 -0
  453. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/ddd_domain_driven_design/lexicon.yaml +0 -0
  454. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/ddd_domain_driven_design/manifest.yaml +0 -0
  455. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/ddd_domain_driven_design/recommended_kinds.yaml +0 -0
  456. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/ddd_domain_driven_design/severity_rules.yaml +0 -0
  457. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/dora_sre_metrics/coverage_matrix.md +0 -0
  458. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/dora_sre_metrics/elicit_extend.md +0 -0
  459. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/dora_sre_metrics/lexicon.yaml +0 -0
  460. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/dora_sre_metrics/manifest.yaml +0 -0
  461. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/dora_sre_metrics/recommended_kinds.yaml +0 -0
  462. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/dora_sre_metrics/severity_rules.yaml +0 -0
  463. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/i18n_unicode_cldr/coverage_matrix.md +0 -0
  464. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/i18n_unicode_cldr/elicit_extend.md +0 -0
  465. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/i18n_unicode_cldr/lexicon.yaml +0 -0
  466. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/i18n_unicode_cldr/manifest.yaml +0 -0
  467. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/i18n_unicode_cldr/recommended_kinds.yaml +0 -0
  468. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/i18n_unicode_cldr/severity_rules.yaml +0 -0
  469. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/ml_model_cards/coverage_matrix.md +0 -0
  470. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/ml_model_cards/elicit_extend.md +0 -0
  471. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/ml_model_cards/lexicon.yaml +0 -0
  472. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/ml_model_cards/manifest.yaml +0 -0
  473. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/ml_model_cards/recommended_kinds.yaml +0 -0
  474. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/ml_model_cards/severity_rules.yaml +0 -0
  475. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/mobile_a11y_native/coverage_matrix.md +0 -0
  476. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/mobile_a11y_native/elicit_extend.md +0 -0
  477. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/mobile_a11y_native/lexicon.yaml +0 -0
  478. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/mobile_a11y_native/manifest.yaml +0 -0
  479. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/mobile_a11y_native/recommended_kinds.yaml +0 -0
  480. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/mobile_a11y_native/severity_rules.yaml +0 -0
  481. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/mobile_android_material3/coverage_matrix.md +0 -0
  482. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/mobile_android_material3/elicit_extend.md +0 -0
  483. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/mobile_android_material3/lexicon.yaml +0 -0
  484. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/mobile_android_material3/manifest.yaml +0 -0
  485. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/mobile_android_material3/recommended_kinds.yaml +0 -0
  486. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/mobile_android_material3/severity_rules.yaml +0 -0
  487. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/mobile_ios_hig/coverage_matrix.md +0 -0
  488. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/mobile_ios_hig/elicit_extend.md +0 -0
  489. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/mobile_ios_hig/lexicon.yaml +0 -0
  490. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/mobile_ios_hig/manifest.yaml +0 -0
  491. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/mobile_ios_hig/recommended_kinds.yaml +0 -0
  492. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/mobile_ios_hig/severity_rules.yaml +0 -0
  493. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/mobile_security_masvs/coverage_matrix.md +0 -0
  494. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/mobile_security_masvs/elicit_extend.md +0 -0
  495. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/mobile_security_masvs/lexicon.yaml +0 -0
  496. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/mobile_security_masvs/manifest.yaml +0 -0
  497. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/mobile_security_masvs/recommended_kinds.yaml +0 -0
  498. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/mobile_security_masvs/severity_rules.yaml +0 -0
  499. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/ops_cicd_pipeline/coverage_matrix.md +0 -0
  500. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/ops_cicd_pipeline/elicit_extend.md +0 -0
  501. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/ops_cicd_pipeline/lexicon.yaml +0 -0
  502. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/ops_cicd_pipeline/manifest.yaml +0 -0
  503. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/ops_cicd_pipeline/recommended_kinds.yaml +0 -0
  504. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/ops_cicd_pipeline/severity_rules.yaml +0 -0
  505. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/ops_iac_terraform/coverage_matrix.md +0 -0
  506. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/ops_iac_terraform/elicit_extend.md +0 -0
  507. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/ops_iac_terraform/lexicon.yaml +0 -0
  508. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/ops_iac_terraform/manifest.yaml +0 -0
  509. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/ops_iac_terraform/recommended_kinds.yaml +0 -0
  510. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/ops_iac_terraform/severity_rules.yaml +0 -0
  511. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/ops_kubernetes/coverage_matrix.md +0 -0
  512. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/ops_kubernetes/elicit_extend.md +0 -0
  513. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/ops_kubernetes/lexicon.yaml +0 -0
  514. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/ops_kubernetes/manifest.yaml +0 -0
  515. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/ops_kubernetes/recommended_kinds.yaml +0 -0
  516. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/ops_kubernetes/severity_rules.yaml +0 -0
  517. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/ops_observability_otel/coverage_matrix.md +0 -0
  518. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/ops_observability_otel/elicit_extend.md +0 -0
  519. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/ops_observability_otel/lexicon.yaml +0 -0
  520. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/ops_observability_otel/manifest.yaml +0 -0
  521. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/ops_observability_otel/recommended_kinds.yaml +0 -0
  522. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/ops_observability_otel/severity_rules.yaml +0 -0
  523. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/process_iso25010/coverage_matrix.md +0 -0
  524. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/process_iso25010/elicit_extend.md +0 -0
  525. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/process_iso25010/lexicon.yaml +0 -0
  526. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/process_iso25010/manifest.yaml +0 -0
  527. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/process_iso25010/recommended_kinds.yaml +0 -0
  528. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/process_iso25010/severity_rules.yaml +0 -0
  529. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/process_test_iso29119/coverage_matrix.md +0 -0
  530. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/process_test_iso29119/elicit_extend.md +0 -0
  531. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/process_test_iso29119/lexicon.yaml +0 -0
  532. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/process_test_iso29119/manifest.yaml +0 -0
  533. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/process_test_iso29119/recommended_kinds.yaml +0 -0
  534. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/process_test_iso29119/severity_rules.yaml +0 -0
  535. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/twelve_factor_app/coverage_matrix.md +0 -0
  536. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/twelve_factor_app/elicit_extend.md +0 -0
  537. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/twelve_factor_app/lexicon.yaml +0 -0
  538. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/twelve_factor_app/manifest.yaml +0 -0
  539. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/twelve_factor_app/recommended_kinds.yaml +0 -0
  540. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/twelve_factor_app/severity_rules.yaml +0 -0
  541. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/coverage_matrix.md +0 -0
  542. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/elicit_extend.md +0 -0
  543. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/lexicon.yaml +0 -0
  544. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/manifest.yaml +0 -0
  545. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/recommended_kinds.yaml +0 -0
  546. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/severity_rules.yaml +0 -0
  547. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/web_authn_webauthn/coverage_matrix.md +0 -0
  548. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/web_authn_webauthn/elicit_extend.md +0 -0
  549. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/web_authn_webauthn/lexicon.yaml +0 -0
  550. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/web_authn_webauthn/manifest.yaml +0 -0
  551. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/web_authn_webauthn/recommended_kinds.yaml +0 -0
  552. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/web_authn_webauthn/severity_rules.yaml +0 -0
  553. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/web_browser_compat/coverage_matrix.md +0 -0
  554. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/web_browser_compat/elicit_extend.md +0 -0
  555. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/web_browser_compat/lexicon.yaml +0 -0
  556. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/web_browser_compat/manifest.yaml +0 -0
  557. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/web_browser_compat/recommended_kinds.yaml +0 -0
  558. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/web_browser_compat/severity_rules.yaml +0 -0
  559. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/web_forms_html5/coverage_matrix.md +0 -0
  560. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/web_forms_html5/elicit_extend.md +0 -0
  561. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/web_forms_html5/lexicon.yaml +0 -0
  562. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/web_forms_html5/manifest.yaml +0 -0
  563. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/web_forms_html5/recommended_kinds.yaml +0 -0
  564. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/web_forms_html5/severity_rules.yaml +0 -0
  565. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/web_performance_core_web_vitals/coverage_matrix.md +0 -0
  566. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/web_performance_core_web_vitals/elicit_extend.md +0 -0
  567. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/web_performance_core_web_vitals/lexicon.yaml +0 -0
  568. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/web_performance_core_web_vitals/manifest.yaml +0 -0
  569. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/web_performance_core_web_vitals/recommended_kinds.yaml +0 -0
  570. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/web_performance_core_web_vitals/severity_rules.yaml +0 -0
  571. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/web_pwa_manifest/coverage_matrix.md +0 -0
  572. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/web_pwa_manifest/elicit_extend.md +0 -0
  573. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/web_pwa_manifest/lexicon.yaml +0 -0
  574. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/web_pwa_manifest/manifest.yaml +0 -0
  575. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/web_pwa_manifest/recommended_kinds.yaml +0 -0
  576. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/web_pwa_manifest/severity_rules.yaml +0 -0
  577. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/web_responsive/coverage_matrix.md +0 -0
  578. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/web_responsive/elicit_extend.md +0 -0
  579. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/web_responsive/lexicon.yaml +0 -0
  580. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/web_responsive/manifest.yaml +0 -0
  581. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/web_responsive/recommended_kinds.yaml +0 -0
  582. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/web_responsive/severity_rules.yaml +0 -0
  583. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/web_security_owasp/coverage_matrix.md +0 -0
  584. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/web_security_owasp/elicit_extend.md +0 -0
  585. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/web_security_owasp/lexicon.yaml +0 -0
  586. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/web_security_owasp/manifest.yaml +0 -0
  587. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/web_security_owasp/recommended_kinds.yaml +0 -0
  588. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/web_security_owasp/severity_rules.yaml +0 -0
  589. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/web_seo_schemaorg/coverage_matrix.md +0 -0
  590. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/web_seo_schemaorg/elicit_extend.md +0 -0
  591. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/web_seo_schemaorg/lexicon.yaml +0 -0
  592. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/web_seo_schemaorg/manifest.yaml +0 -0
  593. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/web_seo_schemaorg/recommended_kinds.yaml +0 -0
  594. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/lexicons/web_seo_schemaorg/severity_rules.yaml +0 -0
  595. {codd_dev-2.74.0 → codd_dev-2.76.0}/codd_plugins/stack_map.yaml +0 -0
  596. {codd_dev-2.74.0 → codd_dev-2.76.0}/docs/cookbook/cdp_browser/README.md +0 -0
  597. {codd_dev-2.74.0 → codd_dev-2.76.0}/docs/cookbook/presentation_aggregation/README.md +0 -0
  598. {codd_dev-2.74.0 → codd_dev-2.76.0}/docs/requirements/README.md +0 -0
  599. {codd_dev-2.74.0 → codd_dev-2.76.0}/dogfood/README.md +0 -0
  600. {codd_dev-2.74.0 → codd_dev-2.76.0}/dogfood/fixtures/flat_py_app/README.md +0 -0
  601. {codd_dev-2.74.0 → codd_dev-2.76.0}/examples/README.md +0 -0
  602. {codd_dev-2.74.0 → codd_dev-2.76.0}/skills/codd-assemble/SKILL.md +0 -0
  603. {codd_dev-2.74.0 → codd_dev-2.76.0}/skills/codd-evolve/SKILL.md +0 -0
  604. {codd_dev-2.74.0 → codd_dev-2.76.0}/skills/codd-generate/SKILL.md +0 -0
  605. {codd_dev-2.74.0 → codd_dev-2.76.0}/skills/codd-greenfield/SKILL.md +0 -0
  606. {codd_dev-2.74.0 → codd_dev-2.76.0}/skills/codd-impact/SKILL.md +0 -0
  607. {codd_dev-2.74.0 → codd_dev-2.76.0}/skills/codd-init/SKILL.md +0 -0
  608. {codd_dev-2.74.0 → codd_dev-2.76.0}/skills/codd-propagate/SKILL.md +0 -0
  609. {codd_dev-2.74.0 → codd_dev-2.76.0}/skills/codd-restore/SKILL.md +0 -0
  610. {codd_dev-2.74.0 → codd_dev-2.76.0}/skills/codd-scan/SKILL.md +0 -0
  611. {codd_dev-2.74.0 → codd_dev-2.76.0}/skills/codd-validate/SKILL.md +0 -0
  612. {codd_dev-2.74.0 → codd_dev-2.76.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.74.0
3
+ Version: 2.76.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.74.0"
3
+ __version__ = "2.76.0"
@@ -170,7 +170,13 @@ commands:
170
170
  argv: ["go", "test", "-json", "./..."]
171
171
  cwd: "{module_root}"
172
172
  env:
173
- GOFLAGS: "-mod=readonly"
173
+ # -buildvcs=false: a greenfield Go output dir is frequently NOT a clean git
174
+ # repo, so `go test`/`go build` fail with "error obtaining VCS status / use
175
+ # -buildvcs=false". The legacy _go_aware_env added this for the legacy path;
176
+ # the contract executor runs verify with plan.env, so the hardener must be
177
+ # DECLARED here or the contract path regresses the VCS-stamp failure. ONLY on
178
+ # verify — build/vet/typecheck env is read by implement_oracle (pinned tests).
179
+ GOFLAGS: "-mod=readonly -buildvcs=false"
174
180
  report:
175
181
  capture: stdout
176
182
  path: ".codd/verify/go-test.jsonl"
@@ -91,6 +91,26 @@ class VerifyRunPlan:
91
91
  return " ".join(self.argv)
92
92
 
93
93
 
94
+ def _substitute_layout_placeholders(value: str | None, layout) -> str | None:
95
+ """Resolve the layout path placeholders a verify command's ``cwd``/``env`` may
96
+ carry (``{module_root}`` / ``{repo_root}`` / ``{manifest_root}``).
97
+
98
+ Profiles keep these as LITERAL template strings (per design — full template
99
+ substitution is PathPlanner's job, a later phase). But the verify EXECUTOR
100
+ must run in a real directory: an unsubstituted ``cwd: "{module_root}"`` makes
101
+ the run spawn in ``<project>/{module_root}`` (a path that does not exist) →
102
+ a spurious TOOL_MISSING. So the plan resolves exactly the layout roots the
103
+ verify command needs to be runnable; everything else stays a literal template.
104
+ """
105
+ if value is None:
106
+ return None
107
+ return (
108
+ value.replace("{module_root}", layout.module_root)
109
+ .replace("{repo_root}", layout.repo_root)
110
+ .replace("{manifest_root}", layout.manifest_root)
111
+ )
112
+
113
+
94
114
  def build_verify_plan(contract: ResolvedLanguageContract) -> VerifyRunPlan | None:
95
115
  """Derive the verify run plan from ``contract.profile.commands['verify']``.
96
116
 
@@ -98,13 +118,15 @@ def build_verify_plan(contract: ResolvedLanguageContract) -> VerifyRunPlan | Non
98
118
  stays on the legacy path). A declared ``report.path`` means the command is
99
119
  expected to PRODUCE that report — its absence after a run is REPORT_MISSING
100
120
  (a not-green outcome), enforced once adapters land (v2.72) / the switch
101
- happens (v2.69b).
121
+ happens (v2.69b). ``cwd``/``env`` layout placeholders are resolved so the
122
+ executor runs in a real directory.
102
123
  """
103
124
  cmd = contract.profile.commands.get("verify")
104
125
  if cmd is None:
105
126
  return None
106
127
  report = cmd.report
107
128
  scope = cmd.scope
129
+ layout = contract.profile.layout
108
130
  must_include = scope.must_include_test_sets if scope else ()
109
131
  # Resolve each must_include id to its TestSet ROOT (the scope check in the
110
132
  # executor matches executed_files against roots, so it needs roots, not ids).
@@ -122,8 +144,11 @@ def build_verify_plan(contract: ResolvedLanguageContract) -> VerifyRunPlan | Non
122
144
  return VerifyRunPlan(
123
145
  language_id=contract.language_id,
124
146
  argv=tuple(cmd.argv),
125
- cwd=cmd.cwd,
126
- env=dict(cmd.env),
147
+ cwd=_substitute_layout_placeholders(cmd.cwd, layout),
148
+ env={
149
+ str(k): _substitute_layout_placeholders(str(v), layout)
150
+ for k, v in cmd.env.items()
151
+ },
127
152
  report_path=(report.path if report else None),
128
153
  report_adapter=(report.adapter if report else None),
129
154
  report_required=bool(report and report.path),
@@ -9,11 +9,16 @@ import re
9
9
  from dataclasses import asdict, dataclass, field, is_dataclass
10
10
  from datetime import datetime, timezone
11
11
  from pathlib import Path
12
- from typing import Any, Mapping
12
+ from typing import TYPE_CHECKING, Any, Mapping
13
13
  import subprocess
14
14
  import time
15
15
  import warnings
16
16
 
17
+ if TYPE_CHECKING: # import-time-free type hints (no cycle, no runtime cost)
18
+ from codd.languages.registry import AdapterRegistry, LanguageRegistry
19
+ from codd.languages.verify_executor import VerifyExecutionResult
20
+ from codd.languages.verify_plan import VerifyRunPlan
21
+
17
22
  import yaml
18
23
 
19
24
  from codd.config import find_codd_dir, load_project_config
@@ -119,6 +124,20 @@ class VerificationResult:
119
124
  #: One-line status of the deterministic parse check over project sources
120
125
  #: ("checked N file(s)", "disabled", "N parse error(s)", "not checked").
121
126
  source_integrity: str = "not checked"
127
+ # ── Step 6 contract-switch trace (additive; defaults keep old constructors
128
+ # valid). ``verify_path`` records which path produced the test verdict:
129
+ # "contract" — the contract executor ran (its verdict is FINAL),
130
+ # "legacy_fallback" — a PRE-execution fallback to the legacy ladder fired,
131
+ # "legacy" — no contract machinery was in play (the default).
132
+ #: Which path produced the test-command verdict ("contract"/"legacy_fallback"/"legacy").
133
+ verify_path: str = "legacy"
134
+ #: True when a PRE-execution legacy fallback fired (never after the contract
135
+ #: executor ran — there is no post-execution rescue). The v3.0.0 cut gates on
136
+ #: ``fallback_used == 0``.
137
+ fallback_used: bool = False
138
+ #: Why the fallback fired ("no_language"/"no_verify_plan"/
139
+ #: "missing_adapter_legacy_compatible"), else ``None``.
140
+ fallback_reason: str | None = None
122
141
 
123
142
  @property
124
143
  def executed_anything(self) -> bool:
@@ -156,10 +175,25 @@ class VerifyRunner:
156
175
  project_root: Path,
157
176
  codd_yaml: Mapping[str, Any] | None,
158
177
  runtime_skip: tuple[str, ...] | list[str] | set[str] | None = None,
178
+ *,
179
+ language_registry: "LanguageRegistry | None" = None,
180
+ adapter_registry: "AdapterRegistry | None" = None,
159
181
  ):
160
182
  self.project_root = Path(project_root).resolve()
161
183
  self.codd_yaml = dict(codd_yaml or {})
162
184
  self.runtime_skip = frozenset(str(item) for item in (runtime_skip or ()))
185
+ # Contract-Kernel registries. ``None`` ⇒ the process-wide defaults
186
+ # (``default_registry`` / ``default_adapter_registry``); they are
187
+ # keyword-only injection seams so a hermetic test can drive the
188
+ # contract-first verify path against a synthetic profile + fake adapter
189
+ # WITHOUT a real go/pytest toolchain. Production never passes them.
190
+ self._language_registry = language_registry
191
+ self._adapter_registry = adapter_registry
192
+ # fallback_used observability (Step 6 trace). Set by ``_run_test_command``
193
+ # and read by ``run()`` when it builds the ``VerificationResult``.
194
+ self._verify_path: str = "legacy"
195
+ self._fallback_used: bool = False
196
+ self._fallback_reason: str | None = None
163
197
 
164
198
  def run(self) -> VerificationResult:
165
199
  """Reset DAG state, run C1-C7 checks, then run executable verification tests.
@@ -237,6 +271,9 @@ class VerifyRunner:
237
271
  tests_summary=tests_summary,
238
272
  typecheck_executed=typecheck_executed,
239
273
  source_integrity=source_integrity,
274
+ verify_path=self._verify_path,
275
+ fallback_used=self._fallback_used,
276
+ fallback_reason=self._fallback_reason,
240
277
  )
241
278
  # The honesty rule. Plain `codd verify` stays pass-WITH-WARNING by
242
279
  # default because existing brownfield/CI configurations may be
@@ -488,14 +525,198 @@ class VerifyRunner:
488
525
  def _run_test_command(
489
526
  self, settings: dict[str, Any]
490
527
  ) -> tuple[bool, str | None, str, VerificationFailure | None]:
491
- """Resolve and run the project's test command.
528
+ """Resolve and run the project's test command — CONTRACT-FIRST (Step 6).
529
+
530
+ Returns ``(tests_executed, test_command, tests_summary, test_failure)`` —
531
+ ``test_failure is not None`` ⇒ a failure (``passed=False``);
532
+ ``tests_executed`` feeds ``executed_anything`` / the honesty rule.
533
+
534
+ This is THE single live point where the Contract Kernel's anti-false-green
535
+ verify executor enters production verify. Decision tree (in order):
536
+
537
+ 1. Resolve the language contract. A declared-but-UNKNOWN language is
538
+ ``UnknownLanguageError`` → RED (never a fallback). A malformed language
539
+ declaration is a broken contract even when an explicit command exists,
540
+ so this RED is checked FIRST (before the explicit-command override).
541
+ 2. EXPLICIT author command override. An explicit ``fix.test_command`` /
542
+ ``verify.test_command`` in codd.yaml is author intent that, in the
543
+ legacy ladder, beats all detection (test_detection priority 1-2). It
544
+ designates the command the author wants run AS THEIR verification — so
545
+ routing a project with an explicit command into the PROFILE's verify
546
+ pipeline would verify a DIFFERENT command than the author asked for
547
+ (itself a false-green vector: "pass" the profile command while the
548
+ author's real suite never ran). The contract's stricter observation is
549
+ the policy for the profile-DERIVED default, not an override of an
550
+ explicit author substitution. So an explicit command → pre-execution
551
+ legacy fallback (reason ``explicit_test_command``); the legacy evidence
552
+ path runs it and keeps its OWN anti-false-green guards (JS zero-collected
553
+ hard-fail, pytest exit-5 = no-tests, nonzero/timeout = fail). Marked
554
+ ``fallback_used=True`` so the v3.0.0 ``fallback_used == 0`` cut surfaces
555
+ it as migration debt (not a permanent green-washing escape hatch). This
556
+ is language-AGNOSTIC (gates on "did the author provide a command", never
557
+ on a language name) and PRE-execution (no post-execution rescue).
558
+ 2b. Structural-only opt-out. ``verify.allow_structural_only: true`` is the
559
+ author's explicit declaration that there is no executable verification
560
+ (the honesty rule already honors it). Forcing the contract executor would
561
+ run a verify command the author declared absent → pre-execution legacy
562
+ fallback (reason ``structural_only``); like (2), an author opt-out that
563
+ pre-empts the contract path.
564
+ 3. No ``project.language`` (contract is ``None``) → pre-execution legacy
565
+ fallback (reason ``no_language``).
566
+ 4. No verify command in the profile (``build_verify_plan`` is ``None``) →
567
+ pre-execution legacy fallback (reason ``no_verify_plan``).
568
+ 5. Scoped runner_report-adapter gate (NOT full ``require_complete()`` —
569
+ other adapter kinds are unimplemented and would RED everything): if the
570
+ plan requires a report and the runner_report adapter is unavailable,
571
+ a ``strict`` profile → RED; a ``legacy_compatible`` profile →
572
+ pre-execution legacy fallback (reason
573
+ ``missing_adapter_legacy_compatible``).
574
+ 6. Otherwise run the contract executor. Its verdict is FINAL — there is
575
+ NO post-execution legacy rescue (a contract not-green is never turned
576
+ green by re-running the legacy ladder).
577
+ """
578
+ from codd.test_detection import _explicit_test_command
579
+ from codd.languages.contract import resolve_language_contract
580
+ from codd.languages.registry import (
581
+ UnknownLanguageError,
582
+ default_adapter_registry,
583
+ )
584
+ from codd.languages.verify_plan import build_verify_plan
585
+
586
+ # (1) Resolve the language contract — a declared-unknown language is RED.
587
+ try:
588
+ contract = resolve_language_contract(
589
+ settings,
590
+ language_registry=self._language_registry,
591
+ adapter_registry=self._adapter_registry,
592
+ )
593
+ except UnknownLanguageError as exc:
594
+ self._mark_contract_path()
595
+ return (
596
+ False,
597
+ None,
598
+ "unknown declared language",
599
+ VerificationFailure(
600
+ check_name="test_command",
601
+ source="test_command",
602
+ message=(
603
+ f"project.language is declared but unknown: {exc}. A declared "
604
+ "language with no matching profile is RED, never a silent "
605
+ "fallback to the legacy test ladder."
606
+ ),
607
+ details={"failure_class": "unknown_declared_language"},
608
+ ),
609
+ )
610
+
611
+ # (2) Explicit author command override (checked AFTER the unknown-language
612
+ # RED, BEFORE all other routing). An explicit fix/verify.test_command is a
613
+ # deliberate author substitution that the legacy ladder honors over
614
+ # detection; the contract path would otherwise run the profile's DEFAULT
615
+ # verify command instead — verifying something the author did not ask for.
616
+ # Pre-execution legacy fallback; the legacy guards still prevent green-on-
617
+ # nothing. Language-agnostic + migration debt (fallback_used=True).
618
+ if _explicit_test_command(settings):
619
+ return self._legacy_test_command(settings, reason="explicit_test_command")
620
+
621
+ # (2b) Structural-only opt-out. ``verify.allow_structural_only: true`` is the
622
+ # author's EXPLICIT declaration that structural DAG coherence is the whole
623
+ # contract here and there is no executable verification (doc-only repos, or a
624
+ # suite that runs in a separate CI stage) — already honored by
625
+ # ``structural_only_allowed()`` / the honesty rule. Forcing the contract
626
+ # executor on such a project would run a verify command the author declared
627
+ # absent (a spurious not-green) and add no anti-false-green value (the honesty
628
+ # rule is the gate whenever this opt-out is NOT set). So it is a pre-execution
629
+ # opt-out, like the explicit-command override: route to legacy (which, with no
630
+ # detected command, yields the structural-only result the author asked for).
631
+ if structural_only_allowed(settings):
632
+ return self._legacy_test_command(settings, reason="structural_only")
633
+
634
+ # (3) No declared language → legacy fallback (the common existing case).
635
+ if contract is None:
636
+ return self._legacy_test_command(settings, reason="no_language")
637
+
638
+ # (4) No verify command in the profile → legacy fallback.
639
+ plan = build_verify_plan(contract)
640
+ if plan is None:
641
+ return self._legacy_test_command(settings, reason="no_verify_plan")
642
+
643
+ # (5) Scoped runner_report-adapter gate (NOT full require_complete()). The
644
+ # executor reads the report via ``default_adapter_registry.get("runner_report",
645
+ # plan.report_adapter)`` — so we gate on exactly that capability, ensuring
646
+ # builtins are registered first. Only when the plan REQUIRES a report.
647
+ registry = (
648
+ self._adapter_registry
649
+ if self._adapter_registry is not None
650
+ else default_adapter_registry
651
+ )
652
+ if plan.report_required:
653
+ from codd.languages.builtin_adapters import (
654
+ ensure_builtin_adapters_registered,
655
+ )
656
+
657
+ ensure_builtin_adapters_registered(registry)
658
+ adapter = (
659
+ registry.get("runner_report", plan.report_adapter)
660
+ if plan.report_adapter is not None
661
+ else None
662
+ )
663
+ if adapter is None:
664
+ if contract.profile.strictness == "strict":
665
+ self._mark_contract_path()
666
+ return (
667
+ False,
668
+ plan.command_str,
669
+ "required runner_report adapter unavailable (strict)",
670
+ VerificationFailure(
671
+ check_name="test_command",
672
+ source="test_command",
673
+ message=(
674
+ f"strict language {contract.language_id!r} declares a "
675
+ f"required runner_report adapter "
676
+ f"{plan.report_adapter!r} that is not registered — the "
677
+ "executor cannot observe the report, so the run cannot "
678
+ "be classified green (fail-closed; RED, no fallback)."
679
+ ),
680
+ details={
681
+ "failure_class": "missing_runner_report_adapter",
682
+ "report_adapter": plan.report_adapter,
683
+ "language": contract.language_id,
684
+ },
685
+ ),
686
+ )
687
+ # legacy_compatible → pre-execution fallback (NOT a RED).
688
+ return self._legacy_test_command(
689
+ settings, reason="missing_adapter_legacy_compatible"
690
+ )
691
+
692
+ # (6) Run the contract executor. Its verdict is FINAL (no legacy rescue).
693
+ from codd.languages.verify_executor import execute_verify_plan
694
+
695
+ self._mark_contract_path()
696
+ result = execute_verify_plan(plan, self.project_root, adapter_registry=registry)
697
+ return self._tuple_from_execution(plan, result)
698
+
699
+ def _mark_contract_path(self) -> None:
700
+ """Record that the live contract executor produced this run's test verdict."""
701
+ self._verify_path = "contract"
702
+ self._fallback_used = False
703
+ self._fallback_reason = None
492
704
 
493
- Explicit ``verify.test_command``/``fix.test_command`` wins; otherwise
494
- :func:`codd.test_detection.detect_test_command` heuristics apply
495
- (pytest config, package.json scripts, cargo, go, bats, Makefile).
496
- No command detected ``tests_executed=False`` callers MUST treat
497
- that as "unverified", never as "tests passed".
705
+ def _legacy_test_command(
706
+ self, settings: dict[str, Any], *, reason: str
707
+ ) -> tuple[bool, str | None, str, VerificationFailure | None]:
708
+ """PRE-execution legacy fallback the original detect+run test ladder.
709
+
710
+ Used ONLY before the contract executor runs (an explicit author command /
711
+ structural-only opt-out / no language / no verify plan / legacy_compatible
712
+ profile with a missing runner_report adapter). Records the fallback trace so
713
+ the v3.0.0 cut can gate on ``fallback_used == 0``. There is deliberately NO
714
+ post-execution variant: once the contract executor has run, its verdict is
715
+ final.
498
716
  """
717
+ self._verify_path = "legacy_fallback"
718
+ self._fallback_used = True
719
+ self._fallback_reason = reason
499
720
  command = detect_test_command(self.project_root, config=settings)
500
721
  if not command:
501
722
  return False, None, "no test command detected", None
@@ -504,6 +725,46 @@ class VerifyRunner:
504
725
  )
505
726
  return executed, command, summary, failure
506
727
 
728
+ def _tuple_from_execution(
729
+ self, plan: "VerifyRunPlan", result: "VerifyExecutionResult"
730
+ ) -> tuple[bool, str | None, str, VerificationFailure | None]:
731
+ """Map a :class:`VerifyExecutionResult` to the ``_run_test_command`` 4-tuple.
732
+
733
+ The anti-false-green mapping — only ``PASS`` is green; every other class is
734
+ a failure, and ``TOOL_MISSING`` additionally did NOT execute:
735
+
736
+ * ``PASS`` → ``(True, cmd, detail, None)``.
737
+ * ``TOOL_MISSING``→ ``(False, cmd, detail, FAILURE)`` — never ran AND a
738
+ failure (so it can never count as green-on-nothing).
739
+ * any other not-green (FAIL / ZERO_TESTS / REPORT_MISSING /
740
+ REPORT_UNREADABLE / SCOPE_MISSING) → ``(True, cmd, detail, FAILURE)`` —
741
+ it executed; it is a failure.
742
+ """
743
+ from codd.languages.verify_plan import VerifyClass
744
+
745
+ command = plan.command_str
746
+ if result.verify_class is VerifyClass.PASS:
747
+ return True, command, result.detail, None
748
+
749
+ failure = VerificationFailure(
750
+ check_name="test_command",
751
+ source="test_command",
752
+ message=result.detail,
753
+ details={
754
+ "command": command,
755
+ "verify_class": result.verify_class.value,
756
+ "verify_path": "contract",
757
+ "returncode": result.returncode,
758
+ "failure_class": "verify_contract_not_green",
759
+ },
760
+ )
761
+ if result.verify_class is VerifyClass.TOOL_MISSING:
762
+ # Did not run AND is a failure — never green.
763
+ return False, command, result.detail, failure
764
+ # FAIL / ZERO_TESTS / REPORT_MISSING / REPORT_UNREADABLE / SCOPE_MISSING:
765
+ # the command executed and the observation is not-green.
766
+ return True, command, result.detail, failure
767
+
507
768
  def _run_evidence_command(
508
769
  self,
509
770
  command: str,
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "codd-dev"
7
- version = "2.74.0"
7
+ version = "2.76.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