@brainfish-ai/devdoc 0.1.32 → 0.1.34

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 (35) hide show
  1. package/ai-agents/.claude/skills/blame-doc/SKILL.md +171 -0
  2. package/ai-agents/.claude/skills/bootstrap-docs/SKILL.md +519 -64
  3. package/ai-agents/.claude/skills/check-docs/SKILL.md +107 -12
  4. package/ai-agents/.claude/skills/commit-doc/SKILL.md +214 -0
  5. package/ai-agents/.claude/skills/create-doc/SKILL.md +198 -0
  6. package/ai-agents/.claude/skills/delete-doc/SKILL.md +164 -0
  7. package/ai-agents/.claude/skills/update-doc/SKILL.md +219 -0
  8. package/ai-agents/.cursor/rules/devdoc-blame.mdc +114 -0
  9. package/ai-agents/.cursor/rules/devdoc-bootstrap.mdc +207 -41
  10. package/ai-agents/.cursor/rules/devdoc-commit.mdc +103 -0
  11. package/ai-agents/.cursor/rules/devdoc-create.mdc +89 -0
  12. package/ai-agents/.cursor/rules/devdoc-delete.mdc +101 -0
  13. package/ai-agents/.cursor/rules/devdoc-update.mdc +95 -0
  14. package/ai-agents/.devdoc/context.json +66 -0
  15. package/ai-agents/.devdoc/templates/api-reference.md +211 -0
  16. package/ai-agents/.devdoc/templates/guide.md +133 -0
  17. package/ai-agents/.devdoc/templates/quickstart.md +179 -0
  18. package/ai-agents/.devdoc/templates/troubleshooting.md +215 -0
  19. package/ai-agents/.devdoc/templates/tutorial.md +212 -0
  20. package/ai-agents/CLAUDE.md +15 -3
  21. package/ai-agents/schemas/context.schema.json +259 -0
  22. package/dist/cli/commands/ai.d.ts +1 -0
  23. package/dist/cli/commands/ai.js +115 -46
  24. package/dist/cli/commands/create.d.ts +12 -0
  25. package/dist/cli/commands/create.js +110 -62
  26. package/dist/cli/commands/init.js +11 -7
  27. package/dist/cli/index.js +4 -2
  28. package/package.json +1 -1
  29. package/renderer/components/docs-viewer/sidebar/index.tsx +118 -87
  30. package/ai-agents/.claude/skills/create-doc-page/SKILL.md +0 -57
  31. package/ai-agents/.claude/skills/docs-from-code/SKILL.md +0 -73
  32. package/ai-agents/.claude/skills/generate-api-docs/SKILL.md +0 -94
  33. package/ai-agents/.claude/skills/sync-docs/SKILL.md +0 -112
  34. package/ai-agents/.claude/skills/update-docs-json/SKILL.md +0 -60
  35. package/ai-agents/.cursor/rules/devdoc-sync.mdc +0 -70
@@ -1,102 +1,557 @@
1
1
  ---
2
2
  name: bootstrap-docs
3
- description: Analyze repository and generate complete initial documentation structure
3
+ description: Analyze repository and generate documentation. Creates context memory for consistent AI assistance.
4
4
  ---
5
5
 
6
6
  ## Instructions
7
7
 
8
8
  When bootstrapping documentation from a repository:
9
9
 
10
- ### Step 1: Analyze Repository Structure
10
+ ### Step 1: Check Context Memory
11
11
 
12
- Scan and identify:
13
- - `README.md` - Project overview, installation, usage
14
- - `package.json` / `Cargo.toml` / `pyproject.toml` - Dependencies, scripts, metadata
15
- - `src/` or `lib/` - Main source code structure
16
- - `api/` or `routes/` - API endpoints (REST, GraphQL)
17
- - `components/` - UI components (React, Vue, etc.)
18
- - `docs/` - Existing documentation
19
- - `.env.example` - Environment variables
20
- - `docker-compose.yml` / `Dockerfile` - Deployment info
21
- - `openapi.json` / `swagger.yaml` - API specifications
22
- - `schema.graphql` - GraphQL schemas
12
+ **First, check if `.devdoc/context.json` exists:**
23
13
 
24
- ### Step 2: Generate Documentation Structure
14
+ **If context.json exists and is populated:**
15
+ - Read the context file
16
+ - Tell user: "Found existing product context. Using saved configuration."
17
+ - Skip to Step 5 (Generate Documentation)
25
18
 
