spec-kitty-cli 3.1.6__tar.gz → 3.1.8__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.
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/CHANGELOG.md +45 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/PKG-INFO +5 -3
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/README.md +3 -1
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/pyproject.toml +2 -2
- spec_kitty_cli-3.1.8/src/charter/_doctrine_paths.py +61 -0
- spec_kitty_cli-3.1.8/src/charter/compact.py +243 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/charter/context.py +28 -34
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/auth/flows/refresh.py +20 -37
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/auth/token_manager.py +9 -9
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/cli/commands/agent/config.py +233 -152
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/cli/commands/agent/mission.py +3 -2
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/cli/commands/agent/workflow.py +28 -19
- spec_kitty_cli-3.1.8/src/specify_cli/cli/commands/intake.py +200 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/cli/commands/merge.py +67 -66
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/core/execution_context.py +8 -2
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/dashboard/scanner.py +150 -65
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/dashboard/static/dashboard/dashboard.js +34 -7
- spec_kitty_cli-3.1.8/src/specify_cli/diagnostics/__init__.py +15 -0
- spec_kitty_cli-3.1.8/src/specify_cli/diagnostics/dedup.py +77 -0
- spec_kitty_cli-3.1.8/src/specify_cli/intake_sources.py +210 -0
- spec_kitty_cli-3.1.8/src/specify_cli/mission_brief.py +136 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/policy/hook_installer.py +10 -3
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/runtime/agent_commands.py +16 -8
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/shims/generator.py +63 -7
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/status/store.py +13 -2
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/sync/background.py +46 -23
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/runner.py +28 -16
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/.gitignore +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/LICENSE +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/architecture/1.x/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/architecture/1.x/adr/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/architecture/1.x/notes/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/architecture/2.x/00_landscape/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/architecture/2.x/01_context/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/architecture/2.x/02_containers/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/architecture/2.x/03_components/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/architecture/2.x/04_implementation_mapping/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/architecture/2.x/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/architecture/2.x/adr/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/architecture/2.x/initiatives/2026-02-architecture-discovery-and-restructure/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/architecture/2.x/initiatives/2026-03-054-postmortem/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/architecture/2.x/initiatives/2026-03-doctrine-execution-integration/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/architecture/2.x/initiatives/2026-04-mission-nomenclature-reconciliation/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/architecture/2.x/initiatives/2026-04-tracker-binding-context-discovery/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/architecture/2.x/initiatives/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/architecture/2.x/initiatives/next-mission-mappings/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/architecture/2.x/initiatives/test_improvement/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/architecture/2.x/user_journey/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/architecture/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/architecture/adrs/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/architecture/audience/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/architecture/audience/external/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/architecture/audience/internal/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/architecture/glossary/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/docs/development/tracking/next-mission-mappings/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/docs/reference/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/glossary/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/kitty-specs/007-frontmatter-only-lane/tasks/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/kitty-specs/008-unified-python-cli/tasks/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/kitty-specs/010-workspace-per-work-package-for-parallel-development/tasks/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/kitty-specs/011-constitution-packaging-safety-and-redesign/tasks/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/kitty-specs/012-documentation-mission/tasks/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/kitty-specs/014-comprehensive-end-user-documentation/tasks/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/kitty-specs/017-smarter-feature-merge-with-preflight/tasks/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/kitty-specs/018-merge-preflight-documentation/tasks/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/kitty-specs/019-autonomous-multi-agent-orchestration-research/tasks/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/kitty-specs/020-autonomous-multi-agent-orchestrator/tasks/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/kitty-specs/021-orchestrator-end-to-end-testing-suite/tasks/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/kitty-specs/028-cli-event-emission-sync/tasks/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/kitty-specs/032-identity-aware-cli-event-sync/tasks/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/kitty-specs/034-feature-status-state-model-remediation/tasks/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/kitty-specs/039-cli-2x-readiness/tasks/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/kitty-specs/041-enable-plan-mission-runtime-support/tasks/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/kitty-specs/045-mission-handoff-package-version-matrix/handoff/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/kitty-specs/045-mission-handoff-package-version-matrix/tasks/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/kitty-specs/047-mutmut-mutation-testing-ci/tasks/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/kitty-specs/047-namespace-aware-artifact-body-sync/tasks/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/kitty-specs/048-tracker-publish-resource-routing/tasks/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/kitty-specs/049-fix-merge-target-resolution/tasks/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/kitty-specs/050-state-model-cleanup-foundations/tasks/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/kitty-specs/051-canonical-state-authority-single-metadata-writer/tasks/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/kitty-specs/052-acceptance-pipeline-regression-fixes/tasks/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/kitty-specs/053-orchestrator-api-json-contract-fidelity/tasks/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/kitty-specs/054-constitution-interview-compiler-and-bootstrap/tasks/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/kitty-specs/054-state-architecture-cleanup-phase-2/tasks/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/kitty-specs/055-agent-skills-pack/tasks/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/kitty-specs/055-doctrine-stack-init-and-profile-integration/tasks/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/kitty-specs/056-documentation-parity-sprint/tasks/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/kitty-specs/057-canonical-context-architecture-cleanup/tasks/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/kitty-specs/058-hybrid-prompt-and-shim-agent-surface/tasks/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/kitty-specs/059-saas-mediated-cli-tracker-reflow/tasks/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/kitty-specs/060-canonical-status-model-cleanup/tasks/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/kitty-specs/061-ticket-first-mission-origin-binding/tasks/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/kitty-specs/062-fix-doctrine-migration-test-failures/tasks/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/kitty-specs/062-tracker-binding-context-discovery/tasks/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/kitty-specs/063-universal-charter-rename/tasks/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/kitty-specs/064-complete-mission-identity-cutover/tasks/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/kitty-specs/065-tasks-and-lane-stabilization/tasks/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/kitty-specs/065-wp-metadata-state-type-hardening/tasks/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/kitty-specs/066-review-loop-stabilization/tasks/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/kitty-specs/067-runtime-recovery-and-audit-safety/tasks/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/kitty-specs/068-post-merge-reliability-and-release-hardening/tasks/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/kitty-specs/069-planning-pipeline-integrity/tasks/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/kitty-specs/076-init-command-overhaul/tasks/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/kitty-specs/077-mission-terminology-cleanup/tasks/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/kitty-specs/078-planning-artifact-and-query-consistency/tasks/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/kitty-specs/079-post-555-release-hardening/tasks/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/kitty-specs/080-ci-hardening-and-lint-cleanup/tasks/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/kitty-specs/080-wpstate-lane-consumer-strangler-fig-phase-2/tasks/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/kitty-specs/081-canonical-baseline-and-repository-boundary/tasks/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/kitty-specs/082-stealth-gated-saas-sync-hardening/tasks/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/kitty-specs/083-agent-skills-codex-vibe/tasks/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/kitty-specs/bulk-edit-occurrence-classification-guardrail-01KP423X/tasks/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/kitty-specs/drg-phase-zero-01KP2YCE/tasks/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/kitty-specs/excise-doctrine-curation-and-inline-references-01KP54J6/tasks/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/kitty-specs/legacy-sparse-and-review-lock-hardening-01KP54ZW/tasks/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/kitty-specs/retire-mission-identity-drift-window-01KP2JNZ/tasks/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/kitty-specs/unified-charter-bundle-chokepoint-01KP5Q2G/tasks/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/scripts/release/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/scripts/tool_configs/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/charter/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/charter/__init__.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/charter/_drg_helpers.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/charter/bundle.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/charter/catalog.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/charter/compiler.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/charter/defaults.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/charter/extractor.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/charter/generator.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/charter/hasher.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/charter/interview.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/charter/language_scope.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/charter/parser.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/charter/resolution.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/charter/resolver.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/charter/schemas.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/charter/sync.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/charter/template_resolver.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/__init__.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/_reference/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/_reference/architecture/candidates/artifact-commit-discipline-and-structured-messages.import.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/_reference/architecture/candidates/quality-gates-pre-commit-commit-msg-ci.import.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/_reference/architecture/manifest.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/_reference/contracts/candidates/event-git-metadata-and-merge-resolution.import.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/_reference/contracts/manifest.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/_reference/contributing/candidates/git-commit-conventions-and-local-gates.import.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/_reference/contributing/candidates/release-branch-and-tag-discipline.import.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/_reference/contributing/manifest.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/_reference/example-zombies/candidates/zombies-tdd.import.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/_reference/example-zombies/manifest.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/_reference/penguin-pragmatic-patterns/candidates/ammerse-impact-analysis.import.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/_reference/penguin-pragmatic-patterns/candidates/avoid-gold-plating.import.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/_reference/penguin-pragmatic-patterns/candidates/connascence-coupling-analysis.import.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/_reference/penguin-pragmatic-patterns/candidates/do-the-important-things.import.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/_reference/penguin-pragmatic-patterns/candidates/easy-to-change.import.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/_reference/penguin-pragmatic-patterns/candidates/how-do-we-make-this-fail.import.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/_reference/penguin-pragmatic-patterns/candidates/safe-to-fail-experiment.import.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/_reference/penguin-pragmatic-patterns/candidates/software-architecture-quality-attributes.import.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/_reference/penguin-pragmatic-patterns/manifest.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/_reference/quickstart-agent-augmented-development/candidates/.gitkeep +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/_reference/quickstart-agent-augmented-development/candidates/agent-python-pedro.import.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/_reference/quickstart-agent-augmented-development/candidates/directive-016-atdd.import.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/_reference/quickstart-agent-augmented-development/candidates/directive-017-tdd.import.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/_reference/quickstart-agent-augmented-development/candidates/directive-037-context-aware-design.import.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/_reference/quickstart-agent-augmented-development/candidates/directive-038-conceptual-alignment.import.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/_reference/quickstart-agent-augmented-development/candidates/procedure-test-first-bug-fixing.import.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/_reference/quickstart-agent-augmented-development/candidates/styleguide-python-conventions.import.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/_reference/quickstart-agent-augmented-development/candidates/tactic-atdd-adversarial-acceptance.import.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/_reference/quickstart-agent-augmented-development/candidates/tactic-code-review-incremental.import.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/_reference/quickstart-agent-augmented-development/candidates/tactic-input-validation-fail-fast.import.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/_reference/quickstart-agent-augmented-development/candidates/tactic-language-driven-design.import.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/_reference/quickstart-agent-augmented-development/candidates/tactic-reverse-speccing.import.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/_reference/quickstart-agent-augmented-development/candidates/tactic-test-boundaries-by-responsibility.import.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/_reference/quickstart-agent-augmented-development/candidates/tactic-testing-select-appropriate-level.import.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/_reference/quickstart-agent-augmented-development/candidates/toolguide-python-review-checks.import.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/_reference/quickstart-agent-augmented-development/manifest.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/_reference/styleguides/candidates/git-local-config-tracking-controls.import.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/_reference/styleguides/candidates/git_commit_messages.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/_reference/styleguides/manifest.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/agent-profiles/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/agent_profiles/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/agent_profiles/__init__.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/agent_profiles/capabilities.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/agent_profiles/profile.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/agent_profiles/repository.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/agent_profiles/schema_models.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/agent_profiles/shipped/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/agent_profiles/shipped/architect.agent.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/agent_profiles/shipped/curator.agent.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/agent_profiles/shipped/designer.agent.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/agent_profiles/shipped/generic-agent.agent.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/agent_profiles/shipped/human-in-charge.agent.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/agent_profiles/shipped/implementer.agent.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/agent_profiles/shipped/planner.agent.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/agent_profiles/shipped/python-implementer.agent.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/agent_profiles/shipped/researcher.agent.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/agent_profiles/shipped/reviewer.agent.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/agent_profiles/validation.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/artifact_kinds.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/directives/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/directives/__init__.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/directives/models.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/directives/repository.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/directives/shipped/001-architectural-integrity-standard.directive.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/directives/shipped/003-decision-documentation-requirement.directive.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/directives/shipped/010-specification-fidelity-requirement.directive.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/directives/shipped/018-doctrine-versioning-requirement.directive.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/directives/shipped/024-locality-of-change.directive.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/directives/shipped/025-boy-scout-rule.directive.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/directives/shipped/028-search-tool-discipline.directive.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/directives/shipped/029-agent-commit-signing-policy.directive.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/directives/shipped/030-test-and-typecheck-quality-gate.directive.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/directives/shipped/031-context-aware-design.directive.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/directives/shipped/032-conceptual-alignment.directive.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/directives/shipped/033-targeted-staging-policy.directive.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/directives/shipped/034-test-first-development.directive.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/directives/shipped/035-bulk-edit-occurrence-classification.directive.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/directives/shipped/036-black-box-integration-testing.directive.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/directives/shipped/__init__.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/directives/test-first.directive.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/directives/validation.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/drg/__init__.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/drg/loader.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/drg/migration/__init__.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/drg/migration/calibrator.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/drg/migration/extractor.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/drg/migration/id_normalizer.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/drg/models.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/drg/query.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/drg/validator.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/graph.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/import_candidates/__init__.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/import_candidates/models.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/mission_step_contracts/__init__.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/mission_step_contracts/models.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/mission_step_contracts/repository.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/mission_step_contracts/shipped/implement.step-contract.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/mission_step_contracts/shipped/plan.step-contract.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/mission_step_contracts/shipped/review.step-contract.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/mission_step_contracts/shipped/specify.step-contract.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/missions/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/missions/__init__.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/missions/action_index.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/missions/documentation/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/missions/documentation/expected-artifacts.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/missions/documentation/mission.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/missions/documentation/templates/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/missions/documentation/templates/divio/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/missions/documentation/templates/divio/explanation-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/missions/documentation/templates/divio/howto-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/missions/documentation/templates/divio/reference-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/missions/documentation/templates/divio/tutorial-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/missions/documentation/templates/generators/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/missions/documentation/templates/generators/jsdoc.json.template +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/missions/documentation/templates/generators/sphinx-conf.py.template +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/missions/documentation/templates/plan-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/missions/documentation/templates/release-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/missions/documentation/templates/spec-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/missions/documentation/templates/task-prompt-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/missions/documentation/templates/tasks-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/missions/glossary_hook.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/missions/models.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/missions/plan/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/missions/plan/mission-runtime.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/missions/plan/mission.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/missions/plan/templates/.gitkeep +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/missions/plan/templates/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/missions/primitives.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/missions/repository.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/missions/research/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/missions/research/expected-artifacts.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/missions/research/mission.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/missions/research/templates/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/missions/research/templates/data-model-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/missions/research/templates/plan-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/missions/research/templates/research/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/missions/research/templates/research/evidence-log.csv +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/missions/research/templates/research/source-register.csv +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/missions/research/templates/research-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/missions/research/templates/spec-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/missions/research/templates/task-prompt-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/missions/research/templates/tasks-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/missions/software-dev/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/missions/software-dev/actions/implement/guidelines.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/missions/software-dev/actions/implement/index.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/missions/software-dev/actions/plan/guidelines.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/missions/software-dev/actions/plan/index.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/missions/software-dev/actions/review/guidelines.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/missions/software-dev/actions/review/index.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/missions/software-dev/actions/specify/guidelines.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/missions/software-dev/actions/specify/index.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/missions/software-dev/actions/tasks/index.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/missions/software-dev/expected-artifacts.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/missions/software-dev/mission-runtime.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/missions/software-dev/mission.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/missions/software-dev/templates/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/missions/software-dev/templates/plan-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/missions/software-dev/templates/spec-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/missions/software-dev/templates/task-prompt-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/missions/software-dev/templates/tasks-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/model_task_routing/__init__.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/model_task_routing/models.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/paradigms/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/paradigms/__init__.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/paradigms/models.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/paradigms/repository.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/paradigms/shipped/__init__.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/paradigms/shipped/atomic-design.paradigm.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/paradigms/shipped/c4-incremental-detail-modeling.paradigm.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/paradigms/shipped/domain-driven-design.paradigm.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/paradigms/test-first.paradigm.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/paradigms/validation.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/procedures/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/procedures/__init__.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/procedures/models.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/procedures/repository.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/procedures/shipped/__init__.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/procedures/shipped/documentation-gap-prioritization.procedure.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/procedures/shipped/drill-down-documentation.procedure.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/procedures/shipped/event-storming-discovery.procedure.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/procedures/shipped/migrate-project-guidance-to-spec-kitty-charter.procedure.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/procedures/shipped/refactoring.procedure.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/procedures/shipped/situational-assessment.procedure.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/procedures/shipped/test-first-bug-fixing.procedure.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/procedures/validation.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/pyproject.toml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/resolver.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/schemas/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/schemas/agent-profile.schema.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/schemas/directive.schema.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/schemas/import-candidate.schema.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/schemas/mission.schema.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/schemas/model-to-task_type.schema.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/schemas/occurrence-map.schema.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/schemas/paradigm.schema.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/schemas/procedure.schema.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/schemas/styleguide.schema.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/schemas/tactic.schema.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/schemas/toolguide.schema.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/service.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/shared/__init__.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/shared/errors.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/shared/exceptions.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/shared/models.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/shared/schema_utils.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/shared/scoping.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/skills/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/skills/ad-hoc-profile-load/SKILL.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/skills/spec-kitty-bulk-edit-classification/SKILL.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/skills/spec-kitty-charter-doctrine/SKILL.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/skills/spec-kitty-charter-doctrine/references/charter-command-map.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/skills/spec-kitty-charter-doctrine/references/doctrine-artifact-structure.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/skills/spec-kitty-git-workflow/SKILL.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/skills/spec-kitty-git-workflow/references/git-operations-matrix.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/skills/spec-kitty-glossary-context/SKILL.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/skills/spec-kitty-glossary-context/references/glossary-field-guide.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/skills/spec-kitty-glossary-context/references/semantic-drift-examples.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/skills/spec-kitty-implement-review/SKILL.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/skills/spec-kitty-implement-review/references/agent-dispatch-matrix.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/skills/spec-kitty-implement-review/references/rejection-loop-checklist.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/skills/spec-kitty-mission-review/SKILL.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/skills/spec-kitty-mission-review/references/mission-review-fr-trace-guide.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/skills/spec-kitty-mission-system/SKILL.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/skills/spec-kitty-mission-system/references/mission-comparison-matrix.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/skills/spec-kitty-orchestrator-api-operator/SKILL.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/skills/spec-kitty-orchestrator-api-operator/references/host-boundary-rules.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/skills/spec-kitty-orchestrator-api-operator/references/orchestrator-api-contract.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/skills/spec-kitty-runtime-next/SKILL.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/skills/spec-kitty-runtime-next/references/blocked-state-recovery.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/skills/spec-kitty-runtime-next/references/runtime-result-taxonomy.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/skills/spec-kitty-runtime-review/SKILL.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/skills/spec-kitty-runtime-review/references/review-checklist.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/skills/spec-kitty-setup-doctor/SKILL.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/skills/spec-kitty-setup-doctor/references/agent-path-matrix.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/skills/spec-kitty-setup-doctor/references/common-failure-signatures.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/skills/spec-kitty-setup-doctor/scripts/.gitkeep +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/styleguides/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/styleguides/__init__.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/styleguides/models.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/styleguides/python-implementation.styleguide.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/styleguides/repository.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/styleguides/shipped/__init__.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/styleguides/shipped/aggregate-design-rules.styleguide.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/styleguides/shipped/python-conventions.styleguide.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/styleguides/shipped/writing/kitty-glossary-writing.styleguide.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/styleguides/validation.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/styleguides/writing/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/styleguides/writing/kitty-glossary-writing.styleguide.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/tactics/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/tactics/__init__.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/tactics/acceptance-test-first.tactic.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/tactics/glossary-curation-interview.tactic.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/tactics/models.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/tactics/repository.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/tactics/shipped/__init__.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/tactics/shipped/acceptance-test-first.tactic.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/tactics/shipped/adr-drafting-workflow.tactic.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/tactics/shipped/aggregate-boundary-design.tactic.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/tactics/shipped/ammerse-impact-analysis.tactic.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/tactics/shipped/anti-corruption-layer.tactic.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/tactics/shipped/architecture-diagram-review-checklist.tactic.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/tactics/shipped/atdd-adversarial-acceptance.tactic.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/tactics/shipped/atomic-design-review-checklist.tactic.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/tactics/shipped/atomic-state-ownership.tactic.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/tactics/shipped/autonomous-operation-protocol.tactic.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/tactics/shipped/avoid-gold-plating.tactic.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/tactics/shipped/black-box-integration-testing.tactic.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/tactics/shipped/bounded-context-canvas-fill.tactic.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/tactics/shipped/bounded-context-identification.tactic.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/tactics/shipped/c4-zoom-in-architecture-documentation.tactic.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/tactics/shipped/change-apply-smallest-viable-diff.tactic.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/tactics/shipped/code-review-incremental.tactic.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/tactics/shipped/compositional-stream-boundaries.tactic.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/tactics/shipped/connascence-analysis.tactic.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/tactics/shipped/context-mapping-classification.tactic.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/tactics/shipped/cross-cutting-state-via-store.tactic.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/tactics/shipped/decision-marker-capture.tactic.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/tactics/shipped/documentation-curation-audit.tactic.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/tactics/shipped/domain-event-capture.tactic.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/tactics/shipped/easy-to-change.tactic.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/tactics/shipped/eisenhower-prioritisation.tactic.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/tactics/shipped/entity-value-object-classification.tactic.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/tactics/shipped/glossary-curation-interview.tactic.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/tactics/shipped/input-validation-fail-fast.tactic.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/tactics/shipped/language-driven-design.tactic.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/tactics/shipped/no-parallel-duplicate-test-runs.tactic.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/tactics/shipped/occurrence-classification-workflow.tactic.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/tactics/shipped/premortem-risk-identification.tactic.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/tactics/shipped/problem-decomposition.tactic.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/tactics/shipped/quality-gate-verification.tactic.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/tactics/shipped/refactoring/refactoring-change-function-declaration.tactic.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/tactics/shipped/refactoring/refactoring-combine-functions-into-transform.tactic.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/tactics/shipped/refactoring/refactoring-conditional-to-strategy.tactic.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/tactics/shipped/refactoring/refactoring-consolidate-conditional-expression.tactic.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/tactics/shipped/refactoring/refactoring-encapsulate-record.tactic.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/tactics/shipped/refactoring/refactoring-encapsulate-variable.tactic.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/tactics/shipped/refactoring/refactoring-extract-class-by-responsibility-split.tactic.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/tactics/shipped/refactoring/refactoring-extract-first-order-concept.tactic.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/tactics/shipped/refactoring/refactoring-guard-clauses-before-polymorphism.tactic.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/tactics/shipped/refactoring/refactoring-inline-temp.tactic.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/tactics/shipped/refactoring/refactoring-introduce-null-object.tactic.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/tactics/shipped/refactoring/refactoring-move-field.tactic.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/tactics/shipped/refactoring/refactoring-move-method.tactic.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/tactics/shipped/refactoring/refactoring-replace-magic-number-with-symbolic-constant.tactic.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/tactics/shipped/refactoring/refactoring-replace-temp-with-query.tactic.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/tactics/shipped/refactoring/refactoring-retry-pattern.tactic.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/tactics/shipped/refactoring/refactoring-state-pattern-for-behavior.tactic.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/tactics/shipped/refactoring/refactoring-strangler-fig.tactic.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/tactics/shipped/requirements-validation-workflow.tactic.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/tactics/shipped/reverse-speccing.tactic.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/tactics/shipped/review-intent-and-risk-first.tactic.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/tactics/shipped/safe-to-fail-experiment.tactic.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/tactics/shipped/stakeholder-alignment.tactic.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/tactics/shipped/stopping-conditions.tactic.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/tactics/shipped/strategic-domain-classification.tactic.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/tactics/shipped/tdd-red-green-refactor.tactic.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/tactics/shipped/test-boundaries-by-responsibility.tactic.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/tactics/shipped/test-pyramid-progression.tactic.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/tactics/shipped/testing-select-appropriate-level.tactic.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/tactics/shipped/zombies-tdd.tactic.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/tactics/tdd-red-green-refactor.tactic.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/tactics/validation.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/tactics/zombies-tdd.tactic.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/templates/AGENTS.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/templates/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/templates/agent-file-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/templates/architecture/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/templates/architecture/adr-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/templates/architecture/ammerse-analysis-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/templates/architecture/bounded-context-canvas-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/templates/architecture/c4-component-mermaid-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/templates/architecture/c4-container-mermaid-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/templates/architecture/c4-context-mermaid-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/templates/architecture/glossary-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/templates/architecture/lightweight-prestudy-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/templates/architecture/quality-attribute-assessment-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/templates/architecture/risk-identification-assessment-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/templates/architecture/stakeholder-persona-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/templates/architecture/swot-analysis-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/templates/architecture/system-context-canvas-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/templates/architecture/user-journey-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/templates/checklist-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/templates/claudeignore-template +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/templates/diagrams/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/templates/diagrams/mermaid/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/templates/diagrams/mermaid/examples/causal-map-mermaid-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/templates/diagrams/mermaid/examples/content-map-mermaid-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/templates/diagrams/mermaid/examples/frontend-architecture-mermaid-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/templates/diagrams/mermaid/examples/repo-content-graph-mermaid-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/templates/diagrams/mermaid/examples/request-lifecycle-sequence-mermaid-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/templates/diagrams/mermaid/examples/structure-meta-model-mermaid-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/templates/diagrams/mermaid/examples/system-map-mermaid-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/templates/diagrams/mermaid/themes/mermaid-theme-bluegray-conversation-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/templates/diagrams/mermaid/themes/mermaid-theme-common-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/templates/diagrams/plantuml/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/templates/diagrams/plantuml/examples/causal-map-plantuml-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/templates/diagrams/plantuml/examples/content-map-plantuml-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/templates/diagrams/plantuml/examples/event-storming-plantuml-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/templates/diagrams/plantuml/examples/frontend-architecture-plantuml-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/templates/diagrams/plantuml/examples/repo-content-graph-plantuml-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/templates/diagrams/plantuml/examples/request-lifecycle-plantuml-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/templates/diagrams/plantuml/examples/structure-meta-model-plantuml-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/templates/diagrams/plantuml/examples/system-map-plantuml-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/templates/diagrams/plantuml/themes/plantuml-theme-bluegray-conversation-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/templates/diagrams/plantuml/themes/plantuml-theme-common-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/templates/diagrams/plantuml/themes/plantuml-theme-stickies-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/templates/diagrams/themes/mermaid-theme-bluegray-conversation-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/templates/diagrams/themes/mermaid-theme-common-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/templates/guides/HOW-TO.template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/templates/occurrence-map-template.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/templates/plan-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/templates/profile-context.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/templates/repository.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/templates/sets/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/templates/spec-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/templates/structure/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/templates/structure/REPO_MAP.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/templates/structure/SURFACES.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/templates/task-prompt-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/templates/tasks-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/templates/vscode-settings.json +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/toolguides/POWERSHELL_SYNTAX.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/toolguides/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/toolguides/__init__.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/toolguides/models.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/toolguides/powershell-syntax.toolguide.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/toolguides/repository.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/toolguides/shipped/CONTEXTIVE.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/toolguides/shipped/EFFICIENT_LOCAL_TOOLING.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/toolguides/shipped/GIT_AGENT_COMMIT_SIGNING.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/toolguides/shipped/MERMAID_DIAGRAMMING.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/toolguides/shipped/PLANTUML_DIAGRAMMING.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/toolguides/shipped/PYTHON_REVIEW_CHECKS.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/toolguides/shipped/__init__.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/toolguides/shipped/contextive.toolguide.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/toolguides/shipped/efficient-local-tooling.toolguide.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/toolguides/shipped/git-agent-commit-signing.toolguide.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/toolguides/shipped/mermaid-diagramming.toolguide.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/toolguides/shipped/plantuml-diagramming.toolguide.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/toolguides/shipped/python-review-checks.toolguide.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/toolguides/shipped/system_tools/RTK_SEARCH_TOOLING.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/toolguides/shipped/system_tools/__init__.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/toolguides/shipped/system_tools/rtk-search-tooling.toolguide.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/doctrine/toolguides/validation.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/kernel/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/kernel/__init__.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/kernel/_safe_re.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/kernel/atomic.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/kernel/glossary_runner.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/kernel/glossary_types.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/kernel/paths.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/.contextive/dossier.yml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/.contextive/execution.yml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/.contextive/governance.yml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/.contextive/lexical.yml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/.contextive/orchestration.yml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/.contextive/system-events.yml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/.contextive/technology-foundations.yml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/__init__.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/__main__.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/acceptance.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/acceptance_matrix.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/agent_utils/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/agent_utils/__init__.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/agent_utils/directories.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/agent_utils/status.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/auth/__init__.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/auth/config.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/auth/device_flow/__init__.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/auth/device_flow/poller.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/auth/device_flow/state.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/auth/errors.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/auth/flows/__init__.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/auth/flows/authorization_code.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/auth/flows/device_code.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/auth/http/__init__.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/auth/http/transport.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/auth/loopback/__init__.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/auth/loopback/browser_launcher.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/auth/loopback/callback_handler.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/auth/loopback/callback_server.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/auth/loopback/pkce.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/auth/loopback/state.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/auth/loopback/state_manager.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/auth/secure_storage/__init__.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/auth/secure_storage/abstract.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/auth/secure_storage/file_fallback.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/auth/secure_storage/keychain.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/auth/secure_storage/windows_storage.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/auth/session.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/auth/websocket/__init__.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/auth/websocket/token_provisioning.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/bulk_edit/__init__.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/bulk_edit/diff_check.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/bulk_edit/gate.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/bulk_edit/inference.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/bulk_edit/occurrence_map.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/charter/__init__.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/charter/_drg_helpers.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/charter/catalog.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/charter/compiler.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/charter/context.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/charter/extractor.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/charter/generator.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/charter/hasher.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/charter/interview.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/charter/parser.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/charter/resolver.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/charter/schemas.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/charter/sync.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/cli/.contextive.yml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/cli/__init__.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/cli/commands/__init__.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/cli/commands/_auth_login.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/cli/commands/_auth_logout.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/cli/commands/_auth_status.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/cli/commands/accept.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/cli/commands/agent/README.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/cli/commands/agent/__init__.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/cli/commands/agent/context.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/cli/commands/agent/release.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/cli/commands/agent/status.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/cli/commands/agent/tasks.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/cli/commands/agent/tests.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/cli/commands/auth.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/cli/commands/charter.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/cli/commands/charter_bundle.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/cli/commands/config_cmd.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/cli/commands/context.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/cli/commands/dashboard.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/cli/commands/doctor.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/cli/commands/glossary.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/cli/commands/implement.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/cli/commands/init.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/cli/commands/init_help.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/cli/commands/lifecycle.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/cli/commands/materialize.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/cli/commands/merge_driver.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/cli/commands/migrate_cmd.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/cli/commands/mission.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/cli/commands/mission_type.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/cli/commands/next_cmd.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/cli/commands/ops.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/cli/commands/repair.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/cli/commands/research.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/cli/commands/sync.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/cli/commands/tracker.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/cli/commands/upgrade.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/cli/commands/validate_encoding.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/cli/commands/validate_tasks.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/cli/commands/verify.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/cli/helpers.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/cli/selector_resolution.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/cli/step_tracker.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/cli/ui.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/context/__init__.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/context/errors.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/context/middleware.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/context/mission_resolver.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/context/models.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/context/resolver.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/context/store.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/core/__init__.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/core/agent_config.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/core/atomic.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/core/config.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/core/constants.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/core/context_validation.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/core/contract_gate.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/core/dependency_graph.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/core/dependency_parser.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/core/git_ops.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/core/git_preflight.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/core/identity_aliases.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/core/mission_creation.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/core/paths.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/core/project_resolver.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/core/stale_detection.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/core/tool_checker.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/core/upstream_contract.json +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/core/utils.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/core/vcs/__init__.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/core/vcs/detection.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/core/vcs/exceptions.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/core/vcs/git.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/core/vcs/protocol.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/core/vcs/types.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/core/version_checker.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/core/worktree.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/core/worktree_topology.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/core/wps_manifest.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/dashboard/__init__.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/dashboard/api_types.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/dashboard/charter_path.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/dashboard/diagnostics.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/dashboard/handlers/__init__.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/dashboard/handlers/api.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/dashboard/handlers/base.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/dashboard/handlers/features.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/dashboard/handlers/router.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/dashboard/handlers/static.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/dashboard/lifecycle.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/dashboard/server.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/dashboard/static/dashboard/dashboard.css +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/dashboard/static/js/dossier-panel.js +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/dashboard/static/spec-kitty.png +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/dashboard/templates/__init__.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/dashboard/templates/index.html +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/doc_generators.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/doc_state.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/dossier/.contextive.yml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/dossier/__init__.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/dossier/api.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/dossier/drift_detector.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/dossier/events.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/dossier/hasher.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/dossier/indexer.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/dossier/manifest.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/dossier/models.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/dossier/snapshot.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/encoding.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/events/__init__.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/events/adapter.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/frontmatter.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/gap_analysis.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/git/__init__.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/git/commit_helpers.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/git/sparse_checkout.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/git/sparse_checkout_remediation.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/gitignore_manager.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/glossary/.contextive.yml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/glossary/__init__.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/glossary/attachment.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/glossary/checkpoint.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/glossary/clarification.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/glossary/conflict.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/glossary/events.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/glossary/exceptions.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/glossary/extraction.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/glossary/middleware.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/glossary/models.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/glossary/pipeline.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/glossary/prompts.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/glossary/py.typed +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/glossary/rendering.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/glossary/resolution.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/glossary/scope.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/glossary/store.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/glossary/strictness.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/lanes/__init__.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/lanes/branch_naming.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/lanes/compute.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/lanes/implement_support.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/lanes/merge.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/lanes/models.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/lanes/persistence.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/lanes/recovery.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/lanes/stale_check.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/lanes/worktree_allocator.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/legacy_detector.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/manifest.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/merge/.contextive.yml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/merge/__init__.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/merge/config.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/merge/conflict_resolver.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/merge/ordering.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/merge/state.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/merge/workspace.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/migration/__init__.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/migration/backfill_identity.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/migration/backfill_ownership.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/migration/gate.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/migration/rebuild_state.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/migration/rewrite_shims.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/migration/runner.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/migration/schema_version.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/migration/strip_frontmatter.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/mission.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/mission_metadata.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/mission_v1/__init__.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/mission_v1/compat.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/mission_v1/events.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/mission_v1/guards.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/mission_v1/runner.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/mission_v1/schema.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/missions/.contextive.yml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/missions/__init__.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/missions/documentation/expected-artifacts.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/missions/documentation/mission.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/missions/documentation/templates/divio/explanation-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/missions/documentation/templates/divio/howto-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/missions/documentation/templates/divio/reference-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/missions/documentation/templates/divio/tutorial-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/missions/documentation/templates/generators/jsdoc.json.template +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/missions/documentation/templates/generators/sphinx-conf.py.template +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/missions/documentation/templates/plan-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/missions/documentation/templates/release-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/missions/documentation/templates/spec-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/missions/documentation/templates/task-prompt-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/missions/documentation/templates/tasks-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/missions/glossary_hook.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/missions/plan/mission-runtime.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/missions/plan/mission.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/missions/plan/templates/.gitkeep +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/missions/primitives.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/missions/research/expected-artifacts.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/missions/research/mission.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/missions/research/templates/data-model-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/missions/research/templates/plan-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/missions/research/templates/research/evidence-log.csv +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/missions/research/templates/research/source-register.csv +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/missions/research/templates/research-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/missions/research/templates/spec-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/missions/research/templates/task-prompt-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/missions/research/templates/tasks-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/missions/software-dev/command-templates/analyze.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/missions/software-dev/command-templates/charter.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/missions/software-dev/command-templates/checklist.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/missions/software-dev/command-templates/implement.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/missions/software-dev/command-templates/plan.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/missions/software-dev/command-templates/research.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/missions/software-dev/command-templates/review.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/missions/software-dev/command-templates/specify.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/missions/software-dev/command-templates/tasks-outline.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/missions/software-dev/command-templates/tasks-packages.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/missions/software-dev/command-templates/tasks.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/missions/software-dev/expected-artifacts.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/missions/software-dev/mission-runtime.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/missions/software-dev/mission.yaml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/missions/software-dev/templates/plan-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/missions/software-dev/templates/spec-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/missions/software-dev/templates/task-prompt-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/missions/software-dev/templates/tasks-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/next/__init__.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/next/decision.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/next/prompt_builder.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/next/runtime_bridge.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/orchestrator_api/__init__.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/orchestrator_api/commands.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/orchestrator_api/envelope.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/ownership/__init__.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/ownership/audit_targets.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/ownership/inference.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/ownership/models.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/ownership/validation.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/ownership/workspace_strategy.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/paths/__init__.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/paths/windows_migrate.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/paths/windows_paths.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/plan_validation.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/policy/__init__.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/policy/audit.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/policy/commit_guard.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/policy/commit_guard_hook.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/policy/config.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/policy/merge_gates.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/policy/risk_scorer.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/post_merge/__init__.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/post_merge/stale_assertions.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/release/__init__.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/release/changelog.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/release/payload.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/release/version.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/requirement_mapping.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/review/__init__.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/review/arbiter.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/review/artifacts.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/review/baseline.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/review/dirty_classifier.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/review/fix_prompt.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/review/lock.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/runtime/__init__.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/runtime/agent_skills.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/runtime/bootstrap.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/runtime/doctor.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/runtime/home.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/runtime/merge.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/runtime/migrate.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/runtime/resolver.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/runtime/show_origin.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/saas/__init__.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/saas/readiness.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/saas/rollout.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/schemas/wps.schema.json +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/scripts/tasks/acceptance_support.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/scripts/tasks/task_helpers.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/scripts/tasks/tasks_cli.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/shims/__init__.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/shims/registry.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/skills/__init__.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/skills/_user_input_block.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/skills/command_installer.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/skills/command_renderer.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/skills/data/__init__.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/skills/data/skills-manifest.schema.json +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/skills/installer.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/skills/manifest.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/skills/manifest_errors.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/skills/manifest_store.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/skills/paths.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/skills/registry.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/skills/verifier.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/skills/vibe_config.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/spec_kitty_events/__init__.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/spec_kitty_events/clock.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/spec_kitty_events/conflict.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/spec_kitty_events/crdt.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/spec_kitty_events/error_log.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/spec_kitty_events/merge.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/spec_kitty_events/models.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/spec_kitty_events/py.typed +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/spec_kitty_events/storage.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/spec_kitty_events/topology.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/state/__init__.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/state/doctor.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/state_contract.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/status/.contextive.yml +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/status/__init__.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/status/bootstrap.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/status/doctor.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/status/emit.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/status/event_log_merge.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/status/history_parser.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/status/identity_audit.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/status/lane_reader.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/status/locking.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/status/models.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/status/progress.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/status/reducer.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/status/transition_context.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/status/transitions.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/status/validate.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/status/views.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/status/wp_metadata.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/status/wp_state.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/sync/__init__.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/sync/batch.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/sync/body_queue.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/sync/body_transport.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/sync/body_upload.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/sync/client.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/sync/clock.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/sync/config.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/sync/daemon.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/sync/diagnose.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/sync/dossier_pipeline.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/sync/emitter.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/sync/events.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/sync/feature_flags.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/sync/git_metadata.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/sync/namespace.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/sync/project_identity.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/sync/queue.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/sync/runtime.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/task_metadata_validation.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/task_profile.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/tasks_support.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/template/__init__.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/template/asset_generator.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/template/manager.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/template/renderer.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/templates/AGENTS.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/templates/POWERSHELL_SYNTAX.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/templates/agent-file-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/templates/checklist-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/templates/claudeignore-template +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/templates/plan-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/templates/spec-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/templates/task-prompt-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/templates/tasks-template.md +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/templates/vscode-settings.json +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/text_sanitization.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/tracker/__init__.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/tracker/config.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/tracker/credentials.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/tracker/discovery.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/tracker/factory.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/tracker/feature_flags.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/tracker/local_service.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/tracker/origin.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/tracker/origin_models.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/tracker/saas_client.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/tracker/saas_service.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/tracker/service.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/tracker/store.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/__init__.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/compat.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/detector.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/feature_meta.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/metadata.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/migrations/__init__.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/migrations/_legacy_codex_hashes.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/migrations/base.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/migrations/m_0_10_0_python_only.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/migrations/m_0_10_12_charter_cleanup.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/migrations/m_0_10_14_update_implement_slash_command.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/migrations/m_0_10_1_populate_slash_commands.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/migrations/m_0_10_2_update_slash_commands.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/migrations/m_0_10_6_workflow_simplification.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/migrations/m_0_10_8_fix_memory_structure.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/migrations/m_0_10_9_repair_templates.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/migrations/m_0_11_1_improved_workflow_templates.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/migrations/m_0_11_1_update_implement_slash_command.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/migrations/m_0_11_2_improved_workflow_templates.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/migrations/m_0_11_3_workflow_agent_flag.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/migrations/m_0_12_0_documentation_mission.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/migrations/m_0_12_1_remove_kitty_specs_from_gitignore.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/migrations/m_0_13_0_research_csv_schema_check.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/migrations/m_0_13_0_update_charter_templates.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/migrations/m_0_13_0_update_research_implement_templates.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/migrations/m_0_13_1_exclude_worktrees.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/migrations/m_0_13_5_add_commit_workflow_to_templates.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/migrations/m_0_13_8_target_branch.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/migrations/m_0_14_0_centralized_feature_detection.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/migrations/m_0_16_2_remove_wp_status_gitignore_rule.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/migrations/m_0_2_0_specify_to_kittify.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/migrations/m_0_4_8_gitignore_agents.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/migrations/m_0_6_5_commands_rename.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/migrations/m_0_6_7_ensure_missions.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/migrations/m_0_7_2_worktree_commands_dedup.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/migrations/m_0_7_3_update_scripts.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/migrations/m_0_8_0_remove_active_mission.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/migrations/m_0_8_0_worktree_agents_symlink.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/migrations/m_0_9_0_frontmatter_only_lanes.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/migrations/m_0_9_1_complete_lane_migration.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/migrations/m_0_9_2_research_mission_templates.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/migrations/m_2_0_0_charter_directory.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/migrations/m_2_0_0_historical_status_migration.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/migrations/m_2_0_0_retire_git_hooks.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/migrations/m_2_0_11_install_skills.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/migrations/m_2_0_11_remove_clarify_command.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/migrations/m_2_0_1_fix_generated_command_templates.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/migrations/m_2_0_1_tool_config_key_rename.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/migrations/m_2_0_2_charter_context_bootstrap.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/migrations/m_2_0_6_consistency_sweep.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/migrations/m_2_0_7_fix_stale_overrides.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/migrations/m_2_0_9_state_gitignore.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/migrations/m_2_1_1_repair_skill_pack.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/migrations/m_2_1_2_fix_charter_doctrine_skill.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/migrations/m_2_1_2_fix_glossary_context_skill.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/migrations/m_2_1_2_fix_orchestrator_api_skill.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/migrations/m_2_1_2_fix_runtime_next_skill.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/migrations/m_2_1_2_install_git_workflow_skill.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/migrations/m_2_1_2_install_mission_system_skill.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/migrations/m_2_1_2_remove_release_skill.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/migrations/m_2_1_3_fix_planning_repository_terminology.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/migrations/m_2_1_3_restore_prompt_commands.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/migrations/m_2_1_4_enforce_command_file_state.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/migrations/m_2_2_0_profile_context_deployment.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/migrations/m_3_0_0_canonical_context.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/migrations/m_3_0_2_restore_prompt_commands.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/migrations/m_3_0_3_globalize_skill_pack.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/migrations/m_3_1_1_charter_rename.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/migrations/m_3_1_1_direct_canonical_commands.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/migrations/m_3_1_1_event_log_merge_driver.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/migrations/m_3_1_1_normalize_status_json.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/migrations/m_3_1_2_globalize_commands.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/migrations/m_3_2_0_codex_to_skills.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/migrations/m_3_2_0_update_planning_templates.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/migrations/m_3_2_1_strip_selection_config.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/migrations/m_3_2_2_safe_globalize_commands.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/migrations/m_3_2_3_unified_bundle.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/registry.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/upgrade/skill_update.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/validators/__init__.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/validators/csv_schema.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/validators/paths.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/validators/research.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/verify_enhanced.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/version_utils.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/src/specify_cli/workspace_context.py +0 -0
- {spec_kitty_cli-3.1.6 → spec_kitty_cli-3.1.8}/tests/README.md +0 -0
|
@@ -9,6 +9,51 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
9
9
|
|
|
10
10
|
## [Unreleased]
|
|
11
11
|
|
|
12
|
+
## [3.1.8] - 2026-04-29
|
|
13
|
+
|
|
14
|
+
### Fixed
|
|
15
|
+
|
|
16
|
+
- Dashboard feature polling now tolerates `/api/features` error or malformed
|
|
17
|
+
payloads without crashing on an undefined `features` array, so the UI no
|
|
18
|
+
longer gets stuck on loading when feature scanning fails.
|
|
19
|
+
- OpenCode global command installation now targets OpenCode's config command
|
|
20
|
+
directory, honoring `OPENCODE_CONFIG_DIR` and `XDG_CONFIG_HOME` before
|
|
21
|
+
falling back to `~/.config/opencode/commands`.
|
|
22
|
+
|
|
23
|
+
## [3.1.7] - 2026-04-28
|
|
24
|
+
|
|
25
|
+
### Fixed
|
|
26
|
+
|
|
27
|
+
- Compact charter context now preserves charter section anchors, directive IDs,
|
|
28
|
+
and tactic IDs so follow-on agent prompts keep the project charter rules in
|
|
29
|
+
LLM context after the bootstrap load.
|
|
30
|
+
- Review claims now enter the canonical `in_review` lane and still recognize
|
|
31
|
+
legacy review-claim events, avoiding review-loop false blocks.
|
|
32
|
+
- Merge completion now keeps post-merge status transitions stable and avoids
|
|
33
|
+
duplicate done/approved emissions.
|
|
34
|
+
- `spec-kitty intake` now caps oversized plan files, ignores out-of-repo and
|
|
35
|
+
symlinked auto-detected plans, and writes mission brief/provenance files
|
|
36
|
+
atomically.
|
|
37
|
+
- `auth refresh` now treats `HTTP 401` responses with `invalid_grant` or
|
|
38
|
+
`session_invalid` error codes like `HTTP 400`, and clears locally stored
|
|
39
|
+
sessions after server-side refresh rejection.
|
|
40
|
+
- Local dashboard mission selectors now sort by mission recency instead of
|
|
41
|
+
lexical slug order.
|
|
42
|
+
- `agent config list/status/add/sync/remove` now respects global command roots
|
|
43
|
+
for slash-command agents and avoids recreating retired project-local command
|
|
44
|
+
directories.
|
|
45
|
+
- Status event readers now ignore non-lane mission events in
|
|
46
|
+
`status.events.jsonl` while still failing loudly for malformed lane events.
|
|
47
|
+
- Sync shutdown diagnostics are deduplicated within a process and suppressed
|
|
48
|
+
after successful JSON mission creation.
|
|
49
|
+
|
|
50
|
+
### Changed
|
|
51
|
+
|
|
52
|
+
- `spec-kitty-tracker` is pinned to `0.4.3` for the latest tracker-side
|
|
53
|
+
stability fixes.
|
|
54
|
+
- The local `.python-version` pin now uses `3.13` instead of a patch-specific
|
|
55
|
+
interpreter version.
|
|
56
|
+
|
|
12
57
|
## [3.1.6] - 2026-04-20
|
|
13
58
|
|
|
14
59
|
### Fixed
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: spec-kitty-cli
|
|
3
|
-
Version: 3.1.
|
|
3
|
+
Version: 3.1.8
|
|
4
4
|
Summary: Spec Kitty, a tool for Specification Driven Development (SDD) agentic projects, with kanban and git worktree isolation.
|
|
5
5
|
Project-URL: Repository, https://github.com/Priivacy-ai/spec-kitty
|
|
6
6
|
Project-URL: Issues, https://github.com/Priivacy-ai/spec-kitty/issues
|
|
@@ -67,7 +67,7 @@ Requires-Dist: rich>=14.3.3
|
|
|
67
67
|
Requires-Dist: ruamel-yaml>=0.18.0
|
|
68
68
|
Requires-Dist: spec-kitty-events==3.0.0
|
|
69
69
|
Requires-Dist: spec-kitty-runtime==0.4.3
|
|
70
|
-
Requires-Dist: spec-kitty-tracker==0.4.
|
|
70
|
+
Requires-Dist: spec-kitty-tracker==0.4.3
|
|
71
71
|
Requires-Dist: toml>=0.10.2
|
|
72
72
|
Requires-Dist: transitions>=0.9.2
|
|
73
73
|
Requires-Dist: truststore>=0.10.4
|
|
@@ -199,9 +199,11 @@ graph LR
|
|
|
199
199
|
|
|
200
200
|
</div>
|
|
201
201
|
|
|
202
|
-
**Current stable release line:** `v3.1.x` (current release: `3.1.
|
|
202
|
+
**Current stable release line:** `v3.1.x` (current release: `3.1.7` on GitHub Releases and PyPI)
|
|
203
203
|
|
|
204
204
|
**3.1.x highlights:**
|
|
205
|
+
- **Compact charter context now keeps charter anchors in LLM context** — follow-on agent prompts retain charter section anchors plus directive and tactic IDs after bootstrap.
|
|
206
|
+
- **Stability fixes for review, intake, auth, tracker sync, and dashboard selection** — 3.1.7 is a quality hotfix for the stable 3.1 line.
|
|
205
207
|
- **`agent action implement` now honors the bulk-edit acknowledgement override** — false-positive bulk-edit inference warnings no longer block workspace creation when the mission is not actually a bulk edit and the user explicitly acknowledges that.
|
|
206
208
|
- **Maintainer governance now documents the ownership boundary for user customizations** — Spec Kitty's internal charter records that package-owned mutation flows must not clobber user-authored custom commands, custom skills, or project overrides without explicit ownership proof.
|
|
207
209
|
|
|
@@ -101,9 +101,11 @@ graph LR
|
|
|
101
101
|
|
|
102
102
|
</div>
|
|
103
103
|
|
|
104
|
-
**Current stable release line:** `v3.1.x` (current release: `3.1.
|
|
104
|
+
**Current stable release line:** `v3.1.x` (current release: `3.1.7` on GitHub Releases and PyPI)
|
|
105
105
|
|
|
106
106
|
**3.1.x highlights:**
|
|
107
|
+
- **Compact charter context now keeps charter anchors in LLM context** — follow-on agent prompts retain charter section anchors plus directive and tactic IDs after bootstrap.
|
|
108
|
+
- **Stability fixes for review, intake, auth, tracker sync, and dashboard selection** — 3.1.7 is a quality hotfix for the stable 3.1 line.
|
|
107
109
|
- **`agent action implement` now honors the bulk-edit acknowledgement override** — false-positive bulk-edit inference warnings no longer block workspace creation when the mission is not actually a bulk edit and the user explicitly acknowledges that.
|
|
108
110
|
- **Maintainer governance now documents the ownership boundary for user customizations** — Spec Kitty's internal charter records that package-owned mutation flows must not clobber user-authored custom commands, custom skills, or project overrides without explicit ownership proof.
|
|
109
111
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "spec-kitty-cli"
|
|
3
|
-
version = "3.1.
|
|
3
|
+
version = "3.1.8"
|
|
4
4
|
description = "Spec Kitty, a tool for Specification Driven Development (SDD) agentic projects, with kanban and git worktree isolation."
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
license = { file = "LICENSE" }
|
|
@@ -62,7 +62,7 @@ dependencies = [
|
|
|
62
62
|
"psutil>=5.9.0", # Cross-platform process management for dashboard
|
|
63
63
|
"spec-kitty-events==3.0.0",
|
|
64
64
|
"spec-kitty-runtime==0.4.3",
|
|
65
|
-
"spec-kitty-tracker==0.4.
|
|
65
|
+
"spec-kitty-tracker==0.4.3",
|
|
66
66
|
"websockets>=12.0", # WebSocket client for sync protocol
|
|
67
67
|
"toml>=0.10.2", # Config file parsing
|
|
68
68
|
"filelock>=3.13.0", # Credential storage locking
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"""Shared DoctrineService project-root candidate resolution.
|
|
2
|
+
|
|
3
|
+
Both ``src/charter/compiler.py::_default_doctrine_service`` and
|
|
4
|
+
``src/charter/context.py::_build_doctrine_service`` use the same candidate-list
|
|
5
|
+
ordering. This module is the **single source of truth** for that ordering so
|
|
6
|
+
the two call-sites cannot drift apart.
|
|
7
|
+
|
|
8
|
+
Candidate ordering (FR-009 / T024 / T025):
|
|
9
|
+
|
|
10
|
+
1. ``.kittify/doctrine/`` — Phase 3 synthesis target; present only after a
|
|
11
|
+
successful ``spec-kitty charter synthesize`` run.
|
|
12
|
+
2. ``src/doctrine/`` — code-local shipped-layer path (legacy 3.x default).
|
|
13
|
+
3. ``doctrine/`` — flat shipped-layer fallback.
|
|
14
|
+
|
|
15
|
+
Discovery is **conditional on directory presence**: if ``.kittify/doctrine/``
|
|
16
|
+
does not exist the resolver returns the next matching candidate, preserving
|
|
17
|
+
byte-identical behaviour for legacy (pre-synthesis) projects (R-2 mitigation).
|
|
18
|
+
"""
|
|
19
|
+
|
|
20
|
+
from __future__ import annotations
|
|
21
|
+
|
|
22
|
+
from pathlib import Path
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
# ---------------------------------------------------------------------------
|
|
26
|
+
# Candidate list (ordered: synthesis-aware first, shipped-layer fallbacks after)
|
|
27
|
+
# ---------------------------------------------------------------------------
|
|
28
|
+
|
|
29
|
+
_PROJECT_ROOT_CANDIDATES: tuple[str, ...] = (
|
|
30
|
+
".kittify/doctrine", # NEW — Phase 3 synthesis target (FR-009)
|
|
31
|
+
"src/doctrine", # existing — code-local shipped-layer path
|
|
32
|
+
"doctrine", # existing — flat shipped-layer fallback
|
|
33
|
+
)
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
def resolve_project_root(repo_root: Path) -> Path | None:
|
|
37
|
+
"""Return the first existing project-doctrine directory for *repo_root*.
|
|
38
|
+
|
|
39
|
+
Returns ``None`` when none of the candidates exist on disk, which means
|
|
40
|
+
``DoctrineService`` will be constructed with ``project_root=None`` (shipped
|
|
41
|
+
layer only — identical to the pre-Phase-3 default).
|
|
42
|
+
|
|
43
|
+
The function is intentionally a thin directory-presence check: it does
|
|
44
|
+
**not** inspect the directory's contents. An empty ``.kittify/doctrine/``
|
|
45
|
+
directory is still a valid candidate (the ``DoctrineService`` will simply
|
|
46
|
+
surface an empty project layer with no shipped-layer impact).
|
|
47
|
+
|
|
48
|
+
Args:
|
|
49
|
+
repo_root: Absolute path to the repository root.
|
|
50
|
+
|
|
51
|
+
Returns:
|
|
52
|
+
The first matching :class:`~pathlib.Path` or ``None``.
|
|
53
|
+
"""
|
|
54
|
+
for candidate in _PROJECT_ROOT_CANDIDATES:
|
|
55
|
+
path = repo_root / candidate
|
|
56
|
+
if path.is_dir():
|
|
57
|
+
return path
|
|
58
|
+
return None
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
__all__ = ["resolve_project_root", "_PROJECT_ROOT_CANDIDATES"]
|
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
"""Compact charter view (FR-034, WP07/T041).
|
|
2
|
+
|
|
3
|
+
Bootstrap mode renders the whole charter governance bundle: paradigms,
|
|
4
|
+
directives, tactics, tools, plus the long-form prose body of each
|
|
5
|
+
section. Compact mode is what we hand to agents on subsequent action
|
|
6
|
+
loads to keep the context window cheap, but until WP07 it dropped the
|
|
7
|
+
*identifiers* — directive IDs, tactic IDs, and section anchors — which
|
|
8
|
+
agents key on. Issue #790 traced bad agent behaviour to that loss.
|
|
9
|
+
|
|
10
|
+
The contract this module enforces (and the contract test asserts): for
|
|
11
|
+
any charter, the set of directive IDs, tactic IDs, and section anchors
|
|
12
|
+
emitted by ``render_compact_view`` is exactly the set emitted by the
|
|
13
|
+
bootstrap view. Only long-form prose may be elided in compact mode.
|
|
14
|
+
"""
|
|
15
|
+
|
|
16
|
+
from __future__ import annotations
|
|
17
|
+
|
|
18
|
+
from collections.abc import Iterable
|
|
19
|
+
from dataclasses import dataclass, field
|
|
20
|
+
from pathlib import Path
|
|
21
|
+
|
|
22
|
+
from charter._doctrine_paths import resolve_project_root
|
|
23
|
+
from charter.language_scope import infer_repo_languages
|
|
24
|
+
from charter.resolver import GovernanceResolutionError, resolve_governance
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
__all__ = [
|
|
28
|
+
"CompactView",
|
|
29
|
+
"extract_section_anchors",
|
|
30
|
+
"render_compact_view",
|
|
31
|
+
]
|
|
32
|
+
|
|
33
|
+
NONE_LABEL = "(none)"
|
|
34
|
+
KITTIFY_DIRNAME = ".kittify"
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
@dataclass(frozen=True)
|
|
38
|
+
class CompactView:
|
|
39
|
+
"""Structured payload for the compact charter view.
|
|
40
|
+
|
|
41
|
+
Tests treat the four ID/anchor sets as the contract surface.
|
|
42
|
+
``text`` is the rendered string suitable for direct inclusion in
|
|
43
|
+
agent context, and ``token_estimate`` is a coarse character-based
|
|
44
|
+
proxy used by smoke checks to verify compact stays meaningfully
|
|
45
|
+
smaller than bootstrap.
|
|
46
|
+
"""
|
|
47
|
+
|
|
48
|
+
text: str
|
|
49
|
+
directive_ids: tuple[str, ...] = field(default_factory=tuple)
|
|
50
|
+
tactic_ids: tuple[str, ...] = field(default_factory=tuple)
|
|
51
|
+
section_anchors: tuple[str, ...] = field(default_factory=tuple)
|
|
52
|
+
|
|
53
|
+
@property
|
|
54
|
+
def token_estimate(self) -> int:
|
|
55
|
+
"""Rough proxy for token count (4 chars/token heuristic)."""
|
|
56
|
+
return max(1, len(self.text) // 4)
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
def extract_section_anchors(charter_text: str) -> list[str]:
|
|
60
|
+
"""Return ordered, de-duplicated section anchor strings.
|
|
61
|
+
|
|
62
|
+
A "section anchor" is the heading text from any ``#``-style
|
|
63
|
+
Markdown heading. We preserve insertion order so anchors line up
|
|
64
|
+
with the bootstrap reading order, and deduplicate so repeated
|
|
65
|
+
headings (rare, but possible) only contribute once to the contract.
|
|
66
|
+
"""
|
|
67
|
+
seen: set[str] = set()
|
|
68
|
+
anchors: list[str] = []
|
|
69
|
+
for line in charter_text.splitlines():
|
|
70
|
+
anchor = _extract_markdown_heading(line)
|
|
71
|
+
if not anchor:
|
|
72
|
+
continue
|
|
73
|
+
if anchor in seen:
|
|
74
|
+
continue
|
|
75
|
+
seen.add(anchor)
|
|
76
|
+
anchors.append(anchor)
|
|
77
|
+
return anchors
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
def _extract_markdown_heading(line: str) -> str | None:
|
|
81
|
+
"""Return heading text from an ATX Markdown heading line."""
|
|
82
|
+
stripped = line.strip()
|
|
83
|
+
if not stripped.startswith("#"):
|
|
84
|
+
return None
|
|
85
|
+
|
|
86
|
+
level = 0
|
|
87
|
+
while level < len(stripped) and stripped[level] == "#":
|
|
88
|
+
level += 1
|
|
89
|
+
if level == 0 or level > 6:
|
|
90
|
+
return None
|
|
91
|
+
if level == len(stripped) or stripped[level] != " ":
|
|
92
|
+
return None
|
|
93
|
+
|
|
94
|
+
anchor = stripped[level + 1 :].strip()
|
|
95
|
+
return anchor or None
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
def render_compact_view(
|
|
99
|
+
repo_root: Path,
|
|
100
|
+
*,
|
|
101
|
+
directive_ids: Iterable[str] = (),
|
|
102
|
+
tactic_ids: Iterable[str] = (),
|
|
103
|
+
section_anchors: Iterable[str] | None = None,
|
|
104
|
+
charter_text: str | None = None,
|
|
105
|
+
) -> CompactView:
|
|
106
|
+
"""Render the compact governance block with IDs + anchors preserved.
|
|
107
|
+
|
|
108
|
+
Args:
|
|
109
|
+
repo_root: The mission repo root used to resolve governance.
|
|
110
|
+
directive_ids: Directive IDs the bootstrap view would surface.
|
|
111
|
+
Each ID is emitted verbatim in the compact output.
|
|
112
|
+
tactic_ids: Tactic IDs the bootstrap view would surface.
|
|
113
|
+
section_anchors: Optional pre-computed anchor list. When omitted
|
|
114
|
+
the helper extracts anchors from ``charter_text`` (or, if
|
|
115
|
+
both are omitted, from ``<repo_root>/.kittify/charter/charter.md``
|
|
116
|
+
when present).
|
|
117
|
+
charter_text: Optional charter body text used for anchor
|
|
118
|
+
extraction; convenient for tests.
|
|
119
|
+
|
|
120
|
+
Returns:
|
|
121
|
+
:class:`CompactView` carrying the rendered text and the four
|
|
122
|
+
ID/anchor tuples that form the contract surface.
|
|
123
|
+
"""
|
|
124
|
+
directive_tuple = tuple(dict.fromkeys(directive_ids))
|
|
125
|
+
tactic_tuple = tuple(dict.fromkeys(tactic_ids))
|
|
126
|
+
|
|
127
|
+
if section_anchors is not None:
|
|
128
|
+
anchor_tuple = tuple(dict.fromkeys(section_anchors))
|
|
129
|
+
else:
|
|
130
|
+
if charter_text is None:
|
|
131
|
+
charter_path = repo_root / KITTIFY_DIRNAME / "charter" / "charter.md"
|
|
132
|
+
charter_text = ""
|
|
133
|
+
if charter_path.exists():
|
|
134
|
+
try:
|
|
135
|
+
charter_text = charter_path.read_text(encoding="utf-8")
|
|
136
|
+
except OSError:
|
|
137
|
+
charter_text = ""
|
|
138
|
+
anchor_tuple = tuple(extract_section_anchors(charter_text))
|
|
139
|
+
|
|
140
|
+
text = _render_text(repo_root, directive_tuple, tactic_tuple, anchor_tuple)
|
|
141
|
+
|
|
142
|
+
return CompactView(
|
|
143
|
+
text=text,
|
|
144
|
+
directive_ids=directive_tuple,
|
|
145
|
+
tactic_ids=tactic_tuple,
|
|
146
|
+
section_anchors=anchor_tuple,
|
|
147
|
+
)
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
def _render_text(
|
|
151
|
+
repo_root: Path,
|
|
152
|
+
directive_ids: tuple[str, ...],
|
|
153
|
+
tactic_ids: tuple[str, ...],
|
|
154
|
+
section_anchors: tuple[str, ...],
|
|
155
|
+
) -> str:
|
|
156
|
+
"""Render the human-readable compact governance block.
|
|
157
|
+
|
|
158
|
+
The format is intentionally line-oriented and stable so downstream
|
|
159
|
+
diffs in agent context stay reviewable. Long-form prose is replaced
|
|
160
|
+
by ID lists and an anchor index. When governance cannot be resolved
|
|
161
|
+
(e.g., the repo lacks ``.kittify`` config) the renderer still emits
|
|
162
|
+
every supplied directive ID, tactic ID, and section anchor — the
|
|
163
|
+
FR-034 contract is "no IDs are silently dropped", so a degraded
|
|
164
|
+
governance block must not erase the IDs the caller already knows.
|
|
165
|
+
"""
|
|
166
|
+
(
|
|
167
|
+
template_set,
|
|
168
|
+
paradigms,
|
|
169
|
+
tools,
|
|
170
|
+
diagnostics,
|
|
171
|
+
resolver_directives,
|
|
172
|
+
) = _resolve_governance_summary(repo_root)
|
|
173
|
+
|
|
174
|
+
merged_directive_ids = tuple(dict.fromkeys(list(directive_ids) + resolver_directives))
|
|
175
|
+
|
|
176
|
+
lines: list[str] = [
|
|
177
|
+
"Governance:",
|
|
178
|
+
f" - Template set: {template_set}",
|
|
179
|
+
f" - Paradigms: {paradigms}",
|
|
180
|
+
f" - Tools: {tools}",
|
|
181
|
+
]
|
|
182
|
+
|
|
183
|
+
_append_section(lines, "Directive IDs:", merged_directive_ids)
|
|
184
|
+
_append_section(lines, "Tactic IDs:", tactic_ids)
|
|
185
|
+
_append_section(lines, "Section Anchors:", section_anchors)
|
|
186
|
+
|
|
187
|
+
if diagnostics:
|
|
188
|
+
lines.append(f" - Diagnostics: {' | '.join(diagnostics)}")
|
|
189
|
+
|
|
190
|
+
# Reference repo languages / project root only as a footnote so the
|
|
191
|
+
# compact view stays one-screen even on big charters.
|
|
192
|
+
try:
|
|
193
|
+
languages = infer_repo_languages(repo_root)
|
|
194
|
+
if languages:
|
|
195
|
+
lines.append(f" - Languages: {', '.join(sorted(languages))}")
|
|
196
|
+
except Exception: # pragma: no cover - defensive
|
|
197
|
+
pass
|
|
198
|
+
|
|
199
|
+
try:
|
|
200
|
+
project_root = resolve_project_root(repo_root)
|
|
201
|
+
if project_root != repo_root:
|
|
202
|
+
lines.append(f" - Project root: {project_root}")
|
|
203
|
+
except Exception: # pragma: no cover - defensive
|
|
204
|
+
pass
|
|
205
|
+
|
|
206
|
+
return "\n".join(lines)
|
|
207
|
+
|
|
208
|
+
|
|
209
|
+
def _resolve_governance_summary(
|
|
210
|
+
repo_root: Path,
|
|
211
|
+
) -> tuple[str, str, str, list[str], list[str]]:
|
|
212
|
+
template_set = NONE_LABEL
|
|
213
|
+
paradigms = NONE_LABEL
|
|
214
|
+
tools = NONE_LABEL
|
|
215
|
+
diagnostics: list[str] = []
|
|
216
|
+
resolver_directives: list[str] = []
|
|
217
|
+
|
|
218
|
+
try:
|
|
219
|
+
resolution = resolve_governance(repo_root)
|
|
220
|
+
except GovernanceResolutionError as exc:
|
|
221
|
+
diagnostics.append(f"governance unresolved ({exc})")
|
|
222
|
+
return template_set, paradigms, tools, diagnostics, resolver_directives
|
|
223
|
+
except Exception as exc: # pragma: no cover - defensive degrade
|
|
224
|
+
diagnostics.append(f"governance unavailable ({exc})")
|
|
225
|
+
return template_set, paradigms, tools, diagnostics, resolver_directives
|
|
226
|
+
|
|
227
|
+
if resolution.paradigms:
|
|
228
|
+
paradigms = ", ".join(resolution.paradigms)
|
|
229
|
+
if resolution.tools:
|
|
230
|
+
tools = ", ".join(resolution.tools)
|
|
231
|
+
diagnostics.extend(list(resolution.diagnostics))
|
|
232
|
+
resolver_directives = list(resolution.directives)
|
|
233
|
+
return resolution.template_set, paradigms, tools, diagnostics, resolver_directives
|
|
234
|
+
|
|
235
|
+
|
|
236
|
+
def _append_section(lines: list[str], title: str, values: Iterable[str]) -> None:
|
|
237
|
+
lines.append(title)
|
|
238
|
+
entries = list(values)
|
|
239
|
+
if not entries:
|
|
240
|
+
lines.append(f" - {NONE_LABEL}")
|
|
241
|
+
return
|
|
242
|
+
for entry in entries:
|
|
243
|
+
lines.append(f" - {entry}")
|
|
@@ -12,7 +12,6 @@ from ruamel.yaml import YAML
|
|
|
12
12
|
from ruamel.yaml.error import YAMLError
|
|
13
13
|
|
|
14
14
|
from charter.language_scope import infer_repo_languages
|
|
15
|
-
from charter.resolver import GovernanceResolutionError, resolve_governance
|
|
16
15
|
from kernel.atomic import atomic_write
|
|
17
16
|
|
|
18
17
|
|
|
@@ -288,28 +287,29 @@ def _render_bootstrap(charter_path: Path, summary: list[str], references: list[d
|
|
|
288
287
|
return "\n".join(lines)
|
|
289
288
|
|
|
290
289
|
|
|
291
|
-
def _render_compact_governance(
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
290
|
+
def _render_compact_governance(
|
|
291
|
+
repo_root: Path,
|
|
292
|
+
*,
|
|
293
|
+
directive_ids: list[str] | None = None,
|
|
294
|
+
tactic_ids: list[str] | None = None,
|
|
295
|
+
) -> str:
|
|
296
|
+
"""Render the compact governance block (FR-034).
|
|
297
|
+
|
|
298
|
+
Compact mode preserves every directive ID, tactic ID, and section
|
|
299
|
+
anchor that bootstrap mode would emit; only the long-form prose
|
|
300
|
+
body is collapsed. ``directive_ids`` / ``tactic_ids`` are optional
|
|
301
|
+
bootstrap-side lists that the caller has already resolved; when
|
|
302
|
+
omitted the compact view falls back to the resolver's directive
|
|
303
|
+
canon and charter heading anchors.
|
|
304
|
+
"""
|
|
305
|
+
from charter.compact import render_compact_view
|
|
306
|
+
|
|
307
|
+
view = render_compact_view(
|
|
308
|
+
repo_root,
|
|
309
|
+
directive_ids=directive_ids or (),
|
|
310
|
+
tactic_ids=tactic_ids or (),
|
|
311
|
+
)
|
|
312
|
+
return view.text
|
|
313
313
|
|
|
314
314
|
|
|
315
315
|
def _extract_policy_summary(content: str) -> list[str]:
|
|
@@ -391,9 +391,7 @@ def _write_state(path: Path, state: dict[str, object]) -> None:
|
|
|
391
391
|
atomic_write(path, json.dumps(state, indent=2, sort_keys=True), mkdir=True)
|
|
392
392
|
|
|
393
393
|
|
|
394
|
-
def _mark_action_loaded(
|
|
395
|
-
state: dict[str, object], state_path: Path, action: str
|
|
396
|
-
) -> None:
|
|
394
|
+
def _mark_action_loaded(state: dict[str, object], state_path: Path, action: str) -> None:
|
|
397
395
|
"""Persist first-load timestamp for *action* into context-state.json."""
|
|
398
396
|
actions_obj = state.setdefault("actions", {})
|
|
399
397
|
if not isinstance(actions_obj, dict):
|
|
@@ -469,7 +467,7 @@ def build_charter_context(
|
|
|
469
467
|
action=normalized,
|
|
470
468
|
mode="compact",
|
|
471
469
|
first_load=False,
|
|
472
|
-
text=_render_compact_governance(
|
|
470
|
+
text=_render_compact_governance(canonical_root),
|
|
473
471
|
references_count=0,
|
|
474
472
|
depth=effective_depth,
|
|
475
473
|
)
|
|
@@ -505,7 +503,7 @@ def build_charter_context(
|
|
|
505
503
|
action=normalized,
|
|
506
504
|
mode="compact",
|
|
507
505
|
first_load=first_load,
|
|
508
|
-
text=_render_compact_governance(
|
|
506
|
+
text=_render_compact_governance(canonical_root),
|
|
509
507
|
references_count=0,
|
|
510
508
|
depth=effective_depth,
|
|
511
509
|
)
|
|
@@ -525,9 +523,7 @@ def build_charter_context(
|
|
|
525
523
|
mission = template_set.removesuffix("-default")
|
|
526
524
|
|
|
527
525
|
# Project directive selection filtering (mirrors legacy behavior)
|
|
528
|
-
project_directives: set[str] = {
|
|
529
|
-
_normalize_directive_id(d) for d in governance.doctrine.selected_directives
|
|
530
|
-
}
|
|
526
|
+
project_directives: set[str] = {_normalize_directive_id(d) for d in governance.doctrine.selected_directives}
|
|
531
527
|
|
|
532
528
|
# -- 3. Query the DRG -----------------------------------------------------
|
|
533
529
|
action_urn = f"action:{mission}/{normalized}"
|
|
@@ -538,9 +534,7 @@ def build_charter_context(
|
|
|
538
534
|
repo_root / "src" / "doctrine",
|
|
539
535
|
repo_root / "doctrine",
|
|
540
536
|
]
|
|
541
|
-
project_root = next(
|
|
542
|
-
(p for p in project_root_candidates if p.is_dir()), None
|
|
543
|
-
)
|
|
537
|
+
project_root = next((p for p in project_root_candidates if p.is_dir()), None)
|
|
544
538
|
svc = DoctrineService(shipped_root=doctrine_root, project_root=project_root)
|
|
545
539
|
|
|
546
540
|
# Classify resolved URNs by node kind, applying directive selection
|
|
@@ -13,12 +13,13 @@ is absent. The CLI NEVER hardcodes a TTL.
|
|
|
13
13
|
|
|
14
14
|
Error semantics (feature 080, spec §7.2):
|
|
15
15
|
|
|
16
|
-
- SaaS returns ``400 invalid_grant`` →
|
|
17
|
-
The refresh token is invalid or expired;
|
|
18
|
-
``spec-kitty auth login``.
|
|
19
|
-
- SaaS returns ``400 session_invalid`` →
|
|
20
|
-
server has administratively invalidated
|
|
21
|
-
clears local state and the user must
|
|
16
|
+
- SaaS returns ``400`` or ``401`` with ``invalid_grant`` →
|
|
17
|
+
:class:`RefreshTokenExpiredError`. The refresh token is invalid or expired;
|
|
18
|
+
the user must re-run ``spec-kitty auth login``.
|
|
19
|
+
- SaaS returns ``400`` or ``401`` with ``session_invalid`` →
|
|
20
|
+
:class:`SessionInvalidError`. The server has administratively invalidated
|
|
21
|
+
this session; ``TokenManager`` clears local state and the user must
|
|
22
|
+
re-login.
|
|
22
23
|
- Any other HTTP error → :class:`TokenRefreshError`.
|
|
23
24
|
- Transport-level failures → :class:`NetworkError`.
|
|
24
25
|
"""
|
|
@@ -64,9 +65,10 @@ class TokenRefreshFlow:
|
|
|
64
65
|
|
|
65
66
|
Raises:
|
|
66
67
|
RefreshTokenExpiredError: The SaaS rejected the refresh token
|
|
67
|
-
(``400 invalid_grant``). The user must re-run
|
|
68
|
+
(``400/401 invalid_grant``). The user must re-run
|
|
69
|
+
``auth login``.
|
|
68
70
|
SessionInvalidError: The SaaS reports the session has been
|
|
69
|
-
invalidated server-side (``400 session_invalid``).
|
|
71
|
+
invalidated server-side (``400/401 session_invalid``).
|
|
70
72
|
TokenRefreshError: Any other HTTP failure during refresh.
|
|
71
73
|
NetworkError: Transport-level failure (DNS, connect, timeout).
|
|
72
74
|
"""
|
|
@@ -88,36 +90,23 @@ class TokenRefreshFlow:
|
|
|
88
90
|
try:
|
|
89
91
|
tokens = response.json()
|
|
90
92
|
except ValueError as exc:
|
|
91
|
-
raise TokenRefreshError(
|
|
92
|
-
f"Refresh response was not JSON: {exc}"
|
|
93
|
-
) from exc
|
|
93
|
+
raise TokenRefreshError(f"Refresh response was not JSON: {exc}") from exc
|
|
94
94
|
return self._update_session(session, tokens)
|
|
95
95
|
|
|
96
|
-
if response.status_code
|
|
96
|
+
if response.status_code in {400, 401}:
|
|
97
97
|
try:
|
|
98
98
|
body = response.json()
|
|
99
99
|
except ValueError:
|
|
100
100
|
body = {}
|
|
101
101
|
error = body.get("error", "")
|
|
102
102
|
if error == "invalid_grant":
|
|
103
|
-
raise RefreshTokenExpiredError(
|
|
104
|
-
"Refresh token is invalid or expired. "
|
|
105
|
-
"Run `spec-kitty auth login` again."
|
|
106
|
-
)
|
|
103
|
+
raise RefreshTokenExpiredError("Refresh token is invalid or expired. Run `spec-kitty auth login` again.")
|
|
107
104
|
if error == "session_invalid":
|
|
108
|
-
raise SessionInvalidError(
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
)
|
|
112
|
-
|
|
113
|
-
raise TokenRefreshError(
|
|
114
|
-
f"Token refresh failed: HTTP {response.status_code} - "
|
|
115
|
-
f"{response.text[:500]}"
|
|
116
|
-
)
|
|
105
|
+
raise SessionInvalidError("Session has been invalidated server-side. Run `spec-kitty auth login` again.")
|
|
106
|
+
|
|
107
|
+
raise TokenRefreshError(f"Token refresh failed: HTTP {response.status_code} - {response.text[:500]}")
|
|
117
108
|
|
|
118
|
-
def _update_session(
|
|
119
|
-
self, session: StoredSession, tokens: dict[str, Any]
|
|
120
|
-
) -> StoredSession:
|
|
109
|
+
def _update_session(self, session: StoredSession, tokens: dict[str, Any]) -> StoredSession:
|
|
121
110
|
"""Build an updated session from a refresh response.
|
|
122
111
|
|
|
123
112
|
Per C-012 (LANDED 2026-04-09), ``refresh_token_expires_at`` is read
|
|
@@ -135,9 +124,7 @@ class TokenRefreshFlow:
|
|
|
135
124
|
try:
|
|
136
125
|
new_access = tokens["access_token"]
|
|
137
126
|
except KeyError as exc:
|
|
138
|
-
raise TokenRefreshError(
|
|
139
|
-
"Refresh response missing 'access_token'"
|
|
140
|
-
) from exc
|
|
127
|
+
raise TokenRefreshError("Refresh response missing 'access_token'") from exc
|
|
141
128
|
|
|
142
129
|
# Refresh token may rotate; keep the old one if the server doesn't rotate.
|
|
143
130
|
new_refresh = tokens.get("refresh_token", session.refresh_token)
|
|
@@ -145,9 +132,7 @@ class TokenRefreshFlow:
|
|
|
145
132
|
try:
|
|
146
133
|
expires_in = int(tokens.get("expires_in", 3600))
|
|
147
134
|
except (TypeError, ValueError) as exc:
|
|
148
|
-
raise TokenRefreshError(
|
|
149
|
-
f"Refresh response has invalid 'expires_in': {exc}"
|
|
150
|
-
) from exc
|
|
135
|
+
raise TokenRefreshError(f"Refresh response has invalid 'expires_in': {exc}") from exc
|
|
151
136
|
|
|
152
137
|
refresh_token_expires_at = self._resolve_refresh_expiry(tokens, now, session)
|
|
153
138
|
|
|
@@ -190,9 +175,7 @@ class TokenRefreshFlow:
|
|
|
190
175
|
try:
|
|
191
176
|
return now + timedelta(seconds=int(relative))
|
|
192
177
|
except (TypeError, ValueError):
|
|
193
|
-
log.warning(
|
|
194
|
-
"refresh_token_expires_in was not an int: %r", relative
|
|
195
|
-
)
|
|
178
|
+
log.warning("refresh_token_expires_in was not an int: %r", relative)
|
|
196
179
|
|
|
197
180
|
# Last-resort fallback: preserve the previous session's expiry so
|
|
198
181
|
# we never produce a session with an indeterminate refresh expiry
|