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

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 (78) 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/github-release.yml +56 -0
  9. package/.github/workflows/npm-publish.yml +50 -50
  10. package/.husky/commit-msg +0 -0
  11. package/CHANGELOG.md +759 -741
  12. package/CODE_OF_CONDUCT.md +79 -79
  13. package/CONTRIBUTING.md +60 -60
  14. package/LICENSE +21 -21
  15. package/README.md +632 -632
  16. package/SECURITY.md +20 -20
  17. package/db/index.js +204 -204
  18. package/docs/NETLIFY_DEPLOYMENT.md +125 -125
  19. package/docs/PLESK_DEPLOYMENT.md +170 -170
  20. package/docs/WORKFLOW-BEST-PRACTICES.md +58 -58
  21. package/docs/antigravity/EXAMPLES.md +535 -535
  22. package/docs/antigravity/GETTING-STARTED.md +292 -292
  23. package/docs/antigravity/TROUBLESHOOTING.md +742 -742
  24. package/docs/antigravity/WALKTHROUGH.md +25 -25
  25. package/docs/antigravity/WORKFLOW-TEMPLATES.md +670 -670
  26. package/docs/product/PRD.md +67 -67
  27. package/docs/release-notes/RELEASE_NOTES.md +233 -226
  28. package/docs/web-dashboard.md +175 -175
  29. package/exec.js +49 -49
  30. package/index.js +279 -279
  31. package/install.js +73 -73
  32. package/package.json +4 -4
  33. package/release-wrapper.js +192 -192
  34. package/scripts/build-docs.js +63 -63
  35. package/scripts/extract-release-notes.cjs +78 -0
  36. package/scripts/hello-world.js +1 -1
  37. package/scripts/release.cjs +252 -252
  38. package/scripts/release.js +252 -0
  39. package/scripts/update-release-notes.cjs +178 -178
  40. package/scripts/update-release-notes.js +182 -0
  41. package/server.json +23 -23
  42. package/tailwind.config.js +8 -8
  43. package/tests/build.test.js +83 -83
  44. package/tests/exec.test.js +35 -35
  45. package/tests/handlers.test.js +1058 -1058
  46. package/tests/hello-world.test.js +13 -13
  47. package/tests/mcpRegistry.test.js +65 -65
  48. package/tests/patch-release.test.js +7 -0
  49. package/tests/release-wrapper.test.js +107 -107
  50. package/tests/workflowState.test.js +505 -505
  51. package/tools/definitions.js +332 -332
  52. package/tools/handlers.js +1019 -1019
  53. package/vite.config.js +43 -43
  54. package/vite.web.config.js +23 -23
  55. package/web/README.md +36 -36
  56. package/web/app/docs/page.tsx +202 -202
  57. package/web/app/globals.css +90 -90
  58. package/web/app/layout.tsx +36 -36
  59. package/web/app/page.tsx +15 -15
  60. package/web/components/ApiReference.tsx +20 -20
  61. package/web/components/Features.tsx +61 -61
  62. package/web/components/Footer.tsx +9 -9
  63. package/web/components/Hero.tsx +96 -96
  64. package/web/components/History.tsx +143 -143
  65. package/web/components/Navbar.tsx +64 -64
  66. package/web/components/Terminal.tsx +114 -114
  67. package/web/eslint.config.mjs +18 -18
  68. package/web/lib/db.js +131 -131
  69. package/web/lib/docs.js +73 -73
  70. package/web/netlify.toml +3 -3
  71. package/web/next.config.ts +12 -12
  72. package/web/package-lock.json +6560 -6560
  73. package/web/package.json +28 -28
  74. package/web/postcss.config.mjs +9 -9
  75. package/web/server.js +31 -31
  76. package/web/tailwind.config.ts +19 -19
  77. package/web/tsconfig.json +42 -42
  78. package/workflow-state.js +612 -612
