codd-dev 2.38.0__tar.gz → 2.40.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 (579) hide show
  1. {codd_dev-2.38.0 → codd_dev-2.40.0}/PKG-INFO +1 -1
  2. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/__init__.py +1 -1
  3. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/contracts_registry/registry.py +46 -49
  4. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/coverage_execution_coherence.py +57 -3
  5. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/greenfield/pipeline.py +9 -3
  6. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/vb_marker_authenticity.py +41 -3
  7. {codd_dev-2.38.0 → codd_dev-2.40.0}/pyproject.toml +1 -1
  8. {codd_dev-2.38.0 → codd_dev-2.40.0}/.gitignore +0 -0
  9. {codd_dev-2.38.0 → codd_dev-2.40.0}/LICENSE +0 -0
  10. {codd_dev-2.38.0 → codd_dev-2.40.0}/README.md +0 -0
  11. {codd_dev-2.38.0 → codd_dev-2.40.0}/bench_fixture/README.md +0 -0
  12. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/__main__.py +0 -0
  13. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/_git_helper.py +0 -0
  14. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/action_outcome.py +0 -0
  15. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/ai_invoke.py +0 -0
  16. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/ai_patch.py +0 -0
  17. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/artifact_contract.py +0 -0
  18. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/artifact_ids.py +0 -0
  19. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/artifacts/catalog.yaml +0 -0
  20. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/ask_user_question_adapter.py +0 -0
  21. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/assembler.py +0 -0
  22. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/bridge.py +0 -0
  23. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/brownfield/__init__.py +0 -0
  24. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/brownfield/pipeline.py +0 -0
  25. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/capability_completeness.py +0 -0
  26. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/claude_cli.py +0 -0
  27. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/cli.py +0 -0
  28. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/clustering.py +0 -0
  29. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/coherence_adapters.py +0 -0
  30. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/coherence_engine.py +0 -0
  31. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/confidence.py +0 -0
  32. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/config.py +0 -0
  33. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/config_schema.py +0 -0
  34. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/contracts.py +0 -0
  35. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/contracts_registry/__init__.py +0 -0
  36. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/contracts_registry/__main__.py +0 -0
  37. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/contracts_registry/certify.py +0 -0
  38. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/contracts_registry/generate_matrix.py +0 -0
  39. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/coverage_auditor.py +0 -0
  40. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/coverage_metrics.py +0 -0
  41. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/dag/__init__.py +0 -0
  42. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/dag/auto_repair.py +0 -0
  43. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/dag/builder.py +0 -0
  44. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/dag/checks/__init__.py +0 -0
  45. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/dag/checks/_one_to_many_detection.py +0 -0
  46. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/dag/checks/artifact_contract_check.py +0 -0
  47. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/dag/checks/ci_health.py +0 -0
  48. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/dag/checks/dependency_freshness.py +0 -0
  49. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/dag/checks/depends_on_consistency.py +0 -0
  50. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/dag/checks/deployment_completeness.py +0 -0
  51. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/dag/checks/edge_validity.py +0 -0
  52. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/dag/checks/environment_coverage.py +0 -0
  53. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/dag/checks/implementation_coverage.py +0 -0
  54. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/dag/checks/node_completeness.py +0 -0
  55. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/dag/checks/opt_out.py +0 -0
  56. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/dag/checks/task_completion.py +0 -0
  57. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/dag/checks/transitive_closure.py +0 -0
  58. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/dag/checks/ui_coherence.py +0 -0
  59. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/dag/checks/user_journey_coherence.py +0 -0
  60. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/dag/coverage_axes.py +0 -0
  61. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/dag/defaults/cli.yaml +0 -0
  62. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/dag/defaults/cpp_embedded.yaml +0 -0
  63. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/dag/defaults/csharp.yaml +0 -0
  64. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/dag/defaults/elixir.yaml +0 -0
  65. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/dag/defaults/generic.yaml +0 -0
  66. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/dag/defaults/iot.yaml +0 -0
  67. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/dag/defaults/java.yaml +0 -0
  68. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/dag/defaults/kotlin.yaml +0 -0
  69. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/dag/defaults/mobile.yaml +0 -0
  70. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/dag/defaults/ruby.yaml +0 -0
  71. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/dag/defaults/rust.yaml +0 -0
  72. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/dag/defaults/scala.yaml +0 -0
  73. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/dag/defaults/swift.yaml +0 -0
  74. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/dag/defaults/test_frameworks.yaml +0 -0
  75. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/dag/defaults/web.yaml +0 -0
  76. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/dag/extractor.py +0 -0
  77. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/dag/impact.py +0 -0
  78. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/dag/runner.py +0 -0
  79. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/defaults.py +0 -0
  80. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/defaults.yaml +0 -0
  81. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/dependency_lock_coherence.py +0 -0
  82. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/deploy_targets/__init__.py +0 -0
  83. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/deploy_targets/app_service.py +0 -0
  84. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/deploy_targets/base.py +0 -0
  85. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/deploy_targets/docker_compose.py +0 -0
  86. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/deployer.py +0 -0
  87. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/deployment/__init__.py +0 -0
  88. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/deployment/checks/__init__.py +0 -0
  89. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/deployment/defaults/deploy_targets.yaml +0 -0
  90. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/deployment/defaults/runtime_capability_inference.yaml +0 -0
  91. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/deployment/defaults/schema_providers.yaml +0 -0
  92. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/deployment/defaults/verification_templates.yaml +0 -0
  93. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/deployment/extractor.py +0 -0
  94. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/deployment/providers/__init__.py +0 -0
  95. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/deployment/providers/ai_command.py +0 -0
  96. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/deployment/providers/ai_command_factory.py +0 -0
  97. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/deployment/providers/codex_app_server.py +0 -0
  98. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/deployment/providers/llm_consideration.py +0 -0
  99. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/deployment/providers/schema/__init__.py +0 -0
  100. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/deployment/providers/schema/prisma.py +0 -0
  101. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/deployment/providers/target/__init__.py +0 -0
  102. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/deployment/providers/target/docker_compose.py +0 -0
  103. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/deployment/providers/verification/__init__.py +0 -0
  104. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/deployment/providers/verification/assertion_handlers.py +0 -0
  105. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/deployment/providers/verification/cdp_browser.py +0 -0
  106. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/deployment/providers/verification/cdp_engines.py +0 -0
  107. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/deployment/providers/verification/cdp_launchers.py +0 -0
  108. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/deployment/providers/verification/cdp_wire.py +0 -0
  109. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/deployment/providers/verification/curl.py +0 -0
  110. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/deployment/providers/verification/form_strategies.py +0 -0
  111. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/deployment/providers/verification/means_catalog.py +0 -0
  112. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/deployment/providers/verification/playwright.py +0 -0
  113. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/deployment/providers/verification/vitest.py +0 -0
  114. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/design_md.py +0 -0
  115. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/diff/__init__.py +0 -0
  116. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/diff/apply.py +0 -0
  117. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/diff/engine.py +0 -0
  118. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/diff/persistence.py +0 -0
  119. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/diff/templates/diff_prompt.md +0 -0
  120. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/discovery.py +0 -0
  121. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/drift.py +0 -0
  122. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/e2e_contract_coherence.py +0 -0
  123. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/e2e_extractor.py +0 -0
  124. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/e2e_generator.py +0 -0
  125. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/e2e_runner.py +0 -0
  126. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/elicit/__init__.py +0 -0
  127. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/elicit/apply.py +0 -0
  128. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/elicit/engine.py +0 -0
  129. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/elicit/finding.py +0 -0
  130. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/elicit/formatters/__init__.py +0 -0
  131. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/elicit/formatters/base.py +0 -0
  132. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/elicit/formatters/interactive.py +0 -0
  133. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/elicit/formatters/json_fmt.py +0 -0
  134. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/elicit/formatters/md.py +0 -0
  135. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/elicit/lexicon_loader.py +0 -0
  136. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/elicit/persistence.py +0 -0
  137. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/elicit/templates/elicit_prompt_L0.md +0 -0
  138. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/env_refs.py +0 -0
  139. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/extract_ai.py +0 -0
  140. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/extract_paths.py +0 -0
  141. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/extractor.py +0 -0
  142. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/fix/__init__.py +0 -0
  143. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/fix/candidate_selector.py +0 -0
  144. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/fix/design_updater.py +0 -0
  145. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/fix/impl_propagation.py +0 -0
  146. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/fix/interactive_prompt.py +0 -0
  147. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/fix/phenomenon_fixer.py +0 -0
  148. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/fix/phenomenon_parser.py +0 -0
  149. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/fix/risk_classifier.py +0 -0
  150. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/fix/templates/clarification_question.txt +0 -0
  151. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/fix/templates/design_update.txt +0 -0
  152. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/fix/templates/impl_update.txt +0 -0
  153. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/fix/templates/phenomenon_parse.txt +0 -0
  154. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/fix/templates/risk_assessment.txt +0 -0
  155. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/fix/templates_loader.py +0 -0
  156. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/fixer.py +0 -0
  157. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/fixup_drift.py +0 -0
  158. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/fixup_drift_strategies/__init__.py +0 -0
  159. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/fixup_drift_strategies/design_token_drift.py +0 -0
  160. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/fixup_drift_strategies/lexicon_violation.py +0 -0
  161. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/fixup_drift_strategies/url_drift.py +0 -0
  162. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/frontmatter.py +0 -0
  163. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/generator.py +0 -0
  164. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/git_evidence.py +0 -0
  165. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/graph.py +0 -0
  166. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/greenfield/__init__.py +0 -0
  167. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/hitl_session.py +0 -0
  168. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/hooks/__init__.py +0 -0
  169. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/hooks/pre-commit +0 -0
  170. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/hooks/recipes/claude_requirements_nudge.json +0 -0
  171. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/hooks/recipes/claude_settings_example.json +0 -0
  172. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/hooks/recipes/codex_hook.sh +0 -0
  173. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/hooks/recipes/git_post_commit.sh +0 -0
  174. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/hooks/recipes/git_pre_commit.sh +0 -0
  175. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/iac_nfr.py +0 -0
  176. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/implement_oracle.py +0 -0
  177. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/implement_oracle_scope.py +0 -0
  178. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/implementer/__init__.py +0 -0
  179. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/implementer/chunked_runner.py +0 -0
  180. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/implementer/typecheck_loop.py +0 -0
  181. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/implementer.py +0 -0
  182. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/import_coherence.py +0 -0
  183. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/inheritance.py +0 -0
  184. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/init/__init__.py +0 -0
  185. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/init/lexicon_suggest.py +0 -0
  186. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/init/llm_lexicon_suggester.py +0 -0
  187. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/init/stack_detector.py +0 -0
  188. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/knowledge_fetcher.py +0 -0
  189. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/lexicon.py +0 -0
  190. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/lexicon_cli/__init__.py +0 -0
  191. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/lexicon_cli/formatters/__init__.py +0 -0
  192. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/lexicon_cli/formatters/html.py +0 -0
  193. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/lexicon_cli/formatters/json_fmt.py +0 -0
  194. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/lexicon_cli/formatters/md.py +0 -0
  195. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/lexicon_cli/inspector.py +0 -0
  196. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/lexicon_cli/manager.py +0 -0
  197. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/lexicon_cli/reporter.py +0 -0
  198. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/lexicon_cli/threshold.py +0 -0
  199. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/llm/__init__.py +0 -0
  200. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/llm/approval.py +0 -0
  201. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/llm/best_practice_augmenter.py +0 -0
  202. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/llm/criteria_expander.py +0 -0
  203. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/llm/design_doc_extractor.py +0 -0
  204. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/llm/impl_step_deriver.py +0 -0
  205. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/llm/means_catalog_loader.py +0 -0
  206. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/llm/parser.py +0 -0
  207. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/llm/plan_deriver.py +0 -0
  208. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/llm/prompt_builder.py +0 -0
  209. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/llm/strategy_validator.py +0 -0
  210. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/llm/templates/best_practice_augment_meta.md +0 -0
  211. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/llm/templates/criteria_expand_meta.md +0 -0
  212. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/llm/templates/design_doc_extract_meta.md +0 -0
  213. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/llm/templates/impl_step_derive_meta.md +0 -0
  214. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/llm/templates/implementation_step_catalog.yaml +0 -0
  215. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/llm/templates/meta_instruction.md +0 -0
  216. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/llm/templates/plan_derive_meta.md +0 -0
  217. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/llm/templates/verification_means_catalog.yaml +0 -0
  218. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/mcp_server.py +0 -0
  219. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/measure.py +0 -0
  220. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/operational_e2e_audit.py +0 -0
  221. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/operations_derive.py +0 -0
  222. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/parsing/__init__.py +0 -0
  223. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/parsing/_shared.py +0 -0
  224. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/parsing/api_specs.py +0 -0
  225. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/parsing/filesystem_routes.py +0 -0
  226. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/parsing/iac.py +0 -0
  227. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/parsing/python_ast.py +0 -0
  228. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/parsing/schemas.py +0 -0
  229. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/parsing/tests_builddeps.py +0 -0
  230. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/parsing/treesitter.py +0 -0
  231. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/planner.py +0 -0
  232. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/policy.py +0 -0
  233. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/preflight/__init__.py +0 -0
  234. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/preflight/defaults/cli.yaml +0 -0
  235. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/preflight/defaults/generic.yaml +0 -0
  236. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/preflight/defaults/iot.yaml +0 -0
  237. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/preflight/defaults/mobile.yaml +0 -0
  238. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/preflight/defaults/web.yaml +0 -0
  239. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/project_types.py +0 -0
  240. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/propagate.py +0 -0
  241. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/propagation_common.py +0 -0
  242. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/propagator.py +0 -0
  243. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/reconciliation_ledger.py +0 -0
  244. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/reference_resolution.py +0 -0
  245. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/registry.py +0 -0
  246. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/repair/__init__.py +0 -0
  247. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/repair/approval_repair.py +0 -0
  248. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/repair/auto_scope_guard.py +0 -0
  249. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/repair/engine.py +0 -0
  250. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/repair/git_patcher.py +0 -0
  251. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/repair/history.py +0 -0
  252. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/repair/llm_repair_engine.py +0 -0
  253. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/repair/loop.py +0 -0
  254. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/repair/primary_picker.py +0 -0
  255. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/repair/proof_breaks.py +0 -0
  256. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/repair/repair_result.py +0 -0
  257. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/repair/repairability_classifier.py +0 -0
  258. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/repair/schema.py +0 -0
  259. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/repair/templates/analyze_meta.md +0 -0
  260. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/repair/templates/propose_meta.md +0 -0
  261. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/repair/templates/repair_strategy_meta.md +0 -0
  262. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/repair/templates/repairability_meta.md +0 -0
  263. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/repair/test_failure_attribution.py +0 -0
  264. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/repair/verify_runner.py +0 -0
  265. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/repair_slice.py +0 -0
  266. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/require.py +0 -0
  267. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/require_plugins.py +0 -0
  268. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/require_propagate.py +0 -0
  269. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/required_artifacts/defaults/cli.yaml +0 -0
  270. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/required_artifacts/defaults/generic.yaml +0 -0
  271. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/required_artifacts/defaults/iot.yaml +0 -0
  272. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/required_artifacts/defaults/mobile.yaml +0 -0
  273. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/required_artifacts/defaults/web.yaml +0 -0
  274. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/required_artifacts_deriver.py +0 -0
  275. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/requirement_completeness/defaults/cli.yaml +0 -0
  276. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/requirement_completeness/defaults/generic.yaml +0 -0
  277. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/requirement_completeness/defaults/iot.yaml +0 -0
  278. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/requirement_completeness/defaults/mobile.yaml +0 -0
  279. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/requirement_completeness/defaults/web.yaml +0 -0
  280. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/requirement_completeness_auditor.py +0 -0
  281. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/requirement_reconciliation.py +0 -0
  282. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/requirements_meta.py +0 -0
  283. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/restoration_report.py +0 -0
  284. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/restore.py +0 -0
  285. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/routes_extractor.py +0 -0
  286. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/runtime_smoke/__init__.py +0 -0
  287. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/runtime_smoke/checks.py +0 -0
  288. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/runtime_smoke/config.py +0 -0
  289. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/runtime_smoke/report.py +0 -0
  290. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/runtime_smoke/runner.py +0 -0
  291. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/scanner.py +0 -0
  292. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/schema_refs.py +0 -0
  293. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/screen_flow_validator.py +0 -0
  294. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/screen_transition_extractor.py +0 -0
  295. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/screen_transitions/defaults.yaml +0 -0
  296. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/skills_cli/__init__.py +0 -0
  297. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/skills_cli/discovery.py +0 -0
  298. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/skills_cli/manager.py +0 -0
  299. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/skills_cli/paths.py +0 -0
  300. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/surface_reconciliation.py +0 -0
  301. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/synth.py +0 -0
  302. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/templates/codd.yaml.tmpl +0 -0
  303. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/templates/conventions.yaml.tmpl +0 -0
  304. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/templates/data_dependencies.yaml.tmpl +0 -0
  305. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/templates/doc_links.yaml.tmpl +0 -0
  306. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/templates/extract_ai_prompt_baseline.md +0 -0
  307. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/templates/extracted/api-contract.md.j2 +0 -0
  308. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/templates/extracted/architecture-overview.md.j2 +0 -0
  309. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/templates/extracted/module-detail.md.j2 +0 -0
  310. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/templates/extracted/schema-design.md.j2 +0 -0
  311. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/templates/extracted/system-context.md.j2 +0 -0
  312. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/templates/gitignore.tmpl +0 -0
  313. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/templates/lexicon_questions.md +0 -0
  314. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/templates/lexicon_schema.yaml +0 -0
  315. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/templates/overrides.yaml.tmpl +0 -0
  316. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/test_detection.py +0 -0
  317. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/test_import_coherence.py +0 -0
  318. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/traceability.py +0 -0
  319. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/validator.py +0 -0
  320. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/vb_rerun_scope.py +0 -0
  321. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/verifiable_behavior_audit.py +0 -0
  322. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/watch/__init__.py +0 -0
  323. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/watch/events.py +0 -0
  324. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/watch/propagation_log.py +0 -0
  325. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/watch/propagation_pipeline.py +0 -0
  326. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/watch/test_runner.py +0 -0
  327. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/watch/watcher.py +0 -0
  328. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd/wiring.py +0 -0
  329. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/ai_governance_eu_act/coverage_matrix.md +0 -0
  330. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/ai_governance_eu_act/elicit_extend.md +0 -0
  331. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/ai_governance_eu_act/lexicon.yaml +0 -0
  332. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/ai_governance_eu_act/manifest.yaml +0 -0
  333. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/ai_governance_eu_act/recommended_kinds.yaml +0 -0
  334. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/ai_governance_eu_act/severity_rules.yaml +0 -0
  335. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/api_rate_limiting_caching/coverage_matrix.md +0 -0
  336. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/api_rate_limiting_caching/elicit_extend.md +0 -0
  337. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/api_rate_limiting_caching/lexicon.yaml +0 -0
  338. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/api_rate_limiting_caching/manifest.yaml +0 -0
  339. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/api_rate_limiting_caching/recommended_kinds.yaml +0 -0
  340. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/api_rate_limiting_caching/severity_rules.yaml +0 -0
  341. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/api_rest_openapi/coverage_matrix.md +0 -0
  342. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/api_rest_openapi/elicit_extend.md +0 -0
  343. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/api_rest_openapi/lexicon.yaml +0 -0
  344. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/api_rest_openapi/manifest.yaml +0 -0
  345. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/api_rest_openapi/recommended_kinds.yaml +0 -0
  346. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/api_rest_openapi/severity_rules.yaml +0 -0
  347. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/babok/elicit_extend.md +0 -0
  348. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/babok/lexicon.yaml +0 -0
  349. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/babok/manifest.yaml +0 -0
  350. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/babok/recommended_kinds.yaml +0 -0
  351. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/babok/severity_rules.yaml +0 -0
  352. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/backend_event_cloudevents/coverage_matrix.md +0 -0
  353. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/backend_event_cloudevents/elicit_extend.md +0 -0
  354. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/backend_event_cloudevents/lexicon.yaml +0 -0
  355. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/backend_event_cloudevents/manifest.yaml +0 -0
  356. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/backend_event_cloudevents/recommended_kinds.yaml +0 -0
  357. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/backend_event_cloudevents/severity_rules.yaml +0 -0
  358. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/backend_graphql/coverage_matrix.md +0 -0
  359. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/backend_graphql/elicit_extend.md +0 -0
  360. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/backend_graphql/lexicon.yaml +0 -0
  361. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/backend_graphql/manifest.yaml +0 -0
  362. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/backend_graphql/recommended_kinds.yaml +0 -0
  363. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/backend_graphql/severity_rules.yaml +0 -0
  364. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/backend_grpc_proto/coverage_matrix.md +0 -0
  365. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/backend_grpc_proto/elicit_extend.md +0 -0
  366. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/backend_grpc_proto/lexicon.yaml +0 -0
  367. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/backend_grpc_proto/manifest.yaml +0 -0
  368. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/backend_grpc_proto/recommended_kinds.yaml +0 -0
  369. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/backend_grpc_proto/severity_rules.yaml +0 -0
  370. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/compliance_hipaa/coverage_matrix.md +0 -0
  371. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/compliance_hipaa/elicit_extend.md +0 -0
  372. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/compliance_hipaa/lexicon.yaml +0 -0
  373. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/compliance_hipaa/manifest.yaml +0 -0
  374. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/compliance_hipaa/recommended_kinds.yaml +0 -0
  375. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/compliance_hipaa/severity_rules.yaml +0 -0
  376. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/compliance_iso27001/coverage_matrix.md +0 -0
  377. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/compliance_iso27001/elicit_extend.md +0 -0
  378. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/compliance_iso27001/lexicon.yaml +0 -0
  379. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/compliance_iso27001/manifest.yaml +0 -0
  380. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/compliance_iso27001/recommended_kinds.yaml +0 -0
  381. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/compliance_iso27001/severity_rules.yaml +0 -0
  382. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/compliance_pci_dss_4/coverage_matrix.md +0 -0
  383. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/compliance_pci_dss_4/elicit_extend.md +0 -0
  384. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/compliance_pci_dss_4/lexicon.yaml +0 -0
  385. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/compliance_pci_dss_4/manifest.yaml +0 -0
  386. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/compliance_pci_dss_4/recommended_kinds.yaml +0 -0
  387. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/compliance_pci_dss_4/severity_rules.yaml +0 -0
  388. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/data_aggregation_policies/coverage_matrix.md +0 -0
  389. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/data_aggregation_policies/elicit_extend.md +0 -0
  390. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/data_aggregation_policies/lexicon.yaml +0 -0
  391. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/data_aggregation_policies/manifest.yaml +0 -0
  392. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/data_aggregation_policies/recommended_kinds.yaml +0 -0
  393. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/data_aggregation_policies/severity_rules.yaml +0 -0
  394. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/coverage_matrix.md +0 -0
  395. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/elicit_extend.md +0 -0
  396. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/lexicon.yaml +0 -0
  397. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/manifest.yaml +0 -0
  398. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/recommended_kinds.yaml +0 -0
  399. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/severity_rules.yaml +0 -0
  400. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/data_governance_appi_gdpr/coverage_matrix.md +0 -0
  401. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/data_governance_appi_gdpr/elicit_extend.md +0 -0
  402. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/data_governance_appi_gdpr/lexicon.yaml +0 -0
  403. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/data_governance_appi_gdpr/manifest.yaml +0 -0
  404. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/data_governance_appi_gdpr/recommended_kinds.yaml +0 -0
  405. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/data_governance_appi_gdpr/severity_rules.yaml +0 -0
  406. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/data_nosql_jsonschema/coverage_matrix.md +0 -0
  407. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/data_nosql_jsonschema/elicit_extend.md +0 -0
  408. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/data_nosql_jsonschema/lexicon.yaml +0 -0
  409. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/data_nosql_jsonschema/manifest.yaml +0 -0
  410. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/data_nosql_jsonschema/recommended_kinds.yaml +0 -0
  411. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/data_nosql_jsonschema/severity_rules.yaml +0 -0
  412. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/data_relational_iso_sql/coverage_matrix.md +0 -0
  413. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/data_relational_iso_sql/elicit_extend.md +0 -0
  414. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/data_relational_iso_sql/lexicon.yaml +0 -0
  415. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/data_relational_iso_sql/manifest.yaml +0 -0
  416. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/data_relational_iso_sql/recommended_kinds.yaml +0 -0
  417. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/data_relational_iso_sql/severity_rules.yaml +0 -0
  418. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/ddd_domain_driven_design/coverage_matrix.md +0 -0
  419. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/ddd_domain_driven_design/elicit_extend.md +0 -0
  420. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/ddd_domain_driven_design/lexicon.yaml +0 -0
  421. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/ddd_domain_driven_design/manifest.yaml +0 -0
  422. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/ddd_domain_driven_design/recommended_kinds.yaml +0 -0
  423. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/ddd_domain_driven_design/severity_rules.yaml +0 -0
  424. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/dora_sre_metrics/coverage_matrix.md +0 -0
  425. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/dora_sre_metrics/elicit_extend.md +0 -0
  426. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/dora_sre_metrics/lexicon.yaml +0 -0
  427. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/dora_sre_metrics/manifest.yaml +0 -0
  428. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/dora_sre_metrics/recommended_kinds.yaml +0 -0
  429. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/dora_sre_metrics/severity_rules.yaml +0 -0
  430. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/i18n_unicode_cldr/coverage_matrix.md +0 -0
  431. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/i18n_unicode_cldr/elicit_extend.md +0 -0
  432. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/i18n_unicode_cldr/lexicon.yaml +0 -0
  433. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/i18n_unicode_cldr/manifest.yaml +0 -0
  434. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/i18n_unicode_cldr/recommended_kinds.yaml +0 -0
  435. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/i18n_unicode_cldr/severity_rules.yaml +0 -0
  436. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/ml_model_cards/coverage_matrix.md +0 -0
  437. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/ml_model_cards/elicit_extend.md +0 -0
  438. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/ml_model_cards/lexicon.yaml +0 -0
  439. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/ml_model_cards/manifest.yaml +0 -0
  440. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/ml_model_cards/recommended_kinds.yaml +0 -0
  441. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/ml_model_cards/severity_rules.yaml +0 -0
  442. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/mobile_a11y_native/coverage_matrix.md +0 -0
  443. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/mobile_a11y_native/elicit_extend.md +0 -0
  444. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/mobile_a11y_native/lexicon.yaml +0 -0
  445. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/mobile_a11y_native/manifest.yaml +0 -0
  446. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/mobile_a11y_native/recommended_kinds.yaml +0 -0
  447. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/mobile_a11y_native/severity_rules.yaml +0 -0
  448. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/mobile_android_material3/coverage_matrix.md +0 -0
  449. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/mobile_android_material3/elicit_extend.md +0 -0
  450. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/mobile_android_material3/lexicon.yaml +0 -0
  451. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/mobile_android_material3/manifest.yaml +0 -0
  452. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/mobile_android_material3/recommended_kinds.yaml +0 -0
  453. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/mobile_android_material3/severity_rules.yaml +0 -0
  454. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/mobile_ios_hig/coverage_matrix.md +0 -0
  455. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/mobile_ios_hig/elicit_extend.md +0 -0
  456. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/mobile_ios_hig/lexicon.yaml +0 -0
  457. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/mobile_ios_hig/manifest.yaml +0 -0
  458. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/mobile_ios_hig/recommended_kinds.yaml +0 -0
  459. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/mobile_ios_hig/severity_rules.yaml +0 -0
  460. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/mobile_security_masvs/coverage_matrix.md +0 -0
  461. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/mobile_security_masvs/elicit_extend.md +0 -0
  462. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/mobile_security_masvs/lexicon.yaml +0 -0
  463. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/mobile_security_masvs/manifest.yaml +0 -0
  464. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/mobile_security_masvs/recommended_kinds.yaml +0 -0
  465. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/mobile_security_masvs/severity_rules.yaml +0 -0
  466. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/ops_cicd_pipeline/coverage_matrix.md +0 -0
  467. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/ops_cicd_pipeline/elicit_extend.md +0 -0
  468. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/ops_cicd_pipeline/lexicon.yaml +0 -0
  469. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/ops_cicd_pipeline/manifest.yaml +0 -0
  470. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/ops_cicd_pipeline/recommended_kinds.yaml +0 -0
  471. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/ops_cicd_pipeline/severity_rules.yaml +0 -0
  472. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/ops_iac_terraform/coverage_matrix.md +0 -0
  473. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/ops_iac_terraform/elicit_extend.md +0 -0
  474. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/ops_iac_terraform/lexicon.yaml +0 -0
  475. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/ops_iac_terraform/manifest.yaml +0 -0
  476. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/ops_iac_terraform/recommended_kinds.yaml +0 -0
  477. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/ops_iac_terraform/severity_rules.yaml +0 -0
  478. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/ops_kubernetes/coverage_matrix.md +0 -0
  479. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/ops_kubernetes/elicit_extend.md +0 -0
  480. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/ops_kubernetes/lexicon.yaml +0 -0
  481. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/ops_kubernetes/manifest.yaml +0 -0
  482. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/ops_kubernetes/recommended_kinds.yaml +0 -0
  483. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/ops_kubernetes/severity_rules.yaml +0 -0
  484. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/ops_observability_otel/coverage_matrix.md +0 -0
  485. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/ops_observability_otel/elicit_extend.md +0 -0
  486. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/ops_observability_otel/lexicon.yaml +0 -0
  487. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/ops_observability_otel/manifest.yaml +0 -0
  488. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/ops_observability_otel/recommended_kinds.yaml +0 -0
  489. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/ops_observability_otel/severity_rules.yaml +0 -0
  490. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/process_iso25010/coverage_matrix.md +0 -0
  491. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/process_iso25010/elicit_extend.md +0 -0
  492. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/process_iso25010/lexicon.yaml +0 -0
  493. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/process_iso25010/manifest.yaml +0 -0
  494. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/process_iso25010/recommended_kinds.yaml +0 -0
  495. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/process_iso25010/severity_rules.yaml +0 -0
  496. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/process_test_iso29119/coverage_matrix.md +0 -0
  497. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/process_test_iso29119/elicit_extend.md +0 -0
  498. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/process_test_iso29119/lexicon.yaml +0 -0
  499. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/process_test_iso29119/manifest.yaml +0 -0
  500. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/process_test_iso29119/recommended_kinds.yaml +0 -0
  501. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/process_test_iso29119/severity_rules.yaml +0 -0
  502. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/twelve_factor_app/coverage_matrix.md +0 -0
  503. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/twelve_factor_app/elicit_extend.md +0 -0
  504. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/twelve_factor_app/lexicon.yaml +0 -0
  505. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/twelve_factor_app/manifest.yaml +0 -0
  506. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/twelve_factor_app/recommended_kinds.yaml +0 -0
  507. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/twelve_factor_app/severity_rules.yaml +0 -0
  508. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/coverage_matrix.md +0 -0
  509. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/elicit_extend.md +0 -0
  510. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/lexicon.yaml +0 -0
  511. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/manifest.yaml +0 -0
  512. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/recommended_kinds.yaml +0 -0
  513. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/severity_rules.yaml +0 -0
  514. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/web_authn_webauthn/coverage_matrix.md +0 -0
  515. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/web_authn_webauthn/elicit_extend.md +0 -0
  516. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/web_authn_webauthn/lexicon.yaml +0 -0
  517. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/web_authn_webauthn/manifest.yaml +0 -0
  518. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/web_authn_webauthn/recommended_kinds.yaml +0 -0
  519. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/web_authn_webauthn/severity_rules.yaml +0 -0
  520. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/web_browser_compat/coverage_matrix.md +0 -0
  521. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/web_browser_compat/elicit_extend.md +0 -0
  522. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/web_browser_compat/lexicon.yaml +0 -0
  523. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/web_browser_compat/manifest.yaml +0 -0
  524. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/web_browser_compat/recommended_kinds.yaml +0 -0
  525. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/web_browser_compat/severity_rules.yaml +0 -0
  526. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/web_forms_html5/coverage_matrix.md +0 -0
  527. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/web_forms_html5/elicit_extend.md +0 -0
  528. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/web_forms_html5/lexicon.yaml +0 -0
  529. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/web_forms_html5/manifest.yaml +0 -0
  530. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/web_forms_html5/recommended_kinds.yaml +0 -0
  531. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/web_forms_html5/severity_rules.yaml +0 -0
  532. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/web_performance_core_web_vitals/coverage_matrix.md +0 -0
  533. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/web_performance_core_web_vitals/elicit_extend.md +0 -0
  534. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/web_performance_core_web_vitals/lexicon.yaml +0 -0
  535. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/web_performance_core_web_vitals/manifest.yaml +0 -0
  536. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/web_performance_core_web_vitals/recommended_kinds.yaml +0 -0
  537. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/web_performance_core_web_vitals/severity_rules.yaml +0 -0
  538. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/web_pwa_manifest/coverage_matrix.md +0 -0
  539. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/web_pwa_manifest/elicit_extend.md +0 -0
  540. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/web_pwa_manifest/lexicon.yaml +0 -0
  541. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/web_pwa_manifest/manifest.yaml +0 -0
  542. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/web_pwa_manifest/recommended_kinds.yaml +0 -0
  543. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/web_pwa_manifest/severity_rules.yaml +0 -0
  544. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/web_responsive/coverage_matrix.md +0 -0
  545. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/web_responsive/elicit_extend.md +0 -0
  546. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/web_responsive/lexicon.yaml +0 -0
  547. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/web_responsive/manifest.yaml +0 -0
  548. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/web_responsive/recommended_kinds.yaml +0 -0
  549. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/web_responsive/severity_rules.yaml +0 -0
  550. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/web_security_owasp/coverage_matrix.md +0 -0
  551. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/web_security_owasp/elicit_extend.md +0 -0
  552. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/web_security_owasp/lexicon.yaml +0 -0
  553. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/web_security_owasp/manifest.yaml +0 -0
  554. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/web_security_owasp/recommended_kinds.yaml +0 -0
  555. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/web_security_owasp/severity_rules.yaml +0 -0
  556. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/web_seo_schemaorg/coverage_matrix.md +0 -0
  557. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/web_seo_schemaorg/elicit_extend.md +0 -0
  558. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/web_seo_schemaorg/lexicon.yaml +0 -0
  559. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/web_seo_schemaorg/manifest.yaml +0 -0
  560. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/web_seo_schemaorg/recommended_kinds.yaml +0 -0
  561. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/lexicons/web_seo_schemaorg/severity_rules.yaml +0 -0
  562. {codd_dev-2.38.0 → codd_dev-2.40.0}/codd_plugins/stack_map.yaml +0 -0
  563. {codd_dev-2.38.0 → codd_dev-2.40.0}/docs/cookbook/cdp_browser/README.md +0 -0
  564. {codd_dev-2.38.0 → codd_dev-2.40.0}/docs/cookbook/presentation_aggregation/README.md +0 -0
  565. {codd_dev-2.38.0 → codd_dev-2.40.0}/docs/requirements/README.md +0 -0
  566. {codd_dev-2.38.0 → codd_dev-2.40.0}/dogfood/README.md +0 -0
  567. {codd_dev-2.38.0 → codd_dev-2.40.0}/dogfood/fixtures/flat_py_app/README.md +0 -0
  568. {codd_dev-2.38.0 → codd_dev-2.40.0}/examples/README.md +0 -0
  569. {codd_dev-2.38.0 → codd_dev-2.40.0}/skills/codd-assemble/SKILL.md +0 -0
  570. {codd_dev-2.38.0 → codd_dev-2.40.0}/skills/codd-evolve/SKILL.md +0 -0
  571. {codd_dev-2.38.0 → codd_dev-2.40.0}/skills/codd-generate/SKILL.md +0 -0
  572. {codd_dev-2.38.0 → codd_dev-2.40.0}/skills/codd-greenfield/SKILL.md +0 -0
  573. {codd_dev-2.38.0 → codd_dev-2.40.0}/skills/codd-impact/SKILL.md +0 -0
  574. {codd_dev-2.38.0 → codd_dev-2.40.0}/skills/codd-init/SKILL.md +0 -0
  575. {codd_dev-2.38.0 → codd_dev-2.40.0}/skills/codd-propagate/SKILL.md +0 -0
  576. {codd_dev-2.38.0 → codd_dev-2.40.0}/skills/codd-restore/SKILL.md +0 -0
  577. {codd_dev-2.38.0 → codd_dev-2.40.0}/skills/codd-scan/SKILL.md +0 -0
  578. {codd_dev-2.38.0 → codd_dev-2.40.0}/skills/codd-validate/SKILL.md +0 -0
  579. {codd_dev-2.38.0 → codd_dev-2.40.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.38.0
3
+ Version: 2.40.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.38.0"
3
+ __version__ = "2.40.0"
@@ -230,6 +230,28 @@ _COVERED: tuple[Contract, ...] = (
230
230
  ),
231
231
  finding_ids=("PC-docref-resolution",),
232
232
  ),
