codd-dev 2.75.0__tar.gz → 2.77.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (612) hide show
  1. {codd_dev-2.75.0 → codd_dev-2.77.0}/PKG-INFO +1 -1
  2. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/__init__.py +1 -1
  3. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/implement_oracle.py +5 -2
  4. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/languages/__init__.py +4 -0
  5. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/languages/loader.py +94 -1
  6. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/languages/profile.py +59 -4
  7. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/languages/profiles/go.yaml +3 -1
  8. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/languages/profiles/python.yaml +2 -2
  9. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/languages/profiles/typescript.yaml +3 -2
  10. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/languages/verify_plan.py +28 -3
  11. {codd_dev-2.75.0 → codd_dev-2.77.0}/pyproject.toml +1 -1
  12. {codd_dev-2.75.0 → codd_dev-2.77.0}/.gitignore +0 -0
  13. {codd_dev-2.75.0 → codd_dev-2.77.0}/LICENSE +0 -0
  14. {codd_dev-2.75.0 → codd_dev-2.77.0}/README.md +0 -0
  15. {codd_dev-2.75.0 → codd_dev-2.77.0}/bench_fixture/README.md +0 -0
  16. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/__main__.py +0 -0
  17. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/_git_helper.py +0 -0
  18. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/action_outcome.py +0 -0
  19. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/ai_invoke.py +0 -0
  20. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/ai_patch.py +0 -0
  21. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/artifact_contract.py +0 -0
  22. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/artifact_ids.py +0 -0
  23. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/artifacts/catalog.yaml +0 -0
  24. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/ask_user_question_adapter.py +0 -0
  25. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/assembler.py +0 -0
  26. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/bridge.py +0 -0
  27. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/brownfield/__init__.py +0 -0
  28. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/brownfield/pipeline.py +0 -0
  29. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/capability_completeness.py +0 -0
  30. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/claude_cli.py +0 -0
  31. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/cli.py +0 -0
  32. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/clustering.py +0 -0
  33. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/coherence_adapters.py +0 -0
  34. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/coherence_engine.py +0 -0
  35. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/confidence.py +0 -0
  36. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/config.py +0 -0
  37. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/config_schema.py +0 -0
  38. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/contracts.py +0 -0
  39. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/contracts_registry/__init__.py +0 -0
  40. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/contracts_registry/__main__.py +0 -0
  41. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/contracts_registry/certify.py +0 -0
  42. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/contracts_registry/generate_matrix.py +0 -0
  43. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/contracts_registry/registry.py +0 -0
  44. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/coverage_auditor.py +0 -0
  45. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/coverage_execution_coherence.py +0 -0
  46. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/coverage_metrics.py +0 -0
  47. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/dag/__init__.py +0 -0
  48. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/dag/auto_repair.py +0 -0
  49. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/dag/builder.py +0 -0
  50. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/dag/checks/__init__.py +0 -0
  51. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/dag/checks/_one_to_many_detection.py +0 -0
  52. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/dag/checks/artifact_contract_check.py +0 -0
  53. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/dag/checks/ci_health.py +0 -0
  54. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/dag/checks/dependency_freshness.py +0 -0
  55. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/dag/checks/depends_on_consistency.py +0 -0
  56. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/dag/checks/deployment_completeness.py +0 -0
  57. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/dag/checks/edge_validity.py +0 -0
  58. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/dag/checks/environment_coverage.py +0 -0
  59. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/dag/checks/implementation_coverage.py +0 -0
  60. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/dag/checks/node_completeness.py +0 -0
  61. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/dag/checks/opt_out.py +0 -0
  62. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/dag/checks/task_completion.py +0 -0
  63. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/dag/checks/transitive_closure.py +0 -0
  64. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/dag/checks/ui_coherence.py +0 -0
  65. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/dag/checks/user_journey_coherence.py +0 -0
  66. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/dag/coverage_axes.py +0 -0
  67. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/dag/defaults/cli.yaml +0 -0
  68. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/dag/defaults/cpp_embedded.yaml +0 -0
  69. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/dag/defaults/csharp.yaml +0 -0
  70. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/dag/defaults/elixir.yaml +0 -0
  71. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/dag/defaults/generic.yaml +0 -0
  72. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/dag/defaults/iot.yaml +0 -0
  73. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/dag/defaults/java.yaml +0 -0
  74. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/dag/defaults/kotlin.yaml +0 -0
  75. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/dag/defaults/mobile.yaml +0 -0
  76. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/dag/defaults/ruby.yaml +0 -0
  77. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/dag/defaults/rust.yaml +0 -0
  78. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/dag/defaults/scala.yaml +0 -0
  79. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/dag/defaults/swift.yaml +0 -0
  80. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/dag/defaults/test_frameworks.yaml +0 -0
  81. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/dag/defaults/web.yaml +0 -0
  82. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/dag/extractor.py +0 -0
  83. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/dag/impact.py +0 -0
  84. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/dag/runner.py +0 -0
  85. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/defaults.py +0 -0
  86. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/defaults.yaml +0 -0
  87. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/dependency_lock_coherence.py +0 -0
  88. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/deploy_targets/__init__.py +0 -0
  89. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/deploy_targets/app_service.py +0 -0
  90. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/deploy_targets/base.py +0 -0
  91. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/deploy_targets/docker_compose.py +0 -0
  92. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/deployer.py +0 -0
  93. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/deployment/__init__.py +0 -0
  94. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/deployment/checks/__init__.py +0 -0
  95. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/deployment/defaults/deploy_targets.yaml +0 -0
  96. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/deployment/defaults/runtime_capability_inference.yaml +0 -0
  97. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/deployment/defaults/schema_providers.yaml +0 -0
  98. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/deployment/defaults/verification_templates.yaml +0 -0
  99. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/deployment/extractor.py +0 -0
  100. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/deployment/providers/__init__.py +0 -0
  101. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/deployment/providers/ai_command.py +0 -0
  102. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/deployment/providers/ai_command_factory.py +0 -0
  103. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/deployment/providers/codex_app_server.py +0 -0
  104. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/deployment/providers/llm_consideration.py +0 -0
  105. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/deployment/providers/schema/__init__.py +0 -0
  106. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/deployment/providers/schema/prisma.py +0 -0
  107. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/deployment/providers/target/__init__.py +0 -0
  108. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/deployment/providers/target/docker_compose.py +0 -0
  109. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/deployment/providers/verification/__init__.py +0 -0
  110. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/deployment/providers/verification/assertion_handlers.py +0 -0
  111. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/deployment/providers/verification/cdp_browser.py +0 -0
  112. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/deployment/providers/verification/cdp_engines.py +0 -0
  113. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/deployment/providers/verification/cdp_launchers.py +0 -0
  114. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/deployment/providers/verification/cdp_wire.py +0 -0
  115. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/deployment/providers/verification/curl.py +0 -0
  116. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/deployment/providers/verification/form_strategies.py +0 -0
  117. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/deployment/providers/verification/means_catalog.py +0 -0
  118. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/deployment/providers/verification/playwright.py +0 -0
  119. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/deployment/providers/verification/pytest_http.py +0 -0
  120. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/deployment/providers/verification/vitest.py +0 -0
  121. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/design_md.py +0 -0
  122. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/diff/__init__.py +0 -0
  123. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/diff/apply.py +0 -0
  124. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/diff/engine.py +0 -0
  125. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/diff/persistence.py +0 -0
  126. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/diff/templates/diff_prompt.md +0 -0
  127. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/discovery.py +0 -0
  128. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/drift.py +0 -0
  129. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/e2e_contract_coherence.py +0 -0
  130. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/e2e_extractor.py +0 -0
  131. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/e2e_generator.py +0 -0
  132. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/e2e_harness.py +0 -0
  133. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/e2e_runner.py +0 -0
  134. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/elicit/__init__.py +0 -0
  135. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/elicit/apply.py +0 -0
  136. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/elicit/engine.py +0 -0
  137. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/elicit/finding.py +0 -0
  138. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/elicit/formatters/__init__.py +0 -0
  139. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/elicit/formatters/base.py +0 -0
  140. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/elicit/formatters/interactive.py +0 -0
  141. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/elicit/formatters/json_fmt.py +0 -0
  142. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/elicit/formatters/md.py +0 -0
  143. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/elicit/lexicon_loader.py +0 -0
  144. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/elicit/persistence.py +0 -0
  145. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/elicit/templates/elicit_prompt_L0.md +0 -0
  146. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/env_refs.py +0 -0
  147. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/extract_ai.py +0 -0
  148. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/extract_paths.py +0 -0
  149. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/extractor.py +0 -0
  150. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/fix/__init__.py +0 -0
  151. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/fix/candidate_selector.py +0 -0
  152. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/fix/design_updater.py +0 -0
  153. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/fix/impl_propagation.py +0 -0
  154. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/fix/interactive_prompt.py +0 -0
  155. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/fix/phenomenon_fixer.py +0 -0
  156. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/fix/phenomenon_parser.py +0 -0
  157. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/fix/risk_classifier.py +0 -0
  158. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/fix/templates/clarification_question.txt +0 -0
  159. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/fix/templates/design_update.txt +0 -0
  160. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/fix/templates/impl_update.txt +0 -0
  161. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/fix/templates/phenomenon_parse.txt +0 -0
  162. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/fix/templates/risk_assessment.txt +0 -0
  163. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/fix/templates_loader.py +0 -0
  164. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/fixer.py +0 -0
  165. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/fixup_drift.py +0 -0
  166. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/fixup_drift_strategies/__init__.py +0 -0
  167. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/fixup_drift_strategies/design_token_drift.py +0 -0
  168. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/fixup_drift_strategies/lexicon_violation.py +0 -0
  169. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/fixup_drift_strategies/url_drift.py +0 -0
  170. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/frontmatter.py +0 -0
  171. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/generator.py +0 -0
  172. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/git_evidence.py +0 -0
  173. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/graph.py +0 -0
  174. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/greenfield/__init__.py +0 -0
  175. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/greenfield/pipeline.py +0 -0
  176. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/hitl_session.py +0 -0
  177. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/hooks/__init__.py +0 -0
  178. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/hooks/pre-commit +0 -0
  179. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/hooks/recipes/claude_requirements_nudge.json +0 -0
  180. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/hooks/recipes/claude_settings_example.json +0 -0
  181. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/hooks/recipes/codex_hook.sh +0 -0
  182. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/hooks/recipes/git_post_commit.sh +0 -0
  183. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/hooks/recipes/git_pre_commit.sh +0 -0
  184. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/iac_nfr.py +0 -0
  185. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/implement_oracle_scope.py +0 -0
  186. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/implementer/__init__.py +0 -0
  187. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/implementer/chunked_runner.py +0 -0
  188. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/implementer/typecheck_loop.py +0 -0
  189. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/implementer.py +0 -0
  190. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/import_coherence.py +0 -0
  191. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/inheritance.py +0 -0
  192. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/init/__init__.py +0 -0
  193. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/init/lexicon_suggest.py +0 -0
  194. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/init/llm_lexicon_suggester.py +0 -0
  195. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/init/stack_detector.py +0 -0
  196. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/knowledge_fetcher.py +0 -0
  197. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/languages/adapters/__init__.py +0 -0
  198. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/languages/adapters/runner_report.py +0 -0
  199. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/languages/builtin_adapters.py +0 -0
  200. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/languages/compat.py +0 -0
  201. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/languages/contract.py +0 -0
  202. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/languages/path_planner.py +0 -0
  203. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/languages/registry.py +0 -0
  204. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/languages/verify_executor.py +0 -0
  205. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/lexicon.py +0 -0
  206. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/lexicon_cli/__init__.py +0 -0
  207. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/lexicon_cli/formatters/__init__.py +0 -0
  208. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/lexicon_cli/formatters/html.py +0 -0
  209. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/lexicon_cli/formatters/json_fmt.py +0 -0
  210. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/lexicon_cli/formatters/md.py +0 -0
  211. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/lexicon_cli/inspector.py +0 -0
  212. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/lexicon_cli/manager.py +0 -0
  213. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/lexicon_cli/reporter.py +0 -0
  214. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/lexicon_cli/threshold.py +0 -0
  215. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/llm/__init__.py +0 -0
  216. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/llm/approval.py +0 -0
  217. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/llm/best_practice_augmenter.py +0 -0
  218. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/llm/criteria_expander.py +0 -0
  219. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/llm/design_doc_extractor.py +0 -0
  220. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/llm/impl_step_deriver.py +0 -0
  221. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/llm/means_catalog_loader.py +0 -0
  222. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/llm/parser.py +0 -0
  223. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/llm/plan_deriver.py +0 -0
  224. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/llm/prompt_builder.py +0 -0
  225. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/llm/strategy_validator.py +0 -0
  226. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/llm/templates/best_practice_augment_meta.md +0 -0
  227. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/llm/templates/criteria_expand_meta.md +0 -0
  228. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/llm/templates/design_doc_extract_meta.md +0 -0
  229. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/llm/templates/impl_step_derive_meta.md +0 -0
  230. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/llm/templates/implementation_step_catalog.yaml +0 -0
  231. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/llm/templates/meta_instruction.md +0 -0
  232. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/llm/templates/plan_derive_meta.md +0 -0
  233. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/llm/templates/verification_means_catalog.yaml +0 -0
  234. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/mcp_server.py +0 -0
  235. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/measure.py +0 -0
  236. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/operational_e2e_audit.py +0 -0
  237. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/operations_derive.py +0 -0
  238. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/parsing/__init__.py +0 -0
  239. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/parsing/_shared.py +0 -0
  240. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/parsing/api_specs.py +0 -0
  241. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/parsing/filesystem_routes.py +0 -0
  242. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/parsing/iac.py +0 -0
  243. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/parsing/python_ast.py +0 -0
  244. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/parsing/schemas.py +0 -0
  245. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/parsing/tests_builddeps.py +0 -0
  246. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/parsing/treesitter.py +0 -0
  247. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/planner.py +0 -0
  248. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/policy.py +0 -0
  249. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/preflight/__init__.py +0 -0
  250. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/preflight/defaults/cli.yaml +0 -0
  251. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/preflight/defaults/generic.yaml +0 -0
  252. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/preflight/defaults/iot.yaml +0 -0
  253. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/preflight/defaults/mobile.yaml +0 -0
  254. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/preflight/defaults/web.yaml +0 -0
  255. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/project_types.py +0 -0
  256. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/propagate.py +0 -0
  257. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/propagation_common.py +0 -0
  258. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/propagator.py +0 -0
  259. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/reconciliation_ledger.py +0 -0
  260. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/reference_resolution.py +0 -0
  261. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/registry.py +0 -0
  262. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/repair/__init__.py +0 -0
  263. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/repair/approval_repair.py +0 -0
  264. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/repair/auto_scope_guard.py +0 -0
  265. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/repair/engine.py +0 -0
  266. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/repair/git_patcher.py +0 -0
  267. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/repair/history.py +0 -0
  268. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/repair/llm_repair_engine.py +0 -0
  269. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/repair/loop.py +0 -0
  270. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/repair/primary_picker.py +0 -0
  271. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/repair/proof_breaks.py +0 -0
  272. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/repair/repair_result.py +0 -0
  273. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/repair/repairability_classifier.py +0 -0
  274. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/repair/schema.py +0 -0
  275. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/repair/templates/analyze_meta.md +0 -0
  276. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/repair/templates/propose_meta.md +0 -0
  277. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/repair/templates/repair_strategy_meta.md +0 -0
  278. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/repair/templates/repairability_meta.md +0 -0
  279. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/repair/test_failure_attribution.py +0 -0
  280. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/repair/verify_runner.py +0 -0
  281. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/repair_slice.py +0 -0
  282. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/require.py +0 -0
  283. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/require_plugins.py +0 -0
  284. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/require_propagate.py +0 -0
  285. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/required_artifacts/defaults/cli.yaml +0 -0
  286. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/required_artifacts/defaults/generic.yaml +0 -0
  287. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/required_artifacts/defaults/iot.yaml +0 -0
  288. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/required_artifacts/defaults/mobile.yaml +0 -0
  289. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/required_artifacts/defaults/web.yaml +0 -0
  290. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/required_artifacts_deriver.py +0 -0
  291. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/requirement_completeness/defaults/cli.yaml +0 -0
  292. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/requirement_completeness/defaults/generic.yaml +0 -0
  293. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/requirement_completeness/defaults/iot.yaml +0 -0
  294. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/requirement_completeness/defaults/mobile.yaml +0 -0
  295. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/requirement_completeness/defaults/web.yaml +0 -0
  296. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/requirement_completeness_auditor.py +0 -0
  297. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/requirement_reconciliation.py +0 -0
  298. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/requirements_meta.py +0 -0
  299. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/restoration_report.py +0 -0
  300. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/restore.py +0 -0
  301. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/routes_extractor.py +0 -0
  302. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/runtime_smoke/__init__.py +0 -0
  303. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/runtime_smoke/checks.py +0 -0
  304. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/runtime_smoke/config.py +0 -0
  305. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/runtime_smoke/report.py +0 -0
  306. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/runtime_smoke/runner.py +0 -0
  307. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/scanner.py +0 -0
  308. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/schema_refs.py +0 -0
  309. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/screen_flow_validator.py +0 -0
  310. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/screen_transition_extractor.py +0 -0
  311. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/screen_transitions/defaults.yaml +0 -0
  312. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/skills_cli/__init__.py +0 -0
  313. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/skills_cli/discovery.py +0 -0
  314. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/skills_cli/manager.py +0 -0
  315. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/skills_cli/paths.py +0 -0
  316. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/stack/__init__.py +0 -0
  317. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/stack/adapters/__init__.py +0 -0
  318. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/stack/adapters/_base.py +0 -0
  319. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/stack/adapters/nextjs.py +0 -0
  320. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/stack/adapters/playwright.py +0 -0
  321. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/stack/compose.py +0 -0
  322. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/stack/loader.py +0 -0
  323. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/stack/lock.py +0 -0
  324. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/stack/obligations.py +0 -0
  325. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/stack/profile.py +0 -0
  326. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/stack/profiles/addons/playwright.yaml +0 -0
  327. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/stack/profiles/addons/prisma.yaml +0 -0
  328. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/stack/profiles/frameworks/nextjs.yaml +0 -0
  329. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/stack/project.py +0 -0
  330. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/stack/registry.py +0 -0
  331. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/stack/resolve.py +0 -0
  332. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/surface_reconciliation.py +0 -0
  333. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/synth.py +0 -0
  334. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/templates/codd.yaml.tmpl +0 -0
  335. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/templates/conventions.yaml.tmpl +0 -0
  336. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/templates/data_dependencies.yaml.tmpl +0 -0
  337. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/templates/doc_links.yaml.tmpl +0 -0
  338. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/templates/extract_ai_prompt_baseline.md +0 -0
  339. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/templates/extracted/api-contract.md.j2 +0 -0
  340. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/templates/extracted/architecture-overview.md.j2 +0 -0
  341. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/templates/extracted/module-detail.md.j2 +0 -0
  342. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/templates/extracted/schema-design.md.j2 +0 -0
  343. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/templates/extracted/system-context.md.j2 +0 -0
  344. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/templates/gitignore.tmpl +0 -0
  345. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/templates/lexicon_questions.md +0 -0
  346. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/templates/lexicon_schema.yaml +0 -0
  347. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/templates/overrides.yaml.tmpl +0 -0
  348. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/test_detection.py +0 -0
  349. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/test_import_coherence.py +0 -0
  350. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/traceability.py +0 -0
  351. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/validator.py +0 -0
  352. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/vb_marker_authenticity.py +0 -0
  353. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/vb_rerun_scope.py +0 -0
  354. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/verifiable_behavior_audit.py +0 -0
  355. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/watch/__init__.py +0 -0
  356. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/watch/events.py +0 -0
  357. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/watch/propagation_log.py +0 -0
  358. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/watch/propagation_pipeline.py +0 -0
  359. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/watch/test_runner.py +0 -0
  360. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/watch/watcher.py +0 -0
  361. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd/wiring.py +0 -0
  362. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/ai_governance_eu_act/coverage_matrix.md +0 -0
  363. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/ai_governance_eu_act/elicit_extend.md +0 -0
  364. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/ai_governance_eu_act/lexicon.yaml +0 -0
  365. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/ai_governance_eu_act/manifest.yaml +0 -0
  366. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/ai_governance_eu_act/recommended_kinds.yaml +0 -0
  367. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/ai_governance_eu_act/severity_rules.yaml +0 -0
  368. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/api_rate_limiting_caching/coverage_matrix.md +0 -0
  369. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/api_rate_limiting_caching/elicit_extend.md +0 -0
  370. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/api_rate_limiting_caching/lexicon.yaml +0 -0
  371. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/api_rate_limiting_caching/manifest.yaml +0 -0
  372. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/api_rate_limiting_caching/recommended_kinds.yaml +0 -0
  373. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/api_rate_limiting_caching/severity_rules.yaml +0 -0
  374. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/api_rest_openapi/coverage_matrix.md +0 -0
  375. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/api_rest_openapi/elicit_extend.md +0 -0
  376. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/api_rest_openapi/lexicon.yaml +0 -0
  377. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/api_rest_openapi/manifest.yaml +0 -0
  378. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/api_rest_openapi/recommended_kinds.yaml +0 -0
  379. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/api_rest_openapi/severity_rules.yaml +0 -0
  380. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/babok/elicit_extend.md +0 -0
  381. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/babok/lexicon.yaml +0 -0
  382. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/babok/manifest.yaml +0 -0
  383. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/babok/recommended_kinds.yaml +0 -0
  384. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/babok/severity_rules.yaml +0 -0
  385. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/backend_event_cloudevents/coverage_matrix.md +0 -0
  386. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/backend_event_cloudevents/elicit_extend.md +0 -0
  387. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/backend_event_cloudevents/lexicon.yaml +0 -0
  388. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/backend_event_cloudevents/manifest.yaml +0 -0
  389. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/backend_event_cloudevents/recommended_kinds.yaml +0 -0
  390. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/backend_event_cloudevents/severity_rules.yaml +0 -0
  391. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/backend_graphql/coverage_matrix.md +0 -0
  392. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/backend_graphql/elicit_extend.md +0 -0
  393. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/backend_graphql/lexicon.yaml +0 -0
  394. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/backend_graphql/manifest.yaml +0 -0
  395. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/backend_graphql/recommended_kinds.yaml +0 -0
  396. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/backend_graphql/severity_rules.yaml +0 -0
  397. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/backend_grpc_proto/coverage_matrix.md +0 -0
  398. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/backend_grpc_proto/elicit_extend.md +0 -0
  399. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/backend_grpc_proto/lexicon.yaml +0 -0
  400. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/backend_grpc_proto/manifest.yaml +0 -0
  401. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/backend_grpc_proto/recommended_kinds.yaml +0 -0
  402. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/backend_grpc_proto/severity_rules.yaml +0 -0
  403. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/compliance_hipaa/coverage_matrix.md +0 -0
  404. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/compliance_hipaa/elicit_extend.md +0 -0
  405. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/compliance_hipaa/lexicon.yaml +0 -0
  406. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/compliance_hipaa/manifest.yaml +0 -0
  407. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/compliance_hipaa/recommended_kinds.yaml +0 -0
  408. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/compliance_hipaa/severity_rules.yaml +0 -0
  409. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/compliance_iso27001/coverage_matrix.md +0 -0
  410. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/compliance_iso27001/elicit_extend.md +0 -0
  411. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/compliance_iso27001/lexicon.yaml +0 -0
  412. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/compliance_iso27001/manifest.yaml +0 -0
  413. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/compliance_iso27001/recommended_kinds.yaml +0 -0
  414. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/compliance_iso27001/severity_rules.yaml +0 -0
  415. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/compliance_pci_dss_4/coverage_matrix.md +0 -0
  416. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/compliance_pci_dss_4/elicit_extend.md +0 -0
  417. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/compliance_pci_dss_4/lexicon.yaml +0 -0
  418. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/compliance_pci_dss_4/manifest.yaml +0 -0
  419. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/compliance_pci_dss_4/recommended_kinds.yaml +0 -0
  420. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/compliance_pci_dss_4/severity_rules.yaml +0 -0
  421. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/data_aggregation_policies/coverage_matrix.md +0 -0
  422. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/data_aggregation_policies/elicit_extend.md +0 -0
  423. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/data_aggregation_policies/lexicon.yaml +0 -0
  424. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/data_aggregation_policies/manifest.yaml +0 -0
  425. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/data_aggregation_policies/recommended_kinds.yaml +0 -0
  426. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/data_aggregation_policies/severity_rules.yaml +0 -0
  427. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/coverage_matrix.md +0 -0
  428. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/elicit_extend.md +0 -0
  429. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/lexicon.yaml +0 -0
  430. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/manifest.yaml +0 -0
  431. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/recommended_kinds.yaml +0 -0
  432. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/severity_rules.yaml +0 -0
  433. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/data_governance_appi_gdpr/coverage_matrix.md +0 -0
  434. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/data_governance_appi_gdpr/elicit_extend.md +0 -0
  435. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/data_governance_appi_gdpr/lexicon.yaml +0 -0
  436. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/data_governance_appi_gdpr/manifest.yaml +0 -0
  437. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/data_governance_appi_gdpr/recommended_kinds.yaml +0 -0
  438. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/data_governance_appi_gdpr/severity_rules.yaml +0 -0
  439. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/data_nosql_jsonschema/coverage_matrix.md +0 -0
  440. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/data_nosql_jsonschema/elicit_extend.md +0 -0
  441. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/data_nosql_jsonschema/lexicon.yaml +0 -0
  442. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/data_nosql_jsonschema/manifest.yaml +0 -0
  443. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/data_nosql_jsonschema/recommended_kinds.yaml +0 -0
  444. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/data_nosql_jsonschema/severity_rules.yaml +0 -0
  445. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/data_relational_iso_sql/coverage_matrix.md +0 -0
  446. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/data_relational_iso_sql/elicit_extend.md +0 -0
  447. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/data_relational_iso_sql/lexicon.yaml +0 -0
  448. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/data_relational_iso_sql/manifest.yaml +0 -0
  449. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/data_relational_iso_sql/recommended_kinds.yaml +0 -0
  450. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/data_relational_iso_sql/severity_rules.yaml +0 -0
  451. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/ddd_domain_driven_design/coverage_matrix.md +0 -0
  452. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/ddd_domain_driven_design/elicit_extend.md +0 -0
  453. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/ddd_domain_driven_design/lexicon.yaml +0 -0
  454. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/ddd_domain_driven_design/manifest.yaml +0 -0
  455. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/ddd_domain_driven_design/recommended_kinds.yaml +0 -0
  456. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/ddd_domain_driven_design/severity_rules.yaml +0 -0
  457. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/dora_sre_metrics/coverage_matrix.md +0 -0
  458. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/dora_sre_metrics/elicit_extend.md +0 -0
  459. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/dora_sre_metrics/lexicon.yaml +0 -0
  460. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/dora_sre_metrics/manifest.yaml +0 -0
  461. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/dora_sre_metrics/recommended_kinds.yaml +0 -0
  462. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/dora_sre_metrics/severity_rules.yaml +0 -0
  463. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/i18n_unicode_cldr/coverage_matrix.md +0 -0
  464. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/i18n_unicode_cldr/elicit_extend.md +0 -0
  465. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/i18n_unicode_cldr/lexicon.yaml +0 -0
  466. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/i18n_unicode_cldr/manifest.yaml +0 -0
  467. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/i18n_unicode_cldr/recommended_kinds.yaml +0 -0
  468. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/i18n_unicode_cldr/severity_rules.yaml +0 -0
  469. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/ml_model_cards/coverage_matrix.md +0 -0
  470. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/ml_model_cards/elicit_extend.md +0 -0
  471. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/ml_model_cards/lexicon.yaml +0 -0
  472. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/ml_model_cards/manifest.yaml +0 -0
  473. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/ml_model_cards/recommended_kinds.yaml +0 -0
  474. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/ml_model_cards/severity_rules.yaml +0 -0
  475. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/mobile_a11y_native/coverage_matrix.md +0 -0
  476. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/mobile_a11y_native/elicit_extend.md +0 -0
  477. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/mobile_a11y_native/lexicon.yaml +0 -0
  478. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/mobile_a11y_native/manifest.yaml +0 -0
  479. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/mobile_a11y_native/recommended_kinds.yaml +0 -0
  480. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/mobile_a11y_native/severity_rules.yaml +0 -0
  481. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/mobile_android_material3/coverage_matrix.md +0 -0
  482. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/mobile_android_material3/elicit_extend.md +0 -0
  483. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/mobile_android_material3/lexicon.yaml +0 -0
  484. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/mobile_android_material3/manifest.yaml +0 -0
  485. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/mobile_android_material3/recommended_kinds.yaml +0 -0
  486. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/mobile_android_material3/severity_rules.yaml +0 -0
  487. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/mobile_ios_hig/coverage_matrix.md +0 -0
  488. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/mobile_ios_hig/elicit_extend.md +0 -0
  489. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/mobile_ios_hig/lexicon.yaml +0 -0
  490. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/mobile_ios_hig/manifest.yaml +0 -0
  491. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/mobile_ios_hig/recommended_kinds.yaml +0 -0
  492. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/mobile_ios_hig/severity_rules.yaml +0 -0
  493. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/mobile_security_masvs/coverage_matrix.md +0 -0
  494. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/mobile_security_masvs/elicit_extend.md +0 -0
  495. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/mobile_security_masvs/lexicon.yaml +0 -0
  496. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/mobile_security_masvs/manifest.yaml +0 -0
  497. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/mobile_security_masvs/recommended_kinds.yaml +0 -0
  498. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/mobile_security_masvs/severity_rules.yaml +0 -0
  499. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/ops_cicd_pipeline/coverage_matrix.md +0 -0
  500. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/ops_cicd_pipeline/elicit_extend.md +0 -0
  501. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/ops_cicd_pipeline/lexicon.yaml +0 -0
  502. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/ops_cicd_pipeline/manifest.yaml +0 -0
  503. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/ops_cicd_pipeline/recommended_kinds.yaml +0 -0
  504. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/ops_cicd_pipeline/severity_rules.yaml +0 -0
  505. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/ops_iac_terraform/coverage_matrix.md +0 -0
  506. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/ops_iac_terraform/elicit_extend.md +0 -0
  507. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/ops_iac_terraform/lexicon.yaml +0 -0
  508. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/ops_iac_terraform/manifest.yaml +0 -0
  509. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/ops_iac_terraform/recommended_kinds.yaml +0 -0
  510. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/ops_iac_terraform/severity_rules.yaml +0 -0
  511. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/ops_kubernetes/coverage_matrix.md +0 -0
  512. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/ops_kubernetes/elicit_extend.md +0 -0
  513. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/ops_kubernetes/lexicon.yaml +0 -0
  514. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/ops_kubernetes/manifest.yaml +0 -0
  515. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/ops_kubernetes/recommended_kinds.yaml +0 -0
  516. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/ops_kubernetes/severity_rules.yaml +0 -0
  517. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/ops_observability_otel/coverage_matrix.md +0 -0
  518. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/ops_observability_otel/elicit_extend.md +0 -0
  519. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/ops_observability_otel/lexicon.yaml +0 -0
  520. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/ops_observability_otel/manifest.yaml +0 -0
  521. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/ops_observability_otel/recommended_kinds.yaml +0 -0
  522. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/ops_observability_otel/severity_rules.yaml +0 -0
  523. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/process_iso25010/coverage_matrix.md +0 -0
  524. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/process_iso25010/elicit_extend.md +0 -0
  525. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/process_iso25010/lexicon.yaml +0 -0
  526. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/process_iso25010/manifest.yaml +0 -0
  527. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/process_iso25010/recommended_kinds.yaml +0 -0
  528. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/process_iso25010/severity_rules.yaml +0 -0
  529. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/process_test_iso29119/coverage_matrix.md +0 -0
  530. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/process_test_iso29119/elicit_extend.md +0 -0
  531. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/process_test_iso29119/lexicon.yaml +0 -0
  532. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/process_test_iso29119/manifest.yaml +0 -0
  533. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/process_test_iso29119/recommended_kinds.yaml +0 -0
  534. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/process_test_iso29119/severity_rules.yaml +0 -0
  535. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/twelve_factor_app/coverage_matrix.md +0 -0
  536. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/twelve_factor_app/elicit_extend.md +0 -0
  537. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/twelve_factor_app/lexicon.yaml +0 -0
  538. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/twelve_factor_app/manifest.yaml +0 -0
  539. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/twelve_factor_app/recommended_kinds.yaml +0 -0
  540. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/twelve_factor_app/severity_rules.yaml +0 -0
  541. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/coverage_matrix.md +0 -0
  542. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/elicit_extend.md +0 -0
  543. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/lexicon.yaml +0 -0
  544. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/manifest.yaml +0 -0
  545. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/recommended_kinds.yaml +0 -0
  546. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/severity_rules.yaml +0 -0
  547. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/web_authn_webauthn/coverage_matrix.md +0 -0
  548. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/web_authn_webauthn/elicit_extend.md +0 -0
  549. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/web_authn_webauthn/lexicon.yaml +0 -0
  550. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/web_authn_webauthn/manifest.yaml +0 -0
  551. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/web_authn_webauthn/recommended_kinds.yaml +0 -0
  552. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/web_authn_webauthn/severity_rules.yaml +0 -0
  553. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/web_browser_compat/coverage_matrix.md +0 -0
  554. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/web_browser_compat/elicit_extend.md +0 -0
  555. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/web_browser_compat/lexicon.yaml +0 -0
  556. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/web_browser_compat/manifest.yaml +0 -0
  557. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/web_browser_compat/recommended_kinds.yaml +0 -0
  558. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/web_browser_compat/severity_rules.yaml +0 -0
  559. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/web_forms_html5/coverage_matrix.md +0 -0
  560. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/web_forms_html5/elicit_extend.md +0 -0
  561. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/web_forms_html5/lexicon.yaml +0 -0
  562. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/web_forms_html5/manifest.yaml +0 -0
  563. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/web_forms_html5/recommended_kinds.yaml +0 -0
  564. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/web_forms_html5/severity_rules.yaml +0 -0
  565. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/web_performance_core_web_vitals/coverage_matrix.md +0 -0
  566. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/web_performance_core_web_vitals/elicit_extend.md +0 -0
  567. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/web_performance_core_web_vitals/lexicon.yaml +0 -0
  568. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/web_performance_core_web_vitals/manifest.yaml +0 -0
  569. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/web_performance_core_web_vitals/recommended_kinds.yaml +0 -0
  570. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/web_performance_core_web_vitals/severity_rules.yaml +0 -0
  571. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/web_pwa_manifest/coverage_matrix.md +0 -0
  572. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/web_pwa_manifest/elicit_extend.md +0 -0
  573. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/web_pwa_manifest/lexicon.yaml +0 -0
  574. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/web_pwa_manifest/manifest.yaml +0 -0
  575. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/web_pwa_manifest/recommended_kinds.yaml +0 -0
  576. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/web_pwa_manifest/severity_rules.yaml +0 -0
  577. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/web_responsive/coverage_matrix.md +0 -0
  578. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/web_responsive/elicit_extend.md +0 -0
  579. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/web_responsive/lexicon.yaml +0 -0
  580. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/web_responsive/manifest.yaml +0 -0
  581. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/web_responsive/recommended_kinds.yaml +0 -0
  582. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/web_responsive/severity_rules.yaml +0 -0
  583. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/web_security_owasp/coverage_matrix.md +0 -0
  584. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/web_security_owasp/elicit_extend.md +0 -0
  585. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/web_security_owasp/lexicon.yaml +0 -0
  586. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/web_security_owasp/manifest.yaml +0 -0
  587. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/web_security_owasp/recommended_kinds.yaml +0 -0
  588. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/web_security_owasp/severity_rules.yaml +0 -0
  589. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/web_seo_schemaorg/coverage_matrix.md +0 -0
  590. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/web_seo_schemaorg/elicit_extend.md +0 -0
  591. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/web_seo_schemaorg/lexicon.yaml +0 -0
  592. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/web_seo_schemaorg/manifest.yaml +0 -0
  593. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/web_seo_schemaorg/recommended_kinds.yaml +0 -0
  594. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/lexicons/web_seo_schemaorg/severity_rules.yaml +0 -0
  595. {codd_dev-2.75.0 → codd_dev-2.77.0}/codd_plugins/stack_map.yaml +0 -0
  596. {codd_dev-2.75.0 → codd_dev-2.77.0}/docs/cookbook/cdp_browser/README.md +0 -0
  597. {codd_dev-2.75.0 → codd_dev-2.77.0}/docs/cookbook/presentation_aggregation/README.md +0 -0
  598. {codd_dev-2.75.0 → codd_dev-2.77.0}/docs/requirements/README.md +0 -0
  599. {codd_dev-2.75.0 → codd_dev-2.77.0}/dogfood/README.md +0 -0
  600. {codd_dev-2.75.0 → codd_dev-2.77.0}/dogfood/fixtures/flat_py_app/README.md +0 -0
  601. {codd_dev-2.75.0 → codd_dev-2.77.0}/examples/README.md +0 -0
  602. {codd_dev-2.75.0 → codd_dev-2.77.0}/skills/codd-assemble/SKILL.md +0 -0
  603. {codd_dev-2.75.0 → codd_dev-2.77.0}/skills/codd-evolve/SKILL.md +0 -0
  604. {codd_dev-2.75.0 → codd_dev-2.77.0}/skills/codd-generate/SKILL.md +0 -0
  605. {codd_dev-2.75.0 → codd_dev-2.77.0}/skills/codd-greenfield/SKILL.md +0 -0
  606. {codd_dev-2.75.0 → codd_dev-2.77.0}/skills/codd-impact/SKILL.md +0 -0
  607. {codd_dev-2.75.0 → codd_dev-2.77.0}/skills/codd-init/SKILL.md +0 -0
  608. {codd_dev-2.75.0 → codd_dev-2.77.0}/skills/codd-propagate/SKILL.md +0 -0
  609. {codd_dev-2.75.0 → codd_dev-2.77.0}/skills/codd-restore/SKILL.md +0 -0
  610. {codd_dev-2.75.0 → codd_dev-2.77.0}/skills/codd-scan/SKILL.md +0 -0
  611. {codd_dev-2.75.0 → codd_dev-2.77.0}/skills/codd-validate/SKILL.md +0 -0
  612. {codd_dev-2.75.0 → codd_dev-2.77.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.75.0
3
+ Version: 2.77.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.75.0"
3
+ __version__ = "2.77.0"
@@ -3012,8 +3012,11 @@ def _resolve_registry_composite_oracle(
3012
3012
  lang_profile = default_registry.resolve(lang)
3013
3013
  except Exception: # noqa: BLE001 — no registry profile ⇒ NO-OP, not a crash.
3014
3014
  return None
3015
- oracle_decl = lang_profile.extra.get("implement_oracle") if lang_profile.extra else None
3016
- if not isinstance(oracle_decl, Mapping) or oracle_decl.get("kind") != "composite":
3015
+ # implement_oracle is now a modeled first-class field (Contract Kernel §1),
3016
+ # no longer a raw mapping in ``.extra``. Behaviour is preserved: only a Go
3017
+ # profile declaring kind="composite" synthesizes the composite spec below.
3018
+ oracle_decl = lang_profile.implement_oracle
3019
+ if oracle_decl is None or oracle_decl.kind != "composite":
3017
3020
  return None
3018
3021
  module_root = _norm(getattr(lang_profile.layout, "module_root", ".") or ".") or "."
3019
3022
  synthetic = LayoutProfile(
@@ -21,6 +21,8 @@ from .profile import (
21
21
  CommandSpec,
22
22
  DependencyIntegrityFile,
23
23
  Identity,
24
+ ImplementOracleProfileSpec,
25
+ ImplementOracleStepSpec,
24
26
  ImportsSpec,
25
27
  LanguageProfile,
26
28
  LayoutSpec,
@@ -75,6 +77,8 @@ __all__ = [
75
77
  "CommandSpec",
76
78
  "DependencyIntegrityFile",
77
79
  "Identity",
80
+ "ImplementOracleProfileSpec",
81
+ "ImplementOracleStepSpec",
78
82
  "ImportsSpec",
79
83
  "LanguageProfile",
80
84
  "LayoutSpec",
@@ -25,6 +25,8 @@ from .profile import (
25
25
  CommandSpec,
26
26
  DependencyIntegrityFile,
27
27
  Identity,
28
+ ImplementOracleProfileSpec,
29
+ ImplementOracleStepSpec,
28
30
  ImportsSpec,
29
31
  LanguageProfile,
30
32
  LayoutSpec,
@@ -367,6 +369,94 @@ def _parse_ci(doc: Mapping[str, Any]) -> CiSpec | None:
367
369
  )
368
370
 
369
371
 
372
+ _IMPLEMENT_ORACLE_KINDS = frozenset({"command", "composite", "adapter"})
373
+
374
+
375
+ def _parse_implement_oracle(
376
+ doc: Mapping[str, Any], commands: Mapping[str, Any]
377
+ ) -> ImplementOracleProfileSpec | None:
378
+ """Parse + FAIL-CLOSED validate the ``implement_oracle:`` block.
379
+
380
+ Contract Kernel §1: the oracle declaration references command ids / an
381
+ adapter id; it never carries argv/cwd/env. Every malformed shape is a hard
382
+ :class:`LanguageProfileError` (a profile is a contract, not a way to slip a
383
+ broken / silent-green oracle past the gate).
384
+ """
385
+ raw = doc.get("implement_oracle")
386
+ if raw is None:
387
+ return None
388
+ where = "implement_oracle"
389
+ m = _as_mapping(raw, where=where)
390
+
391
+ kind = m.get("kind")
392
+ if kind not in _IMPLEMENT_ORACLE_KINDS:
393
+ raise LanguageProfileError(
394
+ f"{where}: unknown kind {kind!r}; expected one of "
395
+ f"{sorted(_IMPLEMENT_ORACLE_KINDS)}"
396
+ )
397
+
398
+ # Every kind needs an adapter id (never inferred from the language id).
399
+ adapter = m.get("adapter")
400
+ if adapter is None or not str(adapter).strip():
401
+ raise LanguageProfileError(f"{where}: missing required key 'adapter'")
402
+ adapter = str(adapter)
403
+
404
+ command = m.get("command")
405
+ command = str(command) if command is not None else None
406
+ raw_steps = _as_tuple(m.get("steps"))
407
+
408
+ if kind == "command":
409
+ if command is None:
410
+ raise LanguageProfileError(
411
+ f"{where}: kind 'command' requires a 'command' id"
412
+ )
413
+ if raw_steps:
414
+ raise LanguageProfileError(
415
+ f"{where}: kind 'command' must not declare 'steps'"
416
+ )
417
+ if command not in commands:
418
+ raise LanguageProfileError(
419
+ f"{where}: command {command!r} is not declared in 'commands'"
420
+ )
421
+ return ImplementOracleProfileSpec(kind="command", adapter=adapter, command=command)
422
+
423
+ if kind == "composite":
424
+ if command is not None:
425
+ raise LanguageProfileError(
426
+ f"{where}: kind 'composite' must not declare 'command' "
427
+ f"(use 'steps')"
428
+ )
429
+ if not raw_steps:
430
+ raise LanguageProfileError(
431
+ f"{where}: kind 'composite' requires a non-empty 'steps' list"
432
+ )
433
+ steps: list[ImplementOracleStepSpec] = []
434
+ for i, raw_step in enumerate(raw_steps):
435
+ sm = _as_mapping(raw_step, where=f"{where}.steps[{i}]")
436
+ step_cmd = _require(sm, "command", where=f"{where}.steps[{i}]")
437
+ step_cmd = str(step_cmd)
438
+ if step_cmd not in commands:
439
+ raise LanguageProfileError(
440
+ f"{where}.steps[{i}]: command {step_cmd!r} is not declared "
441
+ f"in 'commands'"
442
+ )
443
+ steps.append(ImplementOracleStepSpec(command=step_cmd))
444
+ return ImplementOracleProfileSpec(
445
+ kind="composite", adapter=adapter, steps=tuple(steps)
446
+ )
447
+
448
+ # kind == "adapter": the adapter does everything; no command/steps.
449
+ if command is not None:
450
+ raise LanguageProfileError(
451
+ f"{where}: kind 'adapter' must not declare 'command'"
452
+ )
453
+ if raw_steps:
454
+ raise LanguageProfileError(
455
+ f"{where}: kind 'adapter' must not declare 'steps'"
456
+ )
457
+ return ImplementOracleProfileSpec(kind="adapter", adapter=adapter)
458
+
459
+
370
460
  # ---------------------------------------------------------------------------
371
461
  # public entry point
372
462
  # ---------------------------------------------------------------------------
@@ -388,6 +478,7 @@ _KNOWN_TOP_LEVEL = frozenset(
388
478
  "artifacts",
389
479
  "scaffold",
390
480
  "ci",
481
+ "implement_oracle",
391
482
  }
392
483
  )
393
484
 
@@ -420,17 +511,19 @@ def load_language_profile(path: str | Path) -> LanguageProfile:
420
511
 
421
512
  extra = {k: v for k, v in doc.items() if k not in _KNOWN_TOP_LEVEL}
422
513
 
514
+ commands = _parse_commands(doc)
423
515
  return LanguageProfile(
424
516
  identity=_parse_identity(doc),
425
517
  layout=_parse_layout(doc),
426
518
  toolchain=_parse_toolchain(doc),
427
- commands=_parse_commands(doc),
519
+ commands=commands,
428
520
  imports=_parse_imports(doc),
429
521
  tests=_parse_tests(doc),
430
522
  verify=_parse_verify(doc),
431
523
  artifacts=_parse_artifacts(doc),
432
524
  scaffold=_parse_scaffold(doc),
433
525
  ci=_parse_ci(doc),
526
+ implement_oracle=_parse_implement_oracle(doc, commands),
434
527
  extra=extra,
435
528
  raw=dict(doc),
436
529
  )
@@ -446,6 +446,57 @@ class AdapterRef:
446
446
  id: str
447
447
 
448
448
 
449
+ # ---------------------------------------------------------------------------
450
+ # implement_oracle declaration (Contract Kernel oracle dispatch §1)
451
+ # ---------------------------------------------------------------------------
452
+
453
+
454
+ @dataclass(frozen=True)
455
+ class ImplementOracleStepSpec:
456
+ """One step of a composite implement-oracle (Contract Kernel §1).
457
+
458
+ ``command`` is an id that MUST reference an entry in
459
+ ``LanguageProfile.commands`` — the step carries NO argv/cwd/env of its own
460
+ (those live on the referenced :class:`CommandSpec`). The loader fail-closes
461
+ if the referenced command id is not declared.
462
+ """
463
+
464
+ command: str
465
+
466
+
467
+ @dataclass(frozen=True)
468
+ class ImplementOracleProfileSpec:
469
+ """The PROFILE's declaration of its implement-time oracle (Contract Kernel §1).
470
+
471
+ This is the *declaration* the language profile carries in YAML — NOT the
472
+ gate's runtime spec (:class:`codd.project_types.ImplementOracleSpec`, which
473
+ the dispatch still synthesizes). Distinct on purpose: this model only names
474
+ *what kind* of oracle the language has and *which command ids / adapter* it
475
+ references; it never duplicates argv/cwd/env.
476
+
477
+ * ``kind`` — one of:
478
+ - ``"command"`` — a single static checker (TS: ``tsc --noEmit``),
479
+ named by ``command`` (a command id). ``steps`` MUST be empty.
480
+ - ``"composite"`` — a sequence of weaker checkers unioned (Go:
481
+ ``typecheck`` + ``vet``), named by ``steps``. ``command`` MUST be
482
+ unset.
483
+ - ``"adapter"`` — an in-process custom executor (Python's compile +
484
+ import-resolver + collect-only composite). Neither ``command`` nor
485
+ ``steps`` is set; the ``adapter`` id does all the work.
486
+ * ``adapter`` — the (always-required) adapter id that resolves the oracle's
487
+ tool semantics (scope certify / output normalize, and execute for the
488
+ ``adapter`` kind). The profile declares it EXPLICITLY — it is never
489
+ inferred from the language id (an implicit naming convention would create
490
+ silent-green on a declaration typo).
491
+ * ``command`` / ``steps`` — command-id references only (see above).
492
+ """
493
+
494
+ kind: Literal["command", "composite", "adapter"]
495
+ adapter: str
496
+ command: str | None = None
497
+ steps: tuple[ImplementOracleStepSpec, ...] = ()
498
+
499
+
449
500
  # ---------------------------------------------------------------------------
450
501
  # top-level profile
451
502
  # ---------------------------------------------------------------------------
@@ -456,9 +507,10 @@ class LanguageProfile:
456
507
  """The full declarative language contract (design §1).
457
508
 
458
509
  Sub-structures that are not yet load-bearing for Phase 1 are optional.
459
- ``path_rules``, ``implement_oracle`` and any unknown top-level keys are
460
- preserved verbatim in ``raw`` / ``extra`` so a later phase can consume
461
- them without re-parsing the YAML.
510
+ ``path_rules`` and any unknown top-level keys are preserved verbatim in
511
+ ``raw`` / ``extra`` so a later phase can consume them without re-parsing the
512
+ YAML. ``implement_oracle`` is now modeled as a first-class field (Contract
513
+ Kernel §1) — no longer left in ``extra``.
462
514
  """
463
515
 
464
516
  identity: Identity
@@ -473,7 +525,10 @@ class LanguageProfile:
473
525
  artifacts: ArtifactsSpec | None = None
474
526
  scaffold: ScaffoldSpec | None = None
475
527
  ci: CiSpec | None = None
476
- #: ``path_rules``, ``implement_oracle`` etc., preserved but not modeled in Phase 1.
528
+ #: The implement-time oracle declaration (Contract Kernel §1). ``None`` when
529
+ #: the profile declares no ``implement_oracle:`` block.
530
+ implement_oracle: "ImplementOracleProfileSpec | None" = None
531
+ #: ``path_rules`` etc., preserved but not modeled in Phase 1.
477
532
  extra: Mapping[str, Any] = field(default_factory=lambda: MappingProxyType({}))
478
533
  #: The full parsed YAML mapping, for round-trip / debugging.
479
534
  raw: Mapping[str, Any] = field(default_factory=lambda: MappingProxyType({}))
@@ -185,9 +185,11 @@ commands:
185
185
  scope:
186
186
  must_include_test_sets: ["colocated", "e2e"]
187
187
 
188
- # Preserved verbatim (modeled as profile.extra in Phase 1).
188
+ # Implement-time oracle (Contract Kernel §1): a composite of typecheck + vet,
189
+ # resolved by the go-toolchain adapter. References command ids only.
189
190
  implement_oracle:
190
191
  kind: composite
192
+ adapter: go-toolchain
191
193
  steps:
192
194
  - command: typecheck
193
195
  - command: vet
@@ -94,8 +94,8 @@ commands:
94
94
  format: junit-xml
95
95
  adapter: pytest-junit-xml
96
96
 
97
- # Preserved verbatim (modeled as profile.extra in Phase 1). Python uses a
98
- # composite oracle, registered as an adapter in a later phase (design §4 Phase 4).
97
+ # Implement-time oracle (Contract Kernel §1): Python's compile + import-resolver
98
+ # + collect-only composite is an in-process custom executor, so kind=adapter.
99
99
  implement_oracle:
100
100
  kind: adapter
101
101
  adapter: python-composite
@@ -96,10 +96,11 @@ commands:
96
96
  format: vitest-json
97
97
  adapter: vitest-json
98
98
 
99
- # Preserved verbatim (modeled as profile.extra in Phase 1). tsc --noEmit is a
100
- # sufficient oracle, so a plain command spec works (design §4 Phase 4).
99
+ # Implement-time oracle (Contract Kernel §1): tsc --noEmit is a sufficient static
100
+ # checker, so kind=command (the typecheck command id), resolved by typescript-tsc.
101
101
  implement_oracle:
102
102
  kind: command
103
+ adapter: typescript-tsc
103
104
  command: typecheck
104
105
 
105
106
  tests:
@@ -91,6 +91,26 @@ class VerifyRunPlan:
91
91
  return " ".join(self.argv)
92
92
 
93
93
 
94
+ def _substitute_layout_placeholders(value: str | None, layout) -> str | None:
95
+ """Resolve the layout path placeholders a verify command's ``cwd``/``env`` may
96
+ carry (``{module_root}`` / ``{repo_root}`` / ``{manifest_root}``).
97
+
98
+ Profiles keep these as LITERAL template strings (per design — full template
99
+ substitution is PathPlanner's job, a later phase). But the verify EXECUTOR
100
+ must run in a real directory: an unsubstituted ``cwd: "{module_root}"`` makes
101
+ the run spawn in ``<project>/{module_root}`` (a path that does not exist) →
102
+ a spurious TOOL_MISSING. So the plan resolves exactly the layout roots the
103
+ verify command needs to be runnable; everything else stays a literal template.
104
+ """
105
+ if value is None:
106
+ return None
107
+ return (
108
+ value.replace("{module_root}", layout.module_root)
109
+ .replace("{repo_root}", layout.repo_root)
110
+ .replace("{manifest_root}", layout.manifest_root)
111
+ )
112
+
113
+
94
114
  def build_verify_plan(contract: ResolvedLanguageContract) -> VerifyRunPlan | None:
95
115
  """Derive the verify run plan from ``contract.profile.commands['verify']``.
96
116
 
@@ -98,13 +118,15 @@ def build_verify_plan(contract: ResolvedLanguageContract) -> VerifyRunPlan | Non
98
118
  stays on the legacy path). A declared ``report.path`` means the command is
99
119
  expected to PRODUCE that report — its absence after a run is REPORT_MISSING
100
120
  (a not-green outcome), enforced once adapters land (v2.72) / the switch
101
- happens (v2.69b).
121
+ happens (v2.69b). ``cwd``/``env`` layout placeholders are resolved so the
122
+ executor runs in a real directory.
102
123
  """
103
124
  cmd = contract.profile.commands.get("verify")
104
125
  if cmd is None:
105
126
  return None
106
127
  report = cmd.report
107
128
  scope = cmd.scope
129
+ layout = contract.profile.layout
108
130
  must_include = scope.must_include_test_sets if scope else ()
109
131
  # Resolve each must_include id to its TestSet ROOT (the scope check in the
110
132
  # executor matches executed_files against roots, so it needs roots, not ids).
@@ -122,8 +144,11 @@ def build_verify_plan(contract: ResolvedLanguageContract) -> VerifyRunPlan | Non
122
144
  return VerifyRunPlan(
123
145
  language_id=contract.language_id,
124
146
  argv=tuple(cmd.argv),
125
- cwd=cmd.cwd,
126
- env=dict(cmd.env),
147
+ cwd=_substitute_layout_placeholders(cmd.cwd, layout),
148
+ env={
149
+ str(k): _substitute_layout_placeholders(str(v), layout)
150
+ for k, v in cmd.env.items()
151
+ },
127
152
  report_path=(report.path if report else None),
128
153
  report_adapter=(report.adapter if report else None),
129
154
  report_required=bool(report and report.path),
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "codd-dev"
7
- version = "2.75.0"
7
+ version = "2.77.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