claude-agent-framework 1.0.0
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/README.md +128 -0
- package/bin/claude-framework +3 -0
- package/framework/agents/design-lead.md +240 -0
- package/framework/agents/product-owner.md +179 -0
- package/framework/agents/tech-lead.md +226 -0
- package/framework/commands/ayuda.md +127 -0
- package/framework/commands/a/303/261adir.md +98 -0
- package/framework/commands/backup.md +397 -0
- package/framework/commands/cambiar.md +110 -0
- package/framework/commands/cloud.md +457 -0
- package/framework/commands/code.md +142 -0
- package/framework/commands/debug.md +334 -0
- package/framework/commands/deploy.md +383 -0
- package/framework/commands/deshacer.md +120 -0
- package/framework/commands/estado.md +218 -0
- package/framework/commands/explica.md +227 -0
- package/framework/commands/feature.md +120 -0
- package/framework/commands/git.md +427 -0
- package/framework/commands/historial.md +202 -0
- package/framework/commands/learn.md +408 -0
- package/framework/commands/movil.md +245 -0
- package/framework/commands/nuevo.md +118 -0
- package/framework/commands/plan.md +134 -0
- package/framework/commands/prd.md +113 -0
- package/framework/commands/probar.md +148 -0
- package/framework/commands/revisar.md +208 -0
- package/framework/commands/seeds.md +230 -0
- package/framework/commands/seguridad.md +226 -0
- package/framework/commands/tasks.md +157 -0
- package/framework/skills/architecture/algorithms.md +970 -0
- package/framework/skills/architecture/clean-code.md +1080 -0
- package/framework/skills/architecture/design-patterns.md +1984 -0
- package/framework/skills/architecture/functional-programming.md +972 -0
- package/framework/skills/architecture/solid.md +991 -0
- package/framework/skills/cloud/cloud-aws.md +848 -0
- package/framework/skills/cloud/cloud-azure.md +931 -0
- package/framework/skills/cloud/cloud-gcp.md +848 -0
- package/framework/skills/cloud/message-queues.md +1229 -0
- package/framework/skills/core/accessibility.md +401 -0
- package/framework/skills/core/api.md +474 -0
- package/framework/skills/core/authentication.md +306 -0
- package/framework/skills/core/authorization.md +388 -0
- package/framework/skills/core/background-jobs.md +341 -0
- package/framework/skills/core/caching.md +473 -0
- package/framework/skills/core/code-review.md +341 -0
- package/framework/skills/core/controllers.md +290 -0
- package/framework/skills/core/cua.md +285 -0
- package/framework/skills/core/documentation.md +472 -0
- package/framework/skills/core/file-uploads.md +351 -0
- package/framework/skills/core/hotwire-native.md +296 -0
- package/framework/skills/core/hotwire.md +278 -0
- package/framework/skills/core/i18n.md +334 -0
- package/framework/skills/core/imports-exports.md +750 -0
- package/framework/skills/core/infrastructure.md +337 -0
- package/framework/skills/core/models.md +228 -0
- package/framework/skills/core/notifications.md +672 -0
- package/framework/skills/core/payments.md +581 -0
- package/framework/skills/core/performance.md +361 -0
- package/framework/skills/core/rails-scaffold.md +131 -0
- package/framework/skills/core/search.md +518 -0
- package/framework/skills/core/security.md +565 -0
- package/framework/skills/core/seeds.md +307 -0
- package/framework/skills/core/seo.md +542 -0
- package/framework/skills/core/testing.md +393 -0
- package/framework/skills/core/views.md +260 -0
- package/framework/skills/core/websockets.md +564 -0
- package/framework/skills/data/advanced-sql.md +1204 -0
- package/framework/skills/data/nosql.md +1141 -0
- package/framework/skills/devops/containers-advanced.md +1237 -0
- package/framework/skills/devops/debugging.md +834 -0
- package/framework/skills/devops/git-workflow.md +752 -0
- package/framework/skills/devops/networking.md +932 -0
- package/framework/skills/devops/shell-scripting.md +1132 -0
- package/framework/sub-agents/architecture-patterns-agent.md +1450 -0
- package/framework/sub-agents/cloud-agent.md +677 -0
- package/framework/sub-agents/data.md +504 -0
- package/framework/sub-agents/debugging-agent.md +554 -0
- package/framework/sub-agents/devops.md +483 -0
- package/framework/sub-agents/docs.md +176 -0
- package/framework/sub-agents/frontend-dev.md +349 -0
- package/framework/sub-agents/git-workflow-agent.md +697 -0
- package/framework/sub-agents/integrations.md +630 -0
- package/framework/sub-agents/native-dev.md +434 -0
- package/framework/sub-agents/qa.md +138 -0
- package/framework/sub-agents/rails-dev.md +375 -0
- package/framework/sub-agents/security.md +526 -0
- package/framework/sub-agents/ui.md +437 -0
- package/framework/sub-agents/ux.md +284 -0
- package/framework/templates/api-spec.md +500 -0
- package/framework/templates/component-spec.md +248 -0
- package/framework/templates/feature.json +13 -0
- package/framework/templates/model-spec.md +318 -0
- package/framework/templates/prd-template.md +80 -0
- package/framework/templates/task-plan.md +122 -0
- package/framework/templates/task-user-story.md +52 -0
- package/framework/templates/technical-spec.md +260 -0
- package/framework/templates/user-story.md +95 -0
- package/package.json +42 -0
- package/project-templates/CLAUDE.md +42 -0
- package/project-templates/contexts/architecture.md +25 -0
- package/project-templates/contexts/conventions.md +46 -0
- package/project-templates/contexts/design-system.md +47 -0
- package/project-templates/contexts/requirements.md +38 -0
- package/project-templates/contexts/stack.md +30 -0
- package/project-templates/history/active/models.md +11 -0
- package/project-templates/history/changelog.md +15 -0
- package/project-templates/workspace/.gitkeep +0 -0
- package/src/cli.js +52 -0
- package/src/init.js +104 -0
- package/src/status.js +75 -0
- package/src/update.js +88 -0
|
@@ -0,0 +1,472 @@
|
|
|
1
|
+
# Skill: Documentation
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
Create and maintain clear, useful documentation for both technical and non-technical audiences.
|
|
5
|
+
|
|
6
|
+
## Documentation Types
|
|
7
|
+
|
|
8
|
+
### 1. User Documentation
|
|
9
|
+
For end users who use the application.
|
|
10
|
+
|
|
11
|
+
### 2. Developer Documentation
|
|
12
|
+
For developers who work on the codebase.
|
|
13
|
+
|
|
14
|
+
### 3. API Documentation
|
|
15
|
+
For developers integrating with the API.
|
|
16
|
+
|
|
17
|
+
### 4. Inline Documentation
|
|
18
|
+
Code comments and annotations.
|
|
19
|
+
|
|
20
|
+
## User Documentation
|
|
21
|
+
|
|
22
|
+
### Getting Started Guide
|
|
23
|
+
```markdown
|
|
24
|
+
# Getting Started with [App Name]
|
|
25
|
+
|
|
26
|
+
Welcome! This guide will help you start using [App Name] in just a few minutes.
|
|
27
|
+
|
|
28
|
+
## Creating Your Account
|
|
29
|
+
|
|
30
|
+
1. Go to [app URL]
|
|
31
|
+
2. Click "Sign Up"
|
|
32
|
+
3. Enter your email and choose a password
|
|
33
|
+
4. Check your email for verification link
|
|
34
|
+
5. Click the link to activate your account
|
|
35
|
+
|
|
36
|
+
## Your First [Action]
|
|
37
|
+
|
|
38
|
+
Now that you're logged in, let's create your first [item]:
|
|
39
|
+
|
|
40
|
+
1. Click the "+ New" button
|
|
41
|
+
2. Fill in the details:
|
|
42
|
+
- **Title**: Give it a descriptive name
|
|
43
|
+
- **Description**: Add details (optional)
|
|
44
|
+
3. Click "Create"
|
|
45
|
+
|
|
46
|
+
Congratulations! You've created your first [item].
|
|
47
|
+
|
|
48
|
+
## Next Steps
|
|
49
|
+
|
|
50
|
+
- [Link to feature guide]
|
|
51
|
+
- [Link to advanced features]
|
|
52
|
+
- [Link to FAQ]
|
|
53
|
+
|
|
54
|
+
## Need Help?
|
|
55
|
+
|
|
56
|
+
- Email: support@example.com
|
|
57
|
+
- [Link to help center]
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### Feature Guide
|
|
61
|
+
```markdown
|
|
62
|
+
# [Feature Name] Guide
|
|
63
|
+
|
|
64
|
+
## What is [Feature]?
|
|
65
|
+
|
|
66
|
+
[One paragraph explanation of what this feature does and why it's useful]
|
|
67
|
+
|
|
68
|
+
## How to Use [Feature]
|
|
69
|
+
|
|
70
|
+
### Step 1: [Action]
|
|
71
|
+
[Instructions with screenshot if helpful]
|
|
72
|
+
|
|
73
|
+
### Step 2: [Action]
|
|
74
|
+
[Instructions]
|
|
75
|
+
|
|
76
|
+
## Tips and Best Practices
|
|
77
|
+
|
|
78
|
+
- **Tip 1**: [Helpful advice]
|
|
79
|
+
- **Tip 2**: [Helpful advice]
|
|
80
|
+
|
|
81
|
+
## Frequently Asked Questions
|
|
82
|
+
|
|
83
|
+
**Q: [Common question]?**
|
|
84
|
+
A: [Clear answer]
|
|
85
|
+
|
|
86
|
+
**Q: [Another question]?**
|
|
87
|
+
A: [Clear answer]
|
|
88
|
+
|
|
89
|
+
## Troubleshooting
|
|
90
|
+
|
|
91
|
+
### Problem: [Issue description]
|
|
92
|
+
**Solution**: [How to fix it]
|
|
93
|
+
|
|
94
|
+
### Problem: [Another issue]
|
|
95
|
+
**Solution**: [How to fix it]
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
## Developer Documentation
|
|
99
|
+
|
|
100
|
+
### README.md
|
|
101
|
+
```markdown
|
|
102
|
+
# [Project Name]
|
|
103
|
+
|
|
104
|
+
[One-line description of what the project does]
|
|
105
|
+
|
|
106
|
+
## Requirements
|
|
107
|
+
|
|
108
|
+
- Ruby 3.3+
|
|
109
|
+
- Rails 8.1+
|
|
110
|
+
- SQLite3
|
|
111
|
+
- Node.js 18+ (for assets)
|
|
112
|
+
|
|
113
|
+
## Quick Start
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
# Clone the repository
|
|
117
|
+
git clone https://github.com/user/project.git
|
|
118
|
+
cd project
|
|
119
|
+
|
|
120
|
+
# Install dependencies
|
|
121
|
+
bundle install
|
|
122
|
+
|
|
123
|
+
# Setup database
|
|
124
|
+
rails db:setup
|
|
125
|
+
|
|
126
|
+
# Start the server
|
|
127
|
+
bin/dev
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
Visit http://localhost:3000
|
|
131
|
+
|
|
132
|
+
## Configuration
|
|
133
|
+
|
|
134
|
+
Copy the example environment file:
|
|
135
|
+
|
|
136
|
+
```bash
|
|
137
|
+
cp .env.example .env
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
Configure the following variables:
|
|
141
|
+
- `SECRET_KEY_BASE`: Rails secret key
|
|
142
|
+
- `DATABASE_URL`: Database connection string (optional)
|
|
143
|
+
|
|
144
|
+
## Testing
|
|
145
|
+
|
|
146
|
+
```bash
|
|
147
|
+
# Run all tests
|
|
148
|
+
bundle exec rspec
|
|
149
|
+
|
|
150
|
+
# Run specific tests
|
|
151
|
+
bundle exec rspec spec/models
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
## Deployment
|
|
155
|
+
|
|
156
|
+
See [DEPLOYMENT.md](DEPLOYMENT.md) for deployment instructions.
|
|
157
|
+
|
|
158
|
+
## Contributing
|
|
159
|
+
|
|
160
|
+
See [CONTRIBUTING.md](CONTRIBUTING.md) for contribution guidelines.
|
|
161
|
+
|
|
162
|
+
## License
|
|
163
|
+
|
|
164
|
+
[License name] - see [LICENSE](LICENSE) for details.
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
### Architecture Documentation
|
|
168
|
+
```markdown
|
|
169
|
+
# Architecture Overview
|
|
170
|
+
|
|
171
|
+
## System Architecture
|
|
172
|
+
|
|
173
|
+
```
|
|
174
|
+
┌─────────────────────────────────────────────────┐
|
|
175
|
+
│ Client │
|
|
176
|
+
│ (Browser / Mobile App via Hotwire Native) │
|
|
177
|
+
└─────────────────────┬───────────────────────────┘
|
|
178
|
+
│ HTTPS
|
|
179
|
+
┌─────────────────────▼───────────────────────────┐
|
|
180
|
+
│ Rails App │
|
|
181
|
+
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
|
|
182
|
+
│ │Controllers│ │ Models │ │ Views │ │
|
|
183
|
+
│ └──────────┘ └──────────┘ └──────────┘ │
|
|
184
|
+
│ │ │
|
|
185
|
+
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
|
|
186
|
+
│ │ Hotwire │ │Background │ │ Mailers │ │
|
|
187
|
+
│ │(Turbo/ │ │ Jobs │ │ │ │
|
|
188
|
+
│ │ Stimulus)│ │ │ │ │ │
|
|
189
|
+
│ └──────────┘ └──────────┘ └──────────┘ │
|
|
190
|
+
└─────────────────────┬───────────────────────────┘
|
|
191
|
+
│
|
|
192
|
+
┌─────────────────────▼───────────────────────────┐
|
|
193
|
+
│ SQLite Database │
|
|
194
|
+
└─────────────────────────────────────────────────┘
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
## Key Components
|
|
198
|
+
|
|
199
|
+
### Models
|
|
200
|
+
- `User` - Authentication and user data
|
|
201
|
+
- `Article` - Main content entity
|
|
202
|
+
- `Comment` - User-generated comments
|
|
203
|
+
|
|
204
|
+
### Controllers
|
|
205
|
+
- RESTful design following Rails conventions
|
|
206
|
+
- Authentication via Rails 8 built-in auth
|
|
207
|
+
- Authorization via Pundit policies
|
|
208
|
+
|
|
209
|
+
### Views
|
|
210
|
+
- ERB templates with Tailwind CSS
|
|
211
|
+
- Hotwire (Turbo + Stimulus) for interactivity
|
|
212
|
+
- Mobile-first responsive design
|
|
213
|
+
|
|
214
|
+
## Data Flow
|
|
215
|
+
|
|
216
|
+
1. User makes request
|
|
217
|
+
2. Router directs to controller
|
|
218
|
+
3. Controller loads data via model
|
|
219
|
+
4. Model queries database
|
|
220
|
+
5. Controller renders view
|
|
221
|
+
6. View returns HTML (or Turbo Stream)
|
|
222
|
+
7. Browser updates DOM
|
|
223
|
+
|
|
224
|
+
## Background Jobs
|
|
225
|
+
|
|
226
|
+
Using Solid Queue for:
|
|
227
|
+
- Email delivery
|
|
228
|
+
- Data exports
|
|
229
|
+
- Scheduled tasks
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
## API Documentation
|
|
233
|
+
|
|
234
|
+
### Endpoint Documentation
|
|
235
|
+
```markdown
|
|
236
|
+
# API Reference
|
|
237
|
+
|
|
238
|
+
## Authentication
|
|
239
|
+
|
|
240
|
+
All API requests require authentication via Bearer token.
|
|
241
|
+
|
|
242
|
+
```
|
|
243
|
+
Authorization: Bearer <your-api-token>
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
Get your API token from Settings > API Access.
|
|
247
|
+
|
|
248
|
+
---
|
|
249
|
+
|
|
250
|
+
## Articles
|
|
251
|
+
|
|
252
|
+
### List Articles
|
|
253
|
+
|
|
254
|
+
```
|
|
255
|
+
GET /api/v1/articles
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
**Parameters**
|
|
259
|
+
|
|
260
|
+
| Name | Type | Required | Description |
|
|
261
|
+
|------|------|----------|-------------|
|
|
262
|
+
| page | integer | No | Page number (default: 1) |
|
|
263
|
+
| per_page | integer | No | Items per page (default: 20, max: 100) |
|
|
264
|
+
| published | boolean | No | Filter by published status |
|
|
265
|
+
|
|
266
|
+
**Response**
|
|
267
|
+
|
|
268
|
+
```json
|
|
269
|
+
{
|
|
270
|
+
"articles": [
|
|
271
|
+
{
|
|
272
|
+
"id": 1,
|
|
273
|
+
"title": "Article Title",
|
|
274
|
+
"published": true,
|
|
275
|
+
"created_at": "2024-01-15T10:30:00Z",
|
|
276
|
+
"author": {
|
|
277
|
+
"id": 5,
|
|
278
|
+
"name": "John Doe"
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
],
|
|
282
|
+
"meta": {
|
|
283
|
+
"current_page": 1,
|
|
284
|
+
"total_pages": 5,
|
|
285
|
+
"total_count": 100
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
---
|
|
291
|
+
|
|
292
|
+
### Get Article
|
|
293
|
+
|
|
294
|
+
```
|
|
295
|
+
GET /api/v1/articles/:id
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
**Response**
|
|
299
|
+
|
|
300
|
+
```json
|
|
301
|
+
{
|
|
302
|
+
"article": {
|
|
303
|
+
"id": 1,
|
|
304
|
+
"title": "Article Title",
|
|
305
|
+
"body": "Full article content...",
|
|
306
|
+
"published": true,
|
|
307
|
+
"created_at": "2024-01-15T10:30:00Z",
|
|
308
|
+
"author": {
|
|
309
|
+
"id": 5,
|
|
310
|
+
"name": "John Doe"
|
|
311
|
+
},
|
|
312
|
+
"comments_count": 12
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
```
|
|
316
|
+
|
|
317
|
+
---
|
|
318
|
+
|
|
319
|
+
### Create Article
|
|
320
|
+
|
|
321
|
+
```
|
|
322
|
+
POST /api/v1/articles
|
|
323
|
+
```
|
|
324
|
+
|
|
325
|
+
**Request Body**
|
|
326
|
+
|
|
327
|
+
```json
|
|
328
|
+
{
|
|
329
|
+
"article": {
|
|
330
|
+
"title": "New Article",
|
|
331
|
+
"body": "Article content...",
|
|
332
|
+
"published": false
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
```
|
|
336
|
+
|
|
337
|
+
**Response** (201 Created)
|
|
338
|
+
|
|
339
|
+
```json
|
|
340
|
+
{
|
|
341
|
+
"article": {
|
|
342
|
+
"id": 2,
|
|
343
|
+
"title": "New Article",
|
|
344
|
+
...
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
```
|
|
348
|
+
|
|
349
|
+
---
|
|
350
|
+
|
|
351
|
+
## Error Responses
|
|
352
|
+
|
|
353
|
+
### 400 Bad Request
|
|
354
|
+
```json
|
|
355
|
+
{
|
|
356
|
+
"error": "Missing required parameter: title"
|
|
357
|
+
}
|
|
358
|
+
```
|
|
359
|
+
|
|
360
|
+
### 401 Unauthorized
|
|
361
|
+
```json
|
|
362
|
+
{
|
|
363
|
+
"error": "Invalid or missing API token"
|
|
364
|
+
}
|
|
365
|
+
```
|
|
366
|
+
|
|
367
|
+
### 422 Unprocessable Entity
|
|
368
|
+
```json
|
|
369
|
+
{
|
|
370
|
+
"error": "Validation failed",
|
|
371
|
+
"details": [
|
|
372
|
+
"Title can't be blank",
|
|
373
|
+
"Body is too short (minimum is 10 characters)"
|
|
374
|
+
]
|
|
375
|
+
}
|
|
376
|
+
```
|
|
377
|
+
```
|
|
378
|
+
|
|
379
|
+
## Inline Documentation
|
|
380
|
+
|
|
381
|
+
### Ruby/Rails Comments
|
|
382
|
+
```ruby
|
|
383
|
+
# Processes payment for the given order.
|
|
384
|
+
#
|
|
385
|
+
# @param order [Order] the order to process payment for
|
|
386
|
+
# @param payment_method [String] the payment method ('card', 'bank')
|
|
387
|
+
# @return [PaymentResult] result object with success status and transaction ID
|
|
388
|
+
# @raise [PaymentError] if payment processing fails
|
|
389
|
+
#
|
|
390
|
+
# @example
|
|
391
|
+
# result = PaymentService.process(order, 'card')
|
|
392
|
+
# if result.success?
|
|
393
|
+
# redirect_to success_path
|
|
394
|
+
# end
|
|
395
|
+
#
|
|
396
|
+
def self.process(order, payment_method)
|
|
397
|
+
# Implementation
|
|
398
|
+
end
|
|
399
|
+
```
|
|
400
|
+
|
|
401
|
+
### Complex Logic Comments
|
|
402
|
+
```ruby
|
|
403
|
+
def calculate_discount(order)
|
|
404
|
+
# Apply tiered discount based on order total:
|
|
405
|
+
# - Orders over $100: 10% off
|
|
406
|
+
# - Orders over $200: 15% off
|
|
407
|
+
# - Orders over $500: 20% off
|
|
408
|
+
# Note: Discount is applied before tax calculation
|
|
409
|
+
discount_rate = case order.subtotal
|
|
410
|
+
when 500.. then 0.20
|
|
411
|
+
when 200..499.99 then 0.15
|
|
412
|
+
when 100..199.99 then 0.10
|
|
413
|
+
else 0
|
|
414
|
+
end
|
|
415
|
+
|
|
416
|
+
order.subtotal * discount_rate
|
|
417
|
+
end
|
|
418
|
+
```
|
|
419
|
+
|
|
420
|
+
## Changelog
|
|
421
|
+
|
|
422
|
+
### CHANGELOG.md Format
|
|
423
|
+
```markdown
|
|
424
|
+
# Changelog
|
|
425
|
+
|
|
426
|
+
All notable changes to this project will be documented in this file.
|
|
427
|
+
|
|
428
|
+
## [Unreleased]
|
|
429
|
+
|
|
430
|
+
### Added
|
|
431
|
+
- New feature description
|
|
432
|
+
|
|
433
|
+
### Changed
|
|
434
|
+
- Change description
|
|
435
|
+
|
|
436
|
+
### Fixed
|
|
437
|
+
- Bug fix description
|
|
438
|
+
|
|
439
|
+
## [1.2.0] - 2024-01-15
|
|
440
|
+
|
|
441
|
+
### Added
|
|
442
|
+
- User profile pictures
|
|
443
|
+
- Dark mode support
|
|
444
|
+
|
|
445
|
+
### Changed
|
|
446
|
+
- Improved search performance
|
|
447
|
+
- Updated email templates
|
|
448
|
+
|
|
449
|
+
### Fixed
|
|
450
|
+
- Fixed login redirect issue
|
|
451
|
+
- Fixed mobile navigation bug
|
|
452
|
+
|
|
453
|
+
## [1.1.0] - 2024-01-01
|
|
454
|
+
|
|
455
|
+
### Added
|
|
456
|
+
- Comment system for articles
|
|
457
|
+
- Email notifications
|
|
458
|
+
|
|
459
|
+
[Unreleased]: https://github.com/user/repo/compare/v1.2.0...HEAD
|
|
460
|
+
[1.2.0]: https://github.com/user/repo/compare/v1.1.0...v1.2.0
|
|
461
|
+
[1.1.0]: https://github.com/user/repo/releases/tag/v1.1.0
|
|
462
|
+
```
|
|
463
|
+
|
|
464
|
+
## Best Practices
|
|
465
|
+
|
|
466
|
+
1. **Write for your audience** - Adjust language and detail level
|
|
467
|
+
2. **Keep it updated** - Outdated docs are worse than no docs
|
|
468
|
+
3. **Use examples** - Show, don't just tell
|
|
469
|
+
4. **Be concise** - Respect readers' time
|
|
470
|
+
5. **Structure for scanning** - Headers, lists, code blocks
|
|
471
|
+
6. **Link related content** - Help users find more info
|
|
472
|
+
7. **Include troubleshooting** - Address common problems
|