codd-dev 2.72.0__tar.gz → 2.73.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.
- {codd_dev-2.72.0 → codd_dev-2.73.0}/PKG-INFO +1 -1
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/__init__.py +1 -1
- codd_dev-2.73.0/codd/languages/verify_executor.py +322 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/languages/verify_plan.py +16 -1
- {codd_dev-2.72.0 → codd_dev-2.73.0}/pyproject.toml +1 -1
- {codd_dev-2.72.0 → codd_dev-2.73.0}/.gitignore +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/LICENSE +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/README.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/bench_fixture/README.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/__main__.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/_git_helper.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/action_outcome.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/ai_invoke.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/ai_patch.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/artifact_contract.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/artifact_ids.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/artifacts/catalog.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/ask_user_question_adapter.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/assembler.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/bridge.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/brownfield/__init__.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/brownfield/pipeline.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/capability_completeness.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/claude_cli.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/cli.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/clustering.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/coherence_adapters.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/coherence_engine.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/confidence.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/config.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/config_schema.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/contracts.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/contracts_registry/__init__.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/contracts_registry/__main__.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/contracts_registry/certify.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/contracts_registry/generate_matrix.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/contracts_registry/registry.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/coverage_auditor.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/coverage_execution_coherence.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/coverage_metrics.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/dag/__init__.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/dag/auto_repair.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/dag/builder.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/dag/checks/__init__.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/dag/checks/_one_to_many_detection.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/dag/checks/artifact_contract_check.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/dag/checks/ci_health.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/dag/checks/dependency_freshness.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/dag/checks/depends_on_consistency.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/dag/checks/deployment_completeness.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/dag/checks/edge_validity.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/dag/checks/environment_coverage.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/dag/checks/implementation_coverage.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/dag/checks/node_completeness.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/dag/checks/opt_out.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/dag/checks/task_completion.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/dag/checks/transitive_closure.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/dag/checks/ui_coherence.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/dag/checks/user_journey_coherence.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/dag/coverage_axes.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/dag/defaults/cli.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/dag/defaults/cpp_embedded.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/dag/defaults/csharp.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/dag/defaults/elixir.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/dag/defaults/generic.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/dag/defaults/iot.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/dag/defaults/java.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/dag/defaults/kotlin.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/dag/defaults/mobile.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/dag/defaults/ruby.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/dag/defaults/rust.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/dag/defaults/scala.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/dag/defaults/swift.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/dag/defaults/test_frameworks.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/dag/defaults/web.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/dag/extractor.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/dag/impact.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/dag/runner.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/defaults.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/defaults.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/dependency_lock_coherence.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/deploy_targets/__init__.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/deploy_targets/app_service.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/deploy_targets/base.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/deploy_targets/docker_compose.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/deployer.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/deployment/__init__.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/deployment/checks/__init__.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/deployment/defaults/deploy_targets.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/deployment/defaults/runtime_capability_inference.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/deployment/defaults/schema_providers.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/deployment/defaults/verification_templates.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/deployment/extractor.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/deployment/providers/__init__.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/deployment/providers/ai_command.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/deployment/providers/ai_command_factory.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/deployment/providers/codex_app_server.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/deployment/providers/llm_consideration.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/deployment/providers/schema/__init__.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/deployment/providers/schema/prisma.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/deployment/providers/target/__init__.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/deployment/providers/target/docker_compose.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/deployment/providers/verification/__init__.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/deployment/providers/verification/assertion_handlers.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/deployment/providers/verification/cdp_browser.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/deployment/providers/verification/cdp_engines.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/deployment/providers/verification/cdp_launchers.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/deployment/providers/verification/cdp_wire.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/deployment/providers/verification/curl.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/deployment/providers/verification/form_strategies.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/deployment/providers/verification/means_catalog.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/deployment/providers/verification/playwright.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/deployment/providers/verification/pytest_http.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/deployment/providers/verification/vitest.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/design_md.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/diff/__init__.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/diff/apply.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/diff/engine.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/diff/persistence.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/diff/templates/diff_prompt.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/discovery.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/drift.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/e2e_contract_coherence.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/e2e_extractor.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/e2e_generator.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/e2e_harness.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/e2e_runner.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/elicit/__init__.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/elicit/apply.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/elicit/engine.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/elicit/finding.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/elicit/formatters/__init__.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/elicit/formatters/base.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/elicit/formatters/interactive.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/elicit/formatters/json_fmt.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/elicit/formatters/md.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/elicit/lexicon_loader.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/elicit/persistence.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/elicit/templates/elicit_prompt_L0.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/env_refs.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/extract_ai.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/extract_paths.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/extractor.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/fix/__init__.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/fix/candidate_selector.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/fix/design_updater.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/fix/impl_propagation.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/fix/interactive_prompt.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/fix/phenomenon_fixer.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/fix/phenomenon_parser.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/fix/risk_classifier.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/fix/templates/clarification_question.txt +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/fix/templates/design_update.txt +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/fix/templates/impl_update.txt +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/fix/templates/phenomenon_parse.txt +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/fix/templates/risk_assessment.txt +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/fix/templates_loader.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/fixer.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/fixup_drift.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/fixup_drift_strategies/__init__.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/fixup_drift_strategies/design_token_drift.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/fixup_drift_strategies/lexicon_violation.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/fixup_drift_strategies/url_drift.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/frontmatter.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/generator.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/git_evidence.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/graph.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/greenfield/__init__.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/greenfield/pipeline.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/hitl_session.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/hooks/__init__.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/hooks/pre-commit +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/hooks/recipes/claude_requirements_nudge.json +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/hooks/recipes/claude_settings_example.json +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/hooks/recipes/codex_hook.sh +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/hooks/recipes/git_post_commit.sh +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/hooks/recipes/git_pre_commit.sh +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/iac_nfr.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/implement_oracle.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/implement_oracle_scope.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/implementer/__init__.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/implementer/chunked_runner.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/implementer/typecheck_loop.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/implementer.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/import_coherence.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/inheritance.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/init/__init__.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/init/lexicon_suggest.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/init/llm_lexicon_suggester.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/init/stack_detector.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/knowledge_fetcher.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/languages/__init__.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/languages/adapters/__init__.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/languages/adapters/runner_report.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/languages/builtin_adapters.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/languages/compat.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/languages/contract.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/languages/loader.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/languages/path_planner.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/languages/profile.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/languages/profiles/go.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/languages/profiles/python.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/languages/profiles/typescript.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/languages/registry.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/lexicon.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/lexicon_cli/__init__.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/lexicon_cli/formatters/__init__.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/lexicon_cli/formatters/html.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/lexicon_cli/formatters/json_fmt.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/lexicon_cli/formatters/md.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/lexicon_cli/inspector.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/lexicon_cli/manager.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/lexicon_cli/reporter.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/lexicon_cli/threshold.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/llm/__init__.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/llm/approval.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/llm/best_practice_augmenter.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/llm/criteria_expander.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/llm/design_doc_extractor.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/llm/impl_step_deriver.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/llm/means_catalog_loader.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/llm/parser.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/llm/plan_deriver.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/llm/prompt_builder.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/llm/strategy_validator.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/llm/templates/best_practice_augment_meta.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/llm/templates/criteria_expand_meta.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/llm/templates/design_doc_extract_meta.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/llm/templates/impl_step_derive_meta.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/llm/templates/implementation_step_catalog.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/llm/templates/meta_instruction.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/llm/templates/plan_derive_meta.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/llm/templates/verification_means_catalog.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/mcp_server.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/measure.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/operational_e2e_audit.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/operations_derive.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/parsing/__init__.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/parsing/_shared.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/parsing/api_specs.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/parsing/filesystem_routes.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/parsing/iac.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/parsing/python_ast.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/parsing/schemas.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/parsing/tests_builddeps.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/parsing/treesitter.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/planner.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/policy.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/preflight/__init__.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/preflight/defaults/cli.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/preflight/defaults/generic.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/preflight/defaults/iot.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/preflight/defaults/mobile.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/preflight/defaults/web.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/project_types.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/propagate.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/propagation_common.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/propagator.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/reconciliation_ledger.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/reference_resolution.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/registry.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/repair/__init__.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/repair/approval_repair.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/repair/auto_scope_guard.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/repair/engine.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/repair/git_patcher.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/repair/history.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/repair/llm_repair_engine.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/repair/loop.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/repair/primary_picker.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/repair/proof_breaks.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/repair/repair_result.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/repair/repairability_classifier.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/repair/schema.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/repair/templates/analyze_meta.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/repair/templates/propose_meta.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/repair/templates/repair_strategy_meta.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/repair/templates/repairability_meta.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/repair/test_failure_attribution.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/repair/verify_runner.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/repair_slice.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/require.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/require_plugins.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/require_propagate.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/required_artifacts/defaults/cli.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/required_artifacts/defaults/generic.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/required_artifacts/defaults/iot.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/required_artifacts/defaults/mobile.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/required_artifacts/defaults/web.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/required_artifacts_deriver.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/requirement_completeness/defaults/cli.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/requirement_completeness/defaults/generic.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/requirement_completeness/defaults/iot.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/requirement_completeness/defaults/mobile.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/requirement_completeness/defaults/web.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/requirement_completeness_auditor.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/requirement_reconciliation.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/requirements_meta.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/restoration_report.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/restore.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/routes_extractor.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/runtime_smoke/__init__.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/runtime_smoke/checks.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/runtime_smoke/config.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/runtime_smoke/report.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/runtime_smoke/runner.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/scanner.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/schema_refs.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/screen_flow_validator.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/screen_transition_extractor.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/screen_transitions/defaults.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/skills_cli/__init__.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/skills_cli/discovery.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/skills_cli/manager.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/skills_cli/paths.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/stack/__init__.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/stack/adapters/__init__.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/stack/adapters/_base.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/stack/adapters/nextjs.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/stack/adapters/playwright.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/stack/compose.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/stack/loader.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/stack/lock.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/stack/obligations.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/stack/profile.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/stack/profiles/addons/playwright.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/stack/profiles/addons/prisma.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/stack/profiles/frameworks/nextjs.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/stack/project.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/stack/registry.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/stack/resolve.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/surface_reconciliation.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/synth.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/templates/codd.yaml.tmpl +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/templates/conventions.yaml.tmpl +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/templates/data_dependencies.yaml.tmpl +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/templates/doc_links.yaml.tmpl +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/templates/extract_ai_prompt_baseline.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/templates/extracted/api-contract.md.j2 +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/templates/extracted/architecture-overview.md.j2 +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/templates/extracted/module-detail.md.j2 +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/templates/extracted/schema-design.md.j2 +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/templates/extracted/system-context.md.j2 +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/templates/gitignore.tmpl +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/templates/lexicon_questions.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/templates/lexicon_schema.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/templates/overrides.yaml.tmpl +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/test_detection.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/test_import_coherence.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/traceability.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/validator.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/vb_marker_authenticity.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/vb_rerun_scope.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/verifiable_behavior_audit.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/watch/__init__.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/watch/events.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/watch/propagation_log.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/watch/propagation_pipeline.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/watch/test_runner.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/watch/watcher.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd/wiring.py +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/ai_governance_eu_act/coverage_matrix.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/ai_governance_eu_act/elicit_extend.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/ai_governance_eu_act/lexicon.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/ai_governance_eu_act/manifest.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/ai_governance_eu_act/recommended_kinds.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/ai_governance_eu_act/severity_rules.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/api_rate_limiting_caching/coverage_matrix.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/api_rate_limiting_caching/elicit_extend.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/api_rate_limiting_caching/lexicon.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/api_rate_limiting_caching/manifest.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/api_rate_limiting_caching/recommended_kinds.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/api_rate_limiting_caching/severity_rules.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/api_rest_openapi/coverage_matrix.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/api_rest_openapi/elicit_extend.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/api_rest_openapi/lexicon.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/api_rest_openapi/manifest.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/api_rest_openapi/recommended_kinds.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/api_rest_openapi/severity_rules.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/babok/elicit_extend.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/babok/lexicon.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/babok/manifest.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/babok/recommended_kinds.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/babok/severity_rules.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/backend_event_cloudevents/coverage_matrix.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/backend_event_cloudevents/elicit_extend.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/backend_event_cloudevents/lexicon.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/backend_event_cloudevents/manifest.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/backend_event_cloudevents/recommended_kinds.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/backend_event_cloudevents/severity_rules.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/backend_graphql/coverage_matrix.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/backend_graphql/elicit_extend.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/backend_graphql/lexicon.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/backend_graphql/manifest.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/backend_graphql/recommended_kinds.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/backend_graphql/severity_rules.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/backend_grpc_proto/coverage_matrix.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/backend_grpc_proto/elicit_extend.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/backend_grpc_proto/lexicon.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/backend_grpc_proto/manifest.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/backend_grpc_proto/recommended_kinds.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/backend_grpc_proto/severity_rules.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/compliance_hipaa/coverage_matrix.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/compliance_hipaa/elicit_extend.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/compliance_hipaa/lexicon.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/compliance_hipaa/manifest.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/compliance_hipaa/recommended_kinds.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/compliance_hipaa/severity_rules.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/compliance_iso27001/coverage_matrix.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/compliance_iso27001/elicit_extend.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/compliance_iso27001/lexicon.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/compliance_iso27001/manifest.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/compliance_iso27001/recommended_kinds.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/compliance_iso27001/severity_rules.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/compliance_pci_dss_4/coverage_matrix.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/compliance_pci_dss_4/elicit_extend.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/compliance_pci_dss_4/lexicon.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/compliance_pci_dss_4/manifest.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/compliance_pci_dss_4/recommended_kinds.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/compliance_pci_dss_4/severity_rules.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/data_aggregation_policies/coverage_matrix.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/data_aggregation_policies/elicit_extend.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/data_aggregation_policies/lexicon.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/data_aggregation_policies/manifest.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/data_aggregation_policies/recommended_kinds.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/data_aggregation_policies/severity_rules.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/coverage_matrix.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/elicit_extend.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/lexicon.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/manifest.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/recommended_kinds.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/severity_rules.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/data_governance_appi_gdpr/coverage_matrix.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/data_governance_appi_gdpr/elicit_extend.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/data_governance_appi_gdpr/lexicon.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/data_governance_appi_gdpr/manifest.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/data_governance_appi_gdpr/recommended_kinds.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/data_governance_appi_gdpr/severity_rules.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/data_nosql_jsonschema/coverage_matrix.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/data_nosql_jsonschema/elicit_extend.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/data_nosql_jsonschema/lexicon.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/data_nosql_jsonschema/manifest.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/data_nosql_jsonschema/recommended_kinds.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/data_nosql_jsonschema/severity_rules.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/data_relational_iso_sql/coverage_matrix.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/data_relational_iso_sql/elicit_extend.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/data_relational_iso_sql/lexicon.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/data_relational_iso_sql/manifest.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/data_relational_iso_sql/recommended_kinds.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/data_relational_iso_sql/severity_rules.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/ddd_domain_driven_design/coverage_matrix.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/ddd_domain_driven_design/elicit_extend.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/ddd_domain_driven_design/lexicon.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/ddd_domain_driven_design/manifest.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/ddd_domain_driven_design/recommended_kinds.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/ddd_domain_driven_design/severity_rules.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/dora_sre_metrics/coverage_matrix.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/dora_sre_metrics/elicit_extend.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/dora_sre_metrics/lexicon.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/dora_sre_metrics/manifest.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/dora_sre_metrics/recommended_kinds.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/dora_sre_metrics/severity_rules.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/i18n_unicode_cldr/coverage_matrix.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/i18n_unicode_cldr/elicit_extend.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/i18n_unicode_cldr/lexicon.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/i18n_unicode_cldr/manifest.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/i18n_unicode_cldr/recommended_kinds.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/i18n_unicode_cldr/severity_rules.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/ml_model_cards/coverage_matrix.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/ml_model_cards/elicit_extend.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/ml_model_cards/lexicon.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/ml_model_cards/manifest.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/ml_model_cards/recommended_kinds.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/ml_model_cards/severity_rules.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/mobile_a11y_native/coverage_matrix.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/mobile_a11y_native/elicit_extend.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/mobile_a11y_native/lexicon.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/mobile_a11y_native/manifest.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/mobile_a11y_native/recommended_kinds.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/mobile_a11y_native/severity_rules.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/mobile_android_material3/coverage_matrix.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/mobile_android_material3/elicit_extend.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/mobile_android_material3/lexicon.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/mobile_android_material3/manifest.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/mobile_android_material3/recommended_kinds.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/mobile_android_material3/severity_rules.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/mobile_ios_hig/coverage_matrix.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/mobile_ios_hig/elicit_extend.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/mobile_ios_hig/lexicon.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/mobile_ios_hig/manifest.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/mobile_ios_hig/recommended_kinds.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/mobile_ios_hig/severity_rules.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/mobile_security_masvs/coverage_matrix.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/mobile_security_masvs/elicit_extend.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/mobile_security_masvs/lexicon.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/mobile_security_masvs/manifest.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/mobile_security_masvs/recommended_kinds.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/mobile_security_masvs/severity_rules.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/ops_cicd_pipeline/coverage_matrix.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/ops_cicd_pipeline/elicit_extend.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/ops_cicd_pipeline/lexicon.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/ops_cicd_pipeline/manifest.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/ops_cicd_pipeline/recommended_kinds.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/ops_cicd_pipeline/severity_rules.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/ops_iac_terraform/coverage_matrix.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/ops_iac_terraform/elicit_extend.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/ops_iac_terraform/lexicon.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/ops_iac_terraform/manifest.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/ops_iac_terraform/recommended_kinds.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/ops_iac_terraform/severity_rules.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/ops_kubernetes/coverage_matrix.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/ops_kubernetes/elicit_extend.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/ops_kubernetes/lexicon.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/ops_kubernetes/manifest.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/ops_kubernetes/recommended_kinds.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/ops_kubernetes/severity_rules.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/ops_observability_otel/coverage_matrix.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/ops_observability_otel/elicit_extend.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/ops_observability_otel/lexicon.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/ops_observability_otel/manifest.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/ops_observability_otel/recommended_kinds.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/ops_observability_otel/severity_rules.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/process_iso25010/coverage_matrix.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/process_iso25010/elicit_extend.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/process_iso25010/lexicon.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/process_iso25010/manifest.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/process_iso25010/recommended_kinds.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/process_iso25010/severity_rules.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/process_test_iso29119/coverage_matrix.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/process_test_iso29119/elicit_extend.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/process_test_iso29119/lexicon.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/process_test_iso29119/manifest.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/process_test_iso29119/recommended_kinds.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/process_test_iso29119/severity_rules.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/twelve_factor_app/coverage_matrix.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/twelve_factor_app/elicit_extend.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/twelve_factor_app/lexicon.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/twelve_factor_app/manifest.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/twelve_factor_app/recommended_kinds.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/twelve_factor_app/severity_rules.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/coverage_matrix.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/elicit_extend.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/lexicon.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/manifest.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/recommended_kinds.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/severity_rules.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/web_authn_webauthn/coverage_matrix.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/web_authn_webauthn/elicit_extend.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/web_authn_webauthn/lexicon.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/web_authn_webauthn/manifest.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/web_authn_webauthn/recommended_kinds.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/web_authn_webauthn/severity_rules.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/web_browser_compat/coverage_matrix.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/web_browser_compat/elicit_extend.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/web_browser_compat/lexicon.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/web_browser_compat/manifest.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/web_browser_compat/recommended_kinds.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/web_browser_compat/severity_rules.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/web_forms_html5/coverage_matrix.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/web_forms_html5/elicit_extend.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/web_forms_html5/lexicon.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/web_forms_html5/manifest.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/web_forms_html5/recommended_kinds.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/web_forms_html5/severity_rules.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/web_performance_core_web_vitals/coverage_matrix.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/web_performance_core_web_vitals/elicit_extend.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/web_performance_core_web_vitals/lexicon.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/web_performance_core_web_vitals/manifest.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/web_performance_core_web_vitals/recommended_kinds.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/web_performance_core_web_vitals/severity_rules.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/web_pwa_manifest/coverage_matrix.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/web_pwa_manifest/elicit_extend.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/web_pwa_manifest/lexicon.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/web_pwa_manifest/manifest.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/web_pwa_manifest/recommended_kinds.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/web_pwa_manifest/severity_rules.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/web_responsive/coverage_matrix.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/web_responsive/elicit_extend.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/web_responsive/lexicon.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/web_responsive/manifest.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/web_responsive/recommended_kinds.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/web_responsive/severity_rules.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/web_security_owasp/coverage_matrix.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/web_security_owasp/elicit_extend.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/web_security_owasp/lexicon.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/web_security_owasp/manifest.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/web_security_owasp/recommended_kinds.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/web_security_owasp/severity_rules.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/web_seo_schemaorg/coverage_matrix.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/web_seo_schemaorg/elicit_extend.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/web_seo_schemaorg/lexicon.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/web_seo_schemaorg/manifest.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/web_seo_schemaorg/recommended_kinds.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/lexicons/web_seo_schemaorg/severity_rules.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/codd_plugins/stack_map.yaml +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/docs/cookbook/cdp_browser/README.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/docs/cookbook/presentation_aggregation/README.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/docs/requirements/README.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/dogfood/README.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/dogfood/fixtures/flat_py_app/README.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/examples/README.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/skills/codd-assemble/SKILL.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/skills/codd-evolve/SKILL.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/skills/codd-generate/SKILL.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/skills/codd-greenfield/SKILL.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/skills/codd-impact/SKILL.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/skills/codd-init/SKILL.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/skills/codd-propagate/SKILL.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/skills/codd-restore/SKILL.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/skills/codd-scan/SKILL.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.0}/skills/codd-validate/SKILL.md +0 -0
- {codd_dev-2.72.0 → codd_dev-2.73.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.
|
|
3
|
+
Version: 2.73.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
|
|
@@ -0,0 +1,322 @@
|
|
|
1
|
+
"""Contract-driven verify EXECUTOR (Contract Kernel Step 4 — fixtures only).
|
|
2
|
+
|
|
3
|
+
Runs a :class:`~codd.languages.verify_plan.VerifyRunPlan`, captures + parses its
|
|
4
|
+
machine-readable report, and classifies the outcome into a
|
|
5
|
+
:class:`~codd.languages.verify_plan.VerifyClass`. This is the imperative half that
|
|
6
|
+
:mod:`codd.languages.verify_plan`'s pure classifier deliberately is NOT: it spawns
|
|
7
|
+
the process, persists/locates the report, runs the report adapter, and then maps
|
|
8
|
+
the observed signals to a class.
|
|
9
|
+
|
|
10
|
+
NOT WIRED IN. The live ``VerifyRunner`` still uses the legacy path; this executor
|
|
11
|
+
is exercised only by fixtures (``tests/languages/test_verify_executor.py``). The
|
|
12
|
+
switch is Step 6.
|
|
13
|
+
|
|
14
|
+
THE CARDINAL RULE (anti-false-green). A not-green signal ALWAYS beats an
|
|
15
|
+
exit-0 / clean-looking result. Every observation failure — a missing report, an
|
|
16
|
+
unreadable report, zero collected tests, a failed test, a SKIPPED test (a skip is
|
|
17
|
+
not an authentic pass), a missing report adapter, a timeout — is classified as a
|
|
18
|
+
not-green class BEFORE any PASS is considered. There is deliberately NO "allow"
|
|
19
|
+
path: nothing in this module lets a zero/missing/failed/skipped observation become
|
|
20
|
+
PASS. The observation policy fields
|
|
21
|
+
(:class:`~codd.languages.profile.VerifyObservationPolicy`) are the invariant; they
|
|
22
|
+
only ever raise the bar (``min_collected_tests``), never lower it.
|
|
23
|
+
|
|
24
|
+
Mapping of :class:`~codd.languages.adapters.runner_report.RunnerExecution` fields
|
|
25
|
+
to classes (the anti-false-green ordering, GPT §5):
|
|
26
|
+
|
|
27
|
+
* ``report_required`` and report file absent → ``REPORT_MISSING``.
|
|
28
|
+
* report present but ``adapter.parse(...)`` raises → ``REPORT_UNREADABLE``.
|
|
29
|
+
* ``execution.total_cases == 0`` AND ``execution.executed_files == ∅`` (no executed
|
|
30
|
+
file) → ``ZERO_TESTS``; also ``execution.total_cases < observation.min_collected_tests``
|
|
31
|
+
→ ``ZERO_TESTS`` (collected below the floor is "effectively no tests").
|
|
32
|
+
* ``execution.executed_failed_files`` non-empty (any failed test/file) → ``FAIL``.
|
|
33
|
+
* a SKIPPED test was observed (``observation.skipped_tests == "red"``) → ``FAIL``
|
|
34
|
+
(skip is not an authentic pass; see below for how a skip is detected).
|
|
35
|
+
* ``returncode != 0`` → ``FAIL`` (a nonzero exit beats a green-looking report).
|
|
36
|
+
* else (rc==0, report parsed, collected ≥ floor, no failed/skipped) → ``PASS``.
|
|
37
|
+
|
|
38
|
+
How a SKIP is detected from :class:`RunnerExecution`. The adapters fold a skipped
|
|
39
|
+
case into the FILE-level signal: a file carrying ANY skipped (or failed) case is
|
|
40
|
+
put in ``executed_failed_files``, never ``executed_passed_files`` (see the vitest /
|
|
41
|
+
go-test adapters — "a skip proves nothing"). So a skipped test surfaces here as a
|
|
42
|
+
``executed_failed_files`` member, which the failed-test branch already reds. We
|
|
43
|
+
ALSO red the count-mismatch shape (``passed_cases < total_cases`` while no file is
|
|
44
|
+
marked failed) because a runner that reports cases but where passed < total has a
|
|
45
|
+
non-passed (failed/skipped) case the file rollup may not have attributed — a
|
|
46
|
+
defensive not-green so a partial report never sneaks to PASS.
|
|
47
|
+
"""
|
|
48
|
+
|
|
49
|
+
from __future__ import annotations
|
|
50
|
+
|
|
51
|
+
import os
|
|
52
|
+
import subprocess # noqa: S404 — argv is from the trusted language profile, shell=False
|
|
53
|
+
from dataclasses import dataclass
|
|
54
|
+
from pathlib import Path
|
|
55
|
+
|
|
56
|
+
from .builtin_adapters import ensure_builtin_adapters_registered
|
|
57
|
+
from .registry import AdapterRegistry, default_adapter_registry
|
|
58
|
+
from .verify_plan import VerifyClass, VerifyRunPlan
|
|
59
|
+
from .adapters.runner_report import RunnerExecution
|
|
60
|
+
|
|
61
|
+
#: Default wall-clock cap for a verify subprocess. A run that exceeds it is a FAIL
|
|
62
|
+
#: (a timeout is never green), never a hang that blocks the gate forever.
|
|
63
|
+
DEFAULT_VERIFY_TIMEOUT_SECONDS = 1800
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
@dataclass(frozen=True)
|
|
67
|
+
class VerifyExecutionResult:
|
|
68
|
+
"""Outcome of running a verify plan through the executor.
|
|
69
|
+
|
|
70
|
+
``verify_class`` is the anti-false-green verdict (only ``PASS`` is green).
|
|
71
|
+
``returncode`` is the subprocess exit code (``None`` if it never spawned / timed
|
|
72
|
+
out). ``execution`` is the parsed :class:`RunnerExecution` (``None`` when no
|
|
73
|
+
report was parsed — tool missing, report absent/unreadable, etc.). ``detail`` is
|
|
74
|
+
a short human reason, always populated for a not-green class.
|
|
75
|
+
"""
|
|
76
|
+
|
|
77
|
+
verify_class: VerifyClass
|
|
78
|
+
returncode: int | None
|
|
79
|
+
execution: RunnerExecution | None
|
|
80
|
+
detail: str
|
|
81
|
+
|
|
82
|
+
@property
|
|
83
|
+
def is_green(self) -> bool:
|
|
84
|
+
return self.verify_class.is_green
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
def execute_verify_plan(
|
|
88
|
+
plan: VerifyRunPlan,
|
|
89
|
+
project_root: Path,
|
|
90
|
+
*,
|
|
91
|
+
adapter_registry: AdapterRegistry | None = None,
|
|
92
|
+
timeout: float | None = None,
|
|
93
|
+
) -> VerifyExecutionResult:
|
|
94
|
+
"""Run ``plan`` under ``project_root`` and classify the outcome (anti-false-green).
|
|
95
|
+
|
|
96
|
+
Steps, in order:
|
|
97
|
+
|
|
98
|
+
a. cwd = ``project_root / plan.cwd`` (or ``project_root``); env = ``os.environ``
|
|
99
|
+
copy updated with ``plan.env``.
|
|
100
|
+
b. If ``plan.report_path`` is set, UNLINK any stale report file BEFORE running —
|
|
101
|
+
a leftover green report from a prior run must never be read as this run's
|
|
102
|
+
result (the canonical stale-report false-green).
|
|
103
|
+
c. ``subprocess.run(plan.argv, shell=False, …, capture_output=True, text=True,
|
|
104
|
+
timeout=…)``. ``FileNotFoundError`` / ``OSError`` (tool not found / spawn
|
|
105
|
+
failure) → ``TOOL_MISSING``; ``TimeoutExpired`` → ``FAIL`` (never green).
|
|
106
|
+
d. If ``plan.report_capture == "stdout"``, persist the captured stdout to the
|
|
107
|
+
report path (``mkdir`` parents) — ``go test -json`` writes no file itself.
|
|
108
|
+
e. Resolve the runner_report adapter via
|
|
109
|
+
:func:`ensure_builtin_adapters_registered` then ``registry.get(...)``. If the
|
|
110
|
+
plan requires a report but the adapter is unavailable, the executor cannot
|
|
111
|
+
observe → ``REPORT_UNREADABLE`` (fail-closed; never PASS).
|
|
112
|
+
f. Classify with not-green BEFORE any PASS (see module docstring / GPT §5).
|
|
113
|
+
"""
|
|
114
|
+
|
|
115
|
+
registry = adapter_registry if adapter_registry is not None else default_adapter_registry
|
|
116
|
+
run_timeout = timeout if timeout is not None else DEFAULT_VERIFY_TIMEOUT_SECONDS
|
|
117
|
+
|
|
118
|
+
# (a) Resolve cwd + env.
|
|
119
|
+
cwd = (project_root / plan.cwd) if plan.cwd else project_root
|
|
120
|
+
env = os.environ.copy()
|
|
121
|
+
env.update(plan.env)
|
|
122
|
+
|
|
123
|
+
# (b) Anti-false-green: unlink any STALE report before the run so a leftover
|
|
124
|
+
# green report can never be mistaken for this run's output.
|
|
125
|
+
report_path: Path | None = None
|
|
126
|
+
if plan.report_path:
|
|
127
|
+
report_path = (project_root / plan.report_path)
|
|
128
|
+
if not report_path.is_absolute():
|
|
129
|
+
report_path = report_path.resolve()
|
|
130
|
+
try:
|
|
131
|
+
report_path.unlink()
|
|
132
|
+
except FileNotFoundError:
|
|
133
|
+
pass
|
|
134
|
+
except OSError:
|
|
135
|
+
# An unremovable stale file is itself an observability hazard: we cannot
|
|
136
|
+
# guarantee what we read next is THIS run's report → fail-closed.
|
|
137
|
+
return VerifyExecutionResult(
|
|
138
|
+
verify_class=VerifyClass.REPORT_UNREADABLE,
|
|
139
|
+
returncode=None,
|
|
140
|
+
execution=None,
|
|
141
|
+
detail=f"could not remove stale report at {report_path} before run",
|
|
142
|
+
)
|
|
143
|
+
|
|
144
|
+
# (c) Run the command.
|
|
145
|
+
try:
|
|
146
|
+
completed = subprocess.run( # noqa: S603 — trusted argv, shell=False
|
|
147
|
+
list(plan.argv),
|
|
148
|
+
shell=False,
|
|
149
|
+
cwd=str(cwd),
|
|
150
|
+
env=env,
|
|
151
|
+
capture_output=True,
|
|
152
|
+
text=True,
|
|
153
|
+
timeout=run_timeout,
|
|
154
|
+
)
|
|
155
|
+
except (FileNotFoundError, OSError) as exc:
|
|
156
|
+
return VerifyExecutionResult(
|
|
157
|
+
verify_class=VerifyClass.TOOL_MISSING,
|
|
158
|
+
returncode=None,
|
|
159
|
+
execution=None,
|
|
160
|
+
detail=f"verify command could not spawn ({plan.command_str!r}): {exc}",
|
|
161
|
+
)
|
|
162
|
+
except subprocess.TimeoutExpired:
|
|
163
|
+
return VerifyExecutionResult(
|
|
164
|
+
verify_class=VerifyClass.FAIL,
|
|
165
|
+
returncode=None,
|
|
166
|
+
execution=None,
|
|
167
|
+
detail=f"verify command timed out after {run_timeout}s ({plan.command_str!r})",
|
|
168
|
+
)
|
|
169
|
+
|
|
170
|
+
returncode = completed.returncode
|
|
171
|
+
|
|
172
|
+
# (d) Persist captured stdout to the report path when the command streams its
|
|
173
|
+
# machine-readable report to stdout (e.g. `go test -json`).
|
|
174
|
+
if report_path is not None and (plan.report_capture or "").strip().lower() == "stdout":
|
|
175
|
+
try:
|
|
176
|
+
report_path.parent.mkdir(parents=True, exist_ok=True)
|
|
177
|
+
report_path.write_text(completed.stdout or "", encoding="utf-8")
|
|
178
|
+
except OSError as exc:
|
|
179
|
+
return VerifyExecutionResult(
|
|
180
|
+
verify_class=VerifyClass.REPORT_UNREADABLE,
|
|
181
|
+
returncode=returncode,
|
|
182
|
+
execution=None,
|
|
183
|
+
detail=f"could not persist captured stdout to {report_path}: {exc}",
|
|
184
|
+
)
|
|
185
|
+
|
|
186
|
+
# (e) Resolve the runner_report adapter (fail-closed when a required report has
|
|
187
|
+
# no adapter to read it — the executor cannot observe, so it must not PASS).
|
|
188
|
+
ensure_builtin_adapters_registered(registry)
|
|
189
|
+
adapter = None
|
|
190
|
+
if plan.report_adapter is not None:
|
|
191
|
+
adapter = registry.get("runner_report", plan.report_adapter)
|
|
192
|
+
if plan.report_required and adapter is None:
|
|
193
|
+
return VerifyExecutionResult(
|
|
194
|
+
verify_class=VerifyClass.REPORT_UNREADABLE,
|
|
195
|
+
returncode=returncode,
|
|
196
|
+
execution=None,
|
|
197
|
+
detail=(
|
|
198
|
+
f"required runner_report adapter "
|
|
199
|
+
f"{plan.report_adapter!r} is not registered — the executor cannot "
|
|
200
|
+
"observe the report, so the run cannot be classified green "
|
|
201
|
+
"(fail-closed; never PASS)"
|
|
202
|
+
),
|
|
203
|
+
)
|
|
204
|
+
|
|
205
|
+
# (f) Classify — not-green BEFORE any PASS (GPT §5 ordering).
|
|
206
|
+
return _classify(plan, returncode, report_path, adapter, project_root)
|
|
207
|
+
|
|
208
|
+
|
|
209
|
+
def _classify(
|
|
210
|
+
plan: VerifyRunPlan,
|
|
211
|
+
returncode: int,
|
|
212
|
+
report_path: Path | None,
|
|
213
|
+
adapter: object | None,
|
|
214
|
+
project_root: Path,
|
|
215
|
+
) -> VerifyExecutionResult:
|
|
216
|
+
"""Map observed signals to a class, not-green ordered before PASS (pure of I/O
|
|
217
|
+
spawning — it only reads the report and inspects ``returncode``)."""
|
|
218
|
+
|
|
219
|
+
# report_required and report file absent → REPORT_MISSING.
|
|
220
|
+
if plan.report_required:
|
|
221
|
+
if report_path is None or not report_path.exists():
|
|
222
|
+
return VerifyExecutionResult(
|
|
223
|
+
verify_class=VerifyClass.REPORT_MISSING,
|
|
224
|
+
returncode=returncode,
|
|
225
|
+
execution=None,
|
|
226
|
+
detail=(
|
|
227
|
+
f"required report not found at {report_path} after the verify run "
|
|
228
|
+
"(an absent report is a not-green observation, never an empty pass)"
|
|
229
|
+
),
|
|
230
|
+
)
|
|
231
|
+
|
|
232
|
+
execution: RunnerExecution | None = None
|
|
233
|
+
if plan.report_required and adapter is not None and report_path is not None:
|
|
234
|
+
# report present but adapter.parse(...) raises → REPORT_UNREADABLE.
|
|
235
|
+
try:
|
|
236
|
+
execution = adapter.parse(report_path, project_root=project_root) # type: ignore[attr-defined]
|
|
237
|
+
except Exception as exc: # noqa: BLE001 — ANY parse failure is unreadable, not a pass
|
|
238
|
+
return VerifyExecutionResult(
|
|
239
|
+
verify_class=VerifyClass.REPORT_UNREADABLE,
|
|
240
|
+
returncode=returncode,
|
|
241
|
+
execution=None,
|
|
242
|
+
detail=(
|
|
243
|
+
f"report at {report_path} present but unparseable by adapter "
|
|
244
|
+
f"{plan.report_adapter!r}: {exc}"
|
|
245
|
+
),
|
|
246
|
+
)
|
|
247
|
+
|
|
248
|
+
if execution is not None:
|
|
249
|
+
collected = execution.total_cases
|
|
250
|
+
executed_files = execution.executed_files
|
|
251
|
+
# zero tests: nothing collected AND no executed file → ZERO_TESTS.
|
|
252
|
+
if collected == 0 and not executed_files:
|
|
253
|
+
return VerifyExecutionResult(
|
|
254
|
+
verify_class=VerifyClass.ZERO_TESTS,
|
|
255
|
+
returncode=returncode,
|
|
256
|
+
execution=execution,
|
|
257
|
+
detail="report parsed but it observed zero tests (no cases, no executed files)",
|
|
258
|
+
)
|
|
259
|
+
# collected below the policy floor → ZERO_TESTS (effectively no tests). The
|
|
260
|
+
# policy may RAISE min_collected_tests (stricter), never lower it below 1.
|
|
261
|
+
if collected < plan.observation.min_collected_tests:
|
|
262
|
+
return VerifyExecutionResult(
|
|
263
|
+
verify_class=VerifyClass.ZERO_TESTS,
|
|
264
|
+
returncode=returncode,
|
|
265
|
+
execution=execution,
|
|
266
|
+
detail=(
|
|
267
|
+
f"collected {collected} test(s), below the required minimum "
|
|
268
|
+
f"{plan.observation.min_collected_tests} (an under-collected run is "
|
|
269
|
+
"not an authentic pass)"
|
|
270
|
+
),
|
|
271
|
+
)
|
|
272
|
+
# any failed test/file → FAIL. A SKIPPED case is folded by the adapters into
|
|
273
|
+
# executed_failed_files (a skip is not a clean pass), so this branch also
|
|
274
|
+
# reds a skip-tainted file (observation.skipped_tests == "red").
|
|
275
|
+
if execution.executed_failed_files:
|
|
276
|
+
return VerifyExecutionResult(
|
|
277
|
+
verify_class=VerifyClass.FAIL,
|
|
278
|
+
returncode=returncode,
|
|
279
|
+
execution=execution,
|
|
280
|
+
detail=(
|
|
281
|
+
f"report shows failed/skipped test file(s): "
|
|
282
|
+
f"{sorted(execution.executed_failed_files)} (a fail or a skip is "
|
|
283
|
+
"not an authentic pass)"
|
|
284
|
+
),
|
|
285
|
+
)
|
|
286
|
+
# Defensive: per-case granularity available but passed < total ⇒ a non-passed
|
|
287
|
+
# (failed/skipped) case exists that the file rollup did not attribute → red,
|
|
288
|
+
# so a partial report never reaches PASS.
|
|
289
|
+
if execution.test_level_available and execution.passed_cases < execution.total_cases:
|
|
290
|
+
return VerifyExecutionResult(
|
|
291
|
+
verify_class=VerifyClass.FAIL,
|
|
292
|
+
returncode=returncode,
|
|
293
|
+
execution=execution,
|
|
294
|
+
detail=(
|
|
295
|
+
f"report shows {execution.passed_cases} passed of "
|
|
296
|
+
f"{execution.total_cases} collected — a non-passed (failed/skipped) "
|
|
297
|
+
"case is present, which is not an authentic pass"
|
|
298
|
+
),
|
|
299
|
+
)
|
|
300
|
+
|
|
301
|
+
# returncode != 0 → FAIL (a nonzero exit beats a green-looking report).
|
|
302
|
+
if returncode != 0:
|
|
303
|
+
return VerifyExecutionResult(
|
|
304
|
+
verify_class=VerifyClass.FAIL,
|
|
305
|
+
returncode=returncode,
|
|
306
|
+
execution=execution,
|
|
307
|
+
detail=f"verify command exited {returncode} (nonzero exit beats a green-looking report)",
|
|
308
|
+
)
|
|
309
|
+
|
|
310
|
+
# TODO(Step 5 — scope observation): once scope checking lands, also red a run
|
|
311
|
+
# whose parsed execution does not cover every plan.must_include_test_sets (a
|
|
312
|
+
# report where, e.g., only the unit set ran while an e2e set was required is a
|
|
313
|
+
# not-green scope miss). Scope checking is deliberately NOT implemented here.
|
|
314
|
+
|
|
315
|
+
# All not-green checks passed: rc==0, required report parsed, collected ≥ floor,
|
|
316
|
+
# no failed/skipped → the only green class.
|
|
317
|
+
return VerifyExecutionResult(
|
|
318
|
+
verify_class=VerifyClass.PASS,
|
|
319
|
+
returncode=returncode,
|
|
320
|
+
execution=execution,
|
|
321
|
+
detail="verify passed (exit 0, report parsed, collected ≥ minimum, no failed/skipped tests)",
|
|
322
|
+
)
|
|
@@ -29,12 +29,20 @@ from .profile import VerifyObservationPolicy
|
|
|
29
29
|
|
|
30
30
|
|
|
31
31
|
class VerifyClass(str, Enum):
|
|
32
|
-
"""Semantic class of a verify outcome (design §v2.69a).
|
|
32
|
+
"""Semantic class of a verify outcome (design §v2.69a / §5).
|
|
33
|
+
|
|
34
|
+
``REPORT_MISSING`` vs ``REPORT_UNREADABLE`` are deliberately distinct (GPT §5,
|
|
35
|
+
"MECE では missing と unreadable は別"): the report being ABSENT is a different
|
|
36
|
+
observability failure from the report being PRESENT but unparseable (a garbled
|
|
37
|
+
JSON/JSONL, or no adapter able to read it). Both are not-green — only ``PASS``
|
|
38
|
+
is green — but keeping them separate lets the executor report the honest reason.
|
|
39
|
+
"""
|
|
33
40
|
|
|
34
41
|
PASS = "PASS"
|
|
35
42
|
FAIL = "FAIL"
|
|
36
43
|
ZERO_TESTS = "ZERO_TESTS"
|
|
37
44
|
REPORT_MISSING = "REPORT_MISSING"
|
|
45
|
+
REPORT_UNREADABLE = "REPORT_UNREADABLE"
|
|
38
46
|
TOOL_MISSING = "TOOL_MISSING"
|
|
39
47
|
CONFIG_ERROR = "CONFIG_ERROR"
|
|
40
48
|
|
|
@@ -56,6 +64,12 @@ class VerifyRunPlan:
|
|
|
56
64
|
report_required: bool
|
|
57
65
|
must_include_test_sets: tuple[str, ...]
|
|
58
66
|
observation: VerifyObservationPolicy
|
|
67
|
+
#: ``report.capture`` from the verify CommandSpec (e.g. Go's ``stdout``). When
|
|
68
|
+
#: ``"stdout"`` the verify command streams its machine-readable report to stdout
|
|
69
|
+
#: and the EXECUTOR must persist that captured stdout to ``report_path`` before
|
|
70
|
+
#: the adapter reads it (``go test -json`` writes no file of its own). ``None``
|
|
71
|
+
#: ⇒ the command produces the report file directly (no executor capture).
|
|
72
|
+
report_capture: str | None = None
|
|
59
73
|
|
|
60
74
|
@property
|
|
61
75
|
def command_str(self) -> str:
|
|
@@ -84,6 +98,7 @@ def build_verify_plan(contract: ResolvedLanguageContract) -> VerifyRunPlan | Non
|
|
|
84
98
|
report_path=(report.path if report else None),
|
|
85
99
|
report_adapter=(report.adapter if report else None),
|
|
86
100
|
report_required=bool(report and report.path),
|
|
101
|
+
report_capture=(report.capture if report else None),
|
|
87
102
|
must_include_test_sets=(scope.must_include_test_sets if scope else ()),
|
|
88
103
|
# None on the command ⇒ the strict defaults (the invariant), never weaker.
|
|
89
104
|
observation=(cmd.observation or VerifyObservationPolicy()),
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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
|
{codd_dev-2.72.0 → codd_dev-2.73.0}/codd/deployment/defaults/runtime_capability_inference.yaml
RENAMED
|
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
|