specfact-cli 0.37.3__tar.gz → 0.37.4__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.
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/PKG-INFO +1 -1
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/pyproject.toml +1 -1
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/__init__.py +1 -1
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/backlog/module-package.yaml +3 -3
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/backlog/src/commands.py +33 -6
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/module_registry/module-package.yaml +3 -3
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/module_registry/src/commands.py +3 -2
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/registry/marketplace_client.py +1 -1
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/registry/module_discovery.py +30 -11
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/registry/module_installer.py +3 -3
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/registry/module_lifecycle.py +21 -18
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/registry/module_packages.py +3 -3
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/.gitignore +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/LICENSE +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/README.md +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/resources/keys/README.md +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/resources/keys/module-signing-public.pem +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/resources/mappings/node-async.yaml +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/resources/mappings/python-async.yaml +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/resources/mappings/speckit-default.yaml +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/resources/prompts/shared/cli-enforcement.md +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/resources/prompts/specfact.01-import.md +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/resources/prompts/specfact.02-plan.md +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/resources/prompts/specfact.03-review.md +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/resources/prompts/specfact.04-sdd.md +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/resources/prompts/specfact.05-enforce.md +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/resources/prompts/specfact.06-sync.md +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/resources/prompts/specfact.07-contracts.md +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/resources/prompts/specfact.backlog-add.md +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/resources/prompts/specfact.backlog-daily.md +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/resources/prompts/specfact.backlog-refine.md +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/resources/prompts/specfact.compare.md +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/resources/prompts/specfact.sync-backlog.md +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/resources/prompts/specfact.validate.md +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/resources/schemas/deviation.schema.json +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/resources/schemas/plan.schema.json +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/resources/schemas/protocol.schema.json +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/resources/templates/backlog/defaults/defect_v1.yaml +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/resources/templates/backlog/defaults/enabler_v1.yaml +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/resources/templates/backlog/defaults/spike_v1.yaml +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/resources/templates/backlog/defaults/user_story_v1.yaml +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/resources/templates/backlog/field_mappings/ado_agile.yaml +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/resources/templates/backlog/field_mappings/ado_default.yaml +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/resources/templates/backlog/field_mappings/ado_kanban.yaml +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/resources/templates/backlog/field_mappings/ado_safe.yaml +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/resources/templates/backlog/field_mappings/ado_scrum.yaml +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/resources/templates/backlog/frameworks/safe/safe_feature_v1.yaml +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/resources/templates/backlog/frameworks/scrum/user_story_v1.yaml +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/resources/templates/backlog/personas/developer/developer_task_v1.yaml +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/resources/templates/backlog/personas/product-owner/user_story_v1.yaml +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/resources/templates/backlog/providers/ado/work_item_v1.yaml +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/resources/templates/github-action.yml.j2 +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/resources/templates/persona/architect.md.j2 +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/resources/templates/persona/developer.md.j2 +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/resources/templates/persona/product-owner.md.j2 +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/resources/templates/plan.bundle.yaml.j2 +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/resources/templates/policies/kanban.yaml +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/resources/templates/policies/mixed.yaml +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/resources/templates/policies/safe.yaml +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/resources/templates/policies/scrum.yaml +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/resources/templates/pr-template.md.j2 +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/resources/templates/protocol.yaml.j2 +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/resources/templates/telemetry.yaml.example +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/__init__.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/__main__.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/adapters/__init__.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/adapters/ado.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/adapters/backlog_base.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/adapters/base.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/adapters/github.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/adapters/openspec.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/adapters/openspec_parser.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/adapters/registry.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/adapters/speckit.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/agents/__init__.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/agents/analyze_agent.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/agents/base.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/agents/plan_agent.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/agents/registry.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/agents/sync_agent.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/analyzers/__init__.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/analyzers/ambiguity_scanner.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/analyzers/code_analyzer.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/analyzers/constitution_evidence_extractor.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/analyzers/contract_extractor.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/analyzers/control_flow_analyzer.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/analyzers/graph_analyzer.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/analyzers/relationship_mapper.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/analyzers/requirement_extractor.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/analyzers/test_pattern_extractor.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/backlog/__init__.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/backlog/adapters/__init__.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/backlog/adapters/base.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/backlog/adapters/local_yaml_adapter.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/backlog/ai_refiner.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/backlog/converter.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/backlog/filters.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/backlog/format_detector.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/backlog/formats/__init__.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/backlog/formats/base.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/backlog/formats/markdown_format.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/backlog/formats/structured_format.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/backlog/mappers/__init__.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/backlog/mappers/ado_mapper.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/backlog/mappers/base.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/backlog/mappers/github_mapper.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/backlog/mappers/template_config.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/backlog/template_detector.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/cli.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/commands/__init__.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/commands/analyze.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/commands/auth.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/commands/backlog_commands.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/commands/contract_cmd.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/commands/drift.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/commands/enforce.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/commands/generate.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/commands/import_cmd.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/commands/init.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/commands/migrate.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/commands/plan.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/commands/project_cmd.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/commands/repro.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/commands/sdd.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/commands/spec.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/commands/sync.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/commands/update.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/commands/validate.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/common/__init__.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/common/logger_setup.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/common/logging_utils.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/common/text_utils.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/common/utils.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/comparators/__init__.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/comparators/plan_comparator.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/contracts/__init__.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/contracts/crosshair_props.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/contracts/module_interface.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/enrichers/constitution_enricher.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/enrichers/plan_enricher.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/generators/__init__.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/generators/contract_generator.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/generators/openapi_extractor.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/generators/persona_exporter.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/generators/plan_generator.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/generators/protocol_generator.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/generators/report_generator.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/generators/task_generator.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/generators/test_to_openapi.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/generators/workflow_generator.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/importers/__init__.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/importers/speckit_converter.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/importers/speckit_scanner.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/integrations/__init__.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/integrations/specmatic.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/merge/__init__.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/merge/resolver.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/migrations/__init__.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/migrations/plan_migrator.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/models/__init__.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/models/backlog_item.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/models/bridge.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/models/capabilities.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/models/change.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/models/contract.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/models/deviation.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/models/dor_config.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/models/enforcement.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/models/module_package.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/models/persona_template.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/models/plan.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/models/project.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/models/protocol.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/models/quality.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/models/sdd.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/models/source_tracking.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/models/task.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/models/validation.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modes/__init__.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modes/detector.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modes/router.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/__init__.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/analyze/module-package.yaml +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/analyze/src/__init__.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/analyze/src/app.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/analyze/src/commands.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/auth/module-package.yaml +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/auth/src/__init__.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/auth/src/app.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/auth/src/commands.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/backlog/src/__init__.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/backlog/src/adapters/__init__.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/backlog/src/adapters/ado.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/backlog/src/adapters/base.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/backlog/src/adapters/github.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/backlog/src/adapters/jira.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/backlog/src/adapters/linear.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/backlog/src/app.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/contract/module-package.yaml +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/contract/src/__init__.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/contract/src/app.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/contract/src/commands.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/drift/module-package.yaml +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/drift/src/__init__.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/drift/src/app.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/drift/src/commands.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/enforce/module-package.yaml +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/enforce/src/__init__.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/enforce/src/app.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/enforce/src/commands.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/generate/module-package.yaml +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/generate/src/__init__.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/generate/src/app.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/generate/src/commands.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/import_cmd/module-package.yaml +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/import_cmd/src/__init__.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/import_cmd/src/app.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/import_cmd/src/commands.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/init/module-package.yaml +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/init/src/__init__.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/init/src/app.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/init/src/commands.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/migrate/module-package.yaml +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/migrate/src/__init__.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/migrate/src/app.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/migrate/src/commands.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/module_io_shim.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/module_registry/src/__init__.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/module_registry/src/app.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/patch_mode/module-package.yaml +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/patch_mode/src/app.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/patch_mode/src/commands.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/patch_mode/src/patch_mode/__init__.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/patch_mode/src/patch_mode/commands/__init__.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/patch_mode/src/patch_mode/commands/apply.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/patch_mode/src/patch_mode/pipeline/__init__.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/patch_mode/src/patch_mode/pipeline/applier.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/patch_mode/src/patch_mode/pipeline/generator.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/patch_mode/src/patch_mode/pipeline/idempotency.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/plan/module-package.yaml +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/plan/src/__init__.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/plan/src/app.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/plan/src/commands.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/policy_engine/module-package.yaml +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/policy_engine/src/app.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/policy_engine/src/commands.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/policy_engine/src/policy_engine/__init__.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/policy_engine/src/policy_engine/config/__init__.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/policy_engine/src/policy_engine/config/policy_config.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/policy_engine/src/policy_engine/config/templates.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/policy_engine/src/policy_engine/engine/__init__.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/policy_engine/src/policy_engine/engine/suggester.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/policy_engine/src/policy_engine/engine/validator.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/policy_engine/src/policy_engine/main.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/policy_engine/src/policy_engine/models/__init__.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/policy_engine/src/policy_engine/models/policy_result.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/policy_engine/src/policy_engine/policies/__init__.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/policy_engine/src/policy_engine/policies/kanban.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/policy_engine/src/policy_engine/policies/safe.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/policy_engine/src/policy_engine/policies/scrum.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/policy_engine/src/policy_engine/registry/__init__.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/policy_engine/src/policy_engine/registry/policy_registry.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/project/module-package.yaml +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/project/src/__init__.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/project/src/app.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/project/src/commands.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/repro/module-package.yaml +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/repro/src/__init__.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/repro/src/app.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/repro/src/commands.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/sdd/module-package.yaml +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/sdd/src/__init__.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/sdd/src/app.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/sdd/src/commands.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/spec/module-package.yaml +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/spec/src/__init__.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/spec/src/app.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/spec/src/commands.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/sync/module-package.yaml +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/sync/src/__init__.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/sync/src/app.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/sync/src/commands.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/upgrade/module-package.yaml +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/upgrade/src/__init__.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/upgrade/src/app.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/upgrade/src/commands.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/validate/module-package.yaml +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/validate/src/__init__.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/validate/src/app.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/validate/src/commands.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/parsers/__init__.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/parsers/persona_importer.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/registry/__init__.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/registry/bootstrap.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/registry/bridge_registry.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/registry/crypto_validator.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/registry/extension_registry.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/registry/help_cache.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/registry/metadata.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/registry/module_security.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/registry/module_state.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/registry/registry.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/resources/semgrep/async.yml +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/resources/semgrep/code-quality.yml +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/resources/semgrep/feature-detection.yml +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/runtime.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/sync/__init__.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/sync/bridge_probe.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/sync/bridge_sync.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/sync/bridge_watch.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/sync/change_detector.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/sync/code_to_spec.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/sync/drift_detector.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/sync/repository_sync.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/sync/spec_to_code.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/sync/spec_to_tests.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/sync/watcher.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/sync/watcher_enhanced.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/telemetry.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/templates/__init__.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/templates/bridge_templates.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/templates/defaults/defect_v1.yaml +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/templates/defaults/enabler_v1.yaml +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/templates/defaults/spike_v1.yaml +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/templates/defaults/user_story_v1.yaml +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/templates/frameworks/scrum/user_story_v1.yaml +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/templates/personas/product-owner/user_story_v1.yaml +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/templates/providers/ado/work_item_v1.yaml +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/templates/registry.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/templates/specification_templates.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/utils/__init__.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/utils/acceptance_criteria.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/utils/auth_tokens.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/utils/bundle_converters.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/utils/bundle_loader.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/utils/code_change_detector.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/utils/console.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/utils/content_sanitizer.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/utils/context_detection.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/utils/enrichment_context.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/utils/enrichment_parser.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/utils/env_manager.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/utils/feature_keys.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/utils/git.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/utils/github_annotations.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/utils/ide_setup.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/utils/incremental_check.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/utils/metadata.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/utils/optional_deps.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/utils/performance.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/utils/persona_ownership.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/utils/progress.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/utils/progressive_disclosure.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/utils/prompts.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/utils/sdd_discovery.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/utils/source_scanner.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/utils/startup_checks.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/utils/structure.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/utils/structured_io.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/utils/suggestions.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/utils/terminal.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/utils/yaml_utils.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/validators/__init__.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/validators/agile_validation.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/validators/change_proposal_integration.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/validators/cli_first_validator.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/validators/contract_validator.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/validators/fsm.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/validators/repro_checker.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/validators/schema.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/validators/sidecar/__init__.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/validators/sidecar/contract_populator.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/validators/sidecar/crosshair_runner.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/validators/sidecar/crosshair_summary.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/validators/sidecar/dependency_installer.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/validators/sidecar/framework_detector.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/validators/sidecar/frameworks/__init__.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/validators/sidecar/frameworks/base.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/validators/sidecar/frameworks/django.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/validators/sidecar/frameworks/drf.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/validators/sidecar/frameworks/fastapi.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/validators/sidecar/frameworks/flask.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/validators/sidecar/harness_generator.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/validators/sidecar/models.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/validators/sidecar/orchestrator.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/validators/sidecar/specmatic_runner.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/validators/sidecar/unannotated_detector.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/versioning/__init__.py +0 -0
- {specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/versioning/analyzer.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: specfact-cli
|
|
3
|
-
Version: 0.37.
|
|
3
|
+
Version: 0.37.4
|
|
4
4
|
Summary: The swiss knife CLI for agile DevOps teams. Keep backlog, specs, tests, and code in sync with validation and contract enforcement for new projects and long-lived codebases.
|
|
5
5
|
Project-URL: Homepage, https://github.com/nold-ai/specfact-cli
|
|
6
6
|
Project-URL: Repository, https://github.com/nold-ai/specfact-cli.git
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "specfact-cli"
|
|
7
|
-
version = "0.37.
|
|
7
|
+
version = "0.37.4"
|
|
8
8
|
description = "The swiss knife CLI for agile DevOps teams. Keep backlog, specs, tests, and code in sync with validation and contract enforcement for new projects and long-lived codebases."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.11"
|
{specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/backlog/module-package.yaml
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
name: backlog
|
|
2
|
-
version: 0.1.
|
|
2
|
+
version: 0.1.2
|
|
3
3
|
commands:
|
|
4
4
|
- backlog
|
|
5
5
|
command_help:
|
|
@@ -28,5 +28,5 @@ publisher:
|
|
|
28
28
|
description: Manage backlog ceremonies, refinement, and dependency insights.
|
|
29
29
|
license: Apache-2.0
|
|
30
30
|
integrity:
|
|
31
|
-
checksum: sha256:
|
|
32
|
-
signature:
|
|
31
|
+
checksum: sha256:ef3febe90c62fa24b3da6b6b2f8a7b605c5b544db01aac10e5cfacc807bcca26
|
|
32
|
+
signature: 2b/UNbFlgRQiwJ+LrEQKyoYUi8lxeLGc4hrcTUdCinU9yXa1h6GvYpRkAkzRW8kxNNNsetphuf7hLZ3II3bNDQ==
|
{specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/backlog/src/commands.py
RENAMED
|
@@ -4224,6 +4224,12 @@ def map_fields(
|
|
|
4224
4224
|
if key and value:
|
|
4225
4225
|
cli_option_map[key] = value
|
|
4226
4226
|
|
|
4227
|
+
issue_type_id_map = {
|
|
4228
|
+
issue_type: repo_issue_types.get(issue_type, "")
|
|
4229
|
+
for issue_type in ["epic", "feature", "story", "task", "bug"]
|
|
4230
|
+
if repo_issue_types.get(issue_type)
|
|
4231
|
+
}
|
|
4232
|
+
|
|
4227
4233
|
# Fast-path for fully specified non-interactive invocations.
|
|
4228
4234
|
if project_ref and (github_type_field_id or "").strip() and cli_option_map:
|
|
4229
4235
|
github_custom_mapping_file = _persist_github_custom_mapping_file(repo_issue_types)
|
|
@@ -4247,6 +4253,33 @@ def map_fields(
|
|
|
4247
4253
|
console.print(f"[green]Custom mapping:[/green] {github_custom_mapping_file}")
|
|
4248
4254
|
return
|
|
4249
4255
|
|
|
4256
|
+
if not project_ref:
|
|
4257
|
+
if cli_option_map or (github_type_field_id or "").strip():
|
|
4258
|
+
console.print(
|
|
4259
|
+
"[yellow]⚠[/yellow] GitHub ProjectV2 Type options/field-id were provided, but no ProjectV2 "
|
|
4260
|
+
"number/ID was set. Skipping ProjectV2 mapping."
|
|
4261
|
+
)
|
|
4262
|
+
github_custom_mapping_file = _persist_github_custom_mapping_file(repo_issue_types)
|
|
4263
|
+
initial_settings_update: dict[str, Any] = {
|
|
4264
|
+
"github_issue_types": {"type_ids": issue_type_id_map},
|
|
4265
|
+
# Clear stale ProjectV2 mapping when user explicitly skips ProjectV2 input.
|
|
4266
|
+
"provider_fields": {"github_project_v2": None},
|
|
4267
|
+
"field_mapping_file": ".specfact/templates/backlog/field_mappings/github_custom.yaml",
|
|
4268
|
+
}
|
|
4269
|
+
config_path = _upsert_backlog_provider_settings(
|
|
4270
|
+
"github",
|
|
4271
|
+
initial_settings_update,
|
|
4272
|
+
project_id=project_context,
|
|
4273
|
+
adapter="github",
|
|
4274
|
+
)
|
|
4275
|
+
console.print(f"[green]✓[/green] GitHub mapping saved to {config_path}")
|
|
4276
|
+
console.print(f"[green]Custom mapping:[/green] {github_custom_mapping_file}")
|
|
4277
|
+
console.print(
|
|
4278
|
+
"[dim]ProjectV2 Type field mapping skipped; repository issue types were captured "
|
|
4279
|
+
"(ProjectV2 is optional).[/dim]"
|
|
4280
|
+
)
|
|
4281
|
+
return
|
|
4282
|
+
|
|
4250
4283
|
project_id = ""
|
|
4251
4284
|
project_title = ""
|
|
4252
4285
|
fields_nodes: list[dict[str, Any]] = []
|
|
@@ -4445,12 +4478,6 @@ def map_fields(
|
|
|
4445
4478
|
if option_name and option_name in option_name_to_id:
|
|
4446
4479
|
option_map[issue_type] = option_name_to_id[option_name]
|
|
4447
4480
|
|
|
4448
|
-
issue_type_id_map = {
|
|
4449
|
-
issue_type: repo_issue_types.get(issue_type, "")
|
|
4450
|
-
for issue_type in ["epic", "feature", "story", "task", "bug"]
|
|
4451
|
-
if repo_issue_types.get(issue_type)
|
|
4452
|
-
}
|
|
4453
|
-
|
|
4454
4481
|
settings_update: dict[str, Any] = {}
|
|
4455
4482
|
if issue_type_id_map:
|
|
4456
4483
|
settings_update["github_issue_types"] = {"type_ids": issue_type_id_map}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
name: module-registry
|
|
2
|
-
version: 0.1.
|
|
2
|
+
version: 0.1.3
|
|
3
3
|
commands:
|
|
4
4
|
- module
|
|
5
5
|
command_help:
|
|
@@ -15,5 +15,5 @@ publisher:
|
|
|
15
15
|
description: 'Manage modules: search, list, show, install, and upgrade.'
|
|
16
16
|
license: Apache-2.0
|
|
17
17
|
integrity:
|
|
18
|
-
checksum: sha256:
|
|
19
|
-
signature:
|
|
18
|
+
checksum: sha256:92a3673edb39974791afcc357a1e931b6e4152d1ad7af0e4a4d722c29431b90d
|
|
19
|
+
signature: eynkV+88hx9PPGlOnB5rwWHkiEtgFe8wNIU+5I0C8PZR+WWoRIcTcvTe5TYYAyiHi6JmJZZLvrDsTIpe3K3VDQ==
|
{specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/modules/module_registry/src/commands.py
RENAMED
|
@@ -509,13 +509,14 @@ def list_modules(
|
|
|
509
509
|
),
|
|
510
510
|
) -> None:
|
|
511
511
|
"""List installed modules with trust labels and optional origin details."""
|
|
512
|
-
|
|
512
|
+
all_modules = get_modules_with_state()
|
|
513
|
+
modules = all_modules
|
|
513
514
|
if source:
|
|
514
515
|
modules = [m for m in modules if str(m.get("source", "")) == source]
|
|
515
516
|
render_modules_table(console, modules, show_origin=show_origin)
|
|
516
517
|
|
|
517
518
|
bundled = get_bundled_module_metadata()
|
|
518
|
-
installed_ids = {str(module.get("id", "")).strip() for module in
|
|
519
|
+
installed_ids = {str(module.get("id", "")).strip() for module in all_modules}
|
|
519
520
|
available = [meta for name, meta in bundled.items() if name not in installed_ids]
|
|
520
521
|
if not show_bundled_available:
|
|
521
522
|
if available:
|
|
@@ -96,5 +96,5 @@ def download_module(
|
|
|
96
96
|
file_name = Path(parsed.path).name or f"{module_id.replace('/', '-')}.tar.gz"
|
|
97
97
|
target_path = target_dir / file_name
|
|
98
98
|
target_path.write_bytes(content)
|
|
99
|
-
logger.
|
|
99
|
+
logger.debug("Downloaded module '%s' to '%s'", module_id, target_path)
|
|
100
100
|
return target_path
|
|
@@ -10,11 +10,13 @@ from icontract import ensure
|
|
|
10
10
|
|
|
11
11
|
from specfact_cli.common import get_bridge_logger
|
|
12
12
|
from specfact_cli.models.module_package import ModulePackageMetadata
|
|
13
|
+
from specfact_cli.utils.prompts import print_warning
|
|
13
14
|
|
|
14
15
|
|
|
15
16
|
USER_MODULES_ROOT = Path.home() / ".specfact" / "modules"
|
|
16
17
|
MARKETPLACE_MODULES_ROOT = Path.home() / ".specfact" / "marketplace-modules"
|
|
17
18
|
CUSTOM_MODULES_ROOT = Path.home() / ".specfact" / "custom-modules"
|
|
19
|
+
_SHADOW_HINT_KEYS: set[tuple[str, str, str, str]] = set()
|
|
18
20
|
|
|
19
21
|
|
|
20
22
|
@dataclass(frozen=True)
|
|
@@ -45,7 +47,7 @@ def discover_all_modules(
|
|
|
45
47
|
|
|
46
48
|
logger = get_bridge_logger(__name__)
|
|
47
49
|
discovered: list[DiscoveredModule] = []
|
|
48
|
-
|
|
50
|
+
seen_by_name: dict[str, DiscoveredModule] = {}
|
|
49
51
|
|
|
50
52
|
effective_builtin_root = builtin_root or get_modules_root()
|
|
51
53
|
effective_project_root = get_workspace_modules_root()
|
|
@@ -87,23 +89,40 @@ def discover_all_modules(
|
|
|
87
89
|
entries = discover_package_metadata(root, source=source)
|
|
88
90
|
for package_dir, metadata in entries:
|
|
89
91
|
module_name = metadata.name
|
|
90
|
-
if module_name in
|
|
92
|
+
if module_name in seen_by_name:
|
|
93
|
+
existing = seen_by_name[module_name]
|
|
94
|
+
if source == "user" and existing.source == "project":
|
|
95
|
+
warning_key = (
|
|
96
|
+
module_name,
|
|
97
|
+
existing.source,
|
|
98
|
+
source,
|
|
99
|
+
str(existing.package_dir.resolve()),
|
|
100
|
+
)
|
|
101
|
+
if warning_key not in _SHADOW_HINT_KEYS:
|
|
102
|
+
_SHADOW_HINT_KEYS.add(warning_key)
|
|
103
|
+
print_warning(
|
|
104
|
+
f"Module '{module_name}' from project scope ({existing.package_dir}) takes precedence over "
|
|
105
|
+
f"user-scoped module ({package_dir}) in this workspace. The user copy is ignored here. "
|
|
106
|
+
f"Inspect origins with `specfact module list --show-origin`; if stale, clean user scope "
|
|
107
|
+
f"with `specfact module uninstall {module_name} --scope user`."
|
|
108
|
+
)
|
|
91
109
|
if source in {"user", "marketplace", "custom"}:
|
|
92
|
-
logger.
|
|
93
|
-
"Module '%s' from %s at '%s' is shadowed by higher-priority source.",
|
|
110
|
+
logger.debug(
|
|
111
|
+
"Module '%s' from %s at '%s' is shadowed by higher-priority source %s at '%s'.",
|
|
94
112
|
module_name,
|
|
95
113
|
source,
|
|
96
114
|
package_dir,
|
|
115
|
+
existing.source,
|
|
116
|
+
existing.package_dir,
|
|
97
117
|
)
|
|
98
118
|
continue
|
|
99
119
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
metadata=metadata,
|
|
105
|
-
source=source,
|
|
106
|
-
)
|
|
120
|
+
entry = DiscoveredModule(
|
|
121
|
+
package_dir=package_dir,
|
|
122
|
+
metadata=metadata,
|
|
123
|
+
source=source,
|
|
107
124
|
)
|
|
125
|
+
seen_by_name[module_name] = entry
|
|
126
|
+
discovered.append(entry)
|
|
108
127
|
|
|
109
128
|
return discovered
|
|
@@ -409,7 +409,7 @@ def install_module(
|
|
|
409
409
|
manifest_path = final_path / "module-package.yaml"
|
|
410
410
|
|
|
411
411
|
if manifest_path.exists() and not reinstall:
|
|
412
|
-
logger.
|
|
412
|
+
logger.debug("Module already installed (%s)", module_name)
|
|
413
413
|
return final_path
|
|
414
414
|
|
|
415
415
|
archive_path = download_module(module_id, version=version)
|
|
@@ -481,7 +481,7 @@ def install_module(
|
|
|
481
481
|
shutil.rmtree(staged_path)
|
|
482
482
|
raise
|
|
483
483
|
|
|
484
|
-
logger.
|
|
484
|
+
logger.debug("Installed marketplace module '%s' to '%s'", module_id, final_path)
|
|
485
485
|
return final_path
|
|
486
486
|
|
|
487
487
|
|
|
@@ -519,7 +519,7 @@ def uninstall_module(
|
|
|
519
519
|
if not module_path.exists():
|
|
520
520
|
continue
|
|
521
521
|
shutil.rmtree(module_path)
|
|
522
|
-
logger.
|
|
522
|
+
logger.debug("Uninstalled module '%s' from '%s'", module_name, root)
|
|
523
523
|
return
|
|
524
524
|
|
|
525
525
|
roots_str = ", ".join(str(root) for root in candidate_roots)
|
|
@@ -15,7 +15,6 @@ from specfact_cli.registry.module_packages import (
|
|
|
15
15
|
discover_all_package_metadata,
|
|
16
16
|
expand_disable_with_dependents,
|
|
17
17
|
expand_enable_with_dependencies,
|
|
18
|
-
get_discovered_modules_for_state,
|
|
19
18
|
merge_module_state,
|
|
20
19
|
validate_disable_safe,
|
|
21
20
|
validate_enable_safe,
|
|
@@ -34,24 +33,24 @@ def get_modules_with_state(
|
|
|
34
33
|
disable_ids: list[str] | None = None,
|
|
35
34
|
) -> list[dict[str, Any]]:
|
|
36
35
|
"""Return discovered modules with version, enabled state, source, and trust metadata."""
|
|
37
|
-
modules_list = get_discovered_modules_for_state(enable_ids=enable_ids or [], disable_ids=disable_ids or [])
|
|
38
36
|
discovered = discover_all_modules()
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
37
|
+
discovered_list: list[tuple[str, str]] = [(entry.metadata.name, entry.metadata.version) for entry in discovered]
|
|
38
|
+
state = read_modules_state()
|
|
39
|
+
enabled_map = merge_module_state(discovered_list, state, enable_ids or [], disable_ids or [])
|
|
40
|
+
|
|
41
|
+
modules_list: list[dict[str, Any]] = []
|
|
42
|
+
for entry in discovered:
|
|
43
|
+
publisher_name = entry.metadata.publisher.name if entry.metadata.publisher else "unknown"
|
|
44
|
+
modules_list.append(
|
|
45
|
+
{
|
|
46
|
+
"id": entry.metadata.name,
|
|
47
|
+
"version": entry.metadata.version,
|
|
48
|
+
"enabled": enabled_map.get(entry.metadata.name, True),
|
|
49
|
+
"source": entry.source,
|
|
50
|
+
"official": bool(publisher_name.strip().lower() == "nold-ai"),
|
|
51
|
+
"publisher": publisher_name,
|
|
52
|
+
}
|
|
43
53
|
)
|
|
44
|
-
for entry in discovered
|
|
45
|
-
}
|
|
46
|
-
publisher_map = {
|
|
47
|
-
entry.metadata.name: entry.metadata.publisher.name if entry.metadata.publisher else "unknown"
|
|
48
|
-
for entry in discovered
|
|
49
|
-
}
|
|
50
|
-
for item in modules_list:
|
|
51
|
-
module_id = str(item.get("id", ""))
|
|
52
|
-
item["source"] = source_map.get(module_id, "unknown")
|
|
53
|
-
item["official"] = official_map.get(module_id, False)
|
|
54
|
-
item["publisher"] = publisher_map.get(module_id, "unknown")
|
|
55
54
|
return modules_list
|
|
56
55
|
|
|
57
56
|
|
|
@@ -80,7 +79,11 @@ def apply_module_state_update(*, enable_ids: list[str], disable_ids: list[str],
|
|
|
80
79
|
for module_id, dependents in blocked_disable.items():
|
|
81
80
|
lines.append(f"Cannot disable '{module_id}': required by enabled modules: {', '.join(dependents)}")
|
|
82
81
|
raise ValueError("\n".join(lines))
|
|
83
|
-
|
|
82
|
+
final_enabled_map = merge_module_state(discovered_list, state, enable_ids, disable_ids)
|
|
83
|
+
modules_list = [
|
|
84
|
+
{"id": meta.name, "version": meta.version, "enabled": final_enabled_map.get(meta.name, True)}
|
|
85
|
+
for _package_dir, meta in packages
|
|
86
|
+
]
|
|
84
87
|
write_modules_state(modules_list)
|
|
85
88
|
run_discovery_and_write_cache(__version__)
|
|
86
89
|
return get_modules_with_state()
|
|
@@ -831,7 +831,7 @@ def register_module_package_commands(
|
|
|
831
831
|
f"schema version {meta.schema_version} required, current is {CURRENT_PROJECT_SCHEMA_VERSION}",
|
|
832
832
|
)
|
|
833
833
|
)
|
|
834
|
-
logger.
|
|
834
|
+
logger.debug(
|
|
835
835
|
"Module %s: Schema version %s required, but current is %s (skipped)",
|
|
836
836
|
meta.name,
|
|
837
837
|
meta.schema_version,
|
|
@@ -841,7 +841,7 @@ def register_module_package_commands(
|
|
|
841
841
|
if meta.schema_version is None:
|
|
842
842
|
logger.debug("Module %s: No schema version declared (assuming current)", meta.name)
|
|
843
843
|
else:
|
|
844
|
-
logger.
|
|
844
|
+
logger.debug("Module %s: Schema version %s (compatible)", meta.name, meta.schema_version)
|
|
845
845
|
|
|
846
846
|
if meta.schema_extensions:
|
|
847
847
|
try:
|
|
@@ -892,7 +892,7 @@ def register_module_package_commands(
|
|
|
892
892
|
elif operations:
|
|
893
893
|
partial_modules.append((meta.name, operations))
|
|
894
894
|
if is_debug_mode():
|
|
895
|
-
logger.
|
|
895
|
+
logger.info("Module %s: ModuleIOContract partial (%s)", meta.name, ", ".join(operations))
|
|
896
896
|
protocol_partial += 1
|
|
897
897
|
else:
|
|
898
898
|
legacy_modules.append(meta.name)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{specfact_cli-0.37.3 → specfact_cli-0.37.4}/resources/templates/backlog/defaults/defect_v1.yaml
RENAMED
|
File without changes
|
{specfact_cli-0.37.3 → specfact_cli-0.37.4}/resources/templates/backlog/defaults/enabler_v1.yaml
RENAMED
|
File without changes
|
{specfact_cli-0.37.3 → specfact_cli-0.37.4}/resources/templates/backlog/defaults/spike_v1.yaml
RENAMED
|
File without changes
|
{specfact_cli-0.37.3 → specfact_cli-0.37.4}/resources/templates/backlog/defaults/user_story_v1.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{specfact_cli-0.37.3 → specfact_cli-0.37.4}/resources/templates/backlog/field_mappings/ado_safe.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/analyzers/contract_extractor.py
RENAMED
|
File without changes
|
{specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/analyzers/control_flow_analyzer.py
RENAMED
|
File without changes
|
|
File without changes
|
{specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/analyzers/relationship_mapper.py
RENAMED
|
File without changes
|
{specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/analyzers/requirement_extractor.py
RENAMED
|
File without changes
|
{specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/analyzers/test_pattern_extractor.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/backlog/adapters/local_yaml_adapter.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/backlog/formats/markdown_format.py
RENAMED
|
File without changes
|
{specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/backlog/formats/structured_format.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/backlog/mappers/github_mapper.py
RENAMED
|
File without changes
|
{specfact_cli-0.37.3 → specfact_cli-0.37.4}/src/specfact_cli/backlog/mappers/template_config.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
|