kollabor 0.4.9__py3-none-any.whl → 0.4.15__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.
- agents/__init__.py +2 -0
- agents/coder/__init__.py +0 -0
- agents/coder/agent.json +4 -0
- agents/coder/api-integration.md +2150 -0
- agents/coder/cli-pretty.md +765 -0
- agents/coder/code-review.md +1092 -0
- agents/coder/database-design.md +1525 -0
- agents/coder/debugging.md +1102 -0
- agents/coder/dependency-management.md +1397 -0
- agents/coder/git-workflow.md +1099 -0
- agents/coder/refactoring.md +1454 -0
- agents/coder/security-hardening.md +1732 -0
- agents/coder/system_prompt.md +1448 -0
- agents/coder/tdd.md +1367 -0
- agents/creative-writer/__init__.py +0 -0
- agents/creative-writer/agent.json +4 -0
- agents/creative-writer/character-development.md +1852 -0
- agents/creative-writer/dialogue-craft.md +1122 -0
- agents/creative-writer/plot-structure.md +1073 -0
- agents/creative-writer/revision-editing.md +1484 -0
- agents/creative-writer/system_prompt.md +690 -0
- agents/creative-writer/worldbuilding.md +2049 -0
- agents/data-analyst/__init__.py +30 -0
- agents/data-analyst/agent.json +4 -0
- agents/data-analyst/data-visualization.md +992 -0
- agents/data-analyst/exploratory-data-analysis.md +1110 -0
- agents/data-analyst/pandas-data-manipulation.md +1081 -0
- agents/data-analyst/sql-query-optimization.md +881 -0
- agents/data-analyst/statistical-analysis.md +1118 -0
- agents/data-analyst/system_prompt.md +928 -0
- agents/default/__init__.py +0 -0
- agents/default/agent.json +4 -0
- agents/default/dead-code.md +794 -0
- agents/default/explore-agent-system.md +585 -0
- agents/default/system_prompt.md +1448 -0
- agents/kollabor/__init__.py +0 -0
- agents/kollabor/analyze-plugin-lifecycle.md +175 -0
- agents/kollabor/analyze-terminal-rendering.md +388 -0
- agents/kollabor/code-review.md +1092 -0
- agents/kollabor/debug-mcp-integration.md +521 -0
- agents/kollabor/debug-plugin-hooks.md +547 -0
- agents/kollabor/debugging.md +1102 -0
- agents/kollabor/dependency-management.md +1397 -0
- agents/kollabor/git-workflow.md +1099 -0
- agents/kollabor/inspect-llm-conversation.md +148 -0
- agents/kollabor/monitor-event-bus.md +558 -0
- agents/kollabor/profile-performance.md +576 -0
- agents/kollabor/refactoring.md +1454 -0
- agents/kollabor/system_prompt copy.md +1448 -0
- agents/kollabor/system_prompt.md +757 -0
- agents/kollabor/trace-command-execution.md +178 -0
- agents/kollabor/validate-config.md +879 -0
- agents/research/__init__.py +0 -0
- agents/research/agent.json +4 -0
- agents/research/architecture-mapping.md +1099 -0
- agents/research/codebase-analysis.md +1077 -0
- agents/research/dependency-audit.md +1027 -0
- agents/research/performance-profiling.md +1047 -0
- agents/research/security-review.md +1359 -0
- agents/research/system_prompt.md +492 -0
- agents/technical-writer/__init__.py +0 -0
- agents/technical-writer/agent.json +4 -0
- agents/technical-writer/api-documentation.md +2328 -0
- agents/technical-writer/changelog-management.md +1181 -0
- agents/technical-writer/readme-writing.md +1360 -0
- agents/technical-writer/style-guide.md +1410 -0
- agents/technical-writer/system_prompt.md +653 -0
- agents/technical-writer/tutorial-creation.md +1448 -0
- core/__init__.py +0 -2
- core/application.py +343 -88
- core/cli.py +229 -10
- core/commands/menu_renderer.py +463 -59
- core/commands/registry.py +14 -9
- core/commands/system_commands.py +2461 -14
- core/config/loader.py +151 -37
- core/config/service.py +18 -6
- core/events/bus.py +29 -9
- core/events/executor.py +205 -75
- core/events/models.py +27 -8
- core/fullscreen/command_integration.py +20 -24
- core/fullscreen/components/__init__.py +10 -1
- core/fullscreen/components/matrix_components.py +1 -2
- core/fullscreen/components/space_shooter_components.py +654 -0
- core/fullscreen/plugin.py +5 -0
- core/fullscreen/renderer.py +52 -13
- core/fullscreen/session.py +52 -15
- core/io/__init__.py +29 -5
- core/io/buffer_manager.py +6 -1
- core/io/config_status_view.py +7 -29
- core/io/core_status_views.py +267 -347
- core/io/input/__init__.py +25 -0
- core/io/input/command_mode_handler.py +711 -0
- core/io/input/display_controller.py +128 -0
- core/io/input/hook_registrar.py +286 -0
- core/io/input/input_loop_manager.py +421 -0
- core/io/input/key_press_handler.py +502 -0
- core/io/input/modal_controller.py +1011 -0
- core/io/input/paste_processor.py +339 -0
- core/io/input/status_modal_renderer.py +184 -0
- core/io/input_errors.py +5 -1
- core/io/input_handler.py +211 -2452
- core/io/key_parser.py +7 -0
- core/io/layout.py +15 -3
- core/io/message_coordinator.py +111 -2
- core/io/message_renderer.py +129 -4
- core/io/status_renderer.py +147 -607
- core/io/terminal_renderer.py +97 -51
- core/io/terminal_state.py +21 -4
- core/io/visual_effects.py +816 -165
- core/llm/agent_manager.py +1063 -0
- core/llm/api_adapters/__init__.py +44 -0
- core/llm/api_adapters/anthropic_adapter.py +432 -0
- core/llm/api_adapters/base.py +241 -0
- core/llm/api_adapters/openai_adapter.py +326 -0
- core/llm/api_communication_service.py +167 -113
- core/llm/conversation_logger.py +322 -16
- core/llm/conversation_manager.py +556 -30
- core/llm/file_operations_executor.py +84 -32
- core/llm/llm_service.py +934 -103
- core/llm/mcp_integration.py +541 -57
- core/llm/message_display_service.py +135 -18
- core/llm/plugin_sdk.py +1 -2
- core/llm/profile_manager.py +1183 -0
- core/llm/response_parser.py +274 -56
- core/llm/response_processor.py +16 -3
- core/llm/tool_executor.py +6 -1
- core/logging/__init__.py +2 -0
- core/logging/setup.py +34 -6
- core/models/resume.py +54 -0
- core/plugins/__init__.py +4 -2
- core/plugins/base.py +127 -0
- core/plugins/collector.py +23 -161
- core/plugins/discovery.py +37 -3
- core/plugins/factory.py +6 -12
- core/plugins/registry.py +5 -17
- core/ui/config_widgets.py +128 -28
- core/ui/live_modal_renderer.py +2 -1
- core/ui/modal_actions.py +5 -0
- core/ui/modal_overlay_renderer.py +0 -60
- core/ui/modal_renderer.py +268 -7
- core/ui/modal_state_manager.py +29 -4
- core/ui/widgets/base_widget.py +7 -0
- core/updates/__init__.py +10 -0
- core/updates/version_check_service.py +348 -0
- core/updates/version_comparator.py +103 -0
- core/utils/config_utils.py +685 -526
- core/utils/plugin_utils.py +1 -1
- core/utils/session_naming.py +111 -0
- fonts/LICENSE +21 -0
- fonts/README.md +46 -0
- fonts/SymbolsNerdFont-Regular.ttf +0 -0
- fonts/SymbolsNerdFontMono-Regular.ttf +0 -0
- fonts/__init__.py +44 -0
- {kollabor-0.4.9.dist-info → kollabor-0.4.15.dist-info}/METADATA +54 -4
- kollabor-0.4.15.dist-info/RECORD +228 -0
- {kollabor-0.4.9.dist-info → kollabor-0.4.15.dist-info}/top_level.txt +2 -0
- plugins/agent_orchestrator/__init__.py +39 -0
- plugins/agent_orchestrator/activity_monitor.py +181 -0
- plugins/agent_orchestrator/file_attacher.py +77 -0
- plugins/agent_orchestrator/message_injector.py +135 -0
- plugins/agent_orchestrator/models.py +48 -0
- plugins/agent_orchestrator/orchestrator.py +403 -0
- plugins/agent_orchestrator/plugin.py +976 -0
- plugins/agent_orchestrator/xml_parser.py +191 -0
- plugins/agent_orchestrator_plugin.py +9 -0
- plugins/enhanced_input/box_styles.py +1 -0
- plugins/enhanced_input/color_engine.py +19 -4
- plugins/enhanced_input/config.py +2 -2
- plugins/enhanced_input_plugin.py +61 -11
- plugins/fullscreen/__init__.py +6 -2
- plugins/fullscreen/example_plugin.py +1035 -222
- plugins/fullscreen/setup_wizard_plugin.py +592 -0
- plugins/fullscreen/space_shooter_plugin.py +131 -0
- plugins/hook_monitoring_plugin.py +436 -78
- plugins/query_enhancer_plugin.py +66 -30
- plugins/resume_conversation_plugin.py +1494 -0
- plugins/save_conversation_plugin.py +98 -32
- plugins/system_commands_plugin.py +70 -56
- plugins/tmux_plugin.py +154 -78
- plugins/workflow_enforcement_plugin.py +94 -92
- system_prompt/default.md +952 -886
- core/io/input_mode_manager.py +0 -402
- core/io/modal_interaction_handler.py +0 -315
- core/io/raw_input_processor.py +0 -946
- core/storage/__init__.py +0 -5
- core/storage/state_manager.py +0 -84
- core/ui/widget_integration.py +0 -222
- core/utils/key_reader.py +0 -171
- kollabor-0.4.9.dist-info/RECORD +0 -128
- {kollabor-0.4.9.dist-info → kollabor-0.4.15.dist-info}/WHEEL +0 -0
- {kollabor-0.4.9.dist-info → kollabor-0.4.15.dist-info}/entry_points.txt +0 -0
- {kollabor-0.4.9.dist-info → kollabor-0.4.15.dist-info}/licenses/LICENSE +0 -0
|
@@ -0,0 +1,1410 @@
|
|
|
1
|
+
<!-- Style Guide skill - creating and enforcing documentation style guides -->
|
|
2
|
+
|
|
3
|
+
style-guide mode: CONSISTENCY IS PROFESSIONALISM
|
|
4
|
+
|
|
5
|
+
when this skill is active, you follow strict style guide discipline.
|
|
6
|
+
this is a comprehensive guide to creating and enforcing documentation standards.
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
PHASE 0: ENVIRONMENT/PREREQUISITES VERIFICATION
|
|
10
|
+
|
|
11
|
+
before creating ANY documentation, verify the style guide environment is ready.
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
check for existing style guide
|
|
15
|
+
|
|
16
|
+
<terminal>find . -name "*style*guide*" -o -name "*documentation*guide*" | head -10</terminal>
|
|
17
|
+
|
|
18
|
+
<terminal>find . -name "GUIDELINES.md" -o -name "CONTRIBUTING.md" | head -5</terminal>
|
|
19
|
+
|
|
20
|
+
<terminal>ls -la docs/ 2>/dev/null || echo "no docs directory"</terminal>
|
|
21
|
+
|
|
22
|
+
if style guide exists, read it first:
|
|
23
|
+
<read><file>docs/STYLE_GUIDE.md</file></read>
|
|
24
|
+
|
|
25
|
+
understand existing conventions before making changes.
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
check project documentation structure
|
|
29
|
+
|
|
30
|
+
<terminal>ls -la *.md 2>/dev/null</terminal>
|
|
31
|
+
|
|
32
|
+
<terminal>ls -la docs/ 2>/dev/null | head -20</terminal>
|
|
33
|
+
|
|
34
|
+
<terminal>find . -name "*.md" -type f | head -20</terminal>
|
|
35
|
+
|
|
36
|
+
identify existing documentation patterns to match or improve.
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
check for common style guide locations
|
|
40
|
+
|
|
41
|
+
<terminal>ls -la | grep -i "style\|guide\|contribute"</terminal>
|
|
42
|
+
|
|
43
|
+
<terminal>cat .github/CONTRIBUTING.md 2>/dev/null | head -50</terminal>
|
|
44
|
+
|
|
45
|
+
<terminal>cat docs/CONTRIBUTING.md 2>/dev/null | head -50</terminal>
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
check target audience
|
|
49
|
+
|
|
50
|
+
before creating style guide, identify:
|
|
51
|
+
[ ] who reads this documentation?
|
|
52
|
+
[ ] what is their expertise level?
|
|
53
|
+
[ ] what is their primary language?
|
|
54
|
+
[ ] what cultural contexts apply?
|
|
55
|
+
|
|
56
|
+
audience categories:
|
|
57
|
+
- developers: technical precision, code examples, API details
|
|
58
|
+
- end users: simple language, step-by-step instructions, screenshots
|
|
59
|
+
- business: feature benefits, use cases, minimal jargon
|
|
60
|
+
- mixed: layered content with expandable sections
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
PHASE 1: UNDERSTANDING STYLE GUIDES
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
what is a style guide?
|
|
67
|
+
|
|
68
|
+
a style guide is a set of standards for writing and formatting documentation.
|
|
69
|
+
it ensures consistency across all documentation in a project.
|
|
70
|
+
|
|
71
|
+
purpose:
|
|
72
|
+
- consistent voice and tone
|
|
73
|
+
- uniform formatting
|
|
74
|
+
- standardized terminology
|
|
75
|
+
- predictable structure
|
|
76
|
+
- easier maintenance
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
why style guides matter
|
|
80
|
+
|
|
81
|
+
without style guide:
|
|
82
|
+
- inconsistent terminology confuses readers
|
|
83
|
+
- varying formats distract from content
|
|
84
|
+
- multiple writers create disjointed docs
|
|
85
|
+
- maintenance becomes difficult
|
|
86
|
+
|
|
87
|
+
with style guide:
|
|
88
|
+
- readers know what to expect
|
|
89
|
+
- writers have clear guidelines
|
|
90
|
+
- onboarding new writers is faster
|
|
91
|
+
- documentation feels professional
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
components of a comprehensive style guide
|
|
95
|
+
|
|
96
|
+
[1] voice and tone guidelines
|
|
97
|
+
personality, formality level, perspective
|
|
98
|
+
|
|
99
|
+
[2] word choice standards
|
|
100
|
+
preferred terms, avoided terms, jargon policy
|
|
101
|
+
|
|
102
|
+
[3] formatting conventions
|
|
103
|
+
heading structure, code blocks, lists, emphasis
|
|
104
|
+
|
|
105
|
+
[4] grammar and mechanics
|
|
106
|
+
punctuation, capitalization, abbreviation rules
|
|
107
|
+
|
|
108
|
+
[5] structural patterns
|
|
109
|
+
document organization, section ordering, templates
|
|
110
|
+
|
|
111
|
+
[6] terminology glossary
|
|
112
|
+
project-specific terms and definitions
|
|
113
|
+
|
|
114
|
+
[7] inclusive language guidelines
|
|
115
|
+
bias-free communication standards
|
|
116
|
+
|
|
117
|
+
[8] accessibility standards
|
|
118
|
+
readability, alt text, semantic structure
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
PHASE 2: VOICE AND TONE
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
defining voice
|
|
125
|
+
|
|
126
|
+
voice is the personality expressed in writing.
|
|
127
|
+
it should remain consistent across all documentation.
|
|
128
|
+
|
|
129
|
+
voice dimensions:
|
|
130
|
+
- formal vs casual
|
|
131
|
+
- technical vs accessible
|
|
132
|
+
- concise vs detailed
|
|
133
|
+
- authoritative vs collaborative
|
|
134
|
+
|
|
135
|
+
example voice definitions:
|
|
136
|
+
|
|
137
|
+
professional but approachable voice:
|
|
138
|
+
- use clear, direct language
|
|
139
|
+
- avoid slang and overly casual expressions
|
|
140
|
+
- write as if speaking to a respected colleague
|
|
141
|
+
- prefer "you" over passive constructions
|
|
142
|
+
|
|
143
|
+
technical and precise voice:
|
|
144
|
+
- use exact terminology
|
|
145
|
+
- provide complete technical details
|
|
146
|
+
- avoid vague statements
|
|
147
|
+
- include code examples for clarity
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
defining tone
|
|
151
|
+
|
|
152
|
+
tone is the emotional attitude conveyed in specific contexts.
|
|
153
|
+
tone can vary by document type while voice remains constant.
|
|
154
|
+
|
|
155
|
+
tone by document type:
|
|
156
|
+
|
|
157
|
+
tutorials: encouraging and patient
|
|
158
|
+
- acknowledge complexity
|
|
159
|
+
- validate user progress
|
|
160
|
+
- anticipate common mistakes
|
|
161
|
+
|
|
162
|
+
reference docs: neutral and concise
|
|
163
|
+
- present facts without commentary
|
|
164
|
+
- minimize explanatory text
|
|
165
|
+
- focus on accuracy
|
|
166
|
+
|
|
167
|
+
error messages: helpful and non-judgmental
|
|
168
|
+
- explain what went wrong
|
|
169
|
+
- suggest solutions
|
|
170
|
+
- avoid blaming the user
|
|
171
|
+
|
|
172
|
+
release notes: excited but professional
|
|
173
|
+
- highlight improvements
|
|
174
|
+
- acknowledge contributors
|
|
175
|
+
- maintain credibility
|
|
176
|
+
|
|
177
|
+
|
|
178
|
+
voice and tone checklist
|
|
179
|
+
|
|
180
|
+
for each document:
|
|
181
|
+
[ ] is the voice consistent throughout?
|
|
182
|
+
[ ] does the tone match the document type?
|
|
183
|
+
[ ] would this sound like it came from the same project
|
|
184
|
+
as other documentation?
|
|
185
|
+
[ ] is the perspective consistent (first-person plural,
|
|
186
|
+
second-person, etc.)
|
|
187
|
+
|
|
188
|
+
|
|
189
|
+
PHASE 3: WORD CHOICE STANDARDS
|
|
190
|
+
|
|
191
|
+
|
|
192
|
+
preferred terminology
|
|
193
|
+
|
|
194
|
+
establish standard terms for key concepts:
|
|
195
|
+
|
|
196
|
+
example: user terminology
|
|
197
|
+
- use "user" not "end-user"
|
|
198
|
+
- use "sign in" not "log in"
|
|
199
|
+
- use "password" not "passcode"
|
|
200
|
+
- use "application" not "app" (in formal docs)
|
|
201
|
+
|
|
202
|
+
example: technical terminology
|
|
203
|
+
- use "function" not "method" (unless OO method)
|
|
204
|
+
- use "argument" not "parameter" (for passed values)
|
|
205
|
+
- use "run" not "execute" (for commands)
|
|
206
|
+
- use "file path" not "filepath"
|
|
207
|
+
|
|
208
|
+
|
|
209
|
+
avoided terms
|
|
210
|
+
|
|
211
|
+
list terms to avoid and alternatives:
|
|
212
|
+
|
|
213
|
+
avoided vs preferred:
|
|
214
|
+
- "utilize" -> "use"
|
|
215
|
+
- "in order to" -> "to"
|
|
216
|
+
- "prior to" -> "before"
|
|
217
|
+
- "on the fly" -> "dynamically"
|
|
218
|
+
- "hopefully" -> remove (express uncertainty differently)
|
|
219
|
+
- "simply" -> remove (assumes simplicity)
|
|
220
|
+
- "just" -> remove (minimizes complexity)
|
|
221
|
+
- "basically" -> remove (vague filler)
|
|
222
|
+
- "very" -> remove (weak intensifier)
|
|
223
|
+
- "easy" -> remove (subjective)
|
|
224
|
+
|
|
225
|
+
|
|
226
|
+
jargon policy
|
|
227
|
+
|
|
228
|
+
define when jargon is acceptable:
|
|
229
|
+
|
|
230
|
+
acceptable jargon:
|
|
231
|
+
- industry-standard terms the audience knows
|
|
232
|
+
- terms defined in the project glossary
|
|
233
|
+
- API names, function names, variable names
|
|
234
|
+
|
|
235
|
+
avoid jargon:
|
|
236
|
+
- internal codenames not exposed to users
|
|
237
|
+
- slang specific to one team
|
|
238
|
+
- abbreviations without prior definition
|
|
239
|
+
- technical metaphors (kill process, spawn thread)
|
|
240
|
+
|
|
241
|
+
|
|
242
|
+
technical terms handling
|
|
243
|
+
|
|
244
|
+
first mention:
|
|
245
|
+
"The Model Context Protocol (MCP) enables..."
|
|
246
|
+
|
|
247
|
+
subsequent mentions:
|
|
248
|
+
"MCP provides..."
|
|
249
|
+
|
|
250
|
+
always define acronyms on first use in each document.
|
|
251
|
+
|
|
252
|
+
|
|
253
|
+
capitalization rules
|
|
254
|
+
|
|
255
|
+
sentence case for most content:
|
|
256
|
+
- "Click the submit button to continue."
|
|
257
|
+
- "See the authentication section for details."
|
|
258
|
+
|
|
259
|
+
title case for:
|
|
260
|
+
- document titles
|
|
261
|
+
- section headings (if using title case style)
|
|
262
|
+
- proper names
|
|
263
|
+
|
|
264
|
+
lowercase for:
|
|
265
|
+
- "the internet"
|
|
266
|
+
- "web" (as a general concept)
|
|
267
|
+
- "online" (one word)
|
|
268
|
+
- "email" (one word)
|
|
269
|
+
- "login" / "logout" (as verbs, not adjectives)
|
|
270
|
+
|
|
271
|
+
|
|
272
|
+
PHASE 4: FORMATTING CONVENTIONS
|
|
273
|
+
|
|
274
|
+
|
|
275
|
+
heading structure
|
|
276
|
+
|
|
277
|
+
use consistent heading hierarchy:
|
|
278
|
+
|
|
279
|
+
heading hierarchy:
|
|
280
|
+
# Document title (used once)
|
|
281
|
+
|
|
282
|
+
## Major section (main divisions)
|
|
283
|
+
|
|
284
|
+
### Subsection (components of sections)
|
|
285
|
+
|
|
286
|
+
#### Detail level (specific topics)
|
|
287
|
+
|
|
288
|
+
##### Rare use (nested details)
|
|
289
|
+
|
|
290
|
+
heading style:
|
|
291
|
+
- ATX style (# prefix) preferred
|
|
292
|
+
- setext style (underlines) acceptable for top level
|
|
293
|
+
- consistent capitalization (sentence case or title case)
|
|
294
|
+
- no trailing punctuation
|
|
295
|
+
- blank line before and after
|
|
296
|
+
|
|
297
|
+
|
|
298
|
+
code blocks
|
|
299
|
+
|
|
300
|
+
use fenced code blocks with language specifiers:
|
|
301
|
+
|
|
302
|
+
```python
|
|
303
|
+
def example():
|
|
304
|
+
return "code"
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
```bash
|
|
308
|
+
command --argument
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
```javascript
|
|
312
|
+
const example = "code";
|
|
313
|
+
```
|
|
314
|
+
|
|
315
|
+
code block guidelines:
|
|
316
|
+
[ ] always specify language for syntax highlighting
|
|
317
|
+
[ ] show complete, runnable examples when possible
|
|
318
|
+
[ ] include output comments when helpful
|
|
319
|
+
[ ] limit line length to ~80 characters within code
|
|
320
|
+
[ ] use real code, tested for correctness
|
|
321
|
+
|
|
322
|
+
|
|
323
|
+
inline code
|
|
324
|
+
|
|
325
|
+
use backticks for:
|
|
326
|
+
- function names: `fetch_data()`
|
|
327
|
+
- variables: `user_id`
|
|
328
|
+
- file names: `config.json`
|
|
329
|
+
- directories: `/usr/local/bin`
|
|
330
|
+
- commands: `npm install`
|
|
331
|
+
- configuration keys: `database.url`
|
|
332
|
+
|
|
333
|
+
do not use backticks for:
|
|
334
|
+
- emphasis (use italics in markdown)
|
|
335
|
+
- technical terms that are not code elements
|
|
336
|
+
- generic concepts
|
|
337
|
+
|
|
338
|
+
|
|
339
|
+
lists
|
|
340
|
+
|
|
341
|
+
use consistent list formatting:
|
|
342
|
+
|
|
343
|
+
unordered lists (bullets):
|
|
344
|
+
- use hyphens (-) for markdown compatibility
|
|
345
|
+
- start each item on new line
|
|
346
|
+
- use blank line before list
|
|
347
|
+
- capitalize first word
|
|
348
|
+
- add period at end if item is complete sentence
|
|
349
|
+
|
|
350
|
+
ordered lists (numbering):
|
|
351
|
+
1. use numerals (1., 2., 3.)
|
|
352
|
+
2. indent nested lists with 4 spaces
|
|
353
|
+
3. maintain logical sequence
|
|
354
|
+
4. use for step-by-step instructions
|
|
355
|
+
|
|
356
|
+
definition lists:
|
|
357
|
+
term
|
|
358
|
+
: definition and explanation
|
|
359
|
+
|
|
360
|
+
use for key-value explanations
|
|
361
|
+
|
|
362
|
+
|
|
363
|
+
emphasis
|
|
364
|
+
|
|
365
|
+
use emphasis sparingly for maximum effect:
|
|
366
|
+
|
|
367
|
+
italics (markdown *word* or _word_):
|
|
368
|
+
- first use of new terms
|
|
369
|
+
- titles of standalone works
|
|
370
|
+
- foreign words not yet adopted
|
|
371
|
+
- mathematical variables
|
|
372
|
+
|
|
373
|
+
bold (markdown **word** or __word__):
|
|
374
|
+
- key terms on first definition
|
|
375
|
+
- warnings or critical information
|
|
376
|
+
- UI labels and button names
|
|
377
|
+
- field names in forms
|
|
378
|
+
|
|
379
|
+
avoid:
|
|
380
|
+
- multiple styles in one sentence
|
|
381
|
+
- emphasis for entire paragraphs
|
|
382
|
+
- all-caps for emphasis
|
|
383
|
+
|
|
384
|
+
|
|
385
|
+
links
|
|
386
|
+
|
|
387
|
+
create meaningful link text:
|
|
388
|
+
|
|
389
|
+
good:
|
|
390
|
+
- See the [authentication guide](docs/auth.md) for details.
|
|
391
|
+
- Download the [latest release](https://example.com/releases).
|
|
392
|
+
|
|
393
|
+
bad:
|
|
394
|
+
- Click [here](docs/auth.md) for details.
|
|
395
|
+
- Go to [this link](https://example.com/releases).
|
|
396
|
+
|
|
397
|
+
link guidelines:
|
|
398
|
+
- descriptive link text
|
|
399
|
+
- include protocol for external links
|
|
400
|
+
- prefer relative links for internal docs
|
|
401
|
+
- test all links regularly
|
|
402
|
+
|
|
403
|
+
|
|
404
|
+
PHASE 5: GRAMMAR AND MECHANICS
|
|
405
|
+
|
|
406
|
+
|
|
407
|
+
punctuation rules
|
|
408
|
+
|
|
409
|
+
serial comma:
|
|
410
|
+
- use serial comma (Oxford comma): "a, b, and c"
|
|
411
|
+
- improves clarity in technical writing
|
|
412
|
+
|
|
413
|
+
colons:
|
|
414
|
+
- use to introduce lists, code blocks, explanations
|
|
415
|
+
- capitalize first word after colon if complete sentence
|
|
416
|
+
- no capital if fragment or list
|
|
417
|
+
|
|
418
|
+
semicolons:
|
|
419
|
+
- join related independent clauses
|
|
420
|
+
- separate complex list items
|
|
421
|
+
- use sparingly in technical docs
|
|
422
|
+
|
|
423
|
+
dashes:
|
|
424
|
+
- em dash (--) without spaces for breaks
|
|
425
|
+
- en dash (-) for ranges (2020-2024)
|
|
426
|
+
- hyphen (-) for compound words
|
|
427
|
+
|
|
428
|
+
|
|
429
|
+
capitalization standards
|
|
430
|
+
|
|
431
|
+
capitalize:
|
|
432
|
+
- proper nouns: Python, JavaScript, GitHub
|
|
433
|
+
- brand names: PostgreSQL, Redis
|
|
434
|
+
- trade names: iPhone, macOS
|
|
435
|
+
- product names when official: AWS, Azure
|
|
436
|
+
|
|
437
|
+
lowercase:
|
|
438
|
+
- generic terms: database, server, client
|
|
439
|
+
- services unless official name: s3 not S3
|
|
440
|
+
- internet, web (as general concepts)
|
|
441
|
+
|
|
442
|
+
title case in headings:
|
|
443
|
+
- capitalize major words
|
|
444
|
+
- lowercase articles, conjunctions, prepositions
|
|
445
|
+
- capitalize first and last word always
|
|
446
|
+
|
|
447
|
+
|
|
448
|
+
abbreviation rules
|
|
449
|
+
|
|
450
|
+
first use:
|
|
451
|
+
"The Application Programming Interface (API) allows..."
|
|
452
|
+
|
|
453
|
+
subsequent uses:
|
|
454
|
+
"The API handles..."
|
|
455
|
+
|
|
456
|
+
common abbreviations that need no introduction:
|
|
457
|
+
- API, HTTP, URL, JSON, XML
|
|
458
|
+
- CPU, RAM, SSD, GPU
|
|
459
|
+
- UI, UX, CLI, GUI
|
|
460
|
+
|
|
461
|
+
avoid:
|
|
462
|
+
- project-specific abbreviations without definition
|
|
463
|
+
- latin abbreviations: use "for example" not "e.g."
|
|
464
|
+
|
|
465
|
+
|
|
466
|
+
numbers and measurements
|
|
467
|
+
|
|
468
|
+
spell out:
|
|
469
|
+
- zero through nine: "three files"
|
|
470
|
+
- numbers at sentence start: "Seven users..."
|
|
471
|
+
|
|
472
|
+
use numerals for:
|
|
473
|
+
- 10 and above: "42 requests"
|
|
474
|
+
- measurements with units: "5 MB", "100 ms"
|
|
475
|
+
- version numbers: "version 2.0"
|
|
476
|
+
- percentages: "25 percent" (spell out "percent")
|
|
477
|
+
|
|
478
|
+
large numbers:
|
|
479
|
+
- use commas: "1,000,000 users"
|
|
480
|
+
- consider scientific notation for very large numbers
|
|
481
|
+
|
|
482
|
+
date formats:
|
|
483
|
+
- ISO 8601 for dates: 2024-01-15
|
|
484
|
+
- avoid regional formats: not "01/15/2024" or "15/01/2024"
|
|
485
|
+
|
|
486
|
+
|
|
487
|
+
PHASE 6: STRUCTURAL PATTERNS
|
|
488
|
+
|
|
489
|
+
|
|
490
|
+
document template structure
|
|
491
|
+
|
|
492
|
+
standard document organization:
|
|
493
|
+
|
|
494
|
+
title: clear, descriptive, includes key topic
|
|
495
|
+
|
|
496
|
+
description: one-sentence summary of document purpose
|
|
497
|
+
|
|
498
|
+
prerequisites: what user needs before starting
|
|
499
|
+
- knowledge requirements
|
|
500
|
+
- required tools
|
|
501
|
+
- necessary permissions
|
|
502
|
+
|
|
503
|
+
overview/summary: high-level explanation
|
|
504
|
+
|
|
505
|
+
main content: organized by topic or step
|
|
506
|
+
|
|
507
|
+
see also: related documentation links
|
|
508
|
+
|
|
509
|
+
appendix: supplementary information
|
|
510
|
+
|
|
511
|
+
|
|
512
|
+
tutorial structure
|
|
513
|
+
|
|
514
|
+
step-by-step tutorial template:
|
|
515
|
+
|
|
516
|
+
## Title: Verb-based, outcome-focused
|
|
517
|
+
## "Configure Authentication"
|
|
518
|
+
|
|
519
|
+
Description:
|
|
520
|
+
Learn how to set up OAuth2 authentication for your API.
|
|
521
|
+
|
|
522
|
+
Prerequisites:
|
|
523
|
+
- Basic knowledge of REST APIs
|
|
524
|
+
- Python 3.8+ installed
|
|
525
|
+
- Account with OAuth provider
|
|
526
|
+
|
|
527
|
+
Time estimate: 15 minutes
|
|
528
|
+
|
|
529
|
+
Steps:
|
|
530
|
+
1. First clear action
|
|
531
|
+
explanation of what and why
|
|
532
|
+
|
|
533
|
+
2. Second action
|
|
534
|
+
continue with clear instructions
|
|
535
|
+
|
|
536
|
+
What's next:
|
|
537
|
+
- Secure your API tokens
|
|
538
|
+
- Configure scopes
|
|
539
|
+
- Handle token refresh
|
|
540
|
+
|
|
541
|
+
|
|
542
|
+
reference documentation structure
|
|
543
|
+
|
|
544
|
+
reference page template:
|
|
545
|
+
|
|
546
|
+
## [Component/Function Name]
|
|
547
|
+
|
|
548
|
+
Brief description: one or two sentences
|
|
549
|
+
|
|
550
|
+
Signature/prototype:
|
|
551
|
+
```language
|
|
552
|
+
function_name(param1, param2) -> return_type
|
|
553
|
+
```
|
|
554
|
+
|
|
555
|
+
Parameters:
|
|
556
|
+
- `param1`: type - description
|
|
557
|
+
- `param2`: type - description
|
|
558
|
+
|
|
559
|
+
Returns:
|
|
560
|
+
type - description of return value
|
|
561
|
+
|
|
562
|
+
Raises/Exceptions:
|
|
563
|
+
- `ErrorType`: when and why
|
|
564
|
+
|
|
565
|
+
Examples:
|
|
566
|
+
```language
|
|
567
|
+
result = function_name(arg1, arg2)
|
|
568
|
+
```
|
|
569
|
+
|
|
570
|
+
See also:
|
|
571
|
+
- related_function()
|
|
572
|
+
- related_guide.md
|
|
573
|
+
|
|
574
|
+
|
|
575
|
+
troubleshooting structure
|
|
576
|
+
|
|
577
|
+
troubleshooting template:
|
|
578
|
+
|
|
579
|
+
## [Problem Description]
|
|
580
|
+
|
|
581
|
+
Symptom:
|
|
582
|
+
Clear description of what user experiences
|
|
583
|
+
|
|
584
|
+
Cause:
|
|
585
|
+
Technical explanation of root cause
|
|
586
|
+
|
|
587
|
+
Solutions:
|
|
588
|
+
|
|
589
|
+
Solution 1: [Title]
|
|
590
|
+
Step-by-step resolution...
|
|
591
|
+
|
|
592
|
+
Solution 2: [Title]
|
|
593
|
+
Alternative approach...
|
|
594
|
+
|
|
595
|
+
Prevention:
|
|
596
|
+
How to avoid this issue
|
|
597
|
+
|
|
598
|
+
|
|
599
|
+
PHASE 7: TERMINOLOGY GLOSSARIES
|
|
600
|
+
|
|
601
|
+
|
|
602
|
+
creating a project glossary
|
|
603
|
+
|
|
604
|
+
every project should maintain a terminology glossary:
|
|
605
|
+
|
|
606
|
+
template:
|
|
607
|
+
## Term
|
|
608
|
+
|
|
609
|
+
Definition: clear, concise explanation
|
|
610
|
+
|
|
611
|
+
Context: when and where this term is used
|
|
612
|
+
|
|
613
|
+
Synonyms: related terms to avoid confusion
|
|
614
|
+
|
|
615
|
+
Examples: usage in context
|
|
616
|
+
|
|
617
|
+
|
|
618
|
+
example glossary entries:
|
|
619
|
+
|
|
620
|
+
## Agent
|
|
621
|
+
|
|
622
|
+
Definition: An autonomous process that performs tasks
|
|
623
|
+
within the Kollabor CLI system.
|
|
624
|
+
|
|
625
|
+
Context: Agents are spawned using the tglm command and
|
|
626
|
+
operate independently to complete assigned work.
|
|
627
|
+
|
|
628
|
+
Synonyms: subprocess, worker, bot (avoid)
|
|
629
|
+
|
|
630
|
+
Examples: "Launch the PhaseBTypeDefinitions agent to
|
|
631
|
+
add TypeScript types."
|
|
632
|
+
|
|
633
|
+
|
|
634
|
+
## Hook
|
|
635
|
+
|
|
636
|
+
Definition: A registered function that executes in response
|
|
637
|
+
to specific events in the application.
|
|
638
|
+
|
|
639
|
+
Context: Plugins register hooks to intercept and modify
|
|
640
|
+
application behavior.
|
|
641
|
+
|
|
642
|
+
Synonyms: event handler, callback (use specific term)
|
|
643
|
+
|
|
644
|
+
Examples: "The plugin registers a pre_api_request hook
|
|
645
|
+
to modify outgoing API calls."
|
|
646
|
+
|
|
647
|
+
|
|
648
|
+
maintaining the glossary
|
|
649
|
+
|
|
650
|
+
[ ] add new terms when introducing concepts
|
|
651
|
+
[ ] update definitions as product evolves
|
|
652
|
+
[ ] mark deprecated terms clearly
|
|
653
|
+
[ ] cross-reference related terms
|
|
654
|
+
[ ] include in documentation build process
|
|
655
|
+
|
|
656
|
+
|
|
657
|
+
glossary formatting
|
|
658
|
+
|
|
659
|
+
alphabetical organization:
|
|
660
|
+
## A
|
|
661
|
+
### Agent
|
|
662
|
+
### API
|
|
663
|
+
|
|
664
|
+
## B
|
|
665
|
+
### Buffer
|
|
666
|
+
|
|
667
|
+
## H
|
|
668
|
+
### Hook
|
|
669
|
+
|
|
670
|
+
cross-references:
|
|
671
|
+
"See also: Event Bus"
|
|
672
|
+
|
|
673
|
+
pronunciation guide for difficult terms:
|
|
674
|
+
"asynchronous (ay-SINK-ron-us)"
|
|
675
|
+
|
|
676
|
+
|
|
677
|
+
PHASE 8: INCLUSIVE LANGUAGE GUIDELINES
|
|
678
|
+
|
|
679
|
+
|
|
680
|
+
principles of inclusive writing
|
|
681
|
+
|
|
682
|
+
respect:
|
|
683
|
+
- use language that respects all readers
|
|
684
|
+
- acknowledge diverse backgrounds
|
|
685
|
+
- avoid assumptions about user identity
|
|
686
|
+
|
|
687
|
+
clarity:
|
|
688
|
+
- specific terms over general ones
|
|
689
|
+
- direct language over euphemisms
|
|
690
|
+
- precision over tradition
|
|
691
|
+
|
|
692
|
+
|
|
693
|
+
gender-neutral language
|
|
694
|
+
|
|
695
|
+
avoid gendered pronouns for general users:
|
|
696
|
+
- use "they" as singular pronoun
|
|
697
|
+
- use "the user" instead of "he or she"
|
|
698
|
+
- rephrase to avoid pronouns
|
|
699
|
+
|
|
700
|
+
examples:
|
|
701
|
+
- "The user can save their work" (not "his or her work")
|
|
702
|
+
- "Each developer manages their own workspace"
|
|
703
|
+
- "When a user logs in, they have access to..."
|
|
704
|
+
|
|
705
|
+
gendered terms to avoid:
|
|
706
|
+
- "manpower" -> "workforce" or "staff"
|
|
707
|
+
- "mankind" -> "humanity" or "people"
|
|
708
|
+
- "master/slave" -> "primary/replica" or "main/follower"
|
|
709
|
+
- "blacklist/whitelist" -> "blocklist/allowlist"
|
|
710
|
+
|
|
711
|
+
|
|
712
|
+
ability-inclusive language
|
|
713
|
+
|
|
714
|
+
avoid metaphorical disability terms:
|
|
715
|
+
- "blind to" -> "unaware of" or "ignores"
|
|
716
|
+
- "crippled" -> "broken" or "non-functional"
|
|
717
|
+
- "lame" -> "poor" or "ineffective"
|
|
718
|
+
- "paralyzed" -> "stuck" or "unable to proceed"
|
|
719
|
+
|
|
720
|
+
focus on functionality, not limitations:
|
|
721
|
+
- "accessible interface" (describe what is available)
|
|
722
|
+
- "supports keyboard navigation" (specific feature)
|
|
723
|
+
|
|
724
|
+
|
|
725
|
+
cultural inclusivity
|
|
726
|
+
|
|
727
|
+
avoid culture-specific idioms:
|
|
728
|
+
- "it's a piece of cake" -> "it's straightforward"
|
|
729
|
+
- "hang tight" -> "please wait"
|
|
730
|
+
- "in a nutshell" -> "in summary" or "briefly"
|
|
731
|
+
|
|
732
|
+
avoid culture-specific references as defaults:
|
|
733
|
+
- specify time zones: "14:00 UTC" not "2:00 PM"
|
|
734
|
+
- use ISO date formats: 2024-01-15
|
|
735
|
+
- avoid sports metaphors in international docs
|
|
736
|
+
|
|
737
|
+
|
|
738
|
+
age-inclusive language
|
|
739
|
+
|
|
740
|
+
avoid age-based assumptions:
|
|
741
|
+
- "newbie" -> "newcomer" or "beginner"
|
|
742
|
+
- "junior/senior" -> specific experience levels
|
|
743
|
+
- avoid generational labels (boomer, millennial)
|
|
744
|
+
|
|
745
|
+
|
|
746
|
+
PHASE 9: ACCESSIBILITY STANDARDS
|
|
747
|
+
|
|
748
|
+
|
|
749
|
+
readability guidelines
|
|
750
|
+
|
|
751
|
+
target reading level:
|
|
752
|
+
- aim for 8th-10th grade reading level
|
|
753
|
+
- use simple sentence structures
|
|
754
|
+
- one idea per sentence
|
|
755
|
+
- limit sentence length to ~20 words
|
|
756
|
+
|
|
757
|
+
test readability:
|
|
758
|
+
<terminal>npm install -g readable</terminal>
|
|
759
|
+
<terminal>readable docs/*.md</terminal>
|
|
760
|
+
|
|
761
|
+
|
|
762
|
+
heading structure for screen readers
|
|
763
|
+
|
|
764
|
+
proper heading hierarchy:
|
|
765
|
+
- dont skip levels (h1 -> h3)
|
|
766
|
+
- use headings for structure, not styling
|
|
767
|
+
- unique heading text within document
|
|
768
|
+
|
|
769
|
+
descriptive headings:
|
|
770
|
+
- "Configuring the database" (good)
|
|
771
|
+
- "Configuration" (vague)
|
|
772
|
+
- "Step 1" (not descriptive)
|
|
773
|
+
|
|
774
|
+
|
|
775
|
+
alt text for images
|
|
776
|
+
|
|
777
|
+
all images need alt text:
|
|
778
|
+
![Diagram of the system architecture showing
|
|
779
|
+
the three main components and their connections]
|
|
780
|
+
|
|
781
|
+
![A screenshot of the settings panel with
|
|
782
|
+
the authentication options highlighted]
|
|
783
|
+
|
|
784
|
+
alt text guidelines:
|
|
785
|
+
- describe content, not appearance
|
|
786
|
+
- include relevant details
|
|
787
|
+
- keep concise (125 characters typical limit)
|
|
788
|
+
- end images with " showing..." if screenshot
|
|
789
|
+
- pure decorative images use empty alt=""
|
|
790
|
+
|
|
791
|
+
|
|
792
|
+
code accessibility
|
|
793
|
+
|
|
794
|
+
code blocks for screen readers:
|
|
795
|
+
- ensure code can be announced
|
|
796
|
+
- provide text explanations for complex code
|
|
797
|
+
- line breaks in important places
|
|
798
|
+
- comments for non-obvious logic
|
|
799
|
+
|
|
800
|
+
syntax considerations:
|
|
801
|
+
- avoid ascii art in code
|
|
802
|
+
- use unicode symbols carefully
|
|
803
|
+
- explain unicode characters in text
|
|
804
|
+
|
|
805
|
+
|
|
806
|
+
link accessibility
|
|
807
|
+
|
|
808
|
+
descriptive link text:
|
|
809
|
+
- "Download the Python SDK" (good)
|
|
810
|
+
- "Click here" (bad - no context)
|
|
811
|
+
|
|
812
|
+
link indicators:
|
|
813
|
+
- indicate external links explicitly
|
|
814
|
+
- warn about opening new windows/tabs
|
|
815
|
+
- distinguish download links
|
|
816
|
+
|
|
817
|
+
|
|
818
|
+
color and visual accessibility
|
|
819
|
+
|
|
820
|
+
in documentation:
|
|
821
|
+
- dont rely on color alone to convey meaning
|
|
822
|
+
- provide text alternatives for color-coded info
|
|
823
|
+
- ensure sufficient color contrast in diagrams
|
|
824
|
+
- describe visual elements in text
|
|
825
|
+
|
|
826
|
+
|
|
827
|
+
PHASE 10: INTERNATIONALIZATION CONSIDERATIONS
|
|
828
|
+
|
|
829
|
+
|
|
830
|
+
writing for translation
|
|
831
|
+
|
|
832
|
+
simple sentence structure:
|
|
833
|
+
- subject-verb-object order
|
|
834
|
+
- one clause per sentence
|
|
835
|
+
- avoid nested clauses
|
|
836
|
+
|
|
837
|
+
avoid:
|
|
838
|
+
- idioms and colloquialisms
|
|
839
|
+
- culture-specific references
|
|
840
|
+
- puns and wordplay
|
|
841
|
+
- phrasal verbs with multiple meanings
|
|
842
|
+
|
|
843
|
+
examples:
|
|
844
|
+
- "break down" -> "analyze" or "decompose"
|
|
845
|
+
- "set up" -> "configure" or "create"
|
|
846
|
+
- "look into" -> "investigate"
|
|
847
|
+
|
|
848
|
+
|
|
849
|
+
dates, times, and numbers
|
|
850
|
+
|
|
851
|
+
use formats that translate well:
|
|
852
|
+
- "2024-01-15" not "1/15/24" or "15/1/24"
|
|
853
|
+
- "14:00 UTC" not "2:00 PM EST"
|
|
854
|
+
- "1,000,000" with thousand separators
|
|
855
|
+
|
|
856
|
+
explain:
|
|
857
|
+
- time zone abbreviations
|
|
858
|
+
- regional measurement units
|
|
859
|
+
- currency symbols and codes
|
|
860
|
+
|
|
861
|
+
|
|
862
|
+
context for translation
|
|
863
|
+
|
|
864
|
+
provide context for ambiguous terms:
|
|
865
|
+
- "run (execute)" vs "run (sequence)"
|
|
866
|
+
- "batch (processing)" vs "batch (group)"
|
|
867
|
+
|
|
868
|
+
use glossaries:
|
|
869
|
+
- maintain translation glossary
|
|
870
|
+
- define technical terms
|
|
871
|
+
- specify terms NOT to translate
|
|
872
|
+
|
|
873
|
+
|
|
874
|
+
PHASE 11: STYLE GUIDE ENFORCEMENT
|
|
875
|
+
|
|
876
|
+
|
|
877
|
+
automated checks
|
|
878
|
+
|
|
879
|
+
use linters for documentation:
|
|
880
|
+
|
|
881
|
+
markdown linting:
|
|
882
|
+
<terminal>npm install -g markdownlint-cli</terminal>
|
|
883
|
+
<terminal>markdownlint docs/**/*.md</terminal>
|
|
884
|
+
|
|
885
|
+
write-good for clarity:
|
|
886
|
+
<terminal>npm install -g write-good</terminal>
|
|
887
|
+
<terminal>write-good docs/*.md</terminal>
|
|
888
|
+
|
|
889
|
+
vale for custom rules:
|
|
890
|
+
<terminal>pip install vale</terminal>
|
|
891
|
+
<terminal>vale docs/*.md</terminal>
|
|
892
|
+
|
|
893
|
+
|
|
894
|
+
vale configuration
|
|
895
|
+
|
|
896
|
+
create `.vale.ini`:
|
|
897
|
+
|
|
898
|
+
<create>
|
|
899
|
+
<file>.vale.ini</file>
|
|
900
|
+
<content>
|
|
901
|
+
[*.md]
|
|
902
|
+
BasedOnStyles = Google
|
|
903
|
+
TokenIgnorers = (\[.*?\]\(.*?\)|`[^`]+`)
|
|
904
|
+
|
|
905
|
+
Google.Headings = NO
|
|
906
|
+
Google.HeadingLength = NO
|
|
907
|
+
</content>
|
|
908
|
+
</create>
|
|
909
|
+
|
|
910
|
+
create custom vocab:
|
|
911
|
+
|
|
912
|
+
<create>
|
|
913
|
+
<file>vocab.txt</file>
|
|
914
|
+
<content>
|
|
915
|
+
# Project-specific terminology
|
|
916
|
+
|
|
917
|
+
# Acceptable terms
|
|
918
|
+
Kollabor
|
|
919
|
+
hook
|
|
920
|
+
agent
|
|
921
|
+
plugin
|
|
922
|
+
terminal
|
|
923
|
+
|
|
924
|
+
# Terms to avoid
|
|
925
|
+
blacklist->blocklist
|
|
926
|
+
whitelist->allowlist
|
|
927
|
+
master->primary
|
|
928
|
+
slave->replica
|
|
929
|
+
</content>
|
|
930
|
+
</create>
|
|
931
|
+
|
|
932
|
+
|
|
933
|
+
pre-commit integration
|
|
934
|
+
|
|
935
|
+
# .pre-commit-config.yaml
|
|
936
|
+
repos:
|
|
937
|
+
- repo: https://github.com/igorshubovych/markdownlint-cli
|
|
938
|
+
rev: v0.37.0
|
|
939
|
+
hooks:
|
|
940
|
+
- id: markdownlint
|
|
941
|
+
args: [--fix]
|
|
942
|
+
|
|
943
|
+
- repo: https://github.com/errata-ai/vale
|
|
944
|
+
rev: v2.20.0
|
|
945
|
+
hooks:
|
|
946
|
+
- id: vale
|
|
947
|
+
|
|
948
|
+
|
|
949
|
+
ci integration
|
|
950
|
+
|
|
951
|
+
# github actions example
|
|
952
|
+
name: Documentation Lint
|
|
953
|
+
|
|
954
|
+
on: [push, pull_request]
|
|
955
|
+
|
|
956
|
+
jobs:
|
|
957
|
+
lint:
|
|
958
|
+
runs-on: ubuntu-latest
|
|
959
|
+
steps:
|
|
960
|
+
- uses: actions/checkout@v3
|
|
961
|
+
|
|
962
|
+
- name: Install markdownlint
|
|
963
|
+
run: npm install -g markdownlint-cli
|
|
964
|
+
|
|
965
|
+
- name: Lint markdown
|
|
966
|
+
run: markdownlint docs/**/*.md
|
|
967
|
+
|
|
968
|
+
|
|
969
|
+
PHASE 12: REVIEW CHECKLISTS
|
|
970
|
+
|
|
971
|
+
|
|
972
|
+
document creation checklist
|
|
973
|
+
|
|
974
|
+
before publishing new documentation:
|
|
975
|
+
|
|
976
|
+
structure:
|
|
977
|
+
[ ] has descriptive title
|
|
978
|
+
[ ] has description/summary
|
|
979
|
+
[ ] has appropriate heading hierarchy
|
|
980
|
+
[ ] has logical flow
|
|
981
|
+
[ ] has see-also links if applicable
|
|
982
|
+
|
|
983
|
+
content:
|
|
984
|
+
[ ] accurate and up to date
|
|
985
|
+
[ ] complete for the topic
|
|
986
|
+
[ ] code examples tested
|
|
987
|
+
[ ] links verified
|
|
988
|
+
[ ] screenshots current
|
|
989
|
+
|
|
990
|
+
style:
|
|
991
|
+
[ ] follows voice guidelines
|
|
992
|
+
[ ] uses preferred terminology
|
|
993
|
+
[ ] consistent formatting
|
|
994
|
+
[ ] proper grammar and punctuation
|
|
995
|
+
[ ] inclusive language
|
|
996
|
+
|
|
997
|
+
accessibility:
|
|
998
|
+
[ ] headings descriptive
|
|
999
|
+
[ ] images have alt text
|
|
1000
|
+
[ ] links have descriptive text
|
|
1001
|
+
[ ] code is readable
|
|
1002
|
+
|
|
1003
|
+
|
|
1004
|
+
style guide audit checklist
|
|
1005
|
+
|
|
1006
|
+
periodically review the style guide itself:
|
|
1007
|
+
|
|
1008
|
+
[ ] all sections present and complete
|
|
1009
|
+
[ ] examples reflect current best practices
|
|
1010
|
+
[ ] terminology matches current product
|
|
1011
|
+
[ ] inclusive language guidelines current
|
|
1012
|
+
[ ] tooling instructions work
|
|
1013
|
+
[ ] team feedback incorporated
|
|
1014
|
+
|
|
1015
|
+
|
|
1016
|
+
documentation review process
|
|
1017
|
+
|
|
1018
|
+
establish review workflow:
|
|
1019
|
+
|
|
1020
|
+
1. author creates documentation
|
|
1021
|
+
2. author completes self-review checklist
|
|
1022
|
+
3. peer review by documentation owner
|
|
1023
|
+
4. technical review by subject matter expert
|
|
1024
|
+
5. accessibility review if major document
|
|
1025
|
+
6. updates based on feedback
|
|
1026
|
+
7. final approval and merge
|
|
1027
|
+
|
|
1028
|
+
use pull requests for all documentation changes.
|
|
1029
|
+
|
|
1030
|
+
|
|
1031
|
+
peer review guidelines
|
|
1032
|
+
|
|
1033
|
+
when reviewing others documentation:
|
|
1034
|
+
|
|
1035
|
+
clarity:
|
|
1036
|
+
[ ] is the main point clear?
|
|
1037
|
+
[ ] could this be misunderstood?
|
|
1038
|
+
[ ] are steps in logical order?
|
|
1039
|
+
|
|
1040
|
+
completeness:
|
|
1041
|
+
[ ] is information missing?
|
|
1042
|
+
[ ] are prerequisites listed?
|
|
1043
|
+
[ ] are edge cases covered?
|
|
1044
|
+
|
|
1045
|
+
accuracy:
|
|
1046
|
+
[ ] are code examples correct?
|
|
1047
|
+
[ ] are technical details accurate?
|
|
1048
|
+
[ ] are links valid?
|
|
1049
|
+
|
|
1050
|
+
style:
|
|
1051
|
+
[ ] does it follow the style guide?
|
|
1052
|
+
[ ] is terminology consistent?
|
|
1053
|
+
[ ] is tone appropriate?
|
|
1054
|
+
|
|
1055
|
+
provide specific, actionable feedback.
|
|
1056
|
+
|
|
1057
|
+
|
|
1058
|
+
PHASE 13: STYLE GUIDE DOCUMENTATION
|
|
1059
|
+
|
|
1060
|
+
|
|
1061
|
+
creating the style guide document
|
|
1062
|
+
|
|
1063
|
+
structure the style guide itself:
|
|
1064
|
+
|
|
1065
|
+
<create>
|
|
1066
|
+
<file>docs/STYLE_GUIDE.md</file>
|
|
1067
|
+
<content>
|
|
1068
|
+
# Documentation Style Guide
|
|
1069
|
+
|
|
1070
|
+
## About this guide
|
|
1071
|
+
|
|
1072
|
+
This guide establishes standards for all [Project] documentation.
|
|
1073
|
+
Following these guidelines ensures consistency across our docs.
|
|
1074
|
+
|
|
1075
|
+
## Quick reference
|
|
1076
|
+
|
|
1077
|
+
- Voice: professional but approachable
|
|
1078
|
+
- Perspective: second-person ("you")
|
|
1079
|
+
- Headings: sentence case, ATX style
|
|
1080
|
+
- Code: fenced blocks with language specified
|
|
1081
|
+
- Links: descriptive text, not "click here"
|
|
1082
|
+
|
|
1083
|
+
## Table of contents
|
|
1084
|
+
|
|
1085
|
+
1. [Voice and Tone](#voice-and-tone)
|
|
1086
|
+
2. [Word Choice](#word-choice)
|
|
1087
|
+
3. [Formatting](#formatting)
|
|
1088
|
+
4. [Grammar](#grammar)
|
|
1089
|
+
5. [Structure](#structure)
|
|
1090
|
+
6. [Inclusive Language](#inclusive-language)
|
|
1091
|
+
7. [Accessibility](#accessibility)
|
|
1092
|
+
|
|
1093
|
+
## Voice and Tone
|
|
1094
|
+
|
|
1095
|
+
[detailed voice guidelines with examples]
|
|
1096
|
+
|
|
1097
|
+
## Word Choice
|
|
1098
|
+
|
|
1099
|
+
[terminology standards, preferred/avoided terms]
|
|
1100
|
+
|
|
1101
|
+
## Formatting
|
|
1102
|
+
|
|
1103
|
+
[markdown conventions, code blocks, lists]
|
|
1104
|
+
|
|
1105
|
+
## Grammar
|
|
1106
|
+
|
|
1107
|
+
[punctuation, capitalization, numbers]
|
|
1108
|
+
|
|
1109
|
+
## Structure
|
|
1110
|
+
|
|
1111
|
+
[document templates, organization patterns]
|
|
1112
|
+
|
|
1113
|
+
## Inclusive Language
|
|
1114
|
+
|
|
1115
|
+
[guidelines for bias-free communication]
|
|
1116
|
+
|
|
1117
|
+
## Accessibility
|
|
1118
|
+
|
|
1119
|
+
[standards for readable documentation]
|
|
1120
|
+
|
|
1121
|
+
## Glossary
|
|
1122
|
+
|
|
1123
|
+
[project-specific terminology definitions]
|
|
1124
|
+
|
|
1125
|
+
## Resources
|
|
1126
|
+
|
|
1127
|
+
- [Template files](templates/)
|
|
1128
|
+
- [Review checklist](checklist.md)
|
|
1129
|
+
- [Contribution guide](CONTRIBUTING.md)
|
|
1130
|
+
</content>
|
|
1131
|
+
</create>
|
|
1132
|
+
|
|
1133
|
+
|
|
1134
|
+
template files
|
|
1135
|
+
|
|
1136
|
+
provide ready-to-use templates:
|
|
1137
|
+
|
|
1138
|
+
docs/templates/
|
|
1139
|
+
tutorial.md
|
|
1140
|
+
reference.md
|
|
1141
|
+
guide.md
|
|
1142
|
+
troubleshooting.md
|
|
1143
|
+
api.md
|
|
1144
|
+
|
|
1145
|
+
each template includes:
|
|
1146
|
+
- section placeholders
|
|
1147
|
+
- format examples
|
|
1148
|
+
- embedded instructions
|
|
1149
|
+
|
|
1150
|
+
|
|
1151
|
+
PHASE 14: MAINTAINING THE STYLE GUIDE
|
|
1152
|
+
|
|
1153
|
+
|
|
1154
|
+
evolving the guide
|
|
1155
|
+
|
|
1156
|
+
when to update:
|
|
1157
|
+
- new documentation patterns emerge
|
|
1158
|
+
- product introduces new terminology
|
|
1159
|
+
- team feedback indicates issues
|
|
1160
|
+
- industry best practices change
|
|
1161
|
+
|
|
1162
|
+
update process:
|
|
1163
|
+
1. propose change with rationale
|
|
1164
|
+
2. gather feedback from doc team
|
|
1165
|
+
3. update style guide
|
|
1166
|
+
4. communicate changes to writers
|
|
1167
|
+
5. update affected documentation
|
|
1168
|
+
|
|
1169
|
+
|
|
1170
|
+
versioning style guides
|
|
1171
|
+
|
|
1172
|
+
for major style guide changes:
|
|
1173
|
+
- maintain previous version
|
|
1174
|
+
- document migration path
|
|
1175
|
+
- set transition timeline
|
|
1176
|
+
- tag old documents with version
|
|
1177
|
+
|
|
1178
|
+
example:
|
|
1179
|
+
docs/STYLE_GUIDE.md (current, v2.0)
|
|
1180
|
+
docs/STYLE_GUIDE_v1.md (archived)
|
|
1181
|
+
|
|
1182
|
+
|
|
1183
|
+
training and onboarding
|
|
1184
|
+
|
|
1185
|
+
new writer checklist:
|
|
1186
|
+
[ ] read style guide completely
|
|
1187
|
+
[ ] review example documentation
|
|
1188
|
+
[ ] complete style exercises
|
|
1189
|
+
[ ] submit sample for review
|
|
1190
|
+
[ ] attend style guide walkthrough
|
|
1191
|
+
|
|
1192
|
+
ongoing training:
|
|
1193
|
+
- quarterly style guide refreshers
|
|
1194
|
+
- common mistakes workshop
|
|
1195
|
+
- tool training (vale, markdownlint)
|
|
1196
|
+
- peer review practice
|
|
1197
|
+
|
|
1198
|
+
|
|
1199
|
+
PHASE 15: COMMON STYLE ISSUES AND FIXES
|
|
1200
|
+
|
|
1201
|
+
|
|
1202
|
+
issue: inconsistent terminology
|
|
1203
|
+
|
|
1204
|
+
problem:
|
|
1205
|
+
"user" / "end-user" / "client" used interchangeably
|
|
1206
|
+
|
|
1207
|
+
fix:
|
|
1208
|
+
- establish preferred term in glossary
|
|
1209
|
+
- search and replace across docs
|
|
1210
|
+
- add vale rule for prohibited terms
|
|
1211
|
+
|
|
1212
|
+
<terminal>find docs/ -name "*.md" -exec sed -i 's/end-user/user/g' {} +</terminal>
|
|
1213
|
+
|
|
1214
|
+
|
|
1215
|
+
issue: unclear link text
|
|
1216
|
+
|
|
1217
|
+
problem: "click here", "this link", "more"
|
|
1218
|
+
|
|
1219
|
+
fix:
|
|
1220
|
+
- rewrite with descriptive text
|
|
1221
|
+
- explain context and purpose
|
|
1222
|
+
- include action if applicable
|
|
1223
|
+
|
|
1224
|
+
before: "Click here to install."
|
|
1225
|
+
|
|
1226
|
+
after: "Install the package using pip."
|
|
1227
|
+
|
|
1228
|
+
|
|
1229
|
+
issue: wall of text
|
|
1230
|
+
|
|
1231
|
+
problem: long paragraphs without breaks
|
|
1232
|
+
|
|
1233
|
+
fix:
|
|
1234
|
+
- break into shorter paragraphs
|
|
1235
|
+
- use lists for clarity
|
|
1236
|
+
- add headings for structure
|
|
1237
|
+
- target 3-5 sentences per paragraph
|
|
1238
|
+
|
|
1239
|
+
|
|
1240
|
+
issue: missing context
|
|
1241
|
+
|
|
1242
|
+
problem: documentation assumes knowledge
|
|
1243
|
+
|
|
1244
|
+
fix:
|
|
1245
|
+
- add prerequisites section
|
|
1246
|
+
- define terms on first use
|
|
1247
|
+
- provide background information
|
|
1248
|
+
- link to related concepts
|
|
1249
|
+
|
|
1250
|
+
|
|
1251
|
+
issue: outdated examples
|
|
1252
|
+
|
|
1253
|
+
problem: code examples no longer work
|
|
1254
|
+
|
|
1255
|
+
fix:
|
|
1256
|
+
- test all code examples
|
|
1257
|
+
- add testing to ci pipeline
|
|
1258
|
+
- version examples with api
|
|
1259
|
+
- add "tested with" labels
|
|
1260
|
+
|
|
1261
|
+
|
|
1262
|
+
PHASE 16: STYLE GUIDE RULES (STRICT MODE)
|
|
1263
|
+
|
|
1264
|
+
|
|
1265
|
+
while this skill is active, these rules are MANDATORY:
|
|
1266
|
+
|
|
1267
|
+
[1] CHECK for existing style guide FIRST
|
|
1268
|
+
if project has style guide, read it
|
|
1269
|
+
follow existing conventions
|
|
1270
|
+
propose changes rather than ignoring
|
|
1271
|
+
|
|
1272
|
+
[2] DEFINE terminology before using
|
|
1273
|
+
introduce new terms clearly
|
|
1274
|
+
add to glossary if project has one
|
|
1275
|
+
use consistently throughout document
|
|
1276
|
+
|
|
1277
|
+
[3] WRITE for your audience
|
|
1278
|
+
identify who will read this
|
|
1279
|
+
match technical level to audience
|
|
1280
|
+
explain jargon or avoid it
|
|
1281
|
+
provide context for complex topics
|
|
1282
|
+
|
|
1283
|
+
[4] USE inclusive language
|
|
1284
|
+
avoid gendered pronouns for general users
|
|
1285
|
+
use respectful, person-first language
|
|
1286
|
+
avoid culture-specific idioms
|
|
1287
|
+
replace ableist metaphors
|
|
1288
|
+
|
|
1289
|
+
[5] ENSURE accessibility
|
|
1290
|
+
provide alt text for all images
|
|
1291
|
+
use descriptive headings
|
|
1292
|
+
create descriptive link text
|
|
1293
|
+
maintain heading hierarchy
|
|
1294
|
+
|
|
1295
|
+
[6] FOLLOW formatting conventions
|
|
1296
|
+
consistent heading style
|
|
1297
|
+
fenced code blocks with language
|
|
1298
|
+
proper list formatting
|
|
1299
|
+
blank lines around blocks
|
|
1300
|
+
|
|
1301
|
+
[7] BE consistent within the document
|
|
1302
|
+
same term = same concept
|
|
1303
|
+
same formatting = same meaning
|
|
1304
|
+
check before finalizing
|
|
1305
|
+
|
|
1306
|
+
[8] TEST code examples
|
|
1307
|
+
all code must run
|
|
1308
|
+
include expected output
|
|
1309
|
+
note any prerequisites
|
|
1310
|
+
|
|
1311
|
+
[9] PROOFREAD before publishing
|
|
1312
|
+
spelling and grammar check
|
|
1313
|
+
run automated linters
|
|
1314
|
+
review against checklist
|
|
1315
|
+
|
|
1316
|
+
[10] SEEK feedback on important docs
|
|
1317
|
+
subject matter expert review
|
|
1318
|
+
peer review for clarity
|
|
1319
|
+
accessibility review if public
|
|
1320
|
+
|
|
1321
|
+
|
|
1322
|
+
PHASE 17: DOCUMENTATION REVIEW CHECKLIST
|
|
1323
|
+
|
|
1324
|
+
|
|
1325
|
+
use this checklist for every document:
|
|
1326
|
+
|
|
1327
|
+
content quality:
|
|
1328
|
+
[ ] information is accurate
|
|
1329
|
+
[ ] content is complete
|
|
1330
|
+
[ ] examples are correct
|
|
1331
|
+
[ ] links work and go to relevant content
|
|
1332
|
+
[ ] screenshots are current
|
|
1333
|
+
|
|
1334
|
+
clarity:
|
|
1335
|
+
[ ] purpose is clear
|
|
1336
|
+
[ ] audience is appropriate
|
|
1337
|
+
[ ] explanations are understandable
|
|
1338
|
+
[ ] jargon is explained or avoided
|
|
1339
|
+
[ ] steps are in logical order
|
|
1340
|
+
|
|
1341
|
+
structure:
|
|
1342
|
+
[ ] has clear title
|
|
1343
|
+
[ ] has summary/description
|
|
1344
|
+
[ ] uses consistent headings
|
|
1345
|
+
[ ] organizes information logically
|
|
1346
|
+
[ ] includes see-also links
|
|
1347
|
+
|
|
1348
|
+
style:
|
|
1349
|
+
[ ] follows voice guidelines
|
|
1350
|
+
[ ] uses preferred terminology
|
|
1351
|
+
[ ] consistent capitalization
|
|
1352
|
+
[ ] proper punctuation
|
|
1353
|
+
[ ] inclusive language
|
|
1354
|
+
|
|
1355
|
+
formatting:
|
|
1356
|
+
[ ] correct heading hierarchy
|
|
1357
|
+
[ ] code blocks have language tags
|
|
1358
|
+
[ ] lists formatted correctly
|
|
1359
|
+
[ ] links have descriptive text
|
|
1360
|
+
[ ] no markdown rendering errors
|
|
1361
|
+
|
|
1362
|
+
accessibility:
|
|
1363
|
+
[ ] headings are descriptive
|
|
1364
|
+
[ ] images have alt text
|
|
1365
|
+
[ ] sufficient color contrast
|
|
1366
|
+
[ ] code is readable
|
|
1367
|
+
[ ] link text describes destination
|
|
1368
|
+
|
|
1369
|
+
|
|
1370
|
+
FINAL REMINDERS
|
|
1371
|
+
|
|
1372
|
+
|
|
1373
|
+
consistency creates trust
|
|
1374
|
+
|
|
1375
|
+
when documentation feels consistent, users trust the content.
|
|
1376
|
+
inconsistent style suggests inconsistent quality.
|
|
1377
|
+
the style guide is your foundation.
|
|
1378
|
+
|
|
1379
|
+
|
|
1380
|
+
style guides evolve
|
|
1381
|
+
|
|
1382
|
+
no style guide is perfect from the start.
|
|
1383
|
+
gather feedback from writers and readers.
|
|
1384
|
+
update as the project grows.
|
|
1385
|
+
stay open to improvements.
|
|
1386
|
+
|
|
1387
|
+
|
|
1388
|
+
clarity over cleverness
|
|
1389
|
+
|
|
1390
|
+
technical writing should be invisible.
|
|
1391
|
+
the reader should focus on the content, not the writing.
|
|
1392
|
+
if you notice the style, it might be getting in the way.
|
|
1393
|
+
|
|
1394
|
+
|
|
1395
|
+
good documentation is good business
|
|
1396
|
+
|
|
1397
|
+
clear documentation reduces support burden.
|
|
1398
|
+
well-written docs attract users.
|
|
1399
|
+
consistent style enables collaboration.
|
|
1400
|
+
invest in your docs.
|
|
1401
|
+
|
|
1402
|
+
|
|
1403
|
+
when in doubt
|
|
1404
|
+
|
|
1405
|
+
be clear over clever.
|
|
1406
|
+
be direct over diplomatic.
|
|
1407
|
+
be specific over general.
|
|
1408
|
+
be kind over cool.
|
|
1409
|
+
|
|
1410
|
+
now go create clear, consistent documentation.
|