233
+ # ── authenticity.observable_in_supported_stack.v1 (GPT r2 §3.6) ──────────
234
+ # The NEW hard gate: a marker-bearing file the adapter RECOGNIZES but parses
235
+ # ZERO executable test blocks out of was silently degraded to a pass (only an
236
+ # UNSUPPORTED file should degrade). strict_observability=True (greenfield Gate 2)
237
+ # makes it an unobservable_test_structure violation — an unparseable test in a
238
+ # SUPPORTED stack is a false-green, not an unsupported one.
239
+ Contract(
240
+ id="authenticity.observable_in_supported_stack.v1",
241
+ source_node="TestFile",
242
+ target_node="TestBlock",
243
+ edge_type="claims",
244
+ dimensions=("authenticity", "observability", "parsing"),
245
+ authority="codd.vb_marker_authenticity.build_authenticity_report",
246
+ fail_mode="honest_red",
247
+ status="covered",
248
+ certification_fixtures=(
249
+ "tests/test_vb_marker_authenticity.py::test_strict_observability_flags_recognized_file_with_no_parseable_test",
250
+ "tests/test_vb_marker_authenticity.py::test_strict_observability_still_degrades_unsupported_stack",
251
+ "tests/test_vb_marker_authenticity.py::test_strict_observability_does_not_affect_genuine_covering_test",
252
+ ),
253
+ finding_ids=("PC-authenticity-observable", "F-verify-false-green"),
254
+ ),
233
255
  # ── Task -> GeneratedArtifact ownership / orphan prohibition (v2.29) ─────
