mcp-ai-agent-guidelines 0.1.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 (55) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +336 -0
  3. package/dist/index.d.ts +10 -0
  4. package/dist/index.d.ts.map +1 -0
  5. package/dist/index.js +307 -0
  6. package/dist/index.js.map +1 -0
  7. package/dist/prompts/index.d.ts +21 -0
  8. package/dist/prompts/index.d.ts.map +1 -0
  9. package/dist/prompts/index.js +504 -0
  10. package/dist/prompts/index.js.map +1 -0
  11. package/dist/resources/index.d.ts +14 -0
  12. package/dist/resources/index.d.ts.map +1 -0
  13. package/dist/resources/index.js +92 -0
  14. package/dist/resources/index.js.map +1 -0
  15. package/dist/resources/structured.d.ts +47 -0
  16. package/dist/resources/structured.d.ts.map +1 -0
  17. package/dist/resources/structured.js +857 -0
  18. package/dist/resources/structured.js.map +1 -0
  19. package/dist/tools/code-hygiene-analyzer.d.ts +7 -0
  20. package/dist/tools/code-hygiene-analyzer.d.ts.map +1 -0
  21. package/dist/tools/code-hygiene-analyzer.js +176 -0
  22. package/dist/tools/code-hygiene-analyzer.js.map +1 -0
  23. package/dist/tools/config/guidelines-config.d.ts +16 -0
  24. package/dist/tools/config/guidelines-config.d.ts.map +1 -0
  25. package/dist/tools/config/guidelines-config.js +236 -0
  26. package/dist/tools/config/guidelines-config.js.map +1 -0
  27. package/dist/tools/config/model-config.d.ts +33 -0
  28. package/dist/tools/config/model-config.d.ts.map +1 -0
  29. package/dist/tools/config/model-config.js +206 -0
  30. package/dist/tools/config/model-config.js.map +1 -0
  31. package/dist/tools/guidelines-validator.d.ts +7 -0
  32. package/dist/tools/guidelines-validator.d.ts.map +1 -0
  33. package/dist/tools/guidelines-validator.js +178 -0
  34. package/dist/tools/guidelines-validator.js.map +1 -0
  35. package/dist/tools/hierarchical-prompt-builder.d.ts +7 -0
  36. package/dist/tools/hierarchical-prompt-builder.d.ts.map +1 -0
  37. package/dist/tools/hierarchical-prompt-builder.js +147 -0
  38. package/dist/tools/hierarchical-prompt-builder.js.map +1 -0
  39. package/dist/tools/memory-context-optimizer.d.ts +7 -0
  40. package/dist/tools/memory-context-optimizer.d.ts.map +1 -0
  41. package/dist/tools/memory-context-optimizer.js +256 -0
  42. package/dist/tools/memory-context-optimizer.js.map +1 -0
  43. package/dist/tools/mermaid-diagram-generator.d.ts +7 -0
  44. package/dist/tools/mermaid-diagram-generator.d.ts.map +1 -0
  45. package/dist/tools/mermaid-diagram-generator.js +312 -0
  46. package/dist/tools/mermaid-diagram-generator.js.map +1 -0
  47. package/dist/tools/model-compatibility-checker.d.ts +7 -0
  48. package/dist/tools/model-compatibility-checker.d.ts.map +1 -0
  49. package/dist/tools/model-compatibility-checker.js +204 -0
  50. package/dist/tools/model-compatibility-checker.js.map +1 -0
  51. package/dist/tools/sprint-timeline-calculator.d.ts +7 -0
  52. package/dist/tools/sprint-timeline-calculator.d.ts.map +1 -0
  53. package/dist/tools/sprint-timeline-calculator.js +240 -0
  54. package/dist/tools/sprint-timeline-calculator.js.map +1 -0
  55. package/package.json +75 -0
