codd-dev 2.100.0__tar.gz → 2.101.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.100.0 → codd_dev-2.101.0}/PKG-INFO +1 -1
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/__init__.py +1 -1
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/implement_oracle.py +252 -4
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/languages/adapters/oracle_python.py +63 -21
- {codd_dev-2.100.0 → codd_dev-2.101.0}/pyproject.toml +1 -1
- {codd_dev-2.100.0 → codd_dev-2.101.0}/.gitignore +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/LICENSE +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/README.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/bench_fixture/README.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/__main__.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/_git_helper.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/action_outcome.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/ai_invoke.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/ai_patch.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/artifact_contract.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/artifact_ids.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/artifacts/catalog.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/ask_user_question_adapter.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/assembler.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/bridge.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/brownfield/__init__.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/brownfield/pipeline.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/capability_completeness.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/claude_cli.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/cli.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/clustering.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/coherence_adapters.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/coherence_engine.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/confidence.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/config.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/config_schema.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/contracts.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/contracts_registry/__init__.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/contracts_registry/__main__.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/contracts_registry/certify.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/contracts_registry/generate_matrix.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/contracts_registry/registry.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/coverage_auditor.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/coverage_execution_coherence.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/coverage_metrics.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/dag/__init__.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/dag/auto_repair.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/dag/builder.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/dag/checks/__init__.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/dag/checks/_one_to_many_detection.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/dag/checks/artifact_contract_check.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/dag/checks/ci_health.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/dag/checks/dependency_freshness.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/dag/checks/depends_on_consistency.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/dag/checks/deployment_completeness.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/dag/checks/edge_validity.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/dag/checks/environment_coverage.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/dag/checks/implementation_coverage.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/dag/checks/node_completeness.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/dag/checks/opt_out.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/dag/checks/task_completion.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/dag/checks/transitive_closure.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/dag/checks/ui_coherence.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/dag/checks/user_journey_coherence.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/dag/coverage_axes.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/dag/defaults/cli.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/dag/defaults/cpp_embedded.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/dag/defaults/csharp.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/dag/defaults/elixir.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/dag/defaults/generic.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/dag/defaults/iot.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/dag/defaults/java.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/dag/defaults/kotlin.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/dag/defaults/mobile.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/dag/defaults/ruby.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/dag/defaults/rust.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/dag/defaults/scala.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/dag/defaults/swift.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/dag/defaults/test_frameworks.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/dag/defaults/web.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/dag/extractor.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/dag/impact.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/dag/runner.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/defaults.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/defaults.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/dependency_lock_coherence.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/deploy_targets/__init__.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/deploy_targets/app_service.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/deploy_targets/base.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/deploy_targets/docker_compose.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/deployer.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/deployment/__init__.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/deployment/checks/__init__.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/deployment/defaults/deploy_targets.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/deployment/defaults/runtime_capability_inference.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/deployment/defaults/schema_providers.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/deployment/defaults/verification_templates.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/deployment/extractor.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/deployment/providers/__init__.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/deployment/providers/ai_command.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/deployment/providers/ai_command_factory.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/deployment/providers/codex_app_server.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/deployment/providers/llm_consideration.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/deployment/providers/schema/__init__.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/deployment/providers/schema/prisma.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/deployment/providers/target/__init__.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/deployment/providers/target/docker_compose.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/deployment/providers/verification/__init__.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/deployment/providers/verification/assertion_handlers.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/deployment/providers/verification/cdp_browser.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/deployment/providers/verification/cdp_engines.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/deployment/providers/verification/cdp_launchers.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/deployment/providers/verification/cdp_wire.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/deployment/providers/verification/curl.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/deployment/providers/verification/form_strategies.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/deployment/providers/verification/means_catalog.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/deployment/providers/verification/playwright.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/deployment/providers/verification/pytest_http.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/deployment/providers/verification/vitest.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/design_md.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/diff/__init__.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/diff/apply.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/diff/engine.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/diff/persistence.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/diff/templates/diff_prompt.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/discovery.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/drift.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/e2e_contract_coherence.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/e2e_extractor.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/e2e_generator.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/e2e_harness.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/e2e_runner.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/elicit/__init__.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/elicit/apply.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/elicit/engine.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/elicit/finding.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/elicit/formatters/__init__.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/elicit/formatters/base.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/elicit/formatters/interactive.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/elicit/formatters/json_fmt.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/elicit/formatters/md.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/elicit/lexicon_loader.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/elicit/persistence.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/elicit/templates/elicit_prompt_L0.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/env_refs.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/extract_ai.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/extract_paths.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/extractor.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/fix/__init__.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/fix/candidate_selector.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/fix/design_updater.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/fix/impl_propagation.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/fix/interactive_prompt.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/fix/phenomenon_fixer.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/fix/phenomenon_parser.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/fix/risk_classifier.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/fix/templates/clarification_question.txt +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/fix/templates/design_update.txt +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/fix/templates/impl_update.txt +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/fix/templates/phenomenon_parse.txt +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/fix/templates/risk_assessment.txt +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/fix/templates_loader.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/fixer.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/fixup_drift.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/fixup_drift_strategies/__init__.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/fixup_drift_strategies/design_token_drift.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/fixup_drift_strategies/lexicon_violation.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/fixup_drift_strategies/url_drift.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/frontmatter.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/generator.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/git_evidence.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/graph.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/greenfield/__init__.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/greenfield/pipeline.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/hitl_session.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/hooks/__init__.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/hooks/pre-commit +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/hooks/recipes/claude_requirements_nudge.json +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/hooks/recipes/claude_settings_example.json +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/hooks/recipes/codex_hook.sh +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/hooks/recipes/git_post_commit.sh +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/hooks/recipes/git_pre_commit.sh +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/iac_nfr.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/implement_oracle_scope.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/implement_oracle_types.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/implementer/__init__.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/implementer/chunked_runner.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/implementer/typecheck_loop.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/implementer.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/import_coherence.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/inheritance.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/init/__init__.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/init/lexicon_suggest.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/init/llm_lexicon_suggester.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/init/stack_detector.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/knowledge_fetcher.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/languages/__init__.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/languages/adapters/__init__.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/languages/adapters/implement_oracle.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/languages/adapters/oracle_go.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/languages/adapters/oracle_typescript.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/languages/adapters/runner_report.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/languages/builtin_adapters.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/languages/compat.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/languages/contract.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/languages/loader.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/languages/oracle_executor.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/languages/path_planner.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/languages/profile.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/languages/profiles/go.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/languages/profiles/python.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/languages/profiles/typescript.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/languages/registry.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/languages/verify_executor.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/languages/verify_plan.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/lexicon.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/lexicon_cli/__init__.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/lexicon_cli/formatters/__init__.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/lexicon_cli/formatters/html.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/lexicon_cli/formatters/json_fmt.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/lexicon_cli/formatters/md.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/lexicon_cli/inspector.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/lexicon_cli/manager.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/lexicon_cli/reporter.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/lexicon_cli/threshold.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/llm/__init__.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/llm/approval.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/llm/best_practice_augmenter.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/llm/criteria_expander.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/llm/design_doc_extractor.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/llm/impl_step_deriver.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/llm/means_catalog_loader.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/llm/parser.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/llm/plan_deriver.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/llm/prompt_builder.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/llm/strategy_validator.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/llm/templates/best_practice_augment_meta.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/llm/templates/criteria_expand_meta.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/llm/templates/design_doc_extract_meta.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/llm/templates/impl_step_derive_meta.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/llm/templates/implementation_step_catalog.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/llm/templates/meta_instruction.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/llm/templates/plan_derive_meta.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/llm/templates/verification_means_catalog.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/mcp_server.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/measure.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/operational_e2e_audit.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/operations_derive.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/parsing/__init__.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/parsing/_shared.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/parsing/api_specs.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/parsing/extractor_registry.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/parsing/filesystem_routes.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/parsing/iac.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/parsing/python_ast.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/parsing/regex_strategies.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/parsing/schemas.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/parsing/tests_builddeps.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/parsing/treesitter.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/planner.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/policy.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/preflight/__init__.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/preflight/defaults/cli.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/preflight/defaults/generic.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/preflight/defaults/iot.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/preflight/defaults/mobile.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/preflight/defaults/web.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/project_types.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/propagate.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/propagation_common.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/propagator.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/reconciliation_ledger.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/reference_resolution.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/registry.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/repair/__init__.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/repair/approval_repair.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/repair/auto_scope_guard.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/repair/engine.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/repair/git_patcher.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/repair/history.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/repair/llm_repair_engine.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/repair/loop.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/repair/primary_picker.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/repair/proof_breaks.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/repair/repair_result.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/repair/repairability_classifier.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/repair/schema.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/repair/templates/analyze_meta.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/repair/templates/propose_meta.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/repair/templates/repair_strategy_meta.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/repair/templates/repairability_meta.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/repair/test_failure_attribution.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/repair/verify_runner.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/repair_slice.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/require.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/require_plugins.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/require_propagate.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/required_artifacts/defaults/cli.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/required_artifacts/defaults/generic.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/required_artifacts/defaults/iot.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/required_artifacts/defaults/mobile.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/required_artifacts/defaults/web.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/required_artifacts_deriver.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/requirement_completeness/defaults/cli.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/requirement_completeness/defaults/generic.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/requirement_completeness/defaults/iot.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/requirement_completeness/defaults/mobile.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/requirement_completeness/defaults/web.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/requirement_completeness_auditor.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/requirement_reconciliation.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/requirements_meta.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/restoration_report.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/restore.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/routes_extractor.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/runtime_smoke/__init__.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/runtime_smoke/checks.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/runtime_smoke/config.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/runtime_smoke/report.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/runtime_smoke/runner.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/scanner.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/schema_refs.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/screen_flow_validator.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/screen_transition_extractor.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/screen_transitions/defaults.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/skills_cli/__init__.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/skills_cli/discovery.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/skills_cli/manager.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/skills_cli/paths.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/stack/__init__.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/stack/adapters/__init__.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/stack/adapters/_base.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/stack/adapters/nextjs.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/stack/adapters/playwright.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/stack/command_authenticity.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/stack/command_plan.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/stack/compose.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/stack/loader.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/stack/lock.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/stack/obligations.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/stack/profile.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/stack/profiles/addons/playwright.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/stack/profiles/addons/prisma.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/stack/profiles/frameworks/nextjs.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/stack/project.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/stack/registry.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/stack/replacement_proof.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/stack/resolve.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/surface_reconciliation.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/synth.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/templates/codd.yaml.tmpl +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/templates/conventions.yaml.tmpl +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/templates/data_dependencies.yaml.tmpl +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/templates/doc_links.yaml.tmpl +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/templates/extract_ai_prompt_baseline.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/templates/extracted/api-contract.md.j2 +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/templates/extracted/architecture-overview.md.j2 +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/templates/extracted/module-detail.md.j2 +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/templates/extracted/schema-design.md.j2 +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/templates/extracted/system-context.md.j2 +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/templates/gitignore.tmpl +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/templates/lexicon_questions.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/templates/lexicon_schema.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/templates/overrides.yaml.tmpl +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/test_detection.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/test_import_coherence.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/traceability.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/validator.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/vb_marker_authenticity.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/vb_rerun_scope.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/verifiable_behavior_audit.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/watch/__init__.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/watch/events.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/watch/propagation_log.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/watch/propagation_pipeline.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/watch/test_runner.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/watch/watcher.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd/wiring.py +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/ai_governance_eu_act/coverage_matrix.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/ai_governance_eu_act/elicit_extend.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/ai_governance_eu_act/lexicon.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/ai_governance_eu_act/manifest.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/ai_governance_eu_act/recommended_kinds.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/ai_governance_eu_act/severity_rules.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/api_rate_limiting_caching/coverage_matrix.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/api_rate_limiting_caching/elicit_extend.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/api_rate_limiting_caching/lexicon.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/api_rate_limiting_caching/manifest.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/api_rate_limiting_caching/recommended_kinds.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/api_rate_limiting_caching/severity_rules.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/api_rest_openapi/coverage_matrix.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/api_rest_openapi/elicit_extend.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/api_rest_openapi/lexicon.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/api_rest_openapi/manifest.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/api_rest_openapi/recommended_kinds.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/api_rest_openapi/severity_rules.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/babok/elicit_extend.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/babok/lexicon.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/babok/manifest.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/babok/recommended_kinds.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/babok/severity_rules.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/backend_event_cloudevents/coverage_matrix.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/backend_event_cloudevents/elicit_extend.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/backend_event_cloudevents/lexicon.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/backend_event_cloudevents/manifest.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/backend_event_cloudevents/recommended_kinds.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/backend_event_cloudevents/severity_rules.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/backend_graphql/coverage_matrix.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/backend_graphql/elicit_extend.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/backend_graphql/lexicon.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/backend_graphql/manifest.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/backend_graphql/recommended_kinds.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/backend_graphql/severity_rules.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/backend_grpc_proto/coverage_matrix.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/backend_grpc_proto/elicit_extend.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/backend_grpc_proto/lexicon.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/backend_grpc_proto/manifest.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/backend_grpc_proto/recommended_kinds.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/backend_grpc_proto/severity_rules.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/compliance_hipaa/coverage_matrix.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/compliance_hipaa/elicit_extend.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/compliance_hipaa/lexicon.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/compliance_hipaa/manifest.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/compliance_hipaa/recommended_kinds.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/compliance_hipaa/severity_rules.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/compliance_iso27001/coverage_matrix.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/compliance_iso27001/elicit_extend.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/compliance_iso27001/lexicon.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/compliance_iso27001/manifest.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/compliance_iso27001/recommended_kinds.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/compliance_iso27001/severity_rules.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/compliance_pci_dss_4/coverage_matrix.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/compliance_pci_dss_4/elicit_extend.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/compliance_pci_dss_4/lexicon.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/compliance_pci_dss_4/manifest.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/compliance_pci_dss_4/recommended_kinds.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/compliance_pci_dss_4/severity_rules.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/data_aggregation_policies/coverage_matrix.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/data_aggregation_policies/elicit_extend.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/data_aggregation_policies/lexicon.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/data_aggregation_policies/manifest.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/data_aggregation_policies/recommended_kinds.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/data_aggregation_policies/severity_rules.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/coverage_matrix.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/elicit_extend.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/lexicon.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/manifest.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/recommended_kinds.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/severity_rules.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/data_governance_appi_gdpr/coverage_matrix.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/data_governance_appi_gdpr/elicit_extend.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/data_governance_appi_gdpr/lexicon.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/data_governance_appi_gdpr/manifest.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/data_governance_appi_gdpr/recommended_kinds.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/data_governance_appi_gdpr/severity_rules.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/data_nosql_jsonschema/coverage_matrix.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/data_nosql_jsonschema/elicit_extend.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/data_nosql_jsonschema/lexicon.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/data_nosql_jsonschema/manifest.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/data_nosql_jsonschema/recommended_kinds.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/data_nosql_jsonschema/severity_rules.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/data_relational_iso_sql/coverage_matrix.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/data_relational_iso_sql/elicit_extend.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/data_relational_iso_sql/lexicon.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/data_relational_iso_sql/manifest.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/data_relational_iso_sql/recommended_kinds.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/data_relational_iso_sql/severity_rules.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/ddd_domain_driven_design/coverage_matrix.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/ddd_domain_driven_design/elicit_extend.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/ddd_domain_driven_design/lexicon.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/ddd_domain_driven_design/manifest.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/ddd_domain_driven_design/recommended_kinds.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/ddd_domain_driven_design/severity_rules.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/dora_sre_metrics/coverage_matrix.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/dora_sre_metrics/elicit_extend.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/dora_sre_metrics/lexicon.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/dora_sre_metrics/manifest.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/dora_sre_metrics/recommended_kinds.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/dora_sre_metrics/severity_rules.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/i18n_unicode_cldr/coverage_matrix.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/i18n_unicode_cldr/elicit_extend.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/i18n_unicode_cldr/lexicon.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/i18n_unicode_cldr/manifest.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/i18n_unicode_cldr/recommended_kinds.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/i18n_unicode_cldr/severity_rules.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/ml_model_cards/coverage_matrix.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/ml_model_cards/elicit_extend.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/ml_model_cards/lexicon.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/ml_model_cards/manifest.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/ml_model_cards/recommended_kinds.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/ml_model_cards/severity_rules.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/mobile_a11y_native/coverage_matrix.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/mobile_a11y_native/elicit_extend.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/mobile_a11y_native/lexicon.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/mobile_a11y_native/manifest.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/mobile_a11y_native/recommended_kinds.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/mobile_a11y_native/severity_rules.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/mobile_android_material3/coverage_matrix.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/mobile_android_material3/elicit_extend.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/mobile_android_material3/lexicon.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/mobile_android_material3/manifest.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/mobile_android_material3/recommended_kinds.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/mobile_android_material3/severity_rules.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/mobile_ios_hig/coverage_matrix.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/mobile_ios_hig/elicit_extend.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/mobile_ios_hig/lexicon.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/mobile_ios_hig/manifest.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/mobile_ios_hig/recommended_kinds.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/mobile_ios_hig/severity_rules.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/mobile_security_masvs/coverage_matrix.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/mobile_security_masvs/elicit_extend.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/mobile_security_masvs/lexicon.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/mobile_security_masvs/manifest.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/mobile_security_masvs/recommended_kinds.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/mobile_security_masvs/severity_rules.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/ops_cicd_pipeline/coverage_matrix.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/ops_cicd_pipeline/elicit_extend.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/ops_cicd_pipeline/lexicon.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/ops_cicd_pipeline/manifest.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/ops_cicd_pipeline/recommended_kinds.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/ops_cicd_pipeline/severity_rules.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/ops_iac_terraform/coverage_matrix.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/ops_iac_terraform/elicit_extend.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/ops_iac_terraform/lexicon.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/ops_iac_terraform/manifest.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/ops_iac_terraform/recommended_kinds.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/ops_iac_terraform/severity_rules.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/ops_kubernetes/coverage_matrix.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/ops_kubernetes/elicit_extend.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/ops_kubernetes/lexicon.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/ops_kubernetes/manifest.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/ops_kubernetes/recommended_kinds.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/ops_kubernetes/severity_rules.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/ops_observability_otel/coverage_matrix.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/ops_observability_otel/elicit_extend.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/ops_observability_otel/lexicon.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/ops_observability_otel/manifest.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/ops_observability_otel/recommended_kinds.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/ops_observability_otel/severity_rules.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/process_iso25010/coverage_matrix.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/process_iso25010/elicit_extend.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/process_iso25010/lexicon.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/process_iso25010/manifest.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/process_iso25010/recommended_kinds.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/process_iso25010/severity_rules.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/process_test_iso29119/coverage_matrix.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/process_test_iso29119/elicit_extend.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/process_test_iso29119/lexicon.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/process_test_iso29119/manifest.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/process_test_iso29119/recommended_kinds.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/process_test_iso29119/severity_rules.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/twelve_factor_app/coverage_matrix.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/twelve_factor_app/elicit_extend.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/twelve_factor_app/lexicon.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/twelve_factor_app/manifest.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/twelve_factor_app/recommended_kinds.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/twelve_factor_app/severity_rules.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/coverage_matrix.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/elicit_extend.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/lexicon.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/manifest.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/recommended_kinds.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/severity_rules.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/web_authn_webauthn/coverage_matrix.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/web_authn_webauthn/elicit_extend.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/web_authn_webauthn/lexicon.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/web_authn_webauthn/manifest.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/web_authn_webauthn/recommended_kinds.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/web_authn_webauthn/severity_rules.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/web_browser_compat/coverage_matrix.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/web_browser_compat/elicit_extend.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/web_browser_compat/lexicon.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/web_browser_compat/manifest.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/web_browser_compat/recommended_kinds.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/web_browser_compat/severity_rules.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/web_forms_html5/coverage_matrix.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/web_forms_html5/elicit_extend.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/web_forms_html5/lexicon.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/web_forms_html5/manifest.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/web_forms_html5/recommended_kinds.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/web_forms_html5/severity_rules.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/web_performance_core_web_vitals/coverage_matrix.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/web_performance_core_web_vitals/elicit_extend.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/web_performance_core_web_vitals/lexicon.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/web_performance_core_web_vitals/manifest.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/web_performance_core_web_vitals/recommended_kinds.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/web_performance_core_web_vitals/severity_rules.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/web_pwa_manifest/coverage_matrix.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/web_pwa_manifest/elicit_extend.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/web_pwa_manifest/lexicon.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/web_pwa_manifest/manifest.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/web_pwa_manifest/recommended_kinds.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/web_pwa_manifest/severity_rules.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/web_responsive/coverage_matrix.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/web_responsive/elicit_extend.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/web_responsive/lexicon.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/web_responsive/manifest.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/web_responsive/recommended_kinds.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/web_responsive/severity_rules.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/web_security_owasp/coverage_matrix.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/web_security_owasp/elicit_extend.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/web_security_owasp/lexicon.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/web_security_owasp/manifest.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/web_security_owasp/recommended_kinds.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/web_security_owasp/severity_rules.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/web_seo_schemaorg/coverage_matrix.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/web_seo_schemaorg/elicit_extend.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/web_seo_schemaorg/lexicon.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/web_seo_schemaorg/manifest.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/web_seo_schemaorg/recommended_kinds.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/lexicons/web_seo_schemaorg/severity_rules.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/codd_plugins/stack_map.yaml +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/docs/cookbook/cdp_browser/README.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/docs/cookbook/presentation_aggregation/README.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/docs/requirements/README.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/dogfood/README.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/dogfood/fixtures/flat_py_app/README.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/examples/README.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/skills/codd-assemble/SKILL.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/skills/codd-evolve/SKILL.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/skills/codd-generate/SKILL.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/skills/codd-greenfield/SKILL.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/skills/codd-impact/SKILL.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/skills/codd-init/SKILL.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/skills/codd-propagate/SKILL.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/skills/codd-restore/SKILL.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/skills/codd-scan/SKILL.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.0}/skills/codd-validate/SKILL.md +0 -0
- {codd_dev-2.100.0 → codd_dev-2.101.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.101.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
|
|
@@ -589,6 +589,235 @@ def _norm(rel: str) -> str:
|
|
|
589
589
|
return str(rel).strip().replace("\\", "/").strip("/")
|
|
590
590
|
|
|
591
591
|
|
|
592
|
+
# ── configured-root unify (Cut A.3 integration boundary — the source_root DIMENSION) ──
|
|
593
|
+
#
|
|
594
|
+
# THE INVARIANT (anti-false-green, cardinal): the strict v3 oracle must observe the
|
|
595
|
+
# SAME resolved tree that GENERATION routes to. Generation routes by the resolved
|
|
596
|
+
# ``LayoutProfile`` (``codd.project_types.resolve_layout_profile`` →
|
|
597
|
+
# ``source_root`` / ``package_root`` / ``test_root`` from ``scan.source_dirs`` /
|
|
598
|
+
# ``scan.test_dirs``; ``greenfield.pipeline._route_source_into_package`` writes the
|
|
599
|
+
# generated tree there). With ``scan: {source_dirs: ["lib"], test_dirs: ["spec"]}``
|
|
600
|
+
# the code lands in ``lib/<pkg>`` + ``spec``. The v3 oracle adapter, however, reads
|
|
601
|
+
# its roots from ``ctx.language_profile.layout`` (the registry ``LayoutSpec`` — for
|
|
602
|
+
# Python the FIXED ``src/{package_name}`` + ``tests``), so WITHOUT this unify it would
|
|
603
|
+
# certify + execute against ``src/<pkg>`` + ``tests`` while the actually-generated
|
|
604
|
+
# ``lib/<pkg>`` + ``spec`` is unverified — a "proved the wrong tree" false-green (the
|
|
605
|
+
# GPT-5.5 round-2 cross-check blocker for v3.0.0).
|
|
606
|
+
#
|
|
607
|
+
# THE FIX (Option A — project-resolve, drift impossible BY CONSTRUCTION): rebase the
|
|
608
|
+
# registry ``LayoutSpec`` to the SAME resolved ``LayoutProfile`` generation used, so
|
|
609
|
+
# the oracle's source/test/package roots are a FUNCTION of the same resolved roots —
|
|
610
|
+
# they cannot diverge. The adapter stays a pure ``LayoutSpec`` + ``package_name``
|
|
611
|
+
# reader (NO legacy ``source_root``, NO bridge revival — the Cut A.3 lock holds): only
|
|
612
|
+
# the LayoutSpec it reads is now derived from the configured layout instead of the
|
|
613
|
+
# fixed default. The rebase KEEPS the ``{package_name}`` template (the adapter still
|
|
614
|
+
# substitutes + hard-fails on an unresolved name). The COMMON case (scan unset, or
|
|
615
|
+
# scan == the default ``src``/``tests``) rebases to a LayoutSpec that is byte-identical
|
|
616
|
+
# to the registry one (behavior-preserving — no false-RED). A BELT cross-check then
|
|
617
|
+
# asserts the rebased oracle roots equal the generation-routed roots, hard-failing
|
|
618
|
+
# (never silently) if a future change reintroduced drift.
|
|
619
|
+
|
|
620
|
+
|
|
621
|
+
def _rebase_layout_spec_to_profile(layout: Any, profile: "LayoutProfile") -> Any:
|
|
622
|
+
"""Rebase a ``LayoutSpec`` so its template roots reflect the resolved ``LayoutProfile``.
|
|
623
|
+
|
|
624
|
+
``profile`` is the SAME ``LayoutProfile`` generation routing uses (resolved from
|
|
625
|
+
``scan.source_dirs`` / ``scan.test_dirs`` via :func:`resolve_layout_profile`): its
|
|
626
|
+
``source_root`` / ``package_root`` / ``test_root`` are the (substituted) roots the
|
|
627
|
+
generated tree lands in. This returns a ``LayoutSpec`` whose single source-set
|
|
628
|
+
root, ``package_root.path``, and single (first) test-set root reflect those roots —
|
|
629
|
+
while PRESERVING the ``{package_name}`` template (so the adapter's substitution +
|
|
630
|
+
unresolved-name HARD FAIL are unchanged) and every other set/field.
|
|
631
|
+
|
|
632
|
+
Mapping by ``package_root.kind``:
|
|
633
|
+
* ``named_package`` (Python ``src/{package_name}``): the source-set + package_root
|
|
634
|
+
path become ``<profile.source_root>/{package_name}`` — the adapter then derives
|
|
635
|
+
``source_root`` = its parent (``profile.source_root``) and ``package_root`` =
|
|
636
|
+
``<profile.source_root>/<package_name>`` = ``profile.package_root``. The test
|
|
637
|
+
root becomes ``profile.test_root``.
|
|
638
|
+
* ``path_root`` (TS ``src``, ``package_root == source_root``): the source-set +
|
|
639
|
+
package_root path become ``profile.source_root``; the test root becomes
|
|
640
|
+
``profile.test_root``.
|
|
641
|
+
* ``none`` (Go — no single package root, no scan-driven src layout): returned
|
|
642
|
+
UNCHANGED (Go routes to the repo root; ``scan.*_dirs`` does not relocate it).
|
|
643
|
+
|
|
644
|
+
Single-root only by intent: only ``source_sets[0]`` / ``test_sets[0]`` are rebased
|
|
645
|
+
(the legacy ``LayoutProfile`` is single-root, and Python/TS declare exactly one
|
|
646
|
+
source-set + one unit test-set). Any extra sets are carried verbatim — the
|
|
647
|
+
single-source / single-required-test HARD FAIL in the adapter still fires for >1.
|
|
648
|
+
"""
|
|
649
|
+
from dataclasses import replace
|
|
650
|
+
|
|
651
|
+
pkg = getattr(layout, "package_root", None)
|
|
652
|
+
pkg_kind = getattr(pkg, "kind", "none")
|
|
653
|
+
if pkg_kind == "none":
|
|
654
|
+
# Root-module language (Go): no single package root, no scan-driven relocation.
|
|
655
|
+
return layout
|
|
656
|
+
|
|
657
|
+
source_root = _norm(getattr(profile, "source_root", "") or "")
|
|
658
|
+
test_root = _norm(getattr(profile, "test_root", "") or "")
|
|
659
|
+
if not source_root or not test_root:
|
|
660
|
+
# An incomplete legacy profile — leave the registry LayoutSpec untouched and let
|
|
661
|
+
# the adapter's own scope certification decide (never guess a relocated root).
|
|
662
|
+
return layout
|
|
663
|
+
|
|
664
|
+
if pkg_kind == "named_package":
|
|
665
|
+
new_pkg_path = f"{source_root}/{{package_name}}"
|
|
666
|
+
new_source_root_template = f"{source_root}/{{package_name}}"
|
|
667
|
+
else: # path_root
|
|
668
|
+
new_pkg_path = source_root
|
|
669
|
+
new_source_root_template = source_root
|
|
670
|
+
|
|
671
|
+
source_sets = tuple(getattr(layout, "source_sets", ()) or ())
|
|
672
|
+
test_sets = tuple(getattr(layout, "test_sets", ()) or ())
|
|
673
|
+
|
|
674
|
+
def _rebase_globs(old_root: str, new_root: str, globs: tuple[str, ...]) -> tuple[str, ...]:
|
|
675
|
+
"""Re-anchor each glob from the old root prefix to the new one (keep the tail).
|
|
676
|
+
|
|
677
|
+
``src/{package_name}/**/*.py`` rebased ``src/{package_name}`` → ``lib/{package_name}``
|
|
678
|
+
becomes ``lib/{package_name}/**/*.py``. A glob not under the old root is carried
|
|
679
|
+
verbatim (defensive — only the leading topology changed). The adapter reads
|
|
680
|
+
``root`` (not globs) for Python, but keeping globs consistent matters for other
|
|
681
|
+
consumers (TS/coverage) and avoids a stale-prefix glob surviving a rebase.
|
|
682
|
+
"""
|
|
683
|
+
out: list[str] = []
|
|
684
|
+
old_n = _norm(old_root)
|
|
685
|
+
new_n = _norm(new_root)
|
|
686
|
+
for g in globs:
|
|
687
|
+
g_n = str(g).replace("\\", "/")
|
|
688
|
+
if old_n and (g_n == old_n or g_n.startswith(old_n + "/")):
|
|
689
|
+
out.append(new_n + g_n[len(old_n):])
|
|
690
|
+
else:
|
|
691
|
+
out.append(g)
|
|
692
|
+
return tuple(out)
|
|
693
|
+
|
|
694
|
+
new_source_sets = source_sets
|
|
695
|
+
if source_sets:
|
|
696
|
+
s0 = source_sets[0]
|
|
697
|
+
new_source_sets = (
|
|
698
|
+
replace(
|
|
699
|
+
s0,
|
|
700
|
+
root=new_source_root_template,
|
|
701
|
+
file_globs=_rebase_globs(
|
|
702
|
+
s0.root, new_source_root_template, tuple(getattr(s0, "file_globs", ()) or ())
|
|
703
|
+
),
|
|
704
|
+
),
|
|
705
|
+
) + source_sets[1:]
|
|
706
|
+
new_test_sets = test_sets
|
|
707
|
+
if test_sets:
|
|
708
|
+
t0 = test_sets[0]
|
|
709
|
+
new_test_sets = (
|
|
710
|
+
replace(
|
|
711
|
+
t0,
|
|
712
|
+
root=test_root,
|
|
713
|
+
file_globs=_rebase_globs(
|
|
714
|
+
t0.root, test_root, tuple(getattr(t0, "file_globs", ()) or ())
|
|
715
|
+
),
|
|
716
|
+
),
|
|
717
|
+
) + test_sets[1:]
|
|
718
|
+
|
|
719
|
+
return replace(
|
|
720
|
+
layout,
|
|
721
|
+
source_sets=new_source_sets,
|
|
722
|
+
test_sets=new_test_sets,
|
|
723
|
+
package_root=replace(pkg, path=new_pkg_path),
|
|
724
|
+
)
|
|
725
|
+
|
|
726
|
+
|
|
727
|
+
def _oracle_language_profile(lang_profile: Any, profile: "LayoutProfile | None") -> Any:
|
|
728
|
+
"""The resolved ``LanguageProfile`` whose ``.layout`` the oracle adapter observes.
|
|
729
|
+
|
|
730
|
+
Returns ``lang_profile`` with its ``LayoutSpec`` rebased to the SAME resolved
|
|
731
|
+
``LayoutProfile`` generation routed to (so the oracle certifies + executes against
|
|
732
|
+
the SAME tree — anti-false-green: never a different tree than generation). When
|
|
733
|
+
``profile`` is ``None`` (a synthetic carrier from :func:`_resolve_registry_oracle`
|
|
734
|
+
for a language with no legacy ``LayoutProfile`` — Go) the registry LayoutSpec is
|
|
735
|
+
returned unchanged (nothing to rebase; the scan knob does not relocate it).
|
|
736
|
+
|
|
737
|
+
The COMMON case rebases to a byte-identical LayoutSpec (scan unset / == default →
|
|
738
|
+
the same template roots), so the adapter's derivation is unchanged there.
|
|
739
|
+
"""
|
|
740
|
+
if profile is None:
|
|
741
|
+
return lang_profile
|
|
742
|
+
from dataclasses import replace
|
|
743
|
+
|
|
744
|
+
rebased = _rebase_layout_spec_to_profile(lang_profile.layout, profile)
|
|
745
|
+
if rebased is lang_profile.layout:
|
|
746
|
+
return lang_profile
|
|
747
|
+
return replace(lang_profile, layout=rebased)
|
|
748
|
+
|
|
749
|
+
|
|
750
|
+
def _certify_oracle_observes_generation_tree(
|
|
751
|
+
ctx: Any, oracle_decl: Any, profile: "LayoutProfile | None"
|
|
752
|
+
) -> None:
|
|
753
|
+
"""BELT (defense in depth): hard-fail if the tree the oracle will observe differs
|
|
754
|
+
from the tree generation routes to.
|
|
755
|
+
|
|
756
|
+
Option A rebases the oracle's ``LayoutSpec`` FROM the same resolved ``LayoutProfile``
|
|
757
|
+
generation used, so the two agree BY CONSTRUCTION; this tripwire converts ANY future
|
|
758
|
+
reintroduction of drift into a HARD FAIL (``OracleScopeError``) — never a silent
|
|
759
|
+
"proved the wrong tree" green. It compares the roots the adapter would derive from
|
|
760
|
+
``ctx`` against the generation-routed ``profile`` roots.
|
|
761
|
+
|
|
762
|
+
``None`` profile (the synthetic carrier for a no-legacy-LayoutProfile language — Go)
|
|
763
|
+
has nothing to cross-check (Go routes to the repo root; the scan knob does not
|
|
764
|
+
relocate it). A non-named-package (``path_root``/``none``) layout has no single
|
|
765
|
+
``package_root`` to compare, so only source/test roots are checked. An incomplete
|
|
766
|
+
legacy profile (missing a root) defers to the adapter's own scope certification.
|
|
767
|
+
"""
|
|
768
|
+
if profile is None:
|
|
769
|
+
return
|
|
770
|
+
gen_source = _norm(getattr(profile, "source_root", "") or "")
|
|
771
|
+
gen_test = _norm(getattr(profile, "test_root", "") or "")
|
|
772
|
+
gen_package = _norm(getattr(profile, "package_root", "") or "")
|
|
773
|
+
if not (gen_source and gen_test):
|
|
774
|
+
return # incomplete legacy profile — the adapter's own certification governs
|
|
775
|
+
|
|
776
|
+
layout = getattr(getattr(ctx, "language_profile", None), "layout", None)
|
|
777
|
+
if layout is None:
|
|
778
|
+
return
|
|
779
|
+
pkg = getattr(layout, "package_root", None)
|
|
780
|
+
pkg_kind = getattr(pkg, "kind", "none")
|
|
781
|
+
if pkg_kind == "none":
|
|
782
|
+
return # root-module language (Go) — no scan-driven relocation to cross-check
|
|
783
|
+
|
|
784
|
+
source_sets = tuple(getattr(layout, "source_sets", ()) or ())
|
|
785
|
+
test_sets = tuple(getattr(layout, "test_sets", ()) or ())
|
|
786
|
+
if not source_sets or not test_sets:
|
|
787
|
+
return # the adapter's scope certification will hard-fail an empty required set
|
|
788
|
+
|
|
789
|
+
package_name = getattr(ctx, "package_name", None)
|
|
790
|
+
|
|
791
|
+
def _subst(template: str) -> str:
|
|
792
|
+
rendered = str(template)
|
|
793
|
+
if "{package_name}" in rendered and package_name:
|
|
794
|
+
rendered = rendered.replace("{package_name}", str(package_name))
|
|
795
|
+
return _norm(rendered)
|
|
796
|
+
|
|
797
|
+
obs_package = _subst(getattr(pkg, "path", "") or "")
|
|
798
|
+
# Python's ``named_package`` source root is the PARENT of the package dir; a
|
|
799
|
+
# ``path_root`` (TS) has source_root == package_root.
|
|
800
|
+
if pkg_kind == "named_package":
|
|
801
|
+
obs_source = _norm(obs_package.rsplit("/", 1)[0]) if "/" in obs_package else "."
|
|
802
|
+
else:
|
|
803
|
+
obs_source = _subst(source_sets[0].root)
|
|
804
|
+
obs_test = _subst(test_sets[0].root)
|
|
805
|
+
|
|
806
|
+
mismatch = obs_source != gen_source or obs_test != gen_test
|
|
807
|
+
if pkg_kind == "named_package" and gen_package:
|
|
808
|
+
mismatch = mismatch or obs_package != gen_package
|
|
809
|
+
if mismatch:
|
|
810
|
+
raise OracleScopeError(
|
|
811
|
+
"implement-time oracle ABORTED to avoid a false-green: the tree the oracle "
|
|
812
|
+
f"would observe (source={obs_source!r}, package={obs_package!r}, "
|
|
813
|
+
f"test={obs_test!r}) DIFFERS from the tree generation routes to "
|
|
814
|
+
f"(source={gen_source!r}, package={gen_package!r}, test={gen_test!r}). The "
|
|
815
|
+
"strict v3 oracle must observe the SAME resolved tree generation/scaffold "
|
|
816
|
+
"routes to (a green over a different tree proves nothing — the cardinal "
|
|
817
|
+
"anti-false-green rule). This is a HARD FAIL, never a silent pass."
|
|
818
|
+
)
|
|
819
|
+
|
|
820
|
+
|
|
592
821
|
# NOTE: ``_glob_covers_root`` (the tsconfig include/files coverage test) was
|
|
593
822
|
# relocated to the TS oracle adapter (Contract Kernel oracle dispatch §7) — the
|
|
594
823
|
# gate's ``certify_oracle_scope`` now delegates scope certification to the registered
|
|
@@ -637,14 +866,23 @@ def certify_oracle_scope(
|
|
|
637
866
|
lang_profile, oracle_decl, adapter = contract
|
|
638
867
|
from codd.languages.adapters.implement_oracle import OracleContext
|
|
639
868
|
|
|
869
|
+
# Cut A.3 integration boundary (the source_root DIMENSION): rebase the registry
|
|
870
|
+
# LayoutSpec to the SAME resolved LayoutProfile generation routed to, so the oracle
|
|
871
|
+
# certifies the tree the generated code actually lands in (configured layout =
|
|
872
|
+
# lib/<pkg> + spec, not the fixed src/<pkg> + tests) — never a different tree
|
|
873
|
+
# (anti-false-green). Common case (scan unset / == default) rebases byte-identically.
|
|
874
|
+
oracle_lang_profile = _oracle_language_profile(lang_profile, profile)
|
|
640
875
|
ctx = OracleContext(
|
|
641
876
|
project_root=project_root,
|
|
642
|
-
layout_profile=
|
|
643
|
-
language_profile=
|
|
877
|
+
layout_profile=oracle_lang_profile.layout,
|
|
878
|
+
language_profile=oracle_lang_profile,
|
|
644
879
|
oracle=oracle_decl,
|
|
645
880
|
config=None,
|
|
646
881
|
package_name=getattr(profile, "package_name", None),
|
|
647
882
|
)
|
|
883
|
+
# BELT: the tree the oracle will observe MUST equal the generation-routed tree
|
|
884
|
+
# (Option A makes them agree by construction; this hard-fails on any future drift).
|
|
885
|
+
_certify_oracle_observes_generation_tree(ctx, oracle_decl, profile)
|
|
648
886
|
return adapter.certify_scope(ctx)
|
|
649
887
|
|
|
650
888
|
|
|
@@ -994,6 +1232,7 @@ def _run_contract_oracle(
|
|
|
994
1232
|
config: Mapping[str, Any] | None,
|
|
995
1233
|
*,
|
|
996
1234
|
package_name: str | None = None,
|
|
1235
|
+
layout_profile: "LayoutProfile | None" = None,
|
|
997
1236
|
) -> ImplementOracleResult:
|
|
998
1237
|
"""Run a modeled oracle on the contract path (certify already done by caller).
|
|
999
1238
|
|
|
@@ -1023,14 +1262,22 @@ def _run_contract_oracle(
|
|
|
1023
1262
|
)
|
|
1024
1263
|
from codd.languages.oracle_executor import run_command_sequence
|
|
1025
1264
|
|
|
1265
|
+
# Cut A.3 integration boundary (the source_root DIMENSION): rebase the registry
|
|
1266
|
+
# LayoutSpec to the SAME resolved LayoutProfile generation routed to, so the oracle
|
|
1267
|
+
# EXECUTES against the tree the generated code actually lands in (anti-false-green:
|
|
1268
|
+
# never a different tree than generation). Common case rebases byte-identically.
|
|
1269
|
+
oracle_lang_profile = _oracle_language_profile(lang_profile, layout_profile)
|
|
1026
1270
|
ctx = OracleContext(
|
|
1027
1271
|
project_root=project_root,
|
|
1028
|
-
layout_profile=
|
|
1029
|
-
language_profile=
|
|
1272
|
+
layout_profile=oracle_lang_profile.layout,
|
|
1273
|
+
language_profile=oracle_lang_profile,
|
|
1030
1274
|
oracle=oracle_decl,
|
|
1031
1275
|
config=config,
|
|
1032
1276
|
package_name=package_name,
|
|
1033
1277
|
)
|
|
1278
|
+
# BELT: the tree the oracle will observe MUST equal the generation-routed tree
|
|
1279
|
+
# (Option A makes them agree by construction; this hard-fails on any future drift).
|
|
1280
|
+
_certify_oracle_observes_generation_tree(ctx, oracle_decl, layout_profile)
|
|
1034
1281
|
|
|
1035
1282
|
# Install preflight (language-free, BEFORE dispatch so run_command_sequence stays
|
|
1036
1283
|
# pure): if ANY oracle step's resolved CommandSpec requires materialized deps AND
|
|
@@ -1145,6 +1392,7 @@ def _run_oracle_command(
|
|
|
1145
1392
|
return _run_contract_oracle(
|
|
1146
1393
|
project_root, lang_profile, oracle_decl, adapter, config,
|
|
1147
1394
|
package_name=getattr(profile, "package_name", None),
|
|
1395
|
+
layout_profile=profile,
|
|
1148
1396
|
)
|
|
1149
1397
|
|
|
1150
1398
|
|
|
@@ -1411,29 +1411,39 @@ def _py_layout_from_layout_spec(ctx: OracleContext) -> tuple[str, str, str]:
|
|
|
1411
1411
|
source_sets = tuple(getattr(layout, "source_sets", ()) or ())
|
|
1412
1412
|
test_sets = tuple(getattr(layout, "test_sets", ()) or ())
|
|
1413
1413
|
|
|
1414
|
-
#
|
|
1415
|
-
|
|
1414
|
+
# EXACTLY one source-set is required (anti-false-green, both directions):
|
|
1415
|
+
# * >1 → reading only ``source_sets[0]`` would SILENTLY drop the others
|
|
1416
|
+
# (unproven code = false-green); a multi-source-set Python layout is
|
|
1417
|
+
# UNSUPPORTED today (RED, never a silent first-root collapse).
|
|
1418
|
+
# * ==0 → there is NO source root to derive; a silent ``src`` fallback would point
|
|
1419
|
+
# the oracle at a GUESSED tree (a wrong/empty source root = false-green). The
|
|
1420
|
+
# Cut A.3 posture is "if reached, hard-fail" — never a silent default.
|
|
1421
|
+
if len(source_sets) != 1:
|
|
1416
1422
|
raise OracleScopeError(
|
|
1417
1423
|
"python implement-time oracle cannot be certified: the resolved layout "
|
|
1418
1424
|
f"declares {len(source_sets)} source_sets "
|
|
1419
|
-
f"({[s.id for s in source_sets]}), but the Python composite oracle
|
|
1420
|
-
"
|
|
1421
|
-
"scope are rooted at ONE source tree).
|
|
1422
|
-
"
|
|
1423
|
-
"
|
|
1424
|
-
"first-root collapse
|
|
1425
|
+
f"({[s.id for s in source_sets]}), but the Python composite oracle requires "
|
|
1426
|
+
"EXACTLY ONE source-set (its first-party import index + compile + collect "
|
|
1427
|
+
"scope are rooted at ONE source tree). >1 would SILENTLY drop the others "
|
|
1428
|
+
"(unproven code = false-green); 0 would force a GUESSED 'src' fallback "
|
|
1429
|
+
"(a wrong source root = false-green). Either is a HARD FAIL — never a silent "
|
|
1430
|
+
"first-root collapse, never a silent default."
|
|
1425
1431
|
)
|
|
1426
|
-
#
|
|
1427
|
-
#
|
|
1428
|
-
#
|
|
1432
|
+
# EXACTLY one REQUIRED (non-optional) test-set: the collect scope is single-root.
|
|
1433
|
+
# ``optional``/``colocated`` sets are not REQUIRED roots, so they do not count.
|
|
1434
|
+
# * >1 → a multi-required-test-set layout is UNSUPPORTED (RED).
|
|
1435
|
+
# * ==0 → no required test root to collect; a silent ``tests`` fallback would point
|
|
1436
|
+
# the collect layer at a GUESSED tree (false-green). HARD FAIL.
|
|
1429
1437
|
required_test_sets = tuple(s for s in test_sets if not getattr(s, "optional", False))
|
|
1430
|
-
if len(required_test_sets)
|
|
1438
|
+
if len(required_test_sets) != 1:
|
|
1431
1439
|
raise OracleScopeError(
|
|
1432
1440
|
"python implement-time oracle cannot be certified: the resolved layout "
|
|
1433
1441
|
f"declares {len(required_test_sets)} required test_sets "
|
|
1434
1442
|
f"({[s.id for s in required_test_sets]}), but the Python composite oracle "
|
|
1435
|
-
"collects a SINGLE test root
|
|
1436
|
-
"UNSUPPORTED
|
|
1443
|
+
"collects a SINGLE test root and requires EXACTLY ONE required test-set. >1 "
|
|
1444
|
+
"is UNSUPPORTED; 0 would force a GUESSED 'tests' fallback (a wrong test root "
|
|
1445
|
+
"= false-green). Either is a HARD FAIL — never a silent first-root collapse, "
|
|
1446
|
+
"never a silent default."
|
|
1437
1447
|
)
|
|
1438
1448
|
|
|
1439
1449
|
pkg_spec = getattr(layout, "package_root", None)
|
|
@@ -1474,20 +1484,52 @@ def _py_layout_from_layout_spec(ctx: OracleContext) -> tuple[str, str, str]:
|
|
|
1474
1484
|
)
|
|
1475
1485
|
package_root = _subst(pkg_path)
|
|
1476
1486
|
source_root = _py_parent_dir(package_root)
|
|
1487
|
+
# Internal consistency (anti-false-green): for a named_package layout the single
|
|
1488
|
+
# source-set root IS the package dir. A LayoutSpec that says the package root is
|
|
1489
|
+
# ``lib/{package_name}`` but the source-set is ``src/{package_name}`` is
|
|
1490
|
+
# self-contradictory — the oracle would not know which tree to observe. HARD FAIL
|
|
1491
|
+
# rather than silently trust one over the other (a wrong root = false-green).
|
|
1492
|
+
src_set_root = _subst(source_sets[0].root)
|
|
1493
|
+
if src_set_root != package_root:
|
|
1494
|
+
raise OracleScopeError(
|
|
1495
|
+
"python implement-time oracle cannot be certified: the resolved layout is "
|
|
1496
|
+
f"internally contradictory — source_sets[0].root resolves to "
|
|
1497
|
+
f"{src_set_root!r} but package_root resolves to {package_root!r} (for a "
|
|
1498
|
+
"named_package layout the single source-set IS the package dir; they must "
|
|
1499
|
+
"be identical). The oracle cannot decide which tree to observe — HARD FAIL "
|
|
1500
|
+
"(never a silent pick, which would risk proving the wrong tree)."
|
|
1501
|
+
)
|
|
1477
1502
|
elif pkg_kind == "path_root":
|
|
1478
|
-
|
|
1503
|
+
if not pkg_path:
|
|
1504
|
+
raise OracleScopeError(
|
|
1505
|
+
"python implement-time oracle cannot be certified: package_root.kind="
|
|
1506
|
+
"path_root but no path (the layout is incomplete; HARD FAIL — never a "
|
|
1507
|
+
"silent 'src' fallback, which would point the oracle at a guessed tree)."
|
|
1508
|
+
)
|
|
1509
|
+
package_root = _subst(pkg_path)
|
|
1479
1510
|
source_root = package_root
|
|
1480
1511
|
else:
|
|
1481
|
-
# ``none`` (no single package root
|
|
1482
|
-
#
|
|
1483
|
-
source_root = _subst(source_sets[0].root)
|
|
1512
|
+
# ``none`` (no single package root) or unknown: derive the source root from the
|
|
1513
|
+
# single (guaranteed-present) source-set; package_root == source_root.
|
|
1514
|
+
source_root = _subst(source_sets[0].root)
|
|
1484
1515
|
package_root = source_root
|
|
1485
1516
|
|
|
1517
|
+
# No silent ``src``/``tests`` fallback: the exactly-one source/test-set checks above
|
|
1518
|
+
# guarantee a set is present, and an empty DERIVED root after substitution is a real
|
|
1519
|
+
# layout defect (a guessed default would be a false-green). HARD FAIL instead.
|
|
1486
1520
|
if not source_root:
|
|
1487
|
-
|
|
1488
|
-
|
|
1521
|
+
raise OracleScopeError(
|
|
1522
|
+
"python implement-time oracle cannot be certified: the resolved source root "
|
|
1523
|
+
"is empty after substitution (the layout is incomplete; HARD FAIL — never a "
|
|
1524
|
+
"silent 'src' default that would point the oracle at a guessed tree)."
|
|
1525
|
+
)
|
|
1526
|
+
test_root = _subst(required_test_sets[0].root)
|
|
1489
1527
|
if not test_root:
|
|
1490
|
-
|
|
1528
|
+
raise OracleScopeError(
|
|
1529
|
+
"python implement-time oracle cannot be certified: the resolved test root is "
|
|
1530
|
+
"empty after substitution (the layout is incomplete; HARD FAIL — never a "
|
|
1531
|
+
"silent 'tests' default that would point the collect layer at a guessed tree)."
|
|
1532
|
+
)
|
|
1491
1533
|
return source_root, package_root, test_root
|
|
1492
1534
|
|
|
1493
1535
|
|
|
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
|