strategic-intelligence-mcp
Version:
Strategic Intelligence MCP Server - connecting technical progress to business outcomes with systematic strategic planning
166 lines • 5.82 kB
JavaScript
// Core data models for Strategic CTO MCP Server
import { z } from 'zod';
// Strategic Conversation Types
export const StrategyConversationTypeSchema = z.enum([
'market-analysis',
'product-roadmap',
'competitive-strategy',
'monetization',
'go-to-market',
'technical-milestone-review',
'business-goal-assessment'
]);
// Strategic Insight Schema
export const StrategyInsightSchema = z.object({
id: z.string(),
content: z.string(),
category: z.enum([
'competitive-advantage',
'market-opportunity',
'technical-capability',
'business-model',
'risk-mitigation',
'resource-optimization'
]),
impact: z.enum(['critical', 'high', 'medium', 'low']),
evidence: z.array(z.string()),
actionable: z.boolean(),
timestamp: z.string(),
linkedInsights: z.array(z.string()).optional(),
linkedReflections: z.array(z.string()).optional()
});
// Strategic Decision Schema
export const StrategyDecisionSchema = z.object({
id: z.string(),
decision: z.string(),
rationale: z.string(),
tradeoffs: z.array(z.string()),
reviewTriggers: z.array(z.string()),
timeline: z.string().optional(),
owner: z.string().optional(),
status: z.enum(['pending', 'approved', 'implemented', 'reviewed']),
timestamp: z.string(),
outcomes: z.array(z.string()).optional()
});
// Action Item Schema
export const ActionItemSchema = z.object({
id: z.string(),
description: z.string(),
owner: z.string(),
dueDate: z.string(),
priority: z.enum(['critical', 'high', 'medium', 'low']),
status: z.enum(['pending', 'in-progress', 'completed', 'blocked']),
blockers: z.array(z.string()).optional(),
linkedGoals: z.array(z.string()).optional(),
timestamp: z.string()
});
// Strategic Conversation Schema
export const StrategyConversationSchema = z.object({
id: z.string(),
type: StrategyConversationTypeSchema,
title: z.string(),
timestamp: z.string(),
participants: z.array(z.string()),
context: z.object({
technicalMilestone: z.string().optional(),
businessTrigger: z.string().optional(),
marketEvent: z.string().optional(),
relatedInsights: z.array(z.string()).optional(),
relatedReflections: z.array(z.string()).optional(),
urgency: z.enum(['low', 'medium', 'high', 'critical']).optional()
}),
insights: z.array(StrategyInsightSchema),
decisions: z.array(StrategyDecisionSchema),
actionItems: z.array(ActionItemSchema),
nextReview: z.string(),
conversationSummary: z.string(),
keyQuestions: z.array(z.string()),
status: z.enum(['draft', 'active', 'completed', 'archived'])
});
// Business Goal Types
export const GoalMetricSchema = z.object({
id: z.string(),
name: z.string(),
type: z.enum(['revenue', 'growth', 'efficiency', 'quality', 'satisfaction']),
target: z.number(),
current: z.number(),
unit: z.string(),
timeframe: z.string(),
lastUpdated: z.string()
});
export const MilestoneSchema = z.object({
id: z.string(),
title: z.string(),
description: z.string(),
targetDate: z.string(),
status: z.enum(['pending', 'in-progress', 'completed', 'delayed', 'cancelled']),
completionDate: z.string().optional(),
blockers: z.array(z.string()).optional(),
linkedTechnicalWork: z.array(z.string()).optional()
});
export const ProgressSnapshotSchema = z.object({
id: z.string(),
timestamp: z.string(),
completion: z.number(), // 0-100
confidence: z.number(), // 0-100
notes: z.string(),
blockers: z.array(z.string()),
achievements: z.array(z.string()),
risks: z.array(z.string())
});
// Business Goal Schema
export const BusinessGoalSchema = z.object({
id: z.string(),
category: z.enum(['revenue', 'product', 'market', 'technical', 'operational']),
title: z.string(),
description: z.string(),
metrics: z.array(GoalMetricSchema),
milestones: z.array(MilestoneSchema),
dependencies: z.object({
technicalFeatures: z.array(z.string()),
businessPrerequisites: z.array(z.string()),
externalFactors: z.array(z.string())
}),
status: z.enum(['planning', 'active', 'blocked', 'completed', 'paused']),
confidence: z.number(), // 0-100
lastUpdated: z.string(),
linkedInsights: z.array(z.string()),
progressHistory: z.array(ProgressSnapshotSchema),
owner: z.string(),
stakeholders: z.array(z.string())
});
// Development-Business Alignment Types
export const AlignmentMappingSchema = z.object({
id: z.string(),
technicalFeature: z.string(),
codebaseEvidence: z.array(z.string()), // File paths, implementation details
businessValue: z.object({
primaryGoals: z.array(z.string()),
impact: z.enum(['critical', 'high', 'medium', 'low']),
revenueImplication: z.number(),
userImpact: z.string(),
competitiveAdvantage: z.string()
}),
progressMetrics: z.object({
technicalCompletion: z.number(), // 0-100
businessReadiness: z.number(), // 0-100
marketValidation: z.number() // 0-100
}),
insights: z.array(z.string()),
lastUpdated: z.string()
});
// Storage Schema for the entire strategic database
export const StrategicDatabaseSchema = z.object({
conversations: z.record(z.string(), StrategyConversationSchema),
goals: z.record(z.string(), BusinessGoalSchema),
alignments: z.record(z.string(), AlignmentMappingSchema),
insights: z.record(z.string(), StrategyInsightSchema),
metadata: z.object({
version: z.string(),
lastUpdated: z.string(),
totalConversations: z.number(),
totalGoals: z.number(),
totalInsights: z.number()
})
});
//# sourceMappingURL=index.js.map