26
- Create the following based on what's found:
19
+ **If context.json is empty or doesn't exist:**
20
+ - Proceed to Step 2 (Discovery Flow)
21
+
22
+ ### Step 2: Discovery Flow (Context Creation)
23
+
24
+ #### 2a. Detect Project Structure
25
+
26
+ **If `docs.json` exists in current directory:**
27
+ - You're in a DevDoc docs folder
28
+ - Source code is likely in `../` (parent directory)
29
+
30
+ **If `package.json` and `src/` exist:**
31
+ - You're at repo root
32
+ - Create docs in `./docs/` subfolder
33
+
34
+ **If neither matches:**
35
+ - Ask user for the source code path
36
+
37
+ #### 2b. Scan for Existing API Specs
38
+
39
+ **Search for OpenAPI specs:**
40
+ ```
41
+ openapi.json, openapi.yaml, openapi.yml
42
+ swagger.json, swagger.yaml, swagger.yml
43
+ api-spec.json, api-spec.yaml
44
+ **/openapi.*, **/swagger.*
45
+ ```
46
+
47
+ **Search for GraphQL schemas:**
48
+ ```
49
+ schema.graphql, schema.gql
50
+ *.graphql, *.gql
51
+ **/schema.graphql
52
+ ```
53
+
54
+ **If found, store the paths for later use.**
55
+
56
+ #### 2c. Auto-Discover Information
57
+
58
+ Scan the repository and extract:
59
+
60
+ ```
61
+ From README.md:
62
+ - Product name
63
+ - Description
64
+ - Key features
65
+
66
+ From package.json / pyproject.toml / Cargo.toml:
67
+ - Primary language
68
+ - Framework (from dependencies)
69
+ - Project type (library, cli, api, etc.)
70
+
71
+ From OpenAPI spec (if exists):
72
+ - API style: REST
73
+ - Base URL
74
+ - Authentication type
75
+ - Endpoints count
76
+ - Common patterns
77
+
78
+ From GraphQL schema (if exists):
79
+ - API style: GraphQL
80
+ - Types count
81
+ - Queries/Mutations
82
+
83
+ From source code structure:
84
+ - Key directories
85
+ - Naming conventions
86
+ ```
87
+
88
+ #### 2d. Ask Key Questions
89
+
90
+ After auto-discovery, ask the user to confirm/provide:
91
+
92
+ **Question 1: Documentation Type**
93
+ "What type of documentation are you creating?
94
+ 1. **internal** - For your team: setup guides, architecture, contribution guidelines
95
+ 2. **api** - For developers using your product: API reference, SDKs, integration guides
96
+ 3. **product** - For end users: feature guides, tutorials, FAQs"
97
+
98
+ ---
99
+
100
+ **Question 2: Import Existing API Spec (if detected)**
101
+
102
+ **If OpenAPI spec found:**
103
+ "I found an OpenAPI specification at `{path}`:
104
+ - {endpoint_count} endpoints
105
+ - Base URL: {base_url}
106
+ - Auth: {auth_type}
107
+
108
+ Would you like me to:
109
+ 1. **Import it** - Copy to `api-reference/openapi.json` and generate API Reference tab
110
+ 2. **Reference it** - Point docs.json to existing location: `{path}`
111
+ 3. **Skip** - Don't include API reference (I'll create manual docs instead)"
112
+
113
+ **If GraphQL schema found:**
114
+ "I found a GraphQL schema at `{path}`:
115
+ - {types_count} types
116
+ - {queries_count} queries
117
+ - {mutations_count} mutations
118
+
119
+ Would you like me to:
120
+ 1. **Import it** - Copy to `api-reference/schema.graphql` and generate GraphQL tab
121
+ 2. **Reference it** - Point docs.json to existing location: `{path}`
122
+ 3. **Skip** - Don't include GraphQL playground"
123
+
124
+ **If multiple specs found:**
125
+ "I found multiple API specifications:
126
+ - OpenAPI: `{openapi_path}`
127
+ - GraphQL: `{graphql_path}`
128
+
129
+ Which would you like to use for the API Reference?
130
+ 1. **OpenAPI (REST)** - Interactive REST API playground
131
+ 2. **GraphQL** - GraphQL playground with schema explorer
132
+ 3. **Both** - Create separate tabs for each
133
+ 4. **Skip** - Manual documentation only"
134
+
135
+ ---
136
+
137
+ **Question 3: Target Audience**
138
+ "Who is your primary audience?
139
+ (e.g., 'Backend developers integrating our payment API', 'Internal engineering team', 'Non-technical business users')"
140
+
141
+ **Question 4: Terminology (optional)**
142
+ "Any specific terminology I should know? For example:
143
+ - Brand names with specific capitalization
144
+ - Terms to avoid or prefer
145
+ - Domain-specific vocabulary
146
+
147
+ (Press Enter to skip)"
148
+
149
+ **Question 5: Code Examples**
150
+ "What language should I use for code examples?
151
+ (e.g., TypeScript, Python, curl)"
152
+
153
+ #### 2e. Create Context Memory
154
+
155
+ Create `.devdoc/` folder and `context.json` with discovered + user info:
156
+
157
+ ```json
158
+ {
159
+ "$schema": "https://devdoc.sh/schemas/context.json",
160
+ "version": "1.0",
161
+ "lastUpdated": "2026-01-24T10:30:00Z",
162
+ "product": {
163
+ "name": "[from README/package.json]",
164
+ "description": "[from README]",
165
+ "type": "[api/sdk/platform/cli/library]",
166
+ "domain": "[inferred or asked]",
167
+ "targetAudience": "[from Question 3]",
168
+ "keyFeatures": ["[from README]"]
169
+ },
170
+ "terminology": {
171
+ "glossary": {},
172
+ "avoidTerms": [],
173
+ "brandNames": {}
174
+ },
175
+ "api": {
176
+ "style": "[REST/GraphQL/etc if detected]",
177
+ "specPath": "[path to imported/referenced spec]",
178
+ "baseUrl": "[from OpenAPI if found]",
179
+ "authentication": {
180
+ "type": "[from OpenAPI if found]",
181
+ "headerName": "",
182
+ "description": ""
183
+ },
184
+ "conventions": {},
185
+ "commonPatterns": []
186
+ },
187
+ "codebase": {
188
+ "language": "[from package.json]",
189
+ "framework": "[from dependencies]",
190
+ "sourceLocation": "../"
191
+ },
192
+ "documentation": {
193
+ "voice": "[based on docType]",
194
+ "perspective": "second_person",
195
+ "codeExamples": {
196
+ "primaryLanguage": "[from Question 5]",
197
+ "additionalLanguages": []
198
+ },
199
+ "templates": {
200
+ "guide": ".devdoc/templates/guide.md",
201
+ "apiReference": ".devdoc/templates/api-reference.md",
202
+ "tutorial": ".devdoc/templates/tutorial.md",
203
+ "quickstart": ".devdoc/templates/quickstart.md",
204
+ "troubleshooting": ".devdoc/templates/troubleshooting.md"
205
+ }
206
+ },
207
+ "learned": {
208
+ "insights": [],
209
+ "corrections": []
210
+ }
211
+ }
212
+ ```
213
+
214
+ Also copy template files to `.devdoc/templates/` if they don't exist.
215
+
216
+ Tell user:
217
+ "Created product context in `.devdoc/context.json`
218
+ - Product: {name}
219
+ - Type: {docType}
220
+ - API: {REST/GraphQL} (imported from {spec_path})
221
+ - Audience: {targetAudience}
222
+ - Code examples: {primaryLanguage}
223
+
224
+ This context will be used for consistent documentation generation."
225
+
226
+ ### Step 3: Import API Spec (if selected)
227
+
228
+ **For OpenAPI (Import option):**
229
+ 1. Copy spec to `api-reference/openapi.json` (or `.yaml`)
230
+ 2. Validate the spec is valid OpenAPI 3.x
231
+ 3. Extract key info for context.json
232
+
233
+ **For OpenAPI (Reference option):**
234
+ 1. Note the relative path for docs.json
235
+ 2. Extract key info for context.json
236
+
237
+ **For GraphQL (Import option):**
238
+ 1. Copy schema to `api-reference/schema.graphql`
239
+ 2. Validate the schema
240
+ 3. Extract types/queries/mutations for context
241
+
242
+ **For GraphQL (Reference option):**
243
+ 1. Note the relative path for docs.json
244
+ 2. Extract schema info for context
245
+
246
+ ### Step 4: Update docs.json with API Reference
247
+
248
+ **Read existing `docs.json` or create new one.**
249
+
250
+ Add the `docType` field and API reference tab:
251
+
252
+ **For OpenAPI:**
253
+ ```json
254
+ {
255
+ "name": "Project Name",
256
+ "docType": "api",
257
+ "navigation": {
258
+ "tabs": [
259
+ {
260
+ "tab": "Guides",
261
+ "groups": [...]
262
+ },
263
+ {
264
+ "tab": "API Reference",
265
+ "type": "openapi",
266
+ "spec": "api-reference/openapi.json"
267
+ }
268
+ ]
269
+ }
270
+ }
271
+ ```
272
+
273
+ **For GraphQL:**
274
+ ```json
275
+ {
276
+ "name": "Project Name",
277
+ "docType": "api",
278
+ "navigation": {
279
+ "tabs": [
280
+ {
281
+ "tab": "Guides",
282
+ "groups": [...]
283
+ },
284
+ {
285
+ "tab": "GraphQL API",
286
+ "type": "graphql",
287
+ "schema": "api-reference/schema.graphql",
288
+ "endpoint": "https://api.example.com/graphql"
289
+ }
290
+ ]
291
+ }
292
+ }
293
+ ```
294
+
295
+ **For Both:**
296
+ ```json
297
+ {
298
+ "navigation": {
299
+ "tabs": [
300
+ { "tab": "Guides", "groups": [...] },
301
+ { "tab": "REST API", "type": "openapi", "spec": "api-reference/openapi.json" },
302
+ { "tab": "GraphQL API", "type": "graphql", "schema": "api-reference/schema.graphql" }
303
+ ]
304
+ }
305
+ }
306
+ ```
307
+
308
+ Tell user: "Configured API Reference with {spec_type} from {path}"
309
+
310
+ ### Step 5: Generate Documentation
311
+
312
+ **Read context from `.devdoc/context.json` before generating.**
313
+
314
+ **Read the appropriate template** from `.devdoc/templates/` for each page type:
315
+ - For guides: read `.devdoc/templates/guide.md`
316
+ - For API reference: read `.devdoc/templates/api-reference.md`
317
+ - For quickstart: read `.devdoc/templates/quickstart.md`
318
+ - For tutorials: read `.devdoc/templates/tutorial.md`
319
+
320
+ **Apply context throughout:**
321
+ - Use correct product name from `product.name`
322
+ - Use terminology from `terminology.glossary`
323
+ - Avoid terms from `terminology.avoidTerms`
324
+ - Use code language from `documentation.codeExamples.primaryLanguage`
325
+ - Match voice from `documentation.voice`
326
+ - Reference API spec path from `api.specPath`
327
+
328
+ ---
329
+
330
+ ## docType: "internal"
331
+
332
+ For internal team documentation, create:
27
333
 
