@redpanda-data/docs-extensions-and-macros 4.12.6 → 4.13.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/README.adoc +33 -1064
  2. package/bin/doc-tools-mcp.js +720 -0
  3. package/bin/doc-tools.js +1050 -50
  4. package/bin/mcp-tools/antora.js +153 -0
  5. package/bin/mcp-tools/cache.js +89 -0
  6. package/bin/mcp-tools/cloud-regions.js +127 -0
  7. package/bin/mcp-tools/content-review.js +196 -0
  8. package/bin/mcp-tools/crd-docs.js +153 -0
  9. package/bin/mcp-tools/frontmatter.js +138 -0
  10. package/bin/mcp-tools/generated-docs-review.js +887 -0
  11. package/bin/mcp-tools/helm-docs.js +152 -0
  12. package/bin/mcp-tools/index.js +245 -0
  13. package/bin/mcp-tools/job-queue.js +468 -0
  14. package/bin/mcp-tools/mcp-validation.js +266 -0
  15. package/bin/mcp-tools/metrics-docs.js +146 -0
  16. package/bin/mcp-tools/openapi.js +174 -0
  17. package/bin/mcp-tools/prompt-discovery.js +283 -0
  18. package/bin/mcp-tools/property-docs.js +157 -0
  19. package/bin/mcp-tools/rpcn-docs.js +113 -0
  20. package/bin/mcp-tools/rpk-docs.js +141 -0
  21. package/bin/mcp-tools/telemetry.js +211 -0
  22. package/bin/mcp-tools/utils.js +131 -0
  23. package/bin/mcp-tools/versions.js +168 -0
  24. package/cli-utils/convert-doc-links.js +1 -1
  25. package/cli-utils/github-token.js +58 -0
  26. package/cli-utils/self-managed-docs-branch.js +2 -2
  27. package/cli-utils/setup-mcp.js +313 -0
  28. package/docker-compose/25.1/transactions.md +1 -1
  29. package/docker-compose/transactions.md +1 -1
  30. package/extensions/DEVELOPMENT.adoc +464 -0
  31. package/extensions/README.adoc +124 -0
  32. package/extensions/REFERENCE.adoc +768 -0
  33. package/extensions/USER_GUIDE.adoc +339 -0
  34. package/extensions/generate-rp-connect-info.js +3 -4
  35. package/extensions/version-fetcher/get-latest-console-version.js +38 -27
  36. package/extensions/version-fetcher/get-latest-redpanda-version.js +65 -54
  37. package/extensions/version-fetcher/retry-util.js +88 -0
  38. package/extensions/version-fetcher/set-latest-version.js +6 -3
  39. package/macros/DEVELOPMENT.adoc +377 -0
  40. package/macros/README.adoc +105 -0
  41. package/macros/REFERENCE.adoc +222 -0
  42. package/macros/USER_GUIDE.adoc +220 -0
  43. package/macros/rp-connect-components.js +6 -6
  44. package/mcp/CLI_INTERFACE.adoc +384 -0
  45. package/mcp/COSTS.adoc +167 -0
  46. package/mcp/DEVELOPMENT.adoc +726 -0
  47. package/mcp/README.adoc +172 -0
  48. package/mcp/USER_GUIDE.adoc +1392 -0
  49. package/mcp/WRITER_EXTENSION_GUIDE.adoc +814 -0
  50. package/mcp/prompts/README.adoc +183 -0
  51. package/mcp/prompts/property-docs-guide.md +283 -0
  52. package/mcp/prompts/review-for-style.md +128 -0
  53. package/mcp/prompts/rpcn-connector-docs-guide.md +126 -0
  54. package/mcp/prompts/write-new-guide.md +222 -0
  55. package/mcp/team-standards/style-guide.md +321 -0
  56. package/mcp/templates/README.adoc +212 -0
  57. package/mcp/templates/prompt-review-template.md +80 -0
  58. package/mcp/templates/prompt-write-template.md +110 -0
  59. package/mcp/templates/resource-template.md +76 -0
  60. package/package.json +16 -5
  61. package/tools/bundle-openapi.js +20 -10
  62. package/tools/cloud-regions/generate-cloud-regions.js +1 -1
  63. package/tools/fetch-from-github.js +18 -4
  64. package/tools/gen-rpk-ascii.py +3 -1
  65. package/tools/generate-cli-docs.js +325 -0
  66. package/tools/get-console-version.js +4 -2
  67. package/tools/get-redpanda-version.js +4 -2
  68. package/tools/metrics/metrics.py +19 -7
  69. package/tools/property-extractor/Makefile +7 -1
  70. package/tools/property-extractor/cloud_config.py +4 -4
  71. package/tools/property-extractor/constant_resolver.py +11 -11
  72. package/tools/property-extractor/property_extractor.py +18 -16
  73. package/tools/property-extractor/topic_property_extractor.py +2 -2
  74. package/tools/property-extractor/transformers.py +7 -7
  75. package/tools/property-extractor/type_definition_extractor.py +4 -4
  76. package/tools/redpanda-connect/README.adoc +1 -1
  77. package/tools/redpanda-connect/generate-rpcn-connector-docs.js +5 -3
