start_working_session
Initiate a focused task session by specifying the project and next step ID to ensure continuous progress and organized workflow management.
Instructions
Start working on a next step
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| nextStepId | Yes | ID of the next step to work on | |
| projectId | Yes | Project identifier |
Input Schema (JSON Schema)
{
"properties": {
"nextStepId": {
"description": "ID of the next step to work on",
"type": "string"
},
"projectId": {
"description": "Project identifier",
"type": "string"
}
},
"required": [
"projectId",
"nextStepId"
],
"type": "object"
}
Implementation Reference
- src/index.ts:178-204 (handler)Core handler function in ProjectManager class that validates the next step, updates its status, creates and saves a new WorkingSession, and returns it.async startWorkingSession(projectId: string, nextStepId: string): Promise<WorkingSession> { const data = await this.loadProjectData(projectId); const step = data.nextSteps.find(s => s.id === nextStepId); if (!step) { throw new ProjectError(`Next step not found: ${nextStepId}`, projectId); } if (step.status !== 'open') { throw new ProjectError(`Next step is not open: ${nextStepId}`, projectId); } step.status = 'in-progress'; step.lastModified = new Date().toISOString(); const session: WorkingSession = { id: `session_${Date.now()}`, nextStepId, startTime: new Date().toISOString(), progressNotes: [], blockers: [], decisions: [] }; data.workingSessions.push(session); await this.saveProjectData(projectId, data); return session; }
- src/index.ts:347-356 (schema)Input schema definition for the start_working_session tool, specifying required projectId and nextStepId parameters.name: "start_working_session", description: "Start working on a next step", inputSchema: { type: "object", properties: { projectId: { type: "string", description: "Project identifier" }, nextStepId: { type: "string", description: "ID of the next step to work on" } }, required: ["projectId", "nextStepId"] }
- src/index.ts:468-478 (registration)Registration and dispatching logic in the CallToolRequestHandler switch statement that invokes the handler.case "start_working_session": const session = await projectManager.startWorkingSession( args.projectId as string, args.nextStepId as string ); return { content: [{ type: "text", text: JSON.stringify(session, null, 2) }] };
- src/index.ts:346-357 (registration)Tool registration in the ListToolsRequestHandler response.{ name: "start_working_session", description: "Start working on a next step", inputSchema: { type: "object", properties: { projectId: { type: "string", description: "Project identifier" }, nextStepId: { type: "string", description: "ID of the next step to work on" } }, required: ["projectId", "nextStepId"] } },