mcp-context-engineering
Version:
The intelligent context optimization system for AI coding assistants. Built with Cole's PRP methodology, Context Portal knowledge graphs, and production-ready MongoDB architecture.
136 lines (135 loc) • 4.93 kB
JavaScript
import { ObjectId } from 'mongodb';
import { z } from 'zod';
// Project DNA Schema (Universal equivalent of Cole's CLAUDE.md)
export const ProjectDNASchema = z.object({
project_id: z.string(),
project_name: z.string(),
// Coding standards and patterns (extracted from codebase)
coding_standards: z.object({
style_guide: z.string(),
naming_conventions: z.object({
variables: z.string(),
functions: z.string(),
classes: z.string(),
files: z.string()
}),
code_organization: z.object({
directory_structure: z.string(),
module_patterns: z.array(z.string()),
import_conventions: z.array(z.string())
}),
best_practices: z.array(z.string()),
anti_patterns: z.array(z.string())
}),
// Technology stack and architecture
tech_stack: z.object({
languages: z.array(z.string()),
frameworks: z.array(z.string()),
libraries: z.array(z.string()),
databases: z.array(z.string()),
tools: z.array(z.string()),
version_requirements: z.record(z.string())
}),
// Project-specific rules and preferences
project_rules: z.object({
development_guidelines: z.array(z.string()),
testing_requirements: z.array(z.string()),
documentation_standards: z.array(z.string()),
deployment_patterns: z.array(z.string()),
security_requirements: z.array(z.string())
}),
// Architecture patterns and decisions
architecture: z.object({
design_patterns: z.array(z.string()),
architectural_decisions: z.array(z.object({
decision: z.string(),
rationale: z.string(),
alternatives_considered: z.array(z.string()),
consequences: z.array(z.string())
})),
integration_patterns: z.array(z.string()),
data_flow_patterns: z.array(z.string())
}),
// Context Portal workspace data
workspace_context: z.object({
active_features: z.array(z.string()),
current_priorities: z.array(z.string()),
known_issues: z.array(z.string()),
recent_changes: z.array(z.object({
change: z.string(),
date: z.date(),
impact: z.string()
}))
})
});
// Agent-specific project preferences
export const AgentProjectPreferencesSchema = z.object({
cursor: z.object({
preferred_context_sections: z.array(z.string()),
code_example_preferences: z.string(),
explanation_depth: z.enum(['minimal', 'moderate', 'detailed']),
focus_areas: z.array(z.string())
}),
windsurf: z.object({
preferred_context_sections: z.array(z.string()),
step_by_step_preference: z.boolean(),
error_handling_emphasis: z.boolean(),
explanation_depth: z.enum(['minimal', 'moderate', 'detailed']),
focus_areas: z.array(z.string())
}),
claude_code: z.object({
preferred_context_sections: z.array(z.string()),
full_prp_preference: z.boolean(),
comprehensive_context: z.boolean(),
explanation_depth: z.enum(['minimal', 'moderate', 'detailed']),
focus_areas: z.array(z.string())
}),
generic: z.object({
preferred_context_sections: z.array(z.string()),
balanced_approach: z.boolean(),
explanation_depth: z.enum(['minimal', 'moderate', 'detailed']),
focus_areas: z.array(z.string())
})
});
// Project evolution tracking
export const ProjectEvolutionSchema = z.object({
version: z.number(),
evolution_history: z.array(z.object({
version: z.number(),
changes: z.object({
standards_updates: z.array(z.string()),
pattern_additions: z.array(z.string()),
rule_modifications: z.array(z.string()),
architecture_changes: z.array(z.string())
}),
reason: z.string(),
timestamp: z.date(),
effectiveness_impact: z.number().min(-1).max(1)
})),
learning_insights: z.array(z.object({
insight: z.string(),
source: z.enum(['successful_pattern', 'failed_pattern', 'user_feedback', 'cross_project']),
confidence: z.number().min(0).max(1),
applied_date: z.date()
}))
});
// Main Project Context Schema
export const ProjectContextSchema = z.object({
_id: z.instanceof(ObjectId).optional(),
// Core project DNA
project_dna: ProjectDNASchema,
// Agent-specific preferences
agent_preferences: AgentProjectPreferencesSchema,
// Evolution and learning
evolution: ProjectEvolutionSchema,
// Embedding for project similarity
embedding: z.array(z.number()),
// Metadata
metadata: z.object({
created_at: z.date(),
updated_at: z.date(),
last_accessed: z.date(),
access_count: z.number(),
active: z.boolean()
})
});