feat(mcp): Add next_step guidance to initialize-project and add tests
Added detailed next_step guidance to the initialize-project MCP tool response, providing clear instructions about creating a PRD file and using parse-prd after initialization. This helps users understand the workflow better after project initialization. Also added comprehensive unit tests for the initialize-project MCP tool that: - Verify tool registration with correct parameters - Test command construction with proper argument formatting - Check special character escaping in command arguments - Validate success response formatting including the new next_step field - Test error handling and fallback mechanisms - Verify logging behavior The tests follow the same pattern as other MCP tool tests in the codebase.
This commit is contained in:
@@ -80,10 +80,12 @@ export function registerInitializeProjectTool(server) {
|
||||
log.info(`Initialization output:\n${output}`);
|
||||
|
||||
// Return a standard success response manually
|
||||
return createContentResponse(
|
||||
'Project initialized successfully.',
|
||||
{ output: output } // Include output in the data payload
|
||||
);
|
||||
return createContentResponse({
|
||||
message: 'Project initialized successfully.',
|
||||
next_step:
|
||||
'Now that the project is initialized, the next step is to create the tasks by parsing a PRD. This will create the tasks folder and the initial task files. The parse-prd tool will required a prd.txt file as input in scripts/prd.txt. You can create a prd.txt file by asking the user about their idea, and then using the scripts/example_prd.txt file as a template to genrate a prd.txt file in scripts/. You can then use the parse-prd tool to create the tasks. So: step 1 after initialization is to create a prd.txt file in scripts/prd.txt. Step 2 is to use the parse-prd tool to create the tasks. Do not bother looking for tasks after initialization, just use the parse-prd tool to create the tasks after creating a prd.txt from which to parse the tasks.',
|
||||
output: output
|
||||
});
|
||||
} catch (error) {
|
||||
// Catch errors from execSync or timeouts
|
||||
const errorMessage = `Project initialization failed: ${error.message}`;
|
||||
|
||||
Reference in New Issue
Block a user