specfact-cli 0.41.0__tar.gz → 0.42.2__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.41.0 → specfact_cli-0.42.2}/PKG-INFO +33 -18
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/README.md +30 -17
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/pyproject.toml +4 -1
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/__init__.py +1 -1
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/__init__.py +1 -1
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/.gitignore +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/LICENSE +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/resources/keys/README.md +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/resources/keys/module-signing-public.pem +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/resources/mappings/node-async.yaml +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/resources/mappings/python-async.yaml +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/resources/mappings/speckit-default.yaml +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/resources/prompts/shared/cli-enforcement.md +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/resources/prompts/specfact.01-import.md +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/resources/prompts/specfact.02-plan.md +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/resources/prompts/specfact.03-review.md +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/resources/prompts/specfact.04-sdd.md +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/resources/prompts/specfact.05-enforce.md +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/resources/prompts/specfact.06-sync.md +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/resources/prompts/specfact.07-contracts.md +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/resources/prompts/specfact.compare.md +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/resources/prompts/specfact.validate.md +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/resources/schemas/deviation.schema.json +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/resources/schemas/plan.schema.json +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/resources/schemas/protocol.schema.json +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/resources/templates/github-action.yml.j2 +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/resources/templates/persona/architect.md.j2 +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/resources/templates/persona/developer.md.j2 +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/resources/templates/persona/product-owner.md.j2 +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/resources/templates/plan.bundle.yaml.j2 +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/resources/templates/policies/kanban.yaml +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/resources/templates/policies/mixed.yaml +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/resources/templates/policies/safe.yaml +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/resources/templates/policies/scrum.yaml +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/resources/templates/pr-template.md.j2 +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/resources/templates/protocol.yaml.j2 +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/resources/templates/telemetry.yaml.example +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/__main__.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/adapters/__init__.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/adapters/ado.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/adapters/backlog_base.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/adapters/base.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/adapters/github.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/adapters/openspec.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/adapters/openspec_parser.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/adapters/registry.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/adapters/speckit.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/agents/__init__.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/agents/analyze_agent.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/agents/base.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/agents/plan_agent.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/agents/registry.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/agents/sync_agent.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/analyzers/__init__.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/analyzers/ambiguity_scanner.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/analyzers/code_analyzer.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/analyzers/constitution_evidence_extractor.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/analyzers/contract_extractor.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/analyzers/control_flow_analyzer.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/analyzers/graph_analyzer.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/analyzers/relationship_mapper.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/analyzers/requirement_extractor.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/analyzers/test_pattern_extractor.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/backlog/__init__.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/backlog/adapters/__init__.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/backlog/adapters/base.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/backlog/converter.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/backlog/filters.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/backlog/mappers/__init__.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/backlog/mappers/ado_mapper.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/backlog/mappers/base.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/backlog/mappers/github_mapper.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/backlog/mappers/template_config.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/cli.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/commands/__init__.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/commands/_bundle_shim.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/commands/analyze.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/commands/contract_cmd.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/commands/drift.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/commands/enforce.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/commands/generate.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/commands/import_cmd.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/commands/init.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/commands/migrate.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/commands/plan.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/commands/project_cmd.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/commands/repro.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/commands/sdd.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/commands/spec.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/commands/sync.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/commands/update.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/commands/validate.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/common/__init__.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/common/bundle_factory.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/common/logger_setup.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/common/logging_utils.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/common/text_utils.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/common/utils.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/comparators/__init__.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/comparators/plan_comparator.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/contracts/__init__.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/contracts/crosshair_props.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/contracts/module_interface.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/enrichers/constitution_enricher.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/enrichers/plan_enricher.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/generators/__init__.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/generators/contract_generator.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/generators/openapi_extractor.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/generators/persona_exporter.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/generators/plan_generator.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/generators/protocol_generator.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/generators/report_generator.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/generators/task_generator.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/generators/test_to_openapi.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/generators/workflow_generator.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/groups/__init__.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/groups/codebase_group.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/groups/govern_group.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/groups/member_group.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/groups/project_group.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/groups/spec_group.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/importers/__init__.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/importers/speckit_converter.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/importers/speckit_scanner.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/integrations/__init__.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/integrations/specmatic.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/merge/__init__.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/merge/resolver.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/migrations/__init__.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/migrations/plan_migrator.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/models/__init__.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/models/backlog_item.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/models/bridge.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/models/capabilities.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/models/change.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/models/contract.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/models/deviation.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/models/dor_config.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/models/enforcement.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/models/module_package.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/models/persona_template.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/models/plan.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/models/project.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/models/protocol.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/models/quality.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/models/sdd.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/models/source_tracking.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/models/task.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/models/validation.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/modes/__init__.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/modes/detector.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/modes/router.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/modules/__init__.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/modules/_bundle_import.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/modules/init/module-package.yaml +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/modules/init/src/__init__.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/modules/init/src/app.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/modules/init/src/commands.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/modules/init/src/first_run_selection.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/modules/module_io_shim.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/modules/module_registry/module-package.yaml +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/modules/module_registry/src/__init__.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/modules/module_registry/src/app.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/modules/module_registry/src/commands.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/modules/upgrade/module-package.yaml +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/modules/upgrade/src/__init__.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/modules/upgrade/src/app.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/modules/upgrade/src/commands.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/parsers/__init__.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/parsers/persona_importer.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/registry/__init__.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/registry/alias_manager.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/registry/bootstrap.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/registry/bridge_registry.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/registry/crypto_validator.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/registry/custom_registries.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/registry/dependency_resolver.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/registry/extension_registry.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/registry/help_cache.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/registry/marketplace_client.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/registry/metadata.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/registry/module_discovery.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/registry/module_grouping.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/registry/module_installer.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/registry/module_lifecycle.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/registry/module_packages.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/registry/module_security.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/registry/module_state.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/registry/registry.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/resources/semgrep/async.yml +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/resources/semgrep/code-quality.yml +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/resources/semgrep/feature-detection.yml +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/runtime.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/sync/__init__.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/sync/bridge_probe.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/sync/bridge_sync.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/sync/bridge_watch.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/sync/change_detector.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/sync/code_to_spec.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/sync/drift_detector.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/sync/repository_sync.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/sync/spec_to_code.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/sync/spec_to_tests.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/sync/watcher.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/sync/watcher_enhanced.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/telemetry.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/templates/__init__.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/templates/defaults/defect_v1.yaml +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/templates/defaults/enabler_v1.yaml +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/templates/defaults/spike_v1.yaml +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/templates/defaults/user_story_v1.yaml +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/templates/frameworks/scrum/user_story_v1.yaml +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/templates/personas/product-owner/user_story_v1.yaml +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/templates/providers/ado/work_item_v1.yaml +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/templates/registry.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/templates/specification_templates.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/utils/__init__.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/utils/acceptance_criteria.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/utils/auth_tokens.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/utils/bundle_converters.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/utils/bundle_loader.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/utils/code_change_detector.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/utils/console.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/utils/content_sanitizer.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/utils/context_detection.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/utils/enrichment_context.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/utils/enrichment_parser.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/utils/env_manager.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/utils/feature_keys.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/utils/git.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/utils/github_annotations.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/utils/ide_setup.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/utils/incremental_check.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/utils/metadata.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/utils/optional_deps.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/utils/performance.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/utils/persona_ownership.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/utils/progress.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/utils/progressive_disclosure.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/utils/prompts.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/utils/sdd_discovery.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/utils/source_scanner.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/utils/startup_checks.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/utils/structure.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/utils/structured_io.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/utils/suggestions.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/utils/terminal.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/utils/yaml_utils.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/validation/__init__.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/validation/command_audit.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/validators/__init__.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/validators/agile_validation.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/validators/change_proposal_integration.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/validators/cli_first_validator.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/validators/contract_validator.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/validators/fsm.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/validators/repro_checker.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/validators/schema.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/validators/sidecar/__init__.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/validators/sidecar/contract_populator.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/validators/sidecar/crosshair_runner.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/validators/sidecar/crosshair_summary.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/validators/sidecar/dependency_installer.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/validators/sidecar/framework_detector.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/validators/sidecar/frameworks/__init__.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/validators/sidecar/frameworks/base.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/validators/sidecar/frameworks/django.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/validators/sidecar/frameworks/drf.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/validators/sidecar/frameworks/fastapi.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/validators/sidecar/frameworks/flask.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/validators/sidecar/harness_generator.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/validators/sidecar/models.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/validators/sidecar/orchestrator.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/validators/sidecar/specmatic_runner.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/validators/sidecar/unannotated_detector.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/versioning/__init__.py +0 -0
- {specfact_cli-0.41.0 → specfact_cli-0.42.2}/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.
|
|
3
|
+
Version: 0.42.2
|
|
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
|
|
@@ -240,6 +240,7 @@ Requires-Dist: pydantic>=2.12.3
|
|
|
240
240
|
Requires-Dist: python-dotenv>=1.2.1
|
|
241
241
|
Requires-Dist: pyyaml>=6.0.3
|
|
242
242
|
Requires-Dist: questionary>=2.0.1
|
|
243
|
+
Requires-Dist: radon>=6.0.1
|
|
243
244
|
Requires-Dist: requests>=2.32.3
|
|
244
245
|
Requires-Dist: rich<13.6.0,>=13.5.2
|
|
245
246
|
Requires-Dist: ruamel-yaml>=0.18.16
|
|
@@ -264,6 +265,7 @@ Requires-Dist: pytest-cov>=7.0.0; extra == 'dev'
|
|
|
264
265
|
Requires-Dist: pytest-mock>=3.15.1; extra == 'dev'
|
|
265
266
|
Requires-Dist: pytest-xdist>=3.8.0; extra == 'dev'
|
|
266
267
|
Requires-Dist: pytest>=8.4.2; extra == 'dev'
|
|
268
|
+
Requires-Dist: radon>=6.0.1; extra == 'dev'
|
|
267
269
|
Requires-Dist: ruff>=0.14.2; extra == 'dev'
|
|
268
270
|
Requires-Dist: semgrep>=1.144.0; extra == 'dev'
|
|
269
271
|
Requires-Dist: tomlkit>=0.13.3; extra == 'dev'
|
|
@@ -298,6 +300,19 @@ Description-Content-Type: text/markdown
|
|
|
298
300
|
|
|
299
301
|
---
|
|
300
302
|
|
|
303
|
+
## Documentation Topology
|
|
304
|
+
|
|
305
|
+
`docs.specfact.io` is the canonical docs entry point for SpecFact.
|
|
306
|
+
|
|
307
|
+
- Core CLI/runtime/platform documentation remains owned by `specfact-cli`.
|
|
308
|
+
- Module-specific deep docs are canonically owned by `specfact-cli-modules`.
|
|
309
|
+
- The live modules docs site is currently published at `https://modules.specfact.io/`.
|
|
310
|
+
|
|
311
|
+
Use this repository's docs for core runtime, lifecycle, registry, trust, and architecture guidance. Use the modules docs site for bundle-specific workflow and module-authoring deep dives.
|
|
312
|
+
In short, module-specific deep docs are canonically owned by `specfact-cli-modules`.
|
|
313
|
+
|
|
314
|
+
---
|
|
315
|
+
|
|
301
316
|
## Start Here (60 seconds)
|
|
302
317
|
|
|
303
318
|
### Install
|
|
@@ -346,9 +361,9 @@ specfact code validate sidecar run my-project /path/to/repo
|
|
|
346
361
|
|
|
347
362
|
As of `0.40.0`, flat root commands are removed. Use grouped commands:
|
|
348
363
|
|
|
349
|
-
- `specfact validate ...`
|
|
350
|
-
- `specfact plan ...`
|
|
351
|
-
- `specfact policy ...`
|
|
364
|
+
- `specfact validate ...` → `specfact code validate ...`
|
|
365
|
+
- `specfact plan ...` → removed; use `specfact project devops-flow` or `specfact project snapshot`
|
|
366
|
+
- `specfact policy ...` → removed; use `specfact backlog verify-readiness`
|
|
352
367
|
|
|
353
368
|
### Backlog Bridge (60 seconds)
|
|
354
369
|
|
|
@@ -366,7 +381,7 @@ specfact backlog daily ado --ado-org <org> --ado-project "<project>" --state any
|
|
|
366
381
|
specfact backlog refine ado --ado-org <org> --ado-project "<project>" --id <work-item-id> --preview
|
|
367
382
|
|
|
368
383
|
# 3) Keep backlog + spec intent aligned (avoid silent drift)
|
|
369
|
-
specfact backlog
|
|
384
|
+
specfact backlog verify-readiness --bundle <bundle-name>
|
|
370
385
|
```
|
|
371
386
|
|
|
372
387
|
For GitHub, replace adapter/org/project with:
|
|
@@ -434,18 +449,18 @@ Most tools help **either** coders **or** agile teams. SpecFact does both:
|
|
|
434
449
|
Recommended command entrypoints:
|
|
435
450
|
- `specfact backlog ceremony standup ...`
|
|
436
451
|
- `specfact backlog ceremony refinement ...`
|
|
437
|
-
- `specfact backlog
|
|
438
|
-
- `specfact backlog
|
|
452
|
+
- `specfact backlog verify-readiness --bundle <bundle-name>`
|
|
453
|
+
- `specfact backlog analyze-deps --bundle <bundle-name>`
|
|
439
454
|
|
|
440
|
-
What the
|
|
455
|
+
What the backlog readiness and ceremony commands do in practice:
|
|
441
456
|
- Turns team agreements (DoR, DoD, flow checks) into executable checks against your real backlog data.
|
|
442
457
|
- Shows exactly what is missing per item (for example missing acceptance criteria or definition of done).
|
|
443
|
-
-
|
|
458
|
+
- Run structured ceremony workflows (standup, refinement, retrospective) directly from the CLI.
|
|
444
459
|
|
|
445
460
|
Start with:
|
|
446
|
-
- `specfact backlog
|
|
447
|
-
- `specfact backlog
|
|
448
|
-
- `specfact backlog
|
|
461
|
+
- `specfact backlog ceremony standup --help`
|
|
462
|
+
- `specfact backlog verify-readiness --bundle <bundle-name>`
|
|
463
|
+
- `specfact backlog refine --help`
|
|
449
464
|
|
|
450
465
|
**Try it now**
|
|
451
466
|
|
|
@@ -484,9 +499,10 @@ For technical architecture details (module lifecycle, registry internals, adapte
|
|
|
484
499
|
|
|
485
500
|
SpecFact ships official bundle packages via the dedicated marketplace registry repository
|
|
486
501
|
`nold-ai/specfact-cli-modules`.
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
`
|
|
502
|
+
|
|
503
|
+
This core docs set remains the canonical docs entry point and release-line overview for marketplace concepts.
|
|
504
|
+
Bundle-specific deep docs are canonically owned by `specfact-cli-modules` and are currently published at:
|
|
505
|
+
`https://modules.specfact.io/`.
|
|
490
506
|
|
|
491
507
|
Install examples:
|
|
492
508
|
|
|
@@ -511,9 +527,8 @@ auto-install dependencies:
|
|
|
511
527
|
- `nold-ai/specfact-spec` pulls `nold-ai/specfact-project`
|
|
512
528
|
- `nold-ai/specfact-govern` pulls `nold-ai/specfact-project`
|
|
513
529
|
|
|
514
|
-
Use this repo's docs for the current CLI/runtime release branch
|
|
515
|
-
|
|
516
|
-
docs maintenance in long-lived `specfact-cli` release branches.
|
|
530
|
+
Use this repo's docs for the current CLI/runtime release branch and for marketplace lifecycle overview content.
|
|
531
|
+
Use the modules docs site for bundle-specific deep guidance so bundle-only changes can ship without rebuilding the core docs release branch.
|
|
517
532
|
|
|
518
533
|
---
|
|
519
534
|
|
|
@@ -19,6 +19,19 @@
|
|
|
19
19
|
|
|
20
20
|
---
|
|
21
21
|
|
|
22
|
+
## Documentation Topology
|
|
23
|
+
|
|
24
|
+
`docs.specfact.io` is the canonical docs entry point for SpecFact.
|
|
25
|
+
|
|
26
|
+
- Core CLI/runtime/platform documentation remains owned by `specfact-cli`.
|
|
27
|
+
- Module-specific deep docs are canonically owned by `specfact-cli-modules`.
|
|
28
|
+
- The live modules docs site is currently published at `https://modules.specfact.io/`.
|
|
29
|
+
|
|
30
|
+
Use this repository's docs for core runtime, lifecycle, registry, trust, and architecture guidance. Use the modules docs site for bundle-specific workflow and module-authoring deep dives.
|
|
31
|
+
In short, module-specific deep docs are canonically owned by `specfact-cli-modules`.
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
22
35
|
## Start Here (60 seconds)
|
|
23
36
|
|
|
24
37
|
### Install
|
|
@@ -67,9 +80,9 @@ specfact code validate sidecar run my-project /path/to/repo
|
|
|
67
80
|
|
|
68
81
|
As of `0.40.0`, flat root commands are removed. Use grouped commands:
|
|
69
82
|
|
|
70
|
-
- `specfact validate ...`
|
|
71
|
-
- `specfact plan ...`
|
|
72
|
-
- `specfact policy ...`
|
|
83
|
+
- `specfact validate ...` → `specfact code validate ...`
|
|
84
|
+
- `specfact plan ...` → removed; use `specfact project devops-flow` or `specfact project snapshot`
|
|
85
|
+
- `specfact policy ...` → removed; use `specfact backlog verify-readiness`
|
|
73
86
|
|
|
74
87
|
### Backlog Bridge (60 seconds)
|
|
75
88
|
|
|
@@ -87,7 +100,7 @@ specfact backlog daily ado --ado-org <org> --ado-project "<project>" --state any
|
|
|
87
100
|
specfact backlog refine ado --ado-org <org> --ado-project "<project>" --id <work-item-id> --preview
|
|
88
101
|
|
|
89
102
|
# 3) Keep backlog + spec intent aligned (avoid silent drift)
|
|
90
|
-
specfact backlog
|
|
103
|
+
specfact backlog verify-readiness --bundle <bundle-name>
|
|
91
104
|
```
|
|
92
105
|
|
|
93
106
|
For GitHub, replace adapter/org/project with:
|
|
@@ -155,18 +168,18 @@ Most tools help **either** coders **or** agile teams. SpecFact does both:
|
|
|
155
168
|
Recommended command entrypoints:
|
|
156
169
|
- `specfact backlog ceremony standup ...`
|
|
157
170
|
- `specfact backlog ceremony refinement ...`
|
|
158
|
-
- `specfact backlog
|
|
159
|
-
- `specfact backlog
|
|
171
|
+
- `specfact backlog verify-readiness --bundle <bundle-name>`
|
|
172
|
+
- `specfact backlog analyze-deps --bundle <bundle-name>`
|
|
160
173
|
|
|
161
|
-
What the
|
|
174
|
+
What the backlog readiness and ceremony commands do in practice:
|
|
162
175
|
- Turns team agreements (DoR, DoD, flow checks) into executable checks against your real backlog data.
|
|
163
176
|
- Shows exactly what is missing per item (for example missing acceptance criteria or definition of done).
|
|
164
|
-
-
|
|
177
|
+
- Run structured ceremony workflows (standup, refinement, retrospective) directly from the CLI.
|
|
165
178
|
|
|
166
179
|
Start with:
|
|
167
|
-
- `specfact backlog
|
|
168
|
-
- `specfact backlog
|
|
169
|
-
- `specfact backlog
|
|
180
|
+
- `specfact backlog ceremony standup --help`
|
|
181
|
+
- `specfact backlog verify-readiness --bundle <bundle-name>`
|
|
182
|
+
- `specfact backlog refine --help`
|
|
170
183
|
|
|
171
184
|
**Try it now**
|
|
172
185
|
|
|
@@ -205,9 +218,10 @@ For technical architecture details (module lifecycle, registry internals, adapte
|
|
|
205
218
|
|
|
206
219
|
SpecFact ships official bundle packages via the dedicated marketplace registry repository
|
|
207
220
|
`nold-ai/specfact-cli-modules`.
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
`
|
|
221
|
+
|
|
222
|
+
This core docs set remains the canonical docs entry point and release-line overview for marketplace concepts.
|
|
223
|
+
Bundle-specific deep docs are canonically owned by `specfact-cli-modules` and are currently published at:
|
|
224
|
+
`https://modules.specfact.io/`.
|
|
211
225
|
|
|
212
226
|
Install examples:
|
|
213
227
|
|
|
@@ -232,9 +246,8 @@ auto-install dependencies:
|
|
|
232
246
|
- `nold-ai/specfact-spec` pulls `nold-ai/specfact-project`
|
|
233
247
|
- `nold-ai/specfact-govern` pulls `nold-ai/specfact-project`
|
|
234
248
|
|
|
235
|
-
Use this repo's docs for the current CLI/runtime release branch
|
|
236
|
-
|
|
237
|
-
docs maintenance in long-lived `specfact-cli` release branches.
|
|
249
|
+
Use this repo's docs for the current CLI/runtime release branch and for marketplace lifecycle overview content.
|
|
250
|
+
Use the modules docs site for bundle-specific deep guidance so bundle-only changes can ship without rebuilding the core docs release branch.
|
|
238
251
|
|
|
239
252
|
---
|
|
240
253
|
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "specfact-cli"
|
|
7
|
-
version = "0.
|
|
7
|
+
version = "0.42.2"
|
|
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"
|
|
@@ -88,6 +88,7 @@ dependencies = [
|
|
|
88
88
|
|
|
89
89
|
# Code analysis
|
|
90
90
|
"ruff>=0.14.2",
|
|
91
|
+
"radon>=6.0.1",
|
|
91
92
|
|
|
92
93
|
# File system watching
|
|
93
94
|
"watchdog>=6.0.0",
|
|
@@ -108,6 +109,7 @@ dev = [
|
|
|
108
109
|
"isort>=7.0.0",
|
|
109
110
|
"pylint>=4.0.2",
|
|
110
111
|
"ruff>=0.14.2",
|
|
112
|
+
"radon>=6.0.1",
|
|
111
113
|
"tomlkit>=0.13.3", # Style-preserving TOML library (recommended successor to pytoml)
|
|
112
114
|
"types-PyYAML>=6.0.12.20250516",
|
|
113
115
|
"pip-tools>=7.5.1",
|
|
@@ -175,6 +177,7 @@ dependencies = [
|
|
|
175
177
|
"basedpyright>=1.32.1",
|
|
176
178
|
"pylint>=4.0.2",
|
|
177
179
|
"ruff>=0.14.2",
|
|
180
|
+
"radon>=6.0.1",
|
|
178
181
|
"yamllint>=1.37.1",
|
|
179
182
|
"semgrep>=1.144.0", # Latest version compatible with rich~=13.5.2
|
|
180
183
|
# Contract-First Development Dependencies
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.41.0 → specfact_cli-0.42.2}/src/specfact_cli/analyzers/contract_extractor.py
RENAMED
|
File without changes
|
{specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/analyzers/control_flow_analyzer.py
RENAMED
|
File without changes
|
|
File without changes
|
{specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/analyzers/relationship_mapper.py
RENAMED
|
File without changes
|
{specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/analyzers/requirement_extractor.py
RENAMED
|
File without changes
|
{specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/analyzers/test_pattern_extractor.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
|
{specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/backlog/mappers/github_mapper.py
RENAMED
|
File without changes
|
{specfact_cli-0.41.0 → specfact_cli-0.42.2}/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
|
|
File without changes
|
|
File without changes
|
|
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.41.0 → specfact_cli-0.42.2}/src/specfact_cli/enrichers/constitution_enricher.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/generators/contract_generator.py
RENAMED
|
File without changes
|
{specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/generators/openapi_extractor.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/generators/protocol_generator.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/generators/workflow_generator.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|