@programinglive/dev-workflow-mcp-server 1.5.0 → 1.5.2

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 (99) hide show
  1. package/.agent/workflows/dev-workflow-bugfix.md +250 -250
  2. package/.agent/workflows/dev-workflow-feature.md +201 -201
  3. package/.agent/workflows/dev-workflow-full-cycle.md +400 -400
  4. package/.agent/workflows/dev-workflow-refactor.md +238 -238
  5. package/.github/ISSUE_TEMPLATE/bug_report.md +34 -34
  6. package/.github/ISSUE_TEMPLATE/feature_request.md +25 -25
  7. package/.github/pull_request_template.md +22 -22
  8. package/.github/workflows/npm-publish.yml +50 -47
  9. package/.husky/commit-msg +0 -0
  10. package/CHANGELOG.md +750 -491
  11. package/CODE_OF_CONDUCT.md +79 -79
  12. package/CONTRIBUTING.md +60 -60
  13. package/LICENSE +21 -21
  14. package/README.md +632 -609
  15. package/SECURITY.md +20 -20
  16. package/db/index.js +204 -204
  17. package/docs/NETLIFY_DEPLOYMENT.md +125 -0
  18. package/docs/PLESK_DEPLOYMENT.md +170 -0
  19. package/docs/WORKFLOW-BEST-PRACTICES.md +58 -0
  20. package/docs/antigravity/EXAMPLES.md +535 -535
  21. package/docs/antigravity/GETTING-STARTED.md +292 -292
  22. package/docs/antigravity/TROUBLESHOOTING.md +742 -742
  23. package/docs/antigravity/WALKTHROUGH.md +25 -25
  24. package/docs/antigravity/WORKFLOW-TEMPLATES.md +670 -670
  25. package/docs/product/PRD.md +67 -64
  26. package/docs/release-notes/RELEASE_NOTES.md +226 -132
  27. package/docs/web-dashboard.md +175 -163
  28. package/exec.js +49 -49
  29. package/index.js +279 -279
  30. package/install.js +73 -73
  31. package/package.json +11 -9
  32. package/release-wrapper.js +192 -157
  33. package/scripts/build-docs.js +63 -63
  34. package/scripts/hello-world.js +1 -1
  35. package/scripts/release.cjs +252 -252
  36. package/scripts/update-release-notes.cjs +178 -182
  37. package/server.json +23 -0
  38. package/tailwind.config.js +8 -10
  39. package/tests/build.test.js +83 -48
  40. package/tests/exec.test.js +35 -35
  41. package/tests/handlers.test.js +1058 -980
  42. package/tests/hello-world.test.js +13 -13
  43. package/tests/mcpRegistry.test.js +65 -0
  44. package/tests/release-wrapper.test.js +107 -105
  45. package/tests/workflowState.test.js +505 -502
  46. package/tools/definitions.js +332 -332
  47. package/tools/handlers.js +1019 -1019
  48. package/vite.config.js +43 -43
  49. package/vite.web.config.js +23 -0
  50. package/web/README.md +36 -0
  51. package/web/app/docs/page.tsx +202 -0
  52. package/web/app/favicon.ico +0 -0
  53. package/web/app/globals.css +91 -0
  54. package/web/app/layout.tsx +36 -0
  55. package/web/app/page.tsx +15 -0
  56. package/web/components/ApiReference.tsx +20 -0
  57. package/web/components/Features.tsx +61 -0
  58. package/web/components/Footer.tsx +9 -0
  59. package/web/components/Hero.tsx +96 -0
  60. package/web/components/History.tsx +143 -0
  61. package/web/components/Navbar.tsx +64 -0
  62. package/web/components/Terminal.tsx +114 -0
  63. package/web/eslint.config.mjs +18 -0
  64. package/web/lib/db.js +131 -0
  65. package/web/lib/docs.js +73 -0
  66. package/web/netlify.toml +3 -0
  67. package/web/next.config.ts +12 -0
  68. package/web/package-lock.json +6560 -0
  69. package/web/package.json +28 -0
  70. package/web/postcss.config.mjs +9 -0
  71. package/web/public/assets/android-chrome-192x192.png +0 -0
  72. package/web/public/assets/android-chrome-512x512.png +0 -0
  73. package/web/public/assets/apple-touch-icon.png +0 -0
  74. package/web/public/assets/favicon-16x16.png +0 -0
  75. package/web/public/assets/favicon-32x32.png +0 -0
  76. package/web/public/assets/favicon.ico +0 -0
  77. package/web/public/assets/favicon.png +0 -0
  78. package/web/public/assets/logo.png +0 -0
  79. package/web/public/assets/og-preview.png +0 -0
  80. package/web/public/assets/site.webmanifest +1 -0
  81. package/web/public/file.svg +1 -0
  82. package/web/public/globe.svg +1 -0
  83. package/web/public/next.svg +1 -0
  84. package/web/public/vercel.svg +1 -0
  85. package/web/public/window.svg +1 -0
  86. package/web/server.js +31 -159
  87. package/web/tailwind.config.ts +19 -0
  88. package/web/tsconfig.json +42 -0
  89. package/workflow-state.js +612 -626
  90. package/dist/docs/EXAMPLES.html +0 -411
  91. package/dist/docs/GETTING-STARTED.html +0 -233
  92. package/dist/docs/README.html +0 -535
  93. package/dist/docs/RELEASE_NOTES.html +0 -167
  94. package/dist/docs/TROUBLESHOOTING.html +0 -542
  95. package/dist/docs/WORKFLOW-TEMPLATES.html +0 -591
  96. package/dist/docs/web-dashboard.html +0 -158
  97. package/web/public/index.html +0 -1046
  98. package/web/public/input.css +0 -3
  99. package/web/public/output.css +0 -1
