atdd 0.4.4__tar.gz → 0.4.5__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.
- {atdd-0.4.4/src/atdd.egg-info → atdd-0.4.5}/PKG-INFO +13 -5
- {atdd-0.4.4 → atdd-0.4.5}/README.md +12 -4
- {atdd-0.4.4 → atdd-0.4.5}/pyproject.toml +1 -1
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coach/templates/SESSION-TEMPLATE.md +1 -1
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coach/validators/test_release_versioning.py +13 -1
- {atdd-0.4.4 → atdd-0.4.5/src/atdd.egg-info}/PKG-INFO +13 -5
- {atdd-0.4.4 → atdd-0.4.5}/LICENSE +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/setup.cfg +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/__init__.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/__main__.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/cli.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coach/__init__.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coach/commands/__init__.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coach/commands/add_persistence_metadata.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coach/commands/analyze_migrations.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coach/commands/consumers.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coach/commands/gate.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coach/commands/infer_governance_status.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coach/commands/initializer.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coach/commands/interface.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coach/commands/inventory.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coach/commands/migration.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coach/commands/registry.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coach/commands/session.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coach/commands/sync.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coach/commands/test_interface.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coach/commands/test_runner.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coach/commands/tests/__init__.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coach/commands/tests/test_telemetry_array_validation.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coach/commands/traceability.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coach/conventions/session.convention.yaml +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coach/overlays/__init__.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coach/overlays/claude.md +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coach/schemas/config.schema.json +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coach/schemas/manifest.schema.json +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coach/templates/ATDD.md +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coach/utils/__init__.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coach/utils/graph/__init__.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coach/utils/graph/urn.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coach/utils/repo.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coach/validators/__init__.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coach/validators/shared_fixtures.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coach/validators/test_enrich_wagon_registry.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coach/validators/test_registry.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coach/validators/test_session_validation.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coach/validators/test_traceability.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coach/validators/test_update_feature_paths.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coach/validators/test_validate_contract_consumers.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coder/__init__.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coder/conventions/adapter.recipe.yaml +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coder/conventions/backend.convention.yaml +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coder/conventions/boundaries.convention.yaml +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coder/conventions/commons.convention.yaml +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coder/conventions/complexity.recipe.yaml +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coder/conventions/component-naming.convention.yaml +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coder/conventions/design.convention.yaml +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coder/conventions/design.recipe.yaml +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coder/conventions/dto.convention.yaml +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coder/conventions/frontend.convention.yaml +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coder/conventions/green.convention.yaml +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coder/conventions/presentation.convention.yaml +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coder/conventions/refactor.convention.yaml +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coder/conventions/technology.convention.yaml +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coder/conventions/tests/__init__.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coder/conventions/tests/test_adapter_recipe.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coder/conventions/tests/test_complexity_recipe.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coder/conventions/tests/test_component_taxonomy.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coder/conventions/tests/test_component_urn_naming.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coder/conventions/tests/test_thinness_recipe.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coder/conventions/thinness.recipe.yaml +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coder/conventions/train.convention.yaml +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coder/conventions/verification.protocol.yaml +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coder/schemas/design_system.schema.json +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coder/validators/__init__.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coder/validators/test_commons_structure.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coder/validators/test_complexity.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coder/validators/test_cross_language_consistency.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coder/validators/test_design_system_compliance.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coder/validators/test_dto_testing_patterns.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coder/validators/test_green_cross_stack_layers.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coder/validators/test_green_layer_dependencies.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coder/validators/test_green_python_layer_structure.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coder/validators/test_green_supabase_layer_structure.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coder/validators/test_import_boundaries.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coder/validators/test_init_file_urns.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coder/validators/test_preact_layer_boundaries.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coder/validators/test_presentation_convention.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coder/validators/test_python_architecture.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coder/validators/test_quality_metrics.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coder/validators/test_station_master_pattern.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coder/validators/test_train_infrastructure.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coder/validators/test_train_urns.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coder/validators/test_typescript_architecture.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coder/validators/test_usecase_structure.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/coder/validators/test_wagon_boundaries.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/conftest.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/planner/__init__.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/planner/conventions/acceptance.convention.yaml +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/planner/conventions/appendix.convention.yaml +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/planner/conventions/artifact-naming.convention.yaml +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/planner/conventions/component.convention.yaml +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/planner/conventions/criteria.convention.yaml +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/planner/conventions/feature.convention.yaml +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/planner/conventions/interface.convention.yaml +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/planner/conventions/steps.convention.yaml +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/planner/conventions/train.convention.yaml +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/planner/conventions/wagon.convention.yaml +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/planner/conventions/wmbt.convention.yaml +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/planner/schemas/acceptance.schema.json +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/planner/schemas/appendix.schema.json +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/planner/schemas/component.schema.json +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/planner/schemas/feature.schema.json +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/planner/schemas/train.schema.json +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/planner/schemas/wagon.schema.json +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/planner/schemas/wmbt.schema.json +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/planner/validators/__init__.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/planner/validators/conftest.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/planner/validators/test_draft_wagon_registry.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/planner/validators/test_plan_cross_refs.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/planner/validators/test_plan_uniqueness.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/planner/validators/test_plan_urn_resolution.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/planner/validators/test_plan_wagons.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/planner/validators/test_train_validation.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/planner/validators/test_wagon_urn_chain.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/planner/validators/test_wmbt_consistency.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/planner/validators/test_wmbt_vocabulary.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/tester/__init__.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/tester/conventions/artifact.convention.yaml +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/tester/conventions/contract.convention.yaml +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/tester/conventions/filename.convention.yaml +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/tester/conventions/migration.convention.yaml +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/tester/conventions/red.convention.yaml +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/tester/conventions/routing.convention.yaml +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/tester/conventions/security.convention.yaml +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/tester/conventions/telemetry.convention.yaml +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/tester/schemas/a11y.tmpl.json +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/tester/schemas/artifact.schema.json +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/tester/schemas/contract.schema.json +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/tester/schemas/contract.tmpl.json +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/tester/schemas/db.tmpl.json +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/tester/schemas/e2e.tmpl.json +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/tester/schemas/edge_function.tmpl.json +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/tester/schemas/event.tmpl.json +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/tester/schemas/http.tmpl.json +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/tester/schemas/job.tmpl.json +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/tester/schemas/load.tmpl.json +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/tester/schemas/metric.tmpl.json +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/tester/schemas/pack.schema.json +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/tester/schemas/realtime.tmpl.json +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/tester/schemas/rls.tmpl.json +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/tester/schemas/script.tmpl.json +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/tester/schemas/sec.tmpl.json +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/tester/schemas/storage.tmpl.json +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/tester/schemas/telemetry.schema.json +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/tester/schemas/telemetry_tracking_manifest.schema.json +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/tester/schemas/test_filename.schema.json +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/tester/schemas/test_intent.schema.json +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/tester/schemas/unit.tmpl.json +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/tester/schemas/visual.tmpl.json +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/tester/schemas/ws.tmpl.json +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/tester/utils/__init__.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/tester/utils/filename.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/tester/validators/__init__.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/tester/validators/cleanup_duplicate_headers.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/tester/validators/cleanup_duplicate_headers_v2.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/tester/validators/conftest.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/tester/validators/coverage_gap_report.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/tester/validators/fix_dual_ac_references.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/tester/validators/remove_duplicate_lines.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/tester/validators/test_acceptance_urn_filename_mapping.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/tester/validators/test_acceptance_urn_separator.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/tester/validators/test_artifact_naming_category.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/tester/validators/test_contract_schema_compliance.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/tester/validators/test_contract_security.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/tester/validators/test_contracts_structure.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/tester/validators/test_coverage_adequacy.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/tester/validators/test_dual_ac_reference.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/tester/validators/test_fixture_validity.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/tester/validators/test_isolation.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/tester/validators/test_migration_coverage.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/tester/validators/test_migration_criteria.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/tester/validators/test_migration_generation.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/tester/validators/test_python_test_naming.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/tester/validators/test_red_layer_validation.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/tester/validators/test_red_python_layer_structure.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/tester/validators/test_red_supabase_layer_structure.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/tester/validators/test_telemetry_structure.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/tester/validators/test_typescript_test_naming.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/tester/validators/test_typescript_test_structure.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd/version_check.py +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd.egg-info/SOURCES.txt +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd.egg-info/dependency_links.txt +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd.egg-info/entry_points.txt +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd.egg-info/requires.txt +0 -0
- {atdd-0.4.4 → atdd-0.4.5}/src/atdd.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: atdd
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.5
|
|
4
4
|
Summary: ATDD Platform - Acceptance Test Driven Development toolkit
|
|
5
5
|
License: MIT
|
|
6
6
|
Requires-Python: >=3.10
|
|
@@ -58,14 +58,20 @@ atdd --help
|
|
|
58
58
|
```bash
|
|
59
59
|
atdd init # Initialize ATDD in your project
|
|
60
60
|
atdd gate # ⚠️ START EVERY SESSION WITH THIS
|
|
61
|
-
atdd session new <
|
|
61
|
+
atdd session new <task> # Create a planning session
|
|
62
62
|
atdd sync # Sync rules to agent config files
|
|
63
63
|
atdd validate # Run all validators
|
|
64
64
|
```
|
|
65
65
|
|
|
66
66
|
> **⚠️ `atdd gate` is required.**
|
|
67
67
|
> 🤖 Tell your agent: "Run `atdd gate` and follow ATDD rigorously."
|
|
68
|
-
> Agents skip instruction files but can't ignore tool
|
|
68
|
+
> Agents skip instruction files but can't ignore tool ou
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
tput. No gate = no ATDD guarantees.
|
|
69
75
|
|
|
70
76
|
## What It Does
|
|
71
77
|
|
|
@@ -232,14 +238,16 @@ atdd validate --html # With HTML report
|
|
|
232
238
|
|
|
233
239
|
### Release Versioning
|
|
234
240
|
|
|
235
|
-
ATDD enforces release versioning via coach validators. Configure the version file and tag prefix in `.atdd/config.yaml`:
|
|
241
|
+
ATDD enforces release versioning via coach validators. Recommended: keep a single root `VERSION` file as the canonical source (first line like `1.2.3 - short summary`; trailing summary is ignored). Configure the version file and tag prefix in `.atdd/config.yaml`:
|
|
236
242
|
|
|
237
243
|
```yaml
|
|
238
244
|
release:
|
|
239
|
-
version_file: "
|
|
245
|
+
version_file: "VERSION" # recommended single source of truth
|
|
240
246
|
tag_prefix: "v"
|
|
241
247
|
```
|
|
242
248
|
|
|
249
|
+
If you also publish with language-specific manifests (e.g., `pyproject.toml`, `package.json`), keep their version fields in sync with `VERSION`.
|
|
250
|
+
|
|
243
251
|
Validation (`atdd validate coach` or `atdd validate`) requires:
|
|
244
252
|
- Version file exists and contains a version
|
|
245
253
|
- Git tag on HEAD matches `{tag_prefix}{version}`
|
|
@@ -44,14 +44,20 @@ atdd --help
|
|
|
44
44
|
```bash
|
|
45
45
|
atdd init # Initialize ATDD in your project
|
|
46
46
|
atdd gate # ⚠️ START EVERY SESSION WITH THIS
|
|
47
|
-
atdd session new <
|
|
47
|
+
atdd session new <task> # Create a planning session
|
|
48
48
|
atdd sync # Sync rules to agent config files
|
|
49
49
|
atdd validate # Run all validators
|
|
50
50
|
```
|
|
51
51
|
|
|
52
52
|
> **⚠️ `atdd gate` is required.**
|
|
53
53
|
> 🤖 Tell your agent: "Run `atdd gate` and follow ATDD rigorously."
|
|
54
|
-
> Agents skip instruction files but can't ignore tool
|
|
54
|
+
> Agents skip instruction files but can't ignore tool ou
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
tput. No gate = no ATDD guarantees.
|
|
55
61
|
|
|
56
62
|
## What It Does
|
|
57
63
|
|
|
@@ -218,14 +224,16 @@ atdd validate --html # With HTML report
|
|
|
218
224
|
|
|
219
225
|
### Release Versioning
|
|
220
226
|
|
|
221
|
-
ATDD enforces release versioning via coach validators. Configure the version file and tag prefix in `.atdd/config.yaml`:
|
|
227
|
+
ATDD enforces release versioning via coach validators. Recommended: keep a single root `VERSION` file as the canonical source (first line like `1.2.3 - short summary`; trailing summary is ignored). Configure the version file and tag prefix in `.atdd/config.yaml`:
|
|
222
228
|
|
|
223
229
|
```yaml
|
|
224
230
|
release:
|
|
225
|
-
version_file: "
|
|
231
|
+
version_file: "VERSION" # recommended single source of truth
|
|
226
232
|
tag_prefix: "v"
|
|
227
233
|
```
|
|
228
234
|
|
|
235
|
+
If you also publish with language-specific manifests (e.g., `pyproject.toml`, `package.json`), keep their version fields in sync with `VERSION`.
|
|
236
|
+
|
|
229
237
|
Validation (`atdd validate coach` or `atdd validate`) requires:
|
|
230
238
|
- Version file exists and contains a version
|
|
231
239
|
- Git tag on HEAD matches `{tag_prefix}{version}`
|
|
@@ -348,7 +348,7 @@ Rules:
|
|
|
348
348
|
-->
|
|
349
349
|
|
|
350
350
|
- [ ] Determine change class: PATCH / MINOR / MAJOR
|
|
351
|
-
- [ ] Bump version in version file (
|
|
351
|
+
- [ ] Bump version in version file (recommended: VERSION; sync any language manifests if used)
|
|
352
352
|
- [ ] Commit: "Bump version to {version}"
|
|
353
353
|
- [ ] Create tag: `git tag v{version}`
|
|
354
354
|
- [ ] Push with tags: `git push origin {branch} --tags`
|
|
@@ -62,6 +62,12 @@ def _read_version_from_file(path: Path) -> str:
|
|
|
62
62
|
version = _parse_package_json_version(path)
|
|
63
63
|
else:
|
|
64
64
|
version = _parse_plain_version(path)
|
|
65
|
+
if not version:
|
|
66
|
+
pytest.fail(
|
|
67
|
+
f"Could not read version from {path}. "
|
|
68
|
+
"Expected first non-comment line to contain a semver like "
|
|
69
|
+
"'1.2.3' or '1.2.3 - short summary'."
|
|
70
|
+
)
|
|
65
71
|
|
|
66
72
|
if not version:
|
|
67
73
|
pytest.fail(f"Could not read version from {path}")
|
|
@@ -127,11 +133,17 @@ def _parse_package_json_version(path: Path) -> Optional[str]:
|
|
|
127
133
|
|
|
128
134
|
|
|
129
135
|
def _parse_plain_version(path: Path) -> Optional[str]:
|
|
136
|
+
version_pattern = re.compile(
|
|
137
|
+
r"\bv?(?P<version>\d+\.\d+(?:\.\d+)?(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?)\b"
|
|
138
|
+
)
|
|
130
139
|
for line in path.read_text().splitlines():
|
|
131
140
|
stripped = line.strip()
|
|
132
141
|
if not stripped or stripped.startswith("#"):
|
|
133
142
|
continue
|
|
134
|
-
|
|
143
|
+
match = version_pattern.search(stripped)
|
|
144
|
+
if match:
|
|
145
|
+
return match.group("version")
|
|
146
|
+
return None
|
|
135
147
|
return None
|
|
136
148
|
|
|
137
149
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: atdd
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.5
|
|
4
4
|
Summary: ATDD Platform - Acceptance Test Driven Development toolkit
|
|
5
5
|
License: MIT
|
|
6
6
|
Requires-Python: >=3.10
|
|
@@ -58,14 +58,20 @@ atdd --help
|
|
|
58
58
|
```bash
|
|
59
59
|
atdd init # Initialize ATDD in your project
|
|
60
60
|
atdd gate # ⚠️ START EVERY SESSION WITH THIS
|
|
61
|
-
atdd session new <
|
|
61
|
+
atdd session new <task> # Create a planning session
|
|
62
62
|
atdd sync # Sync rules to agent config files
|
|
63
63
|
atdd validate # Run all validators
|
|
64
64
|
```
|
|
65
65
|
|
|
66
66
|
> **⚠️ `atdd gate` is required.**
|
|
67
67
|
> 🤖 Tell your agent: "Run `atdd gate` and follow ATDD rigorously."
|
|
68
|
-
> Agents skip instruction files but can't ignore tool
|
|
68
|
+
> Agents skip instruction files but can't ignore tool ou
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
tput. No gate = no ATDD guarantees.
|
|
69
75
|
|
|
70
76
|
## What It Does
|
|
71
77
|
|
|
@@ -232,14 +238,16 @@ atdd validate --html # With HTML report
|
|
|
232
238
|
|
|
233
239
|
### Release Versioning
|
|
234
240
|
|
|
235
|
-
ATDD enforces release versioning via coach validators. Configure the version file and tag prefix in `.atdd/config.yaml`:
|
|
241
|
+
ATDD enforces release versioning via coach validators. Recommended: keep a single root `VERSION` file as the canonical source (first line like `1.2.3 - short summary`; trailing summary is ignored). Configure the version file and tag prefix in `.atdd/config.yaml`:
|
|
236
242
|
|
|
237
243
|
```yaml
|
|
238
244
|
release:
|
|
239
|
-
version_file: "
|
|
245
|
+
version_file: "VERSION" # recommended single source of truth
|
|
240
246
|
tag_prefix: "v"
|
|
241
247
|
```
|
|
242
248
|
|
|
249
|
+
If you also publish with language-specific manifests (e.g., `pyproject.toml`, `package.json`), keep their version fields in sync with `VERSION`.
|
|
250
|
+
|
|
243
251
|
Validation (`atdd validate coach` or `atdd validate`) requires:
|
|
244
252
|
- Version file exists and contains a version
|
|
245
253
|
- Git tag on HEAD matches `{tag_prefix}{version}`
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{atdd-0.4.4 → atdd-0.4.5}/src/atdd/tester/validators/test_acceptance_urn_filename_mapping.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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
|