generate_progress_report
Create progress dashboards for writing projects by tracking word counts, analyzing manuscript directories, and monitoring completion against goals.
Instructions
Create progress dashboard
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | No | Path to manuscript directory (defaults to current directory) | |
| target_word_count | No | Target word count goal | |
| scope | No | File scope pattern | |
| include_todos | No | Include TODO count |
Implementation Reference
- src/tools/WriterToolHandlers.ts:306-325 (handler)The core handler function implementing generate_progress_report tool logic. Fetches writing stats and TODOs, computes progress percentage against optional target word count, and returns a summary report.private async generateProgressReport(args: Record<string, unknown>) { const targetWordCount = args.target_word_count as number | undefined; const scope = args.scope as string | undefined; const includeTodos = (args.include_todos as boolean) ?? true; const stats = await this.writersAid.getStats({ scope }); const todos = includeTodos ? await this.writersAid.findTodos({}) : []; const progress = targetWordCount ? (stats.totalWords / targetWordCount) * 100 : 0; return { totalWords: stats.totalWords, targetWordCount, progress: Math.round(progress), todosRemaining: includeTodos ? todos.length : undefined, filesCount: stats.totalFiles, }; }
- The JSON schema definition for the generate_progress_report tool, specifying input parameters like target_word_count, scope, and include_todos.{ name: "generate_progress_report", description: "Create progress dashboard", inputSchema: { type: "object", properties: { project_path: { type: "string", description: "Path to manuscript directory (defaults to current directory)" }, target_word_count: { type: "number", description: "Target word count goal" }, scope: { type: "string", description: "File scope pattern" }, include_todos: { type: "boolean", description: "Include TODO count", default: true }, }, }, },
- src/tools/WriterToolHandlers.ts:60-61 (registration)The dispatch case in WriterToolHandlers.handleTool() method that registers and routes calls to the generateProgressReport handler.case "generate_progress_report": return this.generateProgressReport(args);