codd-dev 2.8.0__tar.gz → 2.10.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 (466) hide show
  1. {codd_dev-2.8.0 → codd_dev-2.10.0}/PKG-INFO +1 -1
  2. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/cli.py +2 -3
  3. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/coverage_auditor.py +3 -3
  4. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/init/llm_lexicon_suggester.py +25 -17
  5. codd_dev-2.10.0/codd_plugins/lexicons/api_rate_limiting_caching/coverage_matrix.md +17 -0
  6. codd_dev-2.10.0/codd_plugins/lexicons/api_rate_limiting_caching/elicit_extend.md +70 -0
  7. codd_dev-2.10.0/codd_plugins/lexicons/api_rate_limiting_caching/lexicon.yaml +121 -0
  8. codd_dev-2.10.0/codd_plugins/lexicons/api_rate_limiting_caching/manifest.yaml +24 -0
  9. codd_dev-2.10.0/codd_plugins/lexicons/api_rate_limiting_caching/recommended_kinds.yaml +8 -0
  10. codd_dev-2.10.0/codd_plugins/lexicons/api_rate_limiting_caching/severity_rules.yaml +32 -0
  11. codd_dev-2.10.0/codd_plugins/lexicons/ddd_domain_driven_design/coverage_matrix.md +19 -0
  12. codd_dev-2.10.0/codd_plugins/lexicons/ddd_domain_driven_design/elicit_extend.md +54 -0
  13. codd_dev-2.10.0/codd_plugins/lexicons/ddd_domain_driven_design/lexicon.yaml +121 -0
  14. codd_dev-2.10.0/codd_plugins/lexicons/ddd_domain_driven_design/manifest.yaml +23 -0
  15. codd_dev-2.10.0/codd_plugins/lexicons/ddd_domain_driven_design/recommended_kinds.yaml +10 -0
  16. codd_dev-2.10.0/codd_plugins/lexicons/ddd_domain_driven_design/severity_rules.yaml +45 -0
  17. codd_dev-2.10.0/codd_plugins/lexicons/dora_sre_metrics/coverage_matrix.md +17 -0
  18. codd_dev-2.10.0/codd_plugins/lexicons/dora_sre_metrics/elicit_extend.md +72 -0
  19. codd_dev-2.10.0/codd_plugins/lexicons/dora_sre_metrics/lexicon.yaml +129 -0
  20. codd_dev-2.10.0/codd_plugins/lexicons/dora_sre_metrics/manifest.yaml +27 -0
  21. codd_dev-2.10.0/codd_plugins/lexicons/dora_sre_metrics/recommended_kinds.yaml +9 -0
  22. codd_dev-2.10.0/codd_plugins/lexicons/dora_sre_metrics/severity_rules.yaml +35 -0
  23. codd_dev-2.10.0/codd_plugins/lexicons/i18n_unicode_cldr/coverage_matrix.md +18 -0
  24. codd_dev-2.10.0/codd_plugins/lexicons/i18n_unicode_cldr/elicit_extend.md +49 -0
  25. codd_dev-2.10.0/codd_plugins/lexicons/i18n_unicode_cldr/lexicon.yaml +145 -0
  26. codd_dev-2.10.0/codd_plugins/lexicons/i18n_unicode_cldr/manifest.yaml +26 -0
  27. codd_dev-2.10.0/codd_plugins/lexicons/i18n_unicode_cldr/recommended_kinds.yaml +10 -0
  28. codd_dev-2.10.0/codd_plugins/lexicons/i18n_unicode_cldr/severity_rules.yaml +34 -0
  29. codd_dev-2.10.0/codd_plugins/lexicons/ml_model_cards/coverage_matrix.md +18 -0
  30. codd_dev-2.10.0/codd_plugins/lexicons/ml_model_cards/elicit_extend.md +73 -0
  31. codd_dev-2.10.0/codd_plugins/lexicons/ml_model_cards/lexicon.yaml +129 -0
  32. codd_dev-2.10.0/codd_plugins/lexicons/ml_model_cards/manifest.yaml +23 -0
  33. codd_dev-2.10.0/codd_plugins/lexicons/ml_model_cards/recommended_kinds.yaml +9 -0
  34. codd_dev-2.10.0/codd_plugins/lexicons/ml_model_cards/severity_rules.yaml +35 -0
  35. codd_dev-2.10.0/codd_plugins/lexicons/mobile_security_masvs/coverage_matrix.md +16 -0
  36. codd_dev-2.10.0/codd_plugins/lexicons/mobile_security_masvs/elicit_extend.md +51 -0
  37. codd_dev-2.10.0/codd_plugins/lexicons/mobile_security_masvs/lexicon.yaml +117 -0
  38. codd_dev-2.10.0/codd_plugins/lexicons/mobile_security_masvs/manifest.yaml +25 -0
  39. codd_dev-2.10.0/codd_plugins/lexicons/mobile_security_masvs/recommended_kinds.yaml +8 -0
  40. codd_dev-2.10.0/codd_plugins/lexicons/mobile_security_masvs/severity_rules.yaml +39 -0
  41. codd_dev-2.10.0/codd_plugins/lexicons/twelve_factor_app/coverage_matrix.md +21 -0
  42. codd_dev-2.10.0/codd_plugins/lexicons/twelve_factor_app/elicit_extend.md +53 -0
  43. codd_dev-2.10.0/codd_plugins/lexicons/twelve_factor_app/lexicon.yaml +193 -0
  44. codd_dev-2.10.0/codd_plugins/lexicons/twelve_factor_app/manifest.yaml +29 -0
  45. codd_dev-2.10.0/codd_plugins/lexicons/twelve_factor_app/recommended_kinds.yaml +13 -0
  46. codd_dev-2.10.0/codd_plugins/lexicons/twelve_factor_app/severity_rules.yaml +40 -0
  47. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/stack_map.yaml +25 -1
  48. {codd_dev-2.8.0 → codd_dev-2.10.0}/pyproject.toml +1 -1
  49. {codd_dev-2.8.0 → codd_dev-2.10.0}/.gitignore +0 -0
  50. {codd_dev-2.8.0 → codd_dev-2.10.0}/LICENSE +0 -0
  51. {codd_dev-2.8.0 → codd_dev-2.10.0}/README.md +0 -0
  52. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/__init__.py +0 -0
  53. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/__main__.py +0 -0
  54. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/_git_helper.py +0 -0
  55. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/ask_user_question_adapter.py +0 -0
  56. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/assembler.py +0 -0
  57. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/bridge.py +0 -0
  58. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/brownfield/__init__.py +0 -0
  59. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/brownfield/pipeline.py +0 -0
  60. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/clustering.py +0 -0
  61. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/coherence_adapters.py +0 -0
  62. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/coherence_engine.py +0 -0
  63. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/config.py +0 -0
  64. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/contracts.py +0 -0
  65. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/coverage_metrics.py +0 -0
  66. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/dag/__init__.py +0 -0
  67. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/dag/builder.py +0 -0
  68. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/dag/checks/__init__.py +0 -0
  69. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/dag/checks/depends_on_consistency.py +0 -0
  70. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/dag/checks/deployment_completeness.py +0 -0
  71. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/dag/checks/edge_validity.py +0 -0
  72. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/dag/checks/environment_coverage.py +0 -0
  73. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/dag/checks/implementation_coverage.py +0 -0
  74. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/dag/checks/node_completeness.py +0 -0
  75. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/dag/checks/task_completion.py +0 -0
  76. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/dag/checks/transitive_closure.py +0 -0
  77. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/dag/checks/user_journey_coherence.py +0 -0
  78. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/dag/coverage_axes.py +0 -0
  79. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/dag/defaults/cli.yaml +0 -0
  80. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/dag/defaults/cpp_embedded.yaml +0 -0
  81. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/dag/defaults/csharp.yaml +0 -0
  82. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/dag/defaults/elixir.yaml +0 -0
  83. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/dag/defaults/generic.yaml +0 -0
  84. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/dag/defaults/iot.yaml +0 -0
  85. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/dag/defaults/java.yaml +0 -0
  86. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/dag/defaults/kotlin.yaml +0 -0
  87. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/dag/defaults/mobile.yaml +0 -0
  88. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/dag/defaults/ruby.yaml +0 -0
  89. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/dag/defaults/rust.yaml +0 -0
  90. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/dag/defaults/scala.yaml +0 -0
  91. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/dag/defaults/swift.yaml +0 -0
  92. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/dag/defaults/test_frameworks.yaml +0 -0
  93. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/dag/defaults/web.yaml +0 -0
  94. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/dag/extractor.py +0 -0
  95. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/dag/runner.py +0 -0
  96. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/defaults.yaml +0 -0
  97. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/deploy_targets/__init__.py +0 -0
  98. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/deploy_targets/app_service.py +0 -0
  99. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/deploy_targets/base.py +0 -0
  100. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/deploy_targets/docker_compose.py +0 -0
  101. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/deployer.py +0 -0
  102. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/deployment/__init__.py +0 -0
  103. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/deployment/checks/__init__.py +0 -0
  104. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/deployment/defaults/deploy_targets.yaml +0 -0
  105. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/deployment/defaults/runtime_capability_inference.yaml +0 -0
  106. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/deployment/defaults/schema_providers.yaml +0 -0
  107. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/deployment/defaults/verification_templates.yaml +0 -0
  108. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/deployment/extractor.py +0 -0
  109. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/deployment/providers/__init__.py +0 -0
  110. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/deployment/providers/ai_command.py +0 -0
  111. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/deployment/providers/llm_consideration.py +0 -0
  112. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/deployment/providers/schema/__init__.py +0 -0
  113. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/deployment/providers/schema/prisma.py +0 -0
  114. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/deployment/providers/target/__init__.py +0 -0
  115. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/deployment/providers/target/docker_compose.py +0 -0
  116. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/deployment/providers/verification/__init__.py +0 -0
  117. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/deployment/providers/verification/assertion_handlers.py +0 -0
  118. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/deployment/providers/verification/cdp_browser.py +0 -0
  119. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/deployment/providers/verification/cdp_engines.py +0 -0
  120. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/deployment/providers/verification/cdp_launchers.py +0 -0
  121. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/deployment/providers/verification/cdp_wire.py +0 -0
  122. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/deployment/providers/verification/curl.py +0 -0
  123. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/deployment/providers/verification/form_strategies.py +0 -0
  124. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/deployment/providers/verification/means_catalog.py +0 -0
  125. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/deployment/providers/verification/playwright.py +0 -0
  126. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/design_md.py +0 -0
  127. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/diff/__init__.py +0 -0
  128. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/diff/apply.py +0 -0
  129. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/diff/engine.py +0 -0
  130. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/diff/persistence.py +0 -0
  131. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/diff/templates/diff_prompt.md +0 -0
  132. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/drift.py +0 -0
  133. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/e2e_extractor.py +0 -0
  134. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/e2e_generator.py +0 -0
  135. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/e2e_runner.py +0 -0
  136. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/elicit/__init__.py +0 -0
  137. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/elicit/apply.py +0 -0
  138. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/elicit/engine.py +0 -0
  139. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/elicit/finding.py +0 -0
  140. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/elicit/formatters/__init__.py +0 -0
  141. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/elicit/formatters/base.py +0 -0
  142. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/elicit/formatters/interactive.py +0 -0
  143. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/elicit/formatters/json_fmt.py +0 -0
  144. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/elicit/formatters/md.py +0 -0
  145. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/elicit/lexicon_loader.py +0 -0
  146. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/elicit/persistence.py +0 -0
  147. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/elicit/templates/elicit_prompt_L0.md +0 -0
  148. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/env_refs.py +0 -0
  149. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/extract_ai.py +0 -0
  150. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/extractor.py +0 -0
  151. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/fixer.py +0 -0
  152. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/fixup_drift.py +0 -0
  153. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/fixup_drift_strategies/__init__.py +0 -0
  154. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/fixup_drift_strategies/design_token_drift.py +0 -0
  155. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/fixup_drift_strategies/lexicon_violation.py +0 -0
  156. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/fixup_drift_strategies/url_drift.py +0 -0
  157. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/generator.py +0 -0
  158. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/graph.py +0 -0
  159. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/hitl_session.py +0 -0
  160. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/hooks/__init__.py +0 -0
  161. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/hooks/pre-commit +0 -0
  162. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/hooks/recipes/claude_settings_example.json +0 -0
  163. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/hooks/recipes/codex_hook.sh +0 -0
  164. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/hooks/recipes/git_post_commit.sh +0 -0
  165. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/hooks/recipes/git_pre_commit.sh +0 -0
  166. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/implementer/__init__.py +0 -0
  167. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/implementer/chunked_runner.py +0 -0
  168. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/implementer/typecheck_loop.py +0 -0
  169. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/implementer.py +0 -0
  170. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/inheritance.py +0 -0
  171. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/init/__init__.py +0 -0
  172. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/init/lexicon_suggest.py +0 -0
  173. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/init/stack_detector.py +0 -0
  174. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/knowledge_fetcher.py +0 -0
  175. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/lexicon.py +0 -0
  176. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/lexicon_cli/__init__.py +0 -0
  177. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/lexicon_cli/formatters/__init__.py +0 -0
  178. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/lexicon_cli/formatters/html.py +0 -0
  179. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/lexicon_cli/formatters/json_fmt.py +0 -0
  180. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/lexicon_cli/formatters/md.py +0 -0
  181. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/lexicon_cli/inspector.py +0 -0
  182. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/lexicon_cli/manager.py +0 -0
  183. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/lexicon_cli/reporter.py +0 -0
  184. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/lexicon_cli/threshold.py +0 -0
  185. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/llm/__init__.py +0 -0
  186. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/llm/approval.py +0 -0
  187. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/llm/best_practice_augmenter.py +0 -0
  188. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/llm/criteria_expander.py +0 -0
  189. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/llm/design_doc_extractor.py +0 -0
  190. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/llm/impl_step_deriver.py +0 -0
  191. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/llm/means_catalog_loader.py +0 -0
  192. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/llm/parser.py +0 -0
  193. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/llm/plan_deriver.py +0 -0
  194. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/llm/prompt_builder.py +0 -0
  195. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/llm/strategy_validator.py +0 -0
  196. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/llm/templates/best_practice_augment_meta.md +0 -0
  197. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/llm/templates/criteria_expand_meta.md +0 -0
  198. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/llm/templates/design_doc_extract_meta.md +0 -0
  199. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/llm/templates/impl_step_derive_meta.md +0 -0
  200. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/llm/templates/implementation_step_catalog.yaml +0 -0
  201. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/llm/templates/meta_instruction.md +0 -0
  202. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/llm/templates/plan_derive_meta.md +0 -0
  203. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/llm/templates/verification_means_catalog.yaml +0 -0
  204. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/mcp_server.py +0 -0
  205. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/measure.py +0 -0
  206. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/parsing.py +0 -0
  207. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/planner.py +0 -0
  208. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/policy.py +0 -0
  209. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/preflight/__init__.py +0 -0
  210. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/preflight/defaults/cli.yaml +0 -0
  211. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/preflight/defaults/iot.yaml +0 -0
  212. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/preflight/defaults/mobile.yaml +0 -0
  213. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/preflight/defaults/web.yaml +0 -0
  214. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/propagate.py +0 -0
  215. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/propagator.py +0 -0
  216. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/registry.py +0 -0
  217. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/repair/__init__.py +0 -0
  218. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/repair/approval_repair.py +0 -0
  219. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/repair/engine.py +0 -0
  220. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/repair/git_patcher.py +0 -0
  221. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/repair/history.py +0 -0
  222. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/repair/llm_repair_engine.py +0 -0
  223. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/repair/loop.py +0 -0
  224. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/repair/primary_picker.py +0 -0
  225. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/repair/proof_breaks.py +0 -0
  226. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/repair/repair_result.py +0 -0
  227. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/repair/repairability_classifier.py +0 -0
  228. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/repair/schema.py +0 -0
  229. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/repair/templates/analyze_meta.md +0 -0
  230. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/repair/templates/propose_meta.md +0 -0
  231. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/repair/templates/repair_strategy_meta.md +0 -0
  232. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/repair/templates/repairability_meta.md +0 -0
  233. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/repair/verify_runner.py +0 -0
  234. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/repair_slice.py +0 -0
  235. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/require.py +0 -0
  236. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/require_plugins.py +0 -0
  237. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/require_propagate.py +0 -0
  238. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/required_artifacts/defaults/cli.yaml +0 -0
  239. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/required_artifacts/defaults/iot.yaml +0 -0
  240. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/required_artifacts/defaults/mobile.yaml +0 -0
  241. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/required_artifacts/defaults/web.yaml +0 -0
  242. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/required_artifacts_deriver.py +0 -0
  243. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/requirement_completeness/defaults/cli.yaml +0 -0
  244. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/requirement_completeness/defaults/iot.yaml +0 -0
  245. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/requirement_completeness/defaults/mobile.yaml +0 -0
  246. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/requirement_completeness/defaults/web.yaml +0 -0
  247. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/requirement_completeness_auditor.py +0 -0
  248. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/restore.py +0 -0
  249. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/routes_extractor.py +0 -0
  250. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/scanner.py +0 -0
  251. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/schema_refs.py +0 -0
  252. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/screen_flow_validator.py +0 -0
  253. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/screen_transition_extractor.py +0 -0
  254. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/screen_transitions/defaults.yaml +0 -0
  255. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/synth.py +0 -0
  256. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/templates/codd.yaml.tmpl +0 -0
  257. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/templates/conventions.yaml.tmpl +0 -0
  258. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/templates/data_dependencies.yaml.tmpl +0 -0
  259. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/templates/doc_links.yaml.tmpl +0 -0
  260. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/templates/extract_ai_prompt_baseline.md +0 -0
  261. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/templates/extracted/api-contract.md.j2 +0 -0
  262. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/templates/extracted/architecture-overview.md.j2 +0 -0
  263. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/templates/extracted/module-detail.md.j2 +0 -0
  264. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/templates/extracted/schema-design.md.j2 +0 -0
  265. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/templates/extracted/system-context.md.j2 +0 -0
  266. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/templates/gitignore.tmpl +0 -0
  267. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/templates/lexicon_questions.md +0 -0
  268. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/templates/lexicon_schema.yaml +0 -0
  269. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/templates/overrides.yaml.tmpl +0 -0
  270. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/traceability.py +0 -0
  271. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/validator.py +0 -0
  272. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/watch/__init__.py +0 -0
  273. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/watch/events.py +0 -0
  274. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/watch/propagation_log.py +0 -0
  275. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/watch/propagation_pipeline.py +0 -0
  276. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/watch/test_runner.py +0 -0
  277. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/watch/watcher.py +0 -0
  278. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd/wiring.py +0 -0
  279. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/ai_governance_eu_act/coverage_matrix.md +0 -0
  280. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/ai_governance_eu_act/elicit_extend.md +0 -0
  281. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/ai_governance_eu_act/lexicon.yaml +0 -0
  282. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/ai_governance_eu_act/manifest.yaml +0 -0
  283. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/ai_governance_eu_act/recommended_kinds.yaml +0 -0
  284. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/ai_governance_eu_act/severity_rules.yaml +0 -0
  285. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/api_rest_openapi/coverage_matrix.md +0 -0
  286. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/api_rest_openapi/elicit_extend.md +0 -0
  287. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/api_rest_openapi/lexicon.yaml +0 -0
  288. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/api_rest_openapi/manifest.yaml +0 -0
  289. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/api_rest_openapi/recommended_kinds.yaml +0 -0
  290. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/api_rest_openapi/severity_rules.yaml +0 -0
  291. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/babok/elicit_extend.md +0 -0
  292. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/babok/lexicon.yaml +0 -0
  293. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/babok/manifest.yaml +0 -0
  294. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/babok/recommended_kinds.yaml +0 -0
  295. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/babok/severity_rules.yaml +0 -0
  296. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/backend_event_cloudevents/coverage_matrix.md +0 -0
  297. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/backend_event_cloudevents/elicit_extend.md +0 -0
  298. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/backend_event_cloudevents/lexicon.yaml +0 -0
  299. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/backend_event_cloudevents/manifest.yaml +0 -0
  300. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/backend_event_cloudevents/recommended_kinds.yaml +0 -0
  301. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/backend_event_cloudevents/severity_rules.yaml +0 -0
  302. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/backend_graphql/coverage_matrix.md +0 -0
  303. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/backend_graphql/elicit_extend.md +0 -0
  304. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/backend_graphql/lexicon.yaml +0 -0
  305. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/backend_graphql/manifest.yaml +0 -0
  306. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/backend_graphql/recommended_kinds.yaml +0 -0
  307. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/backend_graphql/severity_rules.yaml +0 -0
  308. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/backend_grpc_proto/coverage_matrix.md +0 -0
  309. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/backend_grpc_proto/elicit_extend.md +0 -0
  310. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/backend_grpc_proto/lexicon.yaml +0 -0
  311. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/backend_grpc_proto/manifest.yaml +0 -0
  312. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/backend_grpc_proto/recommended_kinds.yaml +0 -0
  313. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/backend_grpc_proto/severity_rules.yaml +0 -0
  314. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/compliance_hipaa/coverage_matrix.md +0 -0
  315. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/compliance_hipaa/elicit_extend.md +0 -0
  316. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/compliance_hipaa/lexicon.yaml +0 -0
  317. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/compliance_hipaa/manifest.yaml +0 -0
  318. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/compliance_hipaa/recommended_kinds.yaml +0 -0
  319. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/compliance_hipaa/severity_rules.yaml +0 -0
  320. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/compliance_iso27001/coverage_matrix.md +0 -0
  321. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/compliance_iso27001/elicit_extend.md +0 -0
  322. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/compliance_iso27001/lexicon.yaml +0 -0
  323. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/compliance_iso27001/manifest.yaml +0 -0
  324. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/compliance_iso27001/recommended_kinds.yaml +0 -0
  325. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/compliance_iso27001/severity_rules.yaml +0 -0
  326. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/compliance_pci_dss_4/coverage_matrix.md +0 -0
  327. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/compliance_pci_dss_4/elicit_extend.md +0 -0
  328. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/compliance_pci_dss_4/lexicon.yaml +0 -0
  329. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/compliance_pci_dss_4/manifest.yaml +0 -0
  330. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/compliance_pci_dss_4/recommended_kinds.yaml +0 -0
  331. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/compliance_pci_dss_4/severity_rules.yaml +0 -0
  332. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/coverage_matrix.md +0 -0
  333. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/elicit_extend.md +0 -0
  334. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/lexicon.yaml +0 -0
  335. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/manifest.yaml +0 -0
  336. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/recommended_kinds.yaml +0 -0
  337. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/severity_rules.yaml +0 -0
  338. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/data_governance_appi_gdpr/coverage_matrix.md +0 -0
  339. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/data_governance_appi_gdpr/elicit_extend.md +0 -0
  340. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/data_governance_appi_gdpr/lexicon.yaml +0 -0
  341. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/data_governance_appi_gdpr/manifest.yaml +0 -0
  342. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/data_governance_appi_gdpr/recommended_kinds.yaml +0 -0
  343. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/data_governance_appi_gdpr/severity_rules.yaml +0 -0
  344. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/data_nosql_jsonschema/coverage_matrix.md +0 -0
  345. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/data_nosql_jsonschema/elicit_extend.md +0 -0
  346. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/data_nosql_jsonschema/lexicon.yaml +0 -0
  347. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/data_nosql_jsonschema/manifest.yaml +0 -0
  348. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/data_nosql_jsonschema/recommended_kinds.yaml +0 -0
  349. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/data_nosql_jsonschema/severity_rules.yaml +0 -0
  350. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/data_relational_iso_sql/coverage_matrix.md +0 -0
  351. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/data_relational_iso_sql/elicit_extend.md +0 -0
  352. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/data_relational_iso_sql/lexicon.yaml +0 -0
  353. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/data_relational_iso_sql/manifest.yaml +0 -0
  354. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/data_relational_iso_sql/recommended_kinds.yaml +0 -0
  355. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/data_relational_iso_sql/severity_rules.yaml +0 -0
  356. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/mobile_a11y_native/coverage_matrix.md +0 -0
  357. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/mobile_a11y_native/elicit_extend.md +0 -0
  358. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/mobile_a11y_native/lexicon.yaml +0 -0
  359. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/mobile_a11y_native/manifest.yaml +0 -0
  360. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/mobile_a11y_native/recommended_kinds.yaml +0 -0
  361. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/mobile_a11y_native/severity_rules.yaml +0 -0
  362. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/mobile_android_material3/coverage_matrix.md +0 -0
  363. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/mobile_android_material3/elicit_extend.md +0 -0
  364. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/mobile_android_material3/lexicon.yaml +0 -0
  365. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/mobile_android_material3/manifest.yaml +0 -0
  366. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/mobile_android_material3/recommended_kinds.yaml +0 -0
  367. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/mobile_android_material3/severity_rules.yaml +0 -0
  368. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/mobile_ios_hig/coverage_matrix.md +0 -0
  369. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/mobile_ios_hig/elicit_extend.md +0 -0
  370. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/mobile_ios_hig/lexicon.yaml +0 -0
  371. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/mobile_ios_hig/manifest.yaml +0 -0
  372. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/mobile_ios_hig/recommended_kinds.yaml +0 -0
  373. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/mobile_ios_hig/severity_rules.yaml +0 -0
  374. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/ops_cicd_pipeline/coverage_matrix.md +0 -0
  375. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/ops_cicd_pipeline/elicit_extend.md +0 -0
  376. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/ops_cicd_pipeline/lexicon.yaml +0 -0
  377. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/ops_cicd_pipeline/manifest.yaml +0 -0
  378. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/ops_cicd_pipeline/recommended_kinds.yaml +0 -0
  379. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/ops_cicd_pipeline/severity_rules.yaml +0 -0
  380. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/ops_iac_terraform/coverage_matrix.md +0 -0
  381. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/ops_iac_terraform/elicit_extend.md +0 -0
  382. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/ops_iac_terraform/lexicon.yaml +0 -0
  383. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/ops_iac_terraform/manifest.yaml +0 -0
  384. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/ops_iac_terraform/recommended_kinds.yaml +0 -0
  385. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/ops_iac_terraform/severity_rules.yaml +0 -0
  386. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/ops_kubernetes/coverage_matrix.md +0 -0
  387. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/ops_kubernetes/elicit_extend.md +0 -0
  388. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/ops_kubernetes/lexicon.yaml +0 -0
  389. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/ops_kubernetes/manifest.yaml +0 -0
  390. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/ops_kubernetes/recommended_kinds.yaml +0 -0
  391. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/ops_kubernetes/severity_rules.yaml +0 -0
  392. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/ops_observability_otel/coverage_matrix.md +0 -0
  393. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/ops_observability_otel/elicit_extend.md +0 -0
  394. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/ops_observability_otel/lexicon.yaml +0 -0
  395. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/ops_observability_otel/manifest.yaml +0 -0
  396. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/ops_observability_otel/recommended_kinds.yaml +0 -0
  397. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/ops_observability_otel/severity_rules.yaml +0 -0
  398. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/process_iso25010/coverage_matrix.md +0 -0
  399. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/process_iso25010/elicit_extend.md +0 -0
  400. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/process_iso25010/lexicon.yaml +0 -0
  401. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/process_iso25010/manifest.yaml +0 -0
  402. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/process_iso25010/recommended_kinds.yaml +0 -0
  403. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/process_iso25010/severity_rules.yaml +0 -0
  404. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/process_test_iso29119/coverage_matrix.md +0 -0
  405. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/process_test_iso29119/elicit_extend.md +0 -0
  406. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/process_test_iso29119/lexicon.yaml +0 -0
  407. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/process_test_iso29119/manifest.yaml +0 -0
  408. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/process_test_iso29119/recommended_kinds.yaml +0 -0
  409. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/process_test_iso29119/severity_rules.yaml +0 -0
  410. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/coverage_matrix.md +0 -0
  411. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/elicit_extend.md +0 -0
  412. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/lexicon.yaml +0 -0
  413. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/manifest.yaml +0 -0
  414. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/recommended_kinds.yaml +0 -0
  415. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/severity_rules.yaml +0 -0
  416. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/web_authn_webauthn/coverage_matrix.md +0 -0
  417. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/web_authn_webauthn/elicit_extend.md +0 -0
  418. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/web_authn_webauthn/lexicon.yaml +0 -0
  419. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/web_authn_webauthn/manifest.yaml +0 -0
  420. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/web_authn_webauthn/recommended_kinds.yaml +0 -0
  421. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/web_authn_webauthn/severity_rules.yaml +0 -0
  422. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/web_browser_compat/coverage_matrix.md +0 -0
  423. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/web_browser_compat/elicit_extend.md +0 -0
  424. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/web_browser_compat/lexicon.yaml +0 -0
  425. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/web_browser_compat/manifest.yaml +0 -0
  426. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/web_browser_compat/recommended_kinds.yaml +0 -0
  427. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/web_browser_compat/severity_rules.yaml +0 -0
  428. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/web_forms_html5/coverage_matrix.md +0 -0
  429. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/web_forms_html5/elicit_extend.md +0 -0
  430. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/web_forms_html5/lexicon.yaml +0 -0
  431. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/web_forms_html5/manifest.yaml +0 -0
  432. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/web_forms_html5/recommended_kinds.yaml +0 -0
  433. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/web_forms_html5/severity_rules.yaml +0 -0
  434. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/web_performance_core_web_vitals/coverage_matrix.md +0 -0
  435. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/web_performance_core_web_vitals/elicit_extend.md +0 -0
  436. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/web_performance_core_web_vitals/lexicon.yaml +0 -0
  437. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/web_performance_core_web_vitals/manifest.yaml +0 -0
  438. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/web_performance_core_web_vitals/recommended_kinds.yaml +0 -0
  439. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/web_performance_core_web_vitals/severity_rules.yaml +0 -0
  440. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/web_pwa_manifest/coverage_matrix.md +0 -0
  441. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/web_pwa_manifest/elicit_extend.md +0 -0
  442. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/web_pwa_manifest/lexicon.yaml +0 -0
  443. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/web_pwa_manifest/manifest.yaml +0 -0
  444. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/web_pwa_manifest/recommended_kinds.yaml +0 -0
  445. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/web_pwa_manifest/severity_rules.yaml +0 -0
  446. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/web_responsive/coverage_matrix.md +0 -0
  447. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/web_responsive/elicit_extend.md +0 -0
  448. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/web_responsive/lexicon.yaml +0 -0
  449. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/web_responsive/manifest.yaml +0 -0
  450. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/web_responsive/recommended_kinds.yaml +0 -0
  451. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/web_responsive/severity_rules.yaml +0 -0
  452. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/web_security_owasp/coverage_matrix.md +0 -0
  453. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/web_security_owasp/elicit_extend.md +0 -0
  454. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/web_security_owasp/lexicon.yaml +0 -0
  455. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/web_security_owasp/manifest.yaml +0 -0
  456. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/web_security_owasp/recommended_kinds.yaml +0 -0
  457. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/web_security_owasp/severity_rules.yaml +0 -0
  458. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/web_seo_schemaorg/coverage_matrix.md +0 -0
  459. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/web_seo_schemaorg/elicit_extend.md +0 -0
  460. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/web_seo_schemaorg/lexicon.yaml +0 -0
  461. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/web_seo_schemaorg/manifest.yaml +0 -0
  462. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/web_seo_schemaorg/recommended_kinds.yaml +0 -0
  463. {codd_dev-2.8.0 → codd_dev-2.10.0}/codd_plugins/lexicons/web_seo_schemaorg/severity_rules.yaml +0 -0
  464. {codd_dev-2.8.0 → codd_dev-2.10.0}/docs/cookbook/cdp_browser/README.md +0 -0
  465. {codd_dev-2.8.0 → codd_dev-2.10.0}/docs/requirements/README.md +0 -0
  466. {codd_dev-2.8.0 → codd_dev-2.10.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.8.0
3
+ Version: 2.10.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
@@ -561,10 +561,9 @@ def _offer_lexicon_suggestions(
561
561
  click.echo("")
562
562
  click.echo("[LLM-enhanced] Analyzing project ...")
563
563
  click.echo("[LLM-enhanced] Detected:")
564
- click.echo(f" - Domain: {llm_result.detected_domain or 'unknown'}")
565
- click.echo(f" - Compliance: {_format_detected_items(llm_result.detected_compliance)}")
564
+ click.echo(f" - Data types: {_format_detected_items(llm_result.detected_data_types)}")
565
+ click.echo(f" - Function traits: {_format_detected_items(llm_result.detected_function_traits)}")
566
566
  click.echo(f" - Tech stack: {_format_detected_items(llm_result.detected_tech_stack)}")
567
- click.echo(f" - Integrations: {_format_detected_items(llm_result.detected_integrations)}")
568
567
  click.echo("")
569
568
  click.echo("[LLM-enhanced] Recommended lexicons:")
570
569
  for index, recommendation in enumerate(llm_result.recommendations, start=1):
@@ -109,7 +109,7 @@ class CoverageAuditor:
109
109
  lowered = text.lower()
110
110
  text_terms = _terms(lowered)
111
111
  if (
112
- {"lms", "e-learning", "elearning"} & text_terms
112
+ {"e-learning", "elearning"} & text_terms
113
113
  or "learning management" in lowered
114
114
  or len(
115
115
  {
@@ -244,7 +244,7 @@ class CoverageAuditor:
244
244
  },
245
245
  ]
246
246
 
247
- lms = [
247
+ learning_platform = [
248
248
  *base_web,
249
249
  *self._build_auth_ui_surface_checklist(),
250
250
  {
@@ -362,7 +362,7 @@ class CoverageAuditor:
362
362
  ]
363
363
 
364
364
  checklists = {
365
- "LMS/EdTech": lms,
365
+ "LMS/EdTech": learning_platform,
366
366
  "FinTech": [
367
367
  *base_web,
368
368
  {
@@ -34,10 +34,9 @@ class LlmLexiconRecommendation:
34
34
 
35
35
  @dataclass(frozen=True)
36
36
  class LlmLexiconResult:
37
- detected_domain: str
38
- detected_compliance: list[str]
37
+ detected_data_types: list[str]
38
+ detected_function_traits: list[str]
39
39
  detected_tech_stack: list[str]
40
- detected_integrations: list[str]
41
40
  recommendations: list[LlmLexiconRecommendation]
42
41
 
43
42
 
@@ -138,24 +137,35 @@ def _build_prompt(context: dict[str, Any], available_lexicons: dict[str, str]) -
138
137
  "available_lexicons": available_lexicons,
139
138
  "project_context": context,
140
139
  "required_output_schema": {
141
- "detected_domain": "string",
142
- "detected_compliance": ["string"],
140
+ "detected_data_types": ["string"],
141
+ "detected_function_traits": ["string"],
143
142
  "detected_tech_stack": ["string"],
144
- "detected_integrations": ["string"],
145
143
  "recommendations": [
146
144
  {
147
145
  "lexicon_id": "string from available_lexicons keys",
148
146
  "confidence": "high | medium | low",
149
- "reason": "short explanation",
147
+ "reason": "short explanation referencing a data type or function trait",
150
148
  }
151
149
  ],
152
150
  },
153
151
  }
154
152
  return (
155
- "You are a requirements engineer. Analyze the project's documentation and "
156
- "technology signals. Identify the business domain, compliance obligations, "
157
- "technology stack, and external integrations using only the supplied project "
158
- "context. From the available lexicons, recommend the most relevant entries. "
153
+ "You are a requirements engineer. Analyze this project's documentation and tech stack.\n"
154
+ "Identify:\n"
155
+ "- Data types handled (personal information / credit card data / medical records / "
156
+ "video content / etc.)\n"
157
+ "- Function traits present (authentication flow / payment processing / public API / "
158
+ "video streaming / etc.)\n"
159
+ "- Tech stack (frameworks, databases, cloud platforms)\n\n"
160
+ "Reasoning rules (apply dynamically):\n"
161
+ "- personal information present -> recommend data_governance_appi_gdpr (or GDPR equivalent)\n"
162
+ "- credit card data present -> recommend compliance_pci_dss_4\n"
163
+ "- medical data present -> recommend compliance_hipaa\n"
164
+ "- authentication flow present -> consider web_authn_webauthn\n"
165
+ "- public REST API present -> recommend api_rest_openapi\n"
166
+ "- etc.\n\n"
167
+ "From the available lexicons, recommend the most relevant ones with lexicon_id, "
168
+ "confidence (high/medium/low), and reason referencing the data type or function trait. "
159
169
  "Return JSON only. Do not include Markdown fences or prose.\n\n"
160
170
  f"{json.dumps(payload, ensure_ascii=False, indent=2)}"
161
171
  )
@@ -202,10 +212,9 @@ def _result_from_payload(payload: Any, available_ids: set[str]) -> LlmLexiconRes
202
212
  )
203
213
 
204
214
  return LlmLexiconResult(
205
- detected_domain=str(payload.get("detected_domain") or "").strip(),
206
- detected_compliance=_string_list(payload.get("detected_compliance")),
215
+ detected_data_types=_string_list(payload.get("detected_data_types")),
216
+ detected_function_traits=_string_list(payload.get("detected_function_traits")),
207
217
  detected_tech_stack=_string_list(payload.get("detected_tech_stack")),
208
- detected_integrations=_string_list(payload.get("detected_integrations")),
209
218
  recommendations=recommendations,
210
219
  )
211
220
 
@@ -218,10 +227,9 @@ def _string_list(value: Any) -> list[str]:
218
227
 
219
228
  def _empty_result() -> LlmLexiconResult:
220
229
  return LlmLexiconResult(
221
- detected_domain="",
222
- detected_compliance=[],
230
+ detected_data_types=[],
231
+ detected_function_traits=[],
223
232
  detected_tech_stack=[],
224
- detected_integrations=[],
225
233
  recommendations=[],
226
234
  )
227
235
 
@@ -0,0 +1,17 @@
1
+ # API Rate Limiting and Caching Coverage Matrix
2
+
3
+ Source: RFC 6585, RFC 7234, RFC 9110, RFC 9111, and common API platform
4
+ practice.
5
+
6
+ | Axis | Coverage target | Covered when | Gap signal |
7
+ | --- | --- | --- | --- |
8
+ | `rate_limit_strategy` | Rate subject and enforcement | Per-user, per-IP, per-tenant, or equivalent rate limiting scope and window is defined. | Public request volume can grow without a declared limit strategy. |
9
+ | `quota_management` | Plan or period usage limits | Daily, monthly, plan, or tenant quotas and overage behavior are declared. | Consumers do not know usage ceilings or exhaustion behavior. |
10
+ | `throttling_response` | Client-visible throttling | 429 Too Many Requests and retry guidance such as Retry-After are specified. | Clients cannot predict how to back off after throttling. |
11
+ | `cache_control_headers` | HTTP cache policy | Cache-Control directives such as max-age, private, no-cache, or no-store are declared. | Responses can be cached incorrectly or not cached when intended. |
12
+ | `etag_conditional_requests` | Representation validation | ETag, If-None-Match, or 304 Not Modified behavior is defined. | Clients cannot validate cached representations safely. |
13
+ | `cdn_edge_caching` | Shared or edge cache lifecycle | CDN cacheability, surrogate policy, and invalidation are specified. | Edge caches can serve stale objects or miss cacheable content. |
14
+ | `idempotency_keys` | Retry-safe mutations | Idempotency keys or duplicate request controls protect side-effecting operations. | Retried mutations can create duplicate payments, orders, or writes. |
15
+
16
+ Reviewers classify each axis as `covered`, `implicit`, or `gap`. Findings are
17
+ emitted only for `gap`.
@@ -0,0 +1,70 @@
1
+ ---
2
+ extends: codd/elicit/templates/elicit_prompt_L0.md
3
+ lexicon_name: api_rate_limiting_caching
4
+ observation_dimensions: 7
5
+ ---
6
+
7
+ # API Rate Limiting and Caching Coverage Lexicon
8
+
9
+ Apply the base elicitation prompt, then inspect requirements and design notes
10
+ through the 7 API platform axes declared in `lexicon.yaml`. Use HTTP and API
11
+ platform terms for rate limits, quotas, 429 responses, cache headers,
12
+ conditional requests, edge caching, and idempotent retries.
13
+
14
+ 1. `rate_limit_strategy`
15
+ 2. `quota_management`
16
+ 3. `throttling_response`
17
+ 4. `cache_control_headers`
18
+ 5. `etag_conditional_requests`
19
+ 6. `cdn_edge_caching`
20
+ 7. `idempotency_keys`
21
+
22
+ For every axis, classify coverage as:
23
+
24
+ - `covered`: the material explicitly states the API behavior, header, status
25
+ code, quota, cache policy, invalidation behavior, or retry-safe mutation
26
+ mechanism and gives enough detail to verify it.
27
+ - `implicit`: the material refers to a shared API platform standard that is
28
+ available in the same source set and clearly covers the axis.
29
+ - `gap`: the material omits API platform behavior needed to judge abuse
30
+ prevention, client retry behavior, cache correctness, or duplicate side-effect
31
+ prevention.
32
+
33
+ Emit findings only for `gap` axes. Populate `details.dimension` with the axis
34
+ identifier from `lexicon.yaml`, include `details.evidence`, and ask a
35
+ reviewer-facing question when the missing API behavior requires human
36
+ confirmation. Severity follows `severity_rules.yaml`.
37
+
38
+ ## Coverage-check examples
39
+
40
+ ### covered
41
+
42
+ Requirement: "Public API requests are limited per authenticated user and tenant.
43
+ Quota exhaustion returns 429 with Retry-After. Read endpoints define
44
+ Cache-Control, ETag, and If-None-Match behavior, CDN cache invalidation occurs on
45
+ publish, and mutation POST requests require Idempotency-Key."
46
+
47
+ Classification: `covered` for all axes because rate limits, quota response,
48
+ caching, conditional validation, edge invalidation, and retry-safe mutation
49
+ behavior are explicit.
50
+
51
+ ### implicit
52
+
53
+ Requirement: "The billing API follows the attached `api-platform-standard-v5`,
54
+ which defines quotas, cache headers, edge cache purge, and idempotency keys."
55
+
56
+ Classification: `implicit` for `quota_management`, `cache_control_headers`,
57
+ `cdn_edge_caching`, and `idempotency_keys` when the referenced standard is
58
+ available in the same source set.
59
+
60
+ ### gap
61
+
62
+ Requirement: "The endpoint is public and clients may retry failed payment
63
+ requests."
64
+
65
+ Classification: `gap` for `rate_limit_strategy`, `throttling_response`, and
66
+ `idempotency_keys` because the material does not define abuse controls,
67
+ throttling response, or duplicate mutation protection.
68
+
69
+ Do not invent axes outside `lexicon.yaml`. Findings outside this lexicon should
70
+ set `severity: info` and `details.note: "outside_lexicon_scope"`.
@@ -0,0 +1,121 @@
1
+ coverage_axes:
2
+ - axis_type: "rate_limit_strategy"
3
+ rationale: "Public APIs need a rate limit strategy that states the subject, window, scope, and enforcement model."
4
+ criticality_default: high
5
+ variants:
6
+ - id: "rate limit"
7
+ label: "Rate limit"
8
+ attributes: {source: "RFC 6585", coverage_target: "request rate control"}
9
+ criticality: high
10
+ - id: "per-user"
11
+ label: "Per-user limit"
12
+ attributes: {source: "API platform practice", coverage_target: "authenticated caller scope"}
13
+ criticality: high
14
+ - id: "per-IP"
15
+ label: "Per-IP limit"
16
+ attributes: {source: "API platform practice", coverage_target: "network caller scope"}
17
+ criticality: medium
18
+ - id: "per-tenant"
19
+ label: "Per-tenant limit"
20
+ attributes: {source: "API platform practice", coverage_target: "customer isolation"}
21
+ criticality: high
22
+ - axis_type: "quota_management"
23
+ rationale: "API products need quota limits and overage policy so consumers know daily, monthly, or plan-based usage boundaries."
24
+ criticality_default: medium
25
+ variants:
26
+ - id: "quota"
27
+ label: "Usage quota"
28
+ attributes: {source: "API platform practice", coverage_target: "consumption limit"}
29
+ criticality: medium
30
+ - id: "daily limit"
31
+ label: "Daily quota"
32
+ attributes: {source: "API platform practice", coverage_target: "daily consumption window"}
33
+ criticality: medium
34
+ - id: "monthly limit"
35
+ label: "Monthly quota"
36
+ attributes: {source: "API platform practice", coverage_target: "billing-period consumption window"}
37
+ criticality: medium
38
+ - id: "overage policy"
39
+ label: "Overage policy"
40
+ attributes: {source: "API platform practice", coverage_target: "behavior after quota exhaustion"}
41
+ criticality: medium
42
+ - axis_type: "throttling_response"
43
+ rationale: "RFC 6585 defines 429 Too Many Requests for rate limiting, and retry guidance helps clients recover predictably."
44
+ criticality_default: medium
45
+ variants:
46
+ - id: "429"
47
+ label: "429 Too Many Requests"
48
+ attributes: {source: "RFC 6585", source_literal: "429 Too Many Requests"}
49
+ criticality: medium
50
+ - id: "Retry-After"
51
+ label: "Retry-After"
52
+ attributes: {source: "RFC 6585", coverage_target: "client retry delay"}
53
+ criticality: medium
54
+ - id: "Too Many Requests"
55
+ label: "Too Many Requests response"
56
+ attributes: {source: "RFC 6585", coverage_target: "throttling status"}
57
+ criticality: medium
58
+ - axis_type: "cache_control_headers"
59
+ rationale: "HTTP caching relies on explicit Cache-Control directives for freshness, privacy, and revalidation behavior."
60
+ criticality_default: medium
61
+ variants:
62
+ - id: "Cache-Control"
63
+ label: "Cache-Control header"
64
+ attributes: {source: "RFC 7234", source_literal: "Cache-Control"}
65
+ criticality: medium
66
+ - id: "max-age"
67
+ label: "max-age directive"
68
+ attributes: {source: "RFC 7234", coverage_target: "freshness lifetime"}
69
+ criticality: medium
70
+ - id: "no-store"
71
+ label: "no-store directive"
72
+ attributes: {source: "RFC 7234", coverage_target: "sensitive response storage"}
73
+ criticality: high
74
+ - axis_type: "etag_conditional_requests"
75
+ rationale: "ETags and conditional requests let clients validate cached representations and reduce unnecessary transfers."
76
+ criticality_default: medium
77
+ variants:
78
+ - id: "ETag"
79
+ label: "ETag"
80
+ attributes: {source: "RFC 7232 / RFC 9110", coverage_target: "entity validator"}
81
+ criticality: medium
82
+ - id: "If-None-Match"
83
+ label: "If-None-Match"
84
+ attributes: {source: "RFC 7232 / RFC 9110", coverage_target: "conditional validation"}
85
+ criticality: medium
86
+ - id: "304 Not Modified"
87
+ label: "304 Not Modified"
88
+ attributes: {source: "HTTP semantics", coverage_target: "not-modified response"}
89
+ criticality: medium
90
+ - axis_type: "cdn_edge_caching"
91
+ rationale: "Edge caching needs declared cacheability, surrogate behavior, and invalidation so API freshness and distribution are governed."
92
+ criticality_default: medium
93
+ variants:
94
+ - id: "CDN"
95
+ label: "CDN caching"
96
+ attributes: {source: "HTTP caching practice", coverage_target: "edge cache layer"}
97
+ criticality: medium
98
+ - id: "cache invalidation"
99
+ label: "Cache invalidation"
100
+ attributes: {source: "HTTP caching practice", coverage_target: "stale edge object removal"}
101
+ criticality: medium
102
+ - id: "surrogate control"
103
+ label: "Surrogate cache control"
104
+ attributes: {source: "HTTP caching practice", coverage_target: "shared cache policy"}
105
+ criticality: medium
106
+ - axis_type: "idempotency_keys"
107
+ rationale: "Idempotency keys prevent duplicate side effects when clients retry payment, order, or mutation requests."
108
+ criticality_default: high
109
+ variants:
110
+ - id: "Idempotency-Key"
111
+ label: "Idempotency key"
112
+ attributes: {source: "API reliability practice", coverage_target: "retry-safe mutation identifier"}
113
+ criticality: high
114
+ - id: "idempotency"
115
+ label: "Idempotency contract"
116
+ attributes: {source: "HTTP semantics", coverage_target: "safe retry behavior"}
117
+ criticality: high
118
+ - id: "duplicate request"
119
+ label: "Duplicate request protection"
120
+ attributes: {source: "API reliability practice", coverage_target: "side-effect de-duplication"}
121
+ criticality: high
@@ -0,0 +1,24 @@
1
+ name: api_rate_limiting_caching
2
+ lexicon_name: api_rate_limiting_caching
3
+ version: "1.0.0"
4
+ source_url: "https://www.rfc-editor.org/rfc/rfc6585"
5
+ source_version: "RFC 6585 / RFC 7234 / IETF"
6
+ standard: "RFC 6585 / RFC 7234 / IETF"
7
+ domain: cross_industry
8
+ description: "API rate limiting, quota management, throttling response, idempotency, and HTTP caching coverage axes."
9
+ observation_dimensions: 7
10
+ extends: "codd/elicit/templates/elicit_prompt_L0.md"
11
+ prompt_extension: "elicit_extend.md"
12
+ recommended_kinds: "recommended_kinds.yaml"
13
+ lexicon: "lexicon.yaml"
14
+ severity_rules: "severity_rules.yaml"
15
+ coverage_matrix: "coverage_matrix.md"
16
+ references:
17
+ - title: "RFC 6585 - Additional HTTP Status Codes"
18
+ url: "https://www.rfc-editor.org/rfc/rfc6585"
19
+ - title: "RFC 7234 - HTTP/1.1 Caching"
20
+ url: "https://www.rfc-editor.org/rfc/rfc7234"
21
+ - title: "RFC 9111 - HTTP Caching"
22
+ url: "https://www.rfc-editor.org/rfc/rfc9111"
23
+ - title: "RFC 9110 - HTTP Semantics"
24
+ url: "https://www.rfc-editor.org/rfc/rfc9110"
@@ -0,0 +1,8 @@
1
+ recommended_kinds:
2
+ - rate_limit_strategy_gap
3
+ - quota_management_gap
4
+ - throttling_response_gap
5
+ - cache_control_headers_gap
6
+ - etag_conditional_requests_gap
7
+ - cdn_edge_caching_gap
8
+ - idempotency_keys_gap
@@ -0,0 +1,32 @@
1
+ defaults:
2
+ coverage_gap: high
3
+ implicit: medium
4
+ covered: info
5
+ rules:
6
+ - when: "axis=rate_limit_strategy AND coverage=gap"
7
+ severity: high
8
+ rationale: "Missing rate limit strategy can leave a public API vulnerable to abuse, noisy neighbors, or denial of service."
9
+ - when: "axis=quota_management AND coverage=gap"
10
+ severity: medium
11
+ rationale: "Missing quota management leaves consumers without clear usage boundaries or overage behavior."
12
+ - when: "axis=throttling_response AND coverage=gap"
13
+ severity: medium
14
+ rationale: "Missing 429 and Retry-After behavior leaves clients without a predictable throttling response."
15
+ - when: "axis=cache_control_headers AND coverage=gap"
16
+ severity: medium
17
+ rationale: "Missing Cache-Control coverage can create stale, over-shared, or under-cached API responses."
18
+ - when: "axis=etag_conditional_requests AND coverage=gap"
19
+ severity: medium
20
+ rationale: "Missing ETag or conditional request coverage can increase load and make cache validation ambiguous."
21
+ - when: "axis=cdn_edge_caching AND coverage=gap"
22
+ severity: medium
23
+ rationale: "Missing edge cache and invalidation coverage leaves distributed cache freshness and purge behavior unclear."
24
+ - when: "axis=idempotency_keys AND coverage=gap"
25
+ severity: high
26
+ rationale: "Missing idempotency keys can duplicate side effects for payment, order, or mutation retries."
27
+ - when: "coverage=implicit AND evidence=weak"
28
+ severity: medium
29
+ rationale: "Weak implicit API platform coverage needs reviewer confirmation before it can satisfy rate limit or cache axes."
30
+ - when: "coverage=covered AND finding=residual_observation"
31
+ severity: info
32
+ rationale: "Covered axes may still emit informational review notes outside release-blocking API platform gaps."
@@ -0,0 +1,19 @@
1
+ # Domain-Driven Design Coverage Matrix
2
+
3
+ Source: Eric Evans, Domain-Driven Design, and Vaughn Vernon, Implementing
4
+ Domain-Driven Design.
5
+
6
+ | Axis | Covered when | Implicit when | Gap or not_found when |
7
+ | --- | --- | --- | --- |
8
+ | `ubiquitous_language` | Shared domain terms, definitions, and naming expectations are stated. | The feature is purely technical and has no business vocabulary. | Business terms appear but their meaning or code/model usage is unstated. |
9
+ | `bounded_context` | Model boundaries, ownership, and language scope are explicit. | The change stays inside one already named context. | Multiple meanings, teams, products, or subdomains are involved without a boundary. |
10
+ | `aggregate_design` | Aggregate root, invariant boundary, and transaction scope are stated. | The feature has no mutable domain consistency rule. | State changes can break business invariants but no aggregate boundary exists. |
11
+ | `entity_value_object` | Identity-bearing entities and value-equality objects are distinguished. | The feature has no persistent domain objects or value semantics. | Objects have lifecycle, equality, or mutation rules but no semantic distinction. |
12
+ | `domain_events` | Significant state changes and event publication/handling behavior are stated. | No other process or model needs to react to state changes. | A business occurrence matters outside the command but event behavior is absent. |
13
+ | `repository_pattern` | Aggregate loading/saving abstraction and persistence boundaries are stated. | Persistence is entirely outside the feature or already covered by an existing repository. | Use cases need aggregate persistence but storage access boundaries are unclear. |
14
+ | `application_service` | Use case orchestration, transaction, authorization, and coordination boundaries are stated. | The feature is a simple domain operation already covered by an existing service. | Workflow coordination exists but its boundary is mixed with domain rules or UI code. |
15
+ | `context_mapping` | Upstream/downstream, ACL, shared kernel, or other context relationships are stated. | No other bounded context or external model participates. | Multiple models integrate but relationship and dependency direction are unstated. |
16
+ | `anti_corruption_layer` | Translation and isolation from legacy, vendor, or external models are stated. | No legacy or external model enters the domain model. | External concepts cross into the core model without a protective translation boundary. |
17
+
18
+ Reviewers classify each axis as `covered`, `implicit`, `gap`, or `not_found`.
19
+ Findings are emitted for `gap` and `not_found`.
@@ -0,0 +1,54 @@
1
+ ---
2
+ extends: codd/elicit/templates/elicit_prompt_L0.md
3
+ lexicon_name: ddd_domain_driven_design
4
+ observation_dimensions: 9
5
+ ---
6
+
7
+ # Domain-Driven Design Coverage Lexicon
8
+
9
+ Apply the base elicitation prompt, then inspect medium-to-large business
10
+ application requirements through these DDD strategic and tactical axes:
11
+
12
+ 1. `ubiquitous_language`
13
+ 2. `bounded_context`
14
+ 3. `aggregate_design`
15
+ 4. `entity_value_object`
16
+ 5. `domain_events`
17
+ 6. `repository_pattern`
18
+ 7. `application_service`
19
+ 8. `context_mapping`
20
+ 9. `anti_corruption_layer`
21
+
22
+ For each axis, classify coverage as:
23
+
24
+ - `covered`: requirements explicitly state the relevant DDD modeling decision or
25
+ pattern boundary.
26
+ - `implicit`: the axis is not independently relevant because the described
27
+ feature is too small, CRUD-only, or fully delegated to an existing model.
28
+ - `gap`: the axis can affect correctness or maintainability and no expectation
29
+ is specified.
30
+ - `not_found`: no evidence for the axis exists in the reviewed material when
31
+ downstream scoring needs a missing-modeling status distinct from `gap`.
32
+
33
+ Emit findings only for `gap` or `not_found` axes. Include the axis in
34
+ `details.dimension`, the evidence or omission signal in `details.evidence`, and
35
+ a reviewer-facing question in `question`.
36
+
37
+ ## Coverage-check examples
38
+
39
+ - `covered`: The requirement defines Order and Invoice as separate bounded
40
+ contexts, names their upstream/downstream relationship, and states that Order
41
+ is modified only through an Order aggregate root; classify `bounded_context`,
42
+ `context_mapping`, and `aggregate_design` as `covered`.
43
+ - `implicit`: A static admin lookup table has no domain behavior beyond simple
44
+ CRUD and inherits an existing model; classify `domain_events` and
45
+ `anti_corruption_layer` as `implicit`.
46
+ - `gap`: A payment workflow changes customer status, invoice state, and rewards
47
+ balance in one operation but no aggregate or invariant boundary is defined;
48
+ classify `aggregate_design` as `gap`.
49
+ - `not_found`: A specification for a multi-team business application contains no
50
+ shared vocabulary, bounded context, aggregate, or context map evidence; emit
51
+ `not_found` findings for the applicable DDD axes.
52
+
53
+ Use recommended kinds as guidance. Do not invent additional DDD axes outside
54
+ the nine listed above.
@@ -0,0 +1,121 @@
1
+ coverage_axes:
2
+ - axis_type: ubiquitous_language
3
+ rationale: "DDD uses a shared language between domain experts and delivery teams to keep the model, code, and conversations aligned."
4
+ criticality_default: medium
5
+ variants:
6
+ - id: "ubiquitous language"
7
+ label: "Shared domain vocabulary"
8
+ attributes: {source_literal: "ubiquitous language", coverage_target: "terms used consistently in model, code, and discussion"}
9
+ criticality: medium
10
+ - id: "domain expert language"
11
+ label: "Domain expert language"
12
+ attributes: {source_literal: "domain expert", coverage_target: "business terminology and definitions"}
13
+ criticality: medium
14
+ - axis_type: bounded_context
15
+ rationale: "DDD strategic design uses bounded contexts to make model boundaries explicit and prevent one model from being stretched across incompatible meanings."
16
+ criticality_default: high
17
+ variants:
18
+ - id: "bounded context"
19
+ label: "Explicit model boundary"
20
+ attributes: {source_literal: "bounded context", coverage_target: "scope of a domain model and language"}
21
+ criticality: high
22
+ - id: "context boundary"
23
+ label: "Context boundary"
24
+ attributes: {source_literal: "context boundary", coverage_target: "ownership and integration edge"}
25
+ criticality: high
26
+ - axis_type: aggregate_design
27
+ rationale: "DDD tactical design uses aggregates and aggregate roots to enforce invariants and transaction boundaries."
28
+ criticality_default: high
29
+ variants:
30
+ - id: "aggregate root"
31
+ label: "Aggregate root"
32
+ attributes: {source_literal: "aggregate root", coverage_target: "entry point for consistency boundary"}
33
+ criticality: high
34
+ - id: "invariant boundary"
35
+ label: "Invariant boundary"
36
+ attributes: {source_literal: "invariant", coverage_target: "rules protected inside the aggregate"}
37
+ criticality: high
38
+ - id: "transaction boundary"
39
+ label: "Transaction boundary"
40
+ attributes: {source_literal: "transaction boundary", coverage_target: "consistency and concurrency scope"}
41
+ criticality: high
42
+ - axis_type: entity_value_object
43
+ rationale: "DDD distinguishes entities with identity from value objects with equality-by-value to clarify lifecycle, mutation, and comparison semantics."
44
+ criticality_default: high
45
+ variants:
46
+ - id: "entity"
47
+ label: "Entity identity"
48
+ attributes: {source_literal: "entity", coverage_target: "identity and lifecycle"}
49
+ criticality: high
50
+ - id: "value object"
51
+ label: "Value object equality"
52
+ attributes: {source_literal: "value object", coverage_target: "immutable descriptive value"}
53
+ criticality: high
54
+ - id: "identity"
55
+ label: "Identity semantics"
56
+ attributes: {source_literal: "identity", coverage_target: "stable object identity across state changes"}
57
+ criticality: high
58
+ - axis_type: domain_events
59
+ rationale: "DDD domain events represent significant state changes and decouple follow-up behavior from the command that caused the change."
60
+ criticality_default: medium
61
+ variants:
62
+ - id: "domain event"
63
+ label: "Domain event"
64
+ attributes: {source_literal: "domain event", coverage_target: "significant business occurrence"}
65
+ criticality: medium
66
+ - id: "event publication"
67
+ label: "Event publication"
68
+ attributes: {source_literal: "event publication", coverage_target: "notification and downstream reaction"}
69
+ criticality: medium
70
+ - axis_type: repository_pattern
71
+ rationale: "DDD repositories provide collection-like persistence access for aggregate roots without exposing storage details to the domain model."
72
+ criticality_default: medium
73
+ variants:
74
+ - id: "repository"
75
+ label: "Repository abstraction"
76
+ attributes: {source_literal: "repository", coverage_target: "aggregate persistence abstraction"}
77
+ criticality: medium
78
+ - id: "aggregate persistence"
79
+ label: "Aggregate persistence"
80
+ attributes: {source_literal: "aggregate persistence", coverage_target: "load and save aggregate roots"}
81
+ criticality: medium
82
+ - axis_type: application_service
83
+ rationale: "DDD application services orchestrate use cases, transactions, authorization, and coordination while keeping domain rules in the model."
84
+ criticality_default: medium
85
+ variants:
86
+ - id: "application service"
87
+ label: "Use case orchestration"
88
+ attributes: {source_literal: "application service", coverage_target: "workflow coordination around domain model"}
89
+ criticality: medium
90
+ - id: "use case"
91
+ label: "Use case boundary"
92
+ attributes: {source_literal: "use case", coverage_target: "input, transaction, and response boundary"}
93
+ criticality: medium
94
+ - axis_type: context_mapping
95
+ rationale: "DDD context mapping records upstream/downstream relationships and integration patterns between bounded contexts."
96
+ criticality_default: high
97
+ variants:
98
+ - id: "context map"
99
+ label: "Context map"
100
+ attributes: {source_literal: "context map", coverage_target: "relationships between bounded contexts"}
101
+ criticality: high
102
+ - id: "upstream downstream"
103
+ label: "Upstream/downstream relationship"
104
+ attributes: {source_literal: "upstream/downstream", coverage_target: "dependency direction and influence"}
105
+ criticality: high
106
+ - id: "shared kernel"
107
+ label: "Shared kernel"
108
+ attributes: {source_literal: "shared kernel", coverage_target: "jointly owned model subset"}
109
+ criticality: medium
110
+ - axis_type: anti_corruption_layer
111
+ rationale: "DDD uses an anti-corruption layer to isolate a domain model from legacy, external, or differently modeled systems."
112
+ criticality_default: high
113
+ variants:
114
+ - id: "anti-corruption layer"
115
+ label: "Anti-corruption layer"
116
+ attributes: {source_literal: "anti-corruption layer", coverage_target: "translation and isolation boundary"}
117
+ criticality: high
118
+ - id: "legacy isolation"
119
+ label: "Legacy or external model isolation"
120
+ attributes: {source_literal: "legacy system", coverage_target: "protecting the domain model from external concepts"}
121
+ criticality: high
@@ -0,0 +1,23 @@
1
+ id: ddd_domain_driven_design
2
+ name: "Domain-Driven Design (DDD)"
3
+ lexicon_name: ddd_domain_driven_design
4
+ version: "1.0.0"
5
+ standard: "Evans 2003 / Vernon 2013"
6
+ domain: cross_industry
7
+ source_url: "https://www.domainlanguage.com/ddd/"
8
+ source_version: "Eric Evans Domain-Driven Design 2003 + Vaughn Vernon Implementing Domain-Driven Design 2013"
9
+ description: "Domain-Driven Design tactical and strategic patterns coverage"
10
+ observation_dimensions: 9
11
+ extends: "codd/elicit/templates/elicit_prompt_L0.md"
12
+ prompt_extension: "elicit_extend.md"
13
+ recommended_kinds: "recommended_kinds.yaml"
14
+ lexicon: "lexicon.yaml"
15
+ severity_rules: "severity_rules.yaml"
16
+ coverage_matrix: "coverage_matrix.md"
17
+ references:
18
+ - title: "Domain-Driven Design: Tackling Complexity in the Heart of Software"
19
+ url: "https://www.domainlanguage.com/ddd/"
20
+ source_version: "Evans 2003"
21
+ - title: "Implementing Domain-Driven Design"
22
+ url: "https://www.pearson.com/en-us/subject-catalog/p/implementing-domain-driven-design/P200000009616/9780321834577"
23
+ source_version: "Vernon 2013"
@@ -0,0 +1,10 @@
1
+ recommended_kinds:
2
+ - ddd_ubiquitous_language_gap
3
+ - ddd_bounded_context_gap
4
+ - ddd_aggregate_design_gap
5
+ - ddd_entity_value_object_gap
6
+ - ddd_domain_events_gap
7
+ - ddd_repository_pattern_gap
8
+ - ddd_application_service_gap
9
+ - ddd_context_mapping_gap
10
+ - ddd_anti_corruption_layer_gap