feat(issue): implement JSONL task generation and management for issue resolution

- Added `/issue:plan` command to generate a structured task plan from GitHub issues or descriptions, including delivery and pause criteria, and a dependency graph.
- Introduced JSONL schema for task entries to enforce structure and validation.
- Developed comprehensive issue command with functionalities for initializing, listing, adding, updating, and exporting tasks.
- Implemented error handling and user feedback for various operations within the issue management workflow.
- Enhanced task management with priority levels, phase results, and executor preferences.
This commit is contained in:
catlog22
2025-12-26 17:21:32 +08:00
parent c8a914aeca
commit cdf4833977
5 changed files with 1830 additions and 0 deletions

View File

@@ -12,6 +12,7 @@ import { cliCommand } from './commands/cli.js';
import { memoryCommand } from './commands/memory.js';
import { coreMemoryCommand } from './commands/core-memory.js';
import { hookCommand } from './commands/hook.js';
import { issueCommand } from './commands/issue.js';
import { readFileSync, existsSync } from 'fs';
import { fileURLToPath } from 'url';
import { dirname, join } from 'path';
@@ -260,5 +261,24 @@ export function run(argv: string[]): void {
.option('--type <type>', 'Context type: session-start, context')
.action((subcommand, args, options) => hookCommand(subcommand, args, options));
// Issue command - Issue lifecycle management with JSONL task tracking
program
.command('issue [subcommand] [args...]')
.description('Issue lifecycle management with JSONL task tracking')
.option('--title <title>', 'Task title')
.option('--type <type>', 'Task type: feature, bug, refactor, test, chore, docs')
.option('--status <status>', 'Task status')
.option('--phase <phase>', 'Execution phase')
.option('--description <desc>', 'Task description')
.option('--depends-on <ids>', 'Comma-separated dependency task IDs')
.option('--delivery-criteria <items>', 'Pipe-separated delivery criteria')
.option('--pause-criteria <items>', 'Pipe-separated pause criteria')
.option('--executor <type>', 'Executor: agent, codex, gemini, auto')
.option('--priority <n>', 'Task priority (1-5)')
.option('--format <fmt>', 'Output format: json, markdown')
.option('--json', 'Output as JSON')
.option('--force', 'Force operation')
.action((subcommand, args, options) => issueCommand(subcommand, args, options));
program.parse(argv);
}