@schilling.mark.a/atdd-guardian 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 (59) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/CONTRIBUTING.md +154 -0
  3. package/DISTRIBUTION.md +366 -0
  4. package/LICENSE +21 -0
  5. package/QUICKSTART.md +194 -0
  6. package/README.md +406 -0
  7. package/SHARING.md +223 -0
  8. package/dist/constants.d.ts +19 -0
  9. package/dist/constants.d.ts.map +1 -0
  10. package/dist/constants.js +38 -0
  11. package/dist/constants.js.map +1 -0
  12. package/dist/index.d.ts +23 -0
  13. package/dist/index.d.ts.map +1 -0
  14. package/dist/index.js +72 -0
  15. package/dist/index.js.map +1 -0
  16. package/dist/schemas/tool-schemas.d.ts +404 -0
  17. package/dist/schemas/tool-schemas.d.ts.map +1 -0
  18. package/dist/schemas/tool-schemas.js +267 -0
  19. package/dist/schemas/tool-schemas.js.map +1 -0
  20. package/dist/services/context-review.d.ts +65 -0
  21. package/dist/services/context-review.d.ts.map +1 -0
  22. package/dist/services/context-review.js +300 -0
  23. package/dist/services/context-review.js.map +1 -0
  24. package/dist/services/formatter.d.ts +10 -0
  25. package/dist/services/formatter.d.ts.map +1 -0
  26. package/dist/services/formatter.js +173 -0
  27. package/dist/services/formatter.js.map +1 -0
  28. package/dist/services/phase-gate.d.ts +38 -0
  29. package/dist/services/phase-gate.d.ts.map +1 -0
  30. package/dist/services/phase-gate.js +309 -0
  31. package/dist/services/phase-gate.js.map +1 -0
  32. package/dist/services/review-engine.d.ts +26 -0
  33. package/dist/services/review-engine.d.ts.map +1 -0
  34. package/dist/services/review-engine.js +235 -0
  35. package/dist/services/review-engine.js.map +1 -0
  36. package/dist/services/rule-loader.d.ts +19 -0
  37. package/dist/services/rule-loader.d.ts.map +1 -0
  38. package/dist/services/rule-loader.js +91 -0
  39. package/dist/services/rule-loader.js.map +1 -0
  40. package/dist/services/session-manager.d.ts +75 -0
  41. package/dist/services/session-manager.d.ts.map +1 -0
  42. package/dist/services/session-manager.js +244 -0
  43. package/dist/services/session-manager.js.map +1 -0
  44. package/dist/services/test-runner.d.ts +53 -0
  45. package/dist/services/test-runner.d.ts.map +1 -0
  46. package/dist/services/test-runner.js +199 -0
  47. package/dist/services/test-runner.js.map +1 -0
  48. package/dist/tools/review-tools.d.ts +26 -0
  49. package/dist/tools/review-tools.d.ts.map +1 -0
  50. package/dist/tools/review-tools.js +904 -0
  51. package/dist/tools/review-tools.js.map +1 -0
  52. package/dist/types.d.ts +339 -0
  53. package/dist/types.d.ts.map +1 -0
  54. package/dist/types.js +13 -0
  55. package/dist/types.js.map +1 -0
  56. package/examples/README.md +119 -0
  57. package/examples/mcp-config.json +11 -0
  58. package/examples/test-config.json +7 -0
  59. package/package.json +48 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,37 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [1.0.0] - 2026-02-16
