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.
Files changed (65) hide show
  1. package/CHANGELOG.md +91 -0
  2. package/LICENSE +21 -0
  3. package/README.md +244 -0
  4. package/bin/metacoding.js +27 -0
  5. package/lib/cli.d.ts +2 -0
  6. package/lib/cli.d.ts.map +1 -0
  7. package/lib/cli.js +83 -0
  8. package/lib/cli.js.map +1 -0
  9. package/lib/commands/init.d.ts +15 -0
  10. package/lib/commands/init.d.ts.map +1 -0
  11. package/lib/commands/init.js +185 -0
  12. package/lib/commands/init.js.map +1 -0
  13. package/lib/commands/update.d.ts +5 -0
  14. package/lib/commands/update.d.ts.map +1 -0
  15. package/lib/commands/update.js +20 -0
  16. package/lib/commands/update.js.map +1 -0
  17. package/lib/commands/validate.d.ts +5 -0
  18. package/lib/commands/validate.d.ts.map +1 -0
  19. package/lib/commands/validate.js +20 -0
  20. package/lib/commands/validate.js.map +1 -0
  21. package/lib/services/filesystem.d.ts +13 -0
  22. package/lib/services/filesystem.d.ts.map +1 -0
  23. package/lib/services/filesystem.js +84 -0
  24. package/lib/services/filesystem.js.map +1 -0
  25. package/lib/services/project-detector.d.ts +12 -0
  26. package/lib/services/project-detector.d.ts.map +1 -0
  27. package/lib/services/project-detector.js +191 -0
  28. package/lib/services/project-detector.js.map +1 -0
  29. package/lib/services/template-manager.d.ts +15 -0
  30. package/lib/services/template-manager.d.ts.map +1 -0
  31. package/lib/services/template-manager.js +167 -0
  32. package/lib/services/template-manager.js.map +1 -0
  33. package/lib/services/vscode.d.ts +10 -0
  34. package/lib/services/vscode.d.ts.map +1 -0
  35. package/lib/services/vscode.js +108 -0
  36. package/lib/services/vscode.js.map +1 -0
  37. package/lib/types/index.d.ts +66 -0
  38. package/lib/types/index.d.ts.map +1 -0
  39. package/lib/types/index.js +3 -0
  40. package/lib/types/index.js.map +1 -0
  41. package/package.json +134 -0
  42. package/templates/general/files/code-review.instructions.md +111 -0
  43. package/templates/general/files/copilot-instructions.md.template +404 -0
  44. package/templates/general/files/docs-update.instructions.md +203 -0
  45. package/templates/general/files/release.instructions.md +72 -0
  46. package/templates/general/files/test-runner.instructions.md +107 -0
  47. package/templates/general/template.json +9 -0
  48. package/templates/node/files/code-review.instructions.md +222 -0
  49. package/templates/node/files/copilot-instructions.md.template +391 -0
  50. package/templates/node/files/docs-update.instructions.md +203 -0
  51. package/templates/node/files/release.instructions.md +72 -0
  52. package/templates/node/files/test-runner.instructions.md +108 -0
  53. package/templates/node/template.json +23 -0
  54. package/templates/python/files/code-review.instructions.md +215 -0
  55. package/templates/python/files/copilot-instructions.md.template +418 -0
  56. package/templates/python/files/docs-update.instructions.md +203 -0
  57. package/templates/python/files/release.instructions.md +72 -0
  58. package/templates/python/files/test-runner.instructions.md +108 -0
  59. package/templates/python/template.json +75 -0
  60. package/templates/react/files/code-review.instructions.md +160 -0
  61. package/templates/react/files/copilot-instructions.md.template +472 -0
  62. package/templates/react/files/docs-update.instructions.md +203 -0
  63. package/templates/react/files/release.instructions.md +72 -0
  64. package/templates/react/files/test-runner.instructions.md +108 -0
  65. package/templates/react/template.json +14 -0