28
334
  ```
29
335
  docs/
30
- ├── docs.json # Navigation config
31
- ├── index.mdx # Homepage (from README)
32
- ├── quickstart.mdx # Getting started guide
33
- ├── installation.mdx # Installation instructions
34
- ├── configuration.mdx # Environment/config setup
336
+ ├── .devdoc/
337
+ ├── context.json
338
+ │ └── templates/
339
+ ├── docs.json
340
+ ├── index.mdx # Project overview
341
+ ├── getting-started/
342
+ │ ├── setup.mdx # Dev environment setup
343
+ │ ├── prerequisites.mdx # Required tools/versions
344
+ │ └── first-contribution.mdx
345
+ ├── architecture/
346
+ │ ├── overview.mdx # System architecture
347
+ │ ├── folder-structure.mdx
348
+ │ └── decisions.mdx # ADRs, design decisions
349
+ ├── development/
350
+ │ ├── workflow.mdx # Git workflow, PR process
351
+ │ ├── testing.mdx # How to run/write tests
352
+ │ ├── debugging.mdx # Common issues, debugging tips
353
+ │ └── deployment.mdx # How to deploy
354
+ ├── api/ # Internal API docs (if applicable)
355
+ │ └── ...
356
+ └── contributing.mdx # Contribution guidelines
357
+ ```
358
+
359
+ **Content focus:**
360
+ - How to set up local development
361
+ - Codebase architecture and patterns
362
+ - Internal APIs and services
363
+ - Debugging and troubleshooting
364
+ - Team conventions and standards
365
+
366
+ **Voice:** Technical, direct, assumes familiarity with codebase
367
+
368
+ ---
369
+
370
+ ## docType: "api"
371
+
372
+ For external developers using your API/SDK, create:
373
+
374
+ ```
375
+ docs/
376
+ ├── .devdoc/
377
+ │ ├── context.json
378
+ │ └── templates/
379
+ ├── docs.json
380
+ ├── index.mdx # Product intro, value prop
381
+ ├── quickstart.mdx # 5-minute getting started
382
+ ├── authentication.mdx # Auth setup (API keys, OAuth)
35
383
  ├── guides/
36
- │ ├── overview.mdx # Architecture overview
37
- │ └── {feature}.mdx # Feature-specific guides
384
+ │ ├── overview.mdx # Concepts overview
385
+ │ └── {use-case}.mdx # Common use case tutorials
38
386
  ├── api-reference/
39
- │ ├── introduction.mdx # API overview
40
- │ ├── authentication.mdx # Auth guide
41
- └── openapi.json # (if found/generated)
42
- ├── components/ # (if UI library)
43
- │ └── {component}.mdx
44
- └── deployment.mdx # Deployment guide
387
+ │ ├── introduction.mdx # API overview, base URL, versioning
388
+ │ ├── authentication.mdx # Auth details
389
+ ├── errors.mdx # Error codes and handling
390
+ ├── openapi.json # Full API spec (if imported)
391
+ │ └── schema.graphql # GraphQL schema (if imported)
392
+ ├── sdks/ # If SDKs exist
393
+ │ ├── javascript.mdx
394
+ │ ├── python.mdx
395
+ │ └── ...
396
+ ├── webhooks.mdx # If webhooks exist
397
+ └── changelog.mdx # API changelog
398
+ ```
399
+
400
+ **Content focus:**
401
+ - Quick time-to-first-API-call
402
+ - Authentication and authorization
403
+ - API reference with examples
404
+ - SDKs and client libraries
405
+ - Error handling and troubleshooting
406
+ - Rate limits and best practices
407
+
408
+ **Voice:** Professional, helpful, code-focused
409
+
410
+ ---
411
+
412
+ ## docType: "product"
413
+
414
+ For end users of your product, create:
415
+
45
416
  ```
417
+ docs/
418
+ ├── .devdoc/
419
+ │ ├── context.json
420
+ │ └── templates/
421
+ ├── docs.json
422
+ ├── index.mdx # Product overview
423
+ ├── getting-started/
424
+ │ ├── quickstart.mdx # First steps
425
+ │ ├── account-setup.mdx # Account creation, onboarding
426
+ │ └── key-concepts.mdx # Core concepts explained
427
+ ├── features/
428
+ │ ├── {feature-1}.mdx # Feature guides
429
+ │ ├── {feature-2}.mdx
430
+ │ └── ...
431
+ ├── tutorials/
432
+ │ ├── {workflow-1}.mdx # Step-by-step tutorials
433
+ │ └── ...
434
+ ├── integrations/ # If integrations exist
435
+ │ └── ...
436
+ ├── troubleshooting/
437
+ │ ├── common-issues.mdx
438
+ │ └── faq.mdx
439
+ └── release-notes.mdx # What's new
440
+ ```
441
+
442
+ **Content focus:**
443
+ - Non-technical language (minimal code)
444
+ - Screenshots and visual guides
445
+ - Step-by-step tutorials
446
+ - Use case focused
447
+ - FAQs and troubleshooting
448
+ - Feature explanations
46
449
 