9
+
10
+ ### Added
11
+ - Initial release of ATDD Guardian MCP Server
12
+ - 14 MCP tools for ATDD workflow enforcement
13
+ - Context tools: `start_feature`, `advance_phase`, `update_criterion`, `get_context`
14
+ - Enforcement tools: `start_unit_cycle`, `advance_unit_cycle`, `run_tests`, `get_tdd_status`
15
+ - Review tools: `review_code`, `review_file`
16
+ - Rule tools: `list_rules`, `explain_rule`, `add_rule`
17
+ - Feedback tools: `record_pr_feedback`
18
+ - Phase gate enforcement for TDD discipline
19
+ - Nested unit TDD cycle tracking
20
+ - Team standards rule engine with customizable rules
21
+ - PDCA cycle integration for continuous improvement
22
+ - AC coverage validation
23
+ - File completeness checking
24
+ - Architecture decision compliance
25
+ - Definition of Done validation
26
+ - Test framework integration (Playwright, Jest, Vitest)
27
+ - Persistent session state management
28
+ - Markdown and JSON output formatting
29
+ - Comprehensive README with examples
30
+
31
+ ### Documentation
32
+ - Full README.md with architecture, workflow, and examples
33
+ - MIT License
34
+ - Contributing guidelines
35
+ - Package configuration for npm distribution
36
+
37
+ [1.0.0]: https://github.com/MarkSchilling/atdd-guardian/releases/tag/v1.0.0
@@ -0,0 +1,154 @@
1
+ # Contributing to ATDD Guardian MCP Server
2
+
3
+ Thank you for your interest in contributing! This document provides guidelines for contributing to the ATDD Guardian MCP Server.
4
+
5
+ ## Getting Started
6
+
7
+ 1. **Fork the repository** on GitHub
8
+ 2. **Clone your fork** locally:
9
+ ```bash
10
+ git clone https://github.com/YOUR-USERNAME/atdd-guardian.git
11
+ cd atdd-guardian
12
+ ```
13
+ 3. **Install dependencies**:
14
+ ```bash
15
+ npm install
16
+ ```
17
+ 4. **Build the project**:
18
+ ```bash
19
+ npm run build
20
+ ```
21
+
22
+ ## Development Workflow
23
+
24
+ 1. **Create a feature branch**:
25
+ ```bash
26
+ git checkout -b feature/your-feature-name
27
+ ```
28
+
29
+ 2. **Make your changes** following the code style
30
+ - Use TypeScript
31
+ - Follow existing code patterns
32
+ - Add JSDoc comments for public APIs
33
+
34
+ 3. **Build and test**:
35
+ ```bash
36
+ npm run build
37
+ npm start # Test the server manually
38
+ ```
39
+
40
+ 4. **Commit your changes**:
41
+ ```bash
42
+ git add .
43
+ git commit -m "Description of your changes"
44
+ ```
45
+
46
+ 5. **Push to your fork**:
47
+ ```bash
48
+ git push origin feature/your-feature-name
49
+ ```
50
+
51
+ 6. **Open a Pull Request** on GitHub
52
+
53
+ ## Code Style
54
+
55
+ - Use TypeScript for all code
56
+ - Follow existing naming conventions
57
+ - Use meaningful variable and function names
58
+ - Add comments for complex logic
59
+ - Keep functions focused and small
60
+
61
+ ## Adding New Rules
62
+
63
+ To add a new team standard rule:
64
+
65
+ 1. Edit `src/rules/team-standards.json`
66
+ 2. Follow the existing rule structure:
67
+ ```json
68
+ {
69
+ "id": "unique-id",
70
+ "name": "Descriptive rule name",
71
+ "severity": "error" | "warning" | "info",
72
+ "pattern": "regex pattern",
73
+ "appliesTo": ["file globs"],
74
+ "applicablePhases": ["phases"],
75
+ "explanation": "Why this rule exists",
76
+ "fix": "How to fix violations",
77
+ "goodExample": "Code that follows the rule",
78
+ "badExample": "Code that violates the rule"
79
+ }
80
+ ```
81
+
82
+ ## Adding New Tools
83
+
84
+ To add a new MCP tool:
85
+
86
+ 1. Define the tool schema in `src/schemas/tool-schemas.ts`
87
+ 2. Implement the tool handler in `src/tools/review-tools.ts`
88
+ 3. Update the README.md with tool documentation
89
+ 4. Test the tool manually with a real project
90
+
91
+ ## Project Structure
92
+
93
+ ```
94
+ atdd-guardian-mcp-server/
95
+ ├── src/
96
+ │ ├── index.ts # MCP server entry point
97
+ │ ├── types.ts # Type definitions
98
+ │ ├── constants.ts # Shared constants
99
+ │ ├── tools/ # MCP tool implementations
100
+ │ ├── services/ # Core business logic
101
+ │ ├── schemas/ # Zod validation schemas
102
+ │ └── rules/ # Team standards rules
103
+ ├── package.json
104
+ ├── tsconfig.json
105
+ └── README.md
106
+ ```
107
+
108
+ ## Testing
109
+
110
+ Currently, testing is manual:
111
+
112
+ 1. Build the server: `npm run build`
113
+ 2. Configure it in your VS Code MCP settings
114
+ 3. Test with a real project that has the `.atdd-guardian/` directory
115
+
116
+ We welcome contributions to add automated testing!
117
+
118
+ ## Documentation
119
+
120
+ When adding features:
121
+
122
+ - Update the README.md with new functionality
123
+ - Add JSDoc comments to new functions
124
+ - Update the tool documentation table if adding tools
125
+ - Include examples in the README
126
+
127
+ ## Reporting Issues
128
+
129
+ When reporting issues:
130
+
131
+ 1. Check existing issues first
132
+ 2. Provide a clear description
133
+ 3. Include steps to reproduce
134
+ 4. Share relevant configuration files
135
+ 5. Include error messages and logs
136
+
137
+ ## PDCA Cycle
138
+
139
+ This project follows the PDCA (Plan-Do-Check-Act) cycle:
140
+
141
+ - **Plan**: Define rules in team-standards.json
142
+ - **Do**: Write code and run review_code
143
+ - **Check**: Compare findings to actual PR feedback
144
+ - **Act**: Add new rules based on feedback
145
+
146
+ When contributing rules based on PR feedback, document the issue that led to the rule.
147
+
148
+ ## License
149
+
150
+ By contributing, you agree that your contributions will be licensed under the MIT License.
151
+
152
+ ## Questions?
153
+
154
+ Open an issue on GitHub for questions or clarifications.
@@ -0,0 +1,366 @@
1
+ # Distribution Guide
2
+
3
+ This guide explains how to share and distribute the ATDD Guardian MCP Server with others.
4
+
5
+ ## Table of Contents
6
+
7
+ 1. [Distribution Methods](#distribution-methods)
8
+ 2. [Publishing to npm](#publishing-to-npm)
9
+ 3. [Sharing via GitHub](#sharing-via-github)
10
+ 4. [Direct Distribution](#direct-distribution)
11
+ 5. [Installation Instructions for Users](#installation-instructions-for-users)
12
+ 6. [Versioning Strategy](#versioning-strategy)
13
+
14
+ ## Distribution Methods
15
+
16
+ ### 1. NPM Package (Recommended for Public Use)
17
+
18
+ **Advantages:**
19
+ - Easy installation with `npm install`
20
+ - Automatic dependency management
21
+ - Version control and updates
22
+ - Discoverable in npm registry
23
+ - Global installation option
24
+
25
+ **When to use:**
26
+ - Sharing with the broader community
27
+ - Making the server easily accessible
28
+ - Providing automatic updates
29
+
30
+ ### 2. GitHub Repository
31
+
32
+ **Advantages:**
33
+ - Open source collaboration
34
+ - Issue tracking and discussions
35
+ - Version control with git
36
+ - Easy contribution workflow
37
+ - Free hosting
38
+
39
+ **When to use:**
40
+ - Open source projects
41
+ - Development and collaboration
42
+ - Users who want latest features
43
+
44
+ ### 3. Direct Distribution (Tarball)
45
+
46
+ **Advantages:**
47
+ - No external dependencies (npm registry)
48
+ - Works in air-gapped environments
49
+ - Control over distribution
50
+ - Simple file transfer
51
+
52
+ **When to use:**
53
+ - Internal/private distribution
54
+ - Corporate environments without internet access
55
+ - Quick sharing with specific users
56
+
57
+ ## Publishing to npm
58
+
59
+ ### Prerequisites
60
+
61
+ 1. Create an npm account at [npmjs.com](https://www.npmjs.com)
62
+ 2. Login via command line:
63
+ ```bash
64
+ npm login
65
+ ```
66
+
67
+ ### Publishing Process
68
+
69
+ 1. **Ensure package.json is correct:**
70
+ ```bash
71
+ # Check the package name is available
72
+ npm search atdd-guardian-mcp-server
73
+
74
+ # View what will be published
75
+ npm pack --dry-run
76
+ ```
77
+
78
+ 2. **Build the project:**
79
+ ```bash
80
+ npm run build
81
+ ```
82
+
83
+ 3. **Test the package locally:**
84
+ ```bash
85
+ # Create a tarball
86
+ npm pack
87
+
88
+ # Test install in another directory
89
+ cd /tmp/test-project
90
+ npm install /path/to/atdd-guardian-mcp-server-1.0.0.tgz
91
+ ```
92
+
93
+ 4. **Publish to npm:**
94
+ ```bash
95
+ # First release
96
+ npm publish
97
+
98
+ # Or for scoped package (recommended for personal/org packages)
99
+ npm publish --access public
100
+ ```
101
+
102
+ 5. **Verify publication:**
103
+ ```bash
104
+ npm info atdd-guardian-mcp-server
105
+ ```
106
+
107
+ ### Updating Published Package
108
+
109
+ 1. **Update version in package.json:**
110
+ ```bash
111
+ # Patch version (bug fixes): 1.0.0 -> 1.0.1
112
+ npm version patch
113
+
114
+ # Minor version (new features): 1.0.0 -> 1.1.0
115
+ npm version minor
116
+
117
+ # Major version (breaking changes): 1.0.0 -> 2.0.0
118
+ npm version major
119
+ ```
120
+
121
+ 2. **Update CHANGELOG.md** with changes
122
+
123
+ 3. **Publish:**
124
+ ```bash
125
+ npm publish
126
+ ```
127
+
128
+ ### Unpublishing (if needed)
129
+
130
+ ```bash
131
+ # Unpublish a specific version (within 72 hours)
132
+ npm unpublish atdd-guardian-mcp-server@1.0.0
133
+
134
+ # Deprecate a version (preferred over unpublish)
135
+ npm deprecate atdd-guardian-mcp-server@1.0.0 "Use version 1.0.1 instead"
136
+ ```
137
+
138
+ ## Sharing via GitHub
139
+
140
+ ### Setting Up Repository
141
+
142
+ 1. **Push to GitHub** (already done):
143
+ ```bash
144
+ git push origin main
145
+ ```
146
+
147
+ 2. **Create releases:**
148
+ ```bash
149
+ # Tag the release
150
+ git tag -a v1.0.0 -m "Release version 1.0.0"
151
+ git push origin v1.0.0
152
+ ```
153
+
154
+ 3. **Create GitHub Release:**
155
+ - Go to https://github.com/MarkSchilling/atdd-guardian/releases
156
+ - Click "Create a new release"
157
+ - Select the tag (v1.0.0)
158
+ - Add release notes from CHANGELOG.md
159
+ - Attach the tarball (optional): `atdd-guardian-mcp-server-1.0.0.tgz`
160
+ - Publish release
161
+
162
+ ### Installation from GitHub
163
+
164
+ Users can install with:
165
+
166
+ ```bash
167
+ # Clone and build
168
+ git clone https://github.com/MarkSchilling/atdd-guardian.git
169
+ cd atdd-guardian
170
+ npm install
171
+ npm run build
172
+
173
+ # Or install directly from GitHub (requires public repo)
174
+ npm install github:MarkSchilling/atdd-guardian
175
+ ```
176
+
177
+ ## Direct Distribution
178
+
179
+ ### Creating a Distribution Package
180
+
181
+ 1. **Build the project:**
182
+ ```bash
183
+ npm run build
184
+ ```
185
+
186
+ 2. **Create tarball:**
187
+ ```bash
188
+ npm pack
189
+ # Creates: atdd-guardian-mcp-server-1.0.0.tgz
190
+ ```
191
+
192
+ 3. **Share the tarball:**
193
+ - Email attachment
194
+ - Internal file server
195
+ - Shared drive
196
+ - Cloud storage
197
+
198
+ ### Installation from Tarball
199
+
200
+ Users install with:
201
+
202
+ ```bash
203
+ npm install atdd-guardian-mcp-server-1.0.0.tgz
204
+ ```
205
+
206
+ Or globally:
207
+
208
+ ```bash
209
+ npm install -g atdd-guardian-mcp-server-1.0.0.tgz
210
+ ```
211
+
212
+ ## Installation Instructions for Users
213
+
214
+ ### From npm (after publishing)
215
+
216
+ ```bash
217
+ # Global installation
218
+ npm install -g atdd-guardian-mcp-server
219
+
220
+ # Local installation
221
+ npm install --save-dev atdd-guardian-mcp-server
222
+ ```
223
+
224
+ **VS Code Configuration (global install):**
225
+ ```json
226
+ {
227
+ "servers": {
228
+ "atdd-guardian": {
229
+ "type": "stdio",
230
+ "command": "atdd-guardian-mcp"
231
+ }
232
+ }
233
+ }
234
+ ```
235
+
236
+ ### From GitHub
237
+
238
+ ```bash
239
+ git clone https://github.com/MarkSchilling/atdd-guardian.git
240
+ cd atdd-guardian
241
+ npm install
242
+ npm run build
243
+ ```
244
+
245
+ **VS Code Configuration:**
246
+ ```json
247
+ {
248
+ "servers": {
249
+ "atdd-guardian": {
250
+ "type": "stdio",
251
+ "command": "node",
252
+ "args": ["/absolute/path/to/atdd-guardian/dist/index.js"]
253
+ }
254
+ }
255
+ }
256
+ ```
257
+
258
+ ### From Tarball
259
+
260
+ ```bash
261
+ npm install /path/to/atdd-guardian-mcp-server-1.0.0.tgz
262
+ ```
263
+
264
+ **VS Code Configuration:**
265
+ ```json
266
+ {
267
+ "servers": {
268
+ "atdd-guardian": {
269
+ "type": "stdio",
270
+ "command": "node",
271
+ "args": ["./node_modules/atdd-guardian-mcp-server/dist/index.js"]
272
+ }
273
+ }
274
+ }
275
+ ```
276
+
277
+ ## Versioning Strategy
278
+
279
+ This project follows [Semantic Versioning](https://semver.org/):
280
+
281
+ - **MAJOR** version (1.0.0 → 2.0.0): Incompatible API changes
282
+ - Breaking changes to tool schemas
283
+ - Removal of tools
284
+ - Changes to configuration file format
285
+
286
+ - **MINOR** version (1.0.0 → 1.1.0): New functionality, backwards compatible
287
+ - New MCP tools
288
+ - New team rules
289
+ - New configuration options (with defaults)
290
+
291
+ - **PATCH** version (1.0.0 → 1.0.1): Bug fixes, backwards compatible
292
+ - Bug fixes
293
+ - Documentation updates
294
+ - Minor rule improvements
295
+
296
+ ### Release Checklist
297
+
298
+ Before each release:
299
+
300
+ - [ ] Update version in `package.json`
301
+ - [ ] Update `CHANGELOG.md` with changes
302
+ - [ ] Run `npm run build` successfully
303
+ - [ ] Test the build locally
304
+ - [ ] Create git tag: `git tag -a v1.x.x -m "Release 1.x.x"`
305
+ - [ ] Push tag: `git push origin v1.x.x`
306
+ - [ ] Create GitHub Release with notes
307
+ - [ ] Publish to npm: `npm publish`
308
+ - [ ] Verify installation: `npm install -g atdd-guardian-mcp-server@latest`
309
+
310
+ ## Marketing and Community
311
+
312
+ ### Announce Your Release
313
+
314
+ 1. **GitHub:**
315
+ - Create a release with detailed notes
316
+ - Pin important issues or discussions
317
+
318
+ 2. **npm:**
319
+ - Ensure good README with examples
320
+ - Use relevant keywords in package.json
321
+ - Add badges (build status, version, downloads)
322
+
323
+ 3. **Social Media:**
324
+ - Dev.to article
325
+ - Twitter/X announcement
326
+ - Reddit (r/vscode, r/javascript)
327
+ - LinkedIn post
328
+
329
+ 4. **Documentation:**
330
+ - Create a website (GitHub Pages)
331
+ - Video tutorials
332
+ - Blog posts with examples
333
+
334
+ ### Community Building
335
+
336
+ 1. **Enable GitHub Discussions:**
337
+ - Q&A section
338
+ - Ideas and feature requests
339
+ - Show and tell
340
+
341
+ 2. **Documentation:**
342
+ - Keep README up to date
343
+ - Add more examples
344
+ - Create tutorials
345
+
346
+ 3. **Respond to Issues:**
347
+ - Be responsive to bug reports
348
+ - Welcome feature requests
349
+ - Help users with setup
350
+
351
+ 4. **Accept Contributions:**
352
+ - Review pull requests
353
+ - Provide feedback
354
+ - Merge and credit contributors
355
+
356
+ ## Support Resources
357
+
358
+ - **Documentation:** [README.md](README.md)
359
+ - **Quick Start:** [QUICKSTART.md](QUICKSTART.md)
360
+ - **Contributing:** [CONTRIBUTING.md](CONTRIBUTING.md)
361
+ - **Examples:** [examples/](examples/)
362
+ - **Changelog:** [CHANGELOG.md](CHANGELOG.md)
363
+
364
+ ## License
365
+
366
+ This project is licensed under the MIT License - see [LICENSE](LICENSE) for details.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Mark Schilling
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.