@@ -0,0 +1,126 @@
1
+ ---
2
+ description: Comprehensive guide for updating Redpanda Connect connector reference documentation using the overrides system with $ref syntax. Explains the DRY approach for connector documentation.
3
+ version: 1.0.0
4
+ ---
5
+
6
+ # Redpanda Connect Reference Documentation: LLM Prompt Guide
7
+
8
+ Redpanda Connect reference documentation is generated using a combination of:
9
+
10
+ - **Autogenerated content**: Produced from source code and schemas, providing a baseline of all available fields, types, and options.
11
+ - **Overrides**: A JSON file (`overrides.json`) that allows technical writers to override, deduplicate, clarify, and cross-reference field descriptions using a DRY (Don't Repeat Yourself) approach.
12
+
13
+ ## Repository folder structure
14
+
15
+ - `/docs`: Built documentation site (HTML, assets, and static files for all Redpanda Connect docs versions)
16
+ - `/docs-data`: Source data for reference docs, including `overrides.json` and autogenerated JSON files
17
+ - `/modules`: Modular AsciiDoc content for guides, cookbooks, and reference topics
18
+ - `/package.json`, `README.adoc`, `antora.yml`: Project configuration and metadata
19
+ - `/.github`: GitHub workflows and Copilot custom instructions
20
+
21
+ ## `$ref` syntax
22
+
23
+ - The `$ref` syntax is used in the overrides file to avoid repeating identical or similar descriptions for fields that appear in multiple places.
24
+ - Instead of duplicating a description, a field can reference a central definition using:
25
+
26
+ ```json
27
+ "$ref": "#/definitions/field_name"
28
+ ```
29
+
30
+ - The referenced definition is found in the `definitions` section at the top of `overrides.json`.
31
+ - This approach ensures consistency, simplifies updates, and enables cross-referencing between related fields.
32
+
33
+ ## How reference docs are structured
34
+
35
+ - **Autogenerated files** (such as `.adoc` or `.json`): List all fields, types, options, and sometimes examples, but may lack clarity, deduplication, or cross-references.
36
+ - **Overrides file** (`overrides.json`):
37
+ - Contains a `definitions` section for reusable field descriptions.
38
+ - Uses `$ref` to point fields in the autogenerated structure to these definitions.
39
+ - Allows for cross-references between related fields (such as "see also", "must be used with", etc.).
40
+ - Supports enhancements for clarity, user-friendliness, and technical accuracy.
41
+
42
+ ## Example
43
+
44
+ ```json
45
+ "definitions": {
46
+ "client_certs": {
47
+ "description": "A list of client certificates for mutual TLS (mTLS) authentication. ... (full description here)"
48
+ }
49
+ },
50
+ "inputs": [
51
+ {
52
+ "name": "amqp_0_9",
53
+ "config": {
54
+ "children": [
55
+ {
56
+ "name": "tls",
57
+ "$ref": "#/definitions/tls",
58
+ "children": [
59
+ {
60
+ "name": "client_certs",
61
+ "$ref": "#/definitions/client_certs"
62
+ }
63
+ ]
64
+ }
65
+ ]
66
+ }
67
+ }
68
+ ]
69
+ ```
70
+
71
+ ## Your workflow
72
+
73
+ When asked to improve or work with Redpanda Connect reference documentation:
74
+
75
+ 1. **Read the overrides file**: Always start by reading `docs-data/overrides.json` to understand the current structure and definitions.
76
+
77
+ 2. **Understand the `$ref` system**: Do not duplicate descriptions; suggest improvements to central definitions and update references as needed.
78
+
79
+ 3. **Make improvements**:
80
+ - Suggest improvements for clarity, consistency, and user experience, especially in the `definitions` section
81
+ - Identify opportunities for new or improved cross-references between related fields
82
+ - Create new definition objects for missing references or enhance existing ones
83
+ - Recommend deduplication: If you find repeated inline descriptions, propose moving them to a definition and referencing them with `$ref`
84
+
85
+ 4. **Update the overrides file**: Use the Edit or Write tool to update `docs-data/overrides.json` with your changes.
86
+
87
+ 5. **Regenerate documentation**: Use the `generate_rpcn_connector_docs` MCP tool to regenerate the documentation with your changes.
88
+ - Default branch is "main"
89
+ - Can specify a different branch if needed
90
+
91
+ 6. **Explain your changes**: Provide a clear explanation of what you changed and why.
92
+
93
+ ## Quality checks you must perform
94
+
95
+ - **Preserve technical accuracy**: Ensure that all field descriptions are correct, actionable, and user-friendly
96
+ - **Maintain DRY principles**: Avoid unnecessary repetition in the documentation
97
+ - **Validate JSON syntax**: Ensure the overrides file remains valid JSON after your changes
98
+ - **Check $ref references**: Ensure all `$ref` references point to valid definitions
99
+ - **Maintain consistency**: Use consistent terminology and formatting across all descriptions
100
+
101
+ ## Output expectations
102
+
103
+ When asked for improvements, your output should include:
104
+
105
+ - Suggested changes to the `definitions` section
106
+ - Proposed new or updated `$ref` references
107
+ - Rationale for changes (clarity, deduplication, cross-linking, etc.)
108
+ - Any additional user experience or technical writing enhancements
109
+ - Summary of what will be regenerated
110
+
111
+ ## Summary for LLMs
112
+
113
+ When working with Redpanda Connect reference documentation:
114
+
115
+ 1. Read `docs-data/overrides.json` first to understand the current structure
116
+ 2. Make your improvements to the definitions and $ref references
117
+ 3. Update the overrides file using Edit or Write tool
118
+ 4. Use the `generate_rpcn_connector_docs` MCP tool to regenerate documentation
119
+ 5. Explain what was changed and why
120
+
121
+ Critical requirements:
122
+ - Always respect the `$ref` system - don't duplicate descriptions
123
+ - Maintain DRY principles throughout
124
+ - Validate JSON syntax after changes
125
+ - Preserve technical accuracy
126
+ - Ensure all `$ref` references are valid
@@ -0,0 +1,222 @@
1
+ ---
2
+ description: Generate a new tutorial or guide following team templates and style standards. Automatically applies approved terminology and voice/tone guidelines.
3
+ version: 1.0.0
4
+ arguments:
5
+ - name: topic
6
+ description: What the guide should teach (for example, "Configure TLS encryption", "Deploy a three-node cluster")
7
+ required: true
8
+ - name: audience
9
+ description: Target audience (for example, "beginners", "experienced developers", "operators")
10
+ required: false
11
+ argumentFormat: structured
12
+ ---
13
+
14
+ # Write New Documentation Prompt
15
+
16
+ You are writing documentation for the Redpanda documentation team.
17
+
18
+ ## IMPORTANT: Fetch resources first
19
+
20
+ **Before you begin writing**, you MUST:
21
+
22
+ 1. **Fetch the style guide**: Use the MCP `ReadResourceTool` or equivalent to read: `redpanda://style-guide`
23
+ - This contains complete style guide with Google Developer Documentation Style Guide principles
24
+ - You cannot write compliant documentation without this resource
25
+ 2. **Get Antora structure**: Use the `get_antora_structure` MCP tool to understand documentation organization
26
+
27
+ **If you cannot access these resources, inform the user immediately.**
28
+
29
+ ## Additional resources to reference
30
+
31
+ - Official glossary sources for terminology:
32
+ - GitHub: https://github.com/redpanda-data/docs/tree/shared/modules/terms/partials
33
+ - Published: https://docs.redpanda.com/current/reference/glossary/
34
+ - `/lib` directory - Custom AsciiDoc macros and extensions documentation
35
+ - `/extensions` directory - Custom Antora extensions
36
+
37
+ ## Documentation format
38
+
39
+ We use **AsciiDoc** with **Antora**. Key formatting rules:
40
+
41
+ ### Cross-references (CRITICAL)
42
+
43
+ Always include the module name in xrefs, even within the same component:
44
+
45
+ Correct:
46
+ ```asciidoc
47
+ xref:manage:kubernetes/configure-cluster.adoc[Configure your cluster]
48
+ xref:reference:properties/cluster-properties.adoc[Cluster properties]
49
+ ```
50
+
51
+ Never use:
52
+ ```asciidoc
53
+ xref:./configure-cluster.adoc[...] // No relative paths
54
+ xref:configure-cluster.adoc[...] // Missing module
55
+ ```
56
+
57
+ ### Glossary terms (CRITICAL)
58
+
59
+ Use the `glossterm` macro for terms defined in the glossary (first mention in a document):
60
+
61
+ Correct:
62
+ ```asciidoc
63
+ A glossterm:topic[] is divided into glossterm:partition,partitions[]
64
+ The glossterm:broker[] handles data replication
65
+ Configure glossterm:TLS[] encryption for secure communication
66
+ ```
67
+
68
+ Don't link terms manually:
69
+ ```asciidoc
70
+ A xref:reference:glossary.adoc#topic[topic] is divided... // Wrong syntax
71
+ A topic is divided into partitions // Not linked at all
72
+ ```
73
+
74
+ **Glossary terms location**: https://github.com/redpanda-data/docs/tree/shared/modules/terms/partials
75
+
76
+ ### Code blocks
77
+
78
+ Use custom roles for different code block types:
79
+
80
+ **For commands:**
81
+ ```asciidoc
82
+ [source,bash]
83
+ ----
84
+ rpk topic create orders --partitions 3
85
+ ----
86
+ ```
87
+
88
+ **For output (no copy button):**
89
+ ```asciidoc
90
+ [source,bash,role=no-copy]
91
+ ----
92
+ TOPIC STATUS
93
+ orders OK
94
+ ----
95
+ ```
96
+
97
+ **For long code (no wrapping, scrollbar instead):**
98
+ ```asciidoc
99
+ [source,yaml,role=no-wrap]
100
+ ----
101
+ very long configuration here...
102
+ ----
103
+ ```
104
+
105
+ **For code with `<placeholder>` syntax (prevent frontend editing):**
106
+ ```asciidoc
107
+ [source,bash,role=no-placeholders]
108
+ ----
109
+ rpk topic create <topic-name>
110
+ ----
111
+ ```
112
+
113
+ **Combine roles with comma:**
114
+ ```asciidoc
115
+ [source,bash,role="no-copy,no-wrap"]
116
+ ----
117
+ long output here...
118
+ ----
119
+ ```
120
+
121
+ ### Custom macros
122
+
123
+ Check `/lib` and `/extensions` directories for available custom macros before writing. Use them appropriately.
124
+
125
+ ## Writing standards
126
+
127
+ ### Style (from Google Developer Documentation Style Guide)
128
+ - Present tense
129
+ - Active voice
130
+ - Second person ("you")
131
+ - **Sentence case for ALL headings except the title (H1)**
132
+ - H2, H3, H4, etc.: Only capitalize first word and proper nouns
133
+ - Example: "Configure TLS encryption" not "Configure TLS Encryption"
134
+ - Clear, conversational tone
135
+ - **Never use gerunds for instructions** (use imperative: "Create a topic" not "Creating a topic")
136
+
137
+ ### Redpanda-specific
138
+ - Avoid overuse of bold text (only for UI elements, critical warnings)
139
+ - Avoid em dashes (use parentheses or break into sentences)
140
+ - Use realistic examples (no foo/bar placeholders)
141
+
142
+ ### Terminology
143
+ Check the official glossary for approved terms:
144
+ - GitHub: https://github.com/redpanda-data/docs/tree/shared/modules/terms/partials
145
+ - Published: https://docs.redpanda.com/current/reference/glossary/
146
+
147
+ Quick reference:
148
+ - Product names: Redpanda, Redpanda Cloud, Redpanda Console, Redpanda Connect
149
+ - Lowercase concepts: topic, partition, broker, cluster
150
+ - Deprecated terms to avoid: master/slave, whitelist/blacklist, SSL (use TLS)
151
+
152
+ ## Page structure
153
+
154
+ ```asciidoc
155
+ = Page Title
156
+ :description: Brief description
157
+
158
+ Opening paragraph explaining what this page covers.
159
+
160
+ == First Section
161
+
162
+ Content here.
163
+
164
+ === Subsection
165
+
166
+ More content.
167
+ ```
168
+
169
+ ## Code example pattern
170
+
171
+ Provide context, show the command, show the output:
172
+
173
+ ```asciidoc
174
+ Create a topic for order events:
175
+
176
+ [source,bash]
177
+ ----
178
+ rpk topic create orders --partitions 3 --replicas 3
179
+ ----
180
+
181
+ Expected output:
182
+
183
+ [source,bash,role=no-copy]
184
+ ----
185
+ TOPIC STATUS
186
+ orders OK
187
+ ----
188
+ ```
189
+
190
+ ## Instructions format
191
+
192
+ - Correct (imperative):
193
+ - "Create a topic"
194
+ - "Configure TLS"
195
+ - "Deploy the cluster"
196
+
197
+ - Incorrect (gerund):
198
+ - "Creating a topic"
199
+ - "Configuring TLS"
200
+ - "Deploying the cluster"
201
+
202
+ ## Quality checklist
203
+
204
+ - All xrefs include module name
205
+ - Glossary terms use `glossterm` macro on first mention
206
+ - Code blocks use appropriate roles (`.no-copy` for outputs)
207
+ - Custom macros used correctly
208
+ - Terminology follows approved dictionary
209
+ - Voice is clear and conversational
210
+ - No overuse of bold or em dashes
211
+ - Present tense, active voice, second person
212
+ - Imperative form for instructions (no gerunds)
213
+ - Code examples are realistic and tested
214
+
215
+ ---
216
+
217
+ Please provide:
218
+ 1. **Topic**: What to document
219
+ 2. **Type**: Tutorial, concept, reference, or guide
220
+ 3. **Target module** (optional): Where in Antora structure this belongs
221
+
222
+ I'll create documentation following all team standards.
@@ -0,0 +1,321 @@
1
+ # Redpanda Documentation Style Guide
2
+
3
+ ## Base Style Guide
4
+
5
+ This guide is based on the [Google Developer Documentation Style Guide](https://developers.google.com/style). All Google style guidelines apply unless explicitly overridden below.
6
+
7
+ Key Google style principles we emphasize:
8
+
9
+ - Use present tense
10
+ - Use active voice
11
+ - Use second person ("you" instead of "the user")
12
+ - Write in a conversational tone
13
+ - Use sentence case for all headings except the page title
14
+
15
+ ## Redpanda team preferences
16
+
17
+ ### Formatting conventions
18
+
19
+ Avoid overuse of bold text:
20
+ - Use bold sparingly, primarily for UI elements and important warnings
21
+ - Don't bold every important word or phrase
22
+ - Prefer clear writing over heavy formatting
23
+ - Good: "To enable TLS, set the `enable_tls` flag to true"
24
+ - Avoid: "To **enable TLS**, set the **`enable_tls`** flag to **true**"
25
+
26
+ Avoid em dashes:
27
+ - Use parentheses or commas for asides instead of em dashes
28
+ - Use colons to introduce explanations or lists
29
+ - Break long sentences into shorter ones rather than using em dashes
30
+ - Good: "TLS encryption (enabled by default) protects data in transit"
31
+ - Good: "TLS encryption protects data in transit. It's enabled by default"
32
+ - Avoid: "TLS encryption—enabled by default—protects data in transit"
33
+
34
+ ### When bold is appropriate
35
+
36
+ Use bold only for:
37
+
38
+ - UI element names: Click the Start button
39
+ - Important warnings or cautions (sparingly)
40
+ - Glossary terms on first use (optional, if using a glossary system)
41
+
42
+ ### When parentheses are better than em dashes
43
+
44
+ Use parentheses for:
45
+
46
+ - Clarifications or asides
47
+ - Abbreviations: "Transport Layer Security (TLS)"
48
+ - Version numbers or optional information
49
+
50
+ ## Redpanda-specific guidelines
51
+
52
+ ### Voice and tone
53
+
54
+ General principles:
55
+
56
+ - Clear and direct: Use simple, straightforward language
57
+ - Technically accurate: Precision matters, but don't sacrifice clarity
58
+ - Helpful: Anticipate questions and provide context
59
+ - Conversational but professional: Friendly without being casual
60
+ - Action-oriented: Focus on what users can do
61
+
62
+ ### Voice examples
63
+
64
+ Good: "Configure your cluster to use TLS encryption for secure communication."
65
+ Too Casual: "Let's slap some TLS on your cluster!"
66
+ Too Formal: "It is advisable that one should configure the cluster such that TLS encryption protocols are employed."
67
+
68
+ ## Writing standards
69
+
70
+ ### Headings
71
+
72
+ **Title (H1):** Can use title case or sentence case based on content type.
73
+
74
+ **All other headings (H2, H3, H4, etc.):** Use sentence case only.
75
+
76
+ - Capitalize only the first word and proper nouns
77
+ - Make headings descriptive and scannable
78
+ - Use verb phrases for task-based headings
79
+
80
+ Examples:
81
+
82
+ ```asciidoc
83
+ = Page Title Can Use Title Case (H1)
84
+
85
+ == Configure TLS encryption (H2 - sentence case)
86
+
87
+ === Set up certificates (H3 - sentence case)
88
+
89
+ == Deploy a three-node cluster (H2 - sentence case)
90
+ ```
91
+
92
+ Good: "Configure TLS encryption"
93
+ Good: "Deploy a three-node cluster"
94
+ Bad: "Configure TLS Encryption" (don't capitalize "Encryption")
95
+ Bad: "Deploy A Three-Node Cluster" (don't capitalize every word)
96
+ Bad: "TLS" (not descriptive enough)
97
+ Bad: "Configuration" (too vague)
98
+
99
+ ### Lists
100
+
101
+ - Use parallel structure (all items start with same part of speech)
102
+ - Use numbered lists for sequential steps
103
+ - Use bulleted lists for non-sequential items
104
+ - Capitalize the first word of each list item
105
+ - Use periods for complete sentences, omit for fragments
106
+
107
+ ### Code examples
108
+ - Always provide context before code examples
109
+ - Include comments explaining non-obvious behavior
110
+ - Show both the command and expected output when relevant
111
+ - Use realistic examples, not foo/bar placeholders when possible
112
+
113
+ ### Links and cross-references
114
+
115
+ We use AsciiDoc with Antora. Important rules:
116
+
117
+ **Internal links (xref):**
118
+ - Always include the module name, even within the same component
119
+ - Never use relative paths (like `./page.adoc`)
120
+ - Use descriptive link text (never "click here")
121
+
122
+ ```asciidoc
123
+ Good: xref:security:tls-config.adoc[TLS configuration guide]
124
+ Good: xref:manage:kubernetes/configure.adoc[Configure your cluster]
125
+ Bad: xref:./tls-config.adoc[guide] // No relative paths!
126
+ Bad: xref:tls-config.adoc[guide] // Missing module!
127
+ Bad: xref:security:tls-config.adoc[Click here] // Poor link text
128
+ ```
129
+
130
+ **Glossary terms (glossterm macro):**
131
+ - Use the `glossterm` macro to reference terms defined in the glossary
132
+ - Link terms on first mention in a document
133
+ - Glossary terms are in: https://github.com/redpanda-data/docs/tree/shared/modules/terms/partials
134
+
135
+ ```asciidoc
136
+ ✅ Good: A glossterm:topic[] is divided into glossterm:partition[,partitions]
137
+ ✅ Good: The glossterm:broker[] handles data storage
138
+ ❌ Bad: A topic is divided into partitions // Terms not linked
139
+ ```
140
+
141
+ **External links:**
142
+ - Use descriptive link text
143
+ - Include brief context for where the link goes
144
+
145
+ ```asciidoc
146
+ ✅ Good: See the https://kafka.apache.org/documentation/[Apache Kafka documentation]
147
+ ❌ Bad: See https://kafka.apache.org/documentation/[here]
148
+ ```
149
+
150
+ ## Structure standards
151
+
152
+ ### Prerequisites section
153
+ Always include when users need:
154
+ - Specific software installed
155
+ - Prior configuration completed
156
+ - Specific permissions or access
157
+ - Understanding of certain concepts
158
+
159
+ ### Procedure format
160
+ 1. Start with what the user will accomplish
161
+ 2. List prerequisites
162
+ 3. Provide numbered steps
163
+ 4. Include verification steps
164
+ 5. Suggest next steps or related topics
165
+
166
+ ### Examples section
167
+ Include examples that:
168
+ - Cover common use cases
169
+ - Show real-world scenarios
170
+ - Include expected output
171
+ - Explain what's happening
172
+
173
+ ## Terminology
174
+
175
+ ### Official glossary sources
176
+
177
+ Our approved terminology is maintained in these locations:
178
+
179
+ - **GitHub source**: https://github.com/redpanda-data/docs/tree/shared/modules/terms/partials (each term is a separate file)
180
+ - **Published glossary**: https://docs.redpanda.com/current/reference/glossary/
181
+
182
+ **Always reference the official glossary when you need term definitions or approved usage.**
183
+
184
+ ### Quick reference: Common terms
185
+
186
+ Use these as a quick reference, but check the official glossary for complete definitions:
187
+
188
+ **Product names:**
189
+ - Redpanda (never RedPanda or red panda)
190
+ - Redpanda Cloud
191
+ - Redpanda Console
192
+ - Redpanda Connect (formerly Benthos)
193
+ - Kafka (when referring to Apache Kafka)
194
+
195
+ **Kafka concepts (lowercase):**
196
+ - topic
197
+ - partition
198
+ - broker
199
+ - cluster
200
+ - consumer
201
+ - producer
202
+ - leader (not master)
203
+ - replica (not slave)
204
+
205
+ **Security terms:**
206
+ - TLS (not SSL - deprecated)
207
+ - SASL
208
+ - mTLS
209
+ - ACL
210
+ - allowlist (not whitelist - deprecated)
211
+ - denylist (not blacklist - deprecated)
212
+
213
+ **Command names (lowercase):**
214
+ - `rpk`
215
+ - `docker`
216
+ - `kubectl`
217
+
218
+ ### Using the glossterm macro
219
+
220
+ When writing documentation, link to glossary terms using the `glossterm` macro:
221
+
222
+ ```asciidoc
223
+ A glossterm:topic[] is divided into glossterm:partition[,partitions]
224
+ The glossterm:broker[] handles data replication
225
+ ```
226
+
227
+ See the official glossary for the complete list of terms and their definitions.
228
+
229
+ ### Command documentation
230
+ - Show the full command with all required flags
231
+ - Explain what each flag does
232
+ - Provide example output
233
+ - Mention common errors and solutions
234
+
235
+ ### API documentation
236
+ - Start with a one-sentence description
237
+ - Document all parameters (name, type, required/optional, description)
238
+ - Include request and response examples
239
+ - Document error responses
240
+
241
+ ## Accessibility
242
+
243
+ ### Images and diagrams
244
+ - Always include alt text
245
+ - Use diagrams to supplement text, not replace it
246
+ - Describe the diagram in surrounding text
247
+
248
+ ### Structure
249
+ - Use proper heading hierarchy (don't skip levels)
250
+ - One H1 per page
251
+ - Logical heading progression (H2 → H3, never H2 → H4)
252
+
253
+ ### Code blocks
254
+ - Always specify the language for syntax highlighting
255
+ - Include descriptive titles when helpful
256
+ - Ensure code is keyboard-navigable
257
+
258
+ ## Grammar and mechanics
259
+
260
+ ### Active voice
261
+ Prefer active voice over passive voice for clarity.
262
+
263
+ Good: "Redpanda encrypts data at rest"
264
+ Avoid: "Data is encrypted at rest by Redpanda"
265
+
266
+ ### Present tense
267
+ Use present tense for describing how things work.
268
+
269
+ Good: "The broker replicates data across partitions"
270
+ Avoid: "The broker will replicate data across partitions"
271
+
272
+ ### Second person
273
+ Address the reader directly as "you".
274
+
275
+ Good: "You can configure TLS by..."
276
+ Avoid: "Users can configure TLS by..." or "We can configure TLS by..."
277
+
278
+ ### Contractions
279
+ Use contractions sparingly in technical content. Avoid in:
280
+ - Command documentation
281
+ - API references
282
+ - Configuration guides
283
+
284
+ Acceptable in:
285
+ - Tutorials
286
+ - Conceptual overviews
287
+ - Blog-style content
288
+
289
+ ## Error messages and troubleshooting
290
+
291
+ ### Format
292
+ 1. State what went wrong
293
+ 2. Explain why it happened
294
+ 3. Provide specific steps to fix it
295
+
296
+ ### Example
297
+
298
+ ```markdown
299
+ **Problem**: `rpk` returns "connection refused"
300
+
301
+ **Cause**: The Redpanda broker isn't running or isn't accessible on the specified port.
302
+
303
+ **Solution**:
304
+ 1. Verify the broker is running: `systemctl status redpanda`
305
+ 2. Check the broker address: `rpk cluster info`
306
+ 3. Ensure no firewall is blocking port 9092
307
+ ```
308
+
309
+ ## Review checklist
310
+
311
+ Before publishing, verify:
312
+ - [ ] All code examples tested and working
313
+ - [ ] Links are valid and point to correct destinations
314
+ - [ ] Images have alt text
315
+ - [ ] Headings follow hierarchy
316
+ - [ ] Terminology is consistent and correct
317
+ - [ ] Voice and tone are appropriate
318
+ - [ ] Prerequisites are listed
319
+ - [ ] Examples are realistic and helpful
320
+ - [ ] Grammar and spelling are correct
321
+ - [ ] Accessibility standards met