47
- ### Step 3: Content Generation
450
+ **Voice:** Friendly, supportive, non-technical
48
451
 
49
- For each page, generate:
50
- 1. Frontmatter with title and description
51
- 2. Clear introduction explaining the topic
52
- 3. Code examples extracted from source
53
- 4. Links to related documentation
452
+ ---
54
453
 
55
- ### Step 4: Generate docs.json
454
+ ## docs.json Templates (with docType)
56
455
 
57
- Create navigation structure:
456
+ ### Internal Docs
58
457
  ```json
59
458
  {
60
- "name": "{Project Name from package.json}",
459
+ "name": "{Project Name}",
460
+ "docType": "internal",
461
+ "navigation": {
462
+ "tabs": [
463
+ {
464
+ "tab": "Documentation",
465
+ "groups": [
466
+ { "group": "Getting Started", "pages": ["index", "getting-started/setup", "getting-started/prerequisites"] },
467
+ { "group": "Architecture", "pages": ["architecture/overview", "architecture/folder-structure"] },
468
+ { "group": "Development", "pages": ["development/workflow", "development/testing", "development/deployment"] },
469
+ { "group": "Contributing", "pages": ["contributing"] }
470
+ ]
471
+ }
472
+ ]
473
+ }
474
+ }
475
+ ```
476
+
477
+ ### Customer API Docs (with OpenAPI)
478
+ ```json
479
+ {
480
+ "name": "{Product Name}",
481
+ "docType": "api",
61
482
  "navigation": {
62
483
  "tabs": [
63
484
  {
64
485
  "tab": "Guides",
65
- "type": "docs",
66
486
  "groups": [
67
- {
68
- "group": "Getting Started",
69
- "pages": ["index", "quickstart", "installation"]
70
- },
71
- {
72
- "group": "Guides",
73
- "pages": ["guides/overview"]
74
- }
487
+ { "group": "Getting Started", "pages": ["index", "quickstart", "authentication"] },
488
+ { "group": "Guides", "pages": ["guides/overview"] }
75
489
  ]
490
+ },
491
+ {
492
+ "tab": "API Reference",
493
+ "type": "openapi",
494
+ "spec": "api-reference/openapi.json"
76
495
  }
77
496
  ]
78
497
  }
79
498
  }
80
499
  ```
