start_working_session
Begin working on a specific next step within a project to facilitate task handoffs and maintain workflow continuity.
Instructions
Start working on a next step
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | Project identifier | |
| nextStepId | Yes | ID of the next step to work on |
Implementation Reference
- src/index.ts:178-204 (handler)Core handler function in ProjectManager class that validates the next step, updates its status to 'in-progress', creates a new WorkingSession, saves the project data, and returns the session.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:346-357 (registration)Tool registration in the ListTools response, defining name, description, and input schema.{ 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 (handler)Dispatch handler in CallToolRequestSchema that invokes the ProjectManager.startWorkingSession method and formats the response.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:349-356 (schema)Input schema definition specifying required projectId and nextStepId parameters.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"] }