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.
Files changed (242) hide show
  1. spec_kitty_cli-0.12.1.dist-info/METADATA +1767 -0
  2. spec_kitty_cli-0.12.1.dist-info/RECORD +242 -0
  3. spec_kitty_cli-0.12.1.dist-info/WHEEL +4 -0
  4. spec_kitty_cli-0.12.1.dist-info/entry_points.txt +2 -0
  5. spec_kitty_cli-0.12.1.dist-info/licenses/LICENSE +21 -0
  6. specify_cli/__init__.py +171 -0
  7. specify_cli/acceptance.py +627 -0
  8. specify_cli/agent_utils/README.md +157 -0
  9. specify_cli/agent_utils/__init__.py +9 -0
  10. specify_cli/agent_utils/status.py +356 -0
  11. specify_cli/cli/__init__.py +6 -0
  12. specify_cli/cli/commands/__init__.py +46 -0
  13. specify_cli/cli/commands/accept.py +189 -0
  14. specify_cli/cli/commands/agent/__init__.py +22 -0
  15. specify_cli/cli/commands/agent/config.py +382 -0
  16. specify_cli/cli/commands/agent/context.py +191 -0
  17. specify_cli/cli/commands/agent/feature.py +1057 -0
  18. specify_cli/cli/commands/agent/release.py +11 -0
  19. specify_cli/cli/commands/agent/tasks.py +1253 -0
  20. specify_cli/cli/commands/agent/workflow.py +801 -0
  21. specify_cli/cli/commands/context.py +246 -0
  22. specify_cli/cli/commands/dashboard.py +85 -0
  23. specify_cli/cli/commands/implement.py +973 -0
  24. specify_cli/cli/commands/init.py +827 -0
  25. specify_cli/cli/commands/init_help.py +62 -0
  26. specify_cli/cli/commands/merge.py +755 -0
  27. specify_cli/cli/commands/mission.py +240 -0
  28. specify_cli/cli/commands/ops.py +265 -0
  29. specify_cli/cli/commands/orchestrate.py +640 -0
  30. specify_cli/cli/commands/repair.py +175 -0
  31. specify_cli/cli/commands/research.py +165 -0
  32. specify_cli/cli/commands/sync.py +364 -0
  33. specify_cli/cli/commands/upgrade.py +249 -0
  34. specify_cli/cli/commands/validate_encoding.py +186 -0
  35. specify_cli/cli/commands/validate_tasks.py +186 -0
  36. specify_cli/cli/commands/verify.py +310 -0
  37. specify_cli/cli/helpers.py +123 -0
  38. specify_cli/cli/step_tracker.py +91 -0
  39. specify_cli/cli/ui.py +192 -0
  40. specify_cli/core/__init__.py +53 -0
  41. specify_cli/core/agent_context.py +311 -0
  42. specify_cli/core/config.py +96 -0
  43. specify_cli/core/context_validation.py +362 -0
  44. specify_cli/core/dependency_graph.py +351 -0
  45. specify_cli/core/git_ops.py +129 -0
  46. specify_cli/core/multi_parent_merge.py +323 -0
  47. specify_cli/core/paths.py +260 -0
  48. specify_cli/core/project_resolver.py +110 -0
  49. specify_cli/core/stale_detection.py +263 -0
  50. specify_cli/core/tool_checker.py +79 -0
  51. specify_cli/core/utils.py +43 -0
  52. specify_cli/core/vcs/__init__.py +114 -0
  53. specify_cli/core/vcs/detection.py +341 -0
  54. specify_cli/core/vcs/exceptions.py +85 -0
  55. specify_cli/core/vcs/git.py +1304 -0
  56. specify_cli/core/vcs/jujutsu.py +1208 -0
  57. specify_cli/core/vcs/protocol.py +285 -0
  58. specify_cli/core/vcs/types.py +249 -0
  59. specify_cli/core/version_checker.py +261 -0
  60. specify_cli/core/worktree.py +506 -0
  61. specify_cli/dashboard/__init__.py +28 -0
  62. specify_cli/dashboard/diagnostics.py +204 -0
  63. specify_cli/dashboard/handlers/__init__.py +17 -0
  64. specify_cli/dashboard/handlers/api.py +143 -0
  65. specify_cli/dashboard/handlers/base.py +65 -0
  66. specify_cli/dashboard/handlers/features.py +390 -0
  67. specify_cli/dashboard/handlers/router.py +81 -0
  68. specify_cli/dashboard/handlers/static.py +50 -0
  69. specify_cli/dashboard/lifecycle.py +541 -0
  70. specify_cli/dashboard/scanner.py +437 -0
  71. specify_cli/dashboard/server.py +123 -0
  72. specify_cli/dashboard/static/dashboard/dashboard.css +722 -0
  73. specify_cli/dashboard/static/dashboard/dashboard.js +1424 -0
  74. specify_cli/dashboard/static/spec-kitty.png +0 -0
  75. specify_cli/dashboard/templates/__init__.py +36 -0
  76. specify_cli/dashboard/templates/index.html +258 -0
  77. specify_cli/doc_generators.py +621 -0
  78. specify_cli/doc_state.py +408 -0
  79. specify_cli/frontmatter.py +384 -0
  80. specify_cli/gap_analysis.py +915 -0
  81. specify_cli/gitignore_manager.py +300 -0
  82. specify_cli/guards.py +145 -0
  83. specify_cli/legacy_detector.py +83 -0
  84. specify_cli/manifest.py +286 -0
  85. specify_cli/merge/__init__.py +63 -0
  86. specify_cli/merge/executor.py +653 -0
  87. specify_cli/merge/forecast.py +215 -0
  88. specify_cli/merge/ordering.py +126 -0
  89. specify_cli/merge/preflight.py +230 -0
  90. specify_cli/merge/state.py +185 -0
  91. specify_cli/merge/status_resolver.py +354 -0
  92. specify_cli/mission.py +654 -0
  93. specify_cli/missions/documentation/command-templates/implement.md +309 -0
  94. specify_cli/missions/documentation/command-templates/plan.md +275 -0
  95. specify_cli/missions/documentation/command-templates/review.md +344 -0
  96. specify_cli/missions/documentation/command-templates/specify.md +206 -0
  97. specify_cli/missions/documentation/command-templates/tasks.md +189 -0
  98. specify_cli/missions/documentation/mission.yaml +113 -0
  99. specify_cli/missions/documentation/templates/divio/explanation-template.md +192 -0
  100. specify_cli/missions/documentation/templates/divio/howto-template.md +168 -0
  101. specify_cli/missions/documentation/templates/divio/reference-template.md +179 -0
  102. specify_cli/missions/documentation/templates/divio/tutorial-template.md +146 -0
  103. specify_cli/missions/documentation/templates/generators/jsdoc.json.template +18 -0
  104. specify_cli/missions/documentation/templates/generators/sphinx-conf.py.template +36 -0
  105. specify_cli/missions/documentation/templates/plan-template.md +269 -0
  106. specify_cli/missions/documentation/templates/release-template.md +222 -0
  107. specify_cli/missions/documentation/templates/spec-template.md +172 -0
  108. specify_cli/missions/documentation/templates/task-prompt-template.md +140 -0
  109. specify_cli/missions/documentation/templates/tasks-template.md +159 -0
  110. specify_cli/missions/research/command-templates/merge.md +388 -0
  111. specify_cli/missions/research/command-templates/plan.md +125 -0
  112. specify_cli/missions/research/command-templates/review.md +144 -0
  113. specify_cli/missions/research/command-templates/tasks.md +225 -0
  114. specify_cli/missions/research/mission.yaml +115 -0
  115. specify_cli/missions/research/templates/data-model-template.md +33 -0
  116. specify_cli/missions/research/templates/plan-template.md +161 -0
  117. specify_cli/missions/research/templates/research/evidence-log.csv +18 -0
  118. specify_cli/missions/research/templates/research/source-register.csv +18 -0
  119. specify_cli/missions/research/templates/research-template.md +35 -0
  120. specify_cli/missions/research/templates/spec-template.md +64 -0
  121. specify_cli/missions/research/templates/task-prompt-template.md +148 -0
  122. specify_cli/missions/research/templates/tasks-template.md +114 -0
  123. specify_cli/missions/software-dev/command-templates/accept.md +75 -0
  124. specify_cli/missions/software-dev/command-templates/analyze.md +183 -0
  125. specify_cli/missions/software-dev/command-templates/checklist.md +286 -0
  126. specify_cli/missions/software-dev/command-templates/clarify.md +157 -0
  127. specify_cli/missions/software-dev/command-templates/constitution.md +432 -0
  128. specify_cli/missions/software-dev/command-templates/dashboard.md +101 -0
  129. specify_cli/missions/software-dev/command-templates/implement.md +41 -0
  130. specify_cli/missions/software-dev/command-templates/merge.md +383 -0
  131. specify_cli/missions/software-dev/command-templates/plan.md +171 -0
  132. specify_cli/missions/software-dev/command-templates/review.md +32 -0
  133. specify_cli/missions/software-dev/command-templates/specify.md +321 -0
  134. specify_cli/missions/software-dev/command-templates/tasks.md +566 -0
  135. specify_cli/missions/software-dev/mission.yaml +100 -0
  136. specify_cli/missions/software-dev/templates/plan-template.md +132 -0
  137. specify_cli/missions/software-dev/templates/spec-template.md +116 -0
  138. specify_cli/missions/software-dev/templates/task-prompt-template.md +140 -0
  139. specify_cli/missions/software-dev/templates/tasks-template.md +159 -0
  140. specify_cli/orchestrator/__init__.py +75 -0
  141. specify_cli/orchestrator/agent_config.py +224 -0
  142. specify_cli/orchestrator/agents/__init__.py +170 -0
  143. specify_cli/orchestrator/agents/augment.py +112 -0
  144. specify_cli/orchestrator/agents/base.py +243 -0
  145. specify_cli/orchestrator/agents/claude.py +112 -0
  146. specify_cli/orchestrator/agents/codex.py +106 -0
  147. specify_cli/orchestrator/agents/copilot.py +137 -0
  148. specify_cli/orchestrator/agents/cursor.py +139 -0
  149. specify_cli/orchestrator/agents/gemini.py +115 -0
  150. specify_cli/orchestrator/agents/kilocode.py +94 -0
  151. specify_cli/orchestrator/agents/opencode.py +132 -0
  152. specify_cli/orchestrator/agents/qwen.py +96 -0
  153. specify_cli/orchestrator/config.py +455 -0
  154. specify_cli/orchestrator/executor.py +642 -0
  155. specify_cli/orchestrator/integration.py +1230 -0
  156. specify_cli/orchestrator/monitor.py +898 -0
  157. specify_cli/orchestrator/scheduler.py +832 -0
  158. specify_cli/orchestrator/state.py +508 -0
  159. specify_cli/orchestrator/testing/__init__.py +122 -0
  160. specify_cli/orchestrator/testing/availability.py +346 -0
  161. specify_cli/orchestrator/testing/fixtures.py +684 -0
  162. specify_cli/orchestrator/testing/paths.py +218 -0
  163. specify_cli/plan_validation.py +107 -0
  164. specify_cli/scripts/debug-dashboard-scan.py +61 -0
  165. specify_cli/scripts/tasks/acceptance_support.py +695 -0
  166. specify_cli/scripts/tasks/task_helpers.py +506 -0
  167. specify_cli/scripts/tasks/tasks_cli.py +848 -0
  168. specify_cli/scripts/validate_encoding.py +180 -0
  169. specify_cli/task_metadata_validation.py +274 -0
  170. specify_cli/tasks_support.py +447 -0
  171. specify_cli/template/__init__.py +47 -0
  172. specify_cli/template/asset_generator.py +206 -0
  173. specify_cli/template/github_client.py +334 -0
  174. specify_cli/template/manager.py +193 -0
  175. specify_cli/template/renderer.py +99 -0
  176. specify_cli/templates/AGENTS.md +190 -0
  177. specify_cli/templates/POWERSHELL_SYNTAX.md +229 -0
  178. specify_cli/templates/agent-file-template.md +35 -0
  179. specify_cli/templates/checklist-template.md +42 -0
  180. specify_cli/templates/claudeignore-template +58 -0
  181. specify_cli/templates/command-templates/accept.md +141 -0
  182. specify_cli/templates/command-templates/analyze.md +253 -0
  183. specify_cli/templates/command-templates/checklist.md +352 -0
  184. specify_cli/templates/command-templates/clarify.md +224 -0
  185. specify_cli/templates/command-templates/constitution.md +432 -0
  186. specify_cli/templates/command-templates/dashboard.md +175 -0
  187. specify_cli/templates/command-templates/implement.md +190 -0
  188. specify_cli/templates/command-templates/merge.md +374 -0
  189. specify_cli/templates/command-templates/plan.md +171 -0
  190. specify_cli/templates/command-templates/research.md +88 -0
  191. specify_cli/templates/command-templates/review.md +510 -0
  192. specify_cli/templates/command-templates/specify.md +321 -0
  193. specify_cli/templates/command-templates/status.md +92 -0
  194. specify_cli/templates/command-templates/tasks.md +199 -0
  195. specify_cli/templates/git-hooks/pre-commit +22 -0
  196. specify_cli/templates/git-hooks/pre-commit-agent-check +37 -0
  197. specify_cli/templates/git-hooks/pre-commit-encoding-check +142 -0
  198. specify_cli/templates/plan-template.md +108 -0
  199. specify_cli/templates/spec-template.md +118 -0
  200. specify_cli/templates/task-prompt-template.md +165 -0
  201. specify_cli/templates/tasks-template.md +161 -0
  202. specify_cli/templates/vscode-settings.json +13 -0
  203. specify_cli/text_sanitization.py +225 -0
  204. specify_cli/upgrade/__init__.py +18 -0
  205. specify_cli/upgrade/detector.py +239 -0
  206. specify_cli/upgrade/metadata.py +182 -0
  207. specify_cli/upgrade/migrations/__init__.py +65 -0
  208. specify_cli/upgrade/migrations/base.py +80 -0
  209. specify_cli/upgrade/migrations/m_0_10_0_python_only.py +359 -0
  210. specify_cli/upgrade/migrations/m_0_10_12_constitution_cleanup.py +99 -0
  211. specify_cli/upgrade/migrations/m_0_10_14_update_implement_slash_command.py +176 -0
  212. specify_cli/upgrade/migrations/m_0_10_1_populate_slash_commands.py +174 -0
  213. specify_cli/upgrade/migrations/m_0_10_2_update_slash_commands.py +172 -0
  214. specify_cli/upgrade/migrations/m_0_10_6_workflow_simplification.py +174 -0
  215. specify_cli/upgrade/migrations/m_0_10_8_fix_memory_structure.py +252 -0
  216. specify_cli/upgrade/migrations/m_0_10_9_repair_templates.py +168 -0
  217. specify_cli/upgrade/migrations/m_0_11_0_workspace_per_wp.py +182 -0
  218. specify_cli/upgrade/migrations/m_0_11_1_improved_workflow_templates.py +173 -0
  219. specify_cli/upgrade/migrations/m_0_11_1_update_implement_slash_command.py +160 -0
  220. specify_cli/upgrade/migrations/m_0_11_2_improved_workflow_templates.py +173 -0
  221. specify_cli/upgrade/migrations/m_0_11_3_workflow_agent_flag.py +114 -0
  222. specify_cli/upgrade/migrations/m_0_12_0_documentation_mission.py +155 -0
  223. specify_cli/upgrade/migrations/m_0_12_1_remove_kitty_specs_from_gitignore.py +183 -0
  224. specify_cli/upgrade/migrations/m_0_2_0_specify_to_kittify.py +80 -0
  225. specify_cli/upgrade/migrations/m_0_4_8_gitignore_agents.py +118 -0
  226. specify_cli/upgrade/migrations/m_0_5_0_encoding_hooks.py +141 -0
  227. specify_cli/upgrade/migrations/m_0_6_5_commands_rename.py +169 -0
  228. specify_cli/upgrade/migrations/m_0_6_7_ensure_missions.py +228 -0
  229. specify_cli/upgrade/migrations/m_0_7_2_worktree_commands_dedup.py +89 -0
  230. specify_cli/upgrade/migrations/m_0_7_3_update_scripts.py +114 -0
  231. specify_cli/upgrade/migrations/m_0_8_0_remove_active_mission.py +82 -0
  232. specify_cli/upgrade/migrations/m_0_8_0_worktree_agents_symlink.py +148 -0
  233. specify_cli/upgrade/migrations/m_0_9_0_frontmatter_only_lanes.py +346 -0
  234. specify_cli/upgrade/migrations/m_0_9_1_complete_lane_migration.py +656 -0
  235. specify_cli/upgrade/migrations/m_0_9_2_research_mission_templates.py +221 -0
  236. specify_cli/upgrade/registry.py +121 -0
  237. specify_cli/upgrade/runner.py +284 -0
  238. specify_cli/validators/__init__.py +14 -0
  239. specify_cli/validators/paths.py +154 -0
  240. specify_cli/validators/research.py +428 -0
  241. specify_cli/verify_enhanced.py +270 -0
  242. specify_cli/workspace_context.py +224 -0
