@redpanda-data/docs-extensions-and-macros 4.13.0 → 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.
- package/mcp/CLI_INTERFACE.adoc +384 -0
- package/mcp/COSTS.adoc +167 -0
- package/mcp/DEVELOPMENT.adoc +726 -0
- package/mcp/README.adoc +172 -0
- package/mcp/USER_GUIDE.adoc +1392 -0
- package/mcp/WRITER_EXTENSION_GUIDE.adoc +814 -0
- package/mcp/prompts/README.adoc +183 -0
- package/mcp/prompts/property-docs-guide.md +283 -0
- package/mcp/prompts/review-for-style.md +128 -0
- package/mcp/prompts/rpcn-connector-docs-guide.md +126 -0
- package/mcp/prompts/write-new-guide.md +222 -0
- package/mcp/team-standards/style-guide.md +321 -0
- package/mcp/templates/README.adoc +212 -0
- package/mcp/templates/prompt-review-template.md +80 -0
- package/mcp/templates/prompt-write-template.md +110 -0
- package/mcp/templates/resource-template.md +76 -0
- package/package.json +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
|