metacoding 1.5.1 → 2.0.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 (95) hide show
  1. package/CHANGELOG.md +45 -0
  2. package/README.md +108 -514
  3. package/lib/cli.d.ts.map +1 -1
  4. package/lib/cli.js +18 -19
  5. package/lib/cli.js.map +1 -1
  6. package/lib/commands/init.d.ts +8 -14
  7. package/lib/commands/init.d.ts.map +1 -1
  8. package/lib/commands/init.js +105 -387
  9. package/lib/commands/init.js.map +1 -1
  10. package/lib/commands/update.d.ts +9 -9
  11. package/lib/commands/update.d.ts.map +1 -1
  12. package/lib/commands/update.js +141 -320
  13. package/lib/commands/update.js.map +1 -1
  14. package/lib/services/backup.d.ts +1 -1
  15. package/lib/services/backup.d.ts.map +1 -1
  16. package/lib/services/backup.js +10 -6
  17. package/lib/services/backup.js.map +1 -1
  18. package/lib/services/filesystem.d.ts.map +1 -1
  19. package/lib/services/filesystem.js +11 -5
  20. package/lib/services/filesystem.js.map +1 -1
  21. package/lib/services/gitignore-manager.js +5 -5
  22. package/lib/services/gitignore-manager.js.map +1 -1
  23. package/lib/services/project-detector.d.ts +9 -8
  24. package/lib/services/project-detector.d.ts.map +1 -1
  25. package/lib/services/project-detector.js +79 -197
  26. package/lib/services/project-detector.js.map +1 -1
  27. package/lib/services/skill-manager.d.ts +23 -0
  28. package/lib/services/skill-manager.d.ts.map +1 -0
  29. package/lib/services/skill-manager.js +212 -0
  30. package/lib/services/skill-manager.js.map +1 -0
  31. package/lib/types/index.d.ts +5 -15
  32. package/lib/types/index.d.ts.map +1 -1
  33. package/package.json +9 -17
  34. package/skills/metacoding-workflow/SKILL.md +52 -0
  35. package/skills/metacoding-workflow/agents/openai.yaml +4 -0
  36. package/skills/metacoding-workflow/assets/templates/changelog-entry.md +6 -0
  37. package/skills/metacoding-workflow/assets/templates/project-context.md +18 -0
  38. package/skills/metacoding-workflow/assets/templates/repeated-task-checklist.md +8 -0
  39. package/skills/metacoding-workflow/assets/templates/task-entry.md +9 -0
  40. package/skills/metacoding-workflow/assets/templates/test-plan.md +8 -0
  41. package/skills/metacoding-workflow/references/javascript.md +7 -0
  42. package/skills/metacoding-workflow/references/node.md +7 -0
  43. package/skills/metacoding-workflow/references/platform-adaptation.md +37 -0
  44. package/skills/metacoding-workflow/references/python.md +7 -0
  45. package/skills/metacoding-workflow/references/react.md +7 -0
  46. package/skills/metacoding-workflow/references/repository-organization.md +84 -0
  47. package/skills/metacoding-workflow/references/typescript.md +7 -0
  48. package/skills/metacoding-workflow/references/workflow-rules.md +54 -0
  49. package/skills/vendor-templates/claude-agent.md.template +41 -0
  50. package/lib/services/assistant-adapter.d.ts +0 -18
  51. package/lib/services/assistant-adapter.d.ts.map +0 -1
  52. package/lib/services/assistant-adapter.js +0 -246
  53. package/lib/services/assistant-adapter.js.map +0 -1
  54. package/lib/services/cursor.d.ts +0 -47
  55. package/lib/services/cursor.d.ts.map +0 -1
  56. package/lib/services/cursor.js +0 -314
  57. package/lib/services/cursor.js.map +0 -1
  58. package/lib/services/template-manager.d.ts +0 -23
  59. package/lib/services/template-manager.d.ts.map +0 -1
  60. package/lib/services/template-manager.js +0 -374
  61. package/lib/services/template-manager.js.map +0 -1
  62. package/lib/services/vscode.d.ts +0 -10
  63. package/lib/services/vscode.d.ts.map +0 -1
  64. package/lib/services/vscode.js +0 -108
  65. package/lib/services/vscode.js.map +0 -1
  66. package/templates/assistants/AGENTS.md +0 -203
  67. package/templates/assistants/CLAUDE.md +0 -156
  68. package/templates/assistants/GEMINI.md +0 -193
  69. package/templates/general/code-review.instructions.md +0 -265
  70. package/templates/general/copilot-instructions.md +0 -427
  71. package/templates/general/docs-update.instructions.md +0 -275
  72. package/templates/general/release.instructions.md +0 -242
  73. package/templates/general/template.json +0 -9
  74. package/templates/general/test-runner.instructions.md +0 -188
  75. package/templates/javascript/javascript.coding.instructions.md +0 -500
  76. package/templates/javascript/javascript.docs.instructions.md +0 -563
  77. package/templates/javascript/javascript.testing.instructions.md +0 -686
  78. package/templates/javascript/template.json +0 -36
  79. package/templates/node/nodejs.coding.instructions.md +0 -249
  80. package/templates/node/nodejs.docs.instructions.md +0 -261
  81. package/templates/node/nodejs.testing.instructions.md +0 -373
  82. package/templates/node/template.json +0 -23
  83. package/templates/python/python.coding.instructions.md +0 -338
  84. package/templates/python/python.docs.instructions.md +0 -1178
  85. package/templates/python/python.testing.instructions.md +0 -1073
  86. package/templates/python/template.json +0 -75
  87. package/templates/react/react.coding.instructions.md +0 -694
  88. package/templates/react/react.docs.instructions.md +0 -451
  89. package/templates/react/react.testing.instructions.md +0 -192
  90. package/templates/react/template.json +0 -14
  91. package/templates/react/test-runner.instructions.md +0 -135
  92. package/templates/typescript/template.json +0 -16
  93. package/templates/typescript/typescript.coding.instructions.md +0 -368
  94. package/templates/typescript/typescript.docs.instructions.md +0 -760
  95. package/templates/typescript/typescript.testing.instructions.md +0 -739
@@ -1,563 +0,0 @@
1
- ---
2
- description: 'JavaScript documentation standards for browser and Node.js environments'
3
- applyTo: '**/*.md'
4
- ---
5
-
6
- # JavaScript Documentation Guidelines
7
-
8
- ## Documentation Architecture Principles
9
-
10
- This project enforces a strict distinction between different types of documentation to ensure clarity, maintainability, and appropriate use of status indicators across all JavaScript project types.
11
-
12
- ### System Documentation (Evergreen, Factual)
13
-
14
- **Purpose:** Describes the current state of the system, architecture, and implemented features.
15
- **Files:** README.md, architecture.md, api-design.md, system-documentation.md, code documentation
16
- **Language:** Present tense, factual, descriptive
17
- **Status Indicators:** ❌ **NEVER use status emojis or temporal language**
18
- **Content Focus:** What exists now, how it works, what it does
19
- **Examples:**
20
-
21
- - ✅ Correct: "The authentication module uses JWT tokens"
22
- - ❌ Incorrect: "🚧 Authentication module (in progress)"
23
- - ✅ Correct: "The API client supports the following endpoints:"
24
- - ❌ Incorrect: "📋 Planned API endpoints:"
25
-
26
- ### Project Management Documentation (Temporal, Status-Oriented)
27
-
28
- **Purpose:** Tracks work progress, planning, and execution status.
29
- **Files:** project-task-list.md, sprint-planning.md, backlog.md
30
- **Language:** Status-oriented, temporal references allowed
31
- **Status Indicators:** ✅ **Required - use emojis and progress indicators**
32
- **Content Focus:** What needs to be done, work progress, planning
33
- **Examples:**
34
-
35
- - ✅ Correct: "🚧 In Progress - Authentication module implementation"
36
- - ✅ Correct: "✅ Completed - JWT token validation"
37
- - ✅ Correct: "📋 Backlog - Add OAuth integration"
38
-
39
- ### User Documentation (Instructional, Current)
40
-
41
- **Purpose:** Helps users understand how to use the system.
42
- **Files:** Installation guides, usage examples, tutorials
43
- **Language:** Imperative, instructional, present tense
44
- **Status Indicators:** ⚠️ **Use sparingly** - only for actual user-facing feature status
45
- **Content Focus:** How to use, what users can do, step-by-step guidance
46
-
47
- ## Documentation Quality Standards
48
-
49
- - **Clarity:** Write clear, concise explanations appropriate for JavaScript developers
50
- - **Completeness:** Ensure documentation covers all necessary aspects of JavaScript projects
51
- - **Accuracy:** Verify all information is current and correct
52
- - **Consistency:** Maintain consistent tone and formatting across all documentation
53
- - **Accessibility:** Use clear language and proper formatting for accessibility
54
- - **Architecture Compliance:** Follow the system vs project documentation distinction
55
-
56
- ## Repeated JavaScript Documentation Tasks and Checklist Templates
57
-
58
- For any recurring documentation process specific to JavaScript projects (such as package release documentation, API documentation updates, JSDoc updates, or similar workflows), always use a dedicated checklist template to ensure all necessary steps are followed and nothing is missed.
59
-
60
- - **JavaScript Documentation Checklist Template Principle:**
61
- - Maintain a template checklist file for each repeated JavaScript documentation process (e.g., `package-release-docs-checklist.md`, `jsdoc-update-checklist.md`, `api-docs-checklist.md`).
62
- - For each new instance (e.g., each package release or major API update), copy the template checklist and tag it with the relevant version or context, preserving the original template for future use.
63
- - Systematically work through the checklist for every instance of the repeated documentation task, marking each step as completed.
64
- - Proactively identify any JavaScript documentation process that would benefit from a checklist and prompt the user to use or create one if it does not exist.
65
- - If, during execution, you or the user identify missing or unclear documentation steps, update the template checklist to improve future reliability.
66
-
67
- **Examples of repeated JavaScript documentation tasks requiring checklists:**
68
-
69
- - Package release documentation (README updates, CHANGELOG maintenance, package.json synchronization, JSDoc updates)
70
- - API documentation updates (JavaScript API changes, parameter updates, example code verification)
71
- - JSDoc documentation reviews and updates (type annotations, parameter descriptions, example code)
72
- - Build and deployment documentation updates (build script changes, deployment process updates)
73
- - JavaScript library documentation (usage examples, compatibility notes, migration guides)
74
- - Browser compatibility documentation updates
75
- - Node.js version compatibility documentation
76
- - Module system documentation (CommonJS, ES modules, bundler compatibility)
77
- - Any other JavaScript documentation process with multiple required steps or risk of omission
78
-
79
- **Agent Guidance for JavaScript Documentation Tasks:**
80
-
81
- - Always check for the existence of a JavaScript documentation checklist template before starting a repeated documentation task.
82
- - If a template does not exist, prompt the user to create one and assist in drafting it with JavaScript-specific considerations.
83
- - When using a documentation checklist, copy it for the specific instance (e.g., `package-release-docs-v2.1.0.md`), and work through each step systematically.
84
- - If new JavaScript documentation steps are discovered or improvements are needed, update the template and inform the user.
85
- - Consider JavaScript-specific requirements like JSDoc standards, package.json synchronization, and browser/Node.js compatibility when creating or using checklists.
86
-
87
- ## Task ID Naming Convention for JavaScript Projects
88
-
89
- Follow the standardized task naming format for all project management documentation:
90
-
91
- #### Required Task Format
92
-
93
- ```markdown
94
- - [ ] **[AREA]-TASK-001: Task title** - ❌ **NOT STARTED**
95
- - Detailed task description and requirements
96
- - Implementation steps and acceptance criteria
97
- ```
98
-
99
- #### JavaScript-Specific Area Prefixes
100
-
101
- **Frontend/Browser Areas:**
102
-
103
- - `DOM` - DOM manipulation and browser API tasks
104
- - `UI` - User interface component tasks
105
- - `EVENT` - Event handling and interaction tasks
106
- - `API_CLIENT` - API client and HTTP request tasks
107
- - `UTIL` - Utility function tasks
108
-
109
- **Node.js/Server Areas:**
110
-
111
- - `SERVER` - Server-side application tasks
112
- - `CLI` - Command-line interface tasks
113
- - `MODULE` - Module and package development tasks
114
- - `CONFIG` - Configuration management tasks
115
-
116
- **Universal Areas:**
117
-
118
- - `CORE` - Core application logic tasks
119
- - `PKG` - Package/library functionality tasks
120
- - `DOC` - Documentation tasks
121
- - `TEST` - Testing infrastructure tasks
122
-
123
- **Examples:**
124
-
125
- - `DOM-TASK-001: Implement form validation`
126
- - `API_CLIENT-TASK-002: Add authentication headers`
127
- - `SERVER-TASK-003: Create user authentication middleware`
128
- - `CLI-TASK-004: Add command-line argument parsing`
129
-
130
- ## README.md Standards for JavaScript Projects
131
-
132
- **⚠️ README.md is system documentation - NO status indicators or temporal language allowed**
133
-
134
- ### JavaScript Project README Template
135
-
136
- ````markdown
137
- # Project Name
138
-
139
- Brief description of what the project does and its main purpose.
140
-
141
- ## Features
142
-
143
- - Feature 1: Description of implemented functionality
144
- - Feature 2: Description of implemented functionality
145
- - Feature 3: Description of implemented functionality
146
-
147
- ## Installation
148
-
149
- ### Prerequisites
150
-
151
- - Node.js 18+ (for Node.js projects)
152
- - Modern browser supporting ES2020+ (for browser projects)
153
-
154
- ### Install Dependencies
155
-
156
- ```bash
157
- npm install
158
- ```
159
- ````
160
-
161
- ### Development Setup
162
-
163
- ```bash
164
- npm run dev
165
- ```
166
-
167
- ### Build for Production
168
-
169
- ```bash
170
- npm run build
171
- ```
172
-
173
- ## Usage
174
-
175
- ### Basic Example
176
-
177
- ```javascript
178
- import { ExampleClass } from './src/example.js';
179
-
180
- const example = new ExampleClass();
181
- const result = example.processData(inputData);
182
- console.log(result);
183
- ```
184
-
185
- ### API Reference
186
-
187
- #### ExampleClass
188
-
189
- Main class for handling data processing.
190
-
191
- **Constructor**
192
-
193
- - `new ExampleClass(options)` - Creates new instance with optional configuration
194
-
195
- **Methods**
196
-
197
- - `processData(data)` - Processes input data and returns result
198
- - `validateInput(input)` - Validates input data format
199
-
200
- ## Configuration
201
-
202
- Configuration options for the application:
203
-
204
- ```javascript
205
- const config = {
206
- apiUrl: 'https://api.example.com',
207
- timeout: 5000,
208
- retries: 3,
209
- };
210
- ```
211
-
212
- ## Testing
213
-
214
- Run the test suite:
215
-
216
- ```bash
217
- npm test
218
- ```
219
-
220
- Run tests in watch mode:
221
-
222
- ```bash
223
- npm run test:watch
224
- ```
225
-
226
- Generate coverage report:
227
-
228
- ```bash
229
- npm run test:coverage
230
- ```
231
-
232
- ## Contributing
233
-
234
- 1. Fork the repository
235
- 2. Create a feature branch
236
- 3. Make your changes
237
- 4. Add tests for new functionality
238
- 5. Run the test suite
239
- 6. Submit a pull request
240
-
241
- ## License
242
-
243
- MIT License - see LICENSE file for details
244
-
245
- ````
246
-
247
- ### Documentation Best Practices
248
-
249
- - **Present Tense:** Describe what the project does, not what it will do
250
- - **Working Examples:** All code examples should be tested and functional
251
- - **Clear Instructions:** Installation and usage instructions should be step-by-step
252
- - **API Documentation:** Document all public functions and classes
253
- - **No Status Language:** Never use "planned", "upcoming", "in progress"
254
-
255
- ## Code Documentation Standards
256
-
257
- ### JSDoc Documentation
258
-
259
- JavaScript projects should use JSDoc for code documentation:
260
-
261
- ```javascript
262
- /**
263
- * Calculates the total price including tax
264
- * @param {number} basePrice - The base price before tax
265
- * @param {number} taxRate - The tax rate as a decimal (e.g., 0.08 for 8%)
266
- * @returns {number} The total price including tax
267
- * @throws {Error} When basePrice or taxRate is negative
268
- * @example
269
- * const total = calculateTotalPrice(100, 0.08); // Returns 108
270
- * @since 1.0.0
271
- */
272
- function calculateTotalPrice(basePrice, taxRate) {
273
- if (basePrice < 0 || taxRate < 0) {
274
- throw new Error('Price and tax rate must be non-negative');
275
- }
276
- return basePrice * (1 + taxRate);
277
- }
278
-
279
- /**
280
- * User service for managing user data
281
- * @class
282
- * @example
283
- * const userService = new UserService(database);
284
- * const user = await userService.getUserById('123');
285
- */
286
- class UserService {
287
- /**
288
- * Creates a new UserService instance
289
- * @param {Object} database - Database connection instance
290
- * @param {Object} [options={}] - Optional configuration
291
- * @param {number} [options.timeout=5000] - Request timeout in milliseconds
292
- */
293
- constructor(database, options = {}) {
294
- this.db = database;
295
- this.timeout = options.timeout || 5000;
296
- }
297
-
298
- /**
299
- * Retrieves a user by ID
300
- * @async
301
- * @param {string} userId - The unique user identifier
302
- * @returns {Promise<Object|null>} User object or null if not found
303
- * @throws {Error} When database operation fails
304
- * @example
305
- * const user = await userService.getUserById('user123');
306
- * if (user) {
307
- * console.log(user.name);
308
- * }
309
- */
310
- async getUserById(userId) {
311
- try {
312
- return await this.db.users.findById(userId);
313
- } catch (error) {
314
- console.error(`Failed to fetch user ${userId}:`, error);
315
- throw error;
316
- }
317
- }
318
- }
319
- ````
320
-
321
- ### Module Documentation
322
-
323
- ```javascript
324
- /**
325
- * @fileoverview Utility functions for data processing and validation
326
- * @module utils/dataProcessor
327
- * @requires lodash
328
- * @author Your Name <your.email@example.com>
329
- * @version 1.2.0
330
- */
331
-
332
- import _ from 'lodash';
333
-
334
- /**
335
- * Configuration object for data processing
336
- * @typedef {Object} ProcessingConfig
337
- * @property {boolean} strict - Enable strict validation
338
- * @property {number} maxItems - Maximum number of items to process
339
- * @property {string[]} allowedFields - Array of allowed field names
340
- */
341
-
342
- /**
343
- * User data object
344
- * @typedef {Object} UserData
345
- * @property {string} id - Unique user identifier
346
- * @property {string} name - User's full name
347
- * @property {string} email - User's email address
348
- * @property {boolean} active - Whether user account is active
349
- * @property {Date} createdAt - Account creation date
350
- */
351
-
352
- /**
353
- * Processes and validates user data
354
- * @param {UserData[]} users - Array of user objects to process
355
- * @param {ProcessingConfig} config - Processing configuration
356
- * @returns {UserData[]} Processed and validated user data
357
- * @throws {ValidationError} When validation fails in strict mode
358
- */
359
- export function processUserData(users, config) {
360
- // Implementation details...
361
- }
362
- ```
363
-
364
- ## Test Documentation Standards
365
-
366
- Follow the standardized table format for all test case documentation:
367
-
368
- ### Required Table Format for JavaScript Projects
369
-
370
- ```markdown
371
- | Test Case ID | Description | Type | Status |
372
- | :----------------- | :----------------------------------------- | :--- | :---------- |
373
- | DOM-UNIT-001 | Test DOM element creation and manipulation | Unit | Completed |
374
- | UI-UNIT-002 | Test component state management | Unit | Completed |
375
- | API_CLIENT-INT-001 | Test HTTP client error handling | Int | In Progress |
376
- | EVENT-E2E-001 | Test complete user interaction workflow | E2E | Not Started |
377
- ```
378
-
379
- ### Test Case ID Conventions for JavaScript
380
-
381
- - **Format:** `[AREA]-[TYPE]-[NUMBER]`
382
- - **Area Prefixes:** DOM, UI, EVENT, API_CLIENT, UTIL, CORE, MODULE, SERVER, CLI, PKG
383
- - **Type Suffixes:** UNIT, INT, E2E
384
- - **Sequential Numbering:** 001, 002, 003, etc.
385
-
386
- ## API Documentation
387
-
388
- ### RESTful API Documentation
389
-
390
- ```javascript
391
- /**
392
- * @api {get} /api/users/:id Get User
393
- * @apiName GetUser
394
- * @apiGroup User
395
- * @apiVersion 1.0.0
396
- *
397
- * @apiParam {String} id User's unique ID
398
- *
399
- * @apiSuccess {String} id User ID
400
- * @apiSuccess {String} name User name
401
- * @apiSuccess {String} email User email
402
- * @apiSuccess {Boolean} active User status
403
- *
404
- * @apiSuccessExample {json} Success-Response:
405
- * HTTP/1.1 200 OK
406
- * {
407
- * "id": "123",
408
- * "name": "John Doe",
409
- * "email": "john@example.com",
410
- * "active": true
411
- * }
412
- *
413
- * @apiError UserNotFound The id of the User was not found
414
- *
415
- * @apiErrorExample {json} Error-Response:
416
- * HTTP/1.1 404 Not Found
417
- * {
418
- * "error": "UserNotFound",
419
- * "message": "User with id 123 not found"
420
- * }
421
- */
422
- ```
423
-
424
- ### Client Library Documentation
425
-
426
- ```javascript
427
- /**
428
- * JavaScript SDK for Example API
429
- * @example
430
- * import { ExampleAPI } from '@example/api-client';
431
- *
432
- * const api = new ExampleAPI({
433
- * apiKey: 'your-api-key',
434
- * baseUrl: 'https://api.example.com'
435
- * });
436
- *
437
- * const users = await api.users.list();
438
- * const user = await api.users.get('user123');
439
- */
440
- class ExampleAPI {
441
- /**
442
- * Initialize API client
443
- * @param {Object} config - Configuration object
444
- * @param {string} config.apiKey - API authentication key
445
- * @param {string} [config.baseUrl='https://api.example.com'] - Base API URL
446
- * @param {number} [config.timeout=5000] - Request timeout in milliseconds
447
- */
448
- constructor(config) {
449
- // Implementation...
450
- }
451
- }
452
- ```
453
-
454
- ## Package Documentation
455
-
456
- ### package.json Documentation
457
-
458
- ```json
459
- {
460
- "name": "example-package",
461
- "version": "1.0.0",
462
- "description": "A comprehensive example JavaScript package",
463
- "main": "dist/index.js",
464
- "module": "dist/index.esm.js",
465
- "types": "dist/index.d.ts",
466
- "files": ["dist", "README.md", "LICENSE"],
467
- "scripts": {
468
- "build": "rollup -c",
469
- "dev": "rollup -c -w",
470
- "test": "jest",
471
- "test:watch": "jest --watch",
472
- "test:coverage": "jest --coverage",
473
- "lint": "eslint src/**/*.js",
474
- "lint:fix": "eslint src/**/*.js --fix",
475
- "docs": "jsdoc src -d docs",
476
- "prepare": "npm run build"
477
- },
478
- "keywords": ["javascript", "library", "example"],
479
- "author": "Your Name <your.email@example.com>",
480
- "license": "MIT",
481
- "repository": {
482
- "type": "git",
483
- "url": "https://github.com/username/example-package.git"
484
- },
485
- "bugs": {
486
- "url": "https://github.com/username/example-package/issues"
487
- },
488
- "homepage": "https://github.com/username/example-package#readme"
489
- }
490
- ```
491
-
492
- ## Build and Deployment Documentation
493
-
494
- ### Webpack Configuration Documentation
495
-
496
- ```javascript
497
- /**
498
- * Webpack configuration for production builds
499
- * @type {import('webpack').Configuration}
500
- */
501
- const config = {
502
- entry: './src/index.js',
503
- output: {
504
- path: path.resolve(__dirname, 'dist'),
505
- filename: 'bundle.js',
506
- library: 'ExampleLibrary',
507
- libraryTarget: 'umd',
508
- },
509
- // Additional configuration...
510
- };
511
-
512
- export default config;
513
- ```
514
-
515
- ### Deployment Documentation
516
-
517
- ````markdown
518
- ## Deployment
519
-
520
- ### Environment Variables
521
-
522
- - `NODE_ENV` - Environment mode (development, production, test)
523
- - `API_URL` - Base URL for API endpoints
524
- - `PORT` - Server port (default: 3000)
525
- - `DATABASE_URL` - Database connection string
526
-
527
- ### Build Process
528
-
529
- 1. Install dependencies: `npm ci`
530
- 2. Run tests: `npm test`
531
- 3. Build production bundle: `npm run build`
532
- 4. Start production server: `npm start`
533
-
534
- ### Docker Deployment
535
-
536
- ```dockerfile
537
- FROM node:18-alpine
538
- WORKDIR /app
539
- COPY package*.json ./
540
- RUN npm ci --only=production
541
- COPY . .
542
- RUN npm run build
543
- EXPOSE 3000
544
- CMD ["npm", "start"]
545
- ```
546
- ````
547
-
548
- ## Maintenance Schedule
549
-
550
- - **Regular Review:** Schedule monthly documentation review cycles
551
- - **Release Updates:** Update documentation as part of release process
552
- - **Issue Tracking:** Track documentation issues and improvements in project backlog
553
- - **Community Feedback:** Incorporate user feedback on documentation clarity
554
- - **Automated Checks:** Use automated tools to check for broken links and outdated content
555
-
556
- ## Accessibility Guidelines
557
-
558
- - **Clear Language:** Use clear, simple language for international JavaScript developers
559
- - **Code Examples:** Provide complete, runnable code examples
560
- - **Technical Terms:** Define JavaScript-specific terms when first introduced
561
- - **Consistent Terminology:** Use consistent terminology throughout all documentation
562
- - **Screen Reader Compatibility:** Ensure proper heading hierarchy and alt text for diagrams
563
- - **High Contrast:** Use sufficient color contrast for code syntax highlighting