@@ -0,0 +1,179 @@
1
+ ---
2
+ type: reference
3
+ divio_category: information-oriented
4
+ target_audience: all-users
5
+ purpose: technical-description
6
+ outcome: user-knows-what-exists
7
+ ---
8
+
9
+ # Reference: {API/CLI/CONFIG_NAME}
10
+
11
+ > **Divio Type**: Reference (Information-Oriented)
12
+ > **Target Audience**: All users looking up technical details
13
+ > **Purpose**: Provide accurate, complete technical description
14
+ > **Outcome**: User finds the information they need
15
+
16
+ ## Overview
17
+
18
+ {Brief description of what this reference documents}
19
+
20
+ **Quick Navigation**:
21
+ - [{Section 1}](#{section-anchor})
22
+ - [{Section 2}](#{section-anchor})
23
+ - [{Section 3}](#{section-anchor})
24
+
25
+ ## {API Class/CLI Command/Config Section}
26
+
27
+ ### Syntax
28
+
29
+ ```{language}
30
+ {canonical-syntax}
31
+ ```
32
+
33
+ ### Description
34
+
35
+ {Neutral, factual description of what this does}
36
+
37
+ ### Parameters
38
+
39
+ | Parameter | Type | Required | Default | Description |
40
+ |-----------|------|----------|---------|-------------|
41
+ | `{param1}` | `{type}` | Yes | - | {Description} |
42
+ | `{param2}` | `{type}` | No | `{default}` | {Description} |
43
+ | `{param3}` | `{type}` | No | `{default}` | {Description} |
44
+
45
+ ### Return Value
46
+
47
+ **Type**: `{return-type}`
48
+
49
+ **Description**: {What is returned}
50
+
51
+ **Possible values**:
52
+ - `{value1}`: {When this is returned}
53
+ - `{value2}`: {When this is returned}
54
+
55
+ ### Exceptions / Errors
56
+
57
+ | Error | Condition | Resolution |
58
+ |-------|-----------|------------|
59
+ | `{ErrorType}` | {When it occurs} | {How to handle} |
60
+ | `{ErrorType}` | {When it occurs} | {How to handle} |
61
+
62
+ ### Examples
63
+
64
+ **Basic usage**:
65
+ ```{language}
66
+ {basic-example}
67
+ ```
68
+
69
+ **With options**:
70
+ ```{language}
71
+ {example-with-options}
72
+ ```
73
+
74
+ **Advanced usage**:
75
+ ```{language}
76
+ {advanced-example}
77
+ ```
78
+
79
+ ### Notes
80
+
81
+ - {Important implementation detail}
82
+ - {Edge case or limitation}
83
+ - {Performance consideration}
84
+
85
+ ### See Also
86
+
87
+ - [{Related API/command}](#{anchor})
88
+ - [{Related concept}](../explanation/{link})
89
+
90
+ ---
91
+
92
+ ## {Next API Class/CLI Command/Config Section}
93
+
94
+ {Repeat the structure above for each item being documented}
95
+
96
+ ---
97
+
98
+ ## Constants / Enumerations
99
+
100
+ ### `{ConstantName}`
101
+
102
+ **Type**: `{type}`
103
+ **Value**: `{value}`
104
+ **Description**: {What it represents}
105
+
106
+ **Usage**:
107
+ ```{language}
108
+ {usage-example}
109
+ ```
110
+
111
+ ---
112
+
113
+ ## Type Definitions
114
+
115
+ ### `{TypeName}`
116
+
117
+ ```{language}
118
+ {type-definition}
119
+ ```
120
+
121
+ **Properties**:
122
+
123
+ | Property | Type | Description |
124
+ |----------|------|-------------|
125
+ | `{prop1}` | `{type}` | {Description} |
126
+ | `{prop2}` | `{type}` | {Description} |
127
+
128
+ **Example**:
129
+ ```{language}
130
+ {example-usage}
131
+ ```
132
+
133
+ ---
134
+
135
+ ## Version History
136
+
137
+ ### Version {X.Y.Z}
138
+ - Added: `{new-feature}`
139
+ - Changed: `{modified-behavior}`
140
+ - Deprecated: `{old-feature}` (use `{new-feature}` instead)
141
+ - Removed: `{removed-feature}`
142
+
143
+ ### Version {X.Y.Z}
144
+ - {Changes in this version}
145
+
146
+ ---
147
+
148
+ ## Write the Docs Best Practices (Remove this section before publishing)
149
+
150
+ **Reference Principles**:
151
+ - ✅ Information-oriented: Describe facts accurately
152
+ - ✅ Structure around code organization (classes, modules, commands)
153
+ - ✅ Consistent format for all similar items
154
+ - ✅ Complete and accurate
155
+ - ✅ Neutral tone (no opinions or recommendations)
156
+ - ✅ Include examples for every item
157
+ - ✅ Do not explain how to use (that's How-To) or why (that's Explanation)
158
+
159
+ **Accessibility**:
160
+ - ✅ Proper heading hierarchy
161
+ - ✅ Alt text for diagrams/screenshots
162
+ - ✅ Tables for structured data
163
+ - ✅ Syntax highlighting for code
164
+ - ✅ Descriptive link text
165
+
166
+ **Inclusivity**:
167
+ - ✅ Diverse example names
168
+ - ✅ Gender-neutral language
169
+ - ✅ No cultural assumptions
170
+
171
+ **Reference-Specific Guidelines**:
172
+ - Alphabetical or logical ordering
173
+ - Every public API/command documented
174
+ - Parameters/options in consistent format (tables work well)
175
+ - Examples for typical usage
176
+ - Don't bury the lead - most important info first
177
+ - Link to related reference items
178
+ - Version history for deprecations/changes
179
+ - Autogenerate from code when possible (JSDoc, Sphinx, rustdoc)
@@ -0,0 +1,146 @@
1
+ ---
2
+ type: tutorial
3
+ divio_category: learning-oriented
4
+ target_audience: beginners
5
+ purpose: hands-on-lesson
6
+ outcome: learner-can-do-something
7
+ ---
8
+
9
+ # Tutorial: {TUTORIAL_TITLE}
10
+
11
+ > **Divio Type**: Tutorial (Learning-Oriented)
12
+ > **Target Audience**: Beginners with little to no prior experience
13
+ > **Purpose**: Guide learners through completing a meaningful task step-by-step
14
+ > **Outcome**: By the end, learners will have accomplished something concrete
15
+
16
+ ## What You'll Learn
17
+
18
+ In this tutorial, you will:
19
+ - {Bullet point: First thing they'll accomplish}
20
+ - {Bullet point: Second thing they'll accomplish}
21
+ - {Bullet point: Third thing they'll accomplish}
22
+
23
+ **Time to Complete**: Approximately {X} minutes
24
+
25
+ ## Before You Begin
26
+
27
+ **Prerequisites**:
28
+ - {Required knowledge or skill - keep minimal for beginners}
29
+ - {Required tool or software with installation link}
30
+ - {Required account or access}
31
+
32
+ **What You'll Need**:
33
+ - {Physical or digital resources needed}
34
+ - {Optional: Link to starter code or files}
35
+
36
+ ## Step 1: {First Step Title}
37
+
38
+ {Brief introduction to what this step accomplishes}
39
+
40
+ **Do this**:
41
+
42
+ ```bash
43
+ # Exact command to run
44
+ {command-here}
45
+ ```
46
+
47
+ **You should see**:
48
+
49
+ ```
50
+ {Expected output}
51
+ ```
52
+
53
+ ✅ **Checkpoint**: {How learner knows this step succeeded}
54
+
55
+ > **💡 Learning Note**: {Brief explanation of what just happened - keep it short}
56
+
57
+ ## Step 2: {Second Step Title}
58
+
59
+ {Brief introduction to what this step builds on the previous one}
60
+
61
+ **Do this**:
62
+
63
+ ```{language}
64
+ # Code to write or run
65
+ {code-here}
66
+ ```
67
+
68
+ **Where to put it**: {Exact file location}
69
+
70
+ ✅ **Checkpoint**: {How learner knows this step succeeded}
71
+
72
+ > **💡 Learning Note**: {Brief explanation}
73
+
74
+ ## Step 3: {Third Step Title}
75
+
76
+ {Continue pattern - each step builds on the last}
77
+
78
+ **Do this**:
79
+
80
+ {Concrete action}
81
+
82
+ ✅ **Checkpoint**: {Verification}
83
+
84
+ ## Step 4: {Continue as needed...}
85
+
86
+ {Maintain momentum - learners should see progress at every step}
87
+
88
+ ## What You've Accomplished
89
+
90
+ Congratulations! You've completed {the task}. You now have:
91
+ - ✅ {Concrete accomplishment #1}
92
+ - ✅ {Concrete accomplishment #2}
93
+ - ✅ {Concrete accomplishment #3}
94
+
95
+ ## Next Steps
96
+
97
+ Now that you've learned {the basics}, you can:
98
+ - **Learn More**: See [Explanation: {Topic}](../explanation/{link}) to understand why this works
99
+ - **Solve Problems**: Check [How-To: {Task}](../how-to/{link}) for specific scenarios
100
+ - **Reference**: Refer to [{API/CLI}](../reference/{link}) for all options
101
+
102
+ ## Troubleshooting
103
+
104
+ **Problem**: {Common issue learners face}
105
+ **Solution**: {Exact steps to fix it}
106
+
107
+ **Problem**: {Another common issue}
108
+ **Solution**: {Exact steps to fix it}
109
+
110
+ ---
111
+
112
+ ## Write the Docs Best Practices (Remove this section before publishing)
113
+
114
+ **Tutorial Principles**:
115
+ - ✅ Learning-oriented: Help learners gain competence
116
+ - ✅ Allow learner to learn by doing
117
+ - ✅ Get learners started quickly with early success
118
+ - ✅ Make sure tutorial works reliably
119
+ - ✅ Give immediate sense of achievement at each step
120
+ - ✅ Ensure learner sees results immediately
121
+ - ✅ Make tutorial repeatable and reliable
122
+ - ✅ Focus on concrete steps, not abstract concepts
123
+ - ✅ Provide minimum necessary explanation (link to Explanation docs)
124
+ - ✅ Ignore options and alternatives (focus on the happy path)
125
+
126
+ **Accessibility**:
127
+ - ✅ Use proper heading hierarchy (H1 → H2 → H3, no skipping)
128
+ - ✅ Provide alt text for all images and screenshots
129
+ - ✅ Use clear, plain language (avoid jargon, or define it immediately)
130
+ - ✅ Code blocks have language tags for syntax highlighting
131
+ - ✅ Use descriptive link text (not "click here")
132
+
133
+ **Inclusivity**:
134
+ - ✅ Use diverse names in examples (not just "John", "Alice")
135
+ - ✅ Gender-neutral language where possible
136
+ - ✅ Avoid cultural assumptions (not everyone celebrates the same holidays)
137
+ - ✅ Consider accessibility needs (keyboard navigation, screen readers)
138
+
139
+ **Tutorial-Specific Guidelines**:
140
+ - Start with a working example, not theory
141
+ - Each step should produce a visible result
142
+ - Don't explain everything - just enough to complete the task
143
+ - Link to Explanation docs for deeper understanding
144
+ - Test the tutorial with a beginner (does it work as written?)
145
+ - Keep it short - 15-30 minutes maximum
146
+ - Use consistent formatting for commands, code, and checkpoints
@@ -0,0 +1,18 @@
1
+ {
2
+ "source": {
3
+ "include": ["{source_dir}"],
4
+ "includePattern": ".+\\.(js|jsx|ts|tsx)$",
5
+ "excludePattern": "(^|\\/|\\\\)_"
6
+ },
7
+ "opts": {
8
+ "destination": "{output_dir}",
9
+ "recurse": true,
10
+ "readme": "README.md",
11
+ "template": "node_modules/{template}"
12
+ },
13
+ "plugins": ["plugins/markdown"],
14
+ "templates": {
15
+ "cleverLinks": false,
16
+ "monospaceLinks": false
17
+ }
18
+ }
@@ -0,0 +1,36 @@
1
+ # Sphinx configuration for {project_name}
2
+ # Auto-generated by spec-kitty documentation mission
3
+
4
+ project = '{project_name}'
5
+ author = '{author}'
6
+ version = '{version}'
7
+ release = version
8
+
9
+ # Extensions
10
+ extensions = [
11
+ 'sphinx.ext.autodoc', # Auto-generate docs from docstrings
12
+ 'sphinx.ext.napoleon', # Support Google/NumPy docstring styles
13
+ 'sphinx.ext.viewcode', # Add links to source code
14
+ 'sphinx.ext.intersphinx', # Link to other project docs
15
+ ]
16
+
17
+ # Napoleon settings for Google-style docstrings
18
+ napoleon_google_docstring = True
19
+ napoleon_numpy_docstring = True
20
+ napoleon_include_init_with_doc = True
21
+
22
+ # HTML output options
23
+ html_theme = '{theme}'
24
+ html_static_path = ['_static']
25
+
26
+ # Autodoc options
27
+ autodoc_default_options = {
28
+ 'members': True,
29
+ 'undoc-members': True,
30
+ 'show-inheritance': True,
31
+ }
32
+
33
+ # Path setup
34
+ import os
35
+ import sys
36
+ sys.path.insert(0, os.path.abspath('..'))
@@ -0,0 +1,269 @@
1
+ # Implementation Plan: [DOCUMENTATION PROJECT]
2
+
3
+ **Branch**: `[###-feature-name]` | **Date**: [DATE] | **Spec**: [link]
4
+ **Input**: Feature specification from `/kitty-specs/[###-feature-name]/spec.md`
5
+
6
+ **Note**: This template is filled in by the `/spec-kitty.plan` command. See mission command templates for execution workflow.
7
+
8
+ ## Summary
9
+
10
+ [Extract from spec: documentation goals, Divio types selected, target audience, generators needed]
11
+
12
+ ## Technical Context
13
+
14
+ **Documentation Framework**: [Sphinx | MkDocs | Docusaurus | Jekyll | Hugo | None (starting fresh) or NEEDS CLARIFICATION]
15
+ **Languages Detected**: [Python, JavaScript, Rust, etc. - from codebase analysis]
16
+ **Generator Tools**:
17
+ - JSDoc for JavaScript/TypeScript API reference
18
+ - Sphinx for Python API reference (autodoc + napoleon extensions)
19
+ - rustdoc for Rust API reference
20
+
21
+ **Output Format**: [HTML | Markdown | PDF or NEEDS CLARIFICATION]
22
+ **Hosting Platform**: [Read the Docs | GitHub Pages | GitBook | Custom or NEEDS CLARIFICATION]
23
+ **Build Commands**:
24
+ - `sphinx-build -b html docs/ docs/_build/html/` (Python)
25
+ - `npx jsdoc -c jsdoc.json` (JavaScript)
26
+ - `cargo doc --no-deps` (Rust)
27
+
28
+ **Theme**: [sphinx_rtd_theme | docdash | custom or NEEDS CLARIFICATION]
29
+ **Accessibility Requirements**: WCAG 2.1 AA compliance (proper headings, alt text, contrast)
30
+
31
+ ## Project Structure
32
+
33
+ ### Documentation (this feature)
34
+
35
+ ```
36
+ kitty-specs/[###-feature]/
37
+ ├── spec.md # Documentation goals and user scenarios
38
+ ├── plan.md # This file
39
+ ├── research.md # Phase 0 output (gap analysis, framework research)
40
+ ├── data-model.md # Phase 1 output (Divio type definitions)
41
+ ├── quickstart.md # Phase 1 output (getting started guide)
42
+ └── tasks.md # Phase 2 output (/spec-kitty.tasks command)
43
+ ```
44
+
45
+ ### Documentation Files (repository root)
46
+
47
+ ```
48
+ docs/
49
+ ├── index.md # Landing page with navigation
50
+ ├── tutorials/
51
+ │ ├── getting-started.md # Step-by-step for beginners
52
+ │ └── [additional-tutorials].md
53
+ ├── how-to/
54
+ │ ├── authentication.md # Problem-solving guides
55
+ │ ├── deployment.md
56
+ │ └── [additional-guides].md
57
+ ├── reference/
58
+ │ ├── api/ # Generated API documentation
59
+ │ │ ├── python/ # Sphinx autodoc output
60
+ │ │ ├── javascript/ # JSDoc output
61
+ │ │ └── rust/ # cargo doc output
62
+ │ ├── cli.md # CLI reference (manual)
63
+ │ └── config.md # Configuration reference (manual)
64
+ ├── explanation/
65
+ │ ├── architecture.md # Design decisions and rationale
66
+ │ ├── concepts.md # Core concepts explained
67
+ │ └── [additional-explanations].md
68
+ ├── conf.py # Sphinx configuration (if using Sphinx)
69
+ ├── jsdoc.json # JSDoc configuration (if using JSDoc)
70
+ └── Cargo.toml # Rust docs config (if using rustdoc)
71
+ ```
72
+
73
+ **Divio Type Organization**:
74
+ - **Tutorials** (`tutorials/`): Learning-oriented, hands-on lessons for beginners
75
+ - **How-To Guides** (`how-to/`): Goal-oriented recipes for specific tasks
76
+ - **Reference** (`reference/`): Information-oriented technical specifications
77
+ - **Explanation** (`explanation/`): Understanding-oriented concept discussions
78
+
79
+ ## Phase 0: Research
80
+
81
+ ### Objective
82
+
83
+ [For gap-filling mode] Audit existing documentation, classify into Divio types, identify gaps and priorities.
84
+ [For initial mode] Research documentation best practices, evaluate framework options, plan structure.
85
+
86
+ ### Research Tasks
87
+
88
+ 1. **Documentation Audit** (gap-filling mode only)
89
+ - Scan existing documentation directory for markdown files
90
+ - Parse frontmatter to classify Divio type
91
+ - Build coverage matrix: which features/areas have which documentation types
92
+ - Identify high-priority gaps (e.g., no tutorials for key workflows)
93
+ - Calculate coverage percentage
94
+
95
+ 2. **Generator Setup Research**
96
+ - Verify JSDoc installed: `npx jsdoc --version`
97
+ - Verify Sphinx installed: `sphinx-build --version`
98
+ - Verify rustdoc available: `cargo doc --help`
99
+ - Research configuration options for each applicable generator
100
+ - Plan integration strategy for generated + manual docs
101
+
102
+ 3. **Divio Template Research**
103
+ - Review Write the Docs guidance for each documentation type
104
+ - Identify examples of effective tutorials, how-tos, reference, and explanation docs
105
+ - Plan section structure appropriate for each type
106
+ - Consider target audience knowledge level
107
+
108
+ 4. **Framework Selection** (if starting fresh)
109
+ - Evaluate static site generators (Sphinx, MkDocs, Docusaurus, Jekyll, Hugo)
110
+ - Consider language ecosystem (Python project → Sphinx, JavaScript → Docusaurus)
111
+ - Review hosting options and deployment complexity
112
+ - Select theme that meets accessibility requirements
113
+
114
+ ### Research Output
115
+
116
+ See [research.md](research.md) for detailed findings on:
117
+ - Gap analysis results (coverage matrix, prioritized gaps)
118
+ - Generator configuration research
119
+ - Divio template examples
120
+ - Framework selection rationale
121
+
122
+ ## Phase 1: Design
123
+
124
+ ### Objective
125
+
126
+ Define documentation structure, configure generators, plan content outline for each Divio type.
127
+
128
+ ### Documentation Structure
129
+
130
+ **Directory Layout**:
131
+ ```
132
+ docs/
133
+ ├── index.md # Landing page
134
+ ├── tutorials/ # Learning-oriented
135
+ ├── how-to/ # Problem-solving
136
+ ├── reference/ # Technical specs
137
+ └── explanation/ # Understanding
138
+ ```
139
+
140
+ **Navigation Strategy**:
141
+ - Landing page links to all four Divio sections
142
+ - Each section has clear purpose statement
143
+ - Cross-links between types (tutorials → reference, how-tos → explanation)
144
+ - Search functionality (if framework supports it)
145
+
146
+ ### Generator Configurations
147
+
148
+ **Sphinx Configuration** (Python):
149
+ ```python
150
+ # docs/conf.py
151
+ project = '[PROJECT NAME]'
152
+ extensions = [
153
+ 'sphinx.ext.autodoc', # Generate docs from docstrings
154
+ 'sphinx.ext.napoleon', # Support Google/NumPy docstring styles
155
+ 'sphinx.ext.viewcode', # Add source code links
156
+ 'sphinx.ext.intersphinx', # Link to other projects' docs
157
+ ]
158
+ html_theme = 'sphinx_rtd_theme'
159
+ html_static_path = ['_static']
160
+ ```
161
+
162
+ **JSDoc Configuration** (JavaScript):
163
+ ```json
164
+ {
165
+ "source": {
166
+ "include": ["src/"],
167
+ "includePattern": ".+\\.js$",
168
+ "excludePattern": "(node_modules/|test/)"
169
+ },
170
+ "opts": {
171
+ "destination": "docs/reference/api/javascript",
172
+ "template": "node_modules/docdash",
173
+ "recurse": true
174
+ },
175
+ "plugins": ["plugins/markdown"]
176
+ }
177
+ ```
178
+
179
+ **rustdoc Configuration** (Rust):
180
+ ```toml
181
+ # Cargo.toml
182
+ [package.metadata.docs.rs]
183
+ all-features = true
184
+ rustdoc-args = ["--document-private-items"]
185
+ ```
186
+
187
+ ### Content Outline
188
+
189
+ **Tutorials** (WP02 in tasks):
190
+ - Getting Started (installation, first use, basic concepts)
191
+ - [Additional tutorials based on key user journeys]
192
+
193
+ **How-To Guides** (WP03 in tasks):
194
+ - How to [solve specific problem 1]
195
+ - How to [solve specific problem 2]
196
+ - [Additional guides based on common tasks]
197
+
198
+ **Reference** (WP04 in tasks):
199
+ - API Reference (generated from code)
200
+ - CLI Reference (manual)
201
+ - Configuration Reference (manual)
202
+
203
+ **Explanation** (WP05 in tasks):
204
+ - Architecture Overview (design decisions, system structure)
205
+ - Core Concepts (domain concepts explained)
206
+ - [Additional explanations as needed]
207
+
208
+ ### Work Breakdown Preview
209
+
210
+ Detailed work packages will be generated in Phase 2 (tasks.md). High-level packages:
211
+
212
+ 1. **WP01: Documentation Structure Setup** - Create directories, configure generators, set up build
213
+ 2. **WP02: Tutorial Documentation** - Write learning-oriented tutorials
214
+ 3. **WP03: How-To Guide Documentation** - Write problem-solving guides
215
+ 4. **WP04: Reference Documentation** - Generate API docs, write manual reference
216
+ 5. **WP05: Explanation Documentation** - Write understanding-oriented explanations
217
+ 6. **WP06: Quality Validation & Publishing** - Validate accessibility, build, deploy
218
+
219
+ ## Phase 2: Implementation
220
+
221
+ **Note**: Phase 2 (work package generation) is handled by the `/spec-kitty.tasks` command.
222
+
223
+ ## Success Criteria Validation
224
+
225
+ Validating against spec.md success criteria:
226
+
227
+ - **SC-001** (findability): Structured navigation and search enable quick information access
228
+ - **SC-002** (accessibility): Templates enforce proper headings, alt text, clear language
229
+ - **SC-003** (API completeness): Generators ensure comprehensive API coverage
230
+ - **SC-004** (task completion): Tutorials and how-tos enable users to succeed independently
231
+ - **SC-005** (build quality): Documentation builds without errors or warnings
232
+
233
+ ## Constitution Check
234
+
235
+ *GATE: Documentation mission requires adherence to Write the Docs best practices and Divio principles.*
236
+
237
+ **Write the Docs Principles**:
238
+ - Documentation as code (version controlled, reviewed, tested)
239
+ - Accessible language (clear, plain, bias-free)
240
+ - User-focused (written for audience, not developers)
241
+ - Maintained (updated with code changes)
242
+
243
+ **Divio Documentation System**:
244
+ - Four distinct types with clear purposes
245
+ - Learning-oriented tutorials
246
+ - Goal-oriented how-tos
247
+ - Information-oriented reference
248
+ - Understanding-oriented explanations
249
+
250
+ **Accessibility Standards**:
251
+ - WCAG 2.1 AA compliance
252
+ - Proper heading hierarchy
253
+ - Alt text for all images
254
+ - Sufficient color contrast
255
+ - Keyboard navigation support
256
+
257
+ ## Risks & Dependencies
258
+
259
+ **Risks**:
260
+ - Documentation becomes outdated as code evolves
261
+ - Generated documentation quality depends on code comment quality
262
+ - Accessibility requirements may require manual auditing
263
+ - Framework limitations may restrict functionality
264
+
265
+ **Dependencies**:
266
+ - Generator tools must be installed in development environment
267
+ - Code must have comments/docstrings for reference generation
268
+ - Hosting platform must be available and accessible
269
+ - Build pipeline must support documentation generation