@programinglive/dev-workflow-mcp-server 1.5.1 → 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 (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/npm-publish.yml +50 -50
  9. package/.husky/commit-msg +0 -0
  10. package/CHANGELOG.md +749 -739
  11. package/CODE_OF_CONDUCT.md +79 -79
  12. package/CONTRIBUTING.md +60 -60
  13. package/LICENSE +21 -21
  14. package/README.md +632 -632
  15. package/SECURITY.md +20 -20
  16. package/db/index.js +204 -204
  17. package/docs/NETLIFY_DEPLOYMENT.md +125 -125
  18. package/docs/PLESK_DEPLOYMENT.md +170 -170
  19. package/docs/WORKFLOW-BEST-PRACTICES.md +58 -58
  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 -67
  26. package/docs/release-notes/RELEASE_NOTES.md +226 -226
  27. package/docs/web-dashboard.md +175 -175
  28. package/exec.js +49 -49
  29. package/index.js +279 -279
  30. package/install.js +73 -73
  31. package/package.json +4 -4
  32. package/release-wrapper.js +192 -192
  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 -178
  37. package/server.json +23 -23
  38. package/tailwind.config.js +8 -8
  39. package/tests/build.test.js +83 -91
  40. package/tests/exec.test.js +35 -35
  41. package/tests/handlers.test.js +1058 -1058
  42. package/tests/hello-world.test.js +13 -13
  43. package/tests/mcpRegistry.test.js +65 -65
  44. package/tests/release-wrapper.test.js +107 -107
  45. package/tests/workflowState.test.js +505 -505
  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 -23
  50. package/web/README.md +36 -36
  51. package/web/app/docs/page.tsx +202 -202
  52. package/web/app/globals.css +90 -90
  53. package/web/app/layout.tsx +36 -36
  54. package/web/app/page.tsx +15 -15
  55. package/web/components/ApiReference.tsx +20 -20
  56. package/web/components/Features.tsx +61 -61
  57. package/web/components/Footer.tsx +9 -9
  58. package/web/components/Hero.tsx +96 -97
  59. package/web/components/History.tsx +143 -143
  60. package/web/components/Navbar.tsx +64 -64
  61. package/web/components/Terminal.tsx +114 -114
  62. package/web/eslint.config.mjs +18 -18
  63. package/web/lib/db.js +131 -131
  64. package/web/lib/docs.js +73 -73
  65. package/web/netlify.toml +3 -6
  66. package/web/next.config.ts +12 -7
  67. package/web/package-lock.json +6560 -6560
  68. package/web/package.json +28 -28
  69. package/web/postcss.config.mjs +9 -9
  70. package/web/server.js +31 -31
  71. package/web/tailwind.config.ts +19 -19
  72. package/web/tsconfig.json +42 -42
  73. package/workflow-state.js +612 -612
  74. package/web/app/api/docs/route.ts +0 -32
  75. package/web/app/api/history/route.ts +0 -12
  76. package/web/app/api/npm-downloads/route.ts +0 -21
  77. package/web/app/api/summary/route.ts +0 -13
  78. package/web/app/api/version/route.ts +0 -8
@@ -1,91 +1,91 @@
1
- @tailwind base;
2
- @tailwind components;
3
- @tailwind utilities;
4
-
5
- :root {
6
- --background: #0a0a0f;
7
- --foreground: #ffffff;
8
- }
9
-
10
- body {
11
- color: var(--foreground);
12
- background: var(--background);
13
- font-family: Arial, Helvetica, sans-serif;
14
- }
15
-
16
- @layer utilities {
17
- @keyframes fadeInUp {
18
- 0% {
19
- opacity: 0;
20
- transform: translateY(20px);
21
- }
22
-
23
- 100% {
24
- opacity: 1;
25
- transform: translateY(0px);
26
- }
27
- }
28
-
29
- @keyframes fadeInRight {
30
- 0% {
31
- opacity: 0;
32
- transform: translateY(-50%) translateX(40px);
33
- }
34
-
35
- 100% {
36
- opacity: 1;
37
- transform: translateY(-50%) translateX(0px);
38
- }
39
- }
40
-
41
- @keyframes fadeIn {
42
- 0% {
43
- opacity: 0;
44
- transform: translateX(-10px);
45
- }
46
-
47
- 100% {
48
- opacity: 1;
49
- transform: translateX(0px);
50
- }
51
- }
52
-
53
- .animate-fade-in-up {
54
- animation: fadeInUp 0.8s ease-out forwards;
55
- opacity: 0;
56
- }
57
-
58
- .animate-fade-in-right {
59
- animation: fadeInRight 0.8s ease-out forwards;
60
- opacity: 0;
61
- }
62
-
63
- .terminal-line {
64
- opacity: 0;
65
- display: flex;
66
- }
67
-
68
- .terminal-line.visible {
69
- opacity: 1;
70
- transition: opacity 0.1s;
71
- }
72
-
73
- .typing-cursor::after {
74
- content: '▋';
75
- animation: blink 1s step-end infinite;
76
- margin-left: 4px;
77
- color: #a855f7;
78
- }
79
-
80
- @keyframes blink {
81
-
82
- 0%,
83
- 100% {
84
- opacity: 1;
85
- }
86
-
87
- 50% {
88
- opacity: 0;
89
- }
90
- }
1
+ @tailwind base;
2
+ @tailwind components;
3
+ @tailwind utilities;
4
+
5
+ :root {
6
+ --background: #0a0a0f;
7
+ --foreground: #ffffff;
8
+ }
9
+
10
+ body {
11
+ color: var(--foreground);
12
+ background: var(--background);
13
+ font-family: Arial, Helvetica, sans-serif;
14
+ }
15
+
16
+ @layer utilities {
17
+ @keyframes fadeInUp {
18
+ 0% {
19
+ opacity: 0;
20
+ transform: translateY(20px);
21
+ }
22
+
23
+ 100% {
24
+ opacity: 1;
25
+ transform: translateY(0px);
26
+ }
27
+ }
28
+
29
+ @keyframes fadeInRight {
30
+ 0% {
31
+ opacity: 0;
32
+ transform: translateY(-50%) translateX(40px);
33
+ }
34
+
35
+ 100% {
36
+ opacity: 1;
37
+ transform: translateY(-50%) translateX(0px);
38
+ }
39
+ }
40
+
41
+ @keyframes fadeIn {
42
+ 0% {
43
+ opacity: 0;
44
+ transform: translateX(-10px);
45
+ }
46
+
47
+ 100% {
48
+ opacity: 1;
49
+ transform: translateX(0px);
50
+ }
51
+ }
52
+
53
+ .animate-fade-in-up {
54
+ animation: fadeInUp 0.8s ease-out forwards;
55
+ opacity: 0;
56
+ }
57
+
58
+ .animate-fade-in-right {
59
+ animation: fadeInRight 0.8s ease-out forwards;
60
+ opacity: 0;
61
+ }
62
+
63
+ .terminal-line {
64
+ opacity: 0;
65
+ display: flex;
66
+ }
67
+
68
+ .terminal-line.visible {
69
+ opacity: 1;
70
+ transition: opacity 0.1s;
71
+ }
72
+
73
+ .typing-cursor::after {
74
+ content: '▋';
75
+ animation: blink 1s step-end infinite;
76
+ margin-left: 4px;
77
+ color: #a855f7;
78
+ }
79
+
80
+ @keyframes blink {
81
+
82
+ 0%,
83
+ 100% {
84
+ opacity: 1;
85
+ }
86
+
87
+ 50% {
88
+ opacity: 0;
89
+ }
90
+ }
91
91
  }
@@ -1,36 +1,36 @@
1
- import type { Metadata } from "next";
2
- import "./globals.css";
3
- import Navbar from "@/components/Navbar";
4
- import Footer from "@/components/Footer";
5
-
6
- export const metadata: Metadata = {
7
- title: "Dev Workflow Dashboard",
8
- description: "Enforce development discipline and best practices",
9
- icons: {
10
- icon: [
11
- { url: "/assets/favicon-16x16.png", sizes: "16x16", type: "image/png" },
12
- { url: "/assets/favicon-32x32.png", sizes: "32x32", type: "image/png" },
13
- { url: "/assets/favicon.ico" },
14
- ],
15
- apple: [
16
- { url: "/assets/apple-touch-icon.png", sizes: "180x180", type: "image/png" },
17
- ],
18
- },
19
- manifest: "/assets/site.webmanifest",
20
- };
21
-
22
- export default function RootLayout({
23
- children,
24
- }: Readonly<{
25
- children: React.ReactNode;
26
- }>) {
27
- return (
28
- <html lang="en" className="scroll-smooth">
29
- <body className="antialiased bg-[#0a0a0f] text-white">
30
- <Navbar />
31
- {children}
32
- <Footer />
33
- </body>
34
- </html>
35
- );
36
- }
1
+ import type { Metadata } from "next";
2
+ import "./globals.css";
3
+ import Navbar from "@/components/Navbar";
4
+ import Footer from "@/components/Footer";
5
+
6
+ export const metadata: Metadata = {
7
+ title: "Dev Workflow Dashboard",
8
+ description: "Enforce development discipline and best practices",
9
+ icons: {
10
+ icon: [
11
+ { url: "/assets/favicon-16x16.png", sizes: "16x16", type: "image/png" },
12
+ { url: "/assets/favicon-32x32.png", sizes: "32x32", type: "image/png" },
13
+ { url: "/assets/favicon.ico" },
14
+ ],
15
+ apple: [
16
+ { url: "/assets/apple-touch-icon.png", sizes: "180x180", type: "image/png" },
17
+ ],
18
+ },
19
+ manifest: "/assets/site.webmanifest",
20
+ };
21
+
22
+ export default function RootLayout({
23
+ children,
24
+ }: Readonly<{
25
+ children: React.ReactNode;
26
+ }>) {
27
+ return (
28
+ <html lang="en" className="scroll-smooth">
29
+ <body className="antialiased bg-[#0a0a0f] text-white">
30
+ <Navbar />
31
+ {children}
32
+ <Footer />
33
+ </body>
34
+ </html>
35
+ );
36
+ }
package/web/app/page.tsx CHANGED
@@ -1,15 +1,15 @@
1
- import Hero from "@/components/Hero";
2
- import Features from "@/components/Features";
3
- import History from "@/components/History";
4
- import ApiReference from "@/components/ApiReference";
5
-
6
- export default function Home() {
7
- return (
8
- <main>
9
- <Hero />
10
- <Features />
11
- <History />
12
- <ApiReference />
13
- </main>
14
- );
15
- }
1
+ import Hero from "@/components/Hero";
2
+ import Features from "@/components/Features";
3
+ import History from "@/components/History";
4
+ import ApiReference from "@/components/ApiReference";
5
+
6
+ export default function Home() {
7
+ return (
8
+ <main>
9
+ <Hero />
10
+ <Features />
11
+ <History />
12
+ <ApiReference />
13
+ </main>
14
+ );
15
+ }
@@ -1,20 +1,20 @@
1
- export default function ApiReference() {
2
- return (
3
- <section id="api" className="py-20 px-4">
4
- <div className="max-w-7xl mx-auto">
5
- <h2 className="text-3xl md:text-4xl font-bold mb-8">API Reference</h2>
6
- <p className="text-gray-400 mb-12">Query workflow data programmatically with our JSON API.</p>
7
- <div className="grid md:grid-cols-2 gap-6">
8
- <div className="p-6 rounded-xl bg-white/5 border border-white/10">
9
- <code className="text-indigo-400 font-mono text-sm">GET /api/history</code>
10
- <p className="text-gray-400 mt-2">Retrieve paginated task history entries.</p>
11
- </div>
12
- <div className="p-6 rounded-xl bg-white/5 border border-white/10">
13
- <code className="text-indigo-400 font-mono text-sm">GET /api/summary</code>
14
- <p className="text-gray-400 mt-2">Get project health stats and recent tasks.</p>
15
- </div>
16
- </div>
17
- </div>
18
- </section>
19
- );
20
- }
1
+ export default function ApiReference() {
2
+ return (
3
+ <section id="api" className="py-20 px-4">
4
+ <div className="max-w-7xl mx-auto">
5
+ <h2 className="text-3xl md:text-4xl font-bold mb-8">API Reference</h2>
6
+ <p className="text-gray-400 mb-12">Query workflow data programmatically with our JSON API.</p>
7
+ <div className="grid md:grid-cols-2 gap-6">
8
+ <div className="p-6 rounded-xl bg-white/5 border border-white/10">
9
+ <code className="text-indigo-400 font-mono text-sm">GET /api/history</code>
10
+ <p className="text-gray-400 mt-2">Retrieve paginated task history entries.</p>
11
+ </div>
12
+ <div className="p-6 rounded-xl bg-white/5 border border-white/10">
13
+ <code className="text-indigo-400 font-mono text-sm">GET /api/summary</code>
14
+ <p className="text-gray-400 mt-2">Get project health stats and recent tasks.</p>
15
+ </div>
16
+ </div>
17
+ </div>
18
+ </section>
19
+ );
20
+ }
@@ -1,61 +1,61 @@
1
- import { ShieldCheck, TestTube, FileText, GitBranch, History, Zap } from "lucide-react";
2
-
3
- export default function Features() {
4
- return (
5
- <section id="features" className="py-20 px-4">
6
- <div className="max-w-7xl mx-auto">
7
- <h2 className="text-3xl md:text-4xl font-bold text-center mb-16">Your Coding Conscience</h2>
8
- <div className="grid md:grid-cols-2 lg:grid-cols-3 gap-6">
9
- <FeatureCard
10
- icon={<ShieldCheck className="w-6 h-6 text-indigo-400" />}
11
- title="Enforced Discipline"
12
- description="Won't let you skip important steps. Follows a strict, proven development workflow."
13
- bg="bg-indigo-500/20"
14
- />
15
- <FeatureCard
16
- icon={<TestTube className="w-6 h-6 text-purple-400" />}
17
- title="Test-Driven"
18
- description="Blocks commits if tests fail. Encourages writing tests before marking tasks complete."
19
- bg="bg-purple-500/20"
20
- />
21
- <FeatureCard
22
- icon={<FileText className="w-6 h-6 text-emerald-400" />}
23
- title="Documentation"
24
- description="Reminds you to update documentation (README, docs, changelog) for every change."
25
- bg="bg-emerald-500/20"
26
- />
27
- <FeatureCard
28
- icon={<GitBranch className="w-6 h-6 text-orange-400" />}
29
- title="State Tracking"
30
- description="Remembers exactly where you are in the workflow, even across sessions."
31
- bg="bg-orange-500/20"
32
- />
33
- <FeatureCard
34
- icon={<History className="w-6 h-6 text-blue-400" />}
35
- title="Task History"
36
- description="Keeps a detailed log of all completed tasks, commits, and releases."
37
- bg="bg-blue-500/20"
38
- />
39
- <FeatureCard
40
- icon={<Zap className="w-6 h-6 text-pink-400" />}
41
- title="Smart Prompts"
42
- description="Provides quick reminders and guidance on best practices as you work."
43
- bg="bg-pink-500/20"
44
- />
45
- </div>
46
- </div>
47
- </section>
48
- );
49
- }
50
-
51
- function FeatureCard({ icon, title, description, bg }: { icon: React.ReactNode, title: string, description: string, bg: string }) {
52
- return (
53
- <div className="p-6 rounded-xl bg-white/5 border border-white/10 hover:bg-white/10 transition">
54
- <div className={`w-12 h-12 rounded-lg ${bg} flex items-center justify-center mb-4`}>
55
- {icon}
56
- </div>
57
- <h3 className="text-xl font-semibold mb-2">{title}</h3>
58
- <p className="text-gray-400">{description}</p>
59
- </div>
60
- );
61
- }
1
+ import { ShieldCheck, TestTube, FileText, GitBranch, History, Zap } from "lucide-react";
2
+
3
+ export default function Features() {
4
+ return (
5
+ <section id="features" className="py-20 px-4">
6
+ <div className="max-w-7xl mx-auto">
7
+ <h2 className="text-3xl md:text-4xl font-bold text-center mb-16">Your Coding Conscience</h2>
8
+ <div className="grid md:grid-cols-2 lg:grid-cols-3 gap-6">
9
+ <FeatureCard
10
+ icon={<ShieldCheck className="w-6 h-6 text-indigo-400" />}
11
+ title="Enforced Discipline"
12
+ description="Won't let you skip important steps. Follows a strict, proven development workflow."
13
+ bg="bg-indigo-500/20"
14
+ />
15
+ <FeatureCard
16
+ icon={<TestTube className="w-6 h-6 text-purple-400" />}
17
+ title="Test-Driven"
18
+ description="Blocks commits if tests fail. Encourages writing tests before marking tasks complete."
19
+ bg="bg-purple-500/20"
20
+ />
21
+ <FeatureCard
22
+ icon={<FileText className="w-6 h-6 text-emerald-400" />}
23
+ title="Documentation"
24
+ description="Reminds you to update documentation (README, docs, changelog) for every change."
25
+ bg="bg-emerald-500/20"
26
+ />
27
+ <FeatureCard
28
+ icon={<GitBranch className="w-6 h-6 text-orange-400" />}
29
+ title="State Tracking"
30
+ description="Remembers exactly where you are in the workflow, even across sessions."
31
+ bg="bg-orange-500/20"
32
+ />
33
+ <FeatureCard
34
+ icon={<History className="w-6 h-6 text-blue-400" />}
35
+ title="Task History"
36
+ description="Keeps a detailed log of all completed tasks, commits, and releases."
37
+ bg="bg-blue-500/20"
38
+ />
39
+ <FeatureCard
40
+ icon={<Zap className="w-6 h-6 text-pink-400" />}
41
+ title="Smart Prompts"
42
+ description="Provides quick reminders and guidance on best practices as you work."
43
+ bg="bg-pink-500/20"
44
+ />
45
+ </div>
46
+ </div>
47
+ </section>
48
+ );
49
+ }
50
+
51
+ function FeatureCard({ icon, title, description, bg }: { icon: React.ReactNode, title: string, description: string, bg: string }) {
52
+ return (
53
+ <div className="p-6 rounded-xl bg-white/5 border border-white/10 hover:bg-white/10 transition">
54
+ <div className={`w-12 h-12 rounded-lg ${bg} flex items-center justify-center mb-4`}>
55
+ {icon}
56
+ </div>
57
+ <h3 className="text-xl font-semibold mb-2">{title}</h3>
58
+ <p className="text-gray-400">{description}</p>
59
+ </div>
60
+ );
61
+ }
@@ -1,9 +1,9 @@
1
- export default function Footer() {
2
- return (
3
- <footer className="py-12 px-4 border-t border-white/10">
4
- <div className="max-w-7xl mx-auto text-center text-gray-400">
5
- <p>Built with ❤️ for developers who care about quality</p>
6
- </div>
7
- </footer>
8
- );
9
- }
1
+ export default function Footer() {
2
+ return (
3
+ <footer className="py-12 px-4 border-t border-white/10">
4
+ <div className="max-w-7xl mx-auto text-center text-gray-400">
5
+ <p>Built with ❤️ for developers who care about quality</p>
6
+ </div>
7
+ </footer>
8
+ );
9
+ }