@programinglive/dev-workflow-mcp-server 1.0.7 → 1.0.8
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/.github/ISSUE_TEMPLATE/bug_report.md +34 -34
- package/.github/ISSUE_TEMPLATE/feature_request.md +25 -25
- package/.github/pull_request_template.md +22 -22
- package/.husky/commit-msg +3 -3
- package/.husky/pre-commit +1 -1
- package/CHANGELOG.md +100 -93
- package/CODE_OF_CONDUCT.md +79 -79
- package/CONTRIBUTING.md +60 -60
- package/LICENSE +21 -21
- package/README.md +86 -69
- package/SECURITY.md +20 -20
- package/commitlint.config.js +3 -3
- package/index.js +382 -381
- package/package.json +91 -91
- package/tests/workflowState.test.js +231 -204
package/LICENSE
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2025 programinglive
|
|
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.
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 programinglive
|
|
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.
|
package/README.md
CHANGED
|
@@ -1,66 +1,66 @@
|
|
|
1
|
-
# Development Workflow MCP Server
|
|
2
|
-
|
|
3
|
-
An MCP (Model Context Protocol) server that helps enforce development discipline and workflow best practices. This server acts as your coding conscience, reminding you to follow proper development workflows.
|
|
4
|
-
|
|
5
|
-
## 🎯 Purpose
|
|
6
|
-
|
|
7
|
-
This MCP server guides you through a disciplined development workflow:
|
|
8
|
-
|
|
9
|
-
1. **Start Conscious** - Be clear about what you're coding
|
|
10
|
-
2. **Fix/Implement** - Write your code
|
|
11
|
-
3. **Create Tests** - Always test your changes
|
|
12
|
-
4. **Run Tests** - Tests must pass (GREEN)
|
|
13
|
-
5. **Document** - Update documentation
|
|
14
|
-
6. **Commit & Push** - Let the server drive the git commands once verification passes
|
|
15
|
-
7. **Release** - Record the release details before closing out the task
|
|
16
|
-
|
|
17
|
-
## 🚀 Installation
|
|
18
|
-
|
|
19
|
-
### 1. Install Dependencies
|
|
20
|
-
|
|
21
|
-
```bash
|
|
22
|
-
npm install
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
### 2. Configure in Windsurf/Claude Desktop
|
|
26
|
-
|
|
27
|
-
Point your MCP client to the server entry point. Replace `<PROJECT_ROOT>` with the absolute path to this repository on your machine.
|
|
28
|
-
|
|
29
|
-
#### macOS
|
|
30
|
-
|
|
31
|
-
- **Windsurf** (`~/Library/Application Support/Windsurf/config.json`):
|
|
32
|
-
|
|
33
|
-
```json
|
|
34
|
-
{
|
|
35
|
-
"mcpServers": {
|
|
36
|
-
"dev-workflow": {
|
|
37
|
-
"command": "node",
|
|
38
|
-
"args": ["<PROJECT_ROOT>/index.js"]
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
- **Claude Desktop** (`~/Library/Application Support/Claude/claude_desktop_config.json`):
|
|
45
|
-
|
|
46
|
-
```json
|
|
47
|
-
{
|
|
48
|
-
"mcpServers": {
|
|
49
|
-
"dev-workflow": {
|
|
50
|
-
"command": "node",
|
|
51
|
-
"args": ["<PROJECT_ROOT>/index.js"]
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
#### Windows
|
|
58
|
-
|
|
59
|
-
- **Windsurf** (`%APPDATA%\Windsurf\config.json`):
|
|
60
|
-
|
|
61
|
-
```json
|
|
62
|
-
{
|
|
63
|
-
"mcpServers": {
|
|
1
|
+
# Development Workflow MCP Server
|
|
2
|
+
|
|
3
|
+
An MCP (Model Context Protocol) server that helps enforce development discipline and workflow best practices. This server acts as your coding conscience, reminding you to follow proper development workflows.
|
|
4
|
+
|
|
5
|
+
## 🎯 Purpose
|
|
6
|
+
|
|
7
|
+
This MCP server guides you through a disciplined development workflow:
|
|
8
|
+
|
|
9
|
+
1. **Start Conscious** - Be clear about what you're coding
|
|
10
|
+
2. **Fix/Implement** - Write your code
|
|
11
|
+
3. **Create Tests** - Always test your changes
|
|
12
|
+
4. **Run Tests** - Tests must pass (GREEN)
|
|
13
|
+
5. **Document** - Update documentation
|
|
14
|
+
6. **Commit & Push** - Let the server drive the git commands once verification passes
|
|
15
|
+
7. **Release** - Record the release details before closing out the task
|
|
16
|
+
|
|
17
|
+
## 🚀 Installation
|
|
18
|
+
|
|
19
|
+
### 1. Install Dependencies
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
npm install
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
### 2. Configure in Windsurf/Claude Desktop
|
|
26
|
+
|
|
27
|
+
Point your MCP client to the server entry point. Replace `<PROJECT_ROOT>` with the absolute path to this repository on your machine.
|
|
28
|
+
|
|
29
|
+
#### macOS
|
|
30
|
+
|
|
31
|
+
- **Windsurf** (`~/Library/Application Support/Windsurf/config.json`):
|
|
32
|
+
|
|
33
|
+
```json
|
|
34
|
+
{
|
|
35
|
+
"mcpServers": {
|
|
36
|
+
"dev-workflow": {
|
|
37
|
+
"command": "node",
|
|
38
|
+
"args": ["<PROJECT_ROOT>/index.js"]
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
- **Claude Desktop** (`~/Library/Application Support/Claude/claude_desktop_config.json`):
|
|
45
|
+
|
|
46
|
+
```json
|
|
47
|
+
{
|
|
48
|
+
"mcpServers": {
|
|
49
|
+
"dev-workflow": {
|
|
50
|
+
"command": "node",
|
|
51
|
+
"args": ["<PROJECT_ROOT>/index.js"]
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
#### Windows
|
|
58
|
+
|
|
59
|
+
- **Windsurf** (`%APPDATA%\Windsurf\config.json`):
|
|
60
|
+
|
|
61
|
+
```json
|
|
62
|
+
{
|
|
63
|
+
"mcpServers": {
|
|
64
64
|
"dev-workflow": {
|
|
65
65
|
"command": "node",
|
|
66
66
|
"args": ["<PROJECT_ROOT>\\index.js"]
|
|
@@ -158,6 +158,12 @@ Confirm that you've created the necessary tests covering your change. Required b
|
|
|
158
158
|
|
|
159
159
|
**Parameters:** _none_
|
|
160
160
|
|
|
161
|
+
### `skip_tests`
|
|
162
|
+
Record an explicit justification when automated tests aren't feasible. Marks testing as satisfied so you can proceed with documentation and verification, while flagging the task for manual QA.
|
|
163
|
+
|
|
164
|
+
**Parameters:**
|
|
165
|
+
- `reason` (string, required): Why automated tests were skipped
|
|
166
|
+
|
|
161
167
|
### `run_tests`
|
|
162
168
|
Record test results. **NEVER commit if tests fail!** Only proceed if all tests are green.
|
|
163
169
|
|
|
@@ -204,6 +210,12 @@ Mark the task as complete after successful commit & push. Resets workflow for ne
|
|
|
204
210
|
**Parameters:**
|
|
205
211
|
- `commitMessage` (string, required): The commit message used
|
|
206
212
|
|
|
213
|
+
### `drop_task`
|
|
214
|
+
Abandon the current task without completing the workflow. Preserves an audit entry with context, then resets the state so you can start fresh.
|
|
215
|
+
|
|
216
|
+
**Parameters:**
|
|
217
|
+
- `reason` (string, optional): Additional detail about why the task was dropped
|
|
218
|
+
|
|
207
219
|
### `get_workflow_status`
|
|
208
220
|
Get current workflow status and what needs to be done next.
|
|
209
221
|
|
|
@@ -249,31 +261,36 @@ Here's how you'd use this MCP server in a typical coding session:
|
|
|
249
261
|
```
|
|
250
262
|
- If tests fail, the server will **block** you from proceeding!
|
|
251
263
|
|
|
252
|
-
|
|
264
|
+
7. **Document:**
|
|
253
265
|
```
|
|
254
266
|
"Create documentation: type=README, summary='Added user profile section to docs'"
|
|
255
267
|
```
|
|
256
268
|
|
|
257
|
-
|
|
269
|
+
8. **Check readiness:**
|
|
258
270
|
```
|
|
259
271
|
"Check if I'm ready to commit"
|
|
260
272
|
```
|
|
261
273
|
|
|
262
|
-
|
|
274
|
+
9. **Commit & Push:**
|
|
263
275
|
```
|
|
264
276
|
"Commit and push: commitMessage='feat: add user profile page with tests and docs'"
|
|
265
277
|
```
|
|
266
278
|
|
|
267
|
-
|
|
279
|
+
10. **Record release:**
|
|
268
280
|
```
|
|
269
281
|
"Record release: command='npm run release', notes='v1.2.3'"
|
|
270
282
|
```
|
|
271
283
|
|
|
272
|
-
|
|
284
|
+
11. **Complete:**
|
|
273
285
|
```
|
|
274
286
|
"Complete the task with commit message: 'feat: add user profile page'"
|
|
275
287
|
```
|
|
276
288
|
|
|
289
|
+
12. **Drop task (optional):**
|
|
290
|
+
```
|
|
291
|
+
"Drop task: reason='Switching to a different feature'"
|
|
292
|
+
```
|
|
293
|
+
|
|
277
294
|
## 🎯 Key Features
|
|
278
295
|
|
|
279
296
|
- **Enforces discipline**: Won't let you skip steps
|
|
@@ -294,7 +311,7 @@ Here's how you'd use this MCP server in a typical coding session:
|
|
|
294
311
|
## 💡 Tips
|
|
295
312
|
|
|
296
313
|
1. **Always start with `start_task`** - This sets your intention
|
|
297
|
-
2. **Never skip tests** -
|
|
314
|
+
2. **Never skip tests without justification** - Use `skip_tests` only when absolutely necessary and document the reason for manual QA
|
|
298
315
|
3. **Use `get_workflow_status`** - Check where you are anytime
|
|
299
316
|
4. **Review history** - Learn from your past tasks
|
|
300
317
|
5. **Follow the prompts** - They contain best practices
|
package/SECURITY.md
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
# Security Policy
|
|
2
|
-
|
|
3
|
-
## Supported Versions
|
|
4
|
-
|
|
5
|
-
We release patches for security vulnerabilities under new minor or patch versions. Always use the latest release.
|
|
6
|
-
|
|
7
|
-
## Reporting a Vulnerability
|
|
8
|
-
|
|
9
|
-
If you discover a vulnerability, please email `security@programinglive.com` with:
|
|
10
|
-
|
|
11
|
-
- Description of the issue
|
|
12
|
-
- Steps to reproduce
|
|
13
|
-
- Potential impact
|
|
14
|
-
- Suggested remediation (if known)
|
|
15
|
-
|
|
16
|
-
We aim to acknowledge reports within 72 hours and will keep you informed as we work on a fix. Please do not disclose the vulnerability publicly until we have released an update.
|
|
17
|
-
|
|
18
|
-
## Disclosure Policy
|
|
19
|
-
|
|
20
|
-
Once a fix is available, we will publish a security advisory in the repository releases and notify contributors via the README.
|
|
1
|
+
# Security Policy
|
|
2
|
+
|
|
3
|
+
## Supported Versions
|
|
4
|
+
|
|
5
|
+
We release patches for security vulnerabilities under new minor or patch versions. Always use the latest release.
|
|
6
|
+
|
|
7
|
+
## Reporting a Vulnerability
|
|
8
|
+
|
|
9
|
+
If you discover a vulnerability, please email `security@programinglive.com` with:
|
|
10
|
+
|
|
11
|
+
- Description of the issue
|
|
12
|
+
- Steps to reproduce
|
|
13
|
+
- Potential impact
|
|
14
|
+
- Suggested remediation (if known)
|
|
15
|
+
|
|
16
|
+
We aim to acknowledge reports within 72 hours and will keep you informed as we work on a fix. Please do not disclose the vulnerability publicly until we have released an update.
|
|
17
|
+
|
|
18
|
+
## Disclosure Policy
|
|
19
|
+
|
|
20
|
+
Once a fix is available, we will publish a security advisory in the repository releases and notify contributors via the README.
|
package/commitlint.config.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export default {
|
|
2
|
-
extends: ["@commitlint/config-conventional"],
|
|
3
|
-
};
|
|
1
|
+
export default {
|
|
2
|
+
extends: ["@commitlint/config-conventional"],
|
|
3
|
+
};
|