thought-chain.js•12.6 kB
/**
* 思考プロセスの連鎖システム
* 複数の思考ツールを組み合わせた高度な分析のための基盤
*/
const ThinkingUtils = require('./thinking-utils.js');
const ThinkingTools = require('./thinking-tools.js');
const AdvancedThinking = require('./advanced-thinking.js');
const ThoughtChain = {
/**
* 問題分析チェーン - 問題の体系的な分析と解決のプロセス
* @param {string} problem - 分析する問題
* @returns {Object} 問題分析チェーンの結果
*/
problemAnalysisChain: (problem) => {
// 問題を分解
const decomposition = ThinkingUtils.decomposeTheme(problem);
// 原因-結果分析
const causeEffect = ThinkingTools.applyCauseEffectAnalysis(problem);
// 複数の視点からの分析
const perspectives = ThinkingUtils.thinkFromMultiplePerspectives(problem);
// 仮説の生成
const hypotheses = ThinkingUtils.generateHypotheses(problem);
// 論理的推論の適用
const reasoning = ThinkingUtils.applyLogicalReasoning(problem);
// 解決策の決断マトリックス生成
const decisionMatrix = AdvancedThinking.createDecisionMatrix(`${problem}の解決策`);
return {
problem: problem,
analysisChain: [
{
stage: "問題の分解と理解",
results: {
decomposition: decomposition.aspects,
causeEffect: causeEffect.categories
}
},
{
stage: "多角的な視点の適用",
results: {
perspectives: perspectives.perspectives.map(p => p.name),
keyInsights: perspectives.perspectives.map(p => p.keyQuestions[0])
}
},
{
stage: "仮説生成と検証",
results: {
hypotheses: hypotheses.map(h => h.hypothesis),
reasoningApproaches: reasoning.reasoningApproaches.map(r => r.type)
}
},
{
stage: "解決策の評価と意思決定",
results: {
decisionCriteria: decisionMatrix.matrixStructure.criteria.example.map(c => c.name),
evaluationProcess: decisionMatrix.analysisProcess
}
}
],
integratedInsights: {
coreProblemDefinition: "問題の核心は何か(分析結果に基づく再定義)",
keyFactors: "最も影響力の大きい要因は何か",
potentialSolutions: "最も有望な解決策の方向性",
implementationConsiderations: "実施に際して考慮すべき重要事項"
},
nextSteps: [
"さらに詳細な情報収集が必要な領域",
"より深い分析が必要な側面",
"検証すべき仮説",
"実装に向けた具体的なステップ"
]
};
},
/**
* 戦略思考チェーン - 長期的な戦略立案のためのプロセス
* @param {string} strategicTopic - 戦略的トピック
* @returns {Object} 戦略思考チェーンの結果
*/
strategicThinkingChain: (strategicTopic) => {
// SWOT分析
const swot = ThinkingTools.applySWOT(strategicTopic);
// シナリオプランニング
const scenarios = AdvancedThinking.applyScenarioPlanning(strategicTopic);
// 弁証法的思考
const dialectical = AdvancedThinking.applyDialecticalThinking(strategicTopic);
// 認知バイアス検出
const biases = AdvancedThinking.detectCognitiveBiases(`${strategicTopic}に関する戦略的思考プロセス`);
return {
strategicTopic: strategicTopic,
strategyChain: [
{
stage: "状況分析",
results: {
strengths: swot.strengths.questions,
weaknesses: swot.weaknesses.questions,
opportunities: swot.opportunities.questions,
threats: swot.threats.questions
}
},
{
stage: "将来シナリオの探索",
results: {
drivingForces: scenarios.scenarioStructure.drivingForces.categories,
possibleScenarios: scenarios.scenarioStructure.scenarios.examples
}
},
{
stage: "競合する視点の統合",
results: {
thesis: dialectical.dialecticalProcess.thesis.examples[0],
antithesis: dialectical.dialecticalProcess.antithesis.examples[0],
synthesis: dialectical.dialecticalProcess.synthesis.examples[0]
}
},
{
stage: "バイアスチェックと思考の質向上",
results: {
potentialBiases: biases.potentialBiases.map(b => b.name),
mitigationStrategies: biases.potentialBiases.flatMap(b => b.mitigationStrategies).slice(0, 3)
}
}
],
strategicInsights: {
coreStrategicImperatives: "最も重要な戦略的命題",
robustStrategies: "複数のシナリオで有効な戦略的アプローチ",
adaptiveCapabilities: "変化に対応するために必要な能力",
keyMetrics: "進捗を測定するための指標"
},
implementationFramework: {
shortTermActions: "直ちに実施すべきアクション",
mediumTermInitiatives: "1-2年の期間で実施する取り組み",
longTermDirections: "3-5年の期間で目指す方向性",
adaptationTriggers: "戦略修正を検討すべき兆候やトリガー"
}
};
},
/**
* 創造的思考チェーン - 革新的なアイデア生成と評価のプロセス
* @param {string} innovationChallenge - 革新の課題
* @returns {Object} 創造的思考チェーンの結果
*/
creativeThinkingChain: (innovationChallenge) => {
// 問題分解
const decomposition = ThinkingUtils.decomposeTheme(innovationChallenge);
// マインドマップ生成
const mindMap = ThinkingTools.generateMindMap(innovationChallenge);
// シックスシンキングハット法
const sixHats = ThinkingTools.applySixThinkingHats(innovationChallenge);
// モデル思考
const mentalModels = AdvancedThinking.applyMentalModels(innovationChallenge);
return {
innovationChallenge: innovationChallenge,
creativeProcess: [
{
stage: "課題の再定義と探索",
results: {
keyAspects: decomposition.aspects.map(a => a.aspect),
centralConcepts: mindMap.mainBranches.map(b => b.name)
}
},
{
stage: "多角的発想と評価",
results: {
perspectives: sixHats.thinkingHats.map(h => `${h.color}: ${h.focus}`),
keyQuestions: sixHats.thinkingHats.map(h => h.questions[0])
}
},
{
stage: "思考モデルの適用",
results: {
appliedModels: mentalModels.mentalModels.map(m => m.name),
insightsGenerated: mentalModels.mentalModels.map(m => m.problemApplication)
}
}
],
innovationOutput: {
coreIdeas: "生成された核となるアイデア",
novelElements: "特に革新的な要素",
integratedConcepts: "複数のアイデアを統合したコンセプト",
implementationPrototypes: "試作や検証のためのプロトタイプ案"
},
evaluationFramework: {
desirability: "ユーザーにとっての価値と魅力",
feasibility: "技術的・組織的な実現可能性",
viability: "持続可能なビジネスモデルとしての成立性",
innovativeness: "既存ソリューションからの差別化度合い"
},
nextIterationFocus: [
"さらに探索すべき有望な方向性",
"検証が必要な仮説や前提",
"プロトタイピングと迅速な学習のサイクル",
"実装に向けたリソースと能力の獲得"
]
};
},
/**
* 批判的思考チェーン - 主張や情報の評価プロセス
* @param {string} claim - 評価する主張
* @returns {Object} 批判的思考チェーンの結果
*/
criticalThinkingChain: (claim) => {
// ソクラテス的問答法
const socratic = ThinkingTools.applySocraticQuestioning(claim);
// 論理的推論の適用
const reasoning = ThinkingUtils.applyLogicalReasoning(claim);
// 証拠評価
const evidence = ThinkingUtils.evaluateEvidence(claim);
// 認知バイアス検出
const biases = AdvancedThinking.detectCognitiveBiases(`${claim}の評価プロセス`);
return {
claim: claim,
evaluationProcess: [
{
stage: "主張の明確化と理解",
results: {
clarificationQuestions: socratic.questioningProcess[0].questions,
assumptionExamination: socratic.questioningProcess[1].questions
}
},
{
stage: "論理的構造の分析",
results: {
reasoningTypes: reasoning.reasoningApproaches.map(r => r.type),
reasoningSteps: reasoning.reasoningApproaches.map(r => r.steps[0])
}
},
{
stage: "証拠の評価",
results: {
supportingEvidenceCriteria: evidence.evidenceFramework.supportingEvidence.map(e => e.question),
counterEvidenceCriteria: evidence.evidenceFramework.counterEvidence.map(e => e.question)
}
},
{
stage: "バイアスの検出と緩和",
results: {
relevantBiases: biases.potentialBiases.map(b => b.name).slice(0, 3),
detectionMethods: biases.potentialBiases.flatMap(b => b.detectionQuestions).slice(0, 3)
}
}
],
analysisOutcome: {
strengthOfClaim: "主張の強さと信頼性の評価",
keyLimitations: "主張の主要な限界と制約",
alternativeExplanations: "検討すべき代替的説明や解釈",
confidenceLevel: "結論に対する信頼度の評価"
},
recommendedActions: [
"追加で必要な情報や証拠",
"より詳細な検証が必要な側面",
"実践的な応用における考慮事項",
"今後の調査や研究の方向性"
]
};
},
/**
* 学習最適化チェーン - 学習プロセスの最適化
* @param {string} learningTopic - 学習テーマ
* @returns {Object} 学習最適化チェーンの結果
*/
learningOptimizationChain: (learningTopic) => {
// 問題分解
const decomposition = ThinkingUtils.decomposeTheme(learningTopic);
// マインドマップ生成
const mindMap = ThinkingTools.generateMindMap(learningTopic);
// メタ認知
const metaCognition = ThinkingUtils.applyMetaCognition(`${learningTopic}の学習プロセス`);
// モデル思考
const mentalModels = AdvancedThinking.applyMentalModels(learningTopic);
return {
learningTopic: learningTopic,
optimizationProcess: [
{
stage: "知識構造の把握と分解",
results: {
keyComponents: decomposition.aspects.map(a => a.aspect),
conceptualMap: mindMap.mainBranches.map(b => b.name)
}
},
{
stage: "効果的な学習アプローチの設計",
results: {
metaCognitiveQuestions: metaCognition.metaEvaluation,
relevantModels: mentalModels.mentalModels.map(m => m.name)
}
}
],
learningStrategy: {
knowledgeStructure: "テーマの基本構造と要素間の関係",
optimalSequence: "最適な学習順序と進行",
potentialObstacles: "予想される学習の障害とその対応策",
insightGenerationTechniques: "深い理解と洞察を生み出すための技法"
},
applicationFramework: {
practiceActivities: "効果的な練習と応用の活動",
feedbackMechanisms: "進捗を評価するためのフィードバック機構",
transferStrategies: "学んだ知識を他の文脈に転用する方法",
longTermRetention: "長期的な記憶と活用のための戦略"
},
performanceMetrics: [
"習得度を測定するための指標",
"理解の深さを評価する方法",
"応用能力を確認するためのテスト",
"長期的な進捗をトラッキングする仕組み"
]
};
}
};
module.exports = ThoughtChain;