From 4ebee4f5affcec38da82ab8919610bb22dabe932 Mon Sep 17 00:00:00 2001 From: nrslib <38722970+nrslib@users.noreply.github.com> Date: Wed, 28 Jan 2026 11:41:29 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20/add-task=20=E3=81=AE=E3=83=AF=E3=83=BC?= =?UTF-8?q?=E3=82=AF=E3=83=95=E3=83=AD=E3=83=BC=E9=81=B8=E6=8A=9E=E3=82=92?= =?UTF-8?q?=E3=82=AB=E3=83=BC=E3=82=BD=E3=83=AB=E5=BC=8F=E3=82=BB=E3=83=AC?= =?UTF-8?q?=E3=82=AF=E3=82=BF=E3=83=BC=E3=81=AB=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/commands/addTask.ts | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/src/commands/addTask.ts b/src/commands/addTask.ts index e9e70cc..80eb757 100644 --- a/src/commands/addTask.ts +++ b/src/commands/addTask.ts @@ -8,10 +8,12 @@ import * as fs from 'node:fs'; import * as path from 'node:path'; import { stringify as stringifyYaml } from 'yaml'; -import { promptInput, confirm } from '../prompt/index.js'; +import { promptInput, confirm, selectOption } from '../prompt/index.js'; import { success, info } from '../utils/ui.js'; import { slugify } from '../utils/slug.js'; import { createLogger } from '../utils/debug.js'; +import { listWorkflows } from '../config/workflowLoader.js'; +import { getCurrentWorkflow } from '../config/paths.js'; import type { TaskFileData } from '../task/schema.js'; const log = createLogger('add-task'); @@ -75,10 +77,21 @@ export async function addTask(cwd: string, args: string[]): Promise { } } - // Ask about workflow - const customWorkflow = await promptInput('Workflow name (Enter for default)'); - if (customWorkflow) { - workflow = customWorkflow; + // Ask about workflow using interactive selector + const availableWorkflows = listWorkflows(); + if (availableWorkflows.length > 0) { + const currentWorkflow = getCurrentWorkflow(cwd); + const defaultWorkflow = availableWorkflows.includes(currentWorkflow) + ? currentWorkflow + : availableWorkflows[0]!; + const options = availableWorkflows.map((name) => ({ + label: name === currentWorkflow ? `${name} (current)` : name, + value: name, + })); + const selected = await selectOption('Select workflow:', options); + if (selected && selected !== defaultWorkflow) { + workflow = selected; + } } // Build task data