codd-dev 2.49.0__tar.gz → 2.50.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 (581) hide show
  1. {codd_dev-2.49.0 → codd_dev-2.50.0}/PKG-INFO +1 -1
  2. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/__init__.py +1 -1
  3. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/generator.py +128 -17
  4. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/greenfield/pipeline.py +192 -0
  5. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/verifiable_behavior_audit.py +332 -0
  6. {codd_dev-2.49.0 → codd_dev-2.50.0}/pyproject.toml +1 -1
  7. {codd_dev-2.49.0 → codd_dev-2.50.0}/.gitignore +0 -0
  8. {codd_dev-2.49.0 → codd_dev-2.50.0}/LICENSE +0 -0
  9. {codd_dev-2.49.0 → codd_dev-2.50.0}/README.md +0 -0
  10. {codd_dev-2.49.0 → codd_dev-2.50.0}/bench_fixture/README.md +0 -0
  11. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/__main__.py +0 -0
  12. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/_git_helper.py +0 -0
  13. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/action_outcome.py +0 -0
  14. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/ai_invoke.py +0 -0
  15. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/ai_patch.py +0 -0
  16. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/artifact_contract.py +0 -0
  17. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/artifact_ids.py +0 -0
  18. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/artifacts/catalog.yaml +0 -0
  19. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/ask_user_question_adapter.py +0 -0
  20. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/assembler.py +0 -0
  21. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/bridge.py +0 -0
  22. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/brownfield/__init__.py +0 -0
  23. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/brownfield/pipeline.py +0 -0
  24. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/capability_completeness.py +0 -0
  25. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/claude_cli.py +0 -0
  26. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/cli.py +0 -0
  27. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/clustering.py +0 -0
  28. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/coherence_adapters.py +0 -0
  29. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/coherence_engine.py +0 -0
  30. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/confidence.py +0 -0
  31. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/config.py +0 -0
  32. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/config_schema.py +0 -0
  33. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/contracts.py +0 -0
  34. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/contracts_registry/__init__.py +0 -0
  35. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/contracts_registry/__main__.py +0 -0
  36. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/contracts_registry/certify.py +0 -0
  37. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/contracts_registry/generate_matrix.py +0 -0
  38. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/contracts_registry/registry.py +0 -0
  39. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/coverage_auditor.py +0 -0
  40. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/coverage_execution_coherence.py +0 -0
  41. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/coverage_metrics.py +0 -0
  42. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/dag/__init__.py +0 -0
  43. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/dag/auto_repair.py +0 -0
  44. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/dag/builder.py +0 -0
  45. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/dag/checks/__init__.py +0 -0
  46. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/dag/checks/_one_to_many_detection.py +0 -0
  47. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/dag/checks/artifact_contract_check.py +0 -0
  48. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/dag/checks/ci_health.py +0 -0
  49. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/dag/checks/dependency_freshness.py +0 -0
  50. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/dag/checks/depends_on_consistency.py +0 -0
  51. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/dag/checks/deployment_completeness.py +0 -0
  52. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/dag/checks/edge_validity.py +0 -0
  53. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/dag/checks/environment_coverage.py +0 -0
  54. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/dag/checks/implementation_coverage.py +0 -0
  55. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/dag/checks/node_completeness.py +0 -0
  56. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/dag/checks/opt_out.py +0 -0
  57. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/dag/checks/task_completion.py +0 -0
  58. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/dag/checks/transitive_closure.py +0 -0
  59. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/dag/checks/ui_coherence.py +0 -0
  60. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/dag/checks/user_journey_coherence.py +0 -0
  61. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/dag/coverage_axes.py +0 -0
  62. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/dag/defaults/cli.yaml +0 -0
  63. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/dag/defaults/cpp_embedded.yaml +0 -0
  64. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/dag/defaults/csharp.yaml +0 -0
  65. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/dag/defaults/elixir.yaml +0 -0
  66. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/dag/defaults/generic.yaml +0 -0
  67. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/dag/defaults/iot.yaml +0 -0
  68. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/dag/defaults/java.yaml +0 -0
  69. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/dag/defaults/kotlin.yaml +0 -0
  70. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/dag/defaults/mobile.yaml +0 -0
  71. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/dag/defaults/ruby.yaml +0 -0
  72. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/dag/defaults/rust.yaml +0 -0
  73. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/dag/defaults/scala.yaml +0 -0
  74. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/dag/defaults/swift.yaml +0 -0
  75. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/dag/defaults/test_frameworks.yaml +0 -0
  76. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/dag/defaults/web.yaml +0 -0
  77. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/dag/extractor.py +0 -0
  78. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/dag/impact.py +0 -0
  79. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/dag/runner.py +0 -0
  80. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/defaults.py +0 -0
  81. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/defaults.yaml +0 -0
  82. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/dependency_lock_coherence.py +0 -0
  83. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/deploy_targets/__init__.py +0 -0
  84. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/deploy_targets/app_service.py +0 -0
  85. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/deploy_targets/base.py +0 -0
  86. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/deploy_targets/docker_compose.py +0 -0
  87. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/deployer.py +0 -0
  88. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/deployment/__init__.py +0 -0
  89. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/deployment/checks/__init__.py +0 -0
  90. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/deployment/defaults/deploy_targets.yaml +0 -0
  91. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/deployment/defaults/runtime_capability_inference.yaml +0 -0
  92. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/deployment/defaults/schema_providers.yaml +0 -0
  93. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/deployment/defaults/verification_templates.yaml +0 -0
  94. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/deployment/extractor.py +0 -0
  95. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/deployment/providers/__init__.py +0 -0
  96. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/deployment/providers/ai_command.py +0 -0
  97. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/deployment/providers/ai_command_factory.py +0 -0
  98. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/deployment/providers/codex_app_server.py +0 -0
  99. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/deployment/providers/llm_consideration.py +0 -0
  100. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/deployment/providers/schema/__init__.py +0 -0
  101. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/deployment/providers/schema/prisma.py +0 -0
  102. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/deployment/providers/target/__init__.py +0 -0
  103. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/deployment/providers/target/docker_compose.py +0 -0
  104. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/deployment/providers/verification/__init__.py +0 -0
  105. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/deployment/providers/verification/assertion_handlers.py +0 -0
  106. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/deployment/providers/verification/cdp_browser.py +0 -0
  107. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/deployment/providers/verification/cdp_engines.py +0 -0
  108. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/deployment/providers/verification/cdp_launchers.py +0 -0
  109. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/deployment/providers/verification/cdp_wire.py +0 -0
  110. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/deployment/providers/verification/curl.py +0 -0
  111. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/deployment/providers/verification/form_strategies.py +0 -0
  112. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/deployment/providers/verification/means_catalog.py +0 -0
  113. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/deployment/providers/verification/playwright.py +0 -0
  114. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/deployment/providers/verification/pytest_http.py +0 -0
  115. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/deployment/providers/verification/vitest.py +0 -0
  116. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/design_md.py +0 -0
  117. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/diff/__init__.py +0 -0
  118. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/diff/apply.py +0 -0
  119. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/diff/engine.py +0 -0
  120. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/diff/persistence.py +0 -0
  121. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/diff/templates/diff_prompt.md +0 -0
  122. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/discovery.py +0 -0
  123. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/drift.py +0 -0
  124. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/e2e_contract_coherence.py +0 -0
  125. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/e2e_extractor.py +0 -0
  126. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/e2e_generator.py +0 -0
  127. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/e2e_harness.py +0 -0
  128. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/e2e_runner.py +0 -0
  129. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/elicit/__init__.py +0 -0
  130. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/elicit/apply.py +0 -0
  131. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/elicit/engine.py +0 -0
  132. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/elicit/finding.py +0 -0
  133. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/elicit/formatters/__init__.py +0 -0
  134. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/elicit/formatters/base.py +0 -0
  135. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/elicit/formatters/interactive.py +0 -0
  136. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/elicit/formatters/json_fmt.py +0 -0
  137. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/elicit/formatters/md.py +0 -0
  138. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/elicit/lexicon_loader.py +0 -0
  139. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/elicit/persistence.py +0 -0
  140. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/elicit/templates/elicit_prompt_L0.md +0 -0
  141. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/env_refs.py +0 -0
  142. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/extract_ai.py +0 -0
  143. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/extract_paths.py +0 -0
  144. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/extractor.py +0 -0
  145. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/fix/__init__.py +0 -0
  146. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/fix/candidate_selector.py +0 -0
  147. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/fix/design_updater.py +0 -0
  148. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/fix/impl_propagation.py +0 -0
  149. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/fix/interactive_prompt.py +0 -0
  150. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/fix/phenomenon_fixer.py +0 -0
  151. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/fix/phenomenon_parser.py +0 -0
  152. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/fix/risk_classifier.py +0 -0
  153. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/fix/templates/clarification_question.txt +0 -0
  154. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/fix/templates/design_update.txt +0 -0
  155. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/fix/templates/impl_update.txt +0 -0
  156. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/fix/templates/phenomenon_parse.txt +0 -0
  157. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/fix/templates/risk_assessment.txt +0 -0
  158. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/fix/templates_loader.py +0 -0
  159. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/fixer.py +0 -0
  160. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/fixup_drift.py +0 -0
  161. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/fixup_drift_strategies/__init__.py +0 -0
  162. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/fixup_drift_strategies/design_token_drift.py +0 -0
  163. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/fixup_drift_strategies/lexicon_violation.py +0 -0
  164. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/fixup_drift_strategies/url_drift.py +0 -0
  165. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/frontmatter.py +0 -0
  166. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/git_evidence.py +0 -0
  167. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/graph.py +0 -0
  168. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/greenfield/__init__.py +0 -0
  169. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/hitl_session.py +0 -0
  170. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/hooks/__init__.py +0 -0
  171. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/hooks/pre-commit +0 -0
  172. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/hooks/recipes/claude_requirements_nudge.json +0 -0
  173. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/hooks/recipes/claude_settings_example.json +0 -0
  174. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/hooks/recipes/codex_hook.sh +0 -0
  175. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/hooks/recipes/git_post_commit.sh +0 -0
  176. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/hooks/recipes/git_pre_commit.sh +0 -0
  177. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/iac_nfr.py +0 -0
  178. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/implement_oracle.py +0 -0
  179. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/implement_oracle_scope.py +0 -0
  180. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/implementer/__init__.py +0 -0
  181. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/implementer/chunked_runner.py +0 -0
  182. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/implementer/typecheck_loop.py +0 -0
  183. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/implementer.py +0 -0
  184. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/import_coherence.py +0 -0
  185. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/inheritance.py +0 -0
  186. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/init/__init__.py +0 -0
  187. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/init/lexicon_suggest.py +0 -0
  188. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/init/llm_lexicon_suggester.py +0 -0
  189. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/init/stack_detector.py +0 -0
  190. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/knowledge_fetcher.py +0 -0
  191. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/lexicon.py +0 -0
  192. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/lexicon_cli/__init__.py +0 -0
  193. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/lexicon_cli/formatters/__init__.py +0 -0
  194. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/lexicon_cli/formatters/html.py +0 -0
  195. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/lexicon_cli/formatters/json_fmt.py +0 -0
  196. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/lexicon_cli/formatters/md.py +0 -0
  197. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/lexicon_cli/inspector.py +0 -0
  198. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/lexicon_cli/manager.py +0 -0
  199. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/lexicon_cli/reporter.py +0 -0
  200. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/lexicon_cli/threshold.py +0 -0
  201. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/llm/__init__.py +0 -0
  202. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/llm/approval.py +0 -0
  203. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/llm/best_practice_augmenter.py +0 -0
  204. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/llm/criteria_expander.py +0 -0
  205. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/llm/design_doc_extractor.py +0 -0
  206. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/llm/impl_step_deriver.py +0 -0
  207. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/llm/means_catalog_loader.py +0 -0
  208. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/llm/parser.py +0 -0
  209. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/llm/plan_deriver.py +0 -0
  210. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/llm/prompt_builder.py +0 -0
  211. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/llm/strategy_validator.py +0 -0
  212. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/llm/templates/best_practice_augment_meta.md +0 -0
  213. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/llm/templates/criteria_expand_meta.md +0 -0
  214. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/llm/templates/design_doc_extract_meta.md +0 -0
  215. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/llm/templates/impl_step_derive_meta.md +0 -0
  216. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/llm/templates/implementation_step_catalog.yaml +0 -0
  217. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/llm/templates/meta_instruction.md +0 -0
  218. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/llm/templates/plan_derive_meta.md +0 -0
  219. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/llm/templates/verification_means_catalog.yaml +0 -0
  220. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/mcp_server.py +0 -0
  221. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/measure.py +0 -0
  222. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/operational_e2e_audit.py +0 -0
  223. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/operations_derive.py +0 -0
  224. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/parsing/__init__.py +0 -0
  225. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/parsing/_shared.py +0 -0
  226. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/parsing/api_specs.py +0 -0
  227. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/parsing/filesystem_routes.py +0 -0
  228. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/parsing/iac.py +0 -0
  229. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/parsing/python_ast.py +0 -0
  230. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/parsing/schemas.py +0 -0
  231. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/parsing/tests_builddeps.py +0 -0
  232. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/parsing/treesitter.py +0 -0
  233. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/planner.py +0 -0
  234. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/policy.py +0 -0
  235. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/preflight/__init__.py +0 -0
  236. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/preflight/defaults/cli.yaml +0 -0
  237. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/preflight/defaults/generic.yaml +0 -0
  238. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/preflight/defaults/iot.yaml +0 -0
  239. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/preflight/defaults/mobile.yaml +0 -0
  240. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/preflight/defaults/web.yaml +0 -0
  241. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/project_types.py +0 -0
  242. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/propagate.py +0 -0
  243. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/propagation_common.py +0 -0
  244. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/propagator.py +0 -0
  245. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/reconciliation_ledger.py +0 -0
  246. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/reference_resolution.py +0 -0
  247. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/registry.py +0 -0
  248. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/repair/__init__.py +0 -0
  249. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/repair/approval_repair.py +0 -0
  250. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/repair/auto_scope_guard.py +0 -0
  251. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/repair/engine.py +0 -0
  252. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/repair/git_patcher.py +0 -0
  253. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/repair/history.py +0 -0
  254. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/repair/llm_repair_engine.py +0 -0
  255. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/repair/loop.py +0 -0
  256. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/repair/primary_picker.py +0 -0
  257. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/repair/proof_breaks.py +0 -0
  258. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/repair/repair_result.py +0 -0
  259. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/repair/repairability_classifier.py +0 -0
  260. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/repair/schema.py +0 -0
  261. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/repair/templates/analyze_meta.md +0 -0
  262. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/repair/templates/propose_meta.md +0 -0
  263. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/repair/templates/repair_strategy_meta.md +0 -0
  264. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/repair/templates/repairability_meta.md +0 -0
  265. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/repair/test_failure_attribution.py +0 -0
  266. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/repair/verify_runner.py +0 -0
  267. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/repair_slice.py +0 -0
  268. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/require.py +0 -0
  269. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/require_plugins.py +0 -0
  270. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/require_propagate.py +0 -0
  271. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/required_artifacts/defaults/cli.yaml +0 -0
  272. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/required_artifacts/defaults/generic.yaml +0 -0
  273. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/required_artifacts/defaults/iot.yaml +0 -0
  274. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/required_artifacts/defaults/mobile.yaml +0 -0
  275. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/required_artifacts/defaults/web.yaml +0 -0
  276. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/required_artifacts_deriver.py +0 -0
  277. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/requirement_completeness/defaults/cli.yaml +0 -0
  278. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/requirement_completeness/defaults/generic.yaml +0 -0
  279. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/requirement_completeness/defaults/iot.yaml +0 -0
  280. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/requirement_completeness/defaults/mobile.yaml +0 -0
  281. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/requirement_completeness/defaults/web.yaml +0 -0
  282. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/requirement_completeness_auditor.py +0 -0
  283. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/requirement_reconciliation.py +0 -0
  284. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/requirements_meta.py +0 -0
  285. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/restoration_report.py +0 -0
  286. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/restore.py +0 -0
  287. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/routes_extractor.py +0 -0
  288. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/runtime_smoke/__init__.py +0 -0
  289. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/runtime_smoke/checks.py +0 -0
  290. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/runtime_smoke/config.py +0 -0
  291. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/runtime_smoke/report.py +0 -0
  292. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/runtime_smoke/runner.py +0 -0
  293. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/scanner.py +0 -0
  294. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/schema_refs.py +0 -0
  295. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/screen_flow_validator.py +0 -0
  296. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/screen_transition_extractor.py +0 -0
  297. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/screen_transitions/defaults.yaml +0 -0
  298. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/skills_cli/__init__.py +0 -0
  299. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/skills_cli/discovery.py +0 -0
  300. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/skills_cli/manager.py +0 -0
  301. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/skills_cli/paths.py +0 -0
  302. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/surface_reconciliation.py +0 -0
  303. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/synth.py +0 -0
  304. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/templates/codd.yaml.tmpl +0 -0
  305. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/templates/conventions.yaml.tmpl +0 -0
  306. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/templates/data_dependencies.yaml.tmpl +0 -0
  307. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/templates/doc_links.yaml.tmpl +0 -0
  308. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/templates/extract_ai_prompt_baseline.md +0 -0
  309. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/templates/extracted/api-contract.md.j2 +0 -0
  310. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/templates/extracted/architecture-overview.md.j2 +0 -0
  311. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/templates/extracted/module-detail.md.j2 +0 -0
  312. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/templates/extracted/schema-design.md.j2 +0 -0
  313. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/templates/extracted/system-context.md.j2 +0 -0
  314. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/templates/gitignore.tmpl +0 -0
  315. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/templates/lexicon_questions.md +0 -0
  316. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/templates/lexicon_schema.yaml +0 -0
  317. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/templates/overrides.yaml.tmpl +0 -0
  318. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/test_detection.py +0 -0
  319. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/test_import_coherence.py +0 -0
  320. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/traceability.py +0 -0
  321. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/validator.py +0 -0
  322. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/vb_marker_authenticity.py +0 -0
  323. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/vb_rerun_scope.py +0 -0
  324. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/watch/__init__.py +0 -0
  325. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/watch/events.py +0 -0
  326. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/watch/propagation_log.py +0 -0
  327. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/watch/propagation_pipeline.py +0 -0
  328. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/watch/test_runner.py +0 -0
  329. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/watch/watcher.py +0 -0
  330. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd/wiring.py +0 -0
  331. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/ai_governance_eu_act/coverage_matrix.md +0 -0
  332. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/ai_governance_eu_act/elicit_extend.md +0 -0
  333. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/ai_governance_eu_act/lexicon.yaml +0 -0
  334. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/ai_governance_eu_act/manifest.yaml +0 -0
  335. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/ai_governance_eu_act/recommended_kinds.yaml +0 -0
  336. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/ai_governance_eu_act/severity_rules.yaml +0 -0
  337. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/api_rate_limiting_caching/coverage_matrix.md +0 -0
  338. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/api_rate_limiting_caching/elicit_extend.md +0 -0
  339. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/api_rate_limiting_caching/lexicon.yaml +0 -0
  340. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/api_rate_limiting_caching/manifest.yaml +0 -0
  341. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/api_rate_limiting_caching/recommended_kinds.yaml +0 -0
  342. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/api_rate_limiting_caching/severity_rules.yaml +0 -0
  343. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/api_rest_openapi/coverage_matrix.md +0 -0
  344. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/api_rest_openapi/elicit_extend.md +0 -0
  345. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/api_rest_openapi/lexicon.yaml +0 -0
  346. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/api_rest_openapi/manifest.yaml +0 -0
  347. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/api_rest_openapi/recommended_kinds.yaml +0 -0
  348. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/api_rest_openapi/severity_rules.yaml +0 -0
  349. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/babok/elicit_extend.md +0 -0
  350. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/babok/lexicon.yaml +0 -0
  351. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/babok/manifest.yaml +0 -0
  352. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/babok/recommended_kinds.yaml +0 -0
  353. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/babok/severity_rules.yaml +0 -0
  354. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/backend_event_cloudevents/coverage_matrix.md +0 -0
  355. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/backend_event_cloudevents/elicit_extend.md +0 -0
  356. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/backend_event_cloudevents/lexicon.yaml +0 -0
  357. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/backend_event_cloudevents/manifest.yaml +0 -0
  358. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/backend_event_cloudevents/recommended_kinds.yaml +0 -0
  359. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/backend_event_cloudevents/severity_rules.yaml +0 -0
  360. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/backend_graphql/coverage_matrix.md +0 -0
  361. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/backend_graphql/elicit_extend.md +0 -0
  362. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/backend_graphql/lexicon.yaml +0 -0
  363. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/backend_graphql/manifest.yaml +0 -0
  364. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/backend_graphql/recommended_kinds.yaml +0 -0
  365. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/backend_graphql/severity_rules.yaml +0 -0
  366. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/backend_grpc_proto/coverage_matrix.md +0 -0
  367. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/backend_grpc_proto/elicit_extend.md +0 -0
  368. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/backend_grpc_proto/lexicon.yaml +0 -0
  369. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/backend_grpc_proto/manifest.yaml +0 -0
  370. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/backend_grpc_proto/recommended_kinds.yaml +0 -0
  371. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/backend_grpc_proto/severity_rules.yaml +0 -0
  372. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/compliance_hipaa/coverage_matrix.md +0 -0
  373. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/compliance_hipaa/elicit_extend.md +0 -0
  374. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/compliance_hipaa/lexicon.yaml +0 -0
  375. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/compliance_hipaa/manifest.yaml +0 -0
  376. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/compliance_hipaa/recommended_kinds.yaml +0 -0
  377. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/compliance_hipaa/severity_rules.yaml +0 -0
  378. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/compliance_iso27001/coverage_matrix.md +0 -0
  379. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/compliance_iso27001/elicit_extend.md +0 -0
  380. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/compliance_iso27001/lexicon.yaml +0 -0
  381. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/compliance_iso27001/manifest.yaml +0 -0
  382. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/compliance_iso27001/recommended_kinds.yaml +0 -0
  383. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/compliance_iso27001/severity_rules.yaml +0 -0
  384. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/compliance_pci_dss_4/coverage_matrix.md +0 -0
  385. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/compliance_pci_dss_4/elicit_extend.md +0 -0
  386. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/compliance_pci_dss_4/lexicon.yaml +0 -0
  387. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/compliance_pci_dss_4/manifest.yaml +0 -0
  388. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/compliance_pci_dss_4/recommended_kinds.yaml +0 -0
  389. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/compliance_pci_dss_4/severity_rules.yaml +0 -0
  390. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/data_aggregation_policies/coverage_matrix.md +0 -0
  391. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/data_aggregation_policies/elicit_extend.md +0 -0
  392. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/data_aggregation_policies/lexicon.yaml +0 -0
  393. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/data_aggregation_policies/manifest.yaml +0 -0
  394. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/data_aggregation_policies/recommended_kinds.yaml +0 -0
  395. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/data_aggregation_policies/severity_rules.yaml +0 -0
  396. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/coverage_matrix.md +0 -0
  397. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/elicit_extend.md +0 -0
  398. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/lexicon.yaml +0 -0
  399. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/manifest.yaml +0 -0
  400. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/recommended_kinds.yaml +0 -0
  401. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/severity_rules.yaml +0 -0
  402. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/data_governance_appi_gdpr/coverage_matrix.md +0 -0
  403. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/data_governance_appi_gdpr/elicit_extend.md +0 -0
  404. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/data_governance_appi_gdpr/lexicon.yaml +0 -0
  405. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/data_governance_appi_gdpr/manifest.yaml +0 -0
  406. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/data_governance_appi_gdpr/recommended_kinds.yaml +0 -0
  407. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/data_governance_appi_gdpr/severity_rules.yaml +0 -0
  408. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/data_nosql_jsonschema/coverage_matrix.md +0 -0
  409. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/data_nosql_jsonschema/elicit_extend.md +0 -0
  410. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/data_nosql_jsonschema/lexicon.yaml +0 -0
  411. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/data_nosql_jsonschema/manifest.yaml +0 -0
  412. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/data_nosql_jsonschema/recommended_kinds.yaml +0 -0
  413. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/data_nosql_jsonschema/severity_rules.yaml +0 -0
  414. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/data_relational_iso_sql/coverage_matrix.md +0 -0
  415. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/data_relational_iso_sql/elicit_extend.md +0 -0
  416. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/data_relational_iso_sql/lexicon.yaml +0 -0
  417. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/data_relational_iso_sql/manifest.yaml +0 -0
  418. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/data_relational_iso_sql/recommended_kinds.yaml +0 -0
  419. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/data_relational_iso_sql/severity_rules.yaml +0 -0
  420. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/ddd_domain_driven_design/coverage_matrix.md +0 -0
  421. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/ddd_domain_driven_design/elicit_extend.md +0 -0
  422. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/ddd_domain_driven_design/lexicon.yaml +0 -0
  423. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/ddd_domain_driven_design/manifest.yaml +0 -0
  424. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/ddd_domain_driven_design/recommended_kinds.yaml +0 -0
  425. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/ddd_domain_driven_design/severity_rules.yaml +0 -0
  426. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/dora_sre_metrics/coverage_matrix.md +0 -0
  427. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/dora_sre_metrics/elicit_extend.md +0 -0
  428. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/dora_sre_metrics/lexicon.yaml +0 -0
  429. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/dora_sre_metrics/manifest.yaml +0 -0
  430. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/dora_sre_metrics/recommended_kinds.yaml +0 -0
  431. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/dora_sre_metrics/severity_rules.yaml +0 -0
  432. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/i18n_unicode_cldr/coverage_matrix.md +0 -0
  433. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/i18n_unicode_cldr/elicit_extend.md +0 -0
  434. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/i18n_unicode_cldr/lexicon.yaml +0 -0
  435. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/i18n_unicode_cldr/manifest.yaml +0 -0
  436. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/i18n_unicode_cldr/recommended_kinds.yaml +0 -0
  437. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/i18n_unicode_cldr/severity_rules.yaml +0 -0
  438. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/ml_model_cards/coverage_matrix.md +0 -0
  439. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/ml_model_cards/elicit_extend.md +0 -0
  440. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/ml_model_cards/lexicon.yaml +0 -0
  441. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/ml_model_cards/manifest.yaml +0 -0
  442. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/ml_model_cards/recommended_kinds.yaml +0 -0
  443. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/ml_model_cards/severity_rules.yaml +0 -0
  444. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/mobile_a11y_native/coverage_matrix.md +0 -0
  445. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/mobile_a11y_native/elicit_extend.md +0 -0
  446. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/mobile_a11y_native/lexicon.yaml +0 -0
  447. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/mobile_a11y_native/manifest.yaml +0 -0
  448. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/mobile_a11y_native/recommended_kinds.yaml +0 -0
  449. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/mobile_a11y_native/severity_rules.yaml +0 -0
  450. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/mobile_android_material3/coverage_matrix.md +0 -0
  451. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/mobile_android_material3/elicit_extend.md +0 -0
  452. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/mobile_android_material3/lexicon.yaml +0 -0
  453. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/mobile_android_material3/manifest.yaml +0 -0
  454. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/mobile_android_material3/recommended_kinds.yaml +0 -0
  455. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/mobile_android_material3/severity_rules.yaml +0 -0
  456. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/mobile_ios_hig/coverage_matrix.md +0 -0
  457. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/mobile_ios_hig/elicit_extend.md +0 -0
  458. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/mobile_ios_hig/lexicon.yaml +0 -0
  459. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/mobile_ios_hig/manifest.yaml +0 -0
  460. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/mobile_ios_hig/recommended_kinds.yaml +0 -0
  461. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/mobile_ios_hig/severity_rules.yaml +0 -0
  462. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/mobile_security_masvs/coverage_matrix.md +0 -0
  463. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/mobile_security_masvs/elicit_extend.md +0 -0
  464. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/mobile_security_masvs/lexicon.yaml +0 -0
  465. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/mobile_security_masvs/manifest.yaml +0 -0
  466. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/mobile_security_masvs/recommended_kinds.yaml +0 -0
  467. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/mobile_security_masvs/severity_rules.yaml +0 -0
  468. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/ops_cicd_pipeline/coverage_matrix.md +0 -0
  469. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/ops_cicd_pipeline/elicit_extend.md +0 -0
  470. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/ops_cicd_pipeline/lexicon.yaml +0 -0
  471. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/ops_cicd_pipeline/manifest.yaml +0 -0
  472. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/ops_cicd_pipeline/recommended_kinds.yaml +0 -0
  473. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/ops_cicd_pipeline/severity_rules.yaml +0 -0
  474. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/ops_iac_terraform/coverage_matrix.md +0 -0
  475. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/ops_iac_terraform/elicit_extend.md +0 -0
  476. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/ops_iac_terraform/lexicon.yaml +0 -0
  477. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/ops_iac_terraform/manifest.yaml +0 -0
  478. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/ops_iac_terraform/recommended_kinds.yaml +0 -0
  479. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/ops_iac_terraform/severity_rules.yaml +0 -0
  480. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/ops_kubernetes/coverage_matrix.md +0 -0
  481. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/ops_kubernetes/elicit_extend.md +0 -0
  482. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/ops_kubernetes/lexicon.yaml +0 -0
  483. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/ops_kubernetes/manifest.yaml +0 -0
  484. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/ops_kubernetes/recommended_kinds.yaml +0 -0
  485. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/ops_kubernetes/severity_rules.yaml +0 -0
  486. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/ops_observability_otel/coverage_matrix.md +0 -0
  487. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/ops_observability_otel/elicit_extend.md +0 -0
  488. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/ops_observability_otel/lexicon.yaml +0 -0
  489. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/ops_observability_otel/manifest.yaml +0 -0
  490. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/ops_observability_otel/recommended_kinds.yaml +0 -0
  491. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/ops_observability_otel/severity_rules.yaml +0 -0
  492. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/process_iso25010/coverage_matrix.md +0 -0
  493. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/process_iso25010/elicit_extend.md +0 -0
  494. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/process_iso25010/lexicon.yaml +0 -0
  495. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/process_iso25010/manifest.yaml +0 -0
  496. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/process_iso25010/recommended_kinds.yaml +0 -0
  497. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/process_iso25010/severity_rules.yaml +0 -0
  498. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/process_test_iso29119/coverage_matrix.md +0 -0
  499. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/process_test_iso29119/elicit_extend.md +0 -0
  500. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/process_test_iso29119/lexicon.yaml +0 -0
  501. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/process_test_iso29119/manifest.yaml +0 -0
  502. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/process_test_iso29119/recommended_kinds.yaml +0 -0
  503. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/process_test_iso29119/severity_rules.yaml +0 -0
  504. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/twelve_factor_app/coverage_matrix.md +0 -0
  505. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/twelve_factor_app/elicit_extend.md +0 -0
  506. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/twelve_factor_app/lexicon.yaml +0 -0
  507. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/twelve_factor_app/manifest.yaml +0 -0
  508. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/twelve_factor_app/recommended_kinds.yaml +0 -0
  509. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/twelve_factor_app/severity_rules.yaml +0 -0
  510. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/coverage_matrix.md +0 -0
  511. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/elicit_extend.md +0 -0
  512. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/lexicon.yaml +0 -0
  513. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/manifest.yaml +0 -0
  514. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/recommended_kinds.yaml +0 -0
  515. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/severity_rules.yaml +0 -0
  516. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/web_authn_webauthn/coverage_matrix.md +0 -0
  517. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/web_authn_webauthn/elicit_extend.md +0 -0
  518. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/web_authn_webauthn/lexicon.yaml +0 -0
  519. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/web_authn_webauthn/manifest.yaml +0 -0
  520. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/web_authn_webauthn/recommended_kinds.yaml +0 -0
  521. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/web_authn_webauthn/severity_rules.yaml +0 -0
  522. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/web_browser_compat/coverage_matrix.md +0 -0
  523. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/web_browser_compat/elicit_extend.md +0 -0
  524. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/web_browser_compat/lexicon.yaml +0 -0
  525. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/web_browser_compat/manifest.yaml +0 -0
  526. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/web_browser_compat/recommended_kinds.yaml +0 -0
  527. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/web_browser_compat/severity_rules.yaml +0 -0
  528. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/web_forms_html5/coverage_matrix.md +0 -0
  529. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/web_forms_html5/elicit_extend.md +0 -0
  530. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/web_forms_html5/lexicon.yaml +0 -0
  531. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/web_forms_html5/manifest.yaml +0 -0
  532. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/web_forms_html5/recommended_kinds.yaml +0 -0
  533. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/web_forms_html5/severity_rules.yaml +0 -0
  534. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/web_performance_core_web_vitals/coverage_matrix.md +0 -0
  535. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/web_performance_core_web_vitals/elicit_extend.md +0 -0
  536. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/web_performance_core_web_vitals/lexicon.yaml +0 -0
  537. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/web_performance_core_web_vitals/manifest.yaml +0 -0
  538. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/web_performance_core_web_vitals/recommended_kinds.yaml +0 -0
  539. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/web_performance_core_web_vitals/severity_rules.yaml +0 -0
  540. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/web_pwa_manifest/coverage_matrix.md +0 -0
  541. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/web_pwa_manifest/elicit_extend.md +0 -0
  542. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/web_pwa_manifest/lexicon.yaml +0 -0
  543. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/web_pwa_manifest/manifest.yaml +0 -0
  544. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/web_pwa_manifest/recommended_kinds.yaml +0 -0
  545. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/web_pwa_manifest/severity_rules.yaml +0 -0
  546. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/web_responsive/coverage_matrix.md +0 -0
  547. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/web_responsive/elicit_extend.md +0 -0
  548. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/web_responsive/lexicon.yaml +0 -0
  549. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/web_responsive/manifest.yaml +0 -0
  550. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/web_responsive/recommended_kinds.yaml +0 -0
  551. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/web_responsive/severity_rules.yaml +0 -0
  552. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/web_security_owasp/coverage_matrix.md +0 -0
  553. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/web_security_owasp/elicit_extend.md +0 -0
  554. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/web_security_owasp/lexicon.yaml +0 -0
  555. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/web_security_owasp/manifest.yaml +0 -0
  556. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/web_security_owasp/recommended_kinds.yaml +0 -0
  557. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/web_security_owasp/severity_rules.yaml +0 -0
  558. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/web_seo_schemaorg/coverage_matrix.md +0 -0
  559. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/web_seo_schemaorg/elicit_extend.md +0 -0
  560. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/web_seo_schemaorg/lexicon.yaml +0 -0
  561. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/web_seo_schemaorg/manifest.yaml +0 -0
  562. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/web_seo_schemaorg/recommended_kinds.yaml +0 -0
  563. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/lexicons/web_seo_schemaorg/severity_rules.yaml +0 -0
  564. {codd_dev-2.49.0 → codd_dev-2.50.0}/codd_plugins/stack_map.yaml +0 -0
  565. {codd_dev-2.49.0 → codd_dev-2.50.0}/docs/cookbook/cdp_browser/README.md +0 -0
  566. {codd_dev-2.49.0 → codd_dev-2.50.0}/docs/cookbook/presentation_aggregation/README.md +0 -0
  567. {codd_dev-2.49.0 → codd_dev-2.50.0}/docs/requirements/README.md +0 -0
  568. {codd_dev-2.49.0 → codd_dev-2.50.0}/dogfood/README.md +0 -0
  569. {codd_dev-2.49.0 → codd_dev-2.50.0}/dogfood/fixtures/flat_py_app/README.md +0 -0
  570. {codd_dev-2.49.0 → codd_dev-2.50.0}/examples/README.md +0 -0
  571. {codd_dev-2.49.0 → codd_dev-2.50.0}/skills/codd-assemble/SKILL.md +0 -0
  572. {codd_dev-2.49.0 → codd_dev-2.50.0}/skills/codd-evolve/SKILL.md +0 -0
  573. {codd_dev-2.49.0 → codd_dev-2.50.0}/skills/codd-generate/SKILL.md +0 -0
  574. {codd_dev-2.49.0 → codd_dev-2.50.0}/skills/codd-greenfield/SKILL.md +0 -0
  575. {codd_dev-2.49.0 → codd_dev-2.50.0}/skills/codd-impact/SKILL.md +0 -0
  576. {codd_dev-2.49.0 → codd_dev-2.50.0}/skills/codd-init/SKILL.md +0 -0
  577. {codd_dev-2.49.0 → codd_dev-2.50.0}/skills/codd-propagate/SKILL.md +0 -0
  578. {codd_dev-2.49.0 → codd_dev-2.50.0}/skills/codd-restore/SKILL.md +0 -0
  579. {codd_dev-2.49.0 → codd_dev-2.50.0}/skills/codd-scan/SKILL.md +0 -0
  580. {codd_dev-2.49.0 → codd_dev-2.50.0}/skills/codd-validate/SKILL.md +0 -0
  581. {codd_dev-2.49.0 → codd_dev-2.50.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.49.0
3
+ Version: 2.50.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.49.0"
3
+ __version__ = "2.50.0"
@@ -607,33 +607,144 @@ def generate_wave(
607
607
  if output_path.exists() and not force:
608
608
  results.append(GenerationResult(node_id=artifact.node_id, path=output_path, status="skipped"))
609
609
  continue
610
-
611
- dependency_documents = _load_dependency_documents(project_root, artifact.depends_on, document_node_paths)
612
- output_path.parent.mkdir(parents=True, exist_ok=True)
613
- combined_conventions = deepcopy(global_conventions) + deepcopy(artifact.conventions)
614
- content = _render_document(
615
- artifact=artifact,
616
- global_conventions=global_conventions,
617
- depended_by=depended_by_map.get(artifact.node_id, []),
618
- body=_generate_document_body(
610
+ results.append(
611
+ _generate_one_artifact(
619
612
  artifact=artifact,
620
- dependency_documents=dependency_documents,
621
- conventions=combined_conventions,
622
- ai_command=resolved_ai_command,
623
613
  project_root=project_root,
624
- feedback=feedback,
625
- max_retries=body_max_retries,
614
+ global_conventions=global_conventions,
615
+ depended_by_map=depended_by_map,
616
+ document_node_paths=document_node_paths,
617
+ resolved_ai_command=resolved_ai_command,
618
+ body_max_retries=body_max_retries,
626
619
  capabilities=capabilities,
627
620
  project_language=project_language,
628
- ),
621
+ feedback=feedback,
622
+ )
629
623
  )
630
- output_path.write_text(content, encoding="utf-8")
631
- results.append(GenerationResult(node_id=artifact.node_id, path=output_path, status="generated"))
632
624
 
633
625
  _enforce_vb_declaration_coherence(project_root, config, results)
634
626
  return results
635
627
 
636
628
 
629
+ def _generate_one_artifact(
630
+ *,
631
+ artifact: WaveArtifact,
632
+ project_root: Path,
633
+ global_conventions: list[dict[str, Any]],
634
+ depended_by_map: dict[str, list[dict[str, Any]]],
635
+ document_node_paths: dict[str, Path],
636
+ resolved_ai_command: str,
637
+ body_max_retries: int,
638
+ capabilities: "ProjectCapabilities | None",
639
+ project_language: str | None,
640
+ feedback: str | None,
641
+ ) -> GenerationResult:
642
+ """Render ONE artifact's document and write it (overwriting any prior file).
643
+
644
+ The shared per-artifact rendering step used by both :func:`generate_wave`
645
+ (the wave loop) and :func:`regenerate_artifact` (the single-doc repair seam).
646
+ Always (re)writes the output; skip-if-exists is the wave loop's decision, not
647
+ this helper's, so a scoped repair can overwrite exactly one doc.
648
+ """
649
+
650
+ output_path = project_root / artifact.output
651
+ dependency_documents = _load_dependency_documents(
652
+ project_root, artifact.depends_on, document_node_paths
653
+ )
654
+ output_path.parent.mkdir(parents=True, exist_ok=True)
655
+ combined_conventions = deepcopy(global_conventions) + deepcopy(artifact.conventions)
656
+ content = _render_document(
657
+ artifact=artifact,
658
+ global_conventions=global_conventions,
659
+ depended_by=depended_by_map.get(artifact.node_id, []),
660
+ body=_generate_document_body(
661
+ artifact=artifact,
662
+ dependency_documents=dependency_documents,
663
+ conventions=combined_conventions,
664
+ ai_command=resolved_ai_command,
665
+ project_root=project_root,
666
+ feedback=feedback,
667
+ max_retries=body_max_retries,
668
+ capabilities=capabilities,
669
+ project_language=project_language,
670
+ ),
671
+ )
672
+ output_path.write_text(content, encoding="utf-8")
673
+ return GenerationResult(node_id=artifact.node_id, path=output_path, status="generated")
674
+
675
+
676
+ def regenerate_artifact(
677
+ project_root: Path,
678
+ *,
679
+ node_id: str | None = None,
680
+ output_path: str | None = None,
681
+ feedback: str | None = None,
682
+ ai_command: str | None = None,
683
+ ) -> GenerationResult:
684
+ """Regenerate a SINGLE wave artifact in place, scoped to one document.
685
+
686
+ The thin seam the greenfield generate-time VB-registry repair uses: it
687
+ rewrites ONLY the canonical VB doc (``docs/test/test_strategy.md``) with
688
+ repair feedback, WITHOUT re-running the whole wave (which would clobber the
689
+ sibling governance/design docs already generated). Reuses the exact wave
690
+ plumbing (:func:`_generate_one_artifact` → ``_load_dependency_documents`` /
691
+ ``_render_document`` / ``_generate_document_body``); only the artifact
692
+ selection (by ``node_id`` or ``output``) and the forced overwrite differ.
693
+
694
+ Identify the target by ``node_id`` (preferred) or ``output_path`` (the
695
+ artifact's ``output``). Raises ``ValueError`` if no/!=1 wave artifact matches
696
+ — an ambiguous or absent target must fail loudly, never silently no-op.
697
+ """
698
+
699
+ from codd.scanner import build_document_node_path_map
700
+
701
+ if not node_id and not output_path:
702
+ raise ValueError("regenerate_artifact requires node_id or output_path")
703
+
704
+ config = _load_project_config(project_root)
705
+ artifacts = _load_wave_artifacts(config)
706
+
707
+ def _matches(candidate: WaveArtifact) -> bool:
708
+ if node_id is not None and candidate.node_id == node_id:
709
+ return True
710
+ if output_path is not None:
711
+ want = output_path.replace("\\", "/").strip("/")
712
+ have = str(candidate.output).replace("\\", "/").strip("/")
713
+ if want == have:
714
+ return True
715
+ return False
716
+
717
+ matched = [artifact for artifact in artifacts if _matches(artifact)]
718
+ if not matched:
719
+ target = node_id or output_path
720
+ raise ValueError(f"wave_config has no artifact matching {target!r}")
721
+ if len(matched) > 1:
722
+ target = node_id or output_path
723
+ raise ValueError(f"wave_config has {len(matched)} artifacts matching {target!r}; ambiguous")
724
+
725
+ artifact = matched[0]
726
+ resolved_ai_command = _resolve_ai_command(config, ai_command, command_name="generate")
727
+ global_conventions = _normalize_conventions(config.get("conventions", []))
728
+ depended_by_map = _build_depended_by_map(artifacts)
729
+ document_node_paths = build_document_node_path_map(project_root, config)
730
+ body_max_retries = _body_max_retries(config)
731
+ capabilities = _resolve_generation_capabilities(config, project_root)
732
+ project_language = _resolve_project_language(config)
733
+
734
+ return _generate_one_artifact(
735
+ artifact=artifact,
736
+ project_root=project_root,
737
+ global_conventions=global_conventions,
738
+ depended_by_map=depended_by_map,
739
+ document_node_paths=document_node_paths,
740
+ resolved_ai_command=resolved_ai_command,
741
+ body_max_retries=body_max_retries,
742
+ capabilities=capabilities,
743
+ project_language=project_language,
744
+ feedback=feedback,
745
+ )
746
+
747
+
637
748
  def _enforce_vb_declaration_coherence(
638
749
  project_root: Path,
639
750
  config: dict[str, Any],
@@ -657,8 +657,181 @@ class GreenfieldPipeline:
657
657
  record["units"][key] = STATUS_DONE
658
658
  self._checkpoint(project_root)
659
659
  self.echo(f"[greenfield] generate wave {wave}: {detail}")
660
+
661
+ # After ALL waves are generated, enforce the canonical VB-registry
662
+ # completeness contract (model-independence): a weak model can reference
663
+ # VB ids in acceptance-criteria tables yet declare none in the canonical
664
+ # registry, which honest-REDs only later at implement with a confusing
665
+ # orphan message. Catch it HERE and drive a bounded, canonical-doc-scoped
666
+ # repair so a coherent registry exists before implement — or fail
667
+ # honestly at generate. Runs BEFORE implement by construction.
668
+ self._enforce_generate_vb_registry_gate(project_root, options)
660
669
  record["detail"] = f"{len(waves)} wave(s) generated"
661
670
 
671
+ def _enforce_generate_vb_registry_gate(
672
+ self, project_root: Path, options: dict[str, Any]
673
+ ) -> None:
674
+ """Generate-time canonical VB-registry completeness gate + bounded repair.
675
+
676
+ Adopts the GPT design (B as contract + A as bounded generate repair). On
677
+ error-level :func:`validate_vb_registry_completeness` issues (empty
678
+ canonical registry / unresolved AC references / missing canonical doc),
679
+ re-invoke generation SCOPED TO the canonical VB doc only
680
+ (:func:`codd.generator.regenerate_artifact`) with repair feedback, then
681
+ re-validate. After the bounded attempts (1–2), a still-failing registry
682
+ raises :class:`StageError` (generate honest-RED).
683
+
684
+ The MODEL writes the declarations — this is NOT deterministic auto-derive.
685
+ Acceptance-criteria references are used ONLY as the candidate list in the
686
+ repair feedback, NEVER auto-inserted into the canonical table (rejecting
687
+ design option C). Skipped for a project with no verifiable-behavior
688
+ surface (:func:`project_expects_vb_registry`) and when the owner turned
689
+ the coverage gate off — the registry contract tracks the coverage gate.
690
+ """
691
+ from codd.config import load_project_config
692
+ from codd.verifiable_behavior_audit import (
693
+ _CANONICAL_VB_OUTPUT_PATH,
694
+ coverage_gate_enabled,
695
+ project_expects_vb_registry,
696
+ validate_vb_registry_completeness,
697
+ )
698
+
699
+ if not bool(options.get("coverage_gate", True)):
700
+ return
701
+ try:
702
+ config = load_project_config(project_root)
703
+ except (FileNotFoundError, ValueError):
704
+ config = {}
705
+ if not coverage_gate_enabled(config):
706
+ return
707
+ if not project_expects_vb_registry(project_root, config):
708
+ # No VB surface planned/declared — nothing to certify. Mirrors the
709
+ # brownfield "nothing to audit -> pass" rule; a minimal greenfield
710
+ # project with only design docs is not forced to invent behaviors.
711
+ return
712
+
713
+ max_attempts = max(1, int(self._option_overrides.get("max_repair_attempts") or 0) or 2)
714
+ max_attempts = min(max_attempts, 2) # bounded: 1–2 attempts (design)
715
+
716
+ # Reference the seam through the module (not a bound name) so a test's
717
+ # monkeypatch on ``codd.generator.regenerate_artifact`` is honored.
718
+ from codd import generator as generator_module
719
+
720
+ issues = validate_vb_registry_completeness(project_root, config, strict=True)
721
+ errors = [issue for issue in issues if issue.severity == "error"]
722
+ attempt = 0
723
+ while errors and attempt < max_attempts:
724
+ attempt += 1
725
+ feedback = self._build_vb_registry_repair_feedback(project_root, config, errors)
726
+ self.echo(
727
+ f"[greenfield] generate VB-registry gate: {len(errors)} issue(s); "
728
+ f"re-generating {_CANONICAL_VB_OUTPUT_PATH} with repair feedback "
729
+ f"(attempt {attempt}/{max_attempts})"
730
+ )
731
+ try:
732
+ generator_module.regenerate_artifact(
733
+ project_root,
734
+ output_path=_CANONICAL_VB_OUTPUT_PATH,
735
+ feedback=feedback,
736
+ ai_command=self.ai_command,
737
+ )
738
+ except (FileNotFoundError, ValueError) as exc:
739
+ # The canonical doc is not a planned artifact, or regeneration
740
+ # failed — cannot repair. Fail honestly with the original gap.
741
+ raise StageError(
742
+ f"generate VB-registry gate: canonical registry repair could not run "
743
+ f"({exc}); the canonical VB document ({_CANONICAL_VB_OUTPUT_PATH}) must "
744
+ "declare every verifiable behavior as a first-column VB-* row."
745
+ ) from exc
746
+ issues = validate_vb_registry_completeness(project_root, config, strict=True)
747
+ errors = [issue for issue in issues if issue.severity == "error"]
748
+
749
+ if errors:
750
+ detail = "\n".join(f" - {issue.message}" for issue in errors)
751
+ raise StageError(
752
+ "generate VB-registry gate FAILED: the generated canonical verifiable-behavior "
753
+ f"registry ({_CANONICAL_VB_OUTPUT_PATH}) is still incomplete after "
754
+ f"{attempt} repair attempt(s):\n{detail}\n"
755
+ "Declare every real verifiable behavior exactly once as a first-column VB-* row "
756
+ "in the canonical doc so coverage/authenticity can certify the system."
757
+ )
758
+ if attempt:
759
+ self.echo(
760
+ f"[greenfield] generate VB-registry gate: canonical registry repaired "
761
+ f"after {attempt} attempt(s) — OK"
762
+ )
763
+
764
+ def _build_vb_registry_repair_feedback(
765
+ self, project_root: Path, config: dict[str, Any], errors: list[Any]
766
+ ) -> str:
767
+ """Repair feedback for the canonical-doc-scoped regeneration.
768
+
769
+ Lists the canonical-registry declaration count + the unresolved AC
770
+ references (the CANDIDATE id list, never auto-inserted) + the repair
771
+ rules in the shape the GPT design specified. The references are a hint
772
+ about which behaviors likely exist — the model decides which correspond
773
+ to real behaviors and declares them; nothing is derived deterministically.
774
+ """
775
+ from codd.verifiable_behavior_audit import (
776
+ _CANONICAL_VB_OUTPUT_PATH,
777
+ _config_without_doc_pin,
778
+ _iter_doc_texts,
779
+ _normalize_vb_id,
780
+ is_canonical_vb_doc,
781
+ parse_vb_references,
782
+ parse_vb_table,
783
+ )
784
+
785
+ # Scan the WHOLE test-doc tree (not just test_coverage.docs) so the
786
+ # candidate-reference list mirrors what validate_vb_registry_completeness
787
+ # saw (an AC doc that references VB ids is not in test_coverage.docs).
788
+ doc_texts = _iter_doc_texts(project_root, config=_config_without_doc_pin(config))
789
+ canonical_count = 0
790
+ declared: set[str] = set()
791
+ for doc, text in doc_texts:
792
+ if not is_canonical_vb_doc(output_path=doc):
793
+ continue
794
+ rows = parse_vb_table(text, source_doc=doc)
795
+ canonical_count += len(rows)
796
+ declared.update(_normalize_vb_id(row.vb_id) for row in rows)
797
+
798
+ # Collect unresolved references (id -> the docs that reference it) as the
799
+ # CANDIDATE list only — never auto-inserted into the canonical table.
800
+ candidates: dict[str, set[str]] = {}
801
+ for doc, text in doc_texts:
802
+ if is_canonical_vb_doc(output_path=doc):
803
+ continue
804
+ for ref in parse_vb_references(text, source_doc=doc):
805
+ if _normalize_vb_id(ref.vb_id) in declared:
806
+ continue
807
+ candidates.setdefault(ref.vb_id, set()).add(doc)
808
+
809
+ lines = [
810
+ "The generated verifiable-behavior (VB) registry is incomplete.",
811
+ "",
812
+ "Canonical registry:",
813
+ f"- {_CANONICAL_VB_OUTPUT_PATH} declares {canonical_count} canonical VB-* row(s).",
814
+ ]
815
+ if candidates:
816
+ lines.append("")
817
+ lines.append("Unresolved VB references (candidate ids — NOT yet declared canonically):")
818
+ for vb_id in sorted(candidates):
819
+ docs = ", ".join(sorted(candidates[vb_id]))
820
+ lines.append(f"- {vb_id} (referenced in {docs})")
821
+ lines.extend(
822
+ [
823
+ "",
824
+ "Repair rules:",
825
+ f"- Rewrite ONLY {_CANONICAL_VB_OUTPUT_PATH}.",
826
+ "- Declare every real verifiable behavior exactly once as a first-column VB-* row.",
827
+ "- Use a referenced id only when it corresponds to a real behavior derived from "
828
+ "the requirements/design; fix a reference elsewhere only if its id is genuinely wrong.",
829
+ "- Do NOT add or modify `codd: covers` markers.",
830
+ "- Do NOT edit source or executable tests.",
831
+ ]
832
+ )
833
+ return "\n".join(lines)
834
+
662
835
  # ── stage: implement ────────────────────────────────────
663
836
 
664
837
  def _stage_implement(self, project_root: Path, record: dict[str, Any], options: dict[str, Any]) -> None:
@@ -2522,6 +2695,7 @@ def _enforce_stage_coverage_gate(
2522
2695
  coverage_gate_enabled,
2523
2696
  coverage_gate_max_retries,
2524
2697
  format_gap_feedback,
2698
+ project_expects_vb_registry,
2525
2699
  run_implement_coverage_gate,
2526
2700
  )
2527
2701
 
@@ -2536,6 +2710,24 @@ def _enforce_stage_coverage_gate(
2536
2710
  if not coverage_gate_enabled(config):
2537
2711
  return
2538
2712
 
2713
+ # GREENFIELD-ONLY empty-registry hard-fail (rear guard behind the generate
2714
+ # gate). For a project that is EXPECTED to own a canonical VB registry (it
2715
+ # plans/declares one — see project_expects_vb_registry), an empty audit means
2716
+ # NO verifiable behaviors were declared, so orphan never fires and the
2717
+ # marker-authenticity gate has nothing to judge — verify could pass over a
2718
+ # build whose VB-coverage contract was never generated. Fail honestly here.
2719
+ # This does NOT change the brownfield run_implement_coverage_gate
2720
+ # "nothing to audit -> pass" rule (that path is untouched); it gates ONLY the
2721
+ # greenfield autopilot, and ONLY when a VB surface was expected — a minimal
2722
+ # greenfield project with no VB surface still passes.
2723
+ if project_expects_vb_registry(project_root, config):
2724
+ if not build_vb_coverage_audit(project_root, config=config).rows:
2725
+ raise StageError(
2726
+ "greenfield requires a non-empty canonical VB registry in "
2727
+ "docs/test/test_strategy.md; no verifiable behaviors were declared, "
2728
+ "so coverage/authenticity cannot certify the generated system."
2729
+ )
2730
+
2539
2731
  # Pass the configured test dirs as the audited output paths so the gate
2540
2732
  # treats this as a test-related run (it is — every test the build will ever
2541
2733
  # have now exists) and evaluates the FULL project VB universe in one pass.