create_phase
Define and initiate a new phase within a structured workflow for LLM-based coding projects, ensuring clear feature identification, detailed documentation, and organized implementation on the Vibe-Coder MCP Server.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| description | Yes | ||
| featureId | Yes | ||
| name | Yes |
Input Schema (JSON Schema)
{
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"description": {
"minLength": 1,
"type": "string"
},
"featureId": {
"minLength": 1,
"type": "string"
},
"name": {
"minLength": 1,
"type": "string"
}
},
"required": [
"featureId",
"name",
"description"
],
"type": "object"
}
Implementation Reference
- src/mcp-server.ts:396-420 (registration)Primary MCP tool registration for "create_phase". Includes inline Zod input schema (featureId: string, name: string, description: string) and the async handler that validates feature existence, creates the phase using helper, updates storage, and returns success message with phase ID.// Create phase tool server.tool( "create_phase", { featureId: z.string().min(1), name: z.string().min(1), description: z.string().min(1) }, async ({ featureId, name, description }) => { const feature = getFeature(featureId); if (!feature) { throw new Error(`Feature ${featureId} not found`); } const phase = createPhaseDirectly(feature, name, description); updateFeature(featureId, feature); return { content: [{ type: "text", text: `Created phase "${name}" with ID ${phase.id} for feature "${feature.name}"` }] }; } );
- src/mcp-server.ts:50-57 (helper)Helper function called by the create_phase tool handler to instantiate a new Phase object and append it to the feature's phases array, updating the feature timestamp.* Create a new phase for a feature directly */ function createPhaseDirectly(feature: Feature, name: string, description: string): Phase { const newPhase = createPhaseObject(name, description); feature.phases.push(newPhase); feature.updatedAt = new Date(); return newPhase; }
- src/utils.ts:91-103 (helper)Utility factory function to create a standardized Phase object with generated ID, default pending status, empty tasks, and current timestamps.export function createPhaseObject(name: string, description: string): Phase { const timestamp = now(); return { id: generatePhaseId(), name, description, tasks: [], status: "pending" as PhaseStatus, createdAt: timestamp, updatedAt: timestamp }; }
- src/schemas.ts:84-92 (schema)Zod schema for Phase type definition and validation, used throughout the codebase for type safety.export const PhaseSchema = z.object({ id: z.string().refine(isPhaseId, "Invalid phase ID format"), name: z.string().min(2, "Phase name must be at least 2 characters").max(100, "Phase name must be at most 100 characters"), description: z.string(), tasks: z.array(TaskSchema), status: PhaseStatusSchema, createdAt: z.date(), updatedAt: z.date(), });
- src/tool-handlers.ts:611-645 (registration)Alternative registry-based registration of "create_phase" tool in the modular implementation, references createPhaseHandler and provides JSON schema for tool description.toolRegistry.register( 'create_phase', createPhaseHandler, 'Create a new development phase for a feature', { type: 'object', properties: { featureId: { type: 'string', description: 'ID of the feature to create a phase for' }, name: { type: 'string', description: 'Name of the phase' }, description: { type: 'string', description: 'Description of the phase' } }, required: ['featureId', 'name', 'description'] }, [ { featureId: "feature-123", name: "Requirements Analysis", description: "Gather and analyze requirements for the feature" }, { featureId: "feature-123", name: "Implementation", description: "Implement the core functionality of the feature" } ] );