codd-dev 3.26.0__tar.gz → 3.27.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.26.0 → codd_dev-3.27.0}/PKG-INFO +1 -1
  2. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/__init__.py +1 -1
  3. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/languages/adapters/oracle_cpp.py +54 -0
  4. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/languages/adapters/oracle_java.py +35 -0
  5. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/languages/profiles/java.yaml +14 -0
  6. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/project_types.py +96 -0
  7. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/vb_marker_authenticity.py +12 -1
  8. {codd_dev-3.26.0 → codd_dev-3.27.0}/pyproject.toml +1 -1
  9. {codd_dev-3.26.0 → codd_dev-3.27.0}/.gitignore +0 -0
  10. {codd_dev-3.26.0 → codd_dev-3.27.0}/LICENSE +0 -0
  11. {codd_dev-3.26.0 → codd_dev-3.27.0}/README.md +0 -0
  12. {codd_dev-3.26.0 → codd_dev-3.27.0}/bench_fixture/README.md +0 -0
  13. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/__main__.py +0 -0
  14. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/_git_helper.py +0 -0
  15. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/action_outcome.py +0 -0
  16. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/ai_invoke.py +0 -0
  17. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/ai_patch.py +0 -0
  18. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/artifact_contract.py +0 -0
  19. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/artifact_ids.py +0 -0
  20. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/artifacts/catalog.yaml +0 -0
  21. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/ask_user_question_adapter.py +0 -0
  22. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/assembler.py +0 -0
  23. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/bridge.py +0 -0
  24. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/brownfield/__init__.py +0 -0
  25. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/brownfield/pipeline.py +0 -0
  26. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/capability_completeness.py +0 -0
  27. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/claude_cli.py +0 -0
  28. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/cli.py +0 -0
  29. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/clustering.py +0 -0
  30. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/coherence_adapters.py +0 -0
  31. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/coherence_engine.py +0 -0
  32. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/confidence.py +0 -0
  33. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/config.py +0 -0
  34. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/config_schema.py +0 -0
  35. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/contracts.py +0 -0
  36. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/contracts_registry/__init__.py +0 -0
  37. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/contracts_registry/__main__.py +0 -0
  38. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/contracts_registry/certify.py +0 -0
  39. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/contracts_registry/generate_matrix.py +0 -0
  40. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/contracts_registry/registry.py +0 -0
  41. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/coverage_auditor.py +0 -0
  42. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/coverage_execution_coherence.py +0 -0
  43. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/coverage_metrics.py +0 -0
  44. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/dag/__init__.py +0 -0
  45. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/dag/auto_repair.py +0 -0
  46. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/dag/builder.py +0 -0
  47. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/dag/checks/__init__.py +0 -0
  48. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/dag/checks/_one_to_many_detection.py +0 -0
  49. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/dag/checks/artifact_contract_check.py +0 -0
  50. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/dag/checks/cardinality_coverage.py +0 -0
  51. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/dag/checks/ci_health.py +0 -0
  52. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/dag/checks/dependency_freshness.py +0 -0
  53. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/dag/checks/depends_on_consistency.py +0 -0
  54. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/dag/checks/deployment_completeness.py +0 -0
  55. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/dag/checks/edge_validity.py +0 -0
  56. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/dag/checks/environment_coverage.py +0 -0
  57. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/dag/checks/extraction_diagnostics.py +0 -0
  58. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/dag/checks/implementation_coverage.py +0 -0
  59. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/dag/checks/negative_space.py +0 -0
  60. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/dag/checks/node_completeness.py +0 -0
  61. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/dag/checks/opt_out.py +0 -0
  62. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/dag/checks/resource_flow_coherence.py +0 -0
  63. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/dag/checks/semantic_contract_conflict.py +0 -0
  64. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/dag/checks/source_completeness.py +0 -0
  65. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/dag/checks/stale_evidence.py +0 -0
  66. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/dag/checks/task_completion.py +0 -0
  67. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/dag/checks/transitive_closure.py +0 -0
  68. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/dag/checks/ui_coherence.py +0 -0
  69. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/dag/checks/unresolved_import_residue.py +0 -0
  70. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/dag/checks/user_journey_coherence.py +0 -0
  71. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/dag/coverage_axes.py +0 -0
  72. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/dag/defaults/cli.yaml +0 -0
  73. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/dag/defaults/cpp_embedded.yaml +0 -0
  74. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/dag/defaults/csharp.yaml +0 -0
  75. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/dag/defaults/elixir.yaml +0 -0
  76. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/dag/defaults/generic.yaml +0 -0
  77. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/dag/defaults/iot.yaml +0 -0
  78. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/dag/defaults/java.yaml +0 -0
  79. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/dag/defaults/kotlin.yaml +0 -0
  80. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/dag/defaults/mobile.yaml +0 -0
  81. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/dag/defaults/ruby.yaml +0 -0
  82. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/dag/defaults/rust.yaml +0 -0
  83. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/dag/defaults/scala.yaml +0 -0
  84. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/dag/defaults/swift.yaml +0 -0
  85. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/dag/defaults/test_frameworks.yaml +0 -0
  86. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/dag/defaults/web.yaml +0 -0
  87. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/dag/extractor.py +0 -0
  88. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/dag/impact.py +0 -0
  89. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/dag/materiality.py +0 -0
  90. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/dag/metadata_access.py +0 -0
  91. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/dag/result_status.py +0 -0
  92. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/dag/runner.py +0 -0
  93. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/defaults.py +0 -0
  94. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/defaults.yaml +0 -0
  95. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/dependency_lock_coherence.py +0 -0
  96. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/deploy_targets/__init__.py +0 -0
  97. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/deploy_targets/app_service.py +0 -0
  98. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/deploy_targets/base.py +0 -0
  99. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/deploy_targets/docker_compose.py +0 -0
  100. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/deployer.py +0 -0
  101. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/deployment/__init__.py +0 -0
  102. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/deployment/checks/__init__.py +0 -0
  103. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/deployment/defaults/deploy_targets.yaml +0 -0
  104. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/deployment/defaults/runtime_capability_inference.yaml +0 -0
  105. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/deployment/defaults/schema_providers.yaml +0 -0
  106. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/deployment/defaults/verification_templates.yaml +0 -0
  107. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/deployment/extractor.py +0 -0
  108. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/deployment/providers/__init__.py +0 -0
  109. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/deployment/providers/ai_command.py +0 -0
  110. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/deployment/providers/ai_command_factory.py +0 -0
  111. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/deployment/providers/codex_app_server.py +0 -0
  112. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/deployment/providers/llm_consideration.py +0 -0
  113. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/deployment/providers/schema/__init__.py +0 -0
  114. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/deployment/providers/schema/prisma.py +0 -0
  115. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/deployment/providers/target/__init__.py +0 -0
  116. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/deployment/providers/target/docker_compose.py +0 -0
  117. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/deployment/providers/verification/__init__.py +0 -0
  118. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/deployment/providers/verification/assertion_handlers.py +0 -0
  119. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/deployment/providers/verification/cdp_browser.py +0 -0
  120. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/deployment/providers/verification/cdp_engines.py +0 -0
  121. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/deployment/providers/verification/cdp_launchers.py +0 -0
  122. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/deployment/providers/verification/cdp_wire.py +0 -0
  123. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/deployment/providers/verification/curl.py +0 -0
  124. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/deployment/providers/verification/form_strategies.py +0 -0
  125. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/deployment/providers/verification/means_catalog.py +0 -0
  126. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/deployment/providers/verification/playwright.py +0 -0
  127. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/deployment/providers/verification/pytest_http.py +0 -0
  128. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/deployment/providers/verification/vitest.py +0 -0
  129. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/design_md.py +0 -0
  130. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/diff/__init__.py +0 -0
  131. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/diff/apply.py +0 -0
  132. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/diff/engine.py +0 -0
  133. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/diff/persistence.py +0 -0
  134. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/diff/templates/diff_prompt.md +0 -0
  135. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/discovery.py +0 -0
  136. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/drift.py +0 -0
  137. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/e2e_contract_coherence.py +0 -0
  138. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/e2e_extractor.py +0 -0
  139. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/e2e_generator.py +0 -0
  140. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/e2e_harness.py +0 -0
  141. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/e2e_runner.py +0 -0
  142. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/elicit/__init__.py +0 -0
  143. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/elicit/apply.py +0 -0
  144. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/elicit/engine.py +0 -0
  145. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/elicit/finding.py +0 -0
  146. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/elicit/formatters/__init__.py +0 -0
  147. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/elicit/formatters/base.py +0 -0
  148. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/elicit/formatters/interactive.py +0 -0
  149. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/elicit/formatters/json_fmt.py +0 -0
  150. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/elicit/formatters/md.py +0 -0
  151. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/elicit/gap_to_ask.py +0 -0
  152. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/elicit/lexicon_loader.py +0 -0
  153. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/elicit/persistence.py +0 -0
  154. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/elicit/promote.py +0 -0
  155. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/elicit/routing.py +0 -0
  156. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/elicit/templates/elicit_prompt_L0.md +0 -0
  157. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/env_refs.py +0 -0
  158. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/extract_ai.py +0 -0
  159. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/extract_paths.py +0 -0
  160. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/extractor.py +0 -0
  161. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/fix/__init__.py +0 -0
  162. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/fix/candidate_selector.py +0 -0
  163. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/fix/design_updater.py +0 -0
  164. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/fix/impact_planner.py +0 -0
  165. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/fix/impl_propagation.py +0 -0
  166. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/fix/interactive_prompt.py +0 -0
  167. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/fix/phenomenon_fixer.py +0 -0
  168. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/fix/phenomenon_parser.py +0 -0
  169. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/fix/risk_classifier.py +0 -0
  170. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/fix/templates/clarification_question.txt +0 -0
  171. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/fix/templates/design_update.txt +0 -0
  172. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/fix/templates/impl_update.txt +0 -0
  173. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/fix/templates/phenomenon_parse.txt +0 -0
  174. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/fix/templates/risk_assessment.txt +0 -0
  175. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/fix/templates_loader.py +0 -0
  176. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/fixer.py +0 -0
  177. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/fixup_drift.py +0 -0
  178. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/fixup_drift_strategies/__init__.py +0 -0
  179. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/fixup_drift_strategies/design_token_drift.py +0 -0
  180. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/fixup_drift_strategies/lexicon_violation.py +0 -0
  181. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/fixup_drift_strategies/url_drift.py +0 -0
  182. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/frontmatter.py +0 -0
  183. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/generator.py +0 -0
  184. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/git_evidence.py +0 -0
  185. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/graph.py +0 -0
  186. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/greenfield/__init__.py +0 -0
  187. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/greenfield/pipeline.py +0 -0
  188. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/greenfield/test_rederivation.py +0 -0
  189. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/hitl_session.py +0 -0
  190. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/hooks/__init__.py +0 -0
  191. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/hooks/pre-commit +0 -0
  192. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/hooks/recipes/claude_requirements_nudge.json +0 -0
  193. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/hooks/recipes/claude_settings_example.json +0 -0
  194. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/hooks/recipes/codex_hook.sh +0 -0
  195. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/hooks/recipes/git_post_commit.sh +0 -0
  196. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/hooks/recipes/git_pre_commit.sh +0 -0
  197. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/iac_nfr.py +0 -0
  198. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/implement_oracle.py +0 -0
  199. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/implement_oracle_scope.py +0 -0
  200. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/implement_oracle_types.py +0 -0
  201. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/implementer/__init__.py +0 -0
  202. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/implementer/chunked_runner.py +0 -0
  203. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/implementer/typecheck_loop.py +0 -0
  204. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/implementer.py +0 -0
  205. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/import_coherence.py +0 -0
  206. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/inheritance.py +0 -0
  207. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/init/__init__.py +0 -0
  208. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/init/lexicon_suggest.py +0 -0
  209. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/init/llm_lexicon_suggester.py +0 -0
  210. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/init/stack_detector.py +0 -0
  211. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/json_safe.py +0 -0
  212. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/knowledge_fetcher.py +0 -0
  213. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/languages/__init__.py +0 -0
  214. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/languages/adapters/__init__.py +0 -0
  215. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/languages/adapters/implement_oracle.py +0 -0
  216. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/languages/adapters/import_resolver.py +0 -0
  217. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/languages/adapters/oracle_csharp.py +0 -0
  218. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/languages/adapters/oracle_go.py +0 -0
  219. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/languages/adapters/oracle_javascript.py +0 -0
  220. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/languages/adapters/oracle_python.py +0 -0
  221. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/languages/adapters/oracle_typescript.py +0 -0
  222. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/languages/adapters/runner_report.py +0 -0
  223. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/languages/builtin_adapters.py +0 -0
  224. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/languages/compat.py +0 -0
  225. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/languages/contract.py +0 -0
  226. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/languages/loader.py +0 -0
  227. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/languages/oracle_executor.py +0 -0
  228. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/languages/path_planner.py +0 -0
  229. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/languages/profile.py +0 -0
  230. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/languages/profiles/cpp.yaml +0 -0
  231. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/languages/profiles/csharp.yaml +0 -0
  232. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/languages/profiles/go.yaml +0 -0
  233. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/languages/profiles/javascript.yaml +0 -0
  234. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/languages/profiles/python.yaml +0 -0
  235. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/languages/profiles/typescript.yaml +0 -0
  236. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/languages/registry.py +0 -0
  237. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/languages/verify_executor.py +0 -0
  238. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/languages/verify_plan.py +0 -0
  239. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/lexicon.py +0 -0
  240. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/lexicon_cli/__init__.py +0 -0
  241. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/lexicon_cli/formatters/__init__.py +0 -0
  242. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/lexicon_cli/formatters/html.py +0 -0
  243. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/lexicon_cli/formatters/json_fmt.py +0 -0
  244. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/lexicon_cli/formatters/md.py +0 -0
  245. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/lexicon_cli/inspector.py +0 -0
  246. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/lexicon_cli/manager.py +0 -0
  247. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/lexicon_cli/reporter.py +0 -0
  248. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/lexicon_cli/threshold.py +0 -0
  249. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/llm/__init__.py +0 -0
  250. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/llm/approval.py +0 -0
  251. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/llm/best_practice_augmenter.py +0 -0
  252. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/llm/criteria_expander.py +0 -0
  253. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/llm/design_doc_extractor.py +0 -0
  254. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/llm/impl_step_deriver.py +0 -0
  255. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/llm/means_catalog_loader.py +0 -0
  256. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/llm/parser.py +0 -0
  257. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/llm/plan_deriver.py +0 -0
  258. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/llm/prompt_builder.py +0 -0
  259. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/llm/strategy_validator.py +0 -0
  260. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/llm/templates/best_practice_augment_meta.md +0 -0
  261. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/llm/templates/criteria_expand_meta.md +0 -0
  262. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/llm/templates/design_doc_extract_meta.md +0 -0
  263. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/llm/templates/impl_step_derive_meta.md +0 -0
  264. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/llm/templates/implementation_step_catalog.yaml +0 -0
  265. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/llm/templates/meta_instruction.md +0 -0
  266. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/llm/templates/plan_derive_meta.md +0 -0
  267. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/llm/templates/verification_means_catalog.yaml +0 -0
  268. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/mcp_server.py +0 -0
  269. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/measure.py +0 -0
  270. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/operational_e2e_audit.py +0 -0
  271. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/operations_derive.py +0 -0
  272. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/parsing/__init__.py +0 -0
  273. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/parsing/_shared.py +0 -0
  274. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/parsing/api_specs.py +0 -0
  275. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/parsing/extractor_registry.py +0 -0
  276. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/parsing/filesystem_routes.py +0 -0
  277. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/parsing/iac.py +0 -0
  278. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/parsing/python_ast.py +0 -0
  279. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/parsing/regex_strategies.py +0 -0
  280. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/parsing/schemas.py +0 -0
  281. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/parsing/tests_builddeps.py +0 -0
  282. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/parsing/treesitter.py +0 -0
  283. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/path_safety.py +0 -0
  284. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/planner.py +0 -0
  285. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/policy.py +0 -0
  286. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/preflight/__init__.py +0 -0
  287. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/preflight/defaults/cli.yaml +0 -0
  288. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/preflight/defaults/generic.yaml +0 -0
  289. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/preflight/defaults/iot.yaml +0 -0
  290. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/preflight/defaults/mobile.yaml +0 -0
  291. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/preflight/defaults/web.yaml +0 -0
  292. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/propagate.py +0 -0
  293. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/propagation_common.py +0 -0
  294. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/propagator.py +0 -0
  295. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/reconciliation_ledger.py +0 -0
  296. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/reference_resolution.py +0 -0
  297. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/registry.py +0 -0
  298. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/repair/__init__.py +0 -0
  299. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/repair/approval_repair.py +0 -0
  300. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/repair/auto_scope_guard.py +0 -0
  301. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/repair/design_context.py +0 -0
  302. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/repair/engine.py +0 -0
  303. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/repair/git_patcher.py +0 -0
  304. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/repair/history.py +0 -0
  305. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/repair/llm_repair_engine.py +0 -0
  306. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/repair/loop.py +0 -0
  307. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/repair/primary_picker.py +0 -0
  308. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/repair/proof_breaks.py +0 -0
  309. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/repair/repair_result.py +0 -0
  310. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/repair/repairability_classifier.py +0 -0
  311. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/repair/schema.py +0 -0
  312. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/repair/templates/analyze_meta.md +0 -0
  313. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/repair/templates/propose_meta.md +0 -0
  314. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/repair/templates/repair_strategy_meta.md +0 -0
  315. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/repair/templates/repairability_meta.md +0 -0
  316. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/repair/test_failure_attribution.py +0 -0
  317. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/repair/verify_runner.py +0 -0
  318. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/repair_slice.py +0 -0
  319. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/require.py +0 -0
  320. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/require_plugins.py +0 -0
  321. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/require_propagate.py +0 -0
  322. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/required_artifacts/defaults/cli.yaml +0 -0
  323. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/required_artifacts/defaults/generic.yaml +0 -0
  324. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/required_artifacts/defaults/iot.yaml +0 -0
  325. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/required_artifacts/defaults/mobile.yaml +0 -0
  326. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/required_artifacts/defaults/web.yaml +0 -0
  327. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/required_artifacts_deriver.py +0 -0
  328. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/requirement_completeness/defaults/cli.yaml +0 -0
  329. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/requirement_completeness/defaults/generic.yaml +0 -0
  330. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/requirement_completeness/defaults/iot.yaml +0 -0
  331. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/requirement_completeness/defaults/mobile.yaml +0 -0
  332. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/requirement_completeness/defaults/web.yaml +0 -0
  333. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/requirement_completeness_auditor.py +0 -0
  334. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/requirement_reconciliation.py +0 -0
  335. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/requirements_meta.py +0 -0
  336. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/restoration_report.py +0 -0
  337. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/restore.py +0 -0
  338. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/routes_extractor.py +0 -0
  339. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/runtime_smoke/__init__.py +0 -0
  340. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/runtime_smoke/checks.py +0 -0
  341. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/runtime_smoke/config.py +0 -0
  342. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/runtime_smoke/report.py +0 -0
  343. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/runtime_smoke/runner.py +0 -0
  344. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/scanner.py +0 -0
  345. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/schema_refs.py +0 -0
  346. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/screen_flow_validator.py +0 -0
  347. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/screen_transition_extractor.py +0 -0
  348. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/screen_transitions/defaults.yaml +0 -0
  349. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/skills_cli/__init__.py +0 -0
  350. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/skills_cli/discovery.py +0 -0
  351. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/skills_cli/manager.py +0 -0
  352. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/skills_cli/paths.py +0 -0
  353. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/stack/__init__.py +0 -0
  354. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/stack/adapters/__init__.py +0 -0
  355. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/stack/adapters/_base.py +0 -0
  356. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/stack/adapters/nextjs.py +0 -0
  357. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/stack/adapters/playwright.py +0 -0
  358. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/stack/adapters/prisma.py +0 -0
  359. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/stack/command_authenticity.py +0 -0
  360. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/stack/command_override.py +0 -0
  361. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/stack/command_plan.py +0 -0
  362. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/stack/compose.py +0 -0
  363. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/stack/loader.py +0 -0
  364. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/stack/lock.py +0 -0
  365. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/stack/obligations.py +0 -0
  366. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/stack/profile.py +0 -0
  367. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/stack/profiles/addons/playwright.yaml +0 -0
  368. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/stack/profiles/addons/prisma.yaml +0 -0
  369. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/stack/profiles/frameworks/nextjs.yaml +0 -0
  370. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/stack/project.py +0 -0
  371. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/stack/registry.py +0 -0
  372. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/stack/replacement_proof.py +0 -0
  373. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/stack/resolve.py +0 -0
  374. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/surface_reconciliation.py +0 -0
  375. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/synth.py +0 -0
  376. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/templates/codd.yaml.tmpl +0 -0
  377. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/templates/conventions.yaml.tmpl +0 -0
  378. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/templates/data_dependencies.yaml.tmpl +0 -0
  379. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/templates/doc_links.yaml.tmpl +0 -0
  380. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/templates/extract_ai_prompt_baseline.md +0 -0
  381. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/templates/extracted/api-contract.md.j2 +0 -0
  382. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/templates/extracted/architecture-overview.md.j2 +0 -0
  383. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/templates/extracted/module-detail.md.j2 +0 -0
  384. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/templates/extracted/schema-design.md.j2 +0 -0
  385. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/templates/extracted/system-context.md.j2 +0 -0
  386. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/templates/gitignore.tmpl +0 -0
  387. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/templates/lexicon_questions.md +0 -0
  388. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/templates/lexicon_schema.yaml +0 -0
  389. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/templates/overrides.yaml.tmpl +0 -0
  390. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/test_detection.py +0 -0
  391. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/test_import_coherence.py +0 -0
  392. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/traceability.py +0 -0
  393. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/validator.py +0 -0
  394. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/vb_rerun_scope.py +0 -0
  395. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/verifiable_behavior_audit.py +0 -0
  396. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/watch/__init__.py +0 -0
  397. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/watch/events.py +0 -0
  398. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/watch/propagation_log.py +0 -0
  399. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/watch/propagation_pipeline.py +0 -0
  400. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/watch/test_runner.py +0 -0
  401. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/watch/watcher.py +0 -0
  402. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd/wiring.py +0 -0
  403. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/ai_governance_eu_act/coverage_matrix.md +0 -0
  404. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/ai_governance_eu_act/elicit_extend.md +0 -0
  405. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/ai_governance_eu_act/lexicon.yaml +0 -0
  406. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/ai_governance_eu_act/manifest.yaml +0 -0
  407. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/ai_governance_eu_act/recommended_kinds.yaml +0 -0
  408. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/ai_governance_eu_act/severity_rules.yaml +0 -0
  409. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/api_rate_limiting_caching/coverage_matrix.md +0 -0
  410. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/api_rate_limiting_caching/elicit_extend.md +0 -0
  411. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/api_rate_limiting_caching/lexicon.yaml +0 -0
  412. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/api_rate_limiting_caching/manifest.yaml +0 -0
  413. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/api_rate_limiting_caching/recommended_kinds.yaml +0 -0
  414. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/api_rate_limiting_caching/severity_rules.yaml +0 -0
  415. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/api_rest_openapi/coverage_matrix.md +0 -0
  416. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/api_rest_openapi/elicit_extend.md +0 -0
  417. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/api_rest_openapi/lexicon.yaml +0 -0
  418. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/api_rest_openapi/manifest.yaml +0 -0
  419. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/api_rest_openapi/recommended_kinds.yaml +0 -0
  420. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/api_rest_openapi/severity_rules.yaml +0 -0
  421. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/babok/elicit_extend.md +0 -0
  422. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/babok/lexicon.yaml +0 -0
  423. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/babok/manifest.yaml +0 -0
  424. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/babok/recommended_kinds.yaml +0 -0
  425. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/babok/severity_rules.yaml +0 -0
  426. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/backend_event_cloudevents/coverage_matrix.md +0 -0
  427. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/backend_event_cloudevents/elicit_extend.md +0 -0
  428. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/backend_event_cloudevents/lexicon.yaml +0 -0
  429. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/backend_event_cloudevents/manifest.yaml +0 -0
  430. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/backend_event_cloudevents/recommended_kinds.yaml +0 -0
  431. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/backend_event_cloudevents/severity_rules.yaml +0 -0
  432. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/backend_graphql/coverage_matrix.md +0 -0
  433. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/backend_graphql/elicit_extend.md +0 -0
  434. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/backend_graphql/lexicon.yaml +0 -0
  435. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/backend_graphql/manifest.yaml +0 -0
  436. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/backend_graphql/recommended_kinds.yaml +0 -0
  437. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/backend_graphql/severity_rules.yaml +0 -0
  438. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/backend_grpc_proto/coverage_matrix.md +0 -0
  439. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/backend_grpc_proto/elicit_extend.md +0 -0
  440. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/backend_grpc_proto/lexicon.yaml +0 -0
  441. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/backend_grpc_proto/manifest.yaml +0 -0
  442. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/backend_grpc_proto/recommended_kinds.yaml +0 -0
  443. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/backend_grpc_proto/severity_rules.yaml +0 -0
  444. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/compliance_hipaa/coverage_matrix.md +0 -0
  445. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/compliance_hipaa/elicit_extend.md +0 -0
  446. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/compliance_hipaa/lexicon.yaml +0 -0
  447. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/compliance_hipaa/manifest.yaml +0 -0
  448. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/compliance_hipaa/recommended_kinds.yaml +0 -0
  449. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/compliance_hipaa/severity_rules.yaml +0 -0
  450. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/compliance_iso27001/coverage_matrix.md +0 -0
  451. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/compliance_iso27001/elicit_extend.md +0 -0
  452. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/compliance_iso27001/lexicon.yaml +0 -0
  453. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/compliance_iso27001/manifest.yaml +0 -0
  454. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/compliance_iso27001/recommended_kinds.yaml +0 -0
  455. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/compliance_iso27001/severity_rules.yaml +0 -0
  456. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/compliance_pci_dss_4/coverage_matrix.md +0 -0
  457. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/compliance_pci_dss_4/elicit_extend.md +0 -0
  458. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/compliance_pci_dss_4/lexicon.yaml +0 -0
  459. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/compliance_pci_dss_4/manifest.yaml +0 -0
  460. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/compliance_pci_dss_4/recommended_kinds.yaml +0 -0
  461. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/compliance_pci_dss_4/severity_rules.yaml +0 -0
  462. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/data_aggregation_policies/coverage_matrix.md +0 -0
  463. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/data_aggregation_policies/elicit_extend.md +0 -0
  464. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/data_aggregation_policies/lexicon.yaml +0 -0
  465. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/data_aggregation_policies/manifest.yaml +0 -0
  466. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/data_aggregation_policies/recommended_kinds.yaml +0 -0
  467. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/data_aggregation_policies/severity_rules.yaml +0 -0
  468. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/coverage_matrix.md +0 -0
  469. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/elicit_extend.md +0 -0
  470. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/lexicon.yaml +0 -0
  471. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/manifest.yaml +0 -0
  472. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/recommended_kinds.yaml +0 -0
  473. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/severity_rules.yaml +0 -0
  474. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/data_governance_appi_gdpr/coverage_matrix.md +0 -0
  475. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/data_governance_appi_gdpr/elicit_extend.md +0 -0
  476. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/data_governance_appi_gdpr/lexicon.yaml +0 -0
  477. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/data_governance_appi_gdpr/manifest.yaml +0 -0
  478. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/data_governance_appi_gdpr/recommended_kinds.yaml +0 -0
  479. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/data_governance_appi_gdpr/severity_rules.yaml +0 -0
  480. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/data_nosql_jsonschema/coverage_matrix.md +0 -0
  481. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/data_nosql_jsonschema/elicit_extend.md +0 -0
  482. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/data_nosql_jsonschema/lexicon.yaml +0 -0
  483. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/data_nosql_jsonschema/manifest.yaml +0 -0
  484. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/data_nosql_jsonschema/recommended_kinds.yaml +0 -0
  485. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/data_nosql_jsonschema/severity_rules.yaml +0 -0
  486. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/data_relational_iso_sql/coverage_matrix.md +0 -0
  487. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/data_relational_iso_sql/elicit_extend.md +0 -0
  488. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/data_relational_iso_sql/lexicon.yaml +0 -0
  489. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/data_relational_iso_sql/manifest.yaml +0 -0
  490. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/data_relational_iso_sql/recommended_kinds.yaml +0 -0
  491. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/data_relational_iso_sql/severity_rules.yaml +0 -0
  492. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/ddd_domain_driven_design/coverage_matrix.md +0 -0
  493. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/ddd_domain_driven_design/elicit_extend.md +0 -0
  494. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/ddd_domain_driven_design/lexicon.yaml +0 -0
  495. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/ddd_domain_driven_design/manifest.yaml +0 -0
  496. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/ddd_domain_driven_design/recommended_kinds.yaml +0 -0
  497. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/ddd_domain_driven_design/severity_rules.yaml +0 -0
  498. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/dora_sre_metrics/coverage_matrix.md +0 -0
  499. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/dora_sre_metrics/elicit_extend.md +0 -0
  500. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/dora_sre_metrics/lexicon.yaml +0 -0
  501. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/dora_sre_metrics/manifest.yaml +0 -0
  502. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/dora_sre_metrics/recommended_kinds.yaml +0 -0
  503. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/dora_sre_metrics/severity_rules.yaml +0 -0
  504. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/i18n_unicode_cldr/coverage_matrix.md +0 -0
  505. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/i18n_unicode_cldr/elicit_extend.md +0 -0
  506. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/i18n_unicode_cldr/lexicon.yaml +0 -0
  507. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/i18n_unicode_cldr/manifest.yaml +0 -0
  508. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/i18n_unicode_cldr/recommended_kinds.yaml +0 -0
  509. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/i18n_unicode_cldr/severity_rules.yaml +0 -0
  510. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/ml_model_cards/coverage_matrix.md +0 -0
  511. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/ml_model_cards/elicit_extend.md +0 -0
  512. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/ml_model_cards/lexicon.yaml +0 -0
  513. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/ml_model_cards/manifest.yaml +0 -0
  514. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/ml_model_cards/recommended_kinds.yaml +0 -0
  515. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/ml_model_cards/severity_rules.yaml +0 -0
  516. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/mobile_a11y_native/coverage_matrix.md +0 -0
  517. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/mobile_a11y_native/elicit_extend.md +0 -0
  518. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/mobile_a11y_native/lexicon.yaml +0 -0
  519. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/mobile_a11y_native/manifest.yaml +0 -0
  520. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/mobile_a11y_native/recommended_kinds.yaml +0 -0
  521. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/mobile_a11y_native/severity_rules.yaml +0 -0
  522. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/mobile_android_material3/coverage_matrix.md +0 -0
  523. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/mobile_android_material3/elicit_extend.md +0 -0
  524. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/mobile_android_material3/lexicon.yaml +0 -0
  525. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/mobile_android_material3/manifest.yaml +0 -0
  526. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/mobile_android_material3/recommended_kinds.yaml +0 -0
  527. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/mobile_android_material3/severity_rules.yaml +0 -0
  528. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/mobile_ios_hig/coverage_matrix.md +0 -0
  529. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/mobile_ios_hig/elicit_extend.md +0 -0
  530. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/mobile_ios_hig/lexicon.yaml +0 -0
  531. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/mobile_ios_hig/manifest.yaml +0 -0
  532. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/mobile_ios_hig/recommended_kinds.yaml +0 -0
  533. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/mobile_ios_hig/severity_rules.yaml +0 -0
  534. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/mobile_security_masvs/coverage_matrix.md +0 -0
  535. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/mobile_security_masvs/elicit_extend.md +0 -0
  536. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/mobile_security_masvs/lexicon.yaml +0 -0
  537. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/mobile_security_masvs/manifest.yaml +0 -0
  538. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/mobile_security_masvs/recommended_kinds.yaml +0 -0
  539. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/mobile_security_masvs/severity_rules.yaml +0 -0
  540. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/ops_cicd_pipeline/coverage_matrix.md +0 -0
  541. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/ops_cicd_pipeline/elicit_extend.md +0 -0
  542. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/ops_cicd_pipeline/lexicon.yaml +0 -0
  543. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/ops_cicd_pipeline/manifest.yaml +0 -0
  544. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/ops_cicd_pipeline/recommended_kinds.yaml +0 -0
  545. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/ops_cicd_pipeline/severity_rules.yaml +0 -0
  546. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/ops_iac_terraform/coverage_matrix.md +0 -0
  547. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/ops_iac_terraform/elicit_extend.md +0 -0
  548. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/ops_iac_terraform/lexicon.yaml +0 -0
  549. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/ops_iac_terraform/manifest.yaml +0 -0
  550. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/ops_iac_terraform/recommended_kinds.yaml +0 -0
  551. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/ops_iac_terraform/severity_rules.yaml +0 -0
  552. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/ops_kubernetes/coverage_matrix.md +0 -0
  553. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/ops_kubernetes/elicit_extend.md +0 -0
  554. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/ops_kubernetes/lexicon.yaml +0 -0
  555. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/ops_kubernetes/manifest.yaml +0 -0
  556. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/ops_kubernetes/recommended_kinds.yaml +0 -0
  557. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/ops_kubernetes/severity_rules.yaml +0 -0
  558. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/ops_observability_otel/coverage_matrix.md +0 -0
  559. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/ops_observability_otel/elicit_extend.md +0 -0
  560. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/ops_observability_otel/lexicon.yaml +0 -0
  561. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/ops_observability_otel/manifest.yaml +0 -0
  562. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/ops_observability_otel/recommended_kinds.yaml +0 -0
  563. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/ops_observability_otel/severity_rules.yaml +0 -0
  564. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/process_iso25010/coverage_matrix.md +0 -0
  565. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/process_iso25010/elicit_extend.md +0 -0
  566. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/process_iso25010/lexicon.yaml +0 -0
  567. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/process_iso25010/manifest.yaml +0 -0
  568. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/process_iso25010/recommended_kinds.yaml +0 -0
  569. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/process_iso25010/severity_rules.yaml +0 -0
  570. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/process_test_iso29119/coverage_matrix.md +0 -0
  571. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/process_test_iso29119/elicit_extend.md +0 -0
  572. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/process_test_iso29119/lexicon.yaml +0 -0
  573. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/process_test_iso29119/manifest.yaml +0 -0
  574. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/process_test_iso29119/recommended_kinds.yaml +0 -0
  575. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/process_test_iso29119/severity_rules.yaml +0 -0
  576. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/twelve_factor_app/coverage_matrix.md +0 -0
  577. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/twelve_factor_app/elicit_extend.md +0 -0
  578. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/twelve_factor_app/lexicon.yaml +0 -0
  579. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/twelve_factor_app/manifest.yaml +0 -0
  580. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/twelve_factor_app/recommended_kinds.yaml +0 -0
  581. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/twelve_factor_app/severity_rules.yaml +0 -0
  582. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/coverage_matrix.md +0 -0
  583. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/elicit_extend.md +0 -0
  584. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/lexicon.yaml +0 -0
  585. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/manifest.yaml +0 -0
  586. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/recommended_kinds.yaml +0 -0
  587. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/severity_rules.yaml +0 -0
  588. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/web_authn_webauthn/coverage_matrix.md +0 -0
  589. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/web_authn_webauthn/elicit_extend.md +0 -0
  590. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/web_authn_webauthn/lexicon.yaml +0 -0
  591. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/web_authn_webauthn/manifest.yaml +0 -0
  592. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/web_authn_webauthn/recommended_kinds.yaml +0 -0
  593. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/web_authn_webauthn/severity_rules.yaml +0 -0
  594. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/web_browser_compat/coverage_matrix.md +0 -0
  595. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/web_browser_compat/elicit_extend.md +0 -0
  596. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/web_browser_compat/lexicon.yaml +0 -0
  597. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/web_browser_compat/manifest.yaml +0 -0
  598. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/web_browser_compat/recommended_kinds.yaml +0 -0
  599. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/web_browser_compat/severity_rules.yaml +0 -0
  600. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/web_forms_html5/coverage_matrix.md +0 -0
  601. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/web_forms_html5/elicit_extend.md +0 -0
  602. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/web_forms_html5/lexicon.yaml +0 -0
  603. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/web_forms_html5/manifest.yaml +0 -0
  604. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/web_forms_html5/recommended_kinds.yaml +0 -0
  605. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/web_forms_html5/severity_rules.yaml +0 -0
  606. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/web_performance_core_web_vitals/coverage_matrix.md +0 -0
  607. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/web_performance_core_web_vitals/elicit_extend.md +0 -0
  608. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/web_performance_core_web_vitals/lexicon.yaml +0 -0
  609. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/web_performance_core_web_vitals/manifest.yaml +0 -0
  610. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/web_performance_core_web_vitals/recommended_kinds.yaml +0 -0
  611. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/web_performance_core_web_vitals/severity_rules.yaml +0 -0
  612. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/web_pwa_manifest/coverage_matrix.md +0 -0
  613. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/web_pwa_manifest/elicit_extend.md +0 -0
  614. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/web_pwa_manifest/lexicon.yaml +0 -0
  615. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/web_pwa_manifest/manifest.yaml +0 -0
  616. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/web_pwa_manifest/recommended_kinds.yaml +0 -0
  617. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/web_pwa_manifest/severity_rules.yaml +0 -0
  618. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/web_responsive/coverage_matrix.md +0 -0
  619. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/web_responsive/elicit_extend.md +0 -0
  620. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/web_responsive/lexicon.yaml +0 -0
  621. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/web_responsive/manifest.yaml +0 -0
  622. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/web_responsive/recommended_kinds.yaml +0 -0
  623. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/web_responsive/severity_rules.yaml +0 -0
  624. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/web_security_owasp/coverage_matrix.md +0 -0
  625. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/web_security_owasp/elicit_extend.md +0 -0
  626. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/web_security_owasp/lexicon.yaml +0 -0
  627. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/web_security_owasp/manifest.yaml +0 -0
  628. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/web_security_owasp/recommended_kinds.yaml +0 -0
  629. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/web_security_owasp/severity_rules.yaml +0 -0
  630. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/web_seo_schemaorg/coverage_matrix.md +0 -0
  631. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/web_seo_schemaorg/elicit_extend.md +0 -0
  632. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/web_seo_schemaorg/lexicon.yaml +0 -0
  633. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/web_seo_schemaorg/manifest.yaml +0 -0
  634. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/web_seo_schemaorg/recommended_kinds.yaml +0 -0
  635. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/lexicons/web_seo_schemaorg/severity_rules.yaml +0 -0
  636. {codd_dev-3.26.0 → codd_dev-3.27.0}/codd_plugins/stack_map.yaml +0 -0
  637. {codd_dev-3.26.0 → codd_dev-3.27.0}/docs/cookbook/cdp_browser/README.md +0 -0
  638. {codd_dev-3.26.0 → codd_dev-3.27.0}/docs/cookbook/presentation_aggregation/README.md +0 -0
  639. {codd_dev-3.26.0 → codd_dev-3.27.0}/docs/requirements/README.md +0 -0
  640. {codd_dev-3.26.0 → codd_dev-3.27.0}/examples/README.md +0 -0
  641. {codd_dev-3.26.0 → codd_dev-3.27.0}/skills/codd-assemble/SKILL.md +0 -0
  642. {codd_dev-3.26.0 → codd_dev-3.27.0}/skills/codd-evolve/SKILL.md +0 -0
  643. {codd_dev-3.26.0 → codd_dev-3.27.0}/skills/codd-fable-consult/SKILL.md +0 -0
  644. {codd_dev-3.26.0 → codd_dev-3.27.0}/skills/codd-generate/SKILL.md +0 -0
  645. {codd_dev-3.26.0 → codd_dev-3.27.0}/skills/codd-greenfield/SKILL.md +0 -0
  646. {codd_dev-3.26.0 → codd_dev-3.27.0}/skills/codd-impact/SKILL.md +0 -0
  647. {codd_dev-3.26.0 → codd_dev-3.27.0}/skills/codd-init/SKILL.md +0 -0
  648. {codd_dev-3.26.0 → codd_dev-3.27.0}/skills/codd-propagate/SKILL.md +0 -0
  649. {codd_dev-3.26.0 → codd_dev-3.27.0}/skills/codd-restore/SKILL.md +0 -0
  650. {codd_dev-3.26.0 → codd_dev-3.27.0}/skills/codd-scan/SKILL.md +0 -0
  651. {codd_dev-3.26.0 → codd_dev-3.27.0}/skills/codd-validate/SKILL.md +0 -0
  652. {codd_dev-3.26.0 → codd_dev-3.27.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.26.0
3
+ Version: 3.27.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.26.0"
3
+ __version__ = "3.27.0"
@@ -214,6 +214,37 @@ _CPP_HEADER_NOT_FOUND_CLANG = re.compile(
214
214
  r"^'(?P<header>[^']+)'\s+file not found\b"
215
215
  )
216
216
 
217
+ #: GNU ld's undefined-reference diagnostic — the LINK-time analogue of the
218
+ #: undeclared-symbol family (an implementation artifact fails to DEFINE a symbol
219
+ #: another artifact demands). Two shapes, both anchored on the message tail:
220
+ #: * ``/usr/bin/ld: file.cpp:(.text+0x40): undefined reference to `sym'``
221
+ #: * ``file.cpp:(.text+0x40): undefined reference to `sym'`` (no ld prefix)
222
+ #: The referencing TU (``file.cpp``) and the SYMBOL are captured: the symbol is the
223
+ #: repair-feedback identity (WHAT is missing), the TU the best-available file
224
+ #: attribution (WHO demands it). lld/mold keep the same message tail. Without this
225
+ #: regex a pure link failure had NO parseable diagnostic and collapsed to an opaque
226
+ #: environment_build_error, aborting the repair loop (cpp2 exprcalc dogfood,
227
+ #: 2026-07-11).
228
+ _CPP_LD_UNDEFINED_RE = re.compile(
229
+ r"^(?:\S*ld(?:\.\w+)?:\s*)?"
230
+ r"(?:(?P<path>[^\s:][^:\n]*\.(?:h|hpp|hh|hxx|c|cc|cpp|cxx|cppm|ixx)):\(\S*\):\s*)?"
231
+ r"undefined reference to [`'](?P<symbol>[^']+)'"
232
+ )
233
+
234
+ #: ld's two-line context header (``…/main.cpp.o: in function `main':``) — context
235
+ #: for the positioned undefined-reference that follows, never a diagnostic itself.
236
+ _CPP_LD_CONTEXT_RE = re.compile(
237
+ r"^(?:\S*ld(?:\.\w+)?:\s*)?\S+\.o(?:bj)?:\s*in function\s"
238
+ )
239
+
240
+ #: collect2's sign-off (``collect2: error: ld returned 1 exit status``) — a SUMMARY
241
+ #: epilog after the explicit ld error lines above it. Skipped in PARSING only (the
242
+ #: undefined-reference findings are the authority); deliberately NOT recognized in
243
+ #: the benign-accounting path, so a collect2 line with NO accompanying parsed
244
+ #: diagnostic stays an honest opaque RED (anti-false-green — same reasoning as the
245
+ #: ``ninja:`` note above).
246
+ _CPP_LD_EPILOG_RE = re.compile(r"^collect2:\s*(?:fatal error|error):\s*ld returned")
247
+
217
248
  #: cmake progress / informational chatter that is NOT a failure — the C++ analogue
218
249
  #: of Go's ``# pkg`` headers + ``ok``/``?`` run-summary noise. ``--`` status lines
219
250
  #: (``-- Configuring done``, ``-- Detecting C compiler ...``, ``-- Build files have
@@ -412,6 +443,7 @@ def _parse_cpp_tool_output(
412
443
  """
413
444
  findings: list[ImplementOracleFinding] = []
414
445
  failed_paths: list[str] = []
446
+ seen_ld_refs: set[tuple[str | None, str]] = set()
415
447
 
416
448
  def _add(category: str, code: str, message: str, rel: str | None) -> None:
417
449
  findings.append(
@@ -437,6 +469,28 @@ def _parse_cpp_tool_output(
437
469
  ):
438
470
  continue
439
471
 
472
+ # ld undefined-reference → missing_symbol, deduped per (TU, symbol): ld
473
+ # repeats the same reference once per call site; per-site duplicates add
474
+ # no repair signal. The symbol identity rides the message (feedback).
475
+ ld = _CPP_LD_UNDEFINED_RE.match(line)
476
+ if ld is not None:
477
+ symbol = ld.group("symbol").strip()
478
+ raw_path = ld.group("path")
479
+ rel = _cpp_rel_path(raw_path, project_root) if raw_path else None
480
+ key = (rel, symbol)
481
+ if key not in seen_ld_refs:
482
+ seen_ld_refs.add(key)
483
+ _add(
484
+ EVIDENCE_MISSING_SYMBOL,
485
+ "CPP_LD_UNDEFINED_REFERENCE",
486
+ f"undefined reference to `{symbol}' (link-time; referenced "
487
+ f"from {rel or 'unknown TU'})",
488
+ rel,
489
+ )
490
+ continue
491
+ if _CPP_LD_CONTEXT_RE.match(line) or _CPP_LD_EPILOG_RE.match(line):
492
+ continue # ld context / collect2 epilog — the reference lines above are the authority
493
+
440
494
  m = _CPP_DIAG_LINE.match(line)
441
495
  if m is not None:
442
496
  severity = (m.group("severity") or "").strip().lower()
@@ -139,6 +139,22 @@ _JAVA_ERROR_SUMMARY_RE = re.compile(
139
139
  r"after the errors? )",
140
140
  )
141
141
 
142
+ #: A POSITIONLESS fatal compiler-plugin failure. javac/maven emit it WITHOUT any
143
+ #: ``File.java:`` anchor — canonical shapes:
144
+ #: * ``[ERROR] Failed to execute goal …maven-compiler-plugin…: Fatal error
145
+ #: compiling: error: release version 21 not supported -> [Help 1]``
146
+ #: * ``[ERROR] Fatal error compiling: error: invalid target release: 21``
147
+ #: The tail after ``Fatal error compiling:`` is the authoritative message (the
148
+ #: trailing ``-> [Help N]`` pointer is stripped). Without this catch the whole run
149
+ #: had NO parseable diagnostic — the ``Failed to execute goal`` wrapper is
150
+ #: summary-echo noise — and collapsed to an opaque environment_build_error that
151
+ #: aborts the repair loop (java2 exprcalc dogfood, 2026-07-11). The C# adapter's
152
+ #: positionless ``error CS####`` catch (``_CS_DIAG_NO_POS``) is the parity
153
+ #: precedent for a positionless first-class diagnostic.
154
+ _JAVA_FATAL_COMPILING_RE = re.compile(
155
+ r"\bFatal error compiling:\s*(?P<message>.+?)\s*(?:->\s*\[Help[^\]]*\]?\s*)?$"
156
+ )
157
+
142
158
 
143
159
  # ── pure helpers ─────────────────────────────────────────────────────────────
144
160
 
@@ -209,12 +225,31 @@ def _parse_java_tool_output(
209
225
  """
210
226
  findings: list[ImplementOracleFinding] = []
211
227
  failed_paths: list[str] = []
228
+ seen_fatal: set[str] = set()
212
229
  for raw_line in (output or "").splitlines():
213
230
  line = raw_line.rstrip()
214
231
  if not line.strip():
215
232
  continue
216
233
  matched = _match_java_diagnostic(line)
217
234
  if matched is None:
235
+ # A positionless ``Fatal error compiling: …`` (toolchain-level compile
236
+ # failure, e.g. a --release the installed JDK cannot satisfy) is a
237
+ # first-class diagnostic even without a File.java anchor. Deduped by
238
+ # message: maven prints the same fatal in both the Failed-to-execute-
239
+ # goal wrapper and the bare echo form.
240
+ fatal = _JAVA_FATAL_COMPILING_RE.search(line)
241
+ if fatal is not None:
242
+ message = fatal.group("message").strip()
243
+ if message not in seen_fatal:
244
+ seen_fatal.add(message)
245
+ findings.append(
246
+ ImplementOracleFinding(
247
+ category=EVIDENCE_OTHER,
248
+ code="JAVA_FATAL_COMPILING",
249
+ message=f"[{tool}] Fatal error compiling: {message}",
250
+ path=None,
251
+ )
252
+ )
218
253
  continue
219
254
  path_raw, message = matched
220
255
  category, code = _classify_java_diagnostic(message)
@@ -282,6 +282,20 @@ scaffold:
282
282
  compiler_plugin_version: "3.13.0"
283
283
  build_helper_plugin_version: "3.6.0"
284
284
 
285
+ # Host-toolchain version clamp — the environment-continuation projection of
286
+ # toolchain materialization (v3.15.0 lineage) applied to scaffold DEFAULTS: a
287
+ # declared toolchain level must never EXCEED what the host provides, or the
288
+ # scaffolded pom demands a --release the installed JDK cannot satisfy and the
289
+ # implement oracle reds on "Fatal error compiling: error: release version N
290
+ # not supported" (java2 exprcalc dogfood, 2026-07-11). The probe runs once at
291
+ # scaffold time; min semantics (declared 21 + host 17 → 17; declared 11 +
292
+ # host 17 → 11); probe failure keeps the declared value (fail-open).
293
+ # CONTENT-only: clamped variables must never appear in a template `path`.
294
+ host_version_clamps:
295
+ java_version:
296
+ probe_argv: ["javac", "-version"]
297
+ version_pattern: '(\d+)'
298
+
285
299
  templates:
286
300
  # Single pom.xml: Java's package_root.kind=none means there is no C#-style
287
301
  # nested lib/test project split to enforce deliverable purity. Maven's own
@@ -27,6 +27,7 @@ from __future__ import annotations
27
27
  import dataclasses
28
28
  import json
29
29
  import os
30
+ import re
30
31
  import subprocess
31
32
  import sys
32
33
  from collections.abc import Callable, Mapping
@@ -2807,6 +2808,96 @@ def _generic_template_substitutions(
2807
2808
  return subst
2808
2809
 
2809
2810
 
2811
+ def _probe_host_toolchain_version(argv: tuple[str, ...], pattern: str) -> int | None:
2812
+ """Best-effort host-toolchain MAJOR-version probe (``javac -version`` → ``17``).
2813
+
2814
+ Runs the profile-declared probe argv (10s timeout), searches ``pattern``
2815
+ (first group = the major) across stdout+stderr (``javac -version`` printed to
2816
+ stderr before JDK 9, stdout after), and returns the integer major — or
2817
+ ``None`` on ANY failure (missing binary, timeout, no match, non-integer
2818
+ group). The caller treats ``None`` as "keep the declared default"
2819
+ (fail-open): the probe can only ever LOWER a doomed default, never introduce
2820
+ a new failure mode.
2821
+ """
2822
+ try:
2823
+ proc = subprocess.run(
2824
+ list(argv), capture_output=True, text=True, timeout=10, check=False
2825
+ )
2826
+ except (OSError, subprocess.SubprocessError):
2827
+ return None
2828
+ match = re.search(pattern, f"{proc.stdout}\n{proc.stderr}")
2829
+ if match is None:
2830
+ return None
2831
+ try:
2832
+ return int(match.group(1))
2833
+ except (IndexError, ValueError):
2834
+ return None
2835
+
2836
+
2837
+ def _generic_template_host_clamps(
2838
+ language: str | None,
2839
+ ) -> dict[str, Mapping[str, Any]]:
2840
+ """The profile's ``scaffold.host_version_clamps`` mapping (raw view), or ``{}``.
2841
+
2842
+ Read from ``raw`` like ``scaffold.defaults`` (the ScaffoldSpec dataclass
2843
+ models only adapter/owned_files/templates; ``raw`` is the documented
2844
+ later-phase escape hatch).
2845
+ """
2846
+ lang_profile = _resolve_kernel_language_profile(language)
2847
+ raw = getattr(lang_profile, "raw", None) if lang_profile is not None else None
2848
+ if isinstance(raw, Mapping):
2849
+ raw_scaffold = raw.get("scaffold")
2850
+ if isinstance(raw_scaffold, Mapping):
2851
+ clamps = raw_scaffold.get("host_version_clamps")
2852
+ if isinstance(clamps, Mapping):
2853
+ return {
2854
+ str(k): v for k, v in clamps.items() if isinstance(v, Mapping)
2855
+ }
2856
+ return {}
2857
+
2858
+
2859
+ def _resolve_host_clamped_defaults(
2860
+ defaults: Mapping[str, str], clamps: Mapping[str, Mapping[str, Any]]
2861
+ ) -> tuple[dict[str, str], list[str]]:
2862
+ """Clamp scaffold DEFAULTS to the host toolchain — the environment-continuation
2863
+ projection of toolchain materialization (v3.15.0 lineage) applied to the
2864
+ generic-template scaffold's substitution variables.
2865
+
2866
+ For each profile-declared clamp key: probe the host (profile-declared
2867
+ argv+pattern); when the probed major is LOWER than the declared default's
2868
+ leading integer, replace the default with the probed major (min semantics —
2869
+ a declared ``21`` on a JDK-17 host scaffolds ``17``; a declared ``11`` on a
2870
+ JDK-17 host stays ``11``). A probe failure or a non-numeric declared value
2871
+ keeps the declared default (fail-open). Returns ``(resolved defaults,
2872
+ human-readable clamp notes)`` — the notes ride the scaffold detail so a
2873
+ clamp is never silent. CONTENT-only: the harness-owned PATH declaration
2874
+ (:meth:`LayoutProfile.harness_owned_scaffold_paths`) substitutes UNCLAMPED
2875
+ defaults, so a clamped variable must never appear in a template ``path``.
2876
+ """
2877
+ out = dict(defaults)
2878
+ notes: list[str] = []
2879
+ for key, spec in (clamps or {}).items():
2880
+ declared = out.get(key)
2881
+ if declared is None:
2882
+ continue
2883
+ declared_match = re.match(r"\s*(\d+)", str(declared))
2884
+ if declared_match is None:
2885
+ continue # non-numeric default → this clamp cannot reason about it
2886
+ declared_major = int(declared_match.group(1))
2887
+ argv = tuple(str(a) for a in (spec.get("probe_argv") or ()) if str(a).strip())
2888
+ if not argv:
2889
+ continue
2890
+ pattern = str(spec.get("version_pattern") or r"(\d+)")
2891
+ probed = _probe_host_toolchain_version(argv, pattern)
2892
+ if probed is None or probed >= declared_major:
2893
+ continue
2894
+ out[key] = str(probed)
2895
+ notes.append(
2896
+ f"host-clamped {key} {declared}→{probed} (probe: {' '.join(argv)})"
2897
+ )
2898
+ return out, notes
2899
+
2900
+
2810
2901
  def _apply_template_substitutions(text: str, subst: Mapping[str, str]) -> str:
2811
2902
  """Replace each ``{key}`` token with its value (replace-based, NOT ``str.format`` — so
2812
2903
  a template's literal braces never raise; mirrors the oracle gate's ``{package_name}``
@@ -2862,6 +2953,9 @@ def _scaffold_generic_template(
2862
2953
  code branch — a new generic-template stack is one YAML profile + the opt-in key.
2863
2954
  """
2864
2955
  templates, defaults, _owned = spec
2956
+ defaults, clamp_notes = _resolve_host_clamped_defaults(
2957
+ defaults, _generic_template_host_clamps(profile.language)
2958
+ )
2865
2959
  subst = _generic_template_substitutions(profile, defaults)
2866
2960
  created: list[str] = []
2867
2961
  skipped: list[str] = []
@@ -2891,6 +2985,8 @@ def _scaffold_generic_template(
2891
2985
  f"generic-template: {len(created)} created, {len(skipped)} skipped "
2892
2986
  f"(package={profile.package_name})"
2893
2987
  )
2988
+ if clamp_notes:
2989
+ detail += "; " + "; ".join(clamp_notes)
2894
2990
  return ScaffoldResult(
2895
2991
  language=profile.language,
2896
2992
  created=tuple(created),
@@ -3488,8 +3488,19 @@ _CSHARP_SKIP_ARG_RE = re.compile(r"\bSkip\s*=")
3488
3488
  #: ``(?<![A-Za-z0-9_.])`` so a member access ``foo.Assert.X`` (an unrelated SUT
3489
3489
  #: type that happens to expose an ``Assert`` member) does not masquerade as the
3490
3490
  #: framework's static ``Assert``.
3491
+ #: Optional generic type-argument list between the method name and ``(`` —
3492
+ #: ``Assert.IsType<ParseError>(x)``, ``Assert.Throws<T>(() => …)``, nested up to
3493
+ #: depth 3 (``Assert.IsType<Dictionary<string, List<int>>>(x)``). ``;{}`` are
3494
+ #: excluded so a malformed ``<`` can never swallow past a statement boundary.
3495
+ #: Without this, generic-only asserts were reported as "test with NO assertion"
3496
+ #: (false-RED observed on the csharp exprcalc greenfield dogfood, 2026-07-11).
3497
+ _CSHARP_GENERIC_ARGS = (
3498
+ r"<[^<>;{}]*(?:<[^<>;{}]*(?:<[^<>;{}]*>[^<>;{}]*)*>[^<>;{}]*)*>"
3499
+ )
3491
3500
  _CSHARP_ASSERT_CALL_RE = re.compile(
3492
- r"(?<![A-Za-z0-9_.])Assert\.[A-Z][A-Za-z0-9_]*\s*\("
3501
+ r"(?<![A-Za-z0-9_.])Assert\.[A-Z][A-Za-z0-9_]*\s*(?:"
3502
+ + _CSHARP_GENERIC_ARGS
3503
+ + r")?\s*\("
3493
3504
  )
3494
3505
 
3495
3506
 
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "codd-dev"
7
- version = "3.26.0"
7
+ version = "3.27.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