codd-dev 2.19.0__tar.gz → 2.23.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.23.0/PKG-INFO +244 -0
- codd_dev-2.23.0/README.md +202 -0
- codd_dev-2.23.0/bench_fixture/README.md +21 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/__init__.py +1 -1
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/_git_helper.py +4 -0
- codd_dev-2.23.0/codd/action_outcome.py +360 -0
- codd_dev-2.23.0/codd/ai_invoke.py +810 -0
- codd_dev-2.23.0/codd/ai_patch.py +205 -0
- codd_dev-2.23.0/codd/artifact_contract.py +971 -0
- codd_dev-2.23.0/codd/artifact_ids.py +311 -0
- codd_dev-2.23.0/codd/artifacts/catalog.yaml +269 -0
- codd_dev-2.23.0/codd/capability_completeness.py +545 -0
- codd_dev-2.23.0/codd/claude_cli.py +49 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/cli.py +3586 -320
- codd_dev-2.23.0/codd/confidence.py +242 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/config.py +10 -0
- codd_dev-2.23.0/codd/config_schema.py +248 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/coverage_metrics.py +7 -1
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/dag/builder.py +13 -8
- codd_dev-2.23.0/codd/dag/checks/_one_to_many_detection.py +311 -0
- codd_dev-2.23.0/codd/dag/checks/artifact_contract_check.py +145 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/dag/checks/ci_health.py +23 -1
- codd_dev-2.23.0/codd/dag/checks/dependency_freshness.py +355 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/dag/checks/depends_on_consistency.py +48 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/dag/checks/environment_coverage.py +18 -1
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/dag/checks/implementation_coverage.py +72 -14
- codd_dev-2.23.0/codd/dag/checks/ui_coherence.py +249 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/dag/checks/user_journey_coherence.py +326 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/dag/coverage_axes.py +106 -3
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/dag/defaults/cli.yaml +1 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/dag/defaults/generic.yaml +6 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/dag/defaults/iot.yaml +1 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/dag/defaults/mobile.yaml +1 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/dag/defaults/web.yaml +1 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/dag/extractor.py +35 -36
- codd_dev-2.23.0/codd/dag/impact.py +201 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/dag/runner.py +30 -0
- codd_dev-2.23.0/codd/defaults.yaml +359 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/deployment/extractor.py +190 -51
- codd_dev-2.23.0/codd/deployment/providers/ai_command.py +368 -0
- codd_dev-2.23.0/codd/deployment/providers/ai_command_factory.py +132 -0
- codd_dev-2.23.0/codd/deployment/providers/codex_app_server.py +410 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/deployment/providers/verification/__init__.py +2 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/deployment/providers/verification/cdp_browser.py +27 -1
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/deployment/providers/verification/playwright.py +56 -8
- codd_dev-2.23.0/codd/deployment/providers/verification/vitest.py +198 -0
- codd_dev-2.23.0/codd/discovery.py +220 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/drift.py +1 -1
- codd_dev-2.23.0/codd/e2e_contract_coherence.py +397 -0
- codd_dev-2.23.0/codd/e2e_extractor.py +1919 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/e2e_generator.py +134 -5
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/elicit/lexicon_loader.py +12 -17
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/extract_ai.py +175 -72
- codd_dev-2.23.0/codd/extract_paths.py +51 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/extractor.py +67 -10
- codd_dev-2.23.0/codd/fix/impl_propagation.py +557 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/fix/phenomenon_fixer.py +250 -15
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/fix/templates/design_update.txt +16 -0
- codd_dev-2.23.0/codd/fix/templates/impl_update.txt +48 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/fixer.py +38 -153
- codd_dev-2.23.0/codd/frontmatter.py +260 -0
- codd_dev-2.23.0/codd/generator.py +1528 -0
- codd_dev-2.23.0/codd/git_evidence.py +560 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/graph.py +8 -6
- codd_dev-2.23.0/codd/greenfield/__init__.py +1 -0
- codd_dev-2.23.0/codd/greenfield/pipeline.py +1782 -0
- codd_dev-2.23.0/codd/hooks/recipes/claude_requirements_nudge.json +15 -0
- codd_dev-2.23.0/codd/iac_nfr.py +1170 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/implementer/chunked_runner.py +3 -1
- codd_dev-2.23.0/codd/implementer.py +2559 -0
- codd_dev-2.23.0/codd/import_coherence.py +525 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/llm/criteria_expander.py +165 -5
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/llm/design_doc_extractor.py +11 -4
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/llm/impl_step_deriver.py +18 -5
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/llm/templates/criteria_expand_meta.md +3 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/llm/templates/impl_step_derive_meta.md +18 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/measure.py +10 -3
- codd_dev-2.23.0/codd/operational_e2e_audit.py +1342 -0
- codd_dev-2.23.0/codd/operations_derive.py +571 -0
- codd_dev-2.23.0/codd/parsing/__init__.py +219 -0
- codd_dev-2.23.0/codd/parsing/_shared.py +300 -0
- codd_dev-2.23.0/codd/parsing/api_specs.py +410 -0
- codd_dev-2.23.0/codd/parsing/filesystem_routes.py +245 -0
- codd_dev-2.23.0/codd/parsing/iac.py +1204 -0
- codd_dev-2.23.0/codd/parsing/python_ast.py +481 -0
- codd_dev-2.23.0/codd/parsing/schemas.py +304 -0
- codd_dev-2.23.0/codd/parsing/tests_builddeps.py +235 -0
- codd_dev-2.23.0/codd/parsing/treesitter.py +798 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/planner.py +316 -62
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/policy.py +2 -1
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/preflight/__init__.py +5 -3
- codd_dev-2.23.0/codd/preflight/defaults/generic.yaml +20 -0
- codd_dev-2.23.0/codd/project_types.py +1395 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/propagate.py +8 -19
- codd_dev-2.23.0/codd/propagation_common.py +343 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/propagator.py +314 -126
- codd_dev-2.23.0/codd/reconciliation_ledger.py +172 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/repair/approval_repair.py +38 -0
- codd_dev-2.23.0/codd/repair/auto_scope_guard.py +410 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/repair/llm_repair_engine.py +5 -7
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/repair/loop.py +105 -4
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/repair/repairability_classifier.py +41 -1
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/repair/schema.py +9 -0
- codd_dev-2.23.0/codd/repair/test_failure_attribution.py +733 -0
- codd_dev-2.23.0/codd/repair/verify_runner.py +1129 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/require_propagate.py +12 -95
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/required_artifacts/defaults/cli.yaml +26 -0
- codd_dev-2.23.0/codd/required_artifacts/defaults/generic.yaml +62 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/required_artifacts/defaults/iot.yaml +26 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/required_artifacts/defaults/mobile.yaml +26 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/required_artifacts/defaults/web.yaml +26 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/required_artifacts_deriver.py +22 -7
- codd_dev-2.23.0/codd/requirement_completeness/defaults/generic.yaml +99 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/requirement_completeness_auditor.py +18 -5
- codd_dev-2.23.0/codd/requirement_reconciliation.py +555 -0
- codd_dev-2.23.0/codd/requirements_meta.py +168 -0
- codd_dev-2.23.0/codd/restoration_report.py +1110 -0
- codd_dev-2.23.0/codd/restore.py +944 -0
- codd_dev-2.23.0/codd/runtime_smoke/__init__.py +11 -0
- codd_dev-2.23.0/codd/runtime_smoke/checks.py +729 -0
- codd_dev-2.23.0/codd/runtime_smoke/config.py +471 -0
- codd_dev-2.23.0/codd/runtime_smoke/report.py +96 -0
- codd_dev-2.23.0/codd/runtime_smoke/runner.py +163 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/scanner.py +9 -21
- codd_dev-2.23.0/codd/skills_cli/__init__.py +1 -0
- codd_dev-2.23.0/codd/skills_cli/discovery.py +94 -0
- codd_dev-2.23.0/codd/skills_cli/manager.py +371 -0
- codd_dev-2.23.0/codd/skills_cli/paths.py +60 -0
- codd_dev-2.23.0/codd/surface_reconciliation.py +309 -0
- codd_dev-2.23.0/codd/templates/codd.yaml.tmpl +178 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/templates/extract_ai_prompt_baseline.md +17 -10
- codd_dev-2.23.0/codd/test_detection.py +144 -0
- codd_dev-2.23.0/codd/test_import_coherence.py +538 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/validator.py +8 -16
- codd_dev-2.23.0/codd/verifiable_behavior_audit.py +819 -0
- codd_dev-2.23.0/codd_plugins/lexicons/data_aggregation_policies/coverage_matrix.md +11 -0
- codd_dev-2.23.0/codd_plugins/lexicons/data_aggregation_policies/elicit_extend.md +31 -0
- codd_dev-2.23.0/codd_plugins/lexicons/data_aggregation_policies/lexicon.yaml +117 -0
- codd_dev-2.23.0/codd_plugins/lexicons/data_aggregation_policies/manifest.yaml +20 -0
- codd_dev-2.23.0/codd_plugins/lexicons/data_aggregation_policies/recommended_kinds.yaml +8 -0
- codd_dev-2.23.0/codd_plugins/lexicons/data_aggregation_policies/severity_rules.yaml +25 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/stack_map.yaml +1 -0
- codd_dev-2.23.0/docs/cookbook/presentation_aggregation/README.md +37 -0
- codd_dev-2.23.0/dogfood/README.md +415 -0
- codd_dev-2.23.0/dogfood/fixtures/flat_py_app/README.md +5 -0
- codd_dev-2.23.0/examples/README.md +40 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/pyproject.toml +13 -1
- codd_dev-2.23.0/skills/codd-assemble/SKILL.md +108 -0
- codd_dev-2.23.0/skills/codd-evolve/SKILL.md +338 -0
- codd_dev-2.23.0/skills/codd-generate/SKILL.md +150 -0
- codd_dev-2.23.0/skills/codd-greenfield/SKILL.md +197 -0
- codd_dev-2.23.0/skills/codd-impact/SKILL.md +166 -0
- codd_dev-2.23.0/skills/codd-init/SKILL.md +110 -0
- codd_dev-2.23.0/skills/codd-propagate/SKILL.md +157 -0
- codd_dev-2.23.0/skills/codd-restore/SKILL.md +125 -0
- codd_dev-2.23.0/skills/codd-scan/SKILL.md +123 -0
- codd_dev-2.23.0/skills/codd-validate/SKILL.md +61 -0
- codd_dev-2.19.0/PKG-INFO +0 -222
- codd_dev-2.19.0/README.md +0 -182
- codd_dev-2.19.0/codd/defaults.yaml +0 -73
- codd_dev-2.19.0/codd/deployment/providers/ai_command.py +0 -190
- codd_dev-2.19.0/codd/e2e_extractor.py +0 -494
- codd_dev-2.19.0/codd/generator.py +0 -1065
- codd_dev-2.19.0/codd/implementer.py +0 -1442
- codd_dev-2.19.0/codd/parsing.py +0 -3061
- codd_dev-2.19.0/codd/repair/verify_runner.py +0 -382
- codd_dev-2.19.0/codd/restore.py +0 -270
- codd_dev-2.19.0/codd/templates/codd.yaml.tmpl +0 -72
- {codd_dev-2.19.0 → codd_dev-2.23.0}/.gitignore +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/LICENSE +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/__main__.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/ask_user_question_adapter.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/assembler.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/bridge.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/brownfield/__init__.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/brownfield/pipeline.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/clustering.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/coherence_adapters.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/coherence_engine.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/contracts.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/coverage_auditor.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/dag/__init__.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/dag/auto_repair.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/dag/checks/__init__.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/dag/checks/deployment_completeness.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/dag/checks/edge_validity.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/dag/checks/node_completeness.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/dag/checks/opt_out.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/dag/checks/task_completion.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/dag/checks/transitive_closure.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/dag/defaults/cpp_embedded.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/dag/defaults/csharp.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/dag/defaults/elixir.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/dag/defaults/java.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/dag/defaults/kotlin.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/dag/defaults/ruby.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/dag/defaults/rust.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/dag/defaults/scala.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/dag/defaults/swift.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/dag/defaults/test_frameworks.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/defaults.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/deploy_targets/__init__.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/deploy_targets/app_service.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/deploy_targets/base.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/deploy_targets/docker_compose.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/deployer.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/deployment/__init__.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/deployment/checks/__init__.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/deployment/defaults/deploy_targets.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/deployment/defaults/runtime_capability_inference.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/deployment/defaults/schema_providers.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/deployment/defaults/verification_templates.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/deployment/providers/__init__.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/deployment/providers/llm_consideration.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/deployment/providers/schema/__init__.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/deployment/providers/schema/prisma.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/deployment/providers/target/__init__.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/deployment/providers/target/docker_compose.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/deployment/providers/verification/assertion_handlers.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/deployment/providers/verification/cdp_engines.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/deployment/providers/verification/cdp_launchers.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/deployment/providers/verification/cdp_wire.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/deployment/providers/verification/curl.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/deployment/providers/verification/form_strategies.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/deployment/providers/verification/means_catalog.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/design_md.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/diff/__init__.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/diff/apply.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/diff/engine.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/diff/persistence.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/diff/templates/diff_prompt.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/e2e_runner.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/elicit/__init__.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/elicit/apply.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/elicit/engine.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/elicit/finding.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/elicit/formatters/__init__.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/elicit/formatters/base.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/elicit/formatters/interactive.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/elicit/formatters/json_fmt.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/elicit/formatters/md.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/elicit/persistence.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/elicit/templates/elicit_prompt_L0.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/env_refs.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/fix/__init__.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/fix/candidate_selector.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/fix/design_updater.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/fix/interactive_prompt.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/fix/phenomenon_parser.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/fix/risk_classifier.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/fix/templates/clarification_question.txt +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/fix/templates/phenomenon_parse.txt +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/fix/templates/risk_assessment.txt +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/fix/templates_loader.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/fixup_drift.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/fixup_drift_strategies/__init__.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/fixup_drift_strategies/design_token_drift.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/fixup_drift_strategies/lexicon_violation.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/fixup_drift_strategies/url_drift.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/hitl_session.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/hooks/__init__.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/hooks/pre-commit +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/hooks/recipes/claude_settings_example.json +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/hooks/recipes/codex_hook.sh +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/hooks/recipes/git_post_commit.sh +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/hooks/recipes/git_pre_commit.sh +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/implementer/__init__.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/implementer/typecheck_loop.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/inheritance.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/init/__init__.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/init/lexicon_suggest.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/init/llm_lexicon_suggester.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/init/stack_detector.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/knowledge_fetcher.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/lexicon.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/lexicon_cli/__init__.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/lexicon_cli/formatters/__init__.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/lexicon_cli/formatters/html.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/lexicon_cli/formatters/json_fmt.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/lexicon_cli/formatters/md.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/lexicon_cli/inspector.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/lexicon_cli/manager.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/lexicon_cli/reporter.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/lexicon_cli/threshold.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/llm/__init__.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/llm/approval.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/llm/best_practice_augmenter.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/llm/means_catalog_loader.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/llm/parser.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/llm/plan_deriver.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/llm/prompt_builder.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/llm/strategy_validator.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/llm/templates/best_practice_augment_meta.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/llm/templates/design_doc_extract_meta.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/llm/templates/implementation_step_catalog.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/llm/templates/meta_instruction.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/llm/templates/plan_derive_meta.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/llm/templates/verification_means_catalog.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/mcp_server.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/preflight/defaults/cli.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/preflight/defaults/iot.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/preflight/defaults/mobile.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/preflight/defaults/web.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/registry.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/repair/__init__.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/repair/engine.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/repair/git_patcher.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/repair/history.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/repair/primary_picker.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/repair/proof_breaks.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/repair/repair_result.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/repair/templates/analyze_meta.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/repair/templates/propose_meta.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/repair/templates/repair_strategy_meta.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/repair/templates/repairability_meta.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/repair_slice.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/require.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/require_plugins.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/requirement_completeness/defaults/cli.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/requirement_completeness/defaults/iot.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/requirement_completeness/defaults/mobile.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/requirement_completeness/defaults/web.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/routes_extractor.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/schema_refs.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/screen_flow_validator.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/screen_transition_extractor.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/screen_transitions/defaults.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/synth.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/templates/conventions.yaml.tmpl +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/templates/data_dependencies.yaml.tmpl +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/templates/doc_links.yaml.tmpl +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/templates/extracted/api-contract.md.j2 +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/templates/extracted/architecture-overview.md.j2 +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/templates/extracted/module-detail.md.j2 +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/templates/extracted/schema-design.md.j2 +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/templates/extracted/system-context.md.j2 +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/templates/gitignore.tmpl +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/templates/lexicon_questions.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/templates/lexicon_schema.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/templates/overrides.yaml.tmpl +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/traceability.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/watch/__init__.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/watch/events.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/watch/propagation_log.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/watch/propagation_pipeline.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/watch/test_runner.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/watch/watcher.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd/wiring.py +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/ai_governance_eu_act/coverage_matrix.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/ai_governance_eu_act/elicit_extend.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/ai_governance_eu_act/lexicon.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/ai_governance_eu_act/manifest.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/ai_governance_eu_act/recommended_kinds.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/ai_governance_eu_act/severity_rules.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/api_rate_limiting_caching/coverage_matrix.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/api_rate_limiting_caching/elicit_extend.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/api_rate_limiting_caching/lexicon.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/api_rate_limiting_caching/manifest.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/api_rate_limiting_caching/recommended_kinds.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/api_rate_limiting_caching/severity_rules.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/api_rest_openapi/coverage_matrix.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/api_rest_openapi/elicit_extend.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/api_rest_openapi/lexicon.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/api_rest_openapi/manifest.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/api_rest_openapi/recommended_kinds.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/api_rest_openapi/severity_rules.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/babok/elicit_extend.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/babok/lexicon.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/babok/manifest.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/babok/recommended_kinds.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/babok/severity_rules.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/backend_event_cloudevents/coverage_matrix.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/backend_event_cloudevents/elicit_extend.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/backend_event_cloudevents/lexicon.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/backend_event_cloudevents/manifest.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/backend_event_cloudevents/recommended_kinds.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/backend_event_cloudevents/severity_rules.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/backend_graphql/coverage_matrix.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/backend_graphql/elicit_extend.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/backend_graphql/lexicon.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/backend_graphql/manifest.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/backend_graphql/recommended_kinds.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/backend_graphql/severity_rules.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/backend_grpc_proto/coverage_matrix.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/backend_grpc_proto/elicit_extend.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/backend_grpc_proto/lexicon.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/backend_grpc_proto/manifest.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/backend_grpc_proto/recommended_kinds.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/backend_grpc_proto/severity_rules.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/compliance_hipaa/coverage_matrix.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/compliance_hipaa/elicit_extend.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/compliance_hipaa/lexicon.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/compliance_hipaa/manifest.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/compliance_hipaa/recommended_kinds.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/compliance_hipaa/severity_rules.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/compliance_iso27001/coverage_matrix.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/compliance_iso27001/elicit_extend.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/compliance_iso27001/lexicon.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/compliance_iso27001/manifest.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/compliance_iso27001/recommended_kinds.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/compliance_iso27001/severity_rules.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/compliance_pci_dss_4/coverage_matrix.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/compliance_pci_dss_4/elicit_extend.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/compliance_pci_dss_4/lexicon.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/compliance_pci_dss_4/manifest.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/compliance_pci_dss_4/recommended_kinds.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/compliance_pci_dss_4/severity_rules.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/coverage_matrix.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/elicit_extend.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/lexicon.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/manifest.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/recommended_kinds.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/severity_rules.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/data_governance_appi_gdpr/coverage_matrix.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/data_governance_appi_gdpr/elicit_extend.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/data_governance_appi_gdpr/lexicon.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/data_governance_appi_gdpr/manifest.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/data_governance_appi_gdpr/recommended_kinds.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/data_governance_appi_gdpr/severity_rules.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/data_nosql_jsonschema/coverage_matrix.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/data_nosql_jsonschema/elicit_extend.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/data_nosql_jsonschema/lexicon.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/data_nosql_jsonschema/manifest.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/data_nosql_jsonschema/recommended_kinds.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/data_nosql_jsonschema/severity_rules.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/data_relational_iso_sql/coverage_matrix.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/data_relational_iso_sql/elicit_extend.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/data_relational_iso_sql/lexicon.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/data_relational_iso_sql/manifest.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/data_relational_iso_sql/recommended_kinds.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/data_relational_iso_sql/severity_rules.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/ddd_domain_driven_design/coverage_matrix.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/ddd_domain_driven_design/elicit_extend.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/ddd_domain_driven_design/lexicon.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/ddd_domain_driven_design/manifest.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/ddd_domain_driven_design/recommended_kinds.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/ddd_domain_driven_design/severity_rules.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/dora_sre_metrics/coverage_matrix.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/dora_sre_metrics/elicit_extend.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/dora_sre_metrics/lexicon.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/dora_sre_metrics/manifest.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/dora_sre_metrics/recommended_kinds.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/dora_sre_metrics/severity_rules.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/i18n_unicode_cldr/coverage_matrix.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/i18n_unicode_cldr/elicit_extend.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/i18n_unicode_cldr/lexicon.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/i18n_unicode_cldr/manifest.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/i18n_unicode_cldr/recommended_kinds.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/i18n_unicode_cldr/severity_rules.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/ml_model_cards/coverage_matrix.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/ml_model_cards/elicit_extend.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/ml_model_cards/lexicon.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/ml_model_cards/manifest.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/ml_model_cards/recommended_kinds.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/ml_model_cards/severity_rules.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/mobile_a11y_native/coverage_matrix.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/mobile_a11y_native/elicit_extend.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/mobile_a11y_native/lexicon.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/mobile_a11y_native/manifest.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/mobile_a11y_native/recommended_kinds.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/mobile_a11y_native/severity_rules.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/mobile_android_material3/coverage_matrix.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/mobile_android_material3/elicit_extend.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/mobile_android_material3/lexicon.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/mobile_android_material3/manifest.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/mobile_android_material3/recommended_kinds.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/mobile_android_material3/severity_rules.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/mobile_ios_hig/coverage_matrix.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/mobile_ios_hig/elicit_extend.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/mobile_ios_hig/lexicon.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/mobile_ios_hig/manifest.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/mobile_ios_hig/recommended_kinds.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/mobile_ios_hig/severity_rules.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/mobile_security_masvs/coverage_matrix.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/mobile_security_masvs/elicit_extend.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/mobile_security_masvs/lexicon.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/mobile_security_masvs/manifest.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/mobile_security_masvs/recommended_kinds.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/mobile_security_masvs/severity_rules.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/ops_cicd_pipeline/coverage_matrix.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/ops_cicd_pipeline/elicit_extend.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/ops_cicd_pipeline/lexicon.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/ops_cicd_pipeline/manifest.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/ops_cicd_pipeline/recommended_kinds.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/ops_cicd_pipeline/severity_rules.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/ops_iac_terraform/coverage_matrix.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/ops_iac_terraform/elicit_extend.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/ops_iac_terraform/lexicon.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/ops_iac_terraform/manifest.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/ops_iac_terraform/recommended_kinds.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/ops_iac_terraform/severity_rules.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/ops_kubernetes/coverage_matrix.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/ops_kubernetes/elicit_extend.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/ops_kubernetes/lexicon.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/ops_kubernetes/manifest.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/ops_kubernetes/recommended_kinds.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/ops_kubernetes/severity_rules.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/ops_observability_otel/coverage_matrix.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/ops_observability_otel/elicit_extend.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/ops_observability_otel/lexicon.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/ops_observability_otel/manifest.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/ops_observability_otel/recommended_kinds.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/ops_observability_otel/severity_rules.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/process_iso25010/coverage_matrix.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/process_iso25010/elicit_extend.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/process_iso25010/lexicon.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/process_iso25010/manifest.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/process_iso25010/recommended_kinds.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/process_iso25010/severity_rules.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/process_test_iso29119/coverage_matrix.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/process_test_iso29119/elicit_extend.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/process_test_iso29119/lexicon.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/process_test_iso29119/manifest.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/process_test_iso29119/recommended_kinds.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/process_test_iso29119/severity_rules.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/twelve_factor_app/coverage_matrix.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/twelve_factor_app/elicit_extend.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/twelve_factor_app/lexicon.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/twelve_factor_app/manifest.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/twelve_factor_app/recommended_kinds.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/twelve_factor_app/severity_rules.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/coverage_matrix.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/elicit_extend.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/lexicon.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/manifest.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/recommended_kinds.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/severity_rules.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/web_authn_webauthn/coverage_matrix.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/web_authn_webauthn/elicit_extend.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/web_authn_webauthn/lexicon.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/web_authn_webauthn/manifest.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/web_authn_webauthn/recommended_kinds.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/web_authn_webauthn/severity_rules.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/web_browser_compat/coverage_matrix.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/web_browser_compat/elicit_extend.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/web_browser_compat/lexicon.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/web_browser_compat/manifest.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/web_browser_compat/recommended_kinds.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/web_browser_compat/severity_rules.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/web_forms_html5/coverage_matrix.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/web_forms_html5/elicit_extend.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/web_forms_html5/lexicon.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/web_forms_html5/manifest.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/web_forms_html5/recommended_kinds.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/web_forms_html5/severity_rules.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/web_performance_core_web_vitals/coverage_matrix.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/web_performance_core_web_vitals/elicit_extend.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/web_performance_core_web_vitals/lexicon.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/web_performance_core_web_vitals/manifest.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/web_performance_core_web_vitals/recommended_kinds.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/web_performance_core_web_vitals/severity_rules.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/web_pwa_manifest/coverage_matrix.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/web_pwa_manifest/elicit_extend.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/web_pwa_manifest/lexicon.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/web_pwa_manifest/manifest.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/web_pwa_manifest/recommended_kinds.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/web_pwa_manifest/severity_rules.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/web_responsive/coverage_matrix.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/web_responsive/elicit_extend.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/web_responsive/lexicon.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/web_responsive/manifest.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/web_responsive/recommended_kinds.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/web_responsive/severity_rules.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/web_security_owasp/coverage_matrix.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/web_security_owasp/elicit_extend.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/web_security_owasp/lexicon.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/web_security_owasp/manifest.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/web_security_owasp/recommended_kinds.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/web_security_owasp/severity_rules.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/web_seo_schemaorg/coverage_matrix.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/web_seo_schemaorg/elicit_extend.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/web_seo_schemaorg/lexicon.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/web_seo_schemaorg/manifest.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/web_seo_schemaorg/recommended_kinds.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/codd_plugins/lexicons/web_seo_schemaorg/severity_rules.yaml +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/docs/cookbook/cdp_browser/README.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/docs/requirements/README.md +0 -0
- {codd_dev-2.19.0 → codd_dev-2.23.0}/tests/integration/standalone_repair_skeleton/README.md +0 -0
codd_dev-2.23.0/PKG-INFO
ADDED
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: codd-dev
|
|
3
|
+
Version: 2.23.0
|
|
4
|
+
Summary: CoDD: Coherence-Driven Development — cross-artifact change impact analysis
|
|
5
|
+
Project-URL: Homepage, https://github.com/yohey-w/codd-dev
|
|
6
|
+
Project-URL: Repository, https://github.com/yohey-w/codd-dev
|
|
7
|
+
Project-URL: Issues, https://github.com/yohey-w/codd-dev/issues
|
|
8
|
+
Author-email: Yohei Watanabe <yohey-w@users.noreply.github.com>
|
|
9
|
+
License-Expression: MIT
|
|
10
|
+
License-File: LICENSE
|
|
11
|
+
Keywords: change-impact,claude-code,dependency-graph,plugin,software-engineering
|
|
12
|
+
Classifier: Development Status :: 4 - Beta
|
|
13
|
+
Classifier: Intended Audience :: Developers
|
|
14
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
15
|
+
Classifier: Programming Language :: Python :: 3
|
|
16
|
+
Classifier: Topic :: Software Development :: Quality Assurance
|
|
17
|
+
Requires-Python: >=3.10
|
|
18
|
+
Requires-Dist: click>=8.0
|
|
19
|
+
Requires-Dist: httpx>=0.27.0
|
|
20
|
+
Requires-Dist: jinja2>=3.1.0
|
|
21
|
+
Requires-Dist: python-hcl2>=7.0.0
|
|
22
|
+
Requires-Dist: pyyaml>=6.0
|
|
23
|
+
Requires-Dist: tomli>=2.0.1; python_version < '3.11'
|
|
24
|
+
Requires-Dist: watchdog>=4.0.0
|
|
25
|
+
Requires-Dist: websocket-client>=1.8.0
|
|
26
|
+
Provides-Extra: ai
|
|
27
|
+
Provides-Extra: api-parsers
|
|
28
|
+
Requires-Dist: graphql-core>=3.2.0; extra == 'api-parsers'
|
|
29
|
+
Provides-Extra: infra
|
|
30
|
+
Requires-Dist: python-hcl2>=7.0.0; extra == 'infra'
|
|
31
|
+
Provides-Extra: mcp
|
|
32
|
+
Provides-Extra: scan
|
|
33
|
+
Requires-Dist: tree-sitter-java>=0.22; extra == 'scan'
|
|
34
|
+
Requires-Dist: tree-sitter-python>=0.22; extra == 'scan'
|
|
35
|
+
Requires-Dist: tree-sitter-typescript>=0.22; extra == 'scan'
|
|
36
|
+
Requires-Dist: tree-sitter>=0.22; extra == 'scan'
|
|
37
|
+
Provides-Extra: tree-sitter
|
|
38
|
+
Requires-Dist: tree-sitter-python<0.26.0,>=0.25.0; extra == 'tree-sitter'
|
|
39
|
+
Requires-Dist: tree-sitter-typescript<0.24.0,>=0.23.0; extra == 'tree-sitter'
|
|
40
|
+
Requires-Dist: tree-sitter<0.26.0,>=0.25.0; extra == 'tree-sitter'
|
|
41
|
+
Description-Content-Type: text/markdown
|
|
42
|
+
|
|
43
|
+
<p align="center">
|
|
44
|
+
<strong>CoDD — Coherence-Driven Development</strong>
|
|
45
|
+
</p>
|
|
46
|
+
|
|
47
|
+
<p align="center">
|
|
48
|
+
<a href="https://pypi.org/project/codd-dev/"><img src="https://img.shields.io/pypi/v/codd-dev?style=flat-square&color=blue" alt="PyPI"></a>
|
|
49
|
+
<a href="https://pypi.org/project/codd-dev/"><img src="https://img.shields.io/pypi/pyversions/codd-dev?style=flat-square" alt="Python"></a>
|
|
50
|
+
<a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-green?style=flat-square" alt="License"></a>
|
|
51
|
+
<a href="https://github.com/yohey-w/codd-dev/stargazers"><img src="https://img.shields.io/github/stars/yohey-w/codd-dev?style=flat-square" alt="Stars"></a>
|
|
52
|
+
</p>
|
|
53
|
+
|
|
54
|
+
<p align="center">
|
|
55
|
+
<a href="README_ja.md">日本語</a> | English | <a href="README_zh.md">中文</a>
|
|
56
|
+
</p>
|
|
57
|
+
|
|
58
|
+
> Write only functional requirements and constraints. CoDD generates the code, repairs the coherence, and verifies the result.
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## 🌟 Why CoDD
|
|
63
|
+
|
|
64
|
+
> **"Write only functional requirements and constraints. Code is generated, repaired, and verified automatically."**
|
|
65
|
+
|
|
66
|
+
Most "AI-assisted dev" tools focus on the **generation** side. CoDD focuses on the **constraint** side: the LLM is most useful when it has a precise picture of what *must* be true. CoDD ties every artifact (requirements → design → lexicon → source → tests → runtime) into a single DAG, drives an LLM repair loop against it, and surfaces what is structurally unrepairable — honestly.
|
|
67
|
+
|
|
68
|
+
With an enabled artifact contract, `codd plan/generate/implement/verify` judge completion by the artifacts actually produced, not by the command merely returning — a harness-level mechanism that lets even a weaker model stay on the north star.
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## 🚀 Get started in 60 seconds
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
pip install codd-dev
|
|
76
|
+
|
|
77
|
+
# Greenfield: write requirements, walk away
|
|
78
|
+
codd greenfield --requirements docs/requirements/requirements.md
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
One command runs the whole unattended pipeline — init → elicit → plan → generate → implement → verify (auto-repair) → propagate → check — checkpointing after every unit (`codd greenfield --resume` picks up where it stopped, `--ntfy-topic` sends progress pings, `--dry-run` previews). The same pipeline ships as three vehicles so any setup can use it: a transparent shell composition ([examples/greenfield_autopilot.sh](examples/greenfield_autopilot.sh)), a Claude Code Agent Workflow template ([examples/claude_workflows/codd-greenfield.js](examples/claude_workflows/codd-greenfield.js)), and the `codd-greenfield` skill (`codd skills install codd-greenfield --target both` — works in Claude Code and Codex CLI).
|
|
82
|
+
|
|
83
|
+
Working inside an existing project instead:
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
codd init --suggest-lexicons --llm-enhanced # AI picks the lexicons that fit
|
|
87
|
+
codd elicit # AI finds gaps in your requirements
|
|
88
|
+
codd dag verify --auto-repair --max-attempts 10 # AI fixes coherence violations
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
Already shipping? Describe what you want fixed:
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
codd fix "login error messages are hard to understand" # natural-language phenomenon mode
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
`codd fix [PHENOMENON]` is CoDD's second entry-point: state the desired change in plain words, CoDD locates the affected design docs via lexicon + semantic scoring and updates them with an LLM. From there the change flows **design → implementation → tests → verify**: Stage 4 deterministically resolves the affected implementation + test files from the DAG, makes an allowlist-confined LLM patch, and runs a verify gate (no new red DAG check + local tests pass) with targeted rollback (only files this run wrote are reverted) on failure. Opt out with `--no-propagate-impl`; add `--propagate` to also reconcile dependent design docs. `--dry-run` previews, `--non-interactive` runs in CI.
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## 🎨 Visual flow
|
|
102
|
+
|
|
103
|
+
```mermaid
|
|
104
|
+
flowchart LR
|
|
105
|
+
R["Requirements (.md)"] --> E["codd elicit"]
|
|
106
|
+
E -->|gap findings| H{HITL: approve / reject}
|
|
107
|
+
H -->|approve| L["project_lexicon.yaml + requirements TODOs"]
|
|
108
|
+
H -->|reject| I["ignored_findings.yaml"]
|
|
109
|
+
L --> V["codd dag verify --auto-repair"]
|
|
110
|
+
V -->|violation| AR["LLM patch propose → apply"]
|
|
111
|
+
AR --> V
|
|
112
|
+
V -->|SUCCESS| D["✅ deploy gate passes"]
|
|
113
|
+
AR -->|max attempts| P["PARTIAL_SUCCESS: unrepairable surfaced honestly"]
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
Brownfield path:
|
|
117
|
+
|
|
118
|
+
```mermaid
|
|
119
|
+
flowchart LR
|
|
120
|
+
Code["Existing codebase"] --> X["codd extract"]
|
|
121
|
+
X --> DIFF["codd diff (drift)"]
|
|
122
|
+
DIFF --> EL["codd elicit (coverage gaps)"]
|
|
123
|
+
EL --> H{HITL gate}
|
|
124
|
+
H --> Apply["codd elicit apply"]
|
|
125
|
+
Apply --> V["codd dag verify"]
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## ✨ What it does
|
|
131
|
+
|
|
132
|
+
CoDD is one CLI organised in four layers. Pick what you need; the rest stays out of your way.
|
|
133
|
+
|
|
134
|
+
### Core commands
|
|
135
|
+
|
|
136
|
+
| Command | One-line summary |
|
|
137
|
+
| --- | --- |
|
|
138
|
+
| 🚀 **`codd greenfield --requirements FILE`** | Unattended autopilot: requirements in, system out. All gates auto-approved, checkpoint/resume via `--resume`, ntfy notify-only. Its building blocks (`generate --all-waves`, `implement list-tasks`, `verify --repair-mode`) also work standalone. |
|
|
139
|
+
| 🎯 **`codd init --suggest-lexicons --llm-enhanced`** | LLM scans code/docs, picks the right lexicon plug-ins. |
|
|
140
|
+
| 🔍 **`codd elicit`** | Finds *specification holes* against industry-standard lexicons. |
|
|
141
|
+
| 🔄 **`codd diff`** | Detects drift between requirements and actual implementation. |
|
|
142
|
+
| 🛠️ **`codd dag verify --auto-repair`** | Validates the full DAG; LLM proposes patches; loop until SUCCESS or MAX_ATTEMPTS. |
|
|
143
|
+
| 🎯 **`codd fix`** / **`codd fix [PHENOMENON]`** | Two modes — auto-detect CI failures, or describe a desired change in natural language; phenomenon mode flows design → implementation → tests → verify (opt out via `--no-propagate-impl`). |
|
|
144
|
+
| 🧭 **`codd operations {derive,show,approve,apply}`** | Detects requirement units anchored to no declared operation, has the AI propose `operation_flow` entries, and writes a proposal for human review — nothing reaches `codd.yaml` until `approve` + `apply`. Opt-in, non-destructive. (Legacy `merge` still works as a deprecated alias of `apply`.) |
|
|
145
|
+
| 📜 **`codd contract {derive,show,apply,verify}`** | V-model artifact contract. `derive`/`apply` are requirement-driven selection of *which* catalog artifacts a project declares per stage (`derive` detects the project's signals — requirement docs, design docs, lexicon, declared `operation_flow`, source dirs, test/e2e suites — and writes a reviewable proposal, never touching `codd.yaml`; `apply` merges it non-destructively and idempotently, `--enable` to turn the gate on). `verify`/gate are the completion side: with the contract enabled, a stage can't claim completion until its declared artifacts are produced/validate. `show` renders the catalog + this project's contract. Opt-in; absent/disabled contract = no-op. (Legacy `suggest`/`adopt` still work as deprecated aliases.) |
|
|
146
|
+
| 🌐 **`codd brownfield`** | Extract → diff → elicit pipeline for existing codebases. |
|
|
147
|
+
|
|
148
|
+
### Quality gates
|
|
149
|
+
|
|
150
|
+
| Gate | Purpose |
|
|
151
|
+
| --- | --- |
|
|
152
|
+
| 🧪 **`codd verify --runtime`** | Step 8 runtime smoke (DB up + dev server reachable + smoke HTTP + real-browser E2E + opt-in CRUD reflection via `runtime.crud_flow_targets` + action outcome coverage via `runtime.action_outcome_targets`). `--runtime-skip` opts out per category and records the reason. |
|
|
153
|
+
| 📊 **`codd lexicon list/install/diff` + `codd coverage report`** | Plug-in management + JSON / Markdown / self-contained HTML coverage matrices. |
|
|
154
|
+
| 🛡️ **CI gate** | `.github/workflows/codd_coverage.yml` template + `codd coverage check` exit code blocks coverage regressions on merge. |
|
|
155
|
+
|
|
156
|
+
### Skills & backends
|
|
157
|
+
|
|
158
|
+
| Capability | What it gives you |
|
|
159
|
+
| --- | --- |
|
|
160
|
+
| 🔁 **`codd skills {install,list,remove}`** | Distributes bundled skills (e.g. `codd-evolve`) to `~/.claude/skills/` and `~/.agents/skills/`. `--target {claude,codex,both}`, `--mode {symlink,copy}`, idempotent + `--force`. |
|
|
161
|
+
| 🪡 **codd-evolve skill** | Brownfield conversational evolution. Walks requirements → design → lexicon → source → tests → verify → propagate → Step 8 runtime smoke from a single natural-language intent. Stop-and-ask gates for new lexicon terms, breaking changes, and 1:N UI topology. |
|
|
162
|
+
| ⚡ **Codex App Server backend** (v2.20.0) | Set `codex_app_server.enabled: true` in `codd.yaml` to route AI calls through a persistent JSON-RPC thread instead of subprocess. `thread_strategy: per_session` amortises codex cold-start across `codd implement` / `codd verify --auto-repair` / `codd fix`. Automatic `subprocess` fallback when the binary or socket is missing. |
|
|
163
|
+
|
|
164
|
+
### Lexicon plug-ins
|
|
165
|
+
|
|
166
|
+
38 industry-standard lexicons ship as opt-in coverage axes — Web (WCAG / OWASP / Web Vitals / WebAuthn / forms / SEO / PWA), Mobile (HIG / Material 3 / a11y / MASVS), Backend (REST / GraphQL / gRPC / events), Data (SQL / JSON Schema / event sourcing / governance), Ops (CI/CD / Kubernetes / Terraform / observability / DORA), Compliance (ISO 27001 / HIPAA / PCI DSS / GDPR / EU AI Act), Process (ISO 25010 / 29119 / DDD / 12-factor / i18n / model cards / API rate-limit), and Methodology (BABOK).
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
## 📊 Case study
|
|
171
|
+
|
|
172
|
+
Dogfooded against a Next.js + Prisma + PostgreSQL multi-tenant LMS (~30 design docs, 12 DB tables, RLS-enforced isolation): `codd init --suggest-lexicons` matched 9 of 10 manually-chosen lexicons, `codd elicit` surfaced 70 spec holes, `codd dag verify --auto-repair` drove 16 unrepairable violations down to **PASS or amber-WARN with deploy allowed** — without a single line of CoDD core change per project. Project-specific concerns live entirely in `project_lexicon.yaml` and `codd_plugins/`.
|
|
173
|
+
|
|
174
|
+
---
|
|
175
|
+
|
|
176
|
+
## 🧱 Generality Gate (three-layer architecture)
|
|
177
|
+
|
|
178
|
+
| Layer | Where stack-specific names live | Examples |
|
|
179
|
+
| --- | --- | --- |
|
|
180
|
+
| **A — Core** | **Nowhere.** Zero `react`, `django`, `Stripe`, `LMS` literals. | `codd/elicit/`, `codd/dag/`, `codd/lexicon_cli/` |
|
|
181
|
+
| **B — Templates** | Generic placeholders only. | `codd/templates/*.j2`, `codd/templates/lexicon_schema.yaml` |
|
|
182
|
+
| **C — Plug-ins** | Free to name anything. | `codd_plugins/lexicons/*/`, `codd_plugins/stack_map.yaml` |
|
|
183
|
+
|
|
184
|
+
This is what lets one core work for Next.js, Django, FastAPI, Rails, Go services, mobile apps, ML model cards — and lets contributors add a lexicon without touching the core.
|
|
185
|
+
|
|
186
|
+
---
|
|
187
|
+
|
|
188
|
+
## 🧭 Roadmap
|
|
189
|
+
|
|
190
|
+
Up next:
|
|
191
|
+
|
|
192
|
+
- App-Server-driven benchmark publication (P50 / P95 / P99 for subprocess vs JSON-RPC)
|
|
193
|
+
- Lexicon plug-in marketplace
|
|
194
|
+
|
|
195
|
+
Past releases (v2.11.0 → v2.20.0) live in [CHANGELOG.md](CHANGELOG.md) with quality metrics.
|
|
196
|
+
|
|
197
|
+
---
|
|
198
|
+
|
|
199
|
+
## 🤝 Contributing
|
|
200
|
+
|
|
201
|
+
CoDD is shaped by:
|
|
202
|
+
|
|
203
|
+
- **[@yohey-w](https://github.com/yohey-w)** — Maintainer / Architect
|
|
204
|
+
- **[@Seika86](https://github.com/Seika86)** — Sprint regex insight (PR #11)
|
|
205
|
+
- **[@v-kato](https://github.com/v-kato)** — Brownfield reproduction reports (Issues #17 / #18 / #19 / #20 / #21 / #22)
|
|
206
|
+
- **[@dev-komenzar](https://github.com/dev-komenzar)** — `source_dirs` bug reproduction (Issue #13)
|
|
207
|
+
|
|
208
|
+
Issues, PRs, and lexicon proposals are welcome — see [Issues](https://github.com/yohey-w/codd-dev/issues).
|
|
209
|
+
|
|
210
|
+
---
|
|
211
|
+
|
|
212
|
+
## 📚 Documentation
|
|
213
|
+
|
|
214
|
+
- [CHANGELOG.md](CHANGELOG.md) — every release with quality metrics
|
|
215
|
+
- [docs/](docs/) — architecture notes
|
|
216
|
+
- `codd --help` — full CLI reference
|
|
217
|
+
|
|
218
|
+
---
|
|
219
|
+
|
|
220
|
+
## 📦 Hook Integration
|
|
221
|
+
|
|
222
|
+
CoDD ships hook recipes for editor and Git workflows:
|
|
223
|
+
|
|
224
|
+
- Claude Code `PostToolUse` hook recipe for running CoDD checks after file edits
|
|
225
|
+
- Claude Code requirements-nudge recipe (`claude_requirements_nudge.json`) — prints an advisory "requirements changed → run `codd greenfield --resume` or `codd check`" when files under `docs/requirements/` are edited (print-only; never auto-runs expensive pipelines)
|
|
226
|
+
- Git `pre-commit` hook recipe for blocking commits when coherence checks fail
|
|
227
|
+
|
|
228
|
+
Recipes live under `codd/hooks/recipes/`.
|
|
229
|
+
|
|
230
|
+
---
|
|
231
|
+
|
|
232
|
+
## License
|
|
233
|
+
|
|
234
|
+
MIT — see [LICENSE](LICENSE).
|
|
235
|
+
|
|
236
|
+
## Links
|
|
237
|
+
|
|
238
|
+
- [PyPI](https://pypi.org/project/codd-dev/)
|
|
239
|
+
- [GitHub Sponsors](https://github.com/sponsors/yohey-w) — support development
|
|
240
|
+
- [Issues](https://github.com/yohey-w/codd-dev/issues)
|
|
241
|
+
|
|
242
|
+
---
|
|
243
|
+
|
|
244
|
+
> When code changes, CoDD traces the impact, detects violations, and produces evidence for merge decisions.
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<strong>CoDD — Coherence-Driven Development</strong>
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
|
+
<p align="center">
|
|
6
|
+
<a href="https://pypi.org/project/codd-dev/"><img src="https://img.shields.io/pypi/v/codd-dev?style=flat-square&color=blue" alt="PyPI"></a>
|
|
7
|
+
<a href="https://pypi.org/project/codd-dev/"><img src="https://img.shields.io/pypi/pyversions/codd-dev?style=flat-square" alt="Python"></a>
|
|
8
|
+
<a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-green?style=flat-square" alt="License"></a>
|
|
9
|
+
<a href="https://github.com/yohey-w/codd-dev/stargazers"><img src="https://img.shields.io/github/stars/yohey-w/codd-dev?style=flat-square" alt="Stars"></a>
|
|
10
|
+
</p>
|
|
11
|
+
|
|
12
|
+
<p align="center">
|
|
13
|
+
<a href="README_ja.md">日本語</a> | English | <a href="README_zh.md">中文</a>
|
|
14
|
+
</p>
|
|
15
|
+
|
|
16
|
+
> Write only functional requirements and constraints. CoDD generates the code, repairs the coherence, and verifies the result.
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## 🌟 Why CoDD
|
|
21
|
+
|
|
22
|
+
> **"Write only functional requirements and constraints. Code is generated, repaired, and verified automatically."**
|
|
23
|
+
|
|
24
|
+
Most "AI-assisted dev" tools focus on the **generation** side. CoDD focuses on the **constraint** side: the LLM is most useful when it has a precise picture of what *must* be true. CoDD ties every artifact (requirements → design → lexicon → source → tests → runtime) into a single DAG, drives an LLM repair loop against it, and surfaces what is structurally unrepairable — honestly.
|
|
25
|
+
|
|
26
|
+
With an enabled artifact contract, `codd plan/generate/implement/verify` judge completion by the artifacts actually produced, not by the command merely returning — a harness-level mechanism that lets even a weaker model stay on the north star.
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## 🚀 Get started in 60 seconds
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
pip install codd-dev
|
|
34
|
+
|
|
35
|
+
# Greenfield: write requirements, walk away
|
|
36
|
+
codd greenfield --requirements docs/requirements/requirements.md
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
One command runs the whole unattended pipeline — init → elicit → plan → generate → implement → verify (auto-repair) → propagate → check — checkpointing after every unit (`codd greenfield --resume` picks up where it stopped, `--ntfy-topic` sends progress pings, `--dry-run` previews). The same pipeline ships as three vehicles so any setup can use it: a transparent shell composition ([examples/greenfield_autopilot.sh](examples/greenfield_autopilot.sh)), a Claude Code Agent Workflow template ([examples/claude_workflows/codd-greenfield.js](examples/claude_workflows/codd-greenfield.js)), and the `codd-greenfield` skill (`codd skills install codd-greenfield --target both` — works in Claude Code and Codex CLI).
|
|
40
|
+
|
|
41
|
+
Working inside an existing project instead:
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
codd init --suggest-lexicons --llm-enhanced # AI picks the lexicons that fit
|
|
45
|
+
codd elicit # AI finds gaps in your requirements
|
|
46
|
+
codd dag verify --auto-repair --max-attempts 10 # AI fixes coherence violations
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Already shipping? Describe what you want fixed:
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
codd fix "login error messages are hard to understand" # natural-language phenomenon mode
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
`codd fix [PHENOMENON]` is CoDD's second entry-point: state the desired change in plain words, CoDD locates the affected design docs via lexicon + semantic scoring and updates them with an LLM. From there the change flows **design → implementation → tests → verify**: Stage 4 deterministically resolves the affected implementation + test files from the DAG, makes an allowlist-confined LLM patch, and runs a verify gate (no new red DAG check + local tests pass) with targeted rollback (only files this run wrote are reverted) on failure. Opt out with `--no-propagate-impl`; add `--propagate` to also reconcile dependent design docs. `--dry-run` previews, `--non-interactive` runs in CI.
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## 🎨 Visual flow
|
|
60
|
+
|
|
61
|
+
```mermaid
|
|
62
|
+
flowchart LR
|
|
63
|
+
R["Requirements (.md)"] --> E["codd elicit"]
|
|
64
|
+
E -->|gap findings| H{HITL: approve / reject}
|
|
65
|
+
H -->|approve| L["project_lexicon.yaml + requirements TODOs"]
|
|
66
|
+
H -->|reject| I["ignored_findings.yaml"]
|
|
67
|
+
L --> V["codd dag verify --auto-repair"]
|
|
68
|
+
V -->|violation| AR["LLM patch propose → apply"]
|
|
69
|
+
AR --> V
|
|
70
|
+
V -->|SUCCESS| D["✅ deploy gate passes"]
|
|
71
|
+
AR -->|max attempts| P["PARTIAL_SUCCESS: unrepairable surfaced honestly"]
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
Brownfield path:
|
|
75
|
+
|
|
76
|
+
```mermaid
|
|
77
|
+
flowchart LR
|
|
78
|
+
Code["Existing codebase"] --> X["codd extract"]
|
|
79
|
+
X --> DIFF["codd diff (drift)"]
|
|
80
|
+
DIFF --> EL["codd elicit (coverage gaps)"]
|
|
81
|
+
EL --> H{HITL gate}
|
|
82
|
+
H --> Apply["codd elicit apply"]
|
|
83
|
+
Apply --> V["codd dag verify"]
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## ✨ What it does
|
|
89
|
+
|
|
90
|
+
CoDD is one CLI organised in four layers. Pick what you need; the rest stays out of your way.
|
|
91
|
+
|
|
92
|
+
### Core commands
|
|
93
|
+
|
|
94
|
+
| Command | One-line summary |
|
|
95
|
+
| --- | --- |
|
|
96
|
+
| 🚀 **`codd greenfield --requirements FILE`** | Unattended autopilot: requirements in, system out. All gates auto-approved, checkpoint/resume via `--resume`, ntfy notify-only. Its building blocks (`generate --all-waves`, `implement list-tasks`, `verify --repair-mode`) also work standalone. |
|
|
97
|
+
| 🎯 **`codd init --suggest-lexicons --llm-enhanced`** | LLM scans code/docs, picks the right lexicon plug-ins. |
|
|
98
|
+
| 🔍 **`codd elicit`** | Finds *specification holes* against industry-standard lexicons. |
|
|
99
|
+
| 🔄 **`codd diff`** | Detects drift between requirements and actual implementation. |
|
|
100
|
+
| 🛠️ **`codd dag verify --auto-repair`** | Validates the full DAG; LLM proposes patches; loop until SUCCESS or MAX_ATTEMPTS. |
|
|
101
|
+
| 🎯 **`codd fix`** / **`codd fix [PHENOMENON]`** | Two modes — auto-detect CI failures, or describe a desired change in natural language; phenomenon mode flows design → implementation → tests → verify (opt out via `--no-propagate-impl`). |
|
|
102
|
+
| 🧭 **`codd operations {derive,show,approve,apply}`** | Detects requirement units anchored to no declared operation, has the AI propose `operation_flow` entries, and writes a proposal for human review — nothing reaches `codd.yaml` until `approve` + `apply`. Opt-in, non-destructive. (Legacy `merge` still works as a deprecated alias of `apply`.) |
|
|
103
|
+
| 📜 **`codd contract {derive,show,apply,verify}`** | V-model artifact contract. `derive`/`apply` are requirement-driven selection of *which* catalog artifacts a project declares per stage (`derive` detects the project's signals — requirement docs, design docs, lexicon, declared `operation_flow`, source dirs, test/e2e suites — and writes a reviewable proposal, never touching `codd.yaml`; `apply` merges it non-destructively and idempotently, `--enable` to turn the gate on). `verify`/gate are the completion side: with the contract enabled, a stage can't claim completion until its declared artifacts are produced/validate. `show` renders the catalog + this project's contract. Opt-in; absent/disabled contract = no-op. (Legacy `suggest`/`adopt` still work as deprecated aliases.) |
|
|
104
|
+
| 🌐 **`codd brownfield`** | Extract → diff → elicit pipeline for existing codebases. |
|
|
105
|
+
|
|
106
|
+
### Quality gates
|
|
107
|
+
|
|
108
|
+
| Gate | Purpose |
|
|
109
|
+
| --- | --- |
|
|
110
|
+
| 🧪 **`codd verify --runtime`** | Step 8 runtime smoke (DB up + dev server reachable + smoke HTTP + real-browser E2E + opt-in CRUD reflection via `runtime.crud_flow_targets` + action outcome coverage via `runtime.action_outcome_targets`). `--runtime-skip` opts out per category and records the reason. |
|
|
111
|
+
| 📊 **`codd lexicon list/install/diff` + `codd coverage report`** | Plug-in management + JSON / Markdown / self-contained HTML coverage matrices. |
|
|
112
|
+
| 🛡️ **CI gate** | `.github/workflows/codd_coverage.yml` template + `codd coverage check` exit code blocks coverage regressions on merge. |
|
|
113
|
+
|
|
114
|
+
### Skills & backends
|
|
115
|
+
|
|
116
|
+
| Capability | What it gives you |
|
|
117
|
+
| --- | --- |
|
|
118
|
+
| 🔁 **`codd skills {install,list,remove}`** | Distributes bundled skills (e.g. `codd-evolve`) to `~/.claude/skills/` and `~/.agents/skills/`. `--target {claude,codex,both}`, `--mode {symlink,copy}`, idempotent + `--force`. |
|
|
119
|
+
| 🪡 **codd-evolve skill** | Brownfield conversational evolution. Walks requirements → design → lexicon → source → tests → verify → propagate → Step 8 runtime smoke from a single natural-language intent. Stop-and-ask gates for new lexicon terms, breaking changes, and 1:N UI topology. |
|
|
120
|
+
| ⚡ **Codex App Server backend** (v2.20.0) | Set `codex_app_server.enabled: true` in `codd.yaml` to route AI calls through a persistent JSON-RPC thread instead of subprocess. `thread_strategy: per_session` amortises codex cold-start across `codd implement` / `codd verify --auto-repair` / `codd fix`. Automatic `subprocess` fallback when the binary or socket is missing. |
|
|
121
|
+
|
|
122
|
+
### Lexicon plug-ins
|
|
123
|
+
|
|
124
|
+
38 industry-standard lexicons ship as opt-in coverage axes — Web (WCAG / OWASP / Web Vitals / WebAuthn / forms / SEO / PWA), Mobile (HIG / Material 3 / a11y / MASVS), Backend (REST / GraphQL / gRPC / events), Data (SQL / JSON Schema / event sourcing / governance), Ops (CI/CD / Kubernetes / Terraform / observability / DORA), Compliance (ISO 27001 / HIPAA / PCI DSS / GDPR / EU AI Act), Process (ISO 25010 / 29119 / DDD / 12-factor / i18n / model cards / API rate-limit), and Methodology (BABOK).
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
## 📊 Case study
|
|
129
|
+
|
|
130
|
+
Dogfooded against a Next.js + Prisma + PostgreSQL multi-tenant LMS (~30 design docs, 12 DB tables, RLS-enforced isolation): `codd init --suggest-lexicons` matched 9 of 10 manually-chosen lexicons, `codd elicit` surfaced 70 spec holes, `codd dag verify --auto-repair` drove 16 unrepairable violations down to **PASS or amber-WARN with deploy allowed** — without a single line of CoDD core change per project. Project-specific concerns live entirely in `project_lexicon.yaml` and `codd_plugins/`.
|
|
131
|
+
|
|
132
|
+
---
|
|
133
|
+
|
|
134
|
+
## 🧱 Generality Gate (three-layer architecture)
|
|
135
|
+
|
|
136
|
+
| Layer | Where stack-specific names live | Examples |
|
|
137
|
+
| --- | --- | --- |
|
|
138
|
+
| **A — Core** | **Nowhere.** Zero `react`, `django`, `Stripe`, `LMS` literals. | `codd/elicit/`, `codd/dag/`, `codd/lexicon_cli/` |
|
|
139
|
+
| **B — Templates** | Generic placeholders only. | `codd/templates/*.j2`, `codd/templates/lexicon_schema.yaml` |
|
|
140
|
+
| **C — Plug-ins** | Free to name anything. | `codd_plugins/lexicons/*/`, `codd_plugins/stack_map.yaml` |
|
|
141
|
+
|
|
142
|
+
This is what lets one core work for Next.js, Django, FastAPI, Rails, Go services, mobile apps, ML model cards — and lets contributors add a lexicon without touching the core.
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
## 🧭 Roadmap
|
|
147
|
+
|
|
148
|
+
Up next:
|
|
149
|
+
|
|
150
|
+
- App-Server-driven benchmark publication (P50 / P95 / P99 for subprocess vs JSON-RPC)
|
|
151
|
+
- Lexicon plug-in marketplace
|
|
152
|
+
|
|
153
|
+
Past releases (v2.11.0 → v2.20.0) live in [CHANGELOG.md](CHANGELOG.md) with quality metrics.
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
## 🤝 Contributing
|
|
158
|
+
|
|
159
|
+
CoDD is shaped by:
|
|
160
|
+
|
|
161
|
+
- **[@yohey-w](https://github.com/yohey-w)** — Maintainer / Architect
|
|
162
|
+
- **[@Seika86](https://github.com/Seika86)** — Sprint regex insight (PR #11)
|
|
163
|
+
- **[@v-kato](https://github.com/v-kato)** — Brownfield reproduction reports (Issues #17 / #18 / #19 / #20 / #21 / #22)
|
|
164
|
+
- **[@dev-komenzar](https://github.com/dev-komenzar)** — `source_dirs` bug reproduction (Issue #13)
|
|
165
|
+
|
|
166
|
+
Issues, PRs, and lexicon proposals are welcome — see [Issues](https://github.com/yohey-w/codd-dev/issues).
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
## 📚 Documentation
|
|
171
|
+
|
|
172
|
+
- [CHANGELOG.md](CHANGELOG.md) — every release with quality metrics
|
|
173
|
+
- [docs/](docs/) — architecture notes
|
|
174
|
+
- `codd --help` — full CLI reference
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
## 📦 Hook Integration
|
|
179
|
+
|
|
180
|
+
CoDD ships hook recipes for editor and Git workflows:
|
|
181
|
+
|
|
182
|
+
- Claude Code `PostToolUse` hook recipe for running CoDD checks after file edits
|
|
183
|
+
- Claude Code requirements-nudge recipe (`claude_requirements_nudge.json`) — prints an advisory "requirements changed → run `codd greenfield --resume` or `codd check`" when files under `docs/requirements/` are edited (print-only; never auto-runs expensive pipelines)
|
|
184
|
+
- Git `pre-commit` hook recipe for blocking commits when coherence checks fail
|
|
185
|
+
|
|
186
|
+
Recipes live under `codd/hooks/recipes/`.
|
|
187
|
+
|
|
188
|
+
---
|
|
189
|
+
|
|
190
|
+
## License
|
|
191
|
+
|
|
192
|
+
MIT — see [LICENSE](LICENSE).
|
|
193
|
+
|
|
194
|
+
## Links
|
|
195
|
+
|
|
196
|
+
- [PyPI](https://pypi.org/project/codd-dev/)
|
|
197
|
+
- [GitHub Sponsors](https://github.com/sponsors/yohey-w) — support development
|
|
198
|
+
- [Issues](https://github.com/yohey-w/codd-dev/issues)
|
|
199
|
+
|
|
200
|
+
---
|
|
201
|
+
|
|
202
|
+
> When code changes, CoDD traces the impact, detects violations, and produces evidence for merge decisions.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# bench_fixture (cmd_364)
|
|
2
|
+
|
|
3
|
+
cmd_364 で行った "direct AiCommand benchmark" の作業ディレクトリプレースホルダ。
|
|
4
|
+
|
|
5
|
+
`scripts/bench_app_server_direct.py` は `--project-root` を `AiCommand`
|
|
6
|
+
インスタンスに渡すが、本 fixture は **コード生成を伴わない** ため
|
|
7
|
+
ファイル内容は不要。ディレクトリの存在だけが重要 (`SubprocessAiCommand`
|
|
8
|
+
が `cwd` に使う)。
|
|
9
|
+
|
|
10
|
+
再現:
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
python3 scripts/bench_app_server_direct.py \
|
|
14
|
+
--backend both \
|
|
15
|
+
--concurrency 1,10,30 \
|
|
16
|
+
--invocations 30 \
|
|
17
|
+
--turns-per-invocation 3 \
|
|
18
|
+
--output scripts/cmd_364_results.jsonl
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
詳細結果: `/home/tono/multi-agent-shogun/reports/cmd_364_codex_app_server_benchmark_v2.md`
|
|
@@ -13,6 +13,10 @@ def _diff_files(base_ref: str, *, cwd: Path, paths: list[str] | None = None) ->
|
|
|
13
13
|
"-c",
|
|
14
14
|
"core.quotePath=false",
|
|
15
15
|
"diff",
|
|
16
|
+
# ``--relative`` makes paths (and any pathspec) project-root-relative
|
|
17
|
+
# when ``cwd`` is a git-repo subdir (monorepo), aligning with DAG/scanner
|
|
18
|
+
# node ids so ``require_propagate``'s consumer lines up; no-op at repo root.
|
|
19
|
+
"--relative",
|
|
16
20
|
"--unified=200",
|
|
17
21
|
base_ref,
|
|
18
22
|
]
|