package/vite.config.js CHANGED
@@ -1,43 +1,43 @@
1
- import { defineConfig } from 'vite';
2
- import { fileURLToPath } from 'url';
3
- import path from 'path';
4
-
5
- const __filename = fileURLToPath(import.meta.url);
6
- const __dirname = path.dirname(__filename);
7
-
8
- export default defineConfig({
9
- build: {
10
- target: 'node18',
11
- outDir: 'dist',
12
- minify: false,
13
- rollupOptions: {
14
- input: path.resolve(__dirname, 'index.js'),
15
- output: {
16
- entryFileNames: 'index.mjs',
17
- format: 'es',
18
- },
19
- external: [
20
- '@modelcontextprotocol/sdk',
21
- // Node.js built-in modules
22
- 'node:fs',
23
- 'node:path',
24
- 'node:url',
25
- 'node:util',
26
- 'node:os',
27
- 'node:process',
28
- 'node:child_process',
29
- 'fs',
30
- 'fs/promises',
31
- 'path',
32
- 'url',
33
- 'util',
34
- 'os',
35
- 'process',
36
- 'child_process',
37
- ],
38
- },
39
- },
40
- define: {
41
- __filename: JSON.stringify(path.resolve(__dirname, 'index.js')),
42
- },
43
- });
1
+ import { defineConfig } from 'vite';
2
+ import { fileURLToPath } from 'url';
3
+ import path from 'path';
4
+
5
+ const __filename = fileURLToPath(import.meta.url);
6
+ const __dirname = path.dirname(__filename);
7
+
8
+ export default defineConfig({
9
+ build: {
10
+ target: 'node18',
11
+ outDir: 'dist',
12
+ minify: false,
13
+ rollupOptions: {
14
+ input: path.resolve(__dirname, 'index.js'),
15
+ output: {
16
+ entryFileNames: 'index.mjs',
17
+ format: 'es',
18
+ },
19
+ external: [
20
+ '@modelcontextprotocol/sdk',
21
+ // Node.js built-in modules
22
+ 'node:fs',
23
+ 'node:path',
24
+ 'node:url',
25
+ 'node:util',
26
+ 'node:os',
27
+ 'node:process',
28
+ 'node:child_process',
29
+ 'fs',
30
+ 'fs/promises',
31
+ 'path',
32
+ 'url',
33
+ 'util',
34
+ 'os',
35
+ 'process',
36
+ 'child_process',
37
+ ],
38
+ },
39
+ },
40
+ define: {
41
+ __filename: JSON.stringify(path.resolve(__dirname, 'index.js')),
42
+ },
43
+ });
@@ -1,23 +1,23 @@
1
- import { defineConfig } from 'vite';
2
- import path from 'path';
3
- import { fileURLToPath } from 'url';
4
-
5
- const __filename = fileURLToPath(import.meta.url);
6
- const __dirname = path.dirname(__filename);
7
-
8
- export default defineConfig({
9
- root: 'web/public',
10
- build: {
11
- outDir: '../../dist/web',
12
- emptyOutDir: true,
13
- rollupOptions: {
14
- input: path.resolve(__dirname, 'web/public/index.html'),
15
- },
16
- },
17
- server: {
18
- port: 3111,
19
- proxy: {
20
- '/api': 'http://localhost:3112'
21
- }
22
- }
23
- });
1
+ import { defineConfig } from 'vite';
2
+ import path from 'path';
3
+ import { fileURLToPath } from 'url';
4
+
5
+ const __filename = fileURLToPath(import.meta.url);
6
+ const __dirname = path.dirname(__filename);
7
+
8
+ export default defineConfig({
9
+ root: 'web/public',
10
+ build: {
11
+ outDir: '../../dist/web',
12
+ emptyOutDir: true,
13
+ rollupOptions: {
14
+ input: path.resolve(__dirname, 'web/public/index.html'),
15
+ },
16
+ },
17
+ server: {
18
+ port: 3111,
19
+ proxy: {
20
+ '/api': 'http://localhost:3112'
21
+ }
22
+ }
23
+ });
package/web/README.md CHANGED
@@ -1,36 +1,36 @@
1
- This is a [Next.js](https://nextjs.org) project bootstrapped with [`create-next-app`](https://nextjs.org/docs/app/api-reference/cli/create-next-app).
2
-
3
- ## Getting Started
4
-
5
- First, run the development server:
6
-
7
- ```bash
8
- npm run dev
9
- # or
10
- yarn dev
11
- # or
12
- pnpm dev
13
- # or
14
- bun dev
15
- ```
16
-
17
- Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
18
-
19
- You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file.
20
-
21
- This project uses [`next/font`](https://nextjs.org/docs/app/building-your-application/optimizing/fonts) to automatically optimize and load [Geist](https://vercel.com/font), a new font family for Vercel.
22
-
23
- ## Learn More
24
-
25
- To learn more about Next.js, take a look at the following resources:
26
-
27
- - [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
28
- - [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.
29
-
30
- You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js) - your feedback and contributions are welcome!
31
-
32
- ## Deploy on Vercel
33
-
34
- The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.
35
-
36
- Check out our [Next.js deployment documentation](https://nextjs.org/docs/app/building-your-application/deploying) for more details.
1
+ This is a [Next.js](https://nextjs.org) project bootstrapped with [`create-next-app`](https://nextjs.org/docs/app/api-reference/cli/create-next-app).
2
+
3
+ ## Getting Started
4
+
5
+ First, run the development server:
6
+
7
+ ```bash
8
+ npm run dev
9
+ # or
10
+ yarn dev
11
+ # or
12
+ pnpm dev
13
+ # or
14
+ bun dev
15
+ ```
16
+
17
+ Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
18
+
19
+ You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file.
20
+
21
+ This project uses [`next/font`](https://nextjs.org/docs/app/building-your-application/optimizing/fonts) to automatically optimize and load [Geist](https://vercel.com/font), a new font family for Vercel.
22
+
23
+ ## Learn More
24
+
25
+ To learn more about Next.js, take a look at the following resources:
26
+
27
+ - [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
28
+ - [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.
29
+
30
+ You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js) - your feedback and contributions are welcome!
31
+
32
+ ## Deploy on Vercel
33
+
34
+ The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.
35
+
36
+ Check out our [Next.js deployment documentation](https://nextjs.org/docs/app/building-your-application/deploying) for more details.
@@ -1,202 +1,202 @@
1
- import Link from "next/link";
2
- import { ArrowLeft, CheckCircle, GitBranch, FileText, TestTube, Rocket } from "lucide-react";
3
-
4
- export default function DocsPage() {
5
- return (
6
- <div className="min-h-screen bg-[#0a0a0f] text-white pt-20 px-4 pb-12">
7
- <div className="max-w-4xl mx-auto">
8
- <div className="mb-8">
9
- <Link href="/" className="inline-flex items-center gap-2 text-indigo-400 hover:text-indigo-300 transition">
10
- <ArrowLeft className="w-4 h-4" />
11
- Back to Dashboard
12
- </Link>
13
- </div>
14
-
15
- <div className="prose prose-invert max-w-none">
16
- <h1 className="text-5xl font-bold mb-4 bg-gradient-to-r from-indigo-400 via-purple-400 to-pink-400 bg-clip-text text-transparent">
17
- Dev Workflow MCP Server
18
- </h1>
19
- <p className="text-xl text-gray-400 mb-8">
20
- An MCP server that acts as your coding conscience. Enforce test-driven development, ensure documentation,
21
- and never skip a step in your release process.
22
- </p>
23
-
24
- <div className="bg-emerald-500/10 border border-emerald-500/20 rounded-lg p-4 mb-8">
25
- <p className="text-emerald-400 font-semibold">Version: 1.3.12</p>
26
- </div>
27
-
28
- <h2 className="text-3xl font-bold mt-12 mb-6">Features</h2>
29
- <div className="grid md:grid-cols-2 gap-4 mb-8">
30
- <div className="p-4 rounded-lg bg-white/5 border border-white/10">
31
- <div className="flex items-center gap-3 mb-2">
32
- <CheckCircle className="w-5 h-5 text-indigo-400" />
33
- <h3 className="text-lg font-semibold">Enforced Discipline</h3>
34
- </div>
35
- <p className="text-gray-400 text-sm">Won't let you skip important steps. Follows a strict, proven development workflow.</p>
36
- </div>
37
- <div className="p-4 rounded-lg bg-white/5 border border-white/10">
38
- <div className="flex items-center gap-3 mb-2">
39
- <TestTube className="w-5 h-5 text-purple-400" />
40
- <h3 className="text-lg font-semibold">Test-Driven</h3>
41
- </div>
42
- <p className="text-gray-400 text-sm">Blocks commits if tests fail. Encourages writing tests before marking tasks complete.</p>
43
- </div>
44
- <div className="p-4 rounded-lg bg-white/5 border border-white/10">
45
- <div className="flex items-center gap-3 mb-2">
46
- <FileText className="w-5 h-5 text-emerald-400" />
47
- <h3 className="text-lg font-semibold">Documentation</h3>
48
- </div>
49
- <p className="text-gray-400 text-sm">Reminds you to update documentation (README, docs, changelog) for every change.</p>
50
- </div>
51
- <div className="p-4 rounded-lg bg-white/5 border border-white/10">
52
- <div className="flex items-center gap-3 mb-2">
53
- <GitBranch className="w-5 h-5 text-orange-400" />
54
- <h3 className="text-lg font-semibold">State Tracking</h3>
55
- </div>
56
- <p className="text-gray-400 text-sm">Remembers exactly where you are in the workflow, even across sessions.</p>
57
- </div>
58
- </div>
59
-
60
- <h2 className="text-3xl font-bold mt-12 mb-6">Installation</h2>
61
- <div className="bg-[#1a1a24] rounded-lg p-6 border border-white/10 mb-8">
62
- <pre className="text-sm overflow-x-auto">
63
- <code className="text-gray-300">npm install -g @programinglive/dev-workflow-mcp-server</code>
64
- </pre>
65
- </div>
66
-
67
- <h2 className="text-3xl font-bold mt-12 mb-6">Quick Start</h2>
68
- <ol className="space-y-4 mb-8">
69
- <li className="flex gap-4">
70
- <span className="flex-shrink-0 w-8 h-8 rounded-full bg-indigo-500/20 flex items-center justify-center text-indigo-400 font-bold">1</span>
71
- <div>
72
- <h3 className="font-semibold mb-1">Start a Task</h3>
73
- <p className="text-gray-400">Begin your coding session by defining what you're working on.</p>
74
- <div className="bg-[#1a1a24] rounded-lg p-3 mt-2 border border-white/10">
75
- <code className="text-sm text-gray-300">start_task</code>
76
- </div>
77
- </div>
78
- </li>
79
- <li className="flex gap-4">
80
- <span className="flex-shrink-0 w-8 h-8 rounded-full bg-purple-500/20 flex items-center justify-center text-purple-400 font-bold">2</span>
81
- <div>
82
- <h3 className="font-semibold mb-1">Mark Bug Fixed</h3>
83
- <p className="text-gray-400">Once you've implemented your feature or fix, mark it as complete.</p>
84
- <div className="bg-[#1a1a24] rounded-lg p-3 mt-2 border border-white/10">
85
- <code className="text-sm text-gray-300">mark_bug_fixed</code>
86
- </div>
87
- </div>
88
- </li>
89
- <li className="flex gap-4">
90
- <span className="flex-shrink-0 w-8 h-8 rounded-full bg-emerald-500/20 flex items-center justify-center text-emerald-400 font-bold">3</span>
91
- <div>
92
- <h3 className="font-semibold mb-1">Create Tests</h3>
93
- <p className="text-gray-400">Write tests to verify your changes work correctly.</p>
94
- <div className="bg-[#1a1a24] rounded-lg p-3 mt-2 border border-white/10">
95
- <code className="text-sm text-gray-300">create_tests</code>
96
- </div>
97
- </div>
98
- </li>
99
- <li className="flex gap-4">
100
- <span className="flex-shrink-0 w-8 h-8 rounded-full bg-orange-500/20 flex items-center justify-center text-orange-400 font-bold">4</span>
101
- <div>
102
- <h3 className="font-semibold mb-1">Run Tests</h3>
103
- <p className="text-gray-400">Execute your test suite and ensure everything passes.</p>
104
- <div className="bg-[#1a1a24] rounded-lg p-3 mt-2 border border-white/10">
105
- <code className="text-sm text-gray-300">run_tests</code>
106
- </div>
107
- </div>
108
- </li>
109
- <li className="flex gap-4">
110
- <span className="flex-shrink-0 w-8 h-8 rounded-full bg-pink-500/20 flex items-center justify-center text-pink-400 font-bold">5</span>
111
- <div>
112
- <h3 className="font-semibold mb-1">Create Documentation</h3>
113
- <p className="text-gray-400">Update relevant documentation for your changes.</p>
114
- <div className="bg-[#1a1a24] rounded-lg p-3 mt-2 border border-white/10">
115
- <code className="text-sm text-gray-300">create_documentation</code>
116
- </div>
117
- </div>
118
- </li>
119
- <li className="flex gap-4">
120
- <span className="flex-shrink-0 w-8 h-8 rounded-full bg-blue-500/20 flex items-center justify-center text-blue-400 font-bold">6</span>
121
- <div>
122
- <h3 className="font-semibold mb-1">Commit and Push</h3>
123
- <p className="text-gray-400">Commit your changes and push to the repository.</p>
124
- <div className="bg-[#1a1a24] rounded-lg p-3 mt-2 border border-white/10">
125
- <code className="text-sm text-gray-300">commit_and_push</code>
126
- </div>
127
- </div>
128
- </li>
129
- </ol>
130
-
131
- <h2 className="text-3xl font-bold mt-12 mb-6">Available Commands</h2>
132
- <div className="space-y-3 mb-8">
133
- {[
134
- { cmd: "start_task", desc: "Begin a new coding task" },
135
- { cmd: "mark_bug_fixed", desc: "Mark feature/bugfix as complete" },
136
- { cmd: "create_tests", desc: "Record that tests have been created" },
137
- { cmd: "run_tests", desc: "Execute and record test results" },
138
- { cmd: "skip_tests", desc: "Skip tests with justification" },
139
- { cmd: "create_documentation", desc: "Record documentation updates" },
140
- { cmd: "commit_and_push", desc: "Commit and push changes" },
141
- { cmd: "perform_release", desc: "Execute release process" },
142
- { cmd: "complete_task", desc: "Mark task as complete" },
143
- { cmd: "get_workflow_status", desc: "Check current workflow state" },
144
- { cmd: "view_history", desc: "View completed tasks" },
145
- ].map((item) => (
146
- <div key={item.cmd} className="p-4 rounded-lg bg-white/5 border border-white/10 hover:bg-white/10 transition">
147
- <code className="text-indigo-400 font-mono">{item.cmd}</code>
148
- <p className="text-gray-400 text-sm mt-1">{item.desc}</p>
149
- </div>
150
- ))}
151
- </div>
152
-
153
- <h2 className="text-3xl font-bold mt-12 mb-6">Configuration</h2>
154
- <p className="text-gray-400 mb-4">
155
- The server stores workflow state in a SQLite database located at <code className="text-indigo-400 bg-white/5 px-2 py-1 rounded">.state/dev-workflow.db</code>
156
- </p>
157
- <p className="text-gray-400 mb-8">
158
- Set the <code className="text-indigo-400 bg-white/5 px-2 py-1 rounded">DEV_WORKFLOW_USER_ID</code> environment variable to isolate workflow state per user.
159
- </p>
160
-
161
- <h2 className="text-3xl font-bold mt-12 mb-6">Requirements</h2>
162
- <ul className="space-y-2 mb-8">
163
- <li className="flex items-center gap-2 text-gray-400">
164
- <CheckCircle className="w-4 h-4 text-emerald-400" />
165
- Node.js 18 or higher
166
- </li>
167
- <li className="flex items-center gap-2 text-gray-400">
168
- <CheckCircle className="w-4 h-4 text-emerald-400" />
169
- Git installed and configured
170
- </li>
171
- <li className="flex items-center gap-2 text-gray-400">
172
- <CheckCircle className="w-4 h-4 text-emerald-400" />
173
- MCP-compatible AI assistant (e.g., Claude Desktop)
174
- </li>
175
- </ul>
176
-
177
- <h2 className="text-3xl font-bold mt-12 mb-6">License</h2>
178
- <p className="text-gray-400 mb-8">
179
- MIT License - Free to use for personal and commercial projects.
180
- </p>
181
-
182
- <div className="bg-gradient-to-r from-indigo-500/10 via-purple-500/10 to-pink-500/10 border border-white/10 rounded-lg p-6 mt-12">
183
- <div className="flex items-center gap-3 mb-3">
184
- <Rocket className="w-6 h-6 text-pink-400" />
185
- <h3 className="text-xl font-bold">Ready to get started?</h3>
186
- </div>
187
- <p className="text-gray-400 mb-4">
188
- Install the MCP server and start enforcing best practices in your development workflow today!
189
- </p>
190
- <Link
191
- href="https://github.com/programinglive/dev-workflow-mcp-server"
192
- target="_blank"
193
- className="inline-flex items-center gap-2 px-6 py-3 bg-gradient-to-r from-indigo-600 to-purple-600 rounded-lg font-semibold hover:shadow-lg hover:shadow-indigo-500/50 transition"
194
- >
195
- View on GitHub
196
- </Link>
197
- </div>
198
- </div>
199
- </div>
200
- </div>
201
- );
202
- }
1
+ import Link from "next/link";
2
+ import { ArrowLeft, CheckCircle, GitBranch, FileText, TestTube, Rocket } from "lucide-react";
3
+
4
+ export default function DocsPage() {
5
+ return (
6
+ <div className="min-h-screen bg-[#0a0a0f] text-white pt-20 px-4 pb-12">
7
+ <div className="max-w-4xl mx-auto">
8
+ <div className="mb-8">
9
+ <Link href="/" className="inline-flex items-center gap-2 text-indigo-400 hover:text-indigo-300 transition">
10
+ <ArrowLeft className="w-4 h-4" />
11
+ Back to Dashboard
12
+ </Link>
13
+ </div>
14
+
15
+ <div className="prose prose-invert max-w-none">
16
+ <h1 className="text-5xl font-bold mb-4 bg-gradient-to-r from-indigo-400 via-purple-400 to-pink-400 bg-clip-text text-transparent">
17
+ Dev Workflow MCP Server
18
+ </h1>
19
+ <p className="text-xl text-gray-400 mb-8">
20
+ An MCP server that acts as your coding conscience. Enforce test-driven development, ensure documentation,
21
+ and never skip a step in your release process.
22
+ </p>
23
+
24
+ <div className="bg-emerald-500/10 border border-emerald-500/20 rounded-lg p-4 mb-8">
25
+ <p className="text-emerald-400 font-semibold">Version: 1.5.3</p>
26
+ </div>
27
+
28
+ <h2 className="text-3xl font-bold mt-12 mb-6">Features</h2>
29
+ <div className="grid md:grid-cols-2 gap-4 mb-8">
30
+ <div className="p-4 rounded-lg bg-white/5 border border-white/10">
31
+ <div className="flex items-center gap-3 mb-2">
32
+ <CheckCircle className="w-5 h-5 text-indigo-400" />
33
+ <h3 className="text-lg font-semibold">Enforced Discipline</h3>
34
+ </div>
35
+ <p className="text-gray-400 text-sm">Won't let you skip important steps. Follows a strict, proven development workflow.</p>
36
+ </div>
37
+ <div className="p-4 rounded-lg bg-white/5 border border-white/10">
38
+ <div className="flex items-center gap-3 mb-2">
39
+ <TestTube className="w-5 h-5 text-purple-400" />
40
+ <h3 className="text-lg font-semibold">Test-Driven</h3>
41
+ </div>
42
+ <p className="text-gray-400 text-sm">Blocks commits if tests fail. Encourages writing tests before marking tasks complete.</p>
43
+ </div>
44
+ <div className="p-4 rounded-lg bg-white/5 border border-white/10">
45
+ <div className="flex items-center gap-3 mb-2">
46
+ <FileText className="w-5 h-5 text-emerald-400" />
47
+ <h3 className="text-lg font-semibold">Documentation</h3>
48
+ </div>
49
+ <p className="text-gray-400 text-sm">Reminds you to update documentation (README, docs, changelog) for every change.</p>
50
+ </div>
51
+ <div className="p-4 rounded-lg bg-white/5 border border-white/10">
52
+ <div className="flex items-center gap-3 mb-2">
53
+ <GitBranch className="w-5 h-5 text-orange-400" />
54
+ <h3 className="text-lg font-semibold">State Tracking</h3>
55
+ </div>
56
+ <p className="text-gray-400 text-sm">Remembers exactly where you are in the workflow, even across sessions.</p>
57
+ </div>
58
+ </div>
59
+
60
+ <h2 className="text-3xl font-bold mt-12 mb-6">Installation</h2>
61
+ <div className="bg-[#1a1a24] rounded-lg p-6 border border-white/10 mb-8">
62
+ <pre className="text-sm overflow-x-auto">
63
+ <code className="text-gray-300">npm install -g @programinglive/dev-workflow-mcp-server</code>
64
+ </pre>
65
+ </div>
66
+
67
+ <h2 className="text-3xl font-bold mt-12 mb-6">Quick Start</h2>
68
+ <ol className="space-y-4 mb-8">
69
+ <li className="flex gap-4">
70
+ <span className="flex-shrink-0 w-8 h-8 rounded-full bg-indigo-500/20 flex items-center justify-center text-indigo-400 font-bold">1</span>
71
+ <div>
72
+ <h3 className="font-semibold mb-1">Start a Task</h3>
73
+ <p className="text-gray-400">Begin your coding session by defining what you're working on.</p>
74
+ <div className="bg-[#1a1a24] rounded-lg p-3 mt-2 border border-white/10">
75
+ <code className="text-sm text-gray-300">start_task</code>
76
+ </div>
77
+ </div>
78
+ </li>
79
+ <li className="flex gap-4">
80
+ <span className="flex-shrink-0 w-8 h-8 rounded-full bg-purple-500/20 flex items-center justify-center text-purple-400 font-bold">2</span>
81
+ <div>
82
+ <h3 className="font-semibold mb-1">Mark Bug Fixed</h3>
83
+ <p className="text-gray-400">Once you've implemented your feature or fix, mark it as complete.</p>
84
+ <div className="bg-[#1a1a24] rounded-lg p-3 mt-2 border border-white/10">
85
+ <code className="text-sm text-gray-300">mark_bug_fixed</code>
86
+ </div>
87
+ </div>
88
+ </li>
89
+ <li className="flex gap-4">
90
+ <span className="flex-shrink-0 w-8 h-8 rounded-full bg-emerald-500/20 flex items-center justify-center text-emerald-400 font-bold">3</span>
91
+ <div>
92
+ <h3 className="font-semibold mb-1">Create Tests</h3>
93
+ <p className="text-gray-400">Write tests to verify your changes work correctly.</p>
94
+ <div className="bg-[#1a1a24] rounded-lg p-3 mt-2 border border-white/10">
95
+ <code className="text-sm text-gray-300">create_tests</code>
96
+ </div>
97
+ </div>
98
+ </li>
99
+ <li className="flex gap-4">
100
+ <span className="flex-shrink-0 w-8 h-8 rounded-full bg-orange-500/20 flex items-center justify-center text-orange-400 font-bold">4</span>
101
+ <div>
102
+ <h3 className="font-semibold mb-1">Run Tests</h3>
103
+ <p className="text-gray-400">Execute your test suite and ensure everything passes.</p>
104
+ <div className="bg-[#1a1a24] rounded-lg p-3 mt-2 border border-white/10">
105
+ <code className="text-sm text-gray-300">run_tests</code>
106
+ </div>
107
+ </div>
108
+ </li>
109
+ <li className="flex gap-4">
110
+ <span className="flex-shrink-0 w-8 h-8 rounded-full bg-pink-500/20 flex items-center justify-center text-pink-400 font-bold">5</span>
111
+ <div>
112
+ <h3 className="font-semibold mb-1">Create Documentation</h3>
113
+ <p className="text-gray-400">Update relevant documentation for your changes.</p>
114
+ <div className="bg-[#1a1a24] rounded-lg p-3 mt-2 border border-white/10">
115
+ <code className="text-sm text-gray-300">create_documentation</code>
116
+ </div>
117
+ </div>
118
+ </li>
119
+ <li className="flex gap-4">
120
+ <span className="flex-shrink-0 w-8 h-8 rounded-full bg-blue-500/20 flex items-center justify-center text-blue-400 font-bold">6</span>
121
+ <div>
122
+ <h3 className="font-semibold mb-1">Commit and Push</h3>
123
+ <p className="text-gray-400">Commit your changes and push to the repository.</p>
124
+ <div className="bg-[#1a1a24] rounded-lg p-3 mt-2 border border-white/10">
125
+ <code className="text-sm text-gray-300">commit_and_push</code>
126
+ </div>
127
+ </div>
128
+ </li>
129
+ </ol>
130
+
131
+ <h2 className="text-3xl font-bold mt-12 mb-6">Available Commands</h2>
132
+ <div className="space-y-3 mb-8">
133
+ {[
134
+ { cmd: "start_task", desc: "Begin a new coding task" },
135
+ { cmd: "mark_bug_fixed", desc: "Mark feature/bugfix as complete" },
136
+ { cmd: "create_tests", desc: "Record that tests have been created" },
137
+ { cmd: "run_tests", desc: "Execute and record test results" },
138
+ { cmd: "skip_tests", desc: "Skip tests with justification" },
139
+ { cmd: "create_documentation", desc: "Record documentation updates" },
140
+ { cmd: "commit_and_push", desc: "Commit and push changes" },
141
+ { cmd: "perform_release", desc: "Execute release process" },
142
+ { cmd: "complete_task", desc: "Mark task as complete" },
143
+ { cmd: "get_workflow_status", desc: "Check current workflow state" },
144
+ { cmd: "view_history", desc: "View completed tasks" },
145
+ ].map((item) => (
146
+ <div key={item.cmd} className="p-4 rounded-lg bg-white/5 border border-white/10 hover:bg-white/10 transition">
147
+ <code className="text-indigo-400 font-mono">{item.cmd}</code>
148
+ <p className="text-gray-400 text-sm mt-1">{item.desc}</p>
149
+ </div>
150
+ ))}
151
+ </div>
152
+
153
+ <h2 className="text-3xl font-bold mt-12 mb-6">Configuration</h2>
154
+ <p className="text-gray-400 mb-4">
155
+ The server stores workflow state in a SQLite database located at <code className="text-indigo-400 bg-white/5 px-2 py-1 rounded">.state/dev-workflow.db</code>
156
+ </p>
157
+ <p className="text-gray-400 mb-8">
158
+ Set the <code className="text-indigo-400 bg-white/5 px-2 py-1 rounded">DEV_WORKFLOW_USER_ID</code> environment variable to isolate workflow state per user.
159
+ </p>
160
+
161
+ <h2 className="text-3xl font-bold mt-12 mb-6">Requirements</h2>
162
+ <ul className="space-y-2 mb-8">
163
+ <li className="flex items-center gap-2 text-gray-400">
164
+ <CheckCircle className="w-4 h-4 text-emerald-400" />
165
+ Node.js 18 or higher
166
+ </li>
167
+ <li className="flex items-center gap-2 text-gray-400">
168
+ <CheckCircle className="w-4 h-4 text-emerald-400" />
169
+ Git installed and configured
170
+ </li>
171
+ <li className="flex items-center gap-2 text-gray-400">
172
+ <CheckCircle className="w-4 h-4 text-emerald-400" />
173
+ MCP-compatible AI assistant (e.g., Claude Desktop)
174
+ </li>
175
+ </ul>
176
+
177
+ <h2 className="text-3xl font-bold mt-12 mb-6">License</h2>
178
+ <p className="text-gray-400 mb-8">
179
+ MIT License - Free to use for personal and commercial projects.
180
+ </p>
181
+
182
+ <div className="bg-gradient-to-r from-indigo-500/10 via-purple-500/10 to-pink-500/10 border border-white/10 rounded-lg p-6 mt-12">
183
+ <div className="flex items-center gap-3 mb-3">
184
+ <Rocket className="w-6 h-6 text-pink-400" />
185
+ <h3 className="text-xl font-bold">Ready to get started?</h3>
186
+ </div>
187
+ <p className="text-gray-400 mb-4">
188
+ Install the MCP server and start enforcing best practices in your development workflow today!
189
+ </p>
190
+ <Link
191
+ href="https://github.com/programinglive/dev-workflow-mcp-server"
192
+ target="_blank"
193
+ className="inline-flex items-center gap-2 px-6 py-3 bg-gradient-to-r from-indigo-600 to-purple-600 rounded-lg font-semibold hover:shadow-lg hover:shadow-indigo-500/50 transition"
194
+ >
195
+ View on GitHub
196
+ </Link>
197
+ </div>
198
+ </div>
199
+ </div>
200
+ </div>
201
+ );
202
+ }