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,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
|