@@ -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
@@ -0,0 +1,108 @@
1
+ ---
2
+ description: 'Instructions for running and maintaining tests'
3
+ applyTo: 'test/**/*.ts'
4
+ ---
5
+
6
+ # Test Execution Guidelines
7
+
8
+ ## Pre-Commit Testing
9
+
10
+ - Run all tests before committing changes: `npm test`
11
+ - Ensure tests pass in both development and CI environments
12
+ - Fix failing tests before proceeding with commits
13
+ - Run specific test suites for targeted changes when appropriate
14
+
15
+ ## Test Development Standards
16
+
17
+ - **New Features:** Ensure all new features have corresponding unit tests
18
+ - **Test Coverage:** Aim for high coverage of critical functionality paths
19
+ - **Test Documentation:** Follow table format in `test/test-documentation.md` for all test cases
20
+ - **Test Organization:** Group related tests in describe blocks with clear hierarchy
21
+
22
+ ## Test Case Documentation Format
23
+
24
+ All test cases must be documented using the standardized table format:
25
+
26
+ ```markdown
27
+ | Test Case ID | Description | Type | Status |
28
+ | :------------ | :------------------------------------------ | :--- | :-------- |
29
+ | AREA-TYPE-001 | Brief but descriptive test case description | Unit | Completed |
30
+ ```
31
+
32
+ ## Test Case Naming Conventions
33
+
34
+ ### Test Case ID Format: `[AREA]-[TYPE]-[NUMBER]`
35
+
36
+ **Area Prefixes (Python/Django specific):**
37
+
38
+ - `VIEW` - Django views/FastAPI endpoints tests
39
+ - `MODEL` - Django models/SQLAlchemy tests
40
+ - `FORM` - Django forms/Pydantic validators tests
41
+ - `MW` - Middleware tests
42
+ - `AUTH` - Authentication/Authorization tests
43
+ - `UTIL` - Utility function tests
44
+ - `CMD` - Django management commands tests
45
+ - `CONFIG` - Configuration/Settings tests
46
+ - `DOC` - Documentation Quality tests
47
+ - `E2E` - End-to-End workflow tests
48
+ - `INT` - Integration tests
49
+
50
+ **Type Suffixes:**
51
+
52
+ - `UNIT` - Unit tests
53
+ - `INT` - Integration tests
54
+ - `E2E` - End-to-end tests
55
+
56
+ **Examples:**
57
+
58
+ - `VIEW-UNIT-001` - First unit test for Django Views
59
+ - `MODEL-UNIT-001` - First unit test for Django Models
60
+ - `AUTH-INT-001` - First integration test for Authentication
61
+ - `E2E-WF-001` - First end-to-end workflow test
62
+
63
+ ### Test Method Naming
64
+
65
+ - Format: `methodName_scenario_expectedOutcome`
66
+ - Example: `getUserById_userExists_returnsUserObject`
67
+ - Use camelCase for all test method names
68
+
69
+ ## Test Data Management
70
+
71
+ - **Fixtures:** Update test fixtures when data structures change
72
+ - **Realistic Data:** Use realistic data in integration tests to catch real-world issues
73
+ - **Mock Strategy:** Mock external dependencies in unit tests for isolation
74
+ - **Test Database:** Use separate test database/environment for integration tests
75
+ - **Temporary File Cleanup:** Clean up all temporary test files, debug outputs, and mock data after test execution
76
+ - **Fixture Organization:** Move reusable test data to `/test/fixtures/` directory for proper organization
77
+
78
+ ## Test File Hygiene
79
+
80
+ - **No Orphaned Files:** Remove temporary test files created during debugging or development
81
+ - **Debug Output Cleanup:** Remove console.log statements and debug files before committing
82
+ - **Test Artifact Management:** Ensure test screenshots, logs, and reports are properly managed or cleaned up
83
+ - **Resource Management:** Properly dispose of file handles, database connections, and other test resources
84
+
85
+ ## Test Types and Patterns
86
+
87
+ - **Unit Tests:** Test individual functions, methods, and components in isolation
88
+ - **Integration Tests:** Test feature workflows and component interactions
89
+ - **End-to-End Tests:** Test complete user scenarios and workflows
90
+ - **Regression Tests:** Add tests for previously fixed bugs to prevent recurrence
91
+
92
+ ## Performance Testing
93
+
94
+ - **Test Execution Speed:** Keep unit tests fast (under 100ms each when possible)
95
+ - **Parallel Execution:** Structure tests to run safely in parallel
96
+ - **Resource Cleanup:** Ensure proper cleanup of test resources and temporary data
97
+ - **Memory Management:** Monitor and prevent memory leaks in long-running test suites
98
+
99
+ ## Test Maintenance
100
+
101
+ - **Regular Review:** Periodically review and refactor outdated tests
102
+ - **Documentation:** Document complex test scenarios and their purposes
103
+ - **Continuous Updates:** Update tests when requirements or APIs change
104
+ - **Test Quality:** Apply the same code quality standards to test code as production code
105
+ - **Update test-documentation.md:** Add new test cases to the appropriate table section
106
+ - **Status Tracking:** Update test status as development progresses
107
+ - **Table Format:** Maintain consistent table formatting and column alignment
108
+ - **ID Assignment:** Assign sequential IDs within each area (AREA-TYPE-001, AREA-TYPE-002, etc.)
@@ -0,0 +1,75 @@
1
+ {
2
+ "name": "python",
3
+ "description": "Python backend development template with Django, Flask, and FastAPI support",
4
+ "projectTypes": [
5
+ "Python Application",
6
+ "Django Application",
7
+ "Flask Application",
8
+ "FastAPI Application"
9
+ ],
10
+ "techStack": ["Python", "Django", "Flask", "FastAPI", "SQLAlchemy", "pytest"],
11
+ "vscodeSettings": {
12
+ "github.copilot.chat.codeGeneration.useInstructionFiles": true,
13
+ "chat.promptFiles": true,
14
+ "python.defaultInterpreterPath": "./venv/bin/python",
15
+ "python.terminal.activateEnvironment": true,
16
+ "python.testing.pytestEnabled": true,
17
+ "python.testing.unittestEnabled": false,
18
+ "python.testing.pytestArgs": ["."],
19
+ "python.linting.enabled": true,
20
+ "python.linting.pylintEnabled": false,
21
+ "python.linting.flake8Enabled": true,
22
+ "python.formatting.provider": "black",
23
+ "python.sortImports.args": ["--profile", "black"]
24
+ },
25
+ "gitignore": [
26
+ "__pycache__/",
27
+ "*.py[cod]",
28
+ "*$py.class",
29
+ "*.so",
30
+ ".Python",
31
+ "build/",
32
+ "develop-eggs/",
33
+ "dist/",
34
+ "downloads/",
35
+ "eggs/",
36
+ ".eggs/",
37
+ "lib/",
38
+ "lib64/",
39
+ "parts/",
40
+ "sdist/",
41
+ "var/",
42
+ "wheels/",
43
+ "*.egg-info/",
44
+ ".installed.cfg",
45
+ "*.egg",
46
+ "MANIFEST",
47
+ "*.manifest",
48
+ "*.spec",
49
+ "pip-log.txt",
50
+ "pip-delete-this-directory.txt",
51
+ ".tox/",
52
+ ".coverage",
53
+ ".pytest_cache/",
54
+ ".coverage.*",
55
+ "coverage.xml",
56
+ "*.cover",
57
+ ".hypothesis/",
58
+ ".env",
59
+ ".venv",
60
+ "env/",
61
+ "venv/",
62
+ "ENV/",
63
+ "env.bak/",
64
+ "venv.bak/",
65
+ ".mypy_cache/",
66
+ ".dmypy.json",
67
+ "dmypy.json",
68
+ "db.sqlite3",
69
+ "*.log",
70
+ "celerybeat-schedule",
71
+ "celerybeat.pid",
72
+ "staticfiles/",
73
+ "media/"
74
+ ]
75
+ }
@@ -0,0 +1,160 @@
1
+ ---
2
+ description: 'Automated code review checklist'
3
+ applyTo: '**'
4
+ ---
5
+
6
+ # Code Review Focus Areas
7
+
8
+ ## React-Specific Functionality Assessment
9
+
10
+ - **Component Props:** Are prop interfaces well-defined and type-safe?
11
+ - **State Management:** Is state handled appropriately (local vs global)?
12
+ - **Effect Dependencies:** Are useEffect dependencies complete and accurate?
13
+ - **Event Handlers:** Are event handlers properly memoized when needed?
14
+ - **Conditional Rendering:** Are all rendering paths tested and accessible?
15
+
16
+ ## React Component Quality
17
+
18
+ - **Single Responsibility:** Does each component have a single, clear purpose?
19
+ - **Component Size:** Are components reasonably sized and focused?
20
+ - **Props Design:** Are props minimal, well-typed, and follow interface patterns?
21
+ - **Hook Usage:** Are hooks used correctly and following Rules of Hooks?
22
+ - **JSX Quality:** Is JSX readable, semantic, and properly structured?
23
+
24
+ ## React Performance Considerations
25
+
26
+ - **Re-render Optimization:** Are unnecessary re-renders prevented with memo/callback?
27
+ - **Bundle Size:** Do imports follow tree-shaking best practices?
28
+ - **Lazy Loading:** Are code splitting opportunities identified and implemented?
29
+ - **Memory Leaks:** Are effects cleaned up properly on unmount?
30
+ - **Key Props:** Are list items using stable, unique keys?
31
+
32
+ ## React Security and Accessibility
33
+
34
+ - **XSS Prevention:** Is user input properly sanitized in JSX?
35
+ - **ARIA Compliance:** Are interactive elements properly labeled?
36
+ - **Semantic HTML:** Are semantic HTML elements used instead of generic divs?
37
+ - **Keyboard Navigation:** Are all interactive elements keyboard accessible?
38
+ - **Focus Management:** Is focus handled correctly for dynamic content?
39
+
40
+ ## React Testing Quality
41
+
42
+ - **Component Testing:** Are components tested using React Testing Library?
43
+ - **User-Focused Tests:** Do tests verify user behavior rather than implementation?
44
+ - **Hook Testing:** Are custom hooks tested independently?
45
+ - **Integration Testing:** Are component interactions tested realistically?
46
+ - **Accessibility Testing:** Are accessibility features included in tests?
47
+
48
+ ## React File and Component Hygiene
49
+
50
+ - **Component Cleanup:** Are temporary/experimental React components removed from the codebase?
51
+ - **JSX Debug Elements:** Are debug divs, temporary styling, and console.log statements removed?
52
+ - **Unused Imports:** Are unused React imports, hooks, and component imports cleaned up?
53
+ - **Mock Component Removal:** Are temporary mock components moved to proper mock directories or removed?
54
+ - **Storybook Integration:** Are useful component experiments moved to Storybook stories?
55
+ - **Style Experiments:** Are temporary CSS/styled-component experiments cleaned up or properly organized?
56
+
57
+ ## React-Specific Anti-Patterns to Flag
58
+
59
+ - **Direct State Mutation:** Mutating state objects directly instead of using setState
60
+ - **Missing Keys:** Using array indices or missing keys in lists
61
+ - **Inline Object Creation:** Creating objects/functions in render without memoization
62
+ - **useEffect Overuse:** Using useEffect when derived state would suffice
63
+ - **Props Drilling:** Passing props through multiple levels unnecessarily
64
+ - **God Components:** Components handling too many concerns
65
+
66
+ ## Functionality Assessment
67
+
68
+ - **Requirements Compliance:** Does the code meet the specified requirements?
69
+ - **Edge Cases:** Are edge cases properly handled?
70
+ - **Error Scenarios:** How does the code behave with invalid inputs?
71
+ - **Business Logic:** Is the business logic correctly implemented?
72
+ - **Integration Points:** Do integrations with other components work correctly?
73
+
74
+ ## Code Quality and Readability
75
+
76
+ - **Naming Conventions:** Are variables, functions, and classes named clearly?
77
+ - **Code Structure:** Is the code well-organized and logically structured?
78
+ - **Function Size:** Are functions focused and reasonably sized (< 50 lines)?
79
+ - **Complexity:** Is the code unnecessarily complex or could it be simplified?
80
+ - **Comments:** Are comments helpful and explain "why" not "what"?
81
+ - **Consistency:** Does the code follow established project patterns?
82
+
83
+ ## Performance Considerations
84
+
85
+ - **Algorithm Efficiency:** Are appropriate algorithms and data structures used?
86
+ - **Memory Usage:** Are there potential memory leaks or excessive memory usage?
87
+ - **Database Queries:** Are database queries optimized and avoid N+1 problems?
88
+ - **Async Operations:** Are async operations used appropriately for I/O?
89
+ - **Caching:** Are caching opportunities identified and implemented correctly?
90
+ - **Resource Management:** Are resources properly acquired and released?
91
+
92
+ ## Security Review
93
+
94
+ - **Input Validation:** Are all inputs properly validated and sanitized?
95
+ - **Authentication:** Are authentication checks in place where needed?
96
+ - **Authorization:** Are authorization checks appropriate for the functionality?
97
+ - **Data Exposure:** Is sensitive data properly protected?
98
+ - **Injection Attacks:** Are SQL injection and other injection attacks prevented?
99
+ - **Encryption:** Is sensitive data encrypted appropriately?
100
+
101
+ ## Testing and Testability
102
+
103
+ - **Test Coverage:** Are there sufficient tests for the new functionality?
104
+ - **Test Quality:** Are tests meaningful and test the right things?
105
+ - **Testability:** Is the code structured to be easily testable?
106
+ - **Mocking:** Are external dependencies properly mocked in tests?
107
+ - **Integration Tests:** Are integration points covered by appropriate tests?
108
+ - **Regression Protection:** Do tests protect against known regression issues?
109
+
110
+ ## Error Handling and Logging
111
+
112
+ - **Exception Handling:** Are exceptions handled appropriately?
113
+ - **Error Messages:** Are error messages helpful for debugging?
114
+ - **Logging:** Is appropriate logging in place for debugging and monitoring?
115
+ - **Graceful Degradation:** Does the system handle failures gracefully?
116
+ - **Recovery:** Are there appropriate recovery mechanisms?
117
+
118
+ ## Documentation and Maintenance
119
+
120
+ - **Code Documentation:** Is the code self-documenting or properly commented?
121
+ - **API Documentation:** Are public APIs documented with JSDoc?
122
+ - **Breaking Changes:** Are breaking changes clearly identified and documented?
123
+ - **Migration Guides:** Are migration paths provided for breaking changes?
124
+ - **Changelog Updates:** Are user-facing changes documented in changelog?
125
+
126
+ ## Standards Compliance
127
+
128
+ - **Coding Standards:** Does the code follow project coding standards?
129
+ - **Architectural Patterns:** Are established architectural patterns followed?
130
+ - **Dependency Management:** Are new dependencies justified and properly managed?
131
+ - **Configuration:** Are configuration changes handled appropriately?
132
+ - **Version Compatibility:** Is backwards compatibility maintained where required?
133
+
134
+ ## Common Anti-Patterns to Flag
135
+
136
+ - **Deep Nesting:** Excessive if/else or try/catch nesting
137
+ - **God Objects:** Classes or functions with too many responsibilities
138
+ - **Magic Numbers:** Hardcoded values without explanation
139
+ - **Copy-Paste Code:** Duplicated code that should be refactored
140
+ - **Tight Coupling:** Components that are too dependent on each other
141
+ - **Memory Leaks:** Objects not properly cleaned up
142
+ - **Blocking Operations:** Synchronous operations that could block the main thread
143
+
144
+ ## Review Process Guidelines
145
+
146
+ - **Constructive Feedback:** Provide specific, actionable feedback
147
+ - **Explain Reasoning:** Explain why changes are needed
148
+ - **Suggest Alternatives:** Offer alternative approaches when applicable
149
+ - **Acknowledge Good Work:** Recognize well-written code and good practices
150
+ - **Focus on Code:** Keep feedback focused on code, not personal
151
+ - **Prioritize Issues:** Distinguish between critical issues and suggestions
152
+
153
+ ## Automated Checks to Verify
154
+
155
+ - **Linting:** Code passes linting rules
156
+ - **Formatting:** Code follows formatting standards
157
+ - **Type Checking:** TypeScript compilation succeeds without errors
158
+ - **Tests:** All tests pass including new and existing ones
159
+ - **Build:** Code builds successfully
160
+ - **Security Scans:** Automated security scans pass