update_track_spec
Update technical decisions, architecture notes, or acceptance criteria by overwriting spec.md for an existing conductor track.
Instructions
Overwrite spec.md for an existing conductor track. Use to update technical decisions, architecture notes, or acceptance criteria.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| trackName | Yes | ||
| content | Yes |
Implementation Reference
- src/managers/ConductorManager.ts:100-104 (handler)The core handler function `updateTrackSpec` that validates the slug, writes spec.md via the filesystem access layer, and returns the result.
async function updateTrackSpec(trackName: string, content: string): Promise<UpdateTrackFileResult> { assertSafeSlug(trackName); await fs.writeTrackFile(tracksDir, trackName, 'spec.md', content); return { trackName, filename: 'spec.md', updated: true, length: content.length }; } - src/tools/conductor.tool.ts:32-35 (schema)Zod schema `UpdateTrackSpecSchema` defining the input shape with `trackName` and `content` (both required non-empty strings).
export const UpdateTrackSpecSchema = z.object({ trackName: z.string().min(1), content: z.string().min(1), }); - src/tools/conductor.tool.ts:84-94 (registration)Registration of the 'update_track_spec' tool on the MCP server, with its schema and the handler that delegates to ConductorManager.updateTrackSpec.
server.tool( 'update_track_spec', 'Overwrite spec.md for an existing conductor track. Use to update technical decisions, architecture notes, or acceptance criteria.', UpdateTrackSpecSchema.shape, async (args) => { const result = await manager.updateTrackSpec(args.trackName, args.content); return { content: [{ type: 'text' as const, text: JSON.stringify(result, null, 2) }], }; }, ); - src/access/FileSystemAccess.ts:76-79 (helper)Low-level filesystem helper `writeTrackFile` that writes spec.md to disk at the track's directory.
async function writeTrackFile(tracksDir: string, trackName: string, filename: string, content: string): Promise<void> { const filePath = join(tracksDir, trackName, filename); await writeFile(filePath, content, { encoding: 'utf8' }); } - src/index.ts:52-52 (registration)Top-level registration call that wires ConductorManager into the MCP server via registerConductorTools.
registerConductorTools(server, conductorManager);