Skip to main content
Glama
custom-framework.ts10.7 kB
/** * Custom Framework Operation * * Creates custom reasoning frameworks tailored to specific domains or problems */ import { BaseOperation, type OperationContext, type OperationResult } from '../base.js'; export class CustomFrameworkOperation extends BaseOperation { name = 'custom_framework'; category = 'ui'; async execute(context: OperationContext): Promise<OperationResult> { const { sessionState, prompt, parameters } = context; // Extract framework configuration const frameworkName = this.getParam(parameters, 'name', 'Custom Reasoning Framework'); const domain = this.getParam(parameters, 'domain', 'General'); const steps = this.getParam(parameters, 'steps', []); const principles = this.getParam(parameters, 'principles', []); const constraints = this.getParam(parameters, 'constraints', []); const outputs = this.getParam(parameters, 'outputs', []); // Generate framework structure const framework = this.buildFramework({ name: frameworkName, domain, prompt, steps: steps.length > 0 ? steps : this.generateDefaultSteps(prompt, domain), principles: principles.length > 0 ? principles : this.generateDefaultPrinciples(domain), constraints: constraints.length > 0 ? constraints : this.generateDefaultConstraints(domain), outputs: outputs.length > 0 ? outputs : this.generateDefaultOutputs(domain) }); // Create framework documentation const documentation = this.generateFrameworkDocumentation(framework); // Framework tracking (session storage not available) const frameworkId = `framework_${Date.now()}`; // Note: Framework is generated but not persisted in session return this.createResult({ frameworkId, framework, documentation, applicationGuidance: this.generateApplicationGuidance(framework), sessionContext: { sessionId: sessionState.sessionId, stats: sessionState.getStats(), frameworkCount: 1 // Tracking not available }, instructions: { usage: 'Apply this framework systematically to analyze complex problems', adaptation: 'Framework can be modified for specific use cases or domains', integration: 'Combine with other Clear Thought operations for comprehensive analysis' } }); } /** * Build complete framework structure */ private buildFramework(config: { name: string; domain: string; prompt: string; steps: string[]; principles: string[]; constraints: string[]; outputs: string[]; }) { return { metadata: { name: config.name, domain: config.domain, version: '1.0', createdAt: new Date().toISOString(), appliedTo: config.prompt }, structure: { phases: this.createPhases(config.steps), principles: config.principles, constraints: config.constraints, expectedOutputs: config.outputs }, implementation: { checkpoints: this.generateCheckpoints(config.steps), qualityGates: this.generateQualityGates(config.principles), validationCriteria: this.generateValidationCriteria(config.outputs) } }; } /** * Generate default steps based on domain */ private generateDefaultSteps(prompt: string, domain: string): string[] { const baseSteps = [ 'Problem Definition and Scope', 'Context Analysis and Constraints', 'Stakeholder Identification', 'Option Generation', 'Evaluation and Analysis', 'Decision Making', 'Implementation Planning', 'Review and Iteration' ]; // Domain-specific customizations switch (domain.toLowerCase()) { case 'technical': case 'engineering': return [ 'Technical Requirements Analysis', 'Architecture and Design Review', 'Implementation Feasibility', 'Risk Assessment', 'Testing Strategy', 'Deployment Planning', 'Performance Validation', 'Maintenance Planning' ]; case 'business': case 'strategy': return [ 'Market Analysis', 'Competitive Landscape', 'Value Proposition Design', 'Resource Requirements', 'Financial Modeling', 'Risk Assessment', 'Go-to-Market Strategy', 'Success Metrics' ]; case 'scientific': case 'research': return [ 'Literature Review', 'Hypothesis Formation', 'Methodology Design', 'Data Collection Strategy', 'Analysis Framework', 'Result Interpretation', 'Peer Review Preparation', 'Publication Strategy' ]; default: return baseSteps; } } /** * Generate default principles based on domain */ private generateDefaultPrinciples(domain: string): string[] { const basePrinciples = [ 'Systematic and thorough analysis', 'Evidence-based reasoning', 'Multiple perspective consideration', 'Iterative refinement', 'Clear documentation' ]; switch (domain.toLowerCase()) { case 'technical': return [ 'Modularity and maintainability', 'Performance and scalability', 'Security by design', 'User-centered design', 'Code quality and testing' ]; case 'business': return [ 'Customer value creation', 'Sustainable competitive advantage', 'Resource optimization', 'Risk management', 'Stakeholder alignment' ]; case 'scientific': return [ 'Reproducibility and transparency', 'Peer review and validation', 'Ethical considerations', 'Statistical significance', 'Theoretical grounding' ]; default: return basePrinciples; } } /** * Generate default constraints */ private generateDefaultConstraints(domain: string): string[] { return [ 'Time and resource limitations', 'Regulatory and compliance requirements', 'Technical feasibility bounds', 'Budget constraints', 'Stakeholder acceptance criteria' ]; } /** * Generate default outputs */ private generateDefaultOutputs(domain: string): string[] { return [ 'Clear problem statement', 'Comprehensive analysis report', 'Recommended solution', 'Implementation roadmap', 'Risk mitigation plan', 'Success metrics and KPIs' ]; } /** * Create phases from steps */ private createPhases(steps: string[]) { return steps.map((step, index) => ({ phase: index + 1, name: step, description: `Execute ${step.toLowerCase()} systematically`, deliverables: [`${step} analysis document`, `${step} validation checklist`], duration: 'Variable based on complexity' })); } /** * Generate checkpoints for quality control */ private generateCheckpoints(steps: string[]) { return steps.map((step, index) => ({ checkpoint: index + 1, phase: step, criteria: [ 'Deliverables complete and reviewed', 'Quality standards met', 'Stakeholder approval obtained', 'Ready to proceed to next phase' ] })); } /** * Generate quality gates */ private generateQualityGates(principles: string[]) { return principles.map(principle => ({ principle, validationMethod: `Assess adherence to ${principle.toLowerCase()}`, passCriteria: 'Meets or exceeds established standards' })); } /** * Generate validation criteria */ private generateValidationCriteria(outputs: string[]) { return outputs.map(output => ({ output, criteria: [ 'Completeness and accuracy', 'Clarity and readability', 'Actionability', 'Stakeholder alignment' ] })); } /** * Generate framework documentation */ private generateFrameworkDocumentation(framework: any): string { return ` # ${framework.metadata.name} **Domain:** ${framework.metadata.domain} **Version:** ${framework.metadata.version} **Created:** ${new Date(framework.metadata.createdAt).toLocaleDateString()} ## Overview This custom reasoning framework provides a structured approach to ${framework.metadata.domain.toLowerCase()} problem-solving and analysis. ## Framework Structure ### Phases ${framework.structure.phases.map((phase: any, index: number) => ` ${index + 1}. **${phase.name}** - ${phase.description} - Deliverables: ${phase.deliverables.join(', ')} `).join('')} ### Guiding Principles ${framework.structure.principles.map((principle: string) => `- ${principle}`).join('\n')} ### Constraints ${framework.structure.constraints.map((constraint: string) => `- ${constraint}`).join('\n')} ### Expected Outputs ${framework.structure.expectedOutputs.map((output: string) => `- ${output}`).join('\n')} ## Implementation Guide ### Quality Checkpoints ${framework.implementation.checkpoints.map((cp: any) => ` **Phase ${cp.checkpoint}: ${cp.phase}** ${cp.criteria.map((criterion: string) => `- [ ] ${criterion}`).join('\n')} `).join('')} ## Usage Instructions 1. Follow phases sequentially 2. Complete all checkpoints before proceeding 3. Validate outputs against quality criteria 4. Iterate as needed for improvement `; } /** * Generate application guidance */ private generateApplicationGuidance(framework: any) { return { stepByStep: framework.structure.phases.map((phase: any) => ({ phase: phase.name, actions: [ `Begin ${phase.name.toLowerCase()}`, 'Gather required information and resources', 'Apply relevant analysis techniques', 'Document findings and insights', 'Validate against quality criteria', 'Prepare for next phase' ] })), bestPractices: [ 'Maintain clear documentation throughout', 'Engage stakeholders at key decision points', 'Validate assumptions early and often', 'Plan for iteration and refinement', 'Consider long-term implications' ], commonPitfalls: [ 'Rushing through phases without validation', 'Ignoring stakeholder input', 'Insufficient documentation', 'Scope creep and mission drift', 'Overcomplicating simple problems' ] }; } } export default new CustomFrameworkOperation();

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/waldzellai/clearthought-onepointfive'

If you have feedback or need assistance with the MCP directory API, please join our Discord server