@@ -0,0 +1,170 @@
1
+ # Deploying dev-workflow-mcp-server to Plesk
2
+
3
+ This guide covers deploying the dev-workflow MCP server (Node.js backend + Next.js frontend) to Plesk hosting.
4
+
5
+ ## Prerequisites
6
+
7
+ - Plesk control panel access
8
+ - Node.js 18+ installed on the server
9
+ - Git installed on the server
10
+ - Domain/subdomain configured in Plesk
11
+
12
+ ## Deployment Steps
13
+
14
+ ### 1. Set Up Node.js Application in Plesk
15
+
16
+ 1. Log in to Plesk control panel
17
+ 2. Go to **Domains** → Select your domain
18
+ 3. Click **Node.js** (or **Applications** if using newer Plesk)
19
+ 4. Click **Add Application**
20
+ 5. Configure:
21
+ - **Application root**: `/var/www/vhosts/yourdomain.com/dev-workflow-mcp-server` (or your path)
22
+ - **Startup file**: `index.js`
23
+ - **Node.js version**: 18.x or higher
24
+ - **Port**: Leave as auto (Plesk assigns a port)
25
+
26
+ ### 2. Clone Repository
27
+
28
+ SSH into your Plesk server:
29
+
30
+ ```bash
31
+ cd /var/www/vhosts/yourdomain.com
32
+ git clone https://github.com/programinglive/dev-workflow-mcp-server.git
33
+ cd dev-workflow-mcp-server
34
+ ```
35
+
36
+ ### 3. Install Dependencies
37
+
38
+ ```bash
39
+ npm install
40
+ ```
41
+
42
+ ### 4. Build the Application
43
+
44
+ ```bash
45
+ npm run build
46
+ ```
47
+
48
+ This builds:
49
+ - **Backend**: Vite bundle → `dist/index.mjs`
50
+ - **Frontend**: Next.js static + server → `web/.next/`
51
+ - **Docs**: HTML files → `dist/docs/`
52
+
53
+ ### 5. Configure Environment (if needed)
54
+
55
+ Create `.env` file in the project root if you need custom settings:
56
+
57
+ ```bash
58
+ # Example (adjust as needed)
59
+ NODE_ENV=production
60
+ PORT=3000
61
+ ```
62
+
63
+ ### 6. Start the Application
64
+
65
+ In Plesk:
66
+ 1. Go back to **Node.js Applications**
67
+ 2. Find your application
68
+ 3. Click **Start** (or it may auto-start)
69
+
70
+ Alternatively, via SSH:
71
+
72
+ ```bash
73
+ npm start
74
+ ```
75
+
76
+ ### 7. Configure Reverse Proxy (Plesk)
77
+
78
+ Plesk automatically sets up a reverse proxy. Verify:
79
+ 1. Go to **Domains** → Your domain → **Web Server Settings**
80
+ 2. Ensure **Proxy** is enabled
81
+ 3. Verify the proxy points to the Node.js app port
82
+
83
+ ### 8. Verify Deployment
84
+
85
+ - Visit `https://yourdomain.com` → Should see the Next.js frontend
86
+ - Visit `https://yourdomain.com/docs` → Should see documentation
87
+ - Check browser console for any `_next/static` 500 errors
88
+
89
+ If you see 500 errors on `_next/static` requests:
90
+ - SSH to server and check logs: `tail -f /var/log/plesk/nodejs/yourdomain.com.log`
91
+ - Ensure `.next` directory exists: `ls -la web/.next/`
92
+ - Verify Node.js is running: `ps aux | grep node`
93
+
94
+ ### 9. Set Up Auto-Restart (Optional)
95
+
96
+ In Plesk, the Node.js app should auto-restart on failure. To verify:
97
+ 1. Go to **Node.js Applications**
98
+ 2. Check **Restart policy** is set to auto-restart
99
+
100
+ ### 10. Enable HTTPS (Recommended)
101
+
102
+ 1. Go to **Domains** → Your domain → **SSL/TLS Certificates**
103
+ 2. Click **Install** (use Let's Encrypt free certificate)
104
+ 3. Plesk auto-redirects HTTP → HTTPS
105
+
106
+ ## Troubleshooting
107
+
108
+ ### `_next/static` returns 500
109
+
110
+ **Cause**: Next.js build output not deployed or server crashed.
111
+
112
+ **Fix**:
113
+ ```bash
114
+ # SSH to server
115
+ npm run build --prefix web
116
+ npm start
117
+ # Check logs
118
+ tail -f /var/log/plesk/nodejs/yourdomain.com.log
119
+ ```
120
+
121
+ ### Application won't start
122
+
123
+ **Check**:
124
+ 1. Node.js version: `node --version` (must be 18+)
125
+ 2. Dependencies: `npm install`
126
+ 3. Build output: `ls -la dist/` and `ls -la web/.next/`
127
+ 4. Logs: Check Plesk control panel logs
128
+
129
+ ### Port conflicts
130
+
131
+ Plesk assigns ports automatically. If you get a port conflict:
132
+ 1. Go to **Node.js Applications** → Edit
133
+ 2. Let Plesk auto-assign a new port
134
+ 3. Restart the app
135
+
136
+ ## Updating the Application
137
+
138
+ To deploy a new version:
139
+
140
+ ```bash
141
+ cd /var/www/vhosts/yourdomain.com/dev-workflow-mcp-server
142
+ git pull origin main
143
+ npm install
144
+ npm run build
145
+ # Plesk will auto-restart the app
146
+ ```
147
+
148
+ Or manually restart in Plesk control panel:
149
+ 1. **Node.js Applications** → Select app → **Restart**
150
+
151
+ ## Production Checklist
152
+
153
+ - [ ] Node.js 18+ installed
154
+ - [ ] `npm install` completed
155
+ - [ ] `npm run build` succeeded (no errors)
156
+ - [ ] `.next` directory exists with static files
157
+ - [ ] HTTPS/SSL certificate installed
158
+ - [ ] Reverse proxy configured
159
+ - [ ] Application started and running
160
+ - [ ] `https://yourdomain.com` loads without 500 errors
161
+ - [ ] `_next/static` assets load correctly
162
+ - [ ] Logs show no errors
163
+
164
+ ## Support
165
+
166
+ For issues:
167
+ 1. Check Plesk logs: `/var/log/plesk/nodejs/`
168
+ 2. SSH and run `npm start` manually to see real-time errors
169
+ 3. Verify Node.js and npm versions
170
+ 4. Ensure all dependencies installed: `npm install`
@@ -0,0 +1,58 @@
1
+ # Workflow Best Practices
2
+
3
+ ## Correct Release Workflow Order
4
+
5
+ To avoid needing `--force` flag for releases, follow this exact order:
6
+
7
+ 1. **Start Task**: `mcp0_start_task`
8
+ 2. **Fix/Implement**: Make your code changes
9
+ 3. **Mark Fixed**: `mcp0_mark_bug_fixed`
10
+ 4. **Tests**: `mcp0_create_tests` + `mcp0_run_tests` (or `mcp0_skip_tests` with reason)
11
+ 5. **Documentation**: `mcp0_create_documentation`
12
+ 6. **Ready Check**: `mcp0_check_ready_to_commit`
13
+ 7. **Commit & Push**: `mcp0_commit_and_push`
14
+ 8. **Release**: `mcp0_perform_release` ⚠️ **MUST come BEFORE complete_task**
15
+ 9. **Complete**: `mcp0_complete_task`
16
+
17
+ ## Common Mistakes
18
+
19
+ ### ❌ Wrong Order (causes forced releases)
20
+ ```
21
+ check_ready → commit → complete → release // WRONG!
22
+ ```
23
+
24
+ ### ✅ Correct Order
25
+ ```
26
+ check_ready → commit → release → complete // CORRECT!
27
+ ```
28
+
29
+ ## Why This Matters
30
+
31
+ - `complete_task` **resets the workflow state**
32
+ - `perform_release` **checks the workflow state** before running
33
+ - If you complete before releasing, the state is cleared and release guards fail
34
+ - Using `--force` bypasses guards but doesn't fix the root cause
35
+
36
+ ## State Transitions
37
+
38
+ 1. After `commit_and_push`: `currentPhase = "release"`
39
+ 2. After `perform_release`: `currentPhase = "ready_to_complete"`, `released = true`
40
+ 3. After `complete_task`: State is reset to idle
41
+
42
+ ## Solution
43
+
44
+ Always call `perform_release` BEFORE `complete_task`. Never use `--force` unless absolutely necessary.
45
+
46
+ ## Documentation Phase Expectations
47
+
48
+ During the documentation step (`mcp0_create_documentation`), make sure the core project docs are created or updated as needed:
49
+
50
+ 1. `docs/product/PRD.md` – Product Requirements Document
51
+ 2. `README.md` – Project overview and usage
52
+ 3. `docs/release-notes/RELEASE_NOTES.md` – Release notes for changes in this task/version
53
+
54
+ If one or more of these files already exist, **update them** instead of creating new variants. Use the `documentationType` argument to reflect what you touched:
55
+
56
+ - `"PRD"` when you added/updated the PRD
57
+ - `"README"` when you updated the main README
58
+ - `"RELEASE_NOTES"` when you updated the release notes