spec-kitty-cli 0.9.0__tar.gz → 0.10.9__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-0.10.9/.kittify/missions/research/command-templates/implement.md +78 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/.kittify/missions/research/command-templates/merge.md +1 -13
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/.kittify/missions/research/command-templates/plan.md +0 -15
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/.kittify/missions/research/command-templates/review.md +5 -17
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/.kittify/missions/research/templates/tasks-template.md +3 -3
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/.kittify/missions/software-dev/command-templates/accept.md +0 -4
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/.kittify/missions/software-dev/command-templates/analyze.md +0 -4
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/.kittify/missions/software-dev/command-templates/checklist.md +0 -4
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/.kittify/missions/software-dev/command-templates/clarify.md +0 -4
- spec_kitty_cli-0.10.9/.kittify/missions/software-dev/command-templates/implement.md +11 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/.kittify/missions/software-dev/command-templates/merge.md +1 -13
- {spec_kitty_cli-0.9.0/templates → spec_kitty_cli-0.10.9/.kittify/missions/software-dev}/command-templates/plan.md +5 -16
- spec_kitty_cli-0.10.9/.kittify/missions/software-dev/command-templates/review.md +11 -0
- {spec_kitty_cli-0.9.0/templates → spec_kitty_cli-0.10.9/.kittify/missions/software-dev}/command-templates/specify.md +90 -84
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/.kittify/missions/software-dev/command-templates/tasks.md +15 -15
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/.kittify/missions/software-dev/templates/task-prompt-template.md +1 -1
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/.kittify/missions/software-dev/templates/tasks-template.md +5 -5
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9/.kittify}/templates/AGENTS.md +66 -31
- spec_kitty_cli-0.10.9/.kittify/templates/claudeignore-template +58 -0
- spec_kitty_cli-0.10.9/.kittify/templates/command-templates/accept.md +141 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9/.kittify}/templates/command-templates/analyze.md +2 -2
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9/.kittify}/templates/command-templates/checklist.md +2 -2
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9/.kittify}/templates/command-templates/clarify.md +2 -2
- spec_kitty_cli-0.10.9/.kittify/templates/command-templates/implement.md +78 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9/.kittify}/templates/command-templates/merge.md +15 -3
- {spec_kitty_cli-0.9.0/.kittify/missions/software-dev → spec_kitty_cli-0.10.9/.kittify/templates}/command-templates/plan.md +13 -42
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9/.kittify}/templates/command-templates/review.md +16 -40
- {spec_kitty_cli-0.9.0/.kittify/missions/software-dev → spec_kitty_cli-0.10.9/.kittify/templates}/command-templates/specify.md +46 -4
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9/.kittify}/templates/command-templates/tasks.md +9 -10
- spec_kitty_cli-0.10.9/.kittify/templates/git-hooks/pre-commit +22 -0
- spec_kitty_cli-0.10.9/.kittify/templates/git-hooks/pre-commit-agent-check +37 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9/.kittify}/templates/task-prompt-template.md +9 -16
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9/.kittify}/templates/tasks-template.md +5 -5
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/CHANGELOG.md +278 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/PKG-INFO +75 -24
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/README.md +72 -23
- spec_kitty_cli-0.10.9/kitty-specs/008-unified-python-cli/tasks/README.md +69 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/pyproject.toml +7 -5
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/scripts/tasks/tasks_cli.py +14 -7
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/src/specify_cli/__init__.py +2 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/src/specify_cli/cli/commands/__init__.py +4 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/src/specify_cli/cli/commands/accept.py +3 -1
- spec_kitty_cli-0.10.9/src/specify_cli/cli/commands/agent/__init__.py +21 -0
- spec_kitty_cli-0.10.9/src/specify_cli/cli/commands/agent/context.py +191 -0
- spec_kitty_cli-0.10.9/src/specify_cli/cli/commands/agent/feature.py +622 -0
- spec_kitty_cli-0.10.9/src/specify_cli/cli/commands/agent/release.py +11 -0
- spec_kitty_cli-0.10.9/src/specify_cli/cli/commands/agent/tasks.py +510 -0
- spec_kitty_cli-0.10.9/src/specify_cli/cli/commands/agent/workflow.py +385 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/src/specify_cli/cli/commands/dashboard.py +2 -1
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/src/specify_cli/cli/commands/init.py +4 -8
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/src/specify_cli/cli/commands/merge.py +3 -1
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/src/specify_cli/cli/commands/mission.py +4 -1
- spec_kitty_cli-0.10.9/src/specify_cli/cli/commands/repair.py +70 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/src/specify_cli/cli/commands/research.py +2 -1
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/src/specify_cli/cli/commands/upgrade.py +3 -1
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/src/specify_cli/cli/commands/validate_encoding.py +2 -1
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/src/specify_cli/cli/commands/validate_tasks.py +2 -1
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/src/specify_cli/cli/commands/verify.py +2 -1
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/src/specify_cli/cli/helpers.py +51 -1
- spec_kitty_cli-0.10.9/src/specify_cli/core/agent_context.py +311 -0
- spec_kitty_cli-0.10.9/src/specify_cli/core/paths.py +148 -0
- spec_kitty_cli-0.10.9/src/specify_cli/core/version_checker.py +239 -0
- spec_kitty_cli-0.10.9/src/specify_cli/core/worktree.py +415 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/src/specify_cli/dashboard/handlers/features.py +91 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/src/specify_cli/dashboard/handlers/router.py +8 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/src/specify_cli/dashboard/static/dashboard/dashboard.js +106 -6
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/src/specify_cli/dashboard/templates/index.html +10 -0
- spec_kitty_cli-0.10.9/src/specify_cli/frontmatter.py +339 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/src/specify_cli/manifest.py +2 -2
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/src/specify_cli/tasks_support.py +36 -2
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/src/specify_cli/template/asset_generator.py +1 -1
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/src/specify_cli/template/manager.py +12 -3
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/src/specify_cli/upgrade/migrations/__init__.py +12 -0
- spec_kitty_cli-0.10.9/src/specify_cli/upgrade/migrations/m_0_10_0_python_only.py +329 -0
- spec_kitty_cli-0.10.9/src/specify_cli/upgrade/migrations/m_0_10_1_populate_slash_commands.py +187 -0
- spec_kitty_cli-0.10.9/src/specify_cli/upgrade/migrations/m_0_10_2_update_slash_commands.py +162 -0
- spec_kitty_cli-0.10.9/src/specify_cli/upgrade/migrations/m_0_10_6_workflow_simplification.py +155 -0
- spec_kitty_cli-0.10.9/src/specify_cli/upgrade/migrations/m_0_10_8_fix_memory_structure.py +252 -0
- spec_kitty_cli-0.10.9/src/specify_cli/upgrade/migrations/m_0_10_9_repair_templates.py +168 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/src/specify_cli/upgrade/migrations/m_0_4_8_gitignore_agents.py +3 -2
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/src/specify_cli/upgrade/migrations/m_0_6_7_ensure_missions.py +1 -1
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/src/specify_cli/upgrade/migrations/m_0_9_0_frontmatter_only_lanes.py +32 -20
- spec_kitty_cli-0.10.9/src/specify_cli/upgrade/migrations/m_0_9_1_complete_lane_migration.py +540 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/src/specify_cli/upgrade/registry.py +7 -1
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/src/specify_cli/upgrade/runner.py +1 -1
- spec_kitty_cli-0.9.0/.kittify/missions/research/command-templates/implement.md +0 -308
- spec_kitty_cli-0.9.0/.kittify/missions/software-dev/command-templates/implement.md +0 -271
- spec_kitty_cli-0.9.0/.kittify/missions/software-dev/command-templates/review.md +0 -83
- spec_kitty_cli-0.9.0/scripts/bash/accept-feature.sh +0 -17
- spec_kitty_cli-0.9.0/scripts/bash/check-prerequisites.sh +0 -186
- spec_kitty_cli-0.9.0/scripts/bash/common.sh +0 -739
- spec_kitty_cli-0.9.0/scripts/bash/create-new-feature.sh +0 -527
- spec_kitty_cli-0.9.0/scripts/bash/mark-task-status.sh +0 -99
- spec_kitty_cli-0.9.0/scripts/bash/merge-feature.sh +0 -40
- spec_kitty_cli-0.9.0/scripts/bash/move-task-to-doing.sh +0 -43
- spec_kitty_cli-0.9.0/scripts/bash/refresh-kittify-tasks.sh +0 -108
- spec_kitty_cli-0.9.0/scripts/bash/setup-plan.sh +0 -73
- spec_kitty_cli-0.9.0/scripts/bash/setup-sandbox.sh +0 -179
- spec_kitty_cli-0.9.0/scripts/bash/tasks-add-history-entry.sh +0 -17
- spec_kitty_cli-0.9.0/scripts/bash/tasks-list-lanes.sh +0 -17
- spec_kitty_cli-0.9.0/scripts/bash/tasks-move-to-lane.sh +0 -40
- spec_kitty_cli-0.9.0/scripts/bash/tasks-rollback-move.sh +0 -17
- spec_kitty_cli-0.9.0/scripts/bash/update-agent-context.sh +0 -748
- spec_kitty_cli-0.9.0/scripts/bash/validate-task-workflow.sh +0 -45
- spec_kitty_cli-0.9.0/scripts/powershell/Merge-Feature.ps1 +0 -38
- spec_kitty_cli-0.9.0/scripts/powershell/Set-TaskStatus.ps1 +0 -39
- spec_kitty_cli-0.9.0/scripts/powershell/accept-feature.ps1 +0 -21
- spec_kitty_cli-0.9.0/scripts/powershell/check-prerequisites.ps1 +0 -148
- spec_kitty_cli-0.9.0/scripts/powershell/common.ps1 +0 -238
- spec_kitty_cli-0.9.0/scripts/powershell/create-new-feature.ps1 +0 -271
- spec_kitty_cli-0.9.0/scripts/powershell/setup-plan.ps1 +0 -72
- spec_kitty_cli-0.9.0/scripts/powershell/tasks-add-history-entry.ps1 +0 -21
- spec_kitty_cli-0.9.0/scripts/powershell/tasks-list-lanes.ps1 +0 -21
- spec_kitty_cli-0.9.0/scripts/powershell/tasks-move-to-lane.ps1 +0 -79
- spec_kitty_cli-0.9.0/scripts/powershell/tasks-rollback-move.ps1 +0 -21
- spec_kitty_cli-0.9.0/scripts/powershell/update-agent-context.ps1 +0 -452
- spec_kitty_cli-0.9.0/templates/command-templates/accept.md +0 -66
- spec_kitty_cli-0.9.0/templates/command-templates/implement.md +0 -277
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/.gitignore +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9/.kittify}/memory/constitution.md +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/.kittify/missions/research/mission.yaml +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/.kittify/missions/research/templates/data-model-template.md +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/.kittify/missions/research/templates/plan-template.md +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/.kittify/missions/research/templates/research/evidence-log.csv +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/.kittify/missions/research/templates/research/source-register.csv +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/.kittify/missions/research/templates/research-template.md +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/.kittify/missions/research/templates/spec-template.md +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/.kittify/missions/software-dev/command-templates/constitution.md +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/.kittify/missions/software-dev/command-templates/dashboard.md +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/.kittify/missions/software-dev/constitution/principles.md +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/.kittify/missions/software-dev/mission.yaml +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/.kittify/missions/software-dev/templates/plan-template.md +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/.kittify/missions/software-dev/templates/spec-template.md +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9/.kittify}/templates/POWERSHELL_SYNTAX.md +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9/.kittify}/templates/agent-file-template.md +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9/.kittify}/templates/checklist-template.md +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9/.kittify}/templates/command-templates/constitution.md +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9/.kittify}/templates/command-templates/dashboard.md +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9/.kittify}/templates/command-templates/research.md +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9/.kittify}/templates/git-hooks/pre-commit-encoding-check +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9/.kittify}/templates/plan-template.md +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9/.kittify}/templates/spec-template.md +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9/.kittify}/templates/vscode-settings.json +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/LICENSE +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/docs/README.md +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/kitty-specs/007-frontmatter-only-lane/tasks/README.md +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/node_modules/@playwright/test/LICENSE +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/node_modules/@playwright/test/README.md +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/node_modules/playwright/LICENSE +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/node_modules/playwright/README.md +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/node_modules/playwright-core/LICENSE +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/node_modules/playwright-core/README.md +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/scripts/debug-dashboard-scan.py +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/scripts/git-hooks/pre-commit-task-workflow.sh +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/scripts/release/README.md +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/scripts/release/extract_changelog.py +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/scripts/release/validate_release.py +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/scripts/tasks/acceptance_support.py +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/scripts/tasks/task_helpers.py +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/scripts/validate_encoding.py +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/src/specify_cli/acceptance.py +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/src/specify_cli/cli/__init__.py +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/src/specify_cli/cli/commands/init_help.py +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/src/specify_cli/cli/step_tracker.py +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/src/specify_cli/cli/ui.py +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/src/specify_cli/core/__init__.py +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/src/specify_cli/core/config.py +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/src/specify_cli/core/git_ops.py +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/src/specify_cli/core/project_resolver.py +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/src/specify_cli/core/tool_checker.py +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/src/specify_cli/core/utils.py +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/src/specify_cli/dashboard/__init__.py +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/src/specify_cli/dashboard/diagnostics.py +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/src/specify_cli/dashboard/handlers/__init__.py +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/src/specify_cli/dashboard/handlers/api.py +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/src/specify_cli/dashboard/handlers/base.py +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/src/specify_cli/dashboard/handlers/static.py +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/src/specify_cli/dashboard/lifecycle.py +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/src/specify_cli/dashboard/scanner.py +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/src/specify_cli/dashboard/server.py +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/src/specify_cli/dashboard/static/dashboard/dashboard.css +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/src/specify_cli/dashboard/static/spec-kitty.png +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/src/specify_cli/dashboard/templates/__init__.py +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/src/specify_cli/gitignore_manager.py +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/src/specify_cli/guards.py +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/src/specify_cli/legacy_detector.py +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/src/specify_cli/mission.py +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/src/specify_cli/plan_validation.py +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/src/specify_cli/task_metadata_validation.py +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/src/specify_cli/template/__init__.py +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/src/specify_cli/template/github_client.py +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/src/specify_cli/template/renderer.py +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/src/specify_cli/text_sanitization.py +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/src/specify_cli/upgrade/__init__.py +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/src/specify_cli/upgrade/detector.py +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/src/specify_cli/upgrade/metadata.py +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/src/specify_cli/upgrade/migrations/base.py +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/src/specify_cli/upgrade/migrations/m_0_2_0_specify_to_kittify.py +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/src/specify_cli/upgrade/migrations/m_0_5_0_encoding_hooks.py +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/src/specify_cli/upgrade/migrations/m_0_6_5_commands_rename.py +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/src/specify_cli/upgrade/migrations/m_0_7_2_worktree_commands_dedup.py +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/src/specify_cli/upgrade/migrations/m_0_7_3_update_scripts.py +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/src/specify_cli/upgrade/migrations/m_0_8_0_remove_active_mission.py +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/src/specify_cli/upgrade/migrations/m_0_8_0_worktree_agents_symlink.py +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/src/specify_cli/validators/__init__.py +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/src/specify_cli/validators/paths.py +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/src/specify_cli/validators/research.py +0 -0
- {spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/src/specify_cli/verify_enhanced.py +0 -0
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Execute the implementation plan by processing and executing all tasks defined in tasks.md
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
## Work Package Selection
|
|
6
|
+
|
|
7
|
+
**User specified**: `$ARGUMENTS`
|
|
8
|
+
|
|
9
|
+
**Your task**: Determine which WP to implement:
|
|
10
|
+
- If `$ARGUMENTS` is empty → Find first WP file with `lane: "planned"` in `tasks/` directory
|
|
11
|
+
- If `$ARGUMENTS` provided → Normalize it:
|
|
12
|
+
- `wp01` → `WP01`
|
|
13
|
+
- `WP01` → `WP01`
|
|
14
|
+
- `WP01-foo-bar` → `WP01`
|
|
15
|
+
- Then find: `tasks/WP01*.md`
|
|
16
|
+
|
|
17
|
+
**Once you know which WP**, proceed to setup.
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Setup (Do This First)
|
|
22
|
+
|
|
23
|
+
**1. Move WP to doing lane:**
|
|
24
|
+
```bash
|
|
25
|
+
spec-kitty agent tasks move-task <WPID> --to doing --note "Started implementation" --agent "codex"
|
|
26
|
+
```
|
|
27
|
+
This updates frontmatter, captures shell PID, adds activity log, and creates a commit.
|
|
28
|
+
|
|
29
|
+
**2. Get the prompt file path:**
|
|
30
|
+
The WP file is at: `kitty-specs/<feature>/tasks/<WPID>-<slug>.md`
|
|
31
|
+
Find the full absolute path.
|
|
32
|
+
|
|
33
|
+
**3. Verify the move worked:**
|
|
34
|
+
```bash
|
|
35
|
+
git log -1 # Should show "Start <WPID>: Move to doing lane"
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## Implementation (Do This Second)
|
|
41
|
+
|
|
42
|
+
**1. READ THE PROMPT FILE** (`tasks/<WPID>-slug.md`)
|
|
43
|
+
- This is your complete implementation guide
|
|
44
|
+
- Check `review_status` in frontmatter:
|
|
45
|
+
- If `has_feedback` → Read `## Review Feedback` section first
|
|
46
|
+
- Treat action items as your TODO list
|
|
47
|
+
|
|
48
|
+
**2. Read supporting docs:**
|
|
49
|
+
- `tasks.md` - Full task breakdown
|
|
50
|
+
- `plan.md` - Tech stack and architecture
|
|
51
|
+
- `spec.md` - Requirements
|
|
52
|
+
- `data-model.md`, `contracts/`, `research.md`, `quickstart.md` (if exist)
|
|
53
|
+
|
|
54
|
+
**3. Implement following the prompt's guidance:**
|
|
55
|
+
- Follow subtask order
|
|
56
|
+
- Respect dependencies (sequential vs parallel `[P]`)
|
|
57
|
+
- Run tests if required
|
|
58
|
+
- Commit as you complete major milestones
|
|
59
|
+
|
|
60
|
+
**4. When complete:**
|
|
61
|
+
```bash
|
|
62
|
+
spec-kitty agent tasks move-task <WPID> --to for_review --note "Ready for review"
|
|
63
|
+
git add <your-changes>
|
|
64
|
+
git commit -m "Complete <WPID>: <description>"
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## That's It
|
|
70
|
+
|
|
71
|
+
**Simple workflow:**
|
|
72
|
+
1. Find which WP (from `$ARGUMENTS` or first planned)
|
|
73
|
+
2. Move it to doing
|
|
74
|
+
3. Read the prompt file
|
|
75
|
+
4. Do the work
|
|
76
|
+
5. Move to for_review
|
|
77
|
+
|
|
78
|
+
**No busywork, no shell PID tracking, just implement.**
|
{spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/.kittify/missions/research/command-templates/merge.md
RENAMED
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Merge a completed feature into the main branch and clean up worktree
|
|
3
|
-
scripts:
|
|
4
|
-
sh: ".kittify/scripts/bash/merge-feature.sh"
|
|
5
|
-
ps: ".kittify/scripts/powershell/Merge-Feature.ps1"
|
|
6
|
-
---
|
|
7
3
|
|
|
8
4
|
# Merge Feature Branch
|
|
9
5
|
|
|
@@ -14,7 +10,7 @@ This command merges a completed feature branch into the main/target branch and h
|
|
|
14
10
|
Before running this command:
|
|
15
11
|
|
|
16
12
|
1. ✅ Feature must pass `/spec-kitty.accept` checks
|
|
17
|
-
2. ✅ All work packages must be in `tasks
|
|
13
|
+
2. ✅ All work packages must be in `tasks/`
|
|
18
14
|
3. ✅ Working directory must be clean (no uncommitted changes)
|
|
19
15
|
4. ✅ You must be on the feature branch (or in its worktree)
|
|
20
16
|
|
|
@@ -23,14 +19,6 @@ Before running this command:
|
|
|
23
19
|
Before merging, verify you are in the correct working directory by running the shared pre-flight validation:
|
|
24
20
|
|
|
25
21
|
```python
|
|
26
|
-
from specify_cli.guards import validate_worktree_location
|
|
27
|
-
|
|
28
|
-
# Validate location
|
|
29
|
-
result = validate_worktree_location()
|
|
30
|
-
if not result.is_valid:
|
|
31
|
-
print(result.format_error())
|
|
32
|
-
print("\nThis command MUST run from a feature worktree, not the main repository.")
|
|
33
|
-
exit(1)
|
|
34
22
|
```
|
|
35
23
|
|
|
36
24
|
**What this validates**:
|
{spec_kitty_cli-0.9.0 → spec_kitty_cli-0.10.9}/.kittify/missions/research/command-templates/plan.md
RENAMED
|
@@ -1,12 +1,5 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Execute the implementation planning workflow using the plan template to generate design artifacts.
|
|
3
|
-
scripts:
|
|
4
|
-
sh: scripts/bash/setup-plan.sh --json
|
|
5
|
-
ps: scripts/powershell/setup-plan.ps1 -Json
|
|
6
|
-
agent_scripts:
|
|
7
|
-
sh: scripts/bash/update-agent-context.sh __AGENT__
|
|
8
|
-
ps: scripts/powershell/update-agent-context.ps1 -AgentType __AGENT__
|
|
9
|
-
---
|
|
10
3
|
|
|
11
4
|
## User Input
|
|
12
5
|
|
|
@@ -21,14 +14,6 @@ You **MUST** consider the user input before proceeding (if not empty).
|
|
|
21
14
|
Before proceeding with planning, verify you are in the correct working directory by running the shared pre-flight validation:
|
|
22
15
|
|
|
23
16
|
```python
|
|
24
|
-
from specify_cli.guards import validate_worktree_location
|
|
25
|
-
|
|
26
|
-
# Validate location
|
|
27
|
-
result = validate_worktree_location()
|
|
28
|
-
if not result.is_valid:
|
|
29
|
-
print(result.format_error())
|
|
30
|
-
print("\nThis command MUST run from a feature worktree, not the main repository.")
|
|
31
|
-
exit(1)
|
|
32
17
|
```
|
|
33
18
|
|
|
34
19
|
**What this validates**:
|
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Perform structured research review with citation validation.
|
|
3
|
-
scripts:
|
|
4
|
-
sh: scripts/bash/check-prerequisites.sh --json --include-tasks
|
|
5
|
-
ps: scripts/powershell/check-prerequisites.ps1 -Json -IncludeTasks
|
|
6
|
-
---
|
|
7
3
|
|
|
8
4
|
## User Input
|
|
9
5
|
|
|
@@ -18,14 +14,6 @@ You **MUST** consider the user input before proceeding (if not empty).
|
|
|
18
14
|
Before proceeding with review, verify you are in the correct working directory by running the shared pre-flight validation:
|
|
19
15
|
|
|
20
16
|
```python
|
|
21
|
-
from specify_cli.guards import validate_worktree_location
|
|
22
|
-
|
|
23
|
-
# Validate location
|
|
24
|
-
result = validate_worktree_location()
|
|
25
|
-
if not result.is_valid:
|
|
26
|
-
print(result.format_error())
|
|
27
|
-
print("\nThis command MUST run from a feature worktree, not the main repository.")
|
|
28
|
-
exit(1)
|
|
29
17
|
```
|
|
30
18
|
|
|
31
19
|
**What this validates**:
|
|
@@ -76,8 +64,8 @@ if source_register.exists():
|
|
|
76
64
|
1. Run `{SCRIPT}` from repo root; capture `FEATURE_DIR`, `AVAILABLE_DOCS`, and `tasks.md` path.
|
|
77
65
|
|
|
78
66
|
2. Determine the review target:
|
|
79
|
-
- If user input specifies a filename, validate it exists under `tasks
|
|
80
|
-
- Otherwise, select the oldest file in `tasks
|
|
67
|
+
- If user input specifies a filename, validate it exists under `tasks/` (flat structure, check `lane: "for_review"` in frontmatter).
|
|
68
|
+
- Otherwise, select the oldest file in `tasks/` (lexical order is sufficient because filenames retain task ordering).
|
|
81
69
|
- Abort with instructional message if no files are waiting for review.
|
|
82
70
|
|
|
83
71
|
3. Load context for the selected task:
|
|
@@ -96,15 +84,15 @@ if source_register.exists():
|
|
|
96
84
|
* Append a new entry in the prompt’s **Activity Log** detailing feedback (include timestamp, reviewer agent, shell PID).
|
|
97
85
|
* Update frontmatter `lane` back to `planned`, clear `assignee` if necessary, keep history entry.
|
|
98
86
|
* Add/revise a `## Review Feedback` section (create if missing) summarizing action items.
|
|
99
|
-
* Run
|
|
87
|
+
* Run `spec-kitty agent tasks move-task <FEATURE> <TASK_ID> planned --note "Returned for changes"` (use the PowerShell equivalent on Windows) so the move and history update are staged consistently.
|
|
100
88
|
- **Approved**:
|
|
101
89
|
* Append Activity Log entry capturing approval details (capture shell PID via `echo $$` or helper script).
|
|
102
90
|
* Update frontmatter: set `lane=done`, set reviewer metadata (`agent`, `shell_pid`), optional `assignee` for approver.
|
|
103
91
|
* Use helper script to mark the task complete in `tasks.md` (see Step 6).
|
|
104
|
-
* Run
|
|
92
|
+
* Run `spec-kitty agent tasks move-task <FEATURE> <TASK_ID> done --note "Approved for release"` (PowerShell variant available) to transition the prompt into `tasks/`.
|
|
105
93
|
|
|
106
94
|
6. Update `tasks.md` automatically:
|
|
107
|
-
- Run `
|
|
95
|
+
- Run `spec-kitty agent tasks mark-status --task-id <TASK_ID> --status done` (POSIX) or `spec-kitty agent tasks mark-status --task-id <TASK_ID> --status done` (PowerShell) from repo root.
|
|
108
96
|
- Confirm the task entry now shows `[X]` and includes a reference to the prompt file in its notes.
|
|
109
97
|
|
|
110
98
|
7. Produce a review report summarizing:
|
|
@@ -28,7 +28,7 @@ description: "Work package task list template for research methodology execution
|
|
|
28
28
|
|
|
29
29
|
**Goal**: Identify and collect all relevant sources for the research question.
|
|
30
30
|
**Independent Test**: `research/source-register.csv` contains the minimum required high-quality sources with relevance ratings.
|
|
31
|
-
**Prompt**: `/tasks/
|
|
31
|
+
**Prompt**: `/tasks/WP01-literature-search.md`
|
|
32
32
|
|
|
33
33
|
### Included Subtasks
|
|
34
34
|
- [ ] T001 Define search keywords and inclusion/exclusion criteria
|
|
@@ -49,7 +49,7 @@ description: "Work package task list template for research methodology execution
|
|
|
49
49
|
|
|
50
50
|
**Goal**: Review prioritized sources and extract key findings.
|
|
51
51
|
**Independent Test**: `research/evidence-log.csv` contains findings from all high-relevance sources with confidence levels.
|
|
52
|
-
**Prompt**: `/tasks/
|
|
52
|
+
**Prompt**: `/tasks/WP02-source-review.md`
|
|
53
53
|
|
|
54
54
|
### Included Subtasks
|
|
55
55
|
- [ ] T008 [P] Review high-relevance sources (parallelizable by researcher/source)
|
|
@@ -68,7 +68,7 @@ description: "Work package task list template for research methodology execution
|
|
|
68
68
|
|
|
69
69
|
**Goal**: Synthesize findings and answer the research question.
|
|
70
70
|
**Independent Test**: findings.md contains synthesized conclusions backed by citations.
|
|
71
|
-
**Prompt**: `/tasks/
|
|
71
|
+
**Prompt**: `/tasks/WP03-analysis-synthesis.md`
|
|
72
72
|
|
|
73
73
|
### Included Subtasks
|
|
74
74
|
- [ ] T013 Code findings by theme/category
|
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Perform a non-destructive cross-artifact consistency and quality analysis across spec.md, plan.md, and tasks.md after task generation.
|
|
3
|
-
scripts:
|
|
4
|
-
sh: scripts/bash/check-prerequisites.sh --json --require-tasks --include-tasks
|
|
5
|
-
ps: scripts/powershell/check-prerequisites.ps1 -Json -RequireTasks -IncludeTasks
|
|
6
|
-
---
|
|
7
3
|
|
|
8
4
|
## User Input
|
|
9
5
|
|
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Generate a custom checklist for the current feature based on user requirements.
|
|
3
|
-
scripts:
|
|
4
|
-
sh: scripts/bash/check-prerequisites.sh --json
|
|
5
|
-
ps: scripts/powershell/check-prerequisites.ps1 -Json
|
|
6
|
-
---
|
|
7
3
|
|
|
8
4
|
## Checklist Purpose: "Unit Tests for English"
|
|
9
5
|
|
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Identify underspecified areas in the current feature spec by asking up to 5 highly targeted clarification questions and encoding answers back into the spec.
|
|
3
|
-
scripts:
|
|
4
|
-
sh: scripts/bash/check-prerequisites.sh --json --paths-only
|
|
5
|
-
ps: scripts/powershell/check-prerequisites.ps1 -Json -PathsOnly
|
|
6
|
-
---
|
|
7
3
|
|
|
8
4
|
## User Input
|
|
9
5
|
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Execute the implementation plan by processing and executing all tasks defined in tasks.md
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
Run this command to get your work package prompt and instructions:
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
spec-kitty agent workflow implement $ARGUMENTS
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
If no WP ID is provided, it will automatically find the first work package with `lane: "planned"` and move it to "doing" for you.
|
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Merge a completed feature into the main branch and clean up worktree
|
|
3
|
-
scripts:
|
|
4
|
-
sh: ".kittify/scripts/bash/merge-feature.sh"
|
|
5
|
-
ps: ".kittify/scripts/powershell/Merge-Feature.ps1"
|
|
6
|
-
---
|
|
7
3
|
|
|
8
4
|
# Merge Feature Branch
|
|
9
5
|
|
|
@@ -14,7 +10,7 @@ This command merges a completed feature branch into the main/target branch and h
|
|
|
14
10
|
Before running this command:
|
|
15
11
|
|
|
16
12
|
1. ✅ Feature must pass `/spec-kitty.accept` checks
|
|
17
|
-
2. ✅ All work packages must be in `tasks
|
|
13
|
+
2. ✅ All work packages must be in `tasks/`
|
|
18
14
|
3. ✅ Working directory must be clean (no uncommitted changes)
|
|
19
15
|
4. ✅ You must be on the feature branch (or in its worktree)
|
|
20
16
|
|
|
@@ -23,14 +19,6 @@ Before running this command:
|
|
|
23
19
|
Before merging, verify you are in the correct working directory by running the shared pre-flight validation:
|
|
24
20
|
|
|
25
21
|
```python
|
|
26
|
-
from specify_cli.guards import validate_worktree_location
|
|
27
|
-
|
|
28
|
-
# Validate location
|
|
29
|
-
result = validate_worktree_location()
|
|
30
|
-
if not result.is_valid:
|
|
31
|
-
print(result.format_error())
|
|
32
|
-
print("\nThis command MUST run from a feature worktree, not the main repository.")
|
|
33
|
-
exit(1)
|
|
34
22
|
```
|
|
35
23
|
|
|
36
24
|
**What this validates**:
|
|
@@ -1,11 +1,5 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Execute the implementation planning workflow using the plan template to generate design artifacts.
|
|
3
|
-
scripts:
|
|
4
|
-
sh: scripts/bash/setup-plan.sh --json
|
|
5
|
-
ps: scripts/powershell/setup-plan.ps1 -Json
|
|
6
|
-
agent_scripts:
|
|
7
|
-
sh: scripts/bash/update-agent-context.sh __AGENT__
|
|
8
|
-
ps: scripts/powershell/update-agent-context.ps1 -AgentType __AGENT__
|
|
9
3
|
---
|
|
10
4
|
|
|
11
5
|
## User Input
|
|
@@ -21,14 +15,6 @@ You **MUST** consider the user input before proceeding (if not empty).
|
|
|
21
15
|
Before proceeding with planning, verify you are in the correct working directory by running the shared pre-flight validation:
|
|
22
16
|
|
|
23
17
|
```python
|
|
24
|
-
from specify_cli.guards import validate_worktree_location
|
|
25
|
-
|
|
26
|
-
# Validate location
|
|
27
|
-
result = validate_worktree_location()
|
|
28
|
-
if not result.is_valid:
|
|
29
|
-
print(result.format_error())
|
|
30
|
-
print("\nThis command MUST run from a feature worktree, not the main repository.")
|
|
31
|
-
exit(1)
|
|
32
18
|
```
|
|
33
19
|
|
|
34
20
|
**What this validates**:
|
|
@@ -68,10 +54,13 @@ Planning requirements (scale to complexity):
|
|
|
68
54
|
## Outline
|
|
69
55
|
|
|
70
56
|
1. **Check planning discovery status**:
|
|
71
|
-
- If any planning questions remain unanswered or the user has not confirmed the **Engineering Alignment** summary, stay in the one-question cadence, capture the user
|
|
57
|
+
- If any planning questions remain unanswered or the user has not confirmed the **Engineering Alignment** summary, stay in the one-question cadence, capture the user's response, update your internal table, and end with `WAITING_FOR_PLANNING_INPUT`. Do **not** surface the table. Do **not** run the setup command yet.
|
|
72
58
|
- Once every planning question has a concrete answer and the alignment summary is confirmed by the user, continue.
|
|
73
59
|
|
|
74
|
-
2. **Setup**: Run `
|
|
60
|
+
2. **Setup**: Run `spec-kitty agent feature setup-plan --json` from the worktree root and parse JSON for:
|
|
61
|
+
- `result`: "success" or error message
|
|
62
|
+
- `plan_file`: Absolute path to the created plan.md
|
|
63
|
+
- `feature_dir`: Absolute path to the feature directory
|
|
75
64
|
|
|
76
65
|
3. **Load context**: Read FEATURE_SPEC and `.kittify/memory/constitution.md`. Load IMPL_PLAN template (already copied).
|
|
77
66
|
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Perform structured code review and kanban transitions for completed task prompt files
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
Run this command to get the work package prompt and review instructions:
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
spec-kitty agent workflow review $ARGUMENTS
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
If no WP ID is provided, it will automatically find the first work package with `lane: "for_review"` and move it to "doing" for you.
|
|
@@ -1,14 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Create or update the feature specification from a natural language feature description.
|
|
3
|
-
scripts:
|
|
4
|
-
sh: .kittify/scripts/bash/create-new-feature.sh --json "{ARGS}"
|
|
5
|
-
ps: .kittify/scripts/powershell/create-new-feature.ps1 -Json "{ARGS}"
|
|
6
3
|
---
|
|
7
|
-
**Path reference rule:** When you mention directories or files, provide either the absolute path or a path relative to the project root (for example, `kitty-specs/<feature>/tasks/`). Never refer to a folder by name alone.
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
*Path: [templates/commands/specify.md](templates/commands/specify.md)*
|
|
11
|
-
|
|
12
4
|
|
|
13
5
|
## User Input
|
|
14
6
|
|
|
@@ -18,44 +10,6 @@ $ARGUMENTS
|
|
|
18
10
|
|
|
19
11
|
You **MUST** consider the user input before proceeding (if not empty).
|
|
20
12
|
|
|
21
|
-
---
|
|
22
|
-
|
|
23
|
-
## Workflow Entry Point Context
|
|
24
|
-
|
|
25
|
-
**IMPORTANT**: This is the FIRST command in the spec-kitty feature workflow.
|
|
26
|
-
|
|
27
|
-
**Location Context**:
|
|
28
|
-
- **Before running {SCRIPT}**: You are in the main repository root
|
|
29
|
-
- **After running {SCRIPT}**: A new feature worktree is created at `.worktrees/001-feature-name/`
|
|
30
|
-
|
|
31
|
-
The script handles location setup automatically. You do NOT need to navigate anywhere before running it.
|
|
32
|
-
|
|
33
|
-
**What {SCRIPT} Provides**:
|
|
34
|
-
When you run the creation script, it returns JSON with:
|
|
35
|
-
- **BRANCH_NAME**: Your feature branch name (e.g., "001-checkout-flow")
|
|
36
|
-
- **SPEC_FILE**: Absolute path to newly created spec.md
|
|
37
|
-
- **FEATURE_NUM**: Feature number (e.g., "001")
|
|
38
|
-
- **FRIENDLY_NAME**: Your feature title (e.g., "Checkout Upsell Flow")
|
|
39
|
-
- **WORKTREE_PATH**: Absolute path to your feature worktree (e.g., `.worktrees/001-checkout-flow`)
|
|
40
|
-
|
|
41
|
-
---
|
|
42
|
-
|
|
43
|
-
## Workflow Context
|
|
44
|
-
|
|
45
|
-
**This is the START** of the spec-kitty feature lifecycle.
|
|
46
|
-
|
|
47
|
-
**After this command**:
|
|
48
|
-
1. Navigate to your new worktree: `cd <WORKTREE_PATH>`
|
|
49
|
-
2. (Optional) Run `/spec-kitty.clarify` to resolve ambiguities in the spec
|
|
50
|
-
3. Run `/spec-kitty.plan` to create the implementation plan
|
|
51
|
-
4. Run `/spec-kitty.tasks` to break down into work packages
|
|
52
|
-
5. Run `/spec-kitty.implement` to write the code
|
|
53
|
-
6. Run `/spec-kitty.review` to get code feedback
|
|
54
|
-
7. Run `/spec-kitty.accept` to validate readiness
|
|
55
|
-
8. Run `/spec-kitty.merge` to integrate into main
|
|
56
|
-
|
|
57
|
-
---
|
|
58
|
-
|
|
59
13
|
## Discovery Gate (mandatory)
|
|
60
14
|
|
|
61
15
|
Before running any scripts or writing to disk you **must** conduct a structured discovery interview.
|
|
@@ -83,6 +37,42 @@ Discovery requirements (scale to feature complexity):
|
|
|
83
37
|
3. When you have sufficient context for the feature's scope, paraphrase into an **Intent Summary** and confirm. For trivial features, this can be very brief.
|
|
84
38
|
4. If user explicitly asks to skip questions or says "just testing", acknowledge and proceed with minimal discovery.
|
|
85
39
|
|
|
40
|
+
## Mission Selection
|
|
41
|
+
|
|
42
|
+
After completing discovery and confirming the Intent Summary, determine the appropriate mission for this feature.
|
|
43
|
+
|
|
44
|
+
### Available Missions
|
|
45
|
+
|
|
46
|
+
- **software-dev**: For building software features, APIs, CLI tools, applications
|
|
47
|
+
- Phases: research → design → implement → test → review
|
|
48
|
+
- Best for: code changes, new features, bug fixes, refactoring
|
|
49
|
+
|
|
50
|
+
- **research**: For investigations, literature reviews, technical analysis
|
|
51
|
+
- Phases: question → methodology → gather → analyze → synthesize → publish
|
|
52
|
+
- Best for: feasibility studies, market research, technology evaluation
|
|
53
|
+
|
|
54
|
+
### Mission Inference
|
|
55
|
+
|
|
56
|
+
1. **Analyze the feature description** to identify the primary goal:
|
|
57
|
+
- Building, coding, implementing, creating software → **software-dev**
|
|
58
|
+
- Researching, investigating, analyzing, evaluating → **research**
|
|
59
|
+
|
|
60
|
+
2. **Check for explicit mission requests** in the user's description:
|
|
61
|
+
- If user mentions "research project", "investigation", "analysis" → use research
|
|
62
|
+
- If user mentions "build", "implement", "create feature" → use software-dev
|
|
63
|
+
|
|
64
|
+
3. **Confirm with user** (unless explicit):
|
|
65
|
+
> "Based on your description, this sounds like a **[software-dev/research]** project.
|
|
66
|
+
> I'll use the **[mission name]** mission. Does that work for you?"
|
|
67
|
+
|
|
68
|
+
4. **Handle user response**:
|
|
69
|
+
- If confirmed: proceed with selected mission
|
|
70
|
+
- If user wants different mission: use their choice
|
|
71
|
+
|
|
72
|
+
5. **Handle --mission flag**: If the user provides `--mission <key>` in their command, skip inference and use the specified mission directly.
|
|
73
|
+
|
|
74
|
+
Store the final mission selection to pass to the script via `--mission "<selected-mission>"`.
|
|
75
|
+
|
|
86
76
|
## Outline
|
|
87
77
|
|
|
88
78
|
### 0. Generate a Friendly Feature Title
|
|
@@ -99,44 +89,60 @@ Given that feature description, do this:
|
|
|
99
89
|
- **Interactive Interview Mode (no arguments)**: Use the discovery interview to elicit all necessary context, synthesize the working feature description, and confirm it with the user before you generate any specification artifacts.
|
|
100
90
|
|
|
101
91
|
1. **Check discovery status**:
|
|
102
|
-
- If this is your first message or discovery questions remain unanswered, stay in the one-question loop, capture the user
|
|
92
|
+
- If this is your first message or discovery questions remain unanswered, stay in the one-question loop, capture the user's response, update your internal table, and end with `WAITING_FOR_DISCOVERY_INPUT`. Do **not** surface the table; keep it internal. Do **not** call the creation command yet.
|
|
103
93
|
- Only proceed once every discovery question has an explicit answer and the user has acknowledged the Intent Summary.
|
|
104
|
-
- Empty invocation rule: stay in interview mode until you can restate the agreed-upon feature description. Do **not** call
|
|
105
|
-
|
|
106
|
-
2. When discovery is complete and the intent summary **and
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
94
|
+
- Empty invocation rule: stay in interview mode until you can restate the agreed-upon feature description. Do **not** call the creation command while the description is missing or provisional.
|
|
95
|
+
|
|
96
|
+
2. When discovery is complete and the intent summary, **title**, and **mission** are confirmed, run the feature creation command from repo root:
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
spec-kitty agent feature create-feature "<slug>" --json
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
Where `<slug>` is a kebab-case version of the friendly title (e.g., "Checkout Upsell Flow" → "checkout-upsell-flow").
|
|
103
|
+
|
|
104
|
+
The command returns JSON with:
|
|
105
|
+
- `result`: "success" or error message
|
|
106
|
+
- `feature`: Feature number and slug (e.g., "014-checkout-upsell-flow")
|
|
107
|
+
- `worktree_path`: Absolute path to the created worktree
|
|
108
|
+
- `feature_dir`: Absolute path to the feature directory inside the worktree
|
|
109
|
+
|
|
110
|
+
Parse these values for use in subsequent steps. All file paths are absolute.
|
|
111
|
+
|
|
112
|
+
**IMPORTANT**: You must only ever run this command once. The JSON is provided in the terminal output - always refer to it to get the actual paths you're looking for.
|
|
113
|
+
3. **Navigate to the worktree**: After feature creation, change directory to the worktree path returned by the command.
|
|
114
|
+
|
|
115
|
+
4. Load the spec template from `.kittify/templates/spec-template.md` (or `templates/spec-template.md`) to understand required sections.
|
|
116
|
+
|
|
117
|
+
5. Create meta.json in the feature directory with:
|
|
118
|
+
```json
|
|
119
|
+
{
|
|
120
|
+
"feature_number": "<number>",
|
|
121
|
+
"slug": "<full-slug>",
|
|
122
|
+
"friendly_name": "<Friendly Title>",
|
|
123
|
+
"mission": "<selected-mission>",
|
|
124
|
+
"source_description": "$ARGUMENTS",
|
|
125
|
+
"created_at": "<ISO timestamp>"
|
|
126
|
+
}
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
6. Generate the specification content by following this flow:
|
|
130
|
+
- Use the discovery answers as your authoritative source of truth (do **not** rely on raw `$ARGUMENTS`)
|
|
131
|
+
- For empty invocations, treat the synthesized interview summary as the canonical feature description
|
|
132
|
+
- Identify: actors, actions, data, constraints, motivations, success metrics
|
|
133
|
+
- For any remaining ambiguity:
|
|
134
|
+
* Ask the user a focused follow-up question immediately and halt work until they answer
|
|
135
|
+
* Only use `[NEEDS CLARIFICATION: …]` when the user explicitly defers the decision
|
|
136
|
+
* Record any interim assumption in the Assumptions section
|
|
137
|
+
* Prioritize clarifications by impact: scope > outcomes > risks/security > user experience > technical details
|
|
138
|
+
- Fill User Scenarios & Testing section (ERROR if no clear user flow can be determined)
|
|
139
|
+
- Generate Functional Requirements (each requirement must be testable)
|
|
140
|
+
- Define Success Criteria (measurable, technology-agnostic outcomes)
|
|
141
|
+
- Identify Key Entities (if data involved)
|
|
142
|
+
|
|
143
|
+
7. Write the specification to `<feature_dir>/spec.md` using the template structure, replacing placeholders with concrete details derived from the feature description while preserving section order and headings.
|
|
144
|
+
|
|
145
|
+
8. **Specification Quality Validation**: After writing the initial spec, validate it against quality criteria:
|
|
140
146
|
|
|
141
147
|
a. **Create Spec Quality Checklist**: Generate a checklist file at `FEATURE_DIR/checklists/requirements.md` using the checklist template structure with these validation items:
|
|
142
148
|
|
|
@@ -212,7 +218,7 @@ Given that feature description, do this:
|
|
|
212
218
|
|
|
213
219
|
d. **Update Checklist**: After each validation iteration, update the checklist file with current pass/fail status
|
|
214
220
|
|
|
215
|
-
|
|
221
|
+
9. Report completion with worktree path, feature directory, spec file path, checklist results, and readiness for the next phase (`/spec-kitty.clarify` or `/spec-kitty.plan`).
|
|
216
222
|
|
|
217
223
|
**NOTE:** The script creates and checks out the new branch and initializes the spec file before writing.
|
|
218
224
|
|
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Generate grouped work packages with actionable subtasks and matching prompt files for the feature in one pass.
|
|
3
|
-
scripts:
|
|
4
|
-
sh: scripts/bash/check-prerequisites.sh --json --include-tasks
|
|
5
|
-
ps: scripts/powershell/check-prerequisites.ps1 -Json -IncludeTasks
|
|
6
3
|
---
|
|
7
4
|
|
|
8
5
|
## User Input
|
|
@@ -37,20 +34,21 @@ The script will fail if you're not in a feature worktree. This is intentional -
|
|
|
37
34
|
|
|
38
35
|
## Outline
|
|
39
36
|
|
|
40
|
-
1. **Setup**: Run `
|
|
37
|
+
1. **Setup**: Run `spec-kitty agent feature check-prerequisites --json --paths-only --include-tasks` from the worktree root and capture `FEATURE_DIR` plus `AVAILABLE_DOCS`. All paths must be absolute.
|
|
41
38
|
|
|
42
|
-
**CRITICAL**: The
|
|
39
|
+
**CRITICAL**: The command returns JSON with `FEATURE_DIR` as an ABSOLUTE path (e.g., `/Users/robert/Code/new_specify/kitty-specs/001-feature-name`).
|
|
43
40
|
|
|
44
41
|
**YOU MUST USE THIS PATH** for ALL subsequent file operations. Example:
|
|
45
42
|
```
|
|
46
43
|
FEATURE_DIR = "/Users/robert/Code/new_specify/kitty-specs/001-a-simple-hello"
|
|
47
44
|
tasks.md location: FEATURE_DIR + "/tasks.md"
|
|
48
|
-
prompt location: FEATURE_DIR + "/tasks/
|
|
45
|
+
prompt location: FEATURE_DIR + "/tasks/WP01-slug.md"
|
|
49
46
|
```
|
|
50
47
|
|
|
51
48
|
**DO NOT CREATE** paths like:
|
|
52
|
-
- ❌ `tasks/
|
|
53
|
-
- ❌ `/tasks/
|
|
49
|
+
- ❌ `tasks/WP01-slug.md` (missing FEATURE_DIR prefix)
|
|
50
|
+
- ❌ `/tasks/WP01-slug.md` (wrong root)
|
|
51
|
+
- ❌ `FEATURE_DIR/tasks/planned/WP01-slug.md` (WRONG - no subdirectories!)
|
|
54
52
|
- ❌ `WP01-slug.md` (wrong directory)
|
|
55
53
|
|
|
56
54
|
2. **Load design documents** from `FEATURE_DIR` (only those present):
|
|
@@ -80,22 +78,24 @@ The script will fail if you're not in a feature worktree. This is intentional -
|
|
|
80
78
|
- Preserve the checklist style so implementers can mark progress
|
|
81
79
|
|
|
82
80
|
6. **Generate prompt files (one per work package)**:
|
|
83
|
-
- **CRITICAL PATH RULE**: All
|
|
84
|
-
- Correct structure: `FEATURE_DIR/tasks/
|
|
85
|
-
- WRONG (do not create):
|
|
86
|
-
-
|
|
87
|
-
-
|
|
81
|
+
- **CRITICAL PATH RULE**: All work package files MUST be created in a FLAT `FEATURE_DIR/tasks/` directory, NOT in subdirectories!
|
|
82
|
+
- Correct structure: `FEATURE_DIR/tasks/WPxx-slug.md` (flat, no subdirectories)
|
|
83
|
+
- WRONG (do not create): `FEATURE_DIR/tasks/planned/`, `FEATURE_DIR/tasks/doing/`, or ANY lane subdirectories
|
|
84
|
+
- WRONG (do not create): `/tasks/`, `tasks/`, or any path not under FEATURE_DIR
|
|
85
|
+
- Ensure `FEATURE_DIR/tasks/` exists (create as flat directory, NO subdirectories)
|
|
88
86
|
- For each work package:
|
|
89
87
|
- Derive a kebab-case slug from the title; filename: `WPxx-slug.md`
|
|
90
|
-
- Full path example: `FEATURE_DIR/tasks/
|
|
88
|
+
- Full path example: `FEATURE_DIR/tasks/WP01-create-html-page.md` (use ABSOLUTE path from FEATURE_DIR variable)
|
|
91
89
|
- Use `.kittify/templates/task-prompt-template.md` to capture:
|
|
92
|
-
- Frontmatter with `work_package_id`, `subtasks` array, `lane
|
|
90
|
+
- Frontmatter with `work_package_id`, `subtasks` array, `lane: "planned"`, history entry
|
|
93
91
|
- Objective, context, detailed guidance per subtask
|
|
94
92
|
- Test strategy (only if requested)
|
|
95
93
|
- Definition of Done, risks, reviewer guidance
|
|
96
94
|
- Update `tasks.md` to reference the prompt filename
|
|
97
95
|
- Keep prompts exhaustive enough that a new agent can complete the work package unaided
|
|
98
96
|
|
|
97
|
+
**IMPORTANT**: All WP files live in flat `tasks/` directory. Lane status is tracked ONLY in the `lane:` frontmatter field, NOT by directory location. Agents can change lanes by editing the `lane:` field directly or using `tasks_cli.py update`.
|
|
98
|
+
|
|
99
99
|
7. **Report**: Provide a concise outcome summary:
|
|
100
100
|
- Path to `tasks.md`
|
|
101
101
|
- Work package count and per-package subtask tallies
|