81
500
 
82
- ## What to Extract from Source Code
501
+ ### Customer API Docs (with GraphQL)
502
+ ```json
503
+ {
504
+ "name": "{Product Name}",
505
+ "docType": "api",
506
+ "navigation": {
507
+ "tabs": [
508
+ {
509
+ "tab": "Guides",
510
+ "groups": [
511
+ { "group": "Getting Started", "pages": ["index", "quickstart", "authentication"] },
512
+ { "group": "Guides", "pages": ["guides/overview"] }
513
+ ]
514
+ },
515
+ {
516
+ "tab": "GraphQL API",
517
+ "type": "graphql",
518
+ "schema": "api-reference/schema.graphql",
519
+ "endpoint": "https://api.example.com/graphql"
520
+ }
521
+ ]
522
+ }
523
+ }
524
+ ```
83
525
 
84
- | Source | Documentation Generated |
85
- |--------|------------------------|
86
- | README.md | Homepage content, project overview |
87
- | package.json scripts | CLI commands, development workflow |
88
- | Exported functions | API reference pages |
89
- | React components | Component documentation with props |
90
- | API routes | Endpoint reference |
91
- | OpenAPI spec | Full API documentation |
92
- | GraphQL schema | GraphQL type documentation |
93
- | Config files | Configuration reference |
94
- | Tests | Usage examples |
526
+ ### Product Docs
527
+ ```json
528
+ {
529
+ "name": "{Product Name}",
530
+ "docType": "product",
531
+ "navigation": {
532
+ "tabs": [
533
+ {
534
+ "tab": "Documentation",
535
+ "groups": [
536
+ { "group": "Getting Started", "pages": ["index", "getting-started/quickstart", "getting-started/key-concepts"] },
537
+ { "group": "Features", "pages": ["features/..."] },
538
+ { "group": "Tutorials", "pages": ["tutorials/..."] },
539
+ { "group": "Help", "pages": ["troubleshooting/common-issues", "troubleshooting/faq"] }
540
+ ]
541
+ }
542
+ ]
543
+ }
544
+ }
545
+ ```
95
546
 
96
- ## Output Quality Guidelines
547
+ ## Quality Guidelines
97
548
 
98
- - Extract real code examples, don't fabricate
99
- - Preserve existing documentation where found
100
- - Note areas that need human review with TODOs
101
- - Generate SEO-friendly descriptions
102
- - Include installation commands from package manager
549
+ - Extract real code examples from source, don't fabricate
550
+ - Match tone to audience based on docType
551
+ - Add TODO markers for sections needing human review
552
+ - Include relevant screenshots for product docs
553
+ - Test all code examples work
554
+ - Always use terminology from context.json
555
+ - Update context.json if you learn new information
556
+ - **Import existing API specs** rather than creating manual docs
557
+ - **Validate specs** before importing