spec-kitty-cli 0.12.1__py3-none-any.whl
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.12.1.dist-info/METADATA +1767 -0
- spec_kitty_cli-0.12.1.dist-info/RECORD +242 -0
- spec_kitty_cli-0.12.1.dist-info/WHEEL +4 -0
- spec_kitty_cli-0.12.1.dist-info/entry_points.txt +2 -0
- spec_kitty_cli-0.12.1.dist-info/licenses/LICENSE +21 -0
- specify_cli/__init__.py +171 -0
- specify_cli/acceptance.py +627 -0
- specify_cli/agent_utils/README.md +157 -0
- specify_cli/agent_utils/__init__.py +9 -0
- specify_cli/agent_utils/status.py +356 -0
- specify_cli/cli/__init__.py +6 -0
- specify_cli/cli/commands/__init__.py +46 -0
- specify_cli/cli/commands/accept.py +189 -0
- specify_cli/cli/commands/agent/__init__.py +22 -0
- specify_cli/cli/commands/agent/config.py +382 -0
- specify_cli/cli/commands/agent/context.py +191 -0
- specify_cli/cli/commands/agent/feature.py +1057 -0
- specify_cli/cli/commands/agent/release.py +11 -0
- specify_cli/cli/commands/agent/tasks.py +1253 -0
- specify_cli/cli/commands/agent/workflow.py +801 -0
- specify_cli/cli/commands/context.py +246 -0
- specify_cli/cli/commands/dashboard.py +85 -0
- specify_cli/cli/commands/implement.py +973 -0
- specify_cli/cli/commands/init.py +827 -0
- specify_cli/cli/commands/init_help.py +62 -0
- specify_cli/cli/commands/merge.py +755 -0
- specify_cli/cli/commands/mission.py +240 -0
- specify_cli/cli/commands/ops.py +265 -0
- specify_cli/cli/commands/orchestrate.py +640 -0
- specify_cli/cli/commands/repair.py +175 -0
- specify_cli/cli/commands/research.py +165 -0
- specify_cli/cli/commands/sync.py +364 -0
- specify_cli/cli/commands/upgrade.py +249 -0
- specify_cli/cli/commands/validate_encoding.py +186 -0
- specify_cli/cli/commands/validate_tasks.py +186 -0
- specify_cli/cli/commands/verify.py +310 -0
- specify_cli/cli/helpers.py +123 -0
- specify_cli/cli/step_tracker.py +91 -0
- specify_cli/cli/ui.py +192 -0
- specify_cli/core/__init__.py +53 -0
- specify_cli/core/agent_context.py +311 -0
- specify_cli/core/config.py +96 -0
- specify_cli/core/context_validation.py +362 -0
- specify_cli/core/dependency_graph.py +351 -0
- specify_cli/core/git_ops.py +129 -0
- specify_cli/core/multi_parent_merge.py +323 -0
- specify_cli/core/paths.py +260 -0
- specify_cli/core/project_resolver.py +110 -0
- specify_cli/core/stale_detection.py +263 -0
- specify_cli/core/tool_checker.py +79 -0
- specify_cli/core/utils.py +43 -0
- specify_cli/core/vcs/__init__.py +114 -0
- specify_cli/core/vcs/detection.py +341 -0
- specify_cli/core/vcs/exceptions.py +85 -0
- specify_cli/core/vcs/git.py +1304 -0
- specify_cli/core/vcs/jujutsu.py +1208 -0
- specify_cli/core/vcs/protocol.py +285 -0
- specify_cli/core/vcs/types.py +249 -0
- specify_cli/core/version_checker.py +261 -0
- specify_cli/core/worktree.py +506 -0
- specify_cli/dashboard/__init__.py +28 -0
- specify_cli/dashboard/diagnostics.py +204 -0
- specify_cli/dashboard/handlers/__init__.py +17 -0
- specify_cli/dashboard/handlers/api.py +143 -0
- specify_cli/dashboard/handlers/base.py +65 -0
- specify_cli/dashboard/handlers/features.py +390 -0
- specify_cli/dashboard/handlers/router.py +81 -0
- specify_cli/dashboard/handlers/static.py +50 -0
- specify_cli/dashboard/lifecycle.py +541 -0
- specify_cli/dashboard/scanner.py +437 -0
- specify_cli/dashboard/server.py +123 -0
- specify_cli/dashboard/static/dashboard/dashboard.css +722 -0
- specify_cli/dashboard/static/dashboard/dashboard.js +1424 -0
- specify_cli/dashboard/static/spec-kitty.png +0 -0
- specify_cli/dashboard/templates/__init__.py +36 -0
- specify_cli/dashboard/templates/index.html +258 -0
- specify_cli/doc_generators.py +621 -0
- specify_cli/doc_state.py +408 -0
- specify_cli/frontmatter.py +384 -0
- specify_cli/gap_analysis.py +915 -0
- specify_cli/gitignore_manager.py +300 -0
- specify_cli/guards.py +145 -0
- specify_cli/legacy_detector.py +83 -0
- specify_cli/manifest.py +286 -0
- specify_cli/merge/__init__.py +63 -0
- specify_cli/merge/executor.py +653 -0
- specify_cli/merge/forecast.py +215 -0
- specify_cli/merge/ordering.py +126 -0
- specify_cli/merge/preflight.py +230 -0
- specify_cli/merge/state.py +185 -0
- specify_cli/merge/status_resolver.py +354 -0
- specify_cli/mission.py +654 -0
- specify_cli/missions/documentation/command-templates/implement.md +309 -0
- specify_cli/missions/documentation/command-templates/plan.md +275 -0
- specify_cli/missions/documentation/command-templates/review.md +344 -0
- specify_cli/missions/documentation/command-templates/specify.md +206 -0
- specify_cli/missions/documentation/command-templates/tasks.md +189 -0
- specify_cli/missions/documentation/mission.yaml +113 -0
- specify_cli/missions/documentation/templates/divio/explanation-template.md +192 -0
- specify_cli/missions/documentation/templates/divio/howto-template.md +168 -0
- specify_cli/missions/documentation/templates/divio/reference-template.md +179 -0
- specify_cli/missions/documentation/templates/divio/tutorial-template.md +146 -0
- specify_cli/missions/documentation/templates/generators/jsdoc.json.template +18 -0
- specify_cli/missions/documentation/templates/generators/sphinx-conf.py.template +36 -0
- specify_cli/missions/documentation/templates/plan-template.md +269 -0
- specify_cli/missions/documentation/templates/release-template.md +222 -0
- specify_cli/missions/documentation/templates/spec-template.md +172 -0
- specify_cli/missions/documentation/templates/task-prompt-template.md +140 -0
- specify_cli/missions/documentation/templates/tasks-template.md +159 -0
- specify_cli/missions/research/command-templates/merge.md +388 -0
- specify_cli/missions/research/command-templates/plan.md +125 -0
- specify_cli/missions/research/command-templates/review.md +144 -0
- specify_cli/missions/research/command-templates/tasks.md +225 -0
- specify_cli/missions/research/mission.yaml +115 -0
- specify_cli/missions/research/templates/data-model-template.md +33 -0
- specify_cli/missions/research/templates/plan-template.md +161 -0
- specify_cli/missions/research/templates/research/evidence-log.csv +18 -0
- specify_cli/missions/research/templates/research/source-register.csv +18 -0
- specify_cli/missions/research/templates/research-template.md +35 -0
- specify_cli/missions/research/templates/spec-template.md +64 -0
- specify_cli/missions/research/templates/task-prompt-template.md +148 -0
- specify_cli/missions/research/templates/tasks-template.md +114 -0
- specify_cli/missions/software-dev/command-templates/accept.md +75 -0
- specify_cli/missions/software-dev/command-templates/analyze.md +183 -0
- specify_cli/missions/software-dev/command-templates/checklist.md +286 -0
- specify_cli/missions/software-dev/command-templates/clarify.md +157 -0
- specify_cli/missions/software-dev/command-templates/constitution.md +432 -0
- specify_cli/missions/software-dev/command-templates/dashboard.md +101 -0
- specify_cli/missions/software-dev/command-templates/implement.md +41 -0
- specify_cli/missions/software-dev/command-templates/merge.md +383 -0
- specify_cli/missions/software-dev/command-templates/plan.md +171 -0
- specify_cli/missions/software-dev/command-templates/review.md +32 -0
- specify_cli/missions/software-dev/command-templates/specify.md +321 -0
- specify_cli/missions/software-dev/command-templates/tasks.md +566 -0
- specify_cli/missions/software-dev/mission.yaml +100 -0
- specify_cli/missions/software-dev/templates/plan-template.md +132 -0
- specify_cli/missions/software-dev/templates/spec-template.md +116 -0
- specify_cli/missions/software-dev/templates/task-prompt-template.md +140 -0
- specify_cli/missions/software-dev/templates/tasks-template.md +159 -0
- specify_cli/orchestrator/__init__.py +75 -0
- specify_cli/orchestrator/agent_config.py +224 -0
- specify_cli/orchestrator/agents/__init__.py +170 -0
- specify_cli/orchestrator/agents/augment.py +112 -0
- specify_cli/orchestrator/agents/base.py +243 -0
- specify_cli/orchestrator/agents/claude.py +112 -0
- specify_cli/orchestrator/agents/codex.py +106 -0
- specify_cli/orchestrator/agents/copilot.py +137 -0
- specify_cli/orchestrator/agents/cursor.py +139 -0
- specify_cli/orchestrator/agents/gemini.py +115 -0
- specify_cli/orchestrator/agents/kilocode.py +94 -0
- specify_cli/orchestrator/agents/opencode.py +132 -0
- specify_cli/orchestrator/agents/qwen.py +96 -0
- specify_cli/orchestrator/config.py +455 -0
- specify_cli/orchestrator/executor.py +642 -0
- specify_cli/orchestrator/integration.py +1230 -0
- specify_cli/orchestrator/monitor.py +898 -0
- specify_cli/orchestrator/scheduler.py +832 -0
- specify_cli/orchestrator/state.py +508 -0
- specify_cli/orchestrator/testing/__init__.py +122 -0
- specify_cli/orchestrator/testing/availability.py +346 -0
- specify_cli/orchestrator/testing/fixtures.py +684 -0
- specify_cli/orchestrator/testing/paths.py +218 -0
- specify_cli/plan_validation.py +107 -0
- specify_cli/scripts/debug-dashboard-scan.py +61 -0
- specify_cli/scripts/tasks/acceptance_support.py +695 -0
- specify_cli/scripts/tasks/task_helpers.py +506 -0
- specify_cli/scripts/tasks/tasks_cli.py +848 -0
- specify_cli/scripts/validate_encoding.py +180 -0
- specify_cli/task_metadata_validation.py +274 -0
- specify_cli/tasks_support.py +447 -0
- specify_cli/template/__init__.py +47 -0
- specify_cli/template/asset_generator.py +206 -0
- specify_cli/template/github_client.py +334 -0
- specify_cli/template/manager.py +193 -0
- specify_cli/template/renderer.py +99 -0
- specify_cli/templates/AGENTS.md +190 -0
- specify_cli/templates/POWERSHELL_SYNTAX.md +229 -0
- specify_cli/templates/agent-file-template.md +35 -0
- specify_cli/templates/checklist-template.md +42 -0
- specify_cli/templates/claudeignore-template +58 -0
- specify_cli/templates/command-templates/accept.md +141 -0
- specify_cli/templates/command-templates/analyze.md +253 -0
- specify_cli/templates/command-templates/checklist.md +352 -0
- specify_cli/templates/command-templates/clarify.md +224 -0
- specify_cli/templates/command-templates/constitution.md +432 -0
- specify_cli/templates/command-templates/dashboard.md +175 -0
- specify_cli/templates/command-templates/implement.md +190 -0
- specify_cli/templates/command-templates/merge.md +374 -0
- specify_cli/templates/command-templates/plan.md +171 -0
- specify_cli/templates/command-templates/research.md +88 -0
- specify_cli/templates/command-templates/review.md +510 -0
- specify_cli/templates/command-templates/specify.md +321 -0
- specify_cli/templates/command-templates/status.md +92 -0
- specify_cli/templates/command-templates/tasks.md +199 -0
- specify_cli/templates/git-hooks/pre-commit +22 -0
- specify_cli/templates/git-hooks/pre-commit-agent-check +37 -0
- specify_cli/templates/git-hooks/pre-commit-encoding-check +142 -0
- specify_cli/templates/plan-template.md +108 -0
- specify_cli/templates/spec-template.md +118 -0
- specify_cli/templates/task-prompt-template.md +165 -0
- specify_cli/templates/tasks-template.md +161 -0
- specify_cli/templates/vscode-settings.json +13 -0
- specify_cli/text_sanitization.py +225 -0
- specify_cli/upgrade/__init__.py +18 -0
- specify_cli/upgrade/detector.py +239 -0
- specify_cli/upgrade/metadata.py +182 -0
- specify_cli/upgrade/migrations/__init__.py +65 -0
- specify_cli/upgrade/migrations/base.py +80 -0
- specify_cli/upgrade/migrations/m_0_10_0_python_only.py +359 -0
- specify_cli/upgrade/migrations/m_0_10_12_constitution_cleanup.py +99 -0
- specify_cli/upgrade/migrations/m_0_10_14_update_implement_slash_command.py +176 -0
- specify_cli/upgrade/migrations/m_0_10_1_populate_slash_commands.py +174 -0
- specify_cli/upgrade/migrations/m_0_10_2_update_slash_commands.py +172 -0
- specify_cli/upgrade/migrations/m_0_10_6_workflow_simplification.py +174 -0
- specify_cli/upgrade/migrations/m_0_10_8_fix_memory_structure.py +252 -0
- specify_cli/upgrade/migrations/m_0_10_9_repair_templates.py +168 -0
- specify_cli/upgrade/migrations/m_0_11_0_workspace_per_wp.py +182 -0
- specify_cli/upgrade/migrations/m_0_11_1_improved_workflow_templates.py +173 -0
- specify_cli/upgrade/migrations/m_0_11_1_update_implement_slash_command.py +160 -0
- specify_cli/upgrade/migrations/m_0_11_2_improved_workflow_templates.py +173 -0
- specify_cli/upgrade/migrations/m_0_11_3_workflow_agent_flag.py +114 -0
- specify_cli/upgrade/migrations/m_0_12_0_documentation_mission.py +155 -0
- specify_cli/upgrade/migrations/m_0_12_1_remove_kitty_specs_from_gitignore.py +183 -0
- specify_cli/upgrade/migrations/m_0_2_0_specify_to_kittify.py +80 -0
- specify_cli/upgrade/migrations/m_0_4_8_gitignore_agents.py +118 -0
- specify_cli/upgrade/migrations/m_0_5_0_encoding_hooks.py +141 -0
- specify_cli/upgrade/migrations/m_0_6_5_commands_rename.py +169 -0
- specify_cli/upgrade/migrations/m_0_6_7_ensure_missions.py +228 -0
- specify_cli/upgrade/migrations/m_0_7_2_worktree_commands_dedup.py +89 -0
- specify_cli/upgrade/migrations/m_0_7_3_update_scripts.py +114 -0
- specify_cli/upgrade/migrations/m_0_8_0_remove_active_mission.py +82 -0
- specify_cli/upgrade/migrations/m_0_8_0_worktree_agents_symlink.py +148 -0
- specify_cli/upgrade/migrations/m_0_9_0_frontmatter_only_lanes.py +346 -0
- specify_cli/upgrade/migrations/m_0_9_1_complete_lane_migration.py +656 -0
- specify_cli/upgrade/migrations/m_0_9_2_research_mission_templates.py +221 -0
- specify_cli/upgrade/registry.py +121 -0
- specify_cli/upgrade/runner.py +284 -0
- specify_cli/validators/__init__.py +14 -0
- specify_cli/validators/paths.py +154 -0
- specify_cli/validators/research.py +428 -0
- specify_cli/verify_enhanced.py +270 -0
- specify_cli/workspace_context.py +224 -0
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
specify_cli/__init__.py,sha256=NiuIRNJ5HbgXo-_iGcNO1CjiSHPR_ZQmtKWYlby6UCk,5450
|
|
2
|
+
specify_cli/acceptance.py,sha256=tsiJwgy53jY-kee-2QzVj1QSaFzk1vFY83c46XJp6PY,21230
|
|
3
|
+
specify_cli/doc_generators.py,sha256=TeTgUDIKux1wQNSSUhs4_-gvh8vsYZwY7d_BFkXAAdM,19549
|
|
4
|
+
specify_cli/doc_state.py,sha256=yD-ogViIiv9xbqLLU-GbivjXwEKYJ7eh8sPB4wthO_I,12918
|
|
5
|
+
specify_cli/frontmatter.py,sha256=763gsn4VqNHLed1-oL0ZZVOEWFr9B-h7qEp-Mhs9O4c,12136
|
|
6
|
+
specify_cli/gap_analysis.py,sha256=ho9OHX01dctViyj5rfyRYTEzhkijGv8eLsc5ImIa4Pk,28340
|
|
7
|
+
specify_cli/gitignore_manager.py,sha256=vOP7BkmGpZ7oZua3m4ABbsFQGajFP_6AVFwoXW3q5SQ,10569
|
|
8
|
+
specify_cli/guards.py,sha256=hOUcmaHDjHesnFLrN4pqjTUxEbHYuVKn6by3cpgIZ2k,4586
|
|
9
|
+
specify_cli/legacy_detector.py,sha256=bGUn_enxYUhnGDh-gDdkfVyz9V8sDmijojyhZwCNhL8,2435
|
|
10
|
+
specify_cli/manifest.py,sha256=v55EtGz50Whbbl9t6GptUj2tCPzY_p5j0nj-WuX33E8,10909
|
|
11
|
+
specify_cli/mission.py,sha256=BfRYol2Fvf6ghH_KTZO-fsB5kmnkYviG39OydYwS-nk,22581
|
|
12
|
+
specify_cli/plan_validation.py,sha256=NkyReWP_PPBPeiznPxk6N-3o49rBW0cZJHkoS1XG8xw,3210
|
|
13
|
+
specify_cli/task_metadata_validation.py,sha256=S2dnrPVSAI_gSqRMz-KwqEC2A4hxTT21JfYlFwdru6g,9133
|
|
14
|
+
specify_cli/tasks_support.py,sha256=WDAwmRuQz3YqxYPj1bADt981-24erqzMMC9qsqpMYHQ,14675
|
|
15
|
+
specify_cli/text_sanitization.py,sha256=UobRytRrzBy_Ym1WHSv4xo9OeVRb4JWowmDR1-SNURs,7520
|
|
16
|
+
specify_cli/verify_enhanced.py,sha256=ss-p4TEn9279oPfRAdCDmjm82ACVHPwgN504eivYcGQ,10284
|
|
17
|
+
specify_cli/workspace_context.py,sha256=jPWgNJFpx8qdlCvMRKhZO3wiMHw375GYHD6GMlbJ1_A,6234
|
|
18
|
+
specify_cli/agent_utils/README.md,sha256=h6bHhvmVQMa09S4kytpB1Rm0ReMA70nta-3PLcEp028,6141
|
|
19
|
+
specify_cli/agent_utils/__init__.py,sha256=HpRQk4l-687q-LNzeTVam_7hSNPVhL-CuPeayANFANA,255
|
|
20
|
+
specify_cli/agent_utils/status.py,sha256=ShNsgTbWXNRpxYusme_WH35mZuetihH4iHvXyADFa1o,14151
|
|
21
|
+
specify_cli/cli/__init__.py,sha256=Ed0nQGc4jroIa-L-q-1MJogsJE81if3mWtMcbqkbNzs,242
|
|
22
|
+
specify_cli/cli/helpers.py,sha256=nDvqS7nmCEcSKqH8wfje8ANkcXr7WO84eR_UnlrfNEU,4539
|
|
23
|
+
specify_cli/cli/step_tracker.py,sha256=hOAsuKDl53eHVQ20n2f9fYnNAvmnMVpDbENtpfbCi1k,3142
|
|
24
|
+
specify_cli/cli/ui.py,sha256=fTzOiJYnVoRpiZaF3juJBvWAvWUFHgh4YxoxVHFSOLA,6366
|
|
25
|
+
specify_cli/cli/commands/__init__.py,sha256=vy8AX7KVN9nHh-nVDr6fOhby_5Yoil9PBWC7_H-9_hs,1859
|
|
26
|
+
specify_cli/cli/commands/accept.py,sha256=Go_Xb6jDhAijmO_vpKoyhsVOeEKMOVzXAb4S7ApFDCQ,6751
|
|
27
|
+
specify_cli/cli/commands/context.py,sha256=dS5QD5tLwRjAZna1tp6B7qJwaw8EvQcKmVQW07IJ_HI,8286
|
|
28
|
+
specify_cli/cli/commands/dashboard.py,sha256=ZV7a_rt6XJMie1LzIpuT7Mpt3fZIMPRSD4jb_gL91C4,3088
|
|
29
|
+
specify_cli/cli/commands/implement.py,sha256=8FOEIdv-wPI44NMV1M1H-rms5Wk2VP-IlZoxPysHS1g,37737
|
|
30
|
+
specify_cli/cli/commands/init.py,sha256=LocNOwhret6S4ZQ5e5DT2JbA5k9cHJ1pwIbZjlM2WCM,36517
|
|
31
|
+
specify_cli/cli/commands/init_help.py,sha256=2Ds1fxvIC3Wo6tK2VgKhneK1EWsUD4osQ43hDSAkgt4,2478
|
|
32
|
+
specify_cli/cli/commands/merge.py,sha256=NEOYS6akeddYxZn4Fw9hLmDh1dOHFlxeHzUHFTg2Shs,30762
|
|
33
|
+
specify_cli/cli/commands/mission.py,sha256=8pO6voZ-uID_mC8TzJrvdjQJCi-DhzM_jhCnnG-kS5A,8806
|
|
34
|
+
specify_cli/cli/commands/ops.py,sha256=E8xfvUtDihH0pJqbU5x0yYRP63pr4f_gvqun86mTeMU,8085
|
|
35
|
+
specify_cli/cli/commands/orchestrate.py,sha256=ibdDvaTrH2UEXlgBXXVu8cnLnMc7gOAZxxT2LHaP4-k,20421
|
|
36
|
+
specify_cli/cli/commands/repair.py,sha256=bZ31a9dRH4nxLM8IImMoWUxima8pGJhmGf5B9TbFTtI,6208
|
|
37
|
+
specify_cli/cli/commands/research.py,sha256=f69pCPPdtXNa2FGUy0waAIOqRHxKrGIql0Q5z1WWhQw,6612
|
|
38
|
+
specify_cli/cli/commands/sync.py,sha256=PeWNE5vL0wyMMhvpDN4EeI5nVLOi935xVMKqi_lSpqk,11311
|
|
39
|
+
specify_cli/cli/commands/upgrade.py,sha256=WasQ9fj5KnuBiQaDlZguS6Rj2tX1QSH387hL9VMZIH0,8673
|
|
40
|
+
specify_cli/cli/commands/validate_encoding.py,sha256=4n1G_CUQ15WpU0g25_PhgtIPuS3Y6gJaGIf3Y9BBcdM,7386
|
|
41
|
+
specify_cli/cli/commands/validate_tasks.py,sha256=XZekLmDcSlUaebMi8coxXWauFkAWxeX7is8ljsEu3k4,6734
|
|
42
|
+
specify_cli/cli/commands/verify.py,sha256=UESVqE2CLRWUJsSGIvShnxpYGi-YDvXDU9HsEBbMz08,12394
|
|
43
|
+
specify_cli/cli/commands/agent/__init__.py,sha256=jdF5Hb_83PM2G-LePmgZZxqrg4XLZueOGlwcSSXzX3s,681
|
|
44
|
+
specify_cli/cli/commands/agent/config.py,sha256=kDlGQ5bCa6G1hxGMgp59UZeF8G1Qn0NKciY3DUGeEaY,12524
|
|
45
|
+
specify_cli/cli/commands/agent/context.py,sha256=XyzMAQ3A9hJvWouY3ZykJU7hOyNVJtkNHoFj7VCW9kU,6559
|
|
46
|
+
specify_cli/cli/commands/agent/feature.py,sha256=79syq6TtzDHc3vm8OANYMpu7nwOEv-TqrOmVZb6hJyo,36410
|
|
47
|
+
specify_cli/cli/commands/agent/release.py,sha256=xtTE0wACruHdNK_c0ToBWgGxnD1QfOGS9J6hA0qXhSA,213
|
|
48
|
+
specify_cli/cli/commands/agent/tasks.py,sha256=rhsGkmcTqPaRAJJ4BLnUybUTc8kw1L5J0SKkyuU3lZU,51208
|
|
49
|
+
specify_cli/cli/commands/agent/workflow.py,sha256=oP4FHUeQSSGAZHtYVizqe82J__hqhR_m1mTevw_aoBg,37248
|
|
50
|
+
specify_cli/core/__init__.py,sha256=ahmOJKet_a1xrl6Q3W2UCH_Aa1ZSm1lTUALy2n325Pc,1284
|
|
51
|
+
specify_cli/core/agent_context.py,sha256=FrXBkIofV7scAI4JHpZ-hHsm3mw5IS_leUdCX30uem8,10712
|
|
52
|
+
specify_cli/core/config.py,sha256=0wADMN0V-Rg8Qk4hbT1QK1dcHbI2ZoIcJJ4heRNqL0E,4371
|
|
53
|
+
specify_cli/core/context_validation.py,sha256=0DNmlAQ55tZ38_gh5QuYeCvgws4bDWf1bFCGXjS_Wm0,11177
|
|
54
|
+
specify_cli/core/dependency_graph.py,sha256=5vlf8Rsi1vlPs5z4qpWpwJLM5cc6m0gkda-Jg4XvE6Q,11047
|
|
55
|
+
specify_cli/core/git_ops.py,sha256=8n6UFKuWEVKynroo07FnRjwkNiBEFlnfDO2CnYjUcZs,4156
|
|
56
|
+
specify_cli/core/multi_parent_merge.py,sha256=EuvOAycQVOTs-HZX4LCPCI3lJ6pbD-IoTb6dsXw2PFU,9986
|
|
57
|
+
specify_cli/core/paths.py,sha256=yRfQZ_0mNNwOoWQthgoNJFZHXDTluBtbRERL79rDxNw,8618
|
|
58
|
+
specify_cli/core/project_resolver.py,sha256=D9W9ZF3jJggQPDZ5z34gnJie_6EH-y3aRFkpkRIWzc8,3801
|
|
59
|
+
specify_cli/core/stale_detection.py,sha256=BHQ6tvong-8y8y4-nKRQa1CJRmk8i-ELaCy9wQ4Pz1g,8087
|
|
60
|
+
specify_cli/core/tool_checker.py,sha256=DIpjju_vbDTDdCftqWep2ANuLqDrPIfYw-9dX0jzGI0,2516
|
|
61
|
+
specify_cli/core/utils.py,sha256=Lf2k5jNYQb8HuSXU3tF7Woc4FFyNX8VFmiGI9DYm6YU,1184
|
|
62
|
+
specify_cli/core/version_checker.py,sha256=u_nlViiYORqjSmrhaxVZbY8o2h2aoXp3rkGxcDSRgBs,7771
|
|
63
|
+
specify_cli/core/worktree.py,sha256=khC9VOQDJ5iHAoRs4fpE0InM_ES3z8yTaeEmcwx5XDA,16622
|
|
64
|
+
specify_cli/core/vcs/__init__.py,sha256=7M2i9dylMYutHxjEdnWd33OKOyCQK2VDD3r-05QQ6Oo,2282
|
|
65
|
+
specify_cli/core/vcs/detection.py,sha256=POEZVCvtuvDkWSgRjCjxffBndOOCGI8MEmKHWYqnDSI,11083
|
|
66
|
+
specify_cli/core/vcs/exceptions.py,sha256=9KFfSOOTjr1CkhkLDc-L2S4VV642quwrHCeD8mt6qz8,1706
|
|
67
|
+
specify_cli/core/vcs/git.py,sha256=XRxd8NX-cv-rBM3xVkW7PvIXYxBC32LospUQ86aeF-Q,43635
|
|
68
|
+
specify_cli/core/vcs/jujutsu.py,sha256=TM7w89Q7rvdqz4tcMEvIUHhy1Wl2Vg7zfU9w1Z14C_A,40172
|
|
69
|
+
specify_cli/core/vcs/protocol.py,sha256=2bmYxGlpN8q41g4iHApcb6z25Uu2WwP8kiEVVk6RghU,7876
|
|
70
|
+
specify_cli/core/vcs/types.py,sha256=PRkqAiqVJ9P-KW339QRt-SRy5Ez6FWptJfH6AbZnRas,7512
|
|
71
|
+
specify_cli/dashboard/__init__.py,sha256=Ok7gk-JSLefrjYkSrQWZNiraF9_5unZIZt2bor39lf8,726
|
|
72
|
+
specify_cli/dashboard/diagnostics.py,sha256=IZDSvP_SKUkkM038TYkJ4-JEXmFK5UY44WDr7IUUsrE,8424
|
|
73
|
+
specify_cli/dashboard/lifecycle.py,sha256=-21zAlVETVMH468KJhExFVGLUeg2S84OerlHs7s7KjU,19588
|
|
74
|
+
specify_cli/dashboard/scanner.py,sha256=YBxpyndtKXSQn-5o5r6x9nz_QCyOixdivhdfdraYNDc,15732
|
|
75
|
+
specify_cli/dashboard/server.py,sha256=B_VmdcM320l-VyIHa0F1F3QMmU-xe359V5US4AJXFkc,4113
|
|
76
|
+
specify_cli/dashboard/handlers/__init__.py,sha256=m1sDIlnhLK_VWPuAY97fNp3CrGz9Y-yIqFIFEgOA1EI,409
|
|
77
|
+
specify_cli/dashboard/handlers/api.py,sha256=fgURrGaMDkt-1SLZ44ZFXOezRcHxqlCUqUfBH33eW4Q,5436
|
|
78
|
+
specify_cli/dashboard/handlers/base.py,sha256=rfZOXKx0wULQbi0tZBIU8jUupFTvS7GBqPpzjGmZPsI,2394
|
|
79
|
+
specify_cli/dashboard/handlers/features.py,sha256=NT8hlbVsrrWchx4a-PfPg7oOEqdMQ-qJSvtW45GgU9I,16282
|
|
80
|
+
specify_cli/dashboard/handlers/router.py,sha256=Tb8v7we7ozYmCrUYyKRMYAI4kCEPo7AXA8yensCjDGI,2104
|
|
81
|
+
specify_cli/dashboard/handlers/static.py,sha256=vahtMr0ZfqqJKim-7rbfe3WiPE0VoQk6tREsEx7Ww3o,1499
|
|
82
|
+
specify_cli/dashboard/static/spec-kitty.png,sha256=jgxPJ4g8XtcGitG_68j3Ti3UZvOr75iDNUfJz_GWeS4,1481824
|
|
83
|
+
specify_cli/dashboard/static/dashboard/dashboard.css,sha256=NtMbPHyTQaY9WMh_XlOkJnLPbqOdv0aDVUhJ-Wk-0ek,13697
|
|
84
|
+
specify_cli/dashboard/static/dashboard/dashboard.js,sha256=dVeWqHEM6jLIxBnnWhGJNY2f_IIuStZMLaphtmsLvP8,60262
|
|
85
|
+
specify_cli/dashboard/templates/__init__.py,sha256=g_QkfM17deG93cKpVhLwlm9IuWFnm5e7GD6YTRpW8TU,1214
|
|
86
|
+
specify_cli/dashboard/templates/index.html,sha256=J5zcu2DZrpxvzIolgPbjho3lclFkpwBJTeGKSfTtp84,13009
|
|
87
|
+
specify_cli/merge/__init__.py,sha256=lWgcAN4M9ULGyC3QzY0UxO-hEPNlthpb02L9m-dNOgY,1774
|
|
88
|
+
specify_cli/merge/executor.py,sha256=mCi4WeftSKKEn96S5pQQ96Z3mVyA7kkV-p_2Xk7MazI,23119
|
|
89
|
+
specify_cli/merge/forecast.py,sha256=ph5nE3MpRzS25S80fqcEuUP088ks6Xy5zC0dvBjTFkU,6753
|
|
90
|
+
specify_cli/merge/ordering.py,sha256=i6n8w2uKsr80LBanUfRViLnD5w1znErG9u_2AOnRK4k,3694
|
|
91
|
+
specify_cli/merge/preflight.py,sha256=eh-KWdiN7HMp-HVDIWP_ki0jYlo9v6CiL3jDAiFZW8M,7310
|
|
92
|
+
specify_cli/merge/state.py,sha256=gd1SyhYg9SbZRadxYJjgkeb0CwWz0FABXbQq0bwS3i8,5146
|
|
93
|
+
specify_cli/merge/status_resolver.py,sha256=9lIyIDVGqFTfAntX1Iar-NCMyXoPTyWnprRPpllNpnk,11115
|
|
94
|
+
specify_cli/missions/documentation/mission.yaml,sha256=YECKaKl-uGPhb30CWoQAkwSWVebVsQrcBGib3fxVTg0,3579
|
|
95
|
+
specify_cli/missions/documentation/command-templates/implement.md,sha256=X6CBOWEfEDIOvXIXdTIh2PCy9lHmjR3DjCF1Bh3m11A,9481
|
|
96
|
+
specify_cli/missions/documentation/command-templates/plan.md,sha256=_UXGXjuUeT1zQNEzgfAOI-C8KZ3hSveUmVQZQLEgMK0,9376
|
|
97
|
+
specify_cli/missions/documentation/command-templates/review.md,sha256=xFpmi4ifb4QzoL5qM9fN5nn3h_3LOdjPuvBF3unF7b0,10847
|
|
98
|
+
specify_cli/missions/documentation/command-templates/specify.md,sha256=GUkISqbPhfbOQIQymBXPnuzvGA5zvUc7m9ULSVd2l7k,7173
|
|
99
|
+
specify_cli/missions/documentation/command-templates/tasks.md,sha256=vOH7FdRTDooN7iBXWFB7Qqnxp6Yi3nMAuQBY5PlkIR4,7347
|
|
100
|
+
specify_cli/missions/documentation/templates/plan-template.md,sha256=MN060SNStFJmhEQqdaNkWkTZGM_yroQScHqUWL8DXbM,9961
|
|
101
|
+
specify_cli/missions/documentation/templates/release-template.md,sha256=hWth_g53NaPHED4bzyQvUGQybtlx7btao7X2xPBM9Dc,5478
|
|
102
|
+
specify_cli/missions/documentation/templates/spec-template.md,sha256=z789CV_TIl0PQm4lWC_6YAWP4aY-V_NFge88tQfP83o,7303
|
|
103
|
+
specify_cli/missions/documentation/templates/task-prompt-template.md,sha256=RItX9z5P02vOBr7koFrTmPdH_lPT6SUS14Bs8AlZo6E,5700
|
|
104
|
+
specify_cli/missions/documentation/templates/tasks-template.md,sha256=lzXVXHcO95wHNhTq9d7g8gEczcXLFhbnatk3tleY770,5803
|
|
105
|
+
specify_cli/missions/documentation/templates/divio/explanation-template.md,sha256=_oEPMJGpQcEfMt8P8O3idEZgdGiz6eNz-sA7e0r0XHo,4817
|
|
106
|
+
specify_cli/missions/documentation/templates/divio/howto-template.md,sha256=utV-Uz-XAks2mXDjcSz2__bVe_unVXjVv3D8753kRnE,3670
|
|
107
|
+
specify_cli/missions/documentation/templates/divio/reference-template.md,sha256=M61uZohHQVo4E-FFyP_MthXj5U7_tnul2G4zcVTy6wY,3837
|
|
108
|
+
specify_cli/missions/documentation/templates/divio/tutorial-template.md,sha256=5D8s-Wb5FHuODU2HKalEs5iz5QAC6-3pDbtHicjbQFY,4226
|
|
109
|
+
specify_cli/missions/documentation/templates/generators/jsdoc.json.template,sha256=diBsRb6CFcLIMkdMGc2mjcrvH0F80nlm5WSJ2spMnRk,393
|
|
110
|
+
specify_cli/missions/documentation/templates/generators/sphinx-conf.py.template,sha256=kDPWayUfIF04velVO7WJOGajI-cbIRyw4qmdiGhOQ3s,904
|
|
111
|
+
specify_cli/missions/research/mission.yaml,sha256=GPTClnDLJG4u02ucOIZ6hrapM0a2p0NtnBDbv1XWgBo,3656
|
|
112
|
+
specify_cli/missions/research/command-templates/merge.md,sha256=tfv1oboxCqW6WZnGoOKxJBmRZBPtwYQjhsUNp0DYMhg,10971
|
|
113
|
+
specify_cli/missions/research/command-templates/plan.md,sha256=p1XAeSV2k-MXoV6zMWR94S1iE_XXxD9MVzbqhaTP_24,6683
|
|
114
|
+
specify_cli/missions/research/command-templates/review.md,sha256=yy6YxXdgrx2A-5qJckCOTiW2SNe42ToZ_Nva4cvzF-E,6630
|
|
115
|
+
specify_cli/missions/research/command-templates/tasks.md,sha256=AXkOlYUnlhzDf1acZwOSQA_11oRwAmHTyB2GJ5Y_Kg0,8238
|
|
116
|
+
specify_cli/missions/research/templates/data-model-template.md,sha256=2RFcAIEMYodPG0VuOBGCehSpTi2Pdw8wkG6kH8aX0MU,1343
|
|
117
|
+
specify_cli/missions/research/templates/plan-template.md,sha256=6M5OorMVjJ2vn0z79dZTd0ZqaXKlHpeC_ehvi-zvGjQ,4763
|
|
118
|
+
specify_cli/missions/research/templates/research-template.md,sha256=WC_jTDbYzXecB2cKa1gO47mhC6iOD_YENwJtno36rvw,1423
|
|
119
|
+
specify_cli/missions/research/templates/spec-template.md,sha256=2UibaEdzaoCzdc7Am3CGZOTBIpqIDI40aAL3aeiba84,2425
|
|
120
|
+
specify_cli/missions/research/templates/task-prompt-template.md,sha256=517Toa1GUoeW3szxALK9WTNEcexKxFb8vjI-4dRzQFE,6129
|
|
121
|
+
specify_cli/missions/research/templates/tasks-template.md,sha256=j9A1RiDT3Ium4seNOsB2rcs-iNFEC62T6sRMZYkcXo4,5009
|
|
122
|
+
specify_cli/missions/research/templates/research/evidence-log.csv,sha256=-3sgIcvz5aoMOpn0zdN1pzQQOA2CvX3UdswPS-GVTVw,1572
|
|
123
|
+
specify_cli/missions/research/templates/research/source-register.csv,sha256=K9QTwcsdn_l5YE0Cx8PdsrBrk1YYJ-xiu2IaX1XSkaY,1296
|
|
124
|
+
specify_cli/missions/software-dev/mission.yaml,sha256=0wBtWbEZeAhFRcOIiIUn38cO8Wu1jrKYVTLThvQ8BN4,2413
|
|
125
|
+
specify_cli/missions/software-dev/command-templates/accept.md,sha256=4H8WkkhGcaIteu4YNrDYr5fjPd3DMvrk1Up8lnz2wmE,3169
|
|
126
|
+
specify_cli/missions/software-dev/command-templates/analyze.md,sha256=JEaVTma0gx8t-RbRB5EUO09EU9fketcl8x-h646X18w,6924
|
|
127
|
+
specify_cli/missions/software-dev/command-templates/checklist.md,sha256=T0eKBGeihhquS_H2QNpcbvLtf7GW2pkPt1F_As_b5vQ,16665
|
|
128
|
+
specify_cli/missions/software-dev/command-templates/clarify.md,sha256=HYnzigtgKo5la72QlQr2NQnri3-VJ0ZCyqUhTjl2mFA,9920
|
|
129
|
+
specify_cli/missions/software-dev/command-templates/constitution.md,sha256=EflS3Sfo8UfvTXADD-vtN72B6Sju-tgg5iOK7sNjIks,11262
|
|
130
|
+
specify_cli/missions/software-dev/command-templates/dashboard.md,sha256=QRnW8GloeeCN_pgl1T_y4mac0B1SJk0Oid1aNIAwblk,3219
|
|
131
|
+
specify_cli/missions/software-dev/command-templates/implement.md,sha256=BOcxzzwZoYL-whEaIoBmvojoOLlwsW0OoQyGfz197YY,1770
|
|
132
|
+
specify_cli/missions/software-dev/command-templates/merge.md,sha256=N3vQtkorq3xF30ah1B6NfFWcEvt97sOarLFvipdx_68,10772
|
|
133
|
+
specify_cli/missions/software-dev/command-templates/plan.md,sha256=g8EzGF__KwpuqaIdRGOtOplpuWm0QpvBjHaWV494cro,8021
|
|
134
|
+
specify_cli/missions/software-dev/command-templates/review.md,sha256=C799Ix3vSgDMzv_IFaeE6PnpbpxBbf4uwHJUJDxf8sk,1795
|
|
135
|
+
specify_cli/missions/software-dev/command-templates/specify.md,sha256=JUPY-PNid-zwNv4Cjw0yGNmlOikjjRK5CuWX5afpRZI,16840
|
|
136
|
+
specify_cli/missions/software-dev/command-templates/tasks.md,sha256=BnUgdutM9WPo9GzsSesblq2hArnV4xGihD-XgRquMpI,21545
|
|
137
|
+
specify_cli/missions/software-dev/templates/plan-template.md,sha256=rUiGpP3tavBlp_3npGDibNcIf3O-61fpV2cBOfDJISk,4748
|
|
138
|
+
specify_cli/missions/software-dev/templates/spec-template.md,sha256=z58NEQsc-_94RgfF-dgzSSailglveiPJETbW3Gjb4uc,4063
|
|
139
|
+
specify_cli/missions/software-dev/templates/task-prompt-template.md,sha256=21i2jCa53Q_TtTS-WXvsGem4oGBUvUieDpdmVL2IBzw,5699
|
|
140
|
+
specify_cli/missions/software-dev/templates/tasks-template.md,sha256=xZM2eHdoal4xLKBa1VDcUrM_hAdDPfUrgUFf71y8nOI,5802
|
|
141
|
+
specify_cli/orchestrator/__init__.py,sha256=SaKpV43lT3_2NgZ-NBs5kHFO3a4bDKocZ4N53lewbVA,2012
|
|
142
|
+
specify_cli/orchestrator/agent_config.py,sha256=lGcuCp-Q6JbI8SANk6xC9GFOi8KWgf5ZWoC2jnjIkcM,6658
|
|
143
|
+
specify_cli/orchestrator/config.py,sha256=RSTBCBTBIAcGICXZ4iiGUpeaucnz3gUVGeibdJ-uOMI,14008
|
|
144
|
+
specify_cli/orchestrator/executor.py,sha256=5i85ctUuAm3j0dHmTzVq6IKyuYxxU5ZwiZ1WzsXxHn4,17792
|
|
145
|
+
specify_cli/orchestrator/integration.py,sha256=ewKeoKgaAFqaDPHqKByYuVg4lOBLhIbkDUVM8uyZBMQ,41071
|
|
146
|
+
specify_cli/orchestrator/monitor.py,sha256=JgkzwGZsm8Ij05IN5sEpIrmbyXe3Qr6T54E0leIk7-U,27615
|
|
147
|
+
specify_cli/orchestrator/scheduler.py,sha256=25UynRmpQ0iN6fmp5mQ7dOnS6TjJlTH8vXNmoAMMscI,24534
|
|
148
|
+
specify_cli/orchestrator/state.py,sha256=TlqGPIGdCAvCL6TCrb5uhEXwqKx4inzw-JLSuMwMEz4,17207
|
|
149
|
+
specify_cli/orchestrator/agents/__init__.py,sha256=I-pZQ6_SpjNmJrlbqTKuxr3W4Sn_9_mHHdHO4YHuecg,4875
|
|
150
|
+
specify_cli/orchestrator/agents/augment.py,sha256=ZL6xthWIp4Hm3xrJEJ0wKtPn_VHrnfUZFeYo2uVCrvY,3311
|
|
151
|
+
specify_cli/orchestrator/agents/base.py,sha256=nodw9RzZTZV0iWfcq49ruZdEqqn2CJwvkpg7mbsXqWY,7282
|
|
152
|
+
specify_cli/orchestrator/agents/claude.py,sha256=DNoS6Q1n4EZOD0t-Hyb6gQVf9di1lRZN6NhwMKktziw,3321
|
|
153
|
+
specify_cli/orchestrator/agents/codex.py,sha256=dg-Dc6-2m0bZ5abEZ7mdx7y9Tfxu7dv8GNpcy31AVAI,3005
|
|
154
|
+
specify_cli/orchestrator/agents/copilot.py,sha256=vty4v38Z3Qa_6l2cca9jeRzqyET0f7mlfCSmiZpAt-Q,4286
|
|
155
|
+
specify_cli/orchestrator/agents/cursor.py,sha256=mxBxOxt0GNGBodW_Ac95ChL1EL6hyLCAlIH5_SS3HwI,4226
|
|
156
|
+
specify_cli/orchestrator/agents/gemini.py,sha256=du3XUG86I0Dhy4E71Kk4fNGkLKvAcj4pit4KOw9gytA,3479
|
|
157
|
+
specify_cli/orchestrator/agents/kilocode.py,sha256=5qZgoEPFSWJ6Og9Qb02SiTVZXnhr5KPSZO5s31dh9zM,2661
|
|
158
|
+
specify_cli/orchestrator/agents/opencode.py,sha256=XOZuPLIA2ihHakmKH-xemuTsCWBRoyf6RgKhU6sF7ZM,4489
|
|
159
|
+
specify_cli/orchestrator/agents/qwen.py,sha256=hWP0yu0SGPt-9PNYzenoBV5Dyh1UTCSAe1O4GRwJbqg,2661
|
|
160
|
+
specify_cli/orchestrator/testing/__init__.py,sha256=kdGy0l4pJy60sfQ8JPZkNlx7jUiuheNUYVK0eG0Ed7o,3007
|
|
161
|
+
specify_cli/orchestrator/testing/availability.py,sha256=Y3PhlxTlsGDBdCwdhoAcCg0wWsWtmnqT1K1gyYd1XAA,10411
|
|
162
|
+
specify_cli/orchestrator/testing/fixtures.py,sha256=mIYvy2zBBANgGL7W2AcP2tRdVKjDvSCzi9pF9MgM00c,20041
|
|
163
|
+
specify_cli/orchestrator/testing/paths.py,sha256=yrgmOfn-tjL5hHZ-cayiTckl2L7vpZIaw2EKN82oMHQ,6228
|
|
164
|
+
specify_cli/scripts/debug-dashboard-scan.py,sha256=wli7lvG1-z3Km8i70Jt4zh_QxaFick7q4yc_CgFS8qs,2197
|
|
165
|
+
specify_cli/scripts/validate_encoding.py,sha256=KfHnwc4EAt2D8atkmG5Tya_CUaeItint0ruMmu9aNmk,5825
|
|
166
|
+
specify_cli/scripts/tasks/acceptance_support.py,sha256=4rXNyugu705MWbCQxzGI8_mt8wXZ1dsX_kjNYo7fjI8,23565
|
|
167
|
+
specify_cli/scripts/tasks/task_helpers.py,sha256=a4jOo5z9cZ-igl5-q7wdzjyqqY-qYLxFFID2QkBpaic,16614
|
|
168
|
+
specify_cli/scripts/tasks/tasks_cli.py,sha256=1VelXO01VrNZMzAJucs-GYrmAVHUJB_ZUFloZgrLXOA,32786
|
|
169
|
+
specify_cli/template/__init__.py,sha256=9E6-VYVXouRpY1U3qGxe0YDcntXojezWBrmpunIV1r8,1105
|
|
170
|
+
specify_cli/template/asset_generator.py,sha256=d9U3-Zpsv-hbo1mvsCoXLcncdonc76RRt3l_N0B9rtQ,7738
|
|
171
|
+
specify_cli/template/github_client.py,sha256=P1rcFNyROeOTfgGkGpubkC5elw-pZvhPDcOoY431TXQ,12406
|
|
172
|
+
specify_cli/template/manager.py,sha256=d6ydSHMmwjxkE8MtUcxsffnVSZt6l6KsaNNzUmw3lfc,7981
|
|
173
|
+
specify_cli/template/renderer.py,sha256=s_ccPkam_-68YUklzlnJWLCq_EIMvu7a6lE5MX1B4V4,3081
|
|
174
|
+
specify_cli/templates/AGENTS.md,sha256=V3kJYEZx-k2onEHil-v0x5NMkffygICPw0Xk9VcNCac,6080
|
|
175
|
+
specify_cli/templates/POWERSHELL_SYNTAX.md,sha256=ooO-Js_BMCU4humWjBZ_HBN87pIr31gUma71migzohI,5920
|
|
176
|
+
specify_cli/templates/agent-file-template.md,sha256=4fbnN2S6DgvfcJiX7Gu0OdZpYr20bRtD0i038IiIMjs,910
|
|
177
|
+
specify_cli/templates/checklist-template.md,sha256=rRD1efkXnQz5NSEOa_DgvECRASwlH1QW1ADIgnXTPms,1387
|
|
178
|
+
specify_cli/templates/claudeignore-template,sha256=5W5WqvzLa2hvTTxLJiDm3jc3GPApCU1-K-MemfTswHg,740
|
|
179
|
+
specify_cli/templates/plan-template.md,sha256=2AlxUBpR-lK6cY2lF_ujMMc_vp0mGlMpTNFzkPzqrRM,3913
|
|
180
|
+
specify_cli/templates/spec-template.md,sha256=RJlgx0XxfM3D6Mbs986AuXqODDrQlO-To9v2xKFEWds,4129
|
|
181
|
+
specify_cli/templates/task-prompt-template.md,sha256=AUj0R2HOVylZg8dM93pGL90ohmQgQXGUHz_8t7TSUkk,6613
|
|
182
|
+
specify_cli/templates/tasks-template.md,sha256=1W125IaVP02MYPIbGbnFyLqdcwio-eTaauywoxxYnZM,5953
|
|
183
|
+
specify_cli/templates/vscode-settings.json,sha256=WAsn2ohN5oCqO0qlEHsTwyJf914sdBF9OZUhjrFL1e0,357
|
|
184
|
+
specify_cli/templates/command-templates/accept.md,sha256=Bf_nyckMq1j9HQuBMN4GYlod5D3Zh4UZ4kEhGccPia4,5538
|
|
185
|
+
specify_cli/templates/command-templates/analyze.md,sha256=hNJiACVvKpeesSoKtGBMydTLm0TbzjBeGNu93X7JJLU,9237
|
|
186
|
+
specify_cli/templates/command-templates/checklist.md,sha256=VWyfldPTlKpRGFEkU9M9BowoSzg3Kz9nlxadtC8D8g0,18918
|
|
187
|
+
specify_cli/templates/command-templates/clarify.md,sha256=k2XCCW6FqMLDrpW92c-PdYvBeBNRW9zBpdVKBxR_uHw,12040
|
|
188
|
+
specify_cli/templates/command-templates/constitution.md,sha256=GJycPrMz94xdVSPpmRBu4lEd6srp1HgTQNacw5ZYPXA,11238
|
|
189
|
+
specify_cli/templates/command-templates/dashboard.md,sha256=ifXKacoOLPomKtncPHIY6I_xCBCLp0NknL8_7kjJztw,5704
|
|
190
|
+
specify_cli/templates/command-templates/implement.md,sha256=fXOKyXuCm8UandweeFpW9S6tqxdSVr32KR1Dwf-opOk,6333
|
|
191
|
+
specify_cli/templates/command-templates/merge.md,sha256=TclVzbUNZRe-4e8Hn1qcxfwPJqmhhHe0bjcS5-96hi4,11020
|
|
192
|
+
specify_cli/templates/command-templates/plan.md,sha256=g8EzGF__KwpuqaIdRGOtOplpuWm0QpvBjHaWV494cro,8021
|
|
193
|
+
specify_cli/templates/command-templates/research.md,sha256=_GlrBcnH-6-HKPpIuCFHI5ua51gBRvRXzRC5kFroaPA,3682
|
|
194
|
+
specify_cli/templates/command-templates/review.md,sha256=YGvNXLr2FydRIISLtIuDicuGPfA-BtreMotCmkodahI,23831
|
|
195
|
+
specify_cli/templates/command-templates/specify.md,sha256=JUPY-PNid-zwNv4Cjw0yGNmlOikjjRK5CuWX5afpRZI,16840
|
|
196
|
+
specify_cli/templates/command-templates/status.md,sha256=HQSHSMEGOOekbd4nN_93yzXyhPmubb_9B_OivGa4JJg,3384
|
|
197
|
+
specify_cli/templates/command-templates/tasks.md,sha256=E4fN0ZKEPObRlUbyE6TPSuak9TmzzE92EZwceUgj01U,9264
|
|
198
|
+
specify_cli/templates/git-hooks/pre-commit,sha256=DO436OhMs6pkPwpfOhOBVWs0P2tH_2TYIJKaX-gzQOg,651
|
|
199
|
+
specify_cli/templates/git-hooks/pre-commit-agent-check,sha256=f-klyIzlFOFjhATGzWdtUHPfpa7TSY86cn6buXYwwwI,1397
|
|
200
|
+
specify_cli/templates/git-hooks/pre-commit-encoding-check,sha256=j8MooYnxnWHBehrJFsHRRcqDlGZ5gx7g5S1LUcYA-gA,4375
|
|
201
|
+
specify_cli/upgrade/__init__.py,sha256=m4sZB2wfYbzYBUUl2AtRYLKWnIhgczhVnHEwHb3Xvmk,473
|
|
202
|
+
specify_cli/upgrade/detector.py,sha256=gQpXDFuzZpXoavyfATAq2WotsFz19mbopk76gELebOY,7855
|
|
203
|
+
specify_cli/upgrade/metadata.py,sha256=QlQF74gOD8XxQ-EBEOiUQJ1yJUt5zs3dVMKT2lceFtg,5686
|
|
204
|
+
specify_cli/upgrade/registry.py,sha256=g4bWA6vpFfSZty-pPETIJpwOBYw3a5p9uJ21Uz3H8WQ,4091
|
|
205
|
+
specify_cli/upgrade/runner.py,sha256=VG4gAExuOB31oZPaDjCAVvg6UcQFrSUYAMBFg51_GDw,9802
|
|
206
|
+
specify_cli/upgrade/migrations/__init__.py,sha256=T_LDx41jG_4rhl_QEw5-lLxQrSTrtXop6vJOb_iRgj8,2447
|
|
207
|
+
specify_cli/upgrade/migrations/base.py,sha256=hbU1tPKVvczXVLSzRBafXvZw2WPbmPJjOb0Kku2y9bA,2267
|
|
208
|
+
specify_cli/upgrade/migrations/m_0_10_0_python_only.py,sha256=mIK71BdgDhx9RwGCLERCZiuHTbQNj93OAw7blHw7bMY,15154
|
|
209
|
+
specify_cli/upgrade/migrations/m_0_10_12_constitution_cleanup.py,sha256=rieToZQ7zLC361cSkcXx4DoX3TMP5WanZvSXRO2khKw,3384
|
|
210
|
+
specify_cli/upgrade/migrations/m_0_10_14_update_implement_slash_command.py,sha256=D-Si3cxebV97qnEcCSrgAMPDty73ft9WfNK9iGTBHWI,7124
|
|
211
|
+
specify_cli/upgrade/migrations/m_0_10_1_populate_slash_commands.py,sha256=kdPXsp3erFz3Z-s74pd0141mJfVC2O5dqtAzDeKVsyg,6525
|
|
212
|
+
specify_cli/upgrade/migrations/m_0_10_2_update_slash_commands.py,sha256=XzIBSIcPYLRnZMEdOxdTDt0TGNLAqFXK5U2zfP-LYdE,7129
|
|
213
|
+
specify_cli/upgrade/migrations/m_0_10_6_workflow_simplification.py,sha256=81olzFFSNN89RQWMqbAMXFJH45QC6BT1oS2gSq2n_oI,7434
|
|
214
|
+
specify_cli/upgrade/migrations/m_0_10_8_fix_memory_structure.py,sha256=kGUXWA3tyUToEe7kFk0XQsCWiW24vsEEJuUmvH6Y7N8,11679
|
|
215
|
+
specify_cli/upgrade/migrations/m_0_10_9_repair_templates.py,sha256=voCWWe6Xi3wSahSPFwTj9l3usunTvCaaY7rnA-rFCuI,6775
|
|
216
|
+
specify_cli/upgrade/migrations/m_0_11_0_workspace_per_wp.py,sha256=1kxWD91x98qLlxSt-OzFFPc_5bFWWGQX3JEyJyIk50g,6139
|
|
217
|
+
specify_cli/upgrade/migrations/m_0_11_1_improved_workflow_templates.py,sha256=BWwQmR_GoihDvhw-MZaX4FmVZtS62GzUECvw6lf2rog,7283
|
|
218
|
+
specify_cli/upgrade/migrations/m_0_11_1_update_implement_slash_command.py,sha256=zvbGk1otwYbWrhYdOO4RxGW6ck2LYUkjDH2wwtCSKIg,6299
|
|
219
|
+
specify_cli/upgrade/migrations/m_0_11_2_improved_workflow_templates.py,sha256=ataRL4oMT7sQEN9PVk3gBYiHjC_pIBwdqAn6lItNs_w,7307
|
|
220
|
+
specify_cli/upgrade/migrations/m_0_11_3_workflow_agent_flag.py,sha256=AjmaPzsDCk9oRHH3hpgAvrtDj4kv7CwzJPpfslMa_zw,4404
|
|
221
|
+
specify_cli/upgrade/migrations/m_0_12_0_documentation_mission.py,sha256=t21rDEq_VwzdBvVci0J-cep5TGae_uos6DKRdTNhueQ,5512
|
|
222
|
+
specify_cli/upgrade/migrations/m_0_12_1_remove_kitty_specs_from_gitignore.py,sha256=BUmFISJd8WBfnUP0jkjXLwGZ70Waj5j_vGeJZzJW98s,6100
|
|
223
|
+
specify_cli/upgrade/migrations/m_0_2_0_specify_to_kittify.py,sha256=Z6wma8AcgDihLF6auEL_3yq7edAmbZjBiVwsT69C62A,3053
|
|
224
|
+
specify_cli/upgrade/migrations/m_0_4_8_gitignore_agents.py,sha256=bB-YhrvVeMKCtl64U8UCCP8pIzw-gLPzR0MTn-Kb_gU,3971
|
|
225
|
+
specify_cli/upgrade/migrations/m_0_5_0_encoding_hooks.py,sha256=LRrVOqXxfqEb6FWuvinst1BMbe_2M4m42wdgdw_3bl4,5019
|
|
226
|
+
specify_cli/upgrade/migrations/m_0_6_5_commands_rename.py,sha256=QkTOjZMWp6h8ZIO8g8PVdB_cPqdkKT8TQS5R7pc8TD4,6924
|
|
227
|
+
specify_cli/upgrade/migrations/m_0_6_7_ensure_missions.py,sha256=NlfY43UL5uj3ynjRTHp2iSdf-k_j5mxFasn-Kr9Lqek,8946
|
|
228
|
+
specify_cli/upgrade/migrations/m_0_7_2_worktree_commands_dedup.py,sha256=HjfqBLcCNj35i8W7NIq8ybxjdrQu4INV9dOH11iMJZc,3341
|
|
229
|
+
specify_cli/upgrade/migrations/m_0_7_3_update_scripts.py,sha256=LP6K_oX8Q4WQOs8WvU0s_WtgQ8Lax_rL5blnZ_nDbe0,3873
|
|
230
|
+
specify_cli/upgrade/migrations/m_0_8_0_remove_active_mission.py,sha256=nsbPGLmLakthSfO54kLoAPRz2N1MkkneSf6gdqGX4Kg,3050
|
|
231
|
+
specify_cli/upgrade/migrations/m_0_8_0_worktree_agents_symlink.py,sha256=jTGYAkD1hBWaw62BEE_eFeVIzFq3gA-UeQ7IBMNtpj4,5887
|
|
232
|
+
specify_cli/upgrade/migrations/m_0_9_0_frontmatter_only_lanes.py,sha256=1CmuAlTN4dHQNWrB4aUnOSsjwUDlahw7vQzOvFInfv4,13369
|
|
233
|
+
specify_cli/upgrade/migrations/m_0_9_1_complete_lane_migration.py,sha256=GhWNVsFhM4M6JQwtEfeg8Qt4TFVBSllBFvNBn5_AQCI,26125
|
|
234
|
+
specify_cli/upgrade/migrations/m_0_9_2_research_mission_templates.py,sha256=_eeYaQbXg5Z2trhfGmtItr19CWqLw3KItf74KN_el1E,8318
|
|
235
|
+
specify_cli/validators/__init__.py,sha256=9vSq0bx3UUsXhe9ZGXQ1TYrSc_wdkBVw8ft-RTLQT-E,443
|
|
236
|
+
specify_cli/validators/paths.py,sha256=NQRmWT9hNoihWWeq5KvBSjFjTJSVjdfvAWPw4yWD8i4,4764
|
|
237
|
+
specify_cli/validators/research.py,sha256=ZTbiQGkjRskpJUETwyRlPqng_AlGpbsgxjv7BwVMgoI,14510
|
|
238
|
+
spec_kitty_cli-0.12.1.dist-info/METADATA,sha256=9oMxPefiDRevuWxBZ1eKZnfA4fJhsO1htbvfdsFJkBk,76324
|
|
239
|
+
spec_kitty_cli-0.12.1.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
240
|
+
spec_kitty_cli-0.12.1.dist-info/entry_points.txt,sha256=AJYAalLcuhaXNjS_XbmJXAI9ZoqdJbofTR0M-1Gd3Mg,48
|
|
241
|
+
spec_kitty_cli-0.12.1.dist-info/licenses/LICENSE,sha256=JRC0RrwfDPlwJFMHXSDNiGMeIOVkJljttzJdnB61NPc,1060
|
|
242
|
+
spec_kitty_cli-0.12.1.dist-info/RECORD,,
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright GitHub, Inc.
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
specify_cli/__init__.py
ADDED
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
# /// script
|
|
3
|
+
# requires-python = ">=3.11"
|
|
4
|
+
# dependencies = [
|
|
5
|
+
# "typer",
|
|
6
|
+
# "rich",
|
|
7
|
+
# "platformdirs",
|
|
8
|
+
# "readchar",
|
|
9
|
+
# "httpx",
|
|
10
|
+
# ]
|
|
11
|
+
# ///
|
|
12
|
+
"""
|
|
13
|
+
Spec Kitty CLI - setup tooling for Spec Kitty projects.
|
|
14
|
+
|
|
15
|
+
Usage:
|
|
16
|
+
spec-kitty init <project-name>
|
|
17
|
+
spec-kitty init .
|
|
18
|
+
spec-kitty init --here
|
|
19
|
+
"""
|
|
20
|
+
|
|
21
|
+
import os
|
|
22
|
+
from pathlib import Path
|
|
23
|
+
|
|
24
|
+
import typer
|
|
25
|
+
from rich.console import Console
|
|
26
|
+
|
|
27
|
+
# Get version from package metadata
|
|
28
|
+
# Test mode: use environment override to ensure tests use source version
|
|
29
|
+
if os.environ.get("SPEC_KITTY_TEST_MODE") == "1":
|
|
30
|
+
__version__ = os.environ.get("SPEC_KITTY_CLI_VERSION", "0.5.0-dev")
|
|
31
|
+
else:
|
|
32
|
+
try:
|
|
33
|
+
from importlib.metadata import version as get_version
|
|
34
|
+
__version__ = get_version("spec-kitty-cli")
|
|
35
|
+
except Exception:
|
|
36
|
+
# Fallback for development/editable installs
|
|
37
|
+
__version__ = "0.5.0-dev"
|
|
38
|
+
|
|
39
|
+
from specify_cli.mission import MissionNotFoundError
|
|
40
|
+
from specify_cli.cli import StepTracker
|
|
41
|
+
from specify_cli.cli.helpers import (
|
|
42
|
+
BannerGroup,
|
|
43
|
+
callback as root_callback,
|
|
44
|
+
console,
|
|
45
|
+
show_banner,
|
|
46
|
+
)
|
|
47
|
+
from specify_cli.cli.commands import register_commands
|
|
48
|
+
from specify_cli.cli.commands.init import register_init_command
|
|
49
|
+
|
|
50
|
+
def activate_mission(project_path: Path, mission_key: str, mission_display: str, console: Console) -> str:
|
|
51
|
+
"""
|
|
52
|
+
DEPRECATED: No-op function for backwards compatibility.
|
|
53
|
+
|
|
54
|
+
As of v0.8.0, missions are selected per-feature during /spec-kitty.specify,
|
|
55
|
+
not at the project level during init. This function is kept for backwards
|
|
56
|
+
compatibility with existing init code but no longer sets an active mission.
|
|
57
|
+
"""
|
|
58
|
+
# Just verify the mission directory exists
|
|
59
|
+
kittify_root = project_path / ".kittify"
|
|
60
|
+
missions_dir = kittify_root / "missions"
|
|
61
|
+
mission_path = missions_dir / mission_key
|
|
62
|
+
|
|
63
|
+
if mission_path.exists():
|
|
64
|
+
return f"{mission_display} (per-feature selection)"
|
|
65
|
+
else:
|
|
66
|
+
console.print(
|
|
67
|
+
f"[yellow]Note:[/yellow] Mission [cyan]{mission_display}[/cyan] templates will be "
|
|
68
|
+
f"available when you run [cyan]/spec-kitty.specify[/cyan]."
|
|
69
|
+
)
|
|
70
|
+
return f"{mission_display} (templates pending)"
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
def version_callback(value: bool) -> None:
|
|
74
|
+
"""Display version and exit."""
|
|
75
|
+
if value:
|
|
76
|
+
console.print(f"spec-kitty-cli version {__version__}")
|
|
77
|
+
raise typer.Exit()
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
app = typer.Typer(
|
|
81
|
+
name="spec-kitty",
|
|
82
|
+
help="Setup tool for Spec Kitty spec-driven development projects",
|
|
83
|
+
add_completion=False,
|
|
84
|
+
invoke_without_command=True,
|
|
85
|
+
cls=BannerGroup,
|
|
86
|
+
)
|
|
87
|
+
|
|
88
|
+
app.callback()(root_callback)
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
@app.callback()
|
|
92
|
+
def main_callback(
|
|
93
|
+
version: bool = typer.Option(None, "--version", "-v", callback=version_callback, is_eager=True, help="Show version and exit")
|
|
94
|
+
) -> None:
|
|
95
|
+
"""Main callback for version flag."""
|
|
96
|
+
pass
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
def ensure_executable_scripts(project_path: Path, tracker: StepTracker | None = None) -> None:
|
|
100
|
+
"""Ensure POSIX .sh scripts under .kittify/scripts (recursively) have execute bits (no-op on Windows)."""
|
|
101
|
+
if os.name == "nt":
|
|
102
|
+
return # Windows: skip silently
|
|
103
|
+
scripts_root = project_path / ".kittify" / "scripts"
|
|
104
|
+
if not scripts_root.is_dir():
|
|
105
|
+
return
|
|
106
|
+
failures: list[str] = []
|
|
107
|
+
updated = 0
|
|
108
|
+
for script in scripts_root.rglob("*.sh"):
|
|
109
|
+
try:
|
|
110
|
+
if script.is_symlink() or not script.is_file():
|
|
111
|
+
continue
|
|
112
|
+
try:
|
|
113
|
+
with script.open("rb") as f:
|
|
114
|
+
if f.read(2) != b"#!":
|
|
115
|
+
continue
|
|
116
|
+
except Exception:
|
|
117
|
+
continue
|
|
118
|
+
st = script.stat(); mode = st.st_mode
|
|
119
|
+
if mode & 0o111:
|
|
120
|
+
continue
|
|
121
|
+
new_mode = mode
|
|
122
|
+
if mode & 0o400: new_mode |= 0o100
|
|
123
|
+
if mode & 0o040: new_mode |= 0o010
|
|
124
|
+
if mode & 0o004: new_mode |= 0o001
|
|
125
|
+
if not (new_mode & 0o100):
|
|
126
|
+
new_mode |= 0o100
|
|
127
|
+
os.chmod(script, new_mode)
|
|
128
|
+
updated += 1
|
|
129
|
+
except Exception as e:
|
|
130
|
+
failures.append(f"{script.relative_to(scripts_root)}: {e}")
|
|
131
|
+
if tracker:
|
|
132
|
+
detail = f"{updated} updated" + (f", {len(failures)} failed" if failures else "")
|
|
133
|
+
tracker.add("chmod", "Set script permissions recursively")
|
|
134
|
+
(tracker.error if failures else tracker.complete)("chmod", detail)
|
|
135
|
+
else:
|
|
136
|
+
if updated:
|
|
137
|
+
console.print(f"[cyan]Updated execute permissions on {updated} script(s) recursively[/cyan]")
|
|
138
|
+
if failures:
|
|
139
|
+
console.print("[yellow]Some scripts could not be updated:[/yellow]")
|
|
140
|
+
for f in failures:
|
|
141
|
+
console.print(f" - {f}")
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
# Register the init command with necessary dependencies
|
|
145
|
+
register_init_command(
|
|
146
|
+
app,
|
|
147
|
+
console=console,
|
|
148
|
+
show_banner=show_banner,
|
|
149
|
+
activate_mission=activate_mission,
|
|
150
|
+
ensure_executable_scripts=ensure_executable_scripts,
|
|
151
|
+
)
|
|
152
|
+
|
|
153
|
+
register_commands(app)
|
|
154
|
+
|
|
155
|
+
def main():
|
|
156
|
+
import sys
|
|
157
|
+
# Ensure UTF-8 encoding on Windows to handle Unicode characters in git output
|
|
158
|
+
# Fixes: https://github.com/Priivacy-ai/spec-kitty/issues/66
|
|
159
|
+
if sys.platform == 'win32':
|
|
160
|
+
try:
|
|
161
|
+
sys.stdout.reconfigure(encoding='utf-8')
|
|
162
|
+
sys.stderr.reconfigure(encoding='utf-8')
|
|
163
|
+
except (AttributeError, OSError):
|
|
164
|
+
# Python < 3.7 or reconfigure not available
|
|
165
|
+
pass
|
|
166
|
+
app()
|
|
167
|
+
|
|
168
|
+
__all__ = ["main", "app", "__version__"]
|
|
169
|
+
|
|
170
|
+
if __name__ == "__main__":
|
|
171
|
+
main()
|