specfact-cli 0.36.0__tar.gz → 0.36.1__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.36.0 → specfact_cli-0.36.1}/.gitignore +1 -1
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/PKG-INFO +1 -1
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/pyproject.toml +1 -1
- specfact_cli-0.36.1/resources/prompts/specfact.backlog-add.md +84 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/__init__.py +1 -1
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/__init__.py +1 -1
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/analyze/module-package.yaml +1 -1
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/auth/module-package.yaml +1 -1
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/backlog/module-package.yaml +1 -1
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/contract/module-package.yaml +1 -1
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/drift/module-package.yaml +1 -1
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/enforce/module-package.yaml +1 -1
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/generate/module-package.yaml +1 -1
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/import_cmd/module-package.yaml +1 -1
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/init/module-package.yaml +1 -1
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/migrate/module-package.yaml +1 -1
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/module_registry/module-package.yaml +1 -1
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/patch_mode/module-package.yaml +1 -1
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/plan/module-package.yaml +1 -1
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/policy_engine/module-package.yaml +1 -1
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/project/module-package.yaml +1 -1
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/repro/module-package.yaml +1 -1
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/sdd/module-package.yaml +1 -1
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/spec/module-package.yaml +1 -1
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/sync/module-package.yaml +1 -1
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/upgrade/module-package.yaml +1 -1
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/validate/module-package.yaml +1 -1
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/registry/module_packages.py +5 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/utils/ide_setup.py +1 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/LICENSE +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/README.md +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/resources/mappings/node-async.yaml +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/resources/mappings/python-async.yaml +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/resources/mappings/speckit-default.yaml +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/resources/prompts/shared/cli-enforcement.md +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/resources/prompts/specfact.01-import.md +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/resources/prompts/specfact.02-plan.md +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/resources/prompts/specfact.03-review.md +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/resources/prompts/specfact.04-sdd.md +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/resources/prompts/specfact.05-enforce.md +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/resources/prompts/specfact.06-sync.md +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/resources/prompts/specfact.07-contracts.md +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/resources/prompts/specfact.backlog-daily.md +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/resources/prompts/specfact.backlog-refine.md +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/resources/prompts/specfact.compare.md +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/resources/prompts/specfact.sync-backlog.md +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/resources/prompts/specfact.validate.md +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/resources/schemas/deviation.schema.json +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/resources/schemas/plan.schema.json +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/resources/schemas/protocol.schema.json +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/resources/templates/backlog/defaults/defect_v1.yaml +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/resources/templates/backlog/defaults/enabler_v1.yaml +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/resources/templates/backlog/defaults/spike_v1.yaml +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/resources/templates/backlog/defaults/user_story_v1.yaml +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/resources/templates/backlog/field_mappings/ado_agile.yaml +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/resources/templates/backlog/field_mappings/ado_default.yaml +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/resources/templates/backlog/field_mappings/ado_kanban.yaml +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/resources/templates/backlog/field_mappings/ado_safe.yaml +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/resources/templates/backlog/field_mappings/ado_scrum.yaml +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/resources/templates/backlog/frameworks/safe/safe_feature_v1.yaml +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/resources/templates/backlog/frameworks/scrum/user_story_v1.yaml +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/resources/templates/backlog/personas/developer/developer_task_v1.yaml +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/resources/templates/backlog/personas/product-owner/user_story_v1.yaml +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/resources/templates/backlog/providers/ado/work_item_v1.yaml +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/resources/templates/github-action.yml.j2 +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/resources/templates/persona/architect.md.j2 +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/resources/templates/persona/developer.md.j2 +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/resources/templates/persona/product-owner.md.j2 +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/resources/templates/plan.bundle.yaml.j2 +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/resources/templates/policies/kanban.yaml +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/resources/templates/policies/mixed.yaml +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/resources/templates/policies/safe.yaml +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/resources/templates/policies/scrum.yaml +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/resources/templates/pr-template.md.j2 +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/resources/templates/protocol.yaml.j2 +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/resources/templates/telemetry.yaml.example +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/__main__.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/adapters/__init__.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/adapters/ado.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/adapters/backlog_base.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/adapters/base.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/adapters/github.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/adapters/openspec.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/adapters/openspec_parser.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/adapters/registry.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/adapters/speckit.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/agents/__init__.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/agents/analyze_agent.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/agents/base.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/agents/plan_agent.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/agents/registry.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/agents/sync_agent.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/analyzers/__init__.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/analyzers/ambiguity_scanner.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/analyzers/code_analyzer.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/analyzers/constitution_evidence_extractor.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/analyzers/contract_extractor.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/analyzers/control_flow_analyzer.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/analyzers/graph_analyzer.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/analyzers/relationship_mapper.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/analyzers/requirement_extractor.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/analyzers/test_pattern_extractor.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/backlog/__init__.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/backlog/adapters/__init__.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/backlog/adapters/base.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/backlog/adapters/local_yaml_adapter.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/backlog/ai_refiner.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/backlog/converter.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/backlog/filters.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/backlog/format_detector.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/backlog/formats/__init__.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/backlog/formats/base.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/backlog/formats/markdown_format.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/backlog/formats/structured_format.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/backlog/mappers/__init__.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/backlog/mappers/ado_mapper.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/backlog/mappers/base.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/backlog/mappers/github_mapper.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/backlog/mappers/template_config.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/backlog/template_detector.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/cli.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/commands/__init__.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/commands/analyze.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/commands/auth.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/commands/backlog_commands.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/commands/contract_cmd.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/commands/drift.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/commands/enforce.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/commands/generate.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/commands/import_cmd.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/commands/init.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/commands/migrate.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/commands/plan.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/commands/project_cmd.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/commands/repro.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/commands/sdd.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/commands/spec.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/commands/sync.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/commands/update.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/commands/validate.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/common/__init__.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/common/logger_setup.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/common/logging_utils.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/common/text_utils.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/common/utils.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/comparators/__init__.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/comparators/plan_comparator.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/contracts/__init__.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/contracts/crosshair_props.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/contracts/module_interface.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/enrichers/constitution_enricher.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/enrichers/plan_enricher.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/generators/__init__.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/generators/contract_generator.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/generators/openapi_extractor.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/generators/persona_exporter.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/generators/plan_generator.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/generators/protocol_generator.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/generators/report_generator.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/generators/task_generator.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/generators/test_to_openapi.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/generators/workflow_generator.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/importers/__init__.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/importers/speckit_converter.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/importers/speckit_scanner.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/integrations/__init__.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/integrations/specmatic.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/merge/__init__.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/merge/resolver.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/migrations/__init__.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/migrations/plan_migrator.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/models/__init__.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/models/backlog_item.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/models/bridge.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/models/capabilities.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/models/change.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/models/contract.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/models/deviation.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/models/dor_config.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/models/enforcement.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/models/module_package.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/models/persona_template.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/models/plan.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/models/project.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/models/protocol.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/models/quality.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/models/sdd.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/models/source_tracking.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/models/task.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/models/validation.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modes/__init__.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modes/detector.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modes/router.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/__init__.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/analyze/src/__init__.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/analyze/src/app.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/analyze/src/commands.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/auth/src/__init__.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/auth/src/app.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/auth/src/commands.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/backlog/src/__init__.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/backlog/src/adapters/__init__.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/backlog/src/adapters/ado.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/backlog/src/adapters/base.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/backlog/src/adapters/github.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/backlog/src/adapters/jira.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/backlog/src/adapters/linear.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/backlog/src/app.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/backlog/src/commands.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/contract/src/__init__.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/contract/src/app.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/contract/src/commands.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/drift/src/__init__.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/drift/src/app.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/drift/src/commands.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/enforce/src/__init__.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/enforce/src/app.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/enforce/src/commands.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/generate/src/__init__.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/generate/src/app.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/generate/src/commands.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/import_cmd/src/__init__.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/import_cmd/src/app.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/import_cmd/src/commands.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/init/src/__init__.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/init/src/app.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/init/src/commands.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/migrate/src/__init__.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/migrate/src/app.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/migrate/src/commands.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/module_io_shim.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/module_registry/src/__init__.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/module_registry/src/app.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/module_registry/src/commands.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/patch_mode/src/app.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/patch_mode/src/commands.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/patch_mode/src/patch_mode/__init__.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/patch_mode/src/patch_mode/commands/__init__.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/patch_mode/src/patch_mode/commands/apply.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/patch_mode/src/patch_mode/pipeline/__init__.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/patch_mode/src/patch_mode/pipeline/applier.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/patch_mode/src/patch_mode/pipeline/generator.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/patch_mode/src/patch_mode/pipeline/idempotency.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/plan/src/__init__.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/plan/src/app.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/plan/src/commands.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/policy_engine/src/app.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/policy_engine/src/commands.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/policy_engine/src/policy_engine/__init__.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/policy_engine/src/policy_engine/config/__init__.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/policy_engine/src/policy_engine/config/policy_config.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/policy_engine/src/policy_engine/config/templates.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/policy_engine/src/policy_engine/engine/__init__.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/policy_engine/src/policy_engine/engine/suggester.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/policy_engine/src/policy_engine/engine/validator.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/policy_engine/src/policy_engine/main.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/policy_engine/src/policy_engine/models/__init__.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/policy_engine/src/policy_engine/models/policy_result.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/policy_engine/src/policy_engine/policies/__init__.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/policy_engine/src/policy_engine/policies/kanban.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/policy_engine/src/policy_engine/policies/safe.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/policy_engine/src/policy_engine/policies/scrum.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/policy_engine/src/policy_engine/registry/__init__.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/policy_engine/src/policy_engine/registry/policy_registry.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/project/src/__init__.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/project/src/app.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/project/src/commands.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/repro/src/__init__.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/repro/src/app.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/repro/src/commands.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/sdd/src/__init__.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/sdd/src/app.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/sdd/src/commands.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/spec/src/__init__.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/spec/src/app.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/spec/src/commands.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/sync/src/__init__.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/sync/src/app.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/sync/src/commands.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/upgrade/src/__init__.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/upgrade/src/app.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/upgrade/src/commands.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/validate/src/__init__.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/validate/src/app.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/modules/validate/src/commands.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/parsers/__init__.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/parsers/persona_importer.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/registry/__init__.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/registry/bootstrap.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/registry/bridge_registry.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/registry/crypto_validator.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/registry/extension_registry.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/registry/help_cache.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/registry/marketplace_client.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/registry/metadata.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/registry/module_discovery.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/registry/module_installer.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/registry/module_lifecycle.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/registry/module_state.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/registry/registry.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/resources/semgrep/async.yml +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/resources/semgrep/code-quality.yml +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/resources/semgrep/feature-detection.yml +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/runtime.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/sync/__init__.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/sync/bridge_probe.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/sync/bridge_sync.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/sync/bridge_watch.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/sync/change_detector.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/sync/code_to_spec.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/sync/drift_detector.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/sync/repository_sync.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/sync/spec_to_code.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/sync/spec_to_tests.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/sync/watcher.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/sync/watcher_enhanced.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/telemetry.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/templates/__init__.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/templates/bridge_templates.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/templates/defaults/defect_v1.yaml +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/templates/defaults/enabler_v1.yaml +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/templates/defaults/spike_v1.yaml +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/templates/defaults/user_story_v1.yaml +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/templates/frameworks/scrum/user_story_v1.yaml +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/templates/personas/product-owner/user_story_v1.yaml +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/templates/providers/ado/work_item_v1.yaml +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/templates/registry.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/templates/specification_templates.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/utils/__init__.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/utils/acceptance_criteria.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/utils/auth_tokens.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/utils/bundle_converters.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/utils/bundle_loader.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/utils/code_change_detector.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/utils/console.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/utils/content_sanitizer.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/utils/context_detection.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/utils/enrichment_context.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/utils/enrichment_parser.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/utils/env_manager.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/utils/feature_keys.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/utils/git.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/utils/github_annotations.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/utils/incremental_check.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/utils/metadata.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/utils/optional_deps.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/utils/performance.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/utils/persona_ownership.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/utils/progress.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/utils/progressive_disclosure.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/utils/prompts.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/utils/sdd_discovery.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/utils/source_scanner.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/utils/startup_checks.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/utils/structure.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/utils/structured_io.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/utils/suggestions.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/utils/terminal.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/utils/yaml_utils.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/validators/__init__.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/validators/agile_validation.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/validators/change_proposal_integration.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/validators/cli_first_validator.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/validators/contract_validator.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/validators/fsm.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/validators/repro_checker.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/validators/schema.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/validators/sidecar/__init__.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/validators/sidecar/contract_populator.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/validators/sidecar/crosshair_runner.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/validators/sidecar/crosshair_summary.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/validators/sidecar/dependency_installer.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/validators/sidecar/framework_detector.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/validators/sidecar/frameworks/__init__.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/validators/sidecar/frameworks/base.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/validators/sidecar/frameworks/django.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/validators/sidecar/frameworks/drf.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/validators/sidecar/frameworks/fastapi.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/validators/sidecar/frameworks/flask.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/validators/sidecar/harness_generator.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/validators/sidecar/models.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/validators/sidecar/orchestrator.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/validators/sidecar/specmatic_runner.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/validators/sidecar/unannotated_detector.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/versioning/__init__.py +0 -0
- {specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/versioning/analyzer.py +0 -0
|
@@ -101,13 +101,13 @@ docs/internal/
|
|
|
101
101
|
# Ignore specfact-cli prompt templates
|
|
102
102
|
.cursor/commands/specfact.*.md
|
|
103
103
|
.cursor/commands/opsx-*.md
|
|
104
|
-
|
|
105
104
|
.cursor/skills/openspec-*/
|
|
106
105
|
|
|
107
106
|
.github/prompts/specfact.*.md
|
|
108
107
|
.github/prompts/opsx-*.md
|
|
109
108
|
|
|
110
109
|
.claude/commands/opsx/
|
|
110
|
+
.claude/commands/specfact.*.md
|
|
111
111
|
.claude/skills/openspec-*/
|
|
112
112
|
!.claude/skills/openspec-workflows/
|
|
113
113
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: specfact-cli
|
|
3
|
-
Version: 0.36.
|
|
3
|
+
Version: 0.36.1
|
|
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.36.
|
|
7
|
+
version = "0.36.1"
|
|
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"
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Create backlog items with guided interactive flow and hierarchy checks"
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# SpecFact Backlog Add Command
|
|
6
|
+
|
|
7
|
+
## User Input
|
|
8
|
+
|
|
9
|
+
```text
|
|
10
|
+
$ARGUMENTS
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
You **MUST** consider the user input before proceeding (if not empty).
|
|
14
|
+
|
|
15
|
+
## Purpose
|
|
16
|
+
|
|
17
|
+
Create a new backlog item in GitHub or Azure DevOps using the `specfact backlog add` workflow. The command supports interactive prompts, parent hierarchy validation, DoR checks, and provider-specific fields.
|
|
18
|
+
|
|
19
|
+
**When to use:** Adding new work items (epic/feature/story/task/bug) with consistent quality and parent-child structure.
|
|
20
|
+
|
|
21
|
+
**Quick:** `/specfact.backlog-add --adapter github --project-id owner/repo --type story --title "..."`
|
|
22
|
+
|
|
23
|
+
## Parameters
|
|
24
|
+
|
|
25
|
+
### Required
|
|
26
|
+
|
|
27
|
+
- `--adapter ADAPTER` - Backlog adapter (`github`, `ado`)
|
|
28
|
+
- `--project-id PROJECT` - Project context
|
|
29
|
+
- GitHub: `owner/repo`
|
|
30
|
+
- ADO: `org/project`
|
|
31
|
+
|
|
32
|
+
### Common options
|
|
33
|
+
|
|
34
|
+
- `--type TYPE` - Backlog item type (provider/template specific)
|
|
35
|
+
- `--title TITLE` - Item title
|
|
36
|
+
- `--body BODY` - Item body/description
|
|
37
|
+
- `--parent PARENT_ID` - Optional parent issue/work item id
|
|
38
|
+
- `--non-interactive` - Disable prompt flow and require explicit inputs
|
|
39
|
+
- `--check-dor` - Run Definition of Ready checks before create
|
|
40
|
+
- `--template TEMPLATE` - Optional backlog template override
|
|
41
|
+
- `--custom-config PATH` - Optional mapping/config override file
|
|
42
|
+
|
|
43
|
+
### Adapter-specific options
|
|
44
|
+
|
|
45
|
+
- GitHub:
|
|
46
|
+
- `--repo-owner OWNER`
|
|
47
|
+
- `--repo-name NAME`
|
|
48
|
+
- `--github-token TOKEN` (or `GITHUB_TOKEN`)
|
|
49
|
+
- Azure DevOps:
|
|
50
|
+
- `--ado-org ORG`
|
|
51
|
+
- `--ado-project PROJECT`
|
|
52
|
+
- `--ado-token TOKEN` (or `AZURE_DEVOPS_TOKEN`)
|
|
53
|
+
- `--ado-base-url URL` (optional)
|
|
54
|
+
|
|
55
|
+
## Workflow
|
|
56
|
+
|
|
57
|
+
### Step 1: Execute command
|
|
58
|
+
|
|
59
|
+
Run the CLI command with user arguments:
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
specfact backlog add [OPTIONS]
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### Step 2: Interactive completion (if inputs are missing)
|
|
66
|
+
|
|
67
|
+
- Prompt for missing required fields.
|
|
68
|
+
- Prompt for optional quality fields (acceptance criteria, points, priority) when supported.
|
|
69
|
+
- Validate parent selection and allowed hierarchy before create.
|
|
70
|
+
|
|
71
|
+
### Step 3: Confirm and create
|
|
72
|
+
|
|
73
|
+
- Show planned create payload summary.
|
|
74
|
+
- Execute provider create operation.
|
|
75
|
+
- Return created item id/key/url.
|
|
76
|
+
|
|
77
|
+
## CLI Enforcement
|
|
78
|
+
|
|
79
|
+
- Always execute `specfact backlog add` for creation.
|
|
80
|
+
- Do not create provider issues/work items directly outside CLI unless user explicitly requests a manual path.
|
|
81
|
+
|
|
82
|
+
## Context
|
|
83
|
+
|
|
84
|
+
{ARGS}
|
|
@@ -108,6 +108,11 @@ def get_modules_roots() -> list[Path]:
|
|
|
108
108
|
if repo_modules_root.exists():
|
|
109
109
|
_add_root(repo_modules_root)
|
|
110
110
|
|
|
111
|
+
# Installed runtimes can still discover repo-level modules when invoked from a checkout.
|
|
112
|
+
cwd_modules_root = Path.cwd() / "modules"
|
|
113
|
+
if cwd_modules_root.exists():
|
|
114
|
+
_add_root(cwd_modules_root)
|
|
115
|
+
|
|
111
116
|
# Optional extra roots for custom module locations.
|
|
112
117
|
extra_roots = os.environ.get("SPECFACT_MODULES_ROOTS", "")
|
|
113
118
|
for raw_root in extra_roots.split(os.pathsep):
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.36.0 → specfact_cli-0.36.1}/resources/templates/backlog/defaults/defect_v1.yaml
RENAMED
|
File without changes
|
{specfact_cli-0.36.0 → specfact_cli-0.36.1}/resources/templates/backlog/defaults/enabler_v1.yaml
RENAMED
|
File without changes
|
{specfact_cli-0.36.0 → specfact_cli-0.36.1}/resources/templates/backlog/defaults/spike_v1.yaml
RENAMED
|
File without changes
|
{specfact_cli-0.36.0 → specfact_cli-0.36.1}/resources/templates/backlog/defaults/user_story_v1.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{specfact_cli-0.36.0 → specfact_cli-0.36.1}/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
|
{specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/analyzers/contract_extractor.py
RENAMED
|
File without changes
|
{specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/analyzers/control_flow_analyzer.py
RENAMED
|
File without changes
|
|
File without changes
|
{specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/analyzers/relationship_mapper.py
RENAMED
|
File without changes
|
{specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/analyzers/requirement_extractor.py
RENAMED
|
File without changes
|
{specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/analyzers/test_pattern_extractor.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{specfact_cli-0.36.0 → specfact_cli-0.36.1}/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.36.0 → specfact_cli-0.36.1}/src/specfact_cli/backlog/formats/markdown_format.py
RENAMED
|
File without changes
|
{specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/backlog/formats/structured_format.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{specfact_cli-0.36.0 → specfact_cli-0.36.1}/src/specfact_cli/backlog/mappers/github_mapper.py
RENAMED
|
File without changes
|
{specfact_cli-0.36.0 → specfact_cli-0.36.1}/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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|