234
256
  Contract(
235
257
  id="task.owns_generated_artifacts_no_orphans",
@@ -467,6 +489,30 @@ _COVERED: tuple[Contract, ...] = (
467
489
  ),
468
490
  finding_ids=("PC-verify-campaign-observable", "F-verify-false-green"),
469
491
  ),
492
+ # ── verify.campaign.clean_execution.v1 — the campaign result gates green ──
493
+ # The NEW hard gate (GPT r2 §3.2): build_coherence_report reconciles only the
494
+ # UNBLOCKED VBs against their covering files, so a FAILING test that covers no
495
+ # declared VB (a plain integration/e2e/unit test) — or a non-zero runner exit —
496
+ # was invisible to it and passed the coherence gate alone = a false-green.
497
+ # enforce_campaign_clean_execution makes the campaign's own result a green
498
+ # authority: any executed_failed_files, or exit_code != 0, is an honest-fail.
499
+ Contract(
500
+ id="verify.campaign.clean_execution.v1",
501
+ source_node="VerifyCampaign",
502
+ target_node="RunnerExecution",
503
+ edge_type="executes",
504
+ dimensions=("execution", "observability"),
505
+ authority="codd.coverage_execution_coherence.enforce_campaign_clean_execution",
506
+ fail_mode="honest_fail",
507
+ status="covered",
508
+ certification_fixtures=(
509
+ "tests/test_coverage_execution_coherence.py::test_clean_execution_failed_file_raises",
510
+ "tests/test_coverage_execution_coherence.py::test_clean_execution_nonzero_exit_raises",
511
+ "tests/test_coverage_execution_coherence.py::test_clean_execution_all_pass_exit_zero_is_ok",
512
+ "tests/test_coverage_execution_coherence.py::test_clean_execution_closes_false_green_for_failing_non_vb_test",
513
+ ),
514
+ finding_ids=("PC-campaign-clean-execution", "F-verify-false-green"),
515
+ ),
470
516
  # ── CoverageClaim -> VerifyExecution observability (v2.32) ───────────────
