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,344 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Review documentation work packages for Divio compliance and quality.
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Command Template: /spec-kitty.review (Documentation Mission)
|
|
6
|
+
|
|
7
|
+
**Phase**: Validate
|
|
8
|
+
**Purpose**: Review documentation for Divio compliance, accessibility, completeness, and quality.
|
|
9
|
+
|
|
10
|
+
## User Input
|
|
11
|
+
|
|
12
|
+
```text
|
|
13
|
+
$ARGUMENTS
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
You **MUST** consider the user input before proceeding (if not empty).
|
|
17
|
+
|
|
18
|
+
## Review Philosophy
|
|
19
|
+
|
|
20
|
+
Documentation review is NOT code review:
|
|
21
|
+
- **Not about correctness** (code is about bugs) but **usability** (can readers accomplish their goals?)
|
|
22
|
+
- **Not about style** but **accessibility** (can everyone use these docs?)
|
|
23
|
+
- **Not about completeness** (covering every edge case) but **usefulness** (solving real problems)
|
|
24
|
+
- **Not pass/fail** but **continuous improvement**
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Review Checklist
|
|
29
|
+
|
|
30
|
+
### 1. Divio Type Compliance
|
|
31
|
+
|
|
32
|
+
For each documentation file, verify it follows principles for its declared type:
|
|
33
|
+
|
|
34
|
+
**Tutorial Review**:
|
|
35
|
+
- [ ] Learning-oriented (teaches by doing, not explaining)?
|
|
36
|
+
- [ ] Step-by-step progression with clear sequence?
|
|
37
|
+
- [ ] Each step shows immediate, visible result?
|
|
38
|
+
- [ ] Minimal explanations (links to explanation docs instead)?
|
|
39
|
+
- [ ] Assumes beginner level (no unexplained prerequisites)?
|
|
40
|
+
- [ ] Reliable (will work for all users following instructions)?
|
|
41
|
+
- [ ] Achieves concrete outcome (learner can do something new)?
|
|
42
|
+
|
|
43
|
+
**How-To Review**:
|
|
44
|
+
- [ ] Goal-oriented (solves specific problem)?
|
|
45
|
+
- [ ] Assumes experienced user (not teaching basics)?
|
|
46
|
+
- [ ] Practical steps, minimal explanation?
|
|
47
|
+
- [ ] Flexible (readers can adapt to their situation)?
|
|
48
|
+
- [ ] Includes common variations?
|
|
49
|
+
- [ ] Links to reference for details, explanation for "why"?
|
|
50
|
+
- [ ] Title starts with "How to..."?
|
|
51
|
+
|
|
52
|
+
**Reference Review**:
|
|
53
|
+
- [ ] Information-oriented (describes what exists)?
|
|
54
|
+
- [ ] Complete (all APIs/options/commands documented)?
|
|
55
|
+
- [ ] Consistent format (same structure for similar items)?
|
|
56
|
+
- [ ] Accurate (matches actual behavior)?
|
|
57
|
+
- [ ] Includes usage examples (not just descriptions)?
|
|
58
|
+
- [ ] Structured around code organization?
|
|
59
|
+
- [ ] Factual tone (no opinions or recommendations)?
|
|
60
|
+
|
|
61
|
+
**Explanation Review**:
|
|
62
|
+
- [ ] Understanding-oriented (clarifies concepts)?
|
|
63
|
+
- [ ] Not instructional (not teaching how-to-do)?
|
|
64
|
+
- [ ] Discusses concepts, design decisions, trade-offs?
|
|
65
|
+
- [ ] Compares with alternatives fairly?
|
|
66
|
+
- [ ] Makes connections between ideas?
|
|
67
|
+
- [ ] Provides context and background?
|
|
68
|
+
- [ ] Identifies limitations and when (not) to use?
|
|
69
|
+
|
|
70
|
+
**If type is wrong or mixed**:
|
|
71
|
+
- Return with feedback: "This is classified as {type} but reads like {actual_type}. Either reclassify or rewrite to match {type} principles."
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
### 2. Accessibility Review
|
|
76
|
+
|
|
77
|
+
**Heading Hierarchy**:
|
|
78
|
+
- [ ] One H1 per document (the title)
|
|
79
|
+
- [ ] H2s for major sections
|
|
80
|
+
- [ ] H3s for subsections under H2s
|
|
81
|
+
- [ ] No skipped levels (H1 → H3 is wrong)
|
|
82
|
+
- [ ] Headings are descriptive (not "Introduction", "Section 2")
|
|
83
|
+
|
|
84
|
+
**Images**:
|
|
85
|
+
- [ ] All images have alt text
|
|
86
|
+
- [ ] Alt text describes what image shows (not "image" or "screenshot")
|
|
87
|
+
- [ ] Decorative images have empty alt text (`![]()`)
|
|
88
|
+
- [ ] Complex diagrams have longer descriptions
|
|
89
|
+
|
|
90
|
+
**Language**:
|
|
91
|
+
- [ ] Clear, plain language (technical terms defined)
|
|
92
|
+
- [ ] Active voice ("run the command" not "the command should be run")
|
|
93
|
+
- [ ] Present tense ("returns" not "will return")
|
|
94
|
+
- [ ] Short sentences (15-20 words max)
|
|
95
|
+
- [ ] Short paragraphs (3-5 sentences)
|
|
96
|
+
|
|
97
|
+
**Links**:
|
|
98
|
+
- [ ] Link text is descriptive ("see the installation guide" not "click here")
|
|
99
|
+
- [ ] Links are not bare URLs (use markdown links)
|
|
100
|
+
- [ ] No broken links (test all links)
|
|
101
|
+
|
|
102
|
+
**Code Blocks**:
|
|
103
|
+
- [ ] All code blocks have language tags for syntax highlighting
|
|
104
|
+
- [ ] Expected output is shown (not just commands)
|
|
105
|
+
- [ ] Code examples actually work (tested)
|
|
106
|
+
|
|
107
|
+
**Tables**:
|
|
108
|
+
- [ ] Tables have headers
|
|
109
|
+
- [ ] Headers use `|---|` syntax
|
|
110
|
+
- [ ] Tables are not too wide (wrap if needed)
|
|
111
|
+
|
|
112
|
+
**Lists**:
|
|
113
|
+
- [ ] Proper markdown lists (not paragraphs with commas)
|
|
114
|
+
- [ ] Consistent bullet style
|
|
115
|
+
- [ ] Items are parallel in structure
|
|
116
|
+
|
|
117
|
+
**If accessibility issues found**:
|
|
118
|
+
- Return with feedback listing specific issues and how to fix
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
### 3. Inclusivity Review
|
|
123
|
+
|
|
124
|
+
**Examples and Names**:
|
|
125
|
+
- [ ] Uses diverse names (not just Western male names)
|
|
126
|
+
- [ ] Names span different cultures and backgrounds
|
|
127
|
+
- [ ] Avoids stereotypical name choices
|
|
128
|
+
|
|
129
|
+
**Language**:
|
|
130
|
+
- [ ] Gender-neutral ("they" not "he/she", "developers" not "guys")
|
|
131
|
+
- [ ] Avoids ableist language ("just", "simply", "obviously", "easy" imply reader inadequacy)
|
|
132
|
+
- [ ] Person-first language where appropriate ("person with disability" not "disabled person")
|
|
133
|
+
- [ ] Avoids idioms (cultural-specific phrases that don't translate)
|
|
134
|
+
|
|
135
|
+
**Cultural Assumptions**:
|
|
136
|
+
- [ ] No religious references (Christmas, Ramadan, etc.)
|
|
137
|
+
- [ ] No cultural-specific examples (American holidays, sports, food)
|
|
138
|
+
- [ ] Date formats explained (ISO 8601 preferred)
|
|
139
|
+
- [ ] Currency and units specified (USD, meters, etc.)
|
|
140
|
+
|
|
141
|
+
**Tone**:
|
|
142
|
+
- [ ] Welcoming to newcomers (not intimidating)
|
|
143
|
+
- [ ] Assumes good faith (users aren't "doing it wrong")
|
|
144
|
+
- [ ] Encouraging (celebrates progress)
|
|
145
|
+
|
|
146
|
+
**If inclusivity issues found**:
|
|
147
|
+
- Return with feedback listing examples to change
|
|
148
|
+
|
|
149
|
+
---
|
|
150
|
+
|
|
151
|
+
### 4. Completeness Review
|
|
152
|
+
|
|
153
|
+
**For Initial Documentation**:
|
|
154
|
+
- [ ] All selected Divio types are present
|
|
155
|
+
- [ ] Tutorials enable new users to get started
|
|
156
|
+
- [ ] Reference covers all public APIs
|
|
157
|
+
- [ ] How-tos address common problems (from user research or support tickets)
|
|
158
|
+
- [ ] Explanations clarify key concepts and design
|
|
159
|
+
|
|
160
|
+
**For Gap-Filling**:
|
|
161
|
+
- [ ] High-priority gaps from audit are filled
|
|
162
|
+
- [ ] Outdated docs are updated
|
|
163
|
+
- [ ] Coverage percentage improved
|
|
164
|
+
|
|
165
|
+
**For Feature-Specific**:
|
|
166
|
+
- [ ] Feature is documented across relevant Divio types
|
|
167
|
+
- [ ] Feature docs integrate with existing documentation
|
|
168
|
+
- [ ] Feature is discoverable (linked from main index, relevant how-tos, etc.)
|
|
169
|
+
|
|
170
|
+
**Common Gaps**:
|
|
171
|
+
- [ ] Installation/setup covered (tutorial or how-to)?
|
|
172
|
+
- [ ] Common tasks have how-tos?
|
|
173
|
+
- [ ] All public APIs in reference?
|
|
174
|
+
- [ ] Error messages explained (troubleshooting how-tos)?
|
|
175
|
+
- [ ] Architecture/design explained (explanation)?
|
|
176
|
+
|
|
177
|
+
**If completeness gaps found**:
|
|
178
|
+
- Return with feedback listing missing documentation
|
|
179
|
+
|
|
180
|
+
---
|
|
181
|
+
|
|
182
|
+
### 5. Quality Review
|
|
183
|
+
|
|
184
|
+
**Tutorial Quality**:
|
|
185
|
+
- [ ] Tutorial actually works (reviewer followed it successfully)?
|
|
186
|
+
- [ ] Each step shows result (not "do X, Y, Z" without checkpoints)?
|
|
187
|
+
- [ ] Learner accomplishes something valuable?
|
|
188
|
+
- [ ] Appropriate for stated audience?
|
|
189
|
+
|
|
190
|
+
**How-To Quality**:
|
|
191
|
+
- [ ] Solves the stated problem?
|
|
192
|
+
- [ ] Steps are clear and actionable?
|
|
193
|
+
- [ ] Reader can adapt to their situation?
|
|
194
|
+
- [ ] Links to reference for details?
|
|
195
|
+
|
|
196
|
+
**Reference Quality**:
|
|
197
|
+
- [ ] Descriptions match actual behavior (not outdated)?
|
|
198
|
+
- [ ] Examples work (not broken or misleading)?
|
|
199
|
+
- [ ] Format is consistent across similar items?
|
|
200
|
+
- [ ] Search-friendly (clear headings, keywords)?
|
|
201
|
+
|
|
202
|
+
**Explanation Quality**:
|
|
203
|
+
- [ ] Concepts are clarified (not more confusing)?
|
|
204
|
+
- [ ] Design rationale is clear?
|
|
205
|
+
- [ ] Alternatives are discussed fairly?
|
|
206
|
+
- [ ] Trade-offs are identified?
|
|
207
|
+
|
|
208
|
+
**General Quality**:
|
|
209
|
+
- [ ] Documentation builds without errors
|
|
210
|
+
- [ ] No broken links (internal or external)
|
|
211
|
+
- [ ] No spelling errors
|
|
212
|
+
- [ ] Code examples work
|
|
213
|
+
- [ ] Images load correctly
|
|
214
|
+
- [ ] If `release.md` is present, it reflects the actual publish path and handoff steps
|
|
215
|
+
|
|
216
|
+
**If quality issues found**:
|
|
217
|
+
- Return with feedback describing issues and how to improve
|
|
218
|
+
|
|
219
|
+
---
|
|
220
|
+
|
|
221
|
+
## Review Process
|
|
222
|
+
|
|
223
|
+
1. **Load work package**:
|
|
224
|
+
- Read WP prompt file (e.g., `tasks/WP02-tutorials.md`)
|
|
225
|
+
- Identify which documentation was created/updated
|
|
226
|
+
|
|
227
|
+
2. **Review each document** against checklists above
|
|
228
|
+
|
|
229
|
+
3. **Build documentation** and verify:
|
|
230
|
+
```bash
|
|
231
|
+
./build-docs.sh
|
|
232
|
+
```
|
|
233
|
+
- Check for build errors/warnings
|
|
234
|
+
- Navigate to docs in browser
|
|
235
|
+
- Test links, images, navigation
|
|
236
|
+
|
|
237
|
+
4. **Test tutorials** (if present):
|
|
238
|
+
- Follow tutorial steps exactly
|
|
239
|
+
- Verify each step works
|
|
240
|
+
- Confirm outcome is achieved
|
|
241
|
+
|
|
242
|
+
5. **Test how-tos** (if present):
|
|
243
|
+
- Attempt to solve the problem using the guide
|
|
244
|
+
- Verify solution works
|
|
245
|
+
|
|
246
|
+
6. **Validate generated reference** (if present):
|
|
247
|
+
- Check auto-generated API docs
|
|
248
|
+
- Verify all public APIs present
|
|
249
|
+
- Check descriptions are clear
|
|
250
|
+
|
|
251
|
+
7. **Decide**:
|
|
252
|
+
|
|
253
|
+
**If all checks pass**:
|
|
254
|
+
- Move WP to "done" lane
|
|
255
|
+
- Update activity log with approval
|
|
256
|
+
- Proceed to next WP
|
|
257
|
+
|
|
258
|
+
**If issues found**:
|
|
259
|
+
- Populate Review Feedback section in WP prompt
|
|
260
|
+
- List specific issues with locations and fix guidance
|
|
261
|
+
- Set `review_status: has_feedback`
|
|
262
|
+
- Move WP back to "planned" or "doing"
|
|
263
|
+
- Notify implementer
|
|
264
|
+
|
|
265
|
+
---
|
|
266
|
+
|
|
267
|
+
## Review Feedback Format
|
|
268
|
+
|
|
269
|
+
When returning work for changes, use this format:
|
|
270
|
+
|
|
271
|
+
```markdown
|
|
272
|
+
## Review Feedback
|
|
273
|
+
|
|
274
|
+
### Divio Type Compliance
|
|
275
|
+
|
|
276
|
+
**Issue**: docs/tutorials/getting-started.md is classified as tutorial but reads like how-to (assumes too much prior knowledge).
|
|
277
|
+
|
|
278
|
+
**Fix**: Either:
|
|
279
|
+
- Reclassify as how-to (change frontmatter `type: how-to`)
|
|
280
|
+
- Rewrite to be learning-oriented for beginners (add prerequisites section, simplify steps, show results at each step)
|
|
281
|
+
|
|
282
|
+
### Accessibility
|
|
283
|
+
|
|
284
|
+
**Issue**: docs/tutorials/getting-started.md has image without alt text (line 45).
|
|
285
|
+
|
|
286
|
+
**Fix**: Add alt text describing what the image shows:
|
|
287
|
+
```markdown
|
|
288
|
+

|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
### Inclusivity
|
|
292
|
+
|
|
293
|
+
**Issue**: docs/how-to/authentication.md uses only male names in examples ("Bob", "John", "Steve").
|
|
294
|
+
|
|
295
|
+
**Fix**: Use diverse names: "Aisha", "Yuki", "Carlos", "Alex".
|
|
296
|
+
|
|
297
|
+
### Completeness
|
|
298
|
+
|
|
299
|
+
**Issue**: Public API `DocumentGenerator.configure()` is not documented in reference.
|
|
300
|
+
|
|
301
|
+
**Fix**: Add entry to docs/reference/api.md or regenerate API docs if using auto-generation.
|
|
302
|
+
|
|
303
|
+
### Quality
|
|
304
|
+
|
|
305
|
+
**Issue**: Tutorial step 3 command fails (missing required --flag option).
|
|
306
|
+
|
|
307
|
+
**Fix**: Add --flag to command on line 67:
|
|
308
|
+
```bash
|
|
309
|
+
command --flag --other-option value
|
|
310
|
+
```
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
---
|
|
314
|
+
|
|
315
|
+
## Key Guidelines
|
|
316
|
+
|
|
317
|
+
**For Reviewers**:
|
|
318
|
+
- Focus on usability and accessibility, not perfection
|
|
319
|
+
- Provide specific, actionable feedback with line numbers
|
|
320
|
+
- Explain why something is an issue (educate, don't just reject)
|
|
321
|
+
- Test tutorials and how-tos by actually following them
|
|
322
|
+
- Check Divio type compliance carefully (most common issue)
|
|
323
|
+
|
|
324
|
+
**For Implementers**:
|
|
325
|
+
- Review feedback is guidance, not criticism
|
|
326
|
+
- Address all feedback items before re-submitting
|
|
327
|
+
- Mark `review_status: acknowledged` when you understand feedback
|
|
328
|
+
- Update activity log as you address each item
|
|
329
|
+
|
|
330
|
+
---
|
|
331
|
+
|
|
332
|
+
## Success Criteria
|
|
333
|
+
|
|
334
|
+
Documentation is ready for "done" when:
|
|
335
|
+
- [ ] All Divio type principles followed
|
|
336
|
+
- [ ] All accessibility checks pass
|
|
337
|
+
- [ ] All inclusivity checks pass
|
|
338
|
+
- [ ] All completeness requirements met
|
|
339
|
+
- [ ] All quality validations pass
|
|
340
|
+
- [ ] Documentation builds successfully
|
|
341
|
+
- [ ] Tutorials work when followed
|
|
342
|
+
- [ ] How-tos solve stated problems
|
|
343
|
+
- [ ] Reference is complete and accurate
|
|
344
|
+
- [ ] Explanations clarify concepts
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Create a documentation-focused feature specification with discovery and Divio scoping.
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Command Template: /spec-kitty.specify (Documentation Mission)
|
|
6
|
+
|
|
7
|
+
**Phase**: Discover
|
|
8
|
+
**Purpose**: Understand documentation needs, identify iteration mode, select Divio types, detect languages, recommend generators.
|
|
9
|
+
|
|
10
|
+
## User Input
|
|
11
|
+
|
|
12
|
+
```text
|
|
13
|
+
$ARGUMENTS
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
You **MUST** consider the user input before proceeding (if not empty).
|
|
17
|
+
|
|
18
|
+
## Discovery Gate (mandatory)
|
|
19
|
+
|
|
20
|
+
Before running any scripts or writing to disk, conduct a structured discovery interview tailored to documentation missions.
|
|
21
|
+
|
|
22
|
+
**Scope proportionality**: For documentation missions, discovery depth depends on project maturity:
|
|
23
|
+
- **New project** (initial mode): 3-4 questions about audience, goals, Divio types
|
|
24
|
+
- **Existing docs** (gap-filling mode): 2-3 questions about gaps, priorities, maintenance
|
|
25
|
+
- **Feature-specific** (documenting new feature): 1-2 questions about feature scope, integration
|
|
26
|
+
|
|
27
|
+
### Discovery Questions
|
|
28
|
+
|
|
29
|
+
**Question 1: Iteration Mode** (CRITICAL)
|
|
30
|
+
|
|
31
|
+
Ask user which documentation scenario applies:
|
|
32
|
+
|
|
33
|
+
**(A) Initial Documentation** - First-time documentation for a project (no existing docs)
|
|
34
|
+
**(B) Gap-Filling** - Improving/extending existing documentation
|
|
35
|
+
**(C) Feature-Specific** - Documenting a specific new feature/module
|
|
36
|
+
|
|
37
|
+
**Why it matters**: Determines whether to run gap analysis, how to structure workflow.
|
|
38
|
+
|
|
39
|
+
**Store answer in**: `meta.json → documentation_state.iteration_mode`
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
**Question 2A: For Initial Mode - What to Document**
|
|
44
|
+
|
|
45
|
+
Ask user:
|
|
46
|
+
- What is the primary audience? (developers, end users, contributors, operators)
|
|
47
|
+
- What are the documentation goals? (onboarding, API reference, troubleshooting, understanding architecture)
|
|
48
|
+
- Which Divio types are most important? (tutorial, how-to, reference, explanation)
|
|
49
|
+
|
|
50
|
+
**Why it matters**: Determines which templates to generate, what content to prioritize.
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
**Question 2B: For Gap-Filling Mode - What's Missing**
|
|
55
|
+
|
|
56
|
+
Inform user you will audit existing documentation, then ask:
|
|
57
|
+
- What problems are users reporting? (can't get started, can't solve specific problems, APIs undocumented, don't understand concepts)
|
|
58
|
+
- Which areas need documentation most urgently? (specific features, concepts, tasks)
|
|
59
|
+
- What Divio types are you willing to add? (tutorial, how-to, reference, explanation)
|
|
60
|
+
|
|
61
|
+
**Why it matters**: Focuses gap analysis on user-reported issues, prioritizes work.
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
**Question 2C: For Feature-Specific Mode - Feature Details**
|
|
66
|
+
|
|
67
|
+
Ask user:
|
|
68
|
+
- Which feature/module are you documenting?
|
|
69
|
+
- Who will use this feature? (what audience)
|
|
70
|
+
- What aspects need documentation? (getting started, common tasks, API details, architecture/design)
|
|
71
|
+
|
|
72
|
+
**Why it matters**: Scopes documentation to just the feature, determines which Divio types apply.
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
**Question 3: Language Detection & Generators**
|
|
77
|
+
|
|
78
|
+
Auto-detect project languages:
|
|
79
|
+
- Scan for `.js`, `.ts`, `.jsx`, `.tsx` files → Recommend JSDoc/TypeDoc
|
|
80
|
+
- Scan for `.py` files → Recommend Sphinx
|
|
81
|
+
- Scan for `Cargo.toml`, `.rs` files → Recommend rustdoc
|
|
82
|
+
|
|
83
|
+
Present to user:
|
|
84
|
+
"Detected languages: [list]. Recommend these generators: [list]. Proceed with these?"
|
|
85
|
+
|
|
86
|
+
Allow user to:
|
|
87
|
+
- Confirm all
|
|
88
|
+
- Select subset
|
|
89
|
+
- Skip generators (manual documentation only)
|
|
90
|
+
|
|
91
|
+
**Why it matters**: Determines which generators to configure in planning phase.
|
|
92
|
+
|
|
93
|
+
**Store answer in**: `meta.json → documentation_state.generators_configured`
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
**Question 4: Target Audience (if not already clear)**
|
|
98
|
+
|
|
99
|
+
If not clear from earlier answers, ask:
|
|
100
|
+
"Who is the primary audience for this documentation?"
|
|
101
|
+
- Developers integrating your library/API
|
|
102
|
+
- End users using your application
|
|
103
|
+
- Contributors to your project
|
|
104
|
+
- Operators deploying/maintaining your system
|
|
105
|
+
- Mix of above (specify)
|
|
106
|
+
|
|
107
|
+
**Why it matters**: Affects documentation tone, depth, assumed knowledge.
|
|
108
|
+
|
|
109
|
+
**Store answer in**: `spec.md → ## Documentation Scope → Target Audience`
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
**Question 5: Publish Scope (optional)**
|
|
114
|
+
|
|
115
|
+
Ask user:
|
|
116
|
+
- Is documentation release/publish in scope for this effort?
|
|
117
|
+
- If yes, should we produce `release.md` with hosting and handoff details?
|
|
118
|
+
|
|
119
|
+
**Why it matters**: Avoids unnecessary release work when publishing is handled elsewhere.
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
### Intent Summary
|
|
124
|
+
|
|
125
|
+
After discovery questions answered, synthesize into Intent Summary:
|
|
126
|
+
|
|
127
|
+
```markdown
|
|
128
|
+
## Documentation Mission Intent
|
|
129
|
+
|
|
130
|
+
**Iteration Mode**: [initial | gap-filling | feature-specific]
|
|
131
|
+
**Primary Goal**: [Describe what user wants to accomplish]
|
|
132
|
+
**Target Audience**: [Who will read these docs]
|
|
133
|
+
**Selected Divio Types**: [tutorial, how-to, reference, explanation]
|
|
134
|
+
**Detected Languages**: [Python, JavaScript, Rust, etc.]
|
|
135
|
+
**Recommended Generators**: [JSDoc, Sphinx, rustdoc]
|
|
136
|
+
|
|
137
|
+
**Scope**: [Summary of what will be documented]
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
Confirm with user before proceeding.
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
## Outline
|
|
145
|
+
|
|
146
|
+
1. **Check discovery status**: If questions unanswered, ask one at a time (Discovery Gate above)
|
|
147
|
+
|
|
148
|
+
2. **Generate feature directory**: Run `spec-kitty agent feature create-feature "doc-{project-name}" --json --mission documentation`
|
|
149
|
+
- Feature naming convention: `doc-{project-name}` or `docs-{feature-name}` for feature-specific
|
|
150
|
+
|
|
151
|
+
3. **Create meta.json**: Include `mission: "documentation"` and `documentation_state` field:
|
|
152
|
+
```json
|
|
153
|
+
{
|
|
154
|
+
"feature_number": "###",
|
|
155
|
+
"slug": "doc-project-name",
|
|
156
|
+
"friendly_name": "Documentation: Project Name",
|
|
157
|
+
"mission": "documentation",
|
|
158
|
+
"source_description": "...",
|
|
159
|
+
"created_at": "...",
|
|
160
|
+
"documentation_state": {
|
|
161
|
+
"iteration_mode": "initial",
|
|
162
|
+
"divio_types_selected": ["tutorial", "reference"],
|
|
163
|
+
"generators_configured": [
|
|
164
|
+
{"name": "sphinx", "language": "python"}
|
|
165
|
+
],
|
|
166
|
+
"target_audience": "developers",
|
|
167
|
+
"last_audit_date": null,
|
|
168
|
+
"coverage_percentage": 0.0
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
4. **Run gap analysis** (gap-filling mode only):
|
|
174
|
+
- Scan existing `docs/` directory
|
|
175
|
+
- Classify docs into Divio types
|
|
176
|
+
- Build coverage matrix
|
|
177
|
+
- Generate `gap-analysis.md` with findings
|
|
178
|
+
|
|
179
|
+
5. **Generate specification**:
|
|
180
|
+
- Use `templates/spec-template.md` from documentation mission
|
|
181
|
+
- Fill in Documentation Scope section with discovery answers
|
|
182
|
+
- Include gap analysis results if gap-filling mode
|
|
183
|
+
- Define requirements based on selected Divio types and generators
|
|
184
|
+
- Define success criteria (accessibility, completeness, audience satisfaction)
|
|
185
|
+
|
|
186
|
+
6. **Validate specification**: Run quality checks (see spec-template.md checklist)
|
|
187
|
+
|
|
188
|
+
7. **Report completion**: Spec file path, next command (`/spec-kitty.plan`)
|
|
189
|
+
|
|
190
|
+
---
|
|
191
|
+
|
|
192
|
+
## Key Guidelines
|
|
193
|
+
|
|
194
|
+
**For Agents**:
|
|
195
|
+
- Ask discovery questions one at a time (don't overwhelm user)
|
|
196
|
+
- Auto-detect languages to recommend generators
|
|
197
|
+
- For gap-filling, show audit results to user before asking what to fill
|
|
198
|
+
- Store iteration state in meta.json (enables future iterations)
|
|
199
|
+
- Emphasize Divio types in specification (tutorial/how-to/reference/explanation)
|
|
200
|
+
- Link to Write the Docs and Divio resources in spec
|
|
201
|
+
|
|
202
|
+
**For Users**:
|
|
203
|
+
- Discovery helps ensure documentation meets real needs
|
|
204
|
+
- Gap analysis (if iterating) shows what's missing
|
|
205
|
+
- Generator recommendations save manual API documentation work
|
|
206
|
+
- Iteration mode affects workflow (initial vs gap-filling vs feature-specific)
|