stepByStepAnalysis.ts•2.64 kB
// Sequential thinking tool - completely independent
interface ToolResult {
content: Array<{
type: 'text';
text: string;
}>;
}
interface ToolDefinition {
name: string;
description: string;
inputSchema: {
type: 'object';
properties: Record<string, any>;
required: string[];
};
}
export const stepByStepAnalysisDefinition: ToolDefinition = {
name: 'step_by_step_analysis',
description: 'IMPORTANT: This tool should be automatically called when users say "단계별", "차근차근", "하나씩", "step by step", "one by one", "gradually" or similar keywords. Perform detailed step-by-step analysis',
inputSchema: {
type: 'object',
properties: {
task: { type: 'string', description: 'Task to analyze step by step' },
context: { type: 'string', description: 'Additional context for the task' },
detailLevel: { type: 'string', description: 'Level of detail', enum: ['basic', 'detailed', 'comprehensive'] }
},
required: ['task']
}
};
export async function stepByStepAnalysis(args: { task: string; context?: string; detailLevel?: string }): Promise<ToolResult> {
const { task, context = '', detailLevel = 'detailed' } = args;
const stepCount = detailLevel === 'basic' ? 3 : detailLevel === 'detailed' ? 5 : 7;
const stepAnalysis = {
action: 'step_by_step_analysis',
task,
context,
detailLevel,
steps: Array.from({ length: stepCount }, (_, i) => {
const stepNum = i + 1;
return {
stepNumber: stepNum,
title: `Step ${stepNum}: ${task} - Phase ${stepNum}`,
description: `Detailed analysis of ${task} in step ${stepNum}`,
actions: [
`Analyze requirements for step ${stepNum}`,
`Identify dependencies and prerequisites`,
`Execute the planned actions`,
`Validate results and check for issues`,
`Prepare for next step`
],
checkpoints: [
`Verify step ${stepNum} requirements are met`,
`Confirm outputs are as expected`,
`Check for any blocking issues`
],
estimatedTime: detailLevel === 'comprehensive' ? `${stepNum * 10} minutes` : `${stepNum * 5} minutes`
};
}),
summary: {
totalSteps: stepCount,
estimatedTotalTime: detailLevel === 'comprehensive' ? `${stepCount * 35} minutes` : `${stepCount * 20} minutes`,
complexity: detailLevel === 'basic' ? 'low' : detailLevel === 'detailed' ? 'medium' : 'high'
},
status: 'success'
};
return {
content: [{ type: 'text', text: `Step-by-Step Analysis:\n${JSON.stringify(stepAnalysis, null, 2)}` }]
};
}