@@ -0,0 +1,204 @@
1
+ import { z } from "zod";
2
+ import { BUDGET_ADJUSTMENTS, BUDGET_BONUS, BUDGET_PENALTY, CAPABILITY_WEIGHTS, MODELS, REQUIREMENT_KEYWORDS, } from "./config/model-config.js";
3
+ const ModelCompatibilitySchema = z.object({
4
+ taskDescription: z.string(),
5
+ requirements: z.array(z.string()).optional(),
6
+ budget: z.enum(["low", "medium", "high"]).optional(),
7
+ // Optional additions
8
+ language: z.string().optional(), // for example snippets (e.g., 'typescript', 'python')
9
+ includeReferences: z.boolean().optional().default(true),
10
+ includeCodeExamples: z.boolean().optional().default(true),
11
+ linkFiles: z.boolean().optional().default(true),
12
+ includeMetadata: z.boolean().optional().default(true),
13
+ inputFile: z.string().optional(),
14
+ });
15
+ export async function modelCompatibilityChecker(args) {
16
+ const input = ModelCompatibilitySchema.parse(args);
17
+ const analysis = analyzeModelCompatibility(input);
18
+ const codeExamples = input.includeCodeExamples
19
+ ? buildCodeExamples(input.language)
20
+ : undefined;
21
+ const fileLinks = input.linkFiles ? buildFileLinks() : undefined;
22
+ const metadata = input.includeMetadata
23
+ ? [
24
+ "### Metadata",
25
+ `- Updated: ${new Date().toISOString().slice(0, 10)}`,
26
+ "- Source tool: mcp_ai-agent-guid_model-compatibility-checker",
27
+ input.inputFile ? `- Input file: ${input.inputFile}` : undefined,
28
+ "",
29
+ ]
30
+ .filter(Boolean)
31
+ .join("\n")
32
+ : "";
33
+ return {
34
+ content: [
35
+ {
36
+ type: "text",
37
+ text: `## 🤖 AI Model Compatibility Analysis (Qualitative)
38
+
39
+ ${metadata}
40
+
41
+ ### Task Analysis
42
+ **Description**: ${input.taskDescription}
43
+ **Requirements**: ${input.requirements?.join(", ") || "None specified"}
44
+ **Budget**: ${input.budget || "Not specified"}
45
+
46
+
47
+ ### Top Recommendations (Qualitative)
48
+
49
+ ${analysis.recommendations
50
+ .slice(0, 3)
51
+ .map((model, index) => `#### ${index + 1}. ${model.name} (${model.provider})
52
+ **Fit Summary**: ${model.strengths[0] || "General purpose"}
53
+ **Context Handling**: ${model.contextWindow} (refer to provider docs)
54
+ **Notes**: ${model.limitations[0] || "No major caveats documented"}
55
+
56
+ **Highlights**:
57
+ ${model.specialFeatures.map((f) => `- ${f}`).join("\n")}
58
+ `)
59
+ .join("\n")}
60
+
61
+ ### Selection Snapshot
62
+
63
+ | Model | Provider | Best For |
64
+ |-------|----------|----------|
65
+ ${analysis.recommendations
66
+ .map((model) => `| ${model.name} | ${model.provider} | ${model.strengths[0] || "General use"} |`)
67
+ .join("\n")}
68
+
69
+ ### Selection Guidelines
70
+
71
+ **For Code Generation**: Choose models with strong reasoning capabilities and code-specific training
72
+ **For Analysis Tasks**: Prioritize models with large context windows and analytical strength
73
+ **For Creative Tasks**: Select models optimized for creative writing and diverse outputs
74
+ **For Production Use**: Consider latency, cost, and reliability alongside capability
75
+
76
+ ### Usage Optimization Tips
77
+ 1. **Start with smaller models** for prototyping and testing
78
+ 2. **Use prompt caching** for repeated system messages
79
+ 3. **Implement model switching** based on task complexity
80
+ 4. **Monitor token usage** and optimize prompts for efficiency
81
+ 5. **Consider fine-tuning** for specialized, high-volume use cases
82
+
83
+ ### Evaluation Method
84
+ Heuristic fit against requirement keywords; qualitative only. Validate with quick benchmarks in your stack.
85
+
86
+ ### Rolling Model Updates
87
+ - Config-driven list (context windows, tiers, capabilities) periodically refreshed
88
+ - Capability weights & budget adjustments may evolve
89
+
90
+ ${codeExamples ? `### Code Examples\n${codeExamples}\n` : ""}
91
+ ${fileLinks ? `### Configuration & Files\n${fileLinks}\n` : ""}
92
+ ### References
93
+ - GitHub Copilot model comparison (task-based): https://docs.github.com/en/copilot/reference/ai-models/model-comparison#recommended-models-by-task
94
+ - OpenAI models overview: https://platform.openai.com/docs/models
95
+ - Anthropic Claude models: https://docs.anthropic.com/en/docs/about-claude/models
96
+ - Google Gemini models: https://ai.google.dev/gemini-api/docs/models
97
+
98
+ ### Disclaimer
99
+ - This tool provides qualitative recommendations and links to official docs.
100
+ - Capabilities evolve; verify with provider docs and test in your environment before adoption.
101
+ `,
102
+ },
103
+ ],
104
+ };
105
+ }
106
+ function analyzeModelCompatibility(input) {
107
+ const text = [input.taskDescription, ...(input.requirements || [])]
108
+ .join(" ")
109
+ .toLowerCase();
110
+ const matchedCaps = new Set();
111
+ for (const [cap, words] of Object.entries(REQUIREMENT_KEYWORDS)) {
112
+ if (words.some((w) => text.includes(w)))
113
+ matchedCaps.add(cap);
114
+ }
115
+ const budgetAdj = input.budget ? BUDGET_ADJUSTMENTS[input.budget] : undefined;
116
+ const scored = MODELS.map((m) => {
117
+ let score = m.baseScore;
118
+ const breakdown = [`Base: ${m.baseScore}`];
119
+ for (const cap of matchedCaps) {
120
+ if (m.capabilities.includes(cap)) {
121
+ const add = CAPABILITY_WEIGHTS[cap] || 0;
122
+ score += add;
123
+ breakdown.push(`+${add} ${cap}`);
124
+ }
125
+ }
126
+ if (budgetAdj && input.budget) {
127
+ if (budgetAdj.bonus.includes(m.pricingTier)) {
128
+ score += BUDGET_BONUS;
129
+ breakdown.push(`+${BUDGET_BONUS} budget alignment (${input.budget})`);
130
+ }
131
+ if (budgetAdj.penalty.includes(m.pricingTier)) {
132
+ score -= BUDGET_PENALTY;
133
+ breakdown.push(`-${BUDGET_PENALTY} budget penalty (${m.pricingTier})`);
134
+ }
135
+ }
136
+ score = Math.max(0, Math.min(100, score));
137
+ return {
138
+ name: m.name,
139
+ provider: m.provider,
140
+ pricing: m.pricing,
141
+ contextWindow: `${Intl.NumberFormat().format(m.contextTokens)} tokens`,
142
+ strengths: m.strengths,
143
+ limitations: m.limitations,
144
+ specialFeatures: m.specialFeatures,
145
+ score,
146
+ breakdown,
147
+ };
148
+ });
149
+ return { recommendations: scored.sort((a, b) => b.score - a.score) };
150
+ }
151
+ // references moved inline in output for simplicity and always-on links
152
+ function buildCodeExamples(language) {
153
+ const lang = (language || "typescript").toLowerCase();
154
+ if (lang.includes("python")) {
155
+ return [
156
+ "#### Python (pseudo-usage)",
157
+ "```python",
158
+ "# Example: switch model by task complexity",
159
+ "def pick_model(task_complexity: str):",
160
+ " if task_complexity in ('simple', 'low-latency'):",
161
+ " return 'o4-mini' # budget/fast\n",
162
+ " if task_complexity in ('large-context', 'long-docs'):",
163
+ " return 'gemini-2.5-pro' # 2M context\n",
164
+ " return 'claude-4-sonnet' # balanced default\n",
165
+ "",
166
+ "model = pick_model('large-context')",
167
+ "# Call provider SDK accordingly (pseudo):",
168
+ "# openai.chat.completions.create(model=model, messages=...)",
169
+ "# anthropic.messages.create(model=model, messages=...)",
170
+ "# genai.GenerativeModel(model).generate_content(...)",
171
+ "```",
172
+ ].join("\n");
173
+ }
174
+ // default TypeScript/JavaScript
175
+ return [
176
+ "#### TypeScript (pattern)",
177
+ "```ts",
178
+ "type Provider = 'openai' | 'anthropic' | 'google';",
179
+ "interface Choice { provider: Provider; model: string }",
180
+ "export function pickModel(opts: { complexity?: 'simple'|'balanced'|'advanced'; largeContext?: boolean; multimodal?: boolean; budget?: 'low'|'medium'|'high'; }): Choice {",
181
+ " if (opts.largeContext) return { provider: 'google', model: 'gemini-2.5-pro' };",
182
+ " if (opts.complexity === 'advanced') return { provider: 'anthropic', model: 'claude-4-opus' };",
183
+ " if (opts.complexity === 'simple' || opts.budget === 'low') return { provider: 'openai', model: 'o4-mini' };",
184
+ " return { provider: 'anthropic', model: 'claude-4-sonnet' };",
185
+ "}",
186
+ "",
187
+ "// Example usage (pseudo—replace with real SDK calls):",
188
+ "const choice = pickModel({ largeContext: true });",
189
+ "switch (choice.provider) {",
190
+ " case 'openai': /* openai.chat.completions.create({ model: choice.model, messages }) */ break;",
191
+ " case 'anthropic': /* anthropic.messages.create({ model: choice.model, messages }) */ break;",
192
+ " case 'google': /* new GenerativeModel({ model: choice.model }).generateContent(...) */ break;",
193
+ "}",
194
+ "```",
195
+ ].join("\n");
196
+ }
197
+ function buildFileLinks() {
198
+ return [
199
+ "- Update model profiles in: src/tools/config/model-config.ts",
200
+ "- See selection guidance resource: guidelines://model-selection",
201
+ "- Server tool exposing this analysis: src/tools/model-compatibility-checker.ts",
202
+ ].join("\n");
203
+ }
204
+ //# sourceMappingURL=model-compatibility-checker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-compatibility-checker.js","sourceRoot":"","sources":["../../src/tools/model-compatibility-checker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export declare function sprintTimelineCalculator(args: unknown): Promise<{
2
+ content: {
3
+ type: string;
4
+ text: string;
5
+ }[];
6
+ }>;
7
+ //# sourceMappingURL=sprint-timeline-calculator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sprint-timeline-calculator.d.ts","sourceRoot":"","sources":["../../src/tools/sprint-timeline-calculator.ts"],"names":[],"mappings":"AAoBA,wBAAsB,wBAAwB,CAAC,IAAI,EAAE,OAAO;;;;;GA4H3D"}
@@ -0,0 +1,240 @@
1
+ import { z } from "zod";
2
+ const SprintTimelineSchema = z.object({
3
+ tasks: z.array(z.object({
4
+ name: z.string(),
5
+ estimate: z.number(),
6
+ priority: z.string().optional(),
7
+ dependencies: z.array(z.string()).optional(),
8
+ })),
9
+ teamSize: z.number(),
10
+ sprintLength: z.number().optional(),
11
+ velocity: z.number().optional(),
12
+ includeMetadata: z.boolean().optional().default(true),
13
+ inputFile: z.string().optional(),
14
+ });
15
+ export async function sprintTimelineCalculator(args) {
16
+ const input = SprintTimelineSchema.parse(args);
17
+ const calculation = calculateSprintTimeline(input);
18
+ const sprintLen = input.sprintLength || 14;
19
+ return {
20
+ content: [
21
+ {
22
+ type: "text",
23
+ text: `## 🗓️ Sprint Timeline Calculation
24
+
25
+ ${input.includeMetadata ? `### Metadata\n- **Updated:** ${new Date().toISOString().slice(0, 10)}\n- **Source tool:** mcp_ai-agent-guid_sprint-timeline-calculator${input.inputFile ? `\n- **Input file:** ${input.inputFile}` : ""}\n` : ""}
26
+
27
+ ### Team Configuration
28
+ - **Team Size**: ${input.teamSize} members
29
+ - **Sprint Length**: ${input.sprintLength || 14} days
30
+ - **Team Velocity**: ${calculation.velocity} story points per sprint
31
+ - **Total Tasks**: ${input.tasks.length}
32
+
33
+ ### Capacity Analysis
34
+ - **Total Story Points**: ${calculation.totalPoints}
35
+ - **Required Sprints**: ${calculation.requiredSprints}
36
+ - **Timeline**: ${calculation.timelineDays} days (${Math.ceil(calculation.timelineDays / 7)} weeks)
37
+ - **Capacity Utilization**: ${calculation.utilizationPercentage}%
38
+
39
+ ### Sprint Summary
40
+ | Sprint | Planned Points | Tasks |
41
+ |-------:|----------------:|-------|
42
+ ${calculation.sprints
43
+ .map((s, i) => `| ${i + 1} | ${s.points} | ${s.tasks.map((t) => t.name).join(", ")} |`)
44
+ .join("\n")}
45
+
46
+ ### Sprint Breakdown
47
+ ${calculation.sprints
48
+ .map((sprint, index) => `**Sprint ${index + 1}** (${sprint.points} points):\n${sprint.tasks
49
+ .map((task) => ` - ${task.name} (${task.estimate} pts)${task.priority ? ` - Priority: ${task.priority}` : ""}`)
50
+ .join("\n")}`)
51
+ .join("\n\n")}
52
+
53
+ ### Risk Assessment
54
+ ${calculation.risks.map((risk, index) => `${index + 1}. **${risk.level}**: ${risk.description}`).join("\n")}
55
+
56
+ ### Recommendations
57
+ ${calculation.recommendations.map((rec, index) => `${index + 1}. ${rec}`).join("\n")}
58
+
59
+ ### Timeline Optimization Tips
60
+ - **Prioritize high-value tasks** early in the timeline
61
+ - **Address dependencies** before dependent tasks
62
+ - **Plan for 80% capacity** to account for meetings, code reviews, and unexpected issues
63
+ - **Include buffer time** for testing and bug fixes
64
+ - **Regular velocity tracking** to adjust future estimations
65
+ - **Consider skill distribution** when assigning tasks
66
+
67
+ ### Velocity Tracking Formula
68
+ \`Velocity = Completed Story Points / Sprint Duration\`
69
+
70
+ Current calculations based on:
71
+ - Industry average: 8-10 story points per developer per sprint
72
+ - Adjusted for team size and sprint length
73
+ - Factoring in 20% overhead for meetings and coordination
74
+
75
+ ### Gantt (Mermaid)
76
+ \`\`\`mermaid
77
+ gantt
78
+ dateFormat YYYY-MM-DD
79
+ title Sprint Plan
80
+ %% Accessibility: Title=Project Sprint Plan; Description=Gantt chart of sprints and tasks over time. %%
81
+ ${calculation.sprints
82
+ .map((sprint, sIndex) => {
83
+ const section = ` section Sprint ${sIndex + 1}`;
84
+ const start = new Date();
85
+ start.setDate(start.getDate() + sIndex * sprintLen);
86
+ const sanitize = (label) => label.replace(/[|\\]/g, "-").replace(/\s+/g, " ");
87
+ // Place tasks sequentially within the sprint to avoid time gaps.
88
+ let dayOffset = 0;
89
+ const lines = [section];
90
+ let totalDur = 0;
91
+ sprint.tasks.forEach((t, i) => {
92
+ const dur = 1 + Math.max(1, Math.ceil(t.estimate / 2));
93
+ totalDur += dur;
94
+ const taskStart = new Date(start);
95
+ taskStart.setDate(taskStart.getDate() + dayOffset);
96
+ const taskStartStr = taskStart.toISOString().slice(0, 10);
97
+ lines.push(` ${sanitize(t.name)} :s${sIndex + 1}t${i}, ${taskStartStr}, ${dur}d`);
98
+ dayOffset += dur;
99
+ });
100
+ // If tasks don't fill the entire sprint, add a Buffer task to cover remaining days.
101
+ if (totalDur < sprintLen) {
102
+ const rem = sprintLen - totalDur;
103
+ const bufStart = new Date(start);
104
+ bufStart.setDate(bufStart.getDate() + totalDur);
105
+ const bufStartStr = bufStart.toISOString().slice(0, 10);
106
+ lines.push(` Buffer_Review_Testing :s${sIndex + 1}buf, ${bufStartStr}, ${rem}d`);
107
+ }
108
+ return lines.join("\n");
109
+ })
110
+ .join("\n")}
111
+ \`\`\`
112
+
113
+ ### References
114
+ - ZenHub — AI-assisted sprint planning (2025): https://www.zenhub.com/blog-posts/the-7-best-ai-assisted-sprint-planning-tools-for-agile-teams-in-2025
115
+ - Nitor Infotech — AI in project delivery: https://www.nitorinfotech.com/blog/ai-in-software-project-delivery-smarter-planning-and-execution/
116
+ `,
117
+ },
118
+ ],
119
+ };
120
+ }
121
+ function calculateSprintTimeline(input) {
122
+ const { tasks, teamSize, sprintLength = 14, velocity: inputVelocity } = input;
123
+ // Calculate total story points
124
+ const totalPoints = tasks.reduce((sum, task) => sum + task.estimate, 0);
125
+ // Calculate team velocity if not provided
126
+ // Industry standard: ~8-10 story points per developer per 2-week sprint
127
+ const baseVelocityPerDev = 8;
128
+ const sprintFactor = sprintLength / 14; // Adjust for sprint length
129
+ const calculatedVelocity = Math.round(teamSize * baseVelocityPerDev * sprintFactor * 0.8); // 80% capacity
130
+ const velocity = inputVelocity || calculatedVelocity;
131
+ // Calculate required sprints
132
+ const requiredSprints = Math.ceil(totalPoints / velocity);
133
+ const timelineDays = requiredSprints * sprintLength;
134
+ // Calculate capacity utilization
135
+ const utilizationPercentage = Math.round((totalPoints / (velocity * requiredSprints)) * 100);
136
+ // Organize tasks into sprints
137
+ const sprints = organizeTasks(tasks, velocity, requiredSprints);
138
+ // Risk assessment
139
+ const risks = assessRisks(input, totalPoints, velocity, utilizationPercentage);
140
+ // Generate recommendations
141
+ const recommendations = generateRecommendations(input, utilizationPercentage, requiredSprints);
142
+ return {
143
+ totalPoints,
144
+ velocity,
145
+ requiredSprints,
146
+ timelineDays,
147
+ utilizationPercentage,
148
+ sprints,
149
+ risks,
150
+ recommendations,
151
+ };
152
+ }
153
+ function organizeTasks(tasks, velocity, sprintCount) {
154
+ // Sort tasks by priority and dependencies
155
+ const sortedTasks = [...tasks].sort((a, b) => {
156
+ const priorityOrder = { high: 3, medium: 2, low: 1 };
157
+ const aPriority = priorityOrder[a.priority?.toLowerCase()] ||
158
+ 2;
159
+ const bPriority = priorityOrder[b.priority?.toLowerCase()] ||
160
+ 2;
161
+ return bPriority - aPriority; // Higher priority first
162
+ });
163
+ const sprints = [];
164
+ for (let i = 0; i < sprintCount; i++) {
165
+ sprints.push({ points: 0, tasks: [] });
166
+ }
167
+ // Distribute tasks across sprints
168
+ let currentSprint = 0;
169
+ for (const task of sortedTasks) {
170
+ // Find the sprint with the least points that can accommodate this task
171
+ let targetSprint = currentSprint;
172
+ for (let i = 0; i < sprints.length; i++) {
173
+ if (sprints[i].points + task.estimate <= velocity) {
174
+ if (sprints[i].points < sprints[targetSprint].points ||
175
+ sprints[targetSprint].points + task.estimate > velocity) {
176
+ targetSprint = i;
177
+ }
178
+ }
179
+ }
180
+ sprints[targetSprint].tasks.push(task);
181
+ sprints[targetSprint].points += task.estimate;
182
+ // Move to next sprint if current is full
183
+ if (sprints[currentSprint].points >= velocity * 0.8) {
184
+ currentSprint = (currentSprint + 1) % sprints.length;
185
+ }
186
+ }
187
+ return sprints.filter((sprint) => sprint.tasks.length > 0);
188
+ }
189
+ function assessRisks(input, totalPoints, velocity, utilization) {
190
+ const risks = [];
191
+ if (utilization > 90) {
192
+ risks.push({
193
+ level: "High",
194
+ description: "Over 90% capacity utilization may lead to burnout and missed deadlines",
195
+ });
196
+ }
197
+ if (input.teamSize < 3) {
198
+ risks.push({
199
+ level: "Medium",
200
+ description: "Small team size increases risk of bottlenecks and knowledge silos",
201
+ });
202
+ }
203
+ if (totalPoints > velocity * 10) {
204
+ risks.push({
205
+ level: "High",
206
+ description: "Large scope increases complexity and delivery risk",
207
+ });
208
+ }
209
+ const hasDependencies = input.tasks.some((task) => task.dependencies && task.dependencies.length > 0);
210
+ if (hasDependencies) {
211
+ risks.push({
212
+ level: "Medium",
213
+ description: "Task dependencies may cause delays if not properly managed",
214
+ });
215
+ }
216
+ if (risks.length === 0) {
217
+ risks.push({
218
+ level: "Low",
219
+ description: "Timeline appears achievable with current team configuration",
220
+ });
221
+ }
222
+ return risks;
223
+ }
224
+ function generateRecommendations(input, utilization, sprints) {
225
+ const recommendations = [];
226
+ if (utilization > 85) {
227
+ recommendations.push("Consider reducing scope or adding team members to avoid overcommitment");
228
+ }
229
+ if (sprints > 6) {
230
+ recommendations.push("Long timeline detected - consider breaking into smaller releases");
231
+ }
232
+ if (input.teamSize > 8) {
233
+ recommendations.push("Large team size - ensure clear communication channels and role definitions");
234
+ }
235
+ recommendations.push("Implement daily standups to track progress and identify blockers early");
236
+ recommendations.push("Plan for 20% buffer time to handle unexpected issues");
237
+ recommendations.push("Review and adjust velocity after each sprint based on actual completion");
238
+ return recommendations;
239
+ }
240
+ //# sourceMappingURL=sprint-timeline-calculator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sprint-timeline-calculator.js","sourceRoot":"","sources":["../../src/tools/sprint-timeline-calculator.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,75 @@
1
+ {
2
+ "name": "mcp-ai-agent-guidelines",
3
+ "version": "0.1.0",
4
+ "description": "A comprehensive Model Context Protocol server providing professional tools, resources, and prompts for implementing AI agent best practices",
5
+ "main": "dist/index.js",
6
+ "type": "module",
7
+ "scripts": {
8
+ "build": "tsc",
9
+ "start": "npm run build && node dist/index.js",
10
+ "dev": "tsc --watch",
11
+ "test": "npm run test:all",
12
+ "test:unit": "node tests/unit/run-unit-tests.js",
13
+ "test:integration": "node tests/test-server.js",
14
+ "test:demo": "node demos/demo-tools.js",
15
+ "test:mcp": "scripts/test-mcp-server.sh",
16
+ "test:all": "npm run build && npm run test:unit && npm run test:integration && npm run test:demo && npm run test:mcp",
17
+ "lint": "biome lint src/",
18
+ "lint:fix": "biome lint --write src/",
19
+ "format": "biome format --write src/",
20
+ "format:check": "biome format src/",
21
+ "check": "biome check --write src/",
22
+ "type-check": "tsc --noEmit",
23
+ "quality": "npm run type-check && npm run check",
24
+ "validate": "npm run lint && npm run type-check && npm run test:all"
25
+ },
26
+ "keywords": [
27
+ "mcp",
28
+ "model-context-protocol",
29
+ "ai-agent",
30
+ "development",
31
+ "guidelines",
32
+ "tools",
33
+ "prompts",
34
+ "best-practices",
35
+ "hierarchical-prompting",
36
+ "code-hygiene",
37
+ "mermaid",
38
+ "memory-optimization",
39
+ "sprint-planning"
40
+ ],
41
+ "author": "Anselmoo",
42
+ "license": "MIT",
43
+ "repository": {
44
+ "type": "git",
45
+ "url": "https://github.com/Anselmoo/mcp-ai-agent-guidelines.git"
46
+ },
47
+ "homepage": "https://github.com/Anselmoo/mcp-ai-agent-guidelines#readme",
48
+ "bugs": {
49
+ "url": "https://github.com/Anselmoo/mcp-ai-agent-guidelines/issues"
50
+ },
51
+ "bin": {
52
+ "mcp-ai-agent-guidelines": "dist/index.js"
53
+ },
54
+ "files": [
55
+ "dist",
56
+ "README.md",
57
+ "LICENSE"
58
+ ],
59
+ "engines": {
60
+ "node": ">=20.0.0",
61
+ "npm": ">=10.0.0"
62
+ },
63
+ "devDependencies": {
64
+ "@biomejs/biome": "2.1.3",
65
+ "@types/node": "^24.1.0",
66
+ "typescript": "^5.9.2"
67
+ },
68
+ "dependencies": {
69
+ "@modelcontextprotocol/sdk": "^1.17.1",
70
+ "@types/express": "^5.0.3",
71
+ "express": "^5.1.0",
72
+ "mermaid": "^11.0.0",
73
+ "zod": "^3.25.76"
74
+ }
75
+ }