471
517
  Contract(
472
518
  id="coverage_claim.requires_executed_passed_evidence",
@@ -674,30 +720,6 @@ _OUTER: tuple[Contract, ...] = (
674
720
  # ════════════════════════════════════════════════════════════════════════════
675
721
 
676
722
  _UNCOVERED_PRECISE: tuple[Contract, ...] = (
677
- # GPT r2 §3.2 — campaign exit_code / failed non-VB tests.
678
- Contract(
679
- id="verify.campaign.clean_execution.v1",
680
- source_node="VerifyCampaign",
681
- target_node="RunnerExecution",
682
- edge_type="executes",
683
- dimensions=("execution", "observability"),
684
- authority=None,
685
- fail_mode="honest_fail",
686
- status="uncovered",
687
- predicted_issue=(
688
- "run_verify_campaign keeps CampaignRun.exit_code but does NOT treat it "
689
- "as pass authority, and build_coherence_report only checks the UNBLOCKED "
690
- "VBs' covering files — so a non-VB e2e/integration test that FAILED "
691
- "(run.execution.executed_failed_files non-empty, or exit_code != 0) can "
692
- "still pass the coherence gate alone."
693
- ),
694
- proposed_gate=(
695
- "enforce_campaign_clean_execution(run.execution, run.exit_code) around "
696
- "build_coherence_report: exit_code != 0 OR executed_failed_files → "
697
- "CoherenceError. negative fixture: a vitest JSON report with a failed "
698
- "tests/e2e/non_vb.e2e.test.ts while every VB covering file passed → hard red."
699
- ),
700
- ),
701
723
  # GPT r2 §3.5 — LayoutProfile scaffold-config certification.
702
724
  Contract(
703
725
  id="scaffold.config_certified_before_verify.v1",
@@ -724,31 +746,6 @@ _UNCOVERED_PRECISE: tuple[Contract, ...] = (
724
746
  "not deferred to the campaign."
725
747
  ),
726
748
  ),
727
- # GPT r2 §3.6 — recognized test file → parseable TestBlock authenticity strict.
728
- Contract(
729
- id="authenticity.observable_in_supported_stack.v1",
730
- source_node="TestFile",
731
- target_node="TestBlock",
732
- edge_type="claims",
733
- dimensions=("authenticity", "observability", "parsing"),
734
- authority=None,
735
- fail_mode="honest_red",
736
- status="uncovered",
737
- predicted_issue=(
738
- "build_authenticity_report puts a marker-bearing recognized test file "
739
- "into degraded_paths (skips Stage 2/3) when the adapter handles the file "
740
- "but parses NO blocks; report.passed only checks violations — so a "
741
- "supported-stack (TS/Python) test whose wrapper the parser cannot read "
742
- "is 'authenticity unknown' yet can degrade-pass."
743
- ),
744
- proposed_gate=(
745
- "strict_authenticity_observability=True greenfield default: when adapter "
746
- "handles the file AND markers present AND no blocks parsed → "
747
- "violation(kind='unobservable_test_structure'); unknown languages stay "
748
- "warn/degrade. negative fixture: tests/foo.test.ts with covers vb=VB-1 "
749
- "in a wrapper the parser does not recognize → red (today degrades to pass)."
750
- ),
751
- ),
752
749
  # GPT r2 §3.7 — Python source/test import coherence implement-time oracle.
753
750
  Contract(
754
751
  id="python.import_coherence_oracle.v1",
@@ -892,9 +892,10 @@ def run_verify_campaign(
892
892
  adapter. ANTI-FALSE-GREEN: a campaign that produced NO report, an UNREADABLE
893
893
  report, or an empty-execution report (collected 0 tests) is a :class:`CampaignError`
894
894
  (a harness/observability failure), NEVER a silent pass. The command's own exit
895
- code is captured but is NOT the pass authority — the coherence gate is (a
896
- campaign may exit nonzero because a covering test failed, which the gate
897
- reports per-VB).
895
+ code is captured AND consulted by ``enforce_campaign_clean_execution``
896
+ (contract verify.campaign.clean_execution.v1): a non-zero exit, or ANY failed
897
+ executed test file, hard-fails there — independent of the per-VB coherence
898
+ gate, which alone would miss a failing test that covers no declared VB.
898
899
 
899
900
  Caller contract: only invoke when ``profile.verify_campaign`` is not None and
900
901
  ``profile.runner_report_adapter()`` resolves. A None campaign/adapter is the
@@ -1025,6 +1026,52 @@ def certify_verify_campaign_observable(profile: Any) -> None:
1025
1026
  )
1026
1027
 
1027
1028
 
1029
+ def enforce_campaign_clean_execution(
1030
+ execution: RunnerExecution,
1031
+ exit_code: int,
1032
+ *,
1033
+ echo: Callable[[str], None] = print,
1034
+ ) -> None:
1035
+ """HARD GATE (contract verify.campaign.clean_execution.v1; GPT round-2 §3.2).
1036
+
1037
+ The verify campaign's OWN result is a green authority IN ITS OWN RIGHT —
1038
+ independent of VB reconciliation. ``build_coherence_report`` only checks that
1039
+ each UNBLOCKED VB has an authentic covering file that executed and passed; a
1040
+ FAILING test that covers NO declared VB (a plain integration / e2e / unit
1041
+ test), or a runner that exited NON-ZERO for a non-VB reason, is invisible to it
1042
+ and would pass the coherence gate alone — a false-green. This gate closes that
1043
+ hole.
1044
+
1045
+ Raises :class:`CoherenceError` when ``execution.executed_failed_files`` is
1046
+ non-empty (ANY executed test file had a failing/erroring case) OR
1047
+ ``exit_code != 0`` (the runner itself reported failure). Deterministic and
1048
+ side-effect-free — it runs no command (the caller already executed the
1049
+ campaign). honest-fail: a failing test, or a non-zero runner exit, means the
1050
+ build is RED, never silently green.
1051
+ """
1052
+
1053
+ failed = sorted(execution.executed_failed_files)
1054
+ nonzero_exit = exit_code != 0
1055
+ if not failed and not nonzero_exit:
1056
+ return
1057
+ reasons: list[str] = []
1058
+ if failed:
1059
+ shown = ", ".join(failed[:10]) + (" …" if len(failed) > 10 else "")
1060
+ reasons.append(f"{len(failed)} executed test file(s) FAILED: {shown}")
1061
+ if nonzero_exit:
1062
+ reasons.append(f"the verify campaign exited non-zero ({exit_code})")
1063
+ detail = "; ".join(reasons)
1064
+ echo(f"[greenfield] verify: campaign clean-execution gate FAILED — {detail}")
1065
+ raise CoherenceError(
1066
+ "verify campaign did not execute cleanly: "
1067
+ + detail
1068
+ + ". A failing test — even one that covers no declared verifiable behavior "
1069
+ "— or a non-zero runner exit means the build is RED. The campaign result is "
1070
+ "itself a green authority, independent of per-VB reconciliation; fix the "
1071
+ "failing test(s) (or the runner error) before the run can be green."
1072
+ )
1073
+
1074
+
1028
1075
  def enforce_coverage_execution_coherence(
1029
1076
  project_root: Path | str,
1030
1077
  profile: Any,
@@ -1060,6 +1107,12 @@ def enforce_coverage_execution_coherence(
1060
1107
  )
1061
1108
 
1062
1109
  run = run_verify_campaign(project_root, profile, config=config, echo=echo)
1110
+ # HARD anti-false-green gate (verify.campaign.clean_execution.v1): the
1111
+ # campaign's OWN result gates green BEFORE VB reconciliation — a failing test
1112
+ # that covers no declared VB, or a non-zero runner exit, is RED here even
1113
+ # though build_coherence_report (which only reconciles UNBLOCKED VBs) would
1114
+ # miss it.
1115
+ enforce_campaign_clean_execution(run.execution, run.exit_code, echo=echo)
1063
1116
  report = build_coherence_report(
1064
1117
  project_root, config=config, profile=profile, execution=run.execution
1065
1118
  )
@@ -1115,6 +1168,7 @@ __all__ = [
1115
1168
  "build_test_inventory",
1116
1169
  "certify_verify_campaign_observable",
1117
1170
  "coherence_gate_applies",
1171
+ "enforce_campaign_clean_execution",
1118
1172
  "enforce_coverage_execution_coherence",
1119
1173
  "format_coherence_feedback",
1120
1174
  "render_coherence_markdown",
@@ -2561,7 +2561,12 @@ def _enforce_stage_coverage_gate(
2561
2561
  # --- Gate 2: marker authenticity (anti-false-green). HARD gate. ---
2562
2562
  from codd.vb_marker_authenticity import build_authenticity_report
2563
2563
 
2564
- auth = build_authenticity_report(project_root, config=config, profile=authenticity_profile)
2564
+ # strict_observability (authenticity.observable_in_supported_stack.v1): in the
2565
+ # autopilot a SUPPORTED test file the adapter recognizes but parses no executable
2566
+ # test block out of is a false-green, not a degrade — honest-fail it.
2567
+ auth = build_authenticity_report(
2568
+ project_root, config=config, profile=authenticity_profile, strict_observability=True
2569
+ )
2565
2570
  if auth.degraded_paths:
2566
2571
  echo(
2567
2572
  "Test coverage gate: marker-authenticity attachment/assertion checks skipped for "
@@ -2574,8 +2579,9 @@ def _enforce_stage_coverage_gate(
2574
2579
  raise StageError(
2575
2580
  "verifiable-behavior marker-authenticity gate failed for the implement stage: "
2576
2581
  f"{len(auth.violations)} `codd: covers vb=` marker(s) are not credible coverage claims "
2577
- "(attached to a skipped/empty test, an orphan id, or a test with no assertion). A "
2578
- "covers marker must sit on an executable test that asserts the behavior."
2582
+ "(attached to a skipped/empty test, an orphan id, a test with no assertion, or an "
2583
+ "unobservable test structure a recognized file with no parseable test). A covers "
2584
+ "marker must sit on an executable test that asserts the behavior."
2579
2585
  )
2580
2586
  echo(
2581
2587
  f"Test coverage gate: marker authenticity OK ({len(auth.degraded_paths)} file(s) stage-1-only)."
@@ -387,12 +387,22 @@ def build_authenticity_report(
387
387
  profile: Any = None,
388
388
  test_dirs: Iterable[Path | str] | None = None,
389
389
  hooks: Iterable[AuthenticityHook] | None = None,
390
+ strict_observability: bool = False,
390
391
  ) -> AuthenticityReport:
391
392
  """Evaluate every ``covers vb=`` marker for structural authenticity.
392
393
 
393
394
  ``profile`` is the active :class:`~codd.project_types.LayoutProfile` (or any
394
395
  object exposing ``test_block_profile()``); when it is ``None`` or yields no
395
396
  adapter, stages 2-3 degrade to a warning and only stage 1 (orphan) applies.
397
+
398
+ ``strict_observability`` (contract authenticity.observable_in_supported_stack.v1):
399
+ when True, a marker-bearing file the adapter RECOGNIZES (``handles_file``) but
400
+ from which it parses ZERO executable test blocks is an
401
+ ``unobservable_test_structure`` VIOLATION rather than a silent degrade — a
402
+ SUPPORTED stack that yields no observable test is a false-green, not an
403
+ unparseable one. An UNSUPPORTED file (no adapter / not handled) still degrades
404
+ in either mode (never a false-RED). The greenfield autopilot passes True; the
405
+ default is False for back-compat with non-autopilot callers.
396
406
  """
397
407
 
398
408
  project_root = Path(project_root).resolve()
@@ -451,13 +461,41 @@ def build_authenticity_report(
451
461
 
452
462
  # ── Stages 2-3 need the per-profile structural parse ──
453
463
  blocks: list[TestBlock] = []
454
- if adapter is not None and adapter.handles_file(rel):
464
+ adapter_handles = adapter is not None and adapter.handles_file(rel)
465
+ if adapter_handles:
455
466
  try:
456
467
  blocks = adapter.parse_test_blocks(text)
457
468
  except Exception: # noqa: BLE001 — a parser that throws degrades, never fails.
458
469
  blocks = []
459
- if adapter is None or not adapter.handles_file(rel) or not blocks:
460
- # Graceful degradation: cannot structurally parse this stack/file.
470
+ if not blocks:
471
+ if adapter_handles and strict_observability:
472
+ # OBSERVABILITY (contract authenticity.observable_in_supported_stack.v1):
473
+ # the adapter RECOGNIZES this file type but extracted ZERO executable
474
+ # test blocks though live coverage markers are present. That is NOT an
475
+ # unsupported stack (which legitimately degrades) — it is an
476
+ # unobservable coverage claim in a SUPPORTED stack, so it honest-fails
477
+ # instead of silently degrading to a pass (the false-green this
478
+ # contract closes).
479
+ for marker in live_markers:
480
+ violations.append(
481
+ AuthenticityViolation(
482
+ kind="unobservable_test_structure",
483
+ vb_id=marker.vb_id,
484
+ path=rel,
485
+ line=marker.line,
486
+ message=(
487
+ f"{rel}:{marker.line} `codd: covers vb={marker.vb_id}` sits in a "
488
+ "recognized test file from which the structural parser extracted NO "
489
+ "executable test block — the coverage claim is unobservable (a marker "
490
+ "with no parseable test proves nothing). Write a real test case the "
491
+ "runner executes, or use `codd: blocked vb=… reason=…` if it genuinely "
492
+ "cannot run yet."
493
+ ),
494
+ )
495
+ )
496
+ continue
497
+ # Graceful degradation: an UNSUPPORTED stack/file (no adapter, or the
498
+ # adapter does not handle this file), or strict observability off.
461
499
  # Stage 1 already ran; skip stages 2-3 with a warning (never false-RED).
462
500
  degraded.append(rel)
463
501
  continue
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "codd-dev"
7
- version = "2.38.0"
7
+ version = "2.40.0"
8
8
  description = "CoDD: Coherence-Driven Development — cross-artifact change impact analysis"
9
9
  readme = "README.md"
10
10
  license = "MIT"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes