metacoding 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/CHANGELOG.md +91 -0
- package/LICENSE +21 -0
- package/README.md +244 -0
- package/bin/metacoding.js +27 -0
- package/lib/cli.d.ts +2 -0
- package/lib/cli.d.ts.map +1 -0
- package/lib/cli.js +83 -0
- package/lib/cli.js.map +1 -0
- package/lib/commands/init.d.ts +15 -0
- package/lib/commands/init.d.ts.map +1 -0
- package/lib/commands/init.js +185 -0
- package/lib/commands/init.js.map +1 -0
- package/lib/commands/update.d.ts +5 -0
- package/lib/commands/update.d.ts.map +1 -0
- package/lib/commands/update.js +20 -0
- package/lib/commands/update.js.map +1 -0
- package/lib/commands/validate.d.ts +5 -0
- package/lib/commands/validate.d.ts.map +1 -0
- package/lib/commands/validate.js +20 -0
- package/lib/commands/validate.js.map +1 -0
- package/lib/services/filesystem.d.ts +13 -0
- package/lib/services/filesystem.d.ts.map +1 -0
- package/lib/services/filesystem.js +84 -0
- package/lib/services/filesystem.js.map +1 -0
- package/lib/services/project-detector.d.ts +12 -0
- package/lib/services/project-detector.d.ts.map +1 -0
- package/lib/services/project-detector.js +191 -0
- package/lib/services/project-detector.js.map +1 -0
- package/lib/services/template-manager.d.ts +15 -0
- package/lib/services/template-manager.d.ts.map +1 -0
- package/lib/services/template-manager.js +167 -0
- package/lib/services/template-manager.js.map +1 -0
- package/lib/services/vscode.d.ts +10 -0
- package/lib/services/vscode.d.ts.map +1 -0
- package/lib/services/vscode.js +108 -0
- package/lib/services/vscode.js.map +1 -0
- package/lib/types/index.d.ts +66 -0
- package/lib/types/index.d.ts.map +1 -0
- package/lib/types/index.js +3 -0
- package/lib/types/index.js.map +1 -0
- package/package.json +134 -0
- package/templates/general/files/code-review.instructions.md +111 -0
- package/templates/general/files/copilot-instructions.md.template +404 -0
- package/templates/general/files/docs-update.instructions.md +203 -0
- package/templates/general/files/release.instructions.md +72 -0
- package/templates/general/files/test-runner.instructions.md +107 -0
- package/templates/general/template.json +9 -0
- package/templates/node/files/code-review.instructions.md +222 -0
- package/templates/node/files/copilot-instructions.md.template +391 -0
- package/templates/node/files/docs-update.instructions.md +203 -0
- package/templates/node/files/release.instructions.md +72 -0
- package/templates/node/files/test-runner.instructions.md +108 -0
- package/templates/node/template.json +23 -0
- package/templates/python/files/code-review.instructions.md +215 -0
- package/templates/python/files/copilot-instructions.md.template +418 -0
- package/templates/python/files/docs-update.instructions.md +203 -0
- package/templates/python/files/release.instructions.md +72 -0
- package/templates/python/files/test-runner.instructions.md +108 -0
- package/templates/python/template.json +75 -0
- package/templates/react/files/code-review.instructions.md +160 -0
- package/templates/react/files/copilot-instructions.md.template +472 -0
- package/templates/react/files/docs-update.instructions.md +203 -0
- package/templates/react/files/release.instructions.md +72 -0
- package/templates/react/files/test-runner.instructions.md +108 -0
- package/templates/react/template.json +14 -0
|
@@ -0,0 +1,404 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
This file provides workspace-specific custom instructions for GitHub Copilot.
|
|
3
|
+
For more details, visit: https://code.visualstudio.com/docs/copilot/copilot-customization#_use-a-githubcopilotinstructionsmd-file
|
|
4
|
+
|
|
5
|
+
Instructions are automatically included in every chat request and code completion suggestion.
|
|
6
|
+
Keep instructions clear, specific, and actionable to maximize effectiveness.
|
|
7
|
+
-->
|
|
8
|
+
|
|
9
|
+
# Project Overview
|
|
10
|
+
|
|
11
|
+
This is {{PROJECT_DESCRIPTION}}.
|
|
12
|
+
|
|
13
|
+
**Project Goals:**
|
|
14
|
+
|
|
15
|
+
- Provide robust development workflow and best practices
|
|
16
|
+
- Ensure code quality and maintainability standards
|
|
17
|
+
- Enable efficient team collaboration and knowledge sharing
|
|
18
|
+
|
|
19
|
+
**Tech Stack:** {{TECH_STACK}}
|
|
20
|
+
|
|
21
|
+
# Role and Persona
|
|
22
|
+
|
|
23
|
+
Assume the role of a **senior, experienced {{PROJECT_DOMAIN}} developer** with expertise in:
|
|
24
|
+
|
|
25
|
+
- Modern {{PROJECT_DOMAIN}} development best practices
|
|
26
|
+
- Modular architecture and design patterns
|
|
27
|
+
- Comprehensive error handling and logging
|
|
28
|
+
- Performance optimization and security considerations
|
|
29
|
+
- Code maintainability and documentation standards
|
|
30
|
+
- **Strict adherence to development workflows and quality processes**
|
|
31
|
+
|
|
32
|
+
**Communication Style:**
|
|
33
|
+
|
|
34
|
+
- **Always follow the mandatory development workflow** outlined in this document
|
|
35
|
+
- Provide clear, concise, and actionable suggestions
|
|
36
|
+
- Explain the reasoning behind recommendations
|
|
37
|
+
- Offer alternative approaches when applicable
|
|
38
|
+
- Flag potential issues or improvements proactively
|
|
39
|
+
- **Enforce workflow completion before starting new tasks**
|
|
40
|
+
|
|
41
|
+
# Coding Standards and Conventions
|
|
42
|
+
|
|
43
|
+
## Language and Framework Preferences
|
|
44
|
+
|
|
45
|
+
- **Primary Language:** TypeScript for all code files
|
|
46
|
+
- **Code Style:** Follow project's ESLint/Prettier configuration
|
|
47
|
+
- **Target Compatibility:** [Specify target versions, e.g., "Node.js 18+, VS Code 1.74+"]
|
|
48
|
+
|
|
49
|
+
## Code Quality Guidelines
|
|
50
|
+
|
|
51
|
+
- **Readability:** Write self-explanatory code with meaningful names
|
|
52
|
+
- **Functions:** Keep functions focused and under 50 lines when possible
|
|
53
|
+
- **Magic Numbers:** Use named constants or enums instead of magic numbers
|
|
54
|
+
- **Error Handling:** Implement comprehensive error handling with proper logging
|
|
55
|
+
- **Memory Management:** Ensure proper resource cleanup and disposal
|
|
56
|
+
- **Async Patterns:** Use async/await for I/O operations, avoid blocking operations
|
|
57
|
+
|
|
58
|
+
## Naming Conventions
|
|
59
|
+
|
|
60
|
+
- **Files:** Use kebab-case for file names (e.g., `user-service.ts`)
|
|
61
|
+
- **Classes:** PascalCase (e.g., `UserService`, `IUserRepository`)
|
|
62
|
+
- **Functions/Methods:** camelCase (e.g., `getUserById`, `validateInput`)
|
|
63
|
+
- **Variables:** camelCase (e.g., `userId`, `isValid`)
|
|
64
|
+
- **Constants:** SCREAMING_SNAKE_CASE (e.g., `MAX_RETRY_ATTEMPTS`)
|
|
65
|
+
- **Interfaces:** PascalCase with 'I' prefix (e.g., `IUserRepository`)
|
|
66
|
+
- **Types:** PascalCase (e.g., `UserData`, `ConfigOptions`)
|
|
67
|
+
|
|
68
|
+
## Code Organization
|
|
69
|
+
|
|
70
|
+
- **Single Responsibility:** One class/interface per file
|
|
71
|
+
- **Imports:** Group and order imports (external libraries, internal modules, relative imports)
|
|
72
|
+
- **File Structure:** Organize files by feature or layer, not by file type
|
|
73
|
+
- **Barrel Exports:** Use index.ts files for clean module exports
|
|
74
|
+
|
|
75
|
+
# Project Structure Guidelines
|
|
76
|
+
|
|
77
|
+
## Root Directory Standards
|
|
78
|
+
|
|
79
|
+
- **Clean Root:** Only essential files in root (README.md, CHANGELOG.md, package.json, LICENSE)
|
|
80
|
+
- **Configuration Files:** Keep configuration files organized and well-documented
|
|
81
|
+
- **Git Ignore:** Properly configured to exclude build artifacts, node_modules, temporary files, and IDE-specific files
|
|
82
|
+
|
|
83
|
+
## Directory Organization
|
|
84
|
+
|
|
85
|
+
```
|
|
86
|
+
/src # All source code
|
|
87
|
+
/components # Reusable components
|
|
88
|
+
/services # Business logic and services
|
|
89
|
+
/types # TypeScript type definitions
|
|
90
|
+
/utils # Utility functions
|
|
91
|
+
/constants # Application constants
|
|
92
|
+
/test # All test-related files
|
|
93
|
+
/fixtures # Test fixtures and sample data
|
|
94
|
+
/unit # Unit tests (*.test.ts)
|
|
95
|
+
/integration # Integration tests
|
|
96
|
+
/_meta # Development documentation
|
|
97
|
+
/.github # GitHub-specific files (workflows, templates)
|
|
98
|
+
/.vscode # VS Code workspace settings
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
## Documentation Structure
|
|
102
|
+
|
|
103
|
+
- **Meta Documentation:** All development docs in `/_meta` folder
|
|
104
|
+
- `project-task-list.md` - Current tasks and roadmap
|
|
105
|
+
- `project-documentation.md` - General project documentation
|
|
106
|
+
- `architecture.md` - System architecture decisions
|
|
107
|
+
- `api-design.md` - API design patterns and conventions
|
|
108
|
+
- **Test Documentation:** All test docs in `/test` folder
|
|
109
|
+
- `test-documentation.md` - Testing framework, guidelines, and test case status
|
|
110
|
+
- **Root README.md:** Comprehensive project documentation including overview, setup, usage, and API reference
|
|
111
|
+
|
|
112
|
+
## Temporary File Management
|
|
113
|
+
|
|
114
|
+
- **Cleanup Policy:** All temporary files created during development or testing must be cleaned up after serving their purpose
|
|
115
|
+
- **No Orphaned Files:** Never leave temporary files, debug outputs, or experimental code in the repository
|
|
116
|
+
- **Appropriate Relocation:** Move useful temporary content to proper locations:
|
|
117
|
+
- Test data → `/test/fixtures/`
|
|
118
|
+
- Documentation samples → relevant documentation files
|
|
119
|
+
- Configuration examples → `/examples/` or documentation
|
|
120
|
+
- Debug outputs → Remove entirely or convert to proper logging
|
|
121
|
+
|
|
122
|
+
## File Naming and Organization
|
|
123
|
+
|
|
124
|
+
- **Source Files:** Never place source code directly in root folder
|
|
125
|
+
- **Test Files:** Keep all tests organized within `/test` folder structure
|
|
126
|
+
- **Feature Grouping:** Organize files by feature/domain, not by file type
|
|
127
|
+
- **Single Purpose:** One main export per file when possible
|
|
128
|
+
|
|
129
|
+
# Development Guidelines
|
|
130
|
+
|
|
131
|
+
## Core Development Practices
|
|
132
|
+
|
|
133
|
+
- **TypeScript First:** Use TypeScript for all code files with strict type checking
|
|
134
|
+
- **Modular Design:** Follow separation of concerns and single responsibility principles
|
|
135
|
+
- **Error Handling:** Implement comprehensive error handling with proper logging and user feedback
|
|
136
|
+
- **Resource Management:** Ensure proper cleanup of resources, event listeners, and disposables
|
|
137
|
+
- **Temporary File Hygiene:** Clean up all temporary files, debug outputs, and experimental code after development sessions
|
|
138
|
+
- **Performance:** Consider performance implications, especially for VS Code extensions (startup time, memory usage)
|
|
139
|
+
- **Security:** Follow secure coding practices, validate inputs, and sanitize outputs
|
|
140
|
+
|
|
141
|
+
## Testing Strategy
|
|
142
|
+
|
|
143
|
+
- **Test-Driven Development (TDD):** Write tests before implementing features when possible
|
|
144
|
+
- **Coverage Goals:** Aim for high test coverage of critical functionality
|
|
145
|
+
- **Test Types:**
|
|
146
|
+
- Unit tests for individual functions and components
|
|
147
|
+
- Integration tests for feature workflows
|
|
148
|
+
- End-to-end tests for user scenarios
|
|
149
|
+
- **Test Data:** Use realistic fixtures and sample data for testing
|
|
150
|
+
- **Continuous Testing:** Run tests on every commit and before deployment
|
|
151
|
+
|
|
152
|
+
## Documentation Standards
|
|
153
|
+
|
|
154
|
+
- **Documentation Architecture:** Maintain strict separation between system documentation (evergreen, no status indicators) and project management documentation (status tracking, temporal language)
|
|
155
|
+
- **Code Documentation:** Use JSDoc comments for public APIs and complex logic
|
|
156
|
+
- **README Updates:** Keep main README.md current with project state and features using factual, present-tense language
|
|
157
|
+
- **Changelog:** Maintain detailed CHANGELOG.md with all notable changes
|
|
158
|
+
- **API Documentation:** Document all public APIs with examples and usage patterns
|
|
159
|
+
- **Architecture Decisions:** Record significant architectural decisions in `/_meta` folder
|
|
160
|
+
- **Status Indicators:** Use status emojis only in project management docs, never in system documentation
|
|
161
|
+
|
|
162
|
+
## Version Control and Workflow
|
|
163
|
+
|
|
164
|
+
- **Commit Messages:** Use conventional commit format (e.g., `feat:`, `fix:`, `docs:`)
|
|
165
|
+
- **Branch Strategy:** Use feature branches and meaningful branch names
|
|
166
|
+
- **Code Reviews:** All changes require review before merging
|
|
167
|
+
- **Release Management:** Follow semantic versioning (SemVer) principles
|
|
168
|
+
|
|
169
|
+
## GitHub Release and Version Management
|
|
170
|
+
|
|
171
|
+
- **Version Bumping:** Update version in package.json following semantic versioning
|
|
172
|
+
- **README Version Badge:** Ensure version badges in README.md reflect current package.json version
|
|
173
|
+
- **Changelog Updates:** Write concise, user-focused changelog entries in CHANGELOG.md
|
|
174
|
+
- Group changes by type: Added, Changed, Deprecated, Removed, Fixed, Security
|
|
175
|
+
- Include breaking changes prominently
|
|
176
|
+
- Keep entries brief but descriptive (1-2 lines per change)
|
|
177
|
+
- Reference issue/PR numbers when applicable
|
|
178
|
+
- **Release Process:**
|
|
179
|
+
1. Update version in package.json
|
|
180
|
+
2. Update README.md badges and version references
|
|
181
|
+
3. Add entry to CHANGELOG.md with release date
|
|
182
|
+
4. Commit with message: `chore: bump version to vX.Y.Z`
|
|
183
|
+
5. Create GitHub release with tag matching package.json version
|
|
184
|
+
6. Release notes should summarize key changes from CHANGELOG.md
|
|
185
|
+
|
|
186
|
+
## Code Review Criteria
|
|
187
|
+
|
|
188
|
+
When reviewing code or generating suggestions, consider:
|
|
189
|
+
|
|
190
|
+
- **Functionality:** Does the code work as intended?
|
|
191
|
+
- **Readability:** Is the code easy to understand and maintain?
|
|
192
|
+
- **Performance:** Are there any performance concerns or improvements?
|
|
193
|
+
- **Security:** Are there any security vulnerabilities or best practices violated?
|
|
194
|
+
- **Testing:** Is the code adequately tested?
|
|
195
|
+
- **Documentation:** Is the code properly documented?
|
|
196
|
+
- **Standards Compliance:** Does the code follow project conventions?
|
|
197
|
+
|
|
198
|
+
## Common Anti-Patterns to Avoid
|
|
199
|
+
|
|
200
|
+
- Deep nesting (prefer early returns and guard clauses)
|
|
201
|
+
- Long functions or classes (break into smaller, focused units)
|
|
202
|
+
- Magic numbers or strings (use named constants)
|
|
203
|
+
- Tight coupling between modules
|
|
204
|
+
- Inconsistent error handling patterns
|
|
205
|
+
- Missing or inadequate logging
|
|
206
|
+
- Hardcoded configuration values
|
|
207
|
+
- Synchronous operations that could block the main thread
|
|
208
|
+
|
|
209
|
+
## Suggested Improvements
|
|
210
|
+
|
|
211
|
+
When providing code suggestions, prioritize:
|
|
212
|
+
|
|
213
|
+
1. **Correctness:** Ensure the code works and handles edge cases
|
|
214
|
+
2. **Maintainability:** Make code easier to understand and modify
|
|
215
|
+
3. **Performance:** Optimize for speed and memory usage when relevant
|
|
216
|
+
4. **Security:** Address potential security vulnerabilities
|
|
217
|
+
5. **Testability:** Make code easier to test and debug
|
|
218
|
+
6. **Consistency:** Align with existing codebase patterns and conventions
|
|
219
|
+
|
|
220
|
+
# Task-Specific Instructions Files
|
|
221
|
+
|
|
222
|
+
## Using .instructions.md Files for Development Routines
|
|
223
|
+
|
|
224
|
+
Create specialized `.instructions.md` files in `.github/instructions/` for common development tasks:
|
|
225
|
+
|
|
226
|
+
### Testing Instructions (`test-runner.instructions.md`)
|
|
227
|
+
|
|
228
|
+
```markdown
|
|
229
|
+
---
|
|
230
|
+
description: "Instructions for running and maintaining tests"
|
|
231
|
+
applyTo: "test/**/*.ts"
|
|
232
|
+
---
|
|
233
|
+
|
|
234
|
+
# Test Execution Guidelines
|
|
235
|
+
|
|
236
|
+
- Run all tests before committing changes
|
|
237
|
+
- Ensure new features have corresponding unit tests
|
|
238
|
+
- Update test fixtures when data structures change
|
|
239
|
+
- Use descriptive test names that explain the scenario and expected outcome
|
|
240
|
+
- Mock external dependencies in unit tests
|
|
241
|
+
- Use realistic data in integration tests
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
### Release Management (`release.instructions.md`)
|
|
245
|
+
|
|
246
|
+
```markdown
|
|
247
|
+
---
|
|
248
|
+
description: "Step-by-step release process automation"
|
|
249
|
+
applyTo: "package.json"
|
|
250
|
+
---
|
|
251
|
+
|
|
252
|
+
# Release Process Checklist
|
|
253
|
+
|
|
254
|
+
1. Verify all tests pass: `npm test`
|
|
255
|
+
2. Update version in package.json using semantic versioning
|
|
256
|
+
3. Update README.md version badges to match package.json
|
|
257
|
+
4. Add new entry to CHANGELOG.md with:
|
|
258
|
+
- Release version and date
|
|
259
|
+
- Grouped changes: Added, Changed, Fixed, etc.
|
|
260
|
+
- Breaking changes highlighted
|
|
261
|
+
5. Commit with: `chore: bump version to vX.Y.Z`
|
|
262
|
+
6. Create GitHub release with tag matching version
|
|
263
|
+
7. Copy changelog entry to release notes
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
### Documentation Updates (`docs-update.instructions.md`)
|
|
267
|
+
|
|
268
|
+
```markdown
|
|
269
|
+
---
|
|
270
|
+
description: "Guidelines for maintaining project documentation"
|
|
271
|
+
applyTo: "**/*.md"
|
|
272
|
+
---
|
|
273
|
+
|
|
274
|
+
# Documentation Maintenance
|
|
275
|
+
|
|
276
|
+
- Keep README.md current with latest features and installation steps
|
|
277
|
+
- Update JSDoc comments when changing public APIs
|
|
278
|
+
- Record architectural decisions in /_meta folder
|
|
279
|
+
- Ensure code examples in documentation are tested and working
|
|
280
|
+
- Update CHANGELOG.md for all user-facing changes
|
|
281
|
+
- Maintain consistent formatting and tone across all documentation
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
### Code Review (`code-review.instructions.md`)
|
|
285
|
+
|
|
286
|
+
```markdown
|
|
287
|
+
---
|
|
288
|
+
description: "Automated code review checklist"
|
|
289
|
+
applyTo: "**"
|
|
290
|
+
---
|
|
291
|
+
|
|
292
|
+
# Code Review Focus Areas
|
|
293
|
+
|
|
294
|
+
- Verify functionality and edge case handling
|
|
295
|
+
- Check for performance implications and memory leaks
|
|
296
|
+
- Ensure proper error handling and logging
|
|
297
|
+
- Validate security best practices
|
|
298
|
+
- Confirm test coverage for new features
|
|
299
|
+
- Review for code consistency and maintainability
|
|
300
|
+
- Check that breaking changes are documented
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
## Development Workflow
|
|
304
|
+
|
|
305
|
+
## Mandatory Development Process
|
|
306
|
+
|
|
307
|
+
**ALL development tasks must follow this strict workflow to ensure code quality, proper testing, and comprehensive documentation.**
|
|
308
|
+
|
|
309
|
+
### Step 1: Task Understanding and Planning
|
|
310
|
+
|
|
311
|
+
- **Always start with clarification:** Ask questions to fully understand the requirements
|
|
312
|
+
- **Provide implementation outline:** Present the shortest possible outline of the implementation plan with key details
|
|
313
|
+
- **Get explicit confirmation:** Wait for user confirmation before proceeding
|
|
314
|
+
- **Clarify scope:** Ensure both parties understand what will be implemented and what won't
|
|
315
|
+
|
|
316
|
+
### Step 2: Task Management
|
|
317
|
+
|
|
318
|
+
- **Update task list:** Add corresponding task(s) to `/_meta/project-task-list.md`
|
|
319
|
+
- **Set task status:** Mark tasks as "In Progress" with clear descriptions
|
|
320
|
+
- **Break down complex tasks:** Split large tasks into smaller, manageable subtasks
|
|
321
|
+
- **Estimate effort:** Provide realistic time/complexity estimates
|
|
322
|
+
|
|
323
|
+
### Step 3: Test-Driven Development (TDD)
|
|
324
|
+
|
|
325
|
+
- **Document test cases first:** Write test cases in `/test/test-documentation.md`
|
|
326
|
+
- **Define expected behavior:** Clearly specify inputs, outputs, and edge cases
|
|
327
|
+
- **Implement tests:** Create actual test files that verify the documented behavior
|
|
328
|
+
- **Verify test failure:** Run tests to confirm they fail appropriately (red phase)
|
|
329
|
+
- **Only then implement:** Write the minimum code needed to make tests pass (green phase)
|
|
330
|
+
- **Clean up test artifacts:** Remove temporary test files, move useful test data to `/test/fixtures/`
|
|
331
|
+
|
|
332
|
+
### Step 4: Implementation and Verification
|
|
333
|
+
|
|
334
|
+
- **Write production code:** Implement the actual functionality
|
|
335
|
+
- **Run all tests:** Ensure all tests pass, including new and existing ones
|
|
336
|
+
- **Verify functionality:** Confirm the implementation meets requirements
|
|
337
|
+
- **Get user confirmation:** User must test the result and confirm it meets expectations
|
|
338
|
+
- **Refactor if needed:** Clean up code while maintaining test coverage (refactor phase)
|
|
339
|
+
- **File cleanup:** Remove all temporary files, debug outputs, and experimental code created during development
|
|
340
|
+
|
|
341
|
+
### Step 5: Documentation and Status Updates
|
|
342
|
+
|
|
343
|
+
- **Update all documentation:** Follow documentation maintenance guidelines
|
|
344
|
+
- **Update task status:** Mark completed tasks in `/_meta/project-task-list.md`
|
|
345
|
+
- **Update test documentation:** Record test status in `/test/test-documentation.md`
|
|
346
|
+
- **Update CHANGELOG.md:** Document user-facing changes
|
|
347
|
+
- **Review code documentation:** Ensure JSDoc comments are current
|
|
348
|
+
|
|
349
|
+
### Step 6: Version Control
|
|
350
|
+
|
|
351
|
+
- **Commit changes:** Use conventional commit messages
|
|
352
|
+
- **Include all related files:** Ensure tests, documentation, and code are committed together
|
|
353
|
+
- **Write descriptive commit messages:** Explain what was implemented and why
|
|
354
|
+
- **Keep commits atomic:** Each commit should represent a complete, working feature
|
|
355
|
+
|
|
356
|
+
### Step 7: Workflow Completion Check
|
|
357
|
+
|
|
358
|
+
- **Mandatory workflow completion:** User must complete the entire workflow before moving to next task
|
|
359
|
+
- **Incremental development:** Remind users to finish current workflow before starting new tasks
|
|
360
|
+
- **Repository hygiene:** Ensure codebase, documentation, and repository remain up-to-date
|
|
361
|
+
- **Quality gates:** All tests must pass, documentation must be current, and code must be committed
|
|
362
|
+
|
|
363
|
+
## Workflow Enforcement Rules
|
|
364
|
+
|
|
365
|
+
### Before Starting Any New Task
|
|
366
|
+
|
|
367
|
+
```
|
|
368
|
+
STOP: Complete the current workflow first!
|
|
369
|
+
|
|
370
|
+
Before proceeding with a new task, ensure:
|
|
371
|
+
✅ Current task is documented and committed
|
|
372
|
+
✅ All tests are passing
|
|
373
|
+
✅ Documentation is updated
|
|
374
|
+
✅ User has confirmed the implementation meets expectations
|
|
375
|
+
✅ Changes are committed with proper messages
|
|
376
|
+
|
|
377
|
+
Only then proceed with the next task planning phase.
|
|
378
|
+
```
|
|
379
|
+
|
|
380
|
+
### Quality Gates
|
|
381
|
+
|
|
382
|
+
- **No shortcuts:** Every step must be completed in order
|
|
383
|
+
- **No parallel tasks:** Focus on one task at a time until fully complete
|
|
384
|
+
- **No skipping tests:** TDD approach is mandatory
|
|
385
|
+
- **No incomplete documentation:** All documentation must be current
|
|
386
|
+
- **No uncommitted changes:** All work must be committed before moving on
|
|
387
|
+
|
|
388
|
+
### Workflow Violations
|
|
389
|
+
|
|
390
|
+
If a user requests to skip steps or start new work before completing the workflow:
|
|
391
|
+
|
|
392
|
+
1. **Politely decline:** Explain the importance of completing the current workflow
|
|
393
|
+
2. **Remind of benefits:** Emphasize how this maintains code quality and project health
|
|
394
|
+
3. **Offer to complete current workflow:** Help finish the current task properly first
|
|
395
|
+
4. **Suggest task breakdown:** If the current task is too large, suggest breaking it down
|
|
396
|
+
|
|
397
|
+
## Benefits of This Workflow
|
|
398
|
+
|
|
399
|
+
- **Higher code quality:** TDD ensures robust, well-tested code
|
|
400
|
+
- **Better documentation:** Always current and comprehensive
|
|
401
|
+
- **Reduced technical debt:** Incremental approach prevents accumulation of shortcuts
|
|
402
|
+
- **Improved maintainability:** Clear task tracking and documentation
|
|
403
|
+
- **Team collaboration:** Consistent approach enables better teamwork
|
|
404
|
+
- **Risk mitigation:** Small, tested changes reduce deployment risks
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: 'Guidelines for maintaining project documentation'
|
|
3
|
+
applyTo: '**/*.md'
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Documentation Maintenance 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.
|
|
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 system uses JWT tokens"
|
|
22
|
+
- ❌ Incorrect: "🚧 Authentication system (in progress)"
|
|
23
|
+
- ✅ Correct: "The API 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 system 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
|
+
### Enforcement Rules
|
|
48
|
+
|
|
49
|
+
1. **No Status Emojis in System Documentation:** Architecture, API docs, and README feature descriptions must be purely factual
|
|
50
|
+
2. **No Temporal Language in System Documentation:** Avoid "currently", "recently", "planned", "upcoming" in system docs
|
|
51
|
+
3. **Status Indicators Required in Project Management:** All task lists and project planning docs must use clear status indicators
|
|
52
|
+
4. **Regular Documentation Audits:** Review and remove status language that has crept into system documentation
|
|
53
|
+
5. **Template Compliance:** All generated documentation must follow these principles
|
|
54
|
+
|
|
55
|
+
## Documentation Quality Standards
|
|
56
|
+
|
|
57
|
+
- **Clarity:** Write clear, concise explanations
|
|
58
|
+
- **Completeness:** Ensure documentation covers all necessary aspects
|
|
59
|
+
- **Accuracy:** Verify all information is current and correct
|
|
60
|
+
- **Consistency:** Maintain consistent tone and formatting
|
|
61
|
+
- **Accessibility:** Use clear language and proper formatting for accessibility
|
|
62
|
+
- **Architecture Compliance:** Follow the system vs project documentation distinction
|
|
63
|
+
|
|
64
|
+
## Status Indication Guidelines (For Project Management Documentation Only)
|
|
65
|
+
|
|
66
|
+
**⚠️ IMPORTANT: These guidelines apply ONLY to project management documentation (task lists, planning docs). System documentation (README, architecture, API docs) must NEVER use status indicators.**
|
|
67
|
+
|
|
68
|
+
- **Use checkboxes for task status:** `- [ ]` for incomplete, `- [x]` for complete
|
|
69
|
+
- **Use clear status indicators in project management docs:**
|
|
70
|
+
- ✅ Complete/Implemented
|
|
71
|
+
- 🚧 In Progress
|
|
72
|
+
- ❌ Not Started
|
|
73
|
+
- ⚠️ Needs Review
|
|
74
|
+
- 🔄 Under Revision
|
|
75
|
+
- **Examples of correct project management documentation:**
|
|
76
|
+
- ✅ Good: "🚧 In Progress - User authentication implementation"
|
|
77
|
+
- ✅ Good: "Development Status" with current checkboxes
|
|
78
|
+
- ✅ Good: "✅ Completed - API endpoint testing"
|
|
79
|
+
- **Examples of incorrect system documentation:**
|
|
80
|
+
- ❌ Bad: "🚧 Authentication Features" (in README.md)
|
|
81
|
+
- ❌ Bad: "Authentication system (planned)" (in architecture.md)
|
|
82
|
+
- ❌ Bad: "📋 API Endpoints" (in api-design.md)
|
|
83
|
+
|
|
84
|
+
## Task Management Documentation Guidelines
|
|
85
|
+
|
|
86
|
+
- **Focus on current state:** Document what needs to be done, not what was recently done
|
|
87
|
+
- **Use project phases:** Organize by logical project phases or milestones, not completion status
|
|
88
|
+
- **Move completed work to changelog:** Record completed work in CHANGELOG.md, not in task lists
|
|
89
|
+
- **Keep task lists current:** Update completed items with current status instead of maintaining "completed" sections
|
|
90
|
+
- **Use descriptive section names:** Use functional names like "Core Features", "Infrastructure", "Testing" instead of "Completed Tasks"
|
|
91
|
+
- **Avoid temporal references:** Don't use "Recent", "Latest", "Upcoming" in section headers - they become outdated quickly
|
|
92
|
+
|
|
93
|
+
## README.md Standards (System Documentation)
|
|
94
|
+
|
|
95
|
+
**⚠️ README.md is system documentation - NO status indicators or temporal language allowed**
|
|
96
|
+
|
|
97
|
+
- **Project Overview:** Keep description current with latest capabilities using factual, present-tense language
|
|
98
|
+
- **Installation Instructions:** Verify and update installation steps with clear, current procedures
|
|
99
|
+
- **Usage Examples:** Ensure all code examples are tested and working, describe what they do
|
|
100
|
+
- **Feature Documentation:** Document all major features with examples using factual descriptions
|
|
101
|
+
- **Version Badges:** Keep version badges synchronized with package.json
|
|
102
|
+
- **Links Verification:** Regularly check that all links work correctly
|
|
103
|
+
- **Screenshots/GIFs:** Update visual documentation when UI changes
|
|
104
|
+
- **Avoid Status Language:** Never use "planned", "upcoming", "in progress", or status emojis
|
|
105
|
+
- **Examples:**
|
|
106
|
+
- ✅ Correct: "The CLI provides three commands for project setup"
|
|
107
|
+
- ❌ Incorrect: "🚧 CLI commands (in development)"
|
|
108
|
+
- ✅ Correct: "Authentication uses JWT tokens with refresh capability"
|
|
109
|
+
- ❌ Incorrect: "Authentication system (planned for v2.0)"
|
|
110
|
+
|
|
111
|
+
## CHANGELOG.md Maintenance
|
|
112
|
+
|
|
113
|
+
- **User-Facing Changes:** Document all changes that affect users
|
|
114
|
+
- **Consistent Format:** Follow established changelog format
|
|
115
|
+
- **Categorization:** Group changes appropriately (Added, Changed, Fixed, etc.)
|
|
116
|
+
- **Breaking Changes:** Clearly mark breaking changes
|
|
117
|
+
- **Migration Guides:** Provide migration guidance for breaking changes
|
|
118
|
+
|
|
119
|
+
## Code Documentation
|
|
120
|
+
|
|
121
|
+
- **JSDoc Comments:** Update JSDoc comments when changing public APIs
|
|
122
|
+
- **Inline Comments:** Add comments for complex logic, not obvious code
|
|
123
|
+
- **Function Documentation:** Document parameters, return values, and side effects
|
|
124
|
+
- **Class Documentation:** Explain class purpose, responsibilities, and usage patterns
|
|
125
|
+
- **Type Documentation:** Document complex TypeScript types and interfaces
|
|
126
|
+
|
|
127
|
+
## API Documentation
|
|
128
|
+
|
|
129
|
+
- **Endpoint Documentation:** Keep API endpoint documentation current
|
|
130
|
+
- **Parameter Changes:** Update parameter descriptions for any modifications
|
|
131
|
+
- **Response Examples:** Provide realistic response examples
|
|
132
|
+
- **Error Handling:** Document error responses and status codes
|
|
133
|
+
- **Authentication:** Keep authentication documentation accurate
|
|
134
|
+
|
|
135
|
+
## Architectural Documentation (System Documentation)
|
|
136
|
+
|
|
137
|
+
**⚠️ Architecture docs are system documentation - NO status indicators or temporal language allowed**
|
|
138
|
+
|
|
139
|
+
- **Decision Records:** Record significant architectural decisions in `/meta` folder using factual language
|
|
140
|
+
- **System Overview:** Maintain high-level system architecture documentation describing current implementation
|
|
141
|
+
- **Data Flow:** Document data flow and process workflows as they currently exist
|
|
142
|
+
- **Integration Points:** Document external system integrations that are implemented
|
|
143
|
+
- **Performance Considerations:** Document performance implications of current design decisions
|
|
144
|
+
- **Examples:**
|
|
145
|
+
- ✅ Correct: "The system uses a microservices architecture with three main services"
|
|
146
|
+
- ❌ Incorrect: "🏗️ Microservices architecture (under development)"
|
|
147
|
+
- ✅ Correct: "Data flows through the validation layer before storage"
|
|
148
|
+
- ❌ Incorrect: "Data validation layer (planned implementation)"
|
|
149
|
+
|
|
150
|
+
## Code Examples and Tutorials
|
|
151
|
+
|
|
152
|
+
- **Working Examples:** Ensure all code examples compile and run
|
|
153
|
+
- **Complete Examples:** Provide complete, runnable examples when possible
|
|
154
|
+
- **Progressive Complexity:** Start with simple examples, build to complex ones
|
|
155
|
+
- **Error Handling:** Show proper error handling in examples
|
|
156
|
+
- **Best Practices:** Demonstrate best practices in example code
|
|
157
|
+
|
|
158
|
+
## Test Documentation Standards
|
|
159
|
+
|
|
160
|
+
Follow the standardized table format for all test case documentation:
|
|
161
|
+
|
|
162
|
+
### Required Table Format
|
|
163
|
+
|
|
164
|
+
```markdown
|
|
165
|
+
| Test Case ID | Description | Type | Status |
|
|
166
|
+
| :------------ | :------------------------------------------ | :--- | :-------- |
|
|
167
|
+
| AREA-TYPE-001 | Brief but descriptive test case description | Unit | Completed |
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
### Test Case ID Conventions
|
|
171
|
+
|
|
172
|
+
- **Format:** `[AREA]-[TYPE]-[NUMBER]`
|
|
173
|
+
- **Area Prefixes (adapt to your project):** CORE, API, UI, DB, AUTH, UTIL, CONFIG, DOC, E2E, INT
|
|
174
|
+
- **Type Suffixes:** UNIT, INT, E2E
|
|
175
|
+
- **Sequential Numbering:** 001, 002, 003, etc.
|
|
176
|
+
|
|
177
|
+
### Table Organization Requirements
|
|
178
|
+
|
|
179
|
+
- **Functional Grouping:** Group test cases by system area/component
|
|
180
|
+
- **Consistent Formatting:** Maintain proper column alignment using pipes
|
|
181
|
+
- **Clear Headers:** Use descriptive section headers (e.g., "Template System", "CLI Commands")
|
|
182
|
+
- **Status Tracking:** Use simple status values: "Completed", "In Progress", "Not Started"
|
|
183
|
+
|
|
184
|
+
### Documentation Testing
|
|
185
|
+
|
|
186
|
+
- **Link Checking:** Regularly verify all links work
|
|
187
|
+
- **Code Testing:** Test all code examples in documentation
|
|
188
|
+
- **Installation Testing:** Verify installation instructions work in clean environment
|
|
189
|
+
- **User Testing:** Occasionally have someone unfamiliar try following docs
|
|
190
|
+
|
|
191
|
+
## Maintenance Schedule
|
|
192
|
+
|
|
193
|
+
- **Regular Review:** Schedule regular documentation review cycles
|
|
194
|
+
- **Release Updates:** Update documentation as part of release process
|
|
195
|
+
- **Issue Tracking:** Track documentation issues and improvements
|
|
196
|
+
- **Community Feedback:** Incorporate user feedback on documentation clarity
|
|
197
|
+
|
|
198
|
+
## Localization Considerations
|
|
199
|
+
|
|
200
|
+
- **Clear English:** Use clear, simple English for international audiences
|
|
201
|
+
- **Cultural Sensitivity:** Avoid culture-specific references
|
|
202
|
+
- **Technical Terms:** Define technical terms when first introduced
|
|
203
|
+
- **Consistent Terminology:** Use consistent terminology throughout
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Step-by-step release process automation"
|
|
3
|
+
applyTo: "package.json"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Release Process Checklist
|
|
7
|
+
|
|
8
|
+
## Pre-Release Validation
|
|
9
|
+
1. **Test Suite:** Verify all tests pass: `npm test`
|
|
10
|
+
2. **Build Verification:** Ensure clean build without errors: `npm run build`
|
|
11
|
+
3. **Linting:** Check code quality standards: `npm run lint`
|
|
12
|
+
4. **Dependencies:** Review and update dependencies if needed
|
|
13
|
+
5. **Security Audit:** Run security audit: `npm audit`
|
|
14
|
+
|
|
15
|
+
## Version Management
|
|
16
|
+
1. **Semantic Versioning:** Update version in package.json following SemVer:
|
|
17
|
+
- **MAJOR:** Breaking changes (X.0.0)
|
|
18
|
+
- **MINOR:** New features, backward compatible (0.X.0)
|
|
19
|
+
- **PATCH:** Bug fixes, backward compatible (0.0.X)
|
|
20
|
+
2. **Version Consistency:** Ensure version matches across all relevant files
|
|
21
|
+
3. **Breaking Changes:** Document breaking changes prominently in changelog
|
|
22
|
+
|
|
23
|
+
## Documentation Updates
|
|
24
|
+
1. **README.md Updates:**
|
|
25
|
+
- Update version badges to match package.json version
|
|
26
|
+
- Refresh installation instructions if needed
|
|
27
|
+
- Update feature descriptions for new capabilities
|
|
28
|
+
- Verify all links and examples work correctly
|
|
29
|
+
2. **API Documentation:** Update API docs for any interface changes
|
|
30
|
+
|
|
31
|
+
## Changelog Management
|
|
32
|
+
1. **Add New Entry:** Create new section in CHANGELOG.md with:
|
|
33
|
+
- Release version number (matching package.json)
|
|
34
|
+
- Release date in YYYY-MM-DD format
|
|
35
|
+
- Grouped changes by category:
|
|
36
|
+
- **Added:** New features
|
|
37
|
+
- **Changed:** Changes in existing functionality
|
|
38
|
+
- **Deprecated:** Soon-to-be removed features
|
|
39
|
+
- **Removed:** Now removed features
|
|
40
|
+
- **Fixed:** Bug fixes
|
|
41
|
+
- **Security:** Security vulnerability fixes
|
|
42
|
+
2. **Entry Guidelines:**
|
|
43
|
+
- Keep entries brief but descriptive (1-2 lines per change)
|
|
44
|
+
- Focus on user impact rather than technical implementation
|
|
45
|
+
- Reference issue/PR numbers when applicable: `(#123)`
|
|
46
|
+
- Highlight breaking changes with ⚠️ or **BREAKING:**
|
|
47
|
+
|
|
48
|
+
## Git Operations
|
|
49
|
+
1. **Commit Changes:** Stage all release-related changes
|
|
50
|
+
2. **Commit Message:** Use format: `chore: bump version to vX.Y.Z`
|
|
51
|
+
3. **Create Tag:** Tag the commit with version number: `git tag vX.Y.Z`
|
|
52
|
+
4. **Push Changes:** Push commits and tags: `git push && git push --tags`
|
|
53
|
+
|
|
54
|
+
## GitHub Release
|
|
55
|
+
1. **Create Release:** Create GitHub release with tag matching package.json version
|
|
56
|
+
2. **Release Title:** Use format: `vX.Y.Z - [Brief description]`
|
|
57
|
+
3. **Release Notes:**
|
|
58
|
+
- Copy relevant sections from CHANGELOG.md
|
|
59
|
+
- Include installation instructions
|
|
60
|
+
- Highlight major changes and breaking changes
|
|
61
|
+
- Thank contributors if applicable
|
|
62
|
+
|
|
63
|
+
## Post-Release Verification
|
|
64
|
+
1. **Package Registry:** Verify package published correctly (if applicable)
|
|
65
|
+
2. **Installation Test:** Test installation from registry in clean environment
|
|
66
|
+
3. **Documentation Links:** Ensure all documentation links work correctly
|
|
67
|
+
4. **Monitor Issues:** Watch for any immediate issues reported by users
|
|
68
|
+
|
|
69
|
+
## Rollback Plan
|
|
70
|
+
- **Git Revert:** Know how to revert problematic releases
|
|
71
|
+
- **Package Unpublish:** Understand package registry policies for unpublishing
|
|
72
|
+
- **Communication:** Prepare communication strategy for critical issues
|