issue-manage

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Issue Management Skill

工单管理Skill

Interactive menu-driven interface for issue CRUD operations via
ccw issue
CLI.
通过
ccw issue
CLI实现的、基于菜单驱动的交互式工单CRUD操作界面。

Quick Start

快速开始

Ask me:
  • "Show all issues" → List with filters
  • "View issue GH-123" → Detailed inspection
  • "Edit issue priority" → Modify fields
  • "Delete old issues" → Remove with confirmation
  • "Bulk update status" → Batch operations
  • "Show completed issues" → View issue history
  • "Archive old issues" → Move to history
您可以询问我:
  • "显示所有工单" → 带筛选的工单列表
  • "查看工单GH-123" → 详细检查工单信息
  • "编辑工单优先级" → 修改工单字段
  • "删除旧工单" → 确认后删除工单
  • "批量更新状态" → 批量操作
  • "查看已完成工单" → 查看工单历史
  • "归档旧工单" → 移至历史记录

CLI Endpoints

CLI 端点

bash
undefined
bash
undefined

Core operations

核心操作

ccw issue list # List active issues ccw issue list <id> --json # Get issue details ccw issue history # List completed issues (from history) ccw issue history --json # Completed issues as JSON ccw issue status <id> # Detailed status ccw issue init <id> --title "..." # Create issue ccw issue task <id> --title "..." # Add task ccw issue bind <id> <solution-id> # Bind solution ccw issue update <id> --status completed # Complete & auto-archive
ccw issue list # 列出活跃工单 ccw issue list <id> --json # 获取工单详情 ccw issue history # 列出已完成工单(来自历史记录) ccw issue history --json # 以JSON格式返回已完成工单 ccw issue status <id> # 查看工单详细状态 ccw issue init <id> --title "..." # 创建工单 ccw issue task <id> --title "..." # 添加任务 ccw issue bind <id> <solution-id> # 绑定解决方案 ccw issue update <id> --status completed # 标记完成并自动归档

Queue management

队列管理

ccw issue queue # List current queue ccw issue queue add <id> # Add to queue ccw issue queue list # Queue history ccw issue queue switch <queue-id> # Switch queue ccw issue queue archive # Archive queue ccw issue queue delete <queue-id> # Delete queue ccw issue next # Get next task ccw issue done <queue-id> # Mark completed ccw issue update --from-queue # Sync statuses from queue
undefined
ccw issue queue # 列出当前队列 ccw issue queue add <id> # 添加至队列 ccw issue queue list # 队列历史 ccw issue queue switch <queue-id> # 切换队列 ccw issue queue archive # 归档队列 ccw issue queue delete <queue-id> # 删除队列 ccw issue next # 获取下一个任务 ccw issue done <queue-id> # 标记完成 ccw issue update --from-queue # 从队列同步状态
undefined

Operations

操作说明

1. LIST 📋

1. 列表查看 📋

Filter and browse issues:
┌─ Filter by Status ─────────────────┐
│ □ All        □ Registered          │
│ □ Planned    □ Queued              │
│ □ Executing  □ Completed           │
└────────────────────────────────────┘
Flow:
  1. Ask filter preferences →
    ccw issue list --json
  2. Display table: ID | Status | Priority | Title
  3. Select issue for detail view
筛选并浏览工单:
┌─ 按状态筛选 ─────────────────┐
│ □ 全部        □ 已注册          │
│ □ 已规划    □ 已加入队列              │
│ □ 执行中  □ 已完成           │
└────────────────────────────────────┘
流程:
  1. 询问筛选偏好 → 执行
    ccw issue list --json
  2. 展示表格:ID | 状态 | 优先级 | 标题
  3. 选择工单查看详情

2. VIEW 🔍

2. 详情查看 🔍

Detailed issue inspection:
┌─ Issue: GH-123 ─────────────────────┐
│ Title: Fix authentication bug       │
│ Status: planned | Priority: P2      │
│ Solutions: 2 (1 bound)              │
│ Tasks: 5 pending                    │
└─────────────────────────────────────┘
Flow:
  1. Fetch
    ccw issue status <id> --json
  2. Display issue + solutions + tasks
  3. Offer actions: Edit | Plan | Queue | Delete
工单详细检查:
┌─ 工单: GH-123 ─────────────────────┐
│ 标题: 修复认证漏洞       │
│ 状态: 已规划 | 优先级: P2      │
│ 解决方案: 2个(已绑定1个)              │
│ 任务: 5个待处理                    │
└─────────────────────────────────────┘
流程:
  1. 获取
    ccw issue status <id> --json
    返回结果
  2. 展示工单 + 解决方案 + 任务信息
  3. 提供操作选项:编辑 | 规划 | 加入队列 | 删除

3. EDIT ✏️

3. 编辑 ✏️

Modify issue fields:
FieldOptions
TitleFree text
PriorityP1-P5
Statusregistered → completed
ContextProblem description
LabelsComma-separated
Flow:
  1. Select field to edit
  2. Show current value
  3. Collect new value via AskUserQuestion
  4. Update
    .workflow/issues/issues.jsonl
修改工单字段:
字段选项
标题自由文本
优先级P1-P5
状态已注册 → 已完成
上下文问题描述
标签逗号分隔
流程:
  1. 选择要编辑的字段
  2. 展示当前值
  3. 通过AskUserQuestion收集新值
  4. 更新
    .workflow/issues/issues.jsonl

4. DELETE 🗑️

4. 删除 🗑️

Remove with confirmation:
⚠️ Delete issue GH-123?
This will also remove:
- Associated solutions
- Queued tasks

[Delete] [Cancel]
Flow:
  1. Confirm deletion via AskUserQuestion
  2. Remove from
    issues.jsonl
  3. Clean up
    solutions/<id>.jsonl
  4. Remove from
    queue.json
确认后删除:
⚠️ 是否删除工单GH-123?
此操作还将移除:
- 关联的解决方案
- 队列中的任务

[删除] [取消]
流程:
  1. 通过AskUserQuestion确认删除操作
  2. issues.jsonl
    中移除
  3. 清理
    solutions/<id>.jsonl
  4. queue.json
    中移除

5. HISTORY 📚

5. 历史记录 📚

View and manage completed issues:
┌─ Issue History ─────────────────────┐
│ ID                 Completed   Title │
│ ISS-001  2025-12-28 12:00   Fix bug │
│ ISS-002  2025-12-27 15:30   Feature │
└──────────────────────────────────────┘
Flow:
  1. Fetch
    ccw issue history --json
  2. Display table: ID | Completed At | Title
  3. Optional: Filter by date range
Auto-Archive: When issue status →
completed
:
  • Issue moves from
    issues.jsonl
    issue-history.jsonl
  • Solutions remain in
    solutions/<id>.jsonl
  • Queue items marked completed
查看并管理已完成工单:
┌─ 工单历史记录 ─────────────────────┐
│ ID                 完成时间   标题 │
│ ISS-001  2025-12-28 12:00   修复漏洞 │
│ ISS-002  2025-12-27 15:30   功能开发 │
└──────────────────────────────────────┘
流程:
  1. 获取
    ccw issue history --json
    返回结果
  2. 展示表格:ID | 完成时间 | 标题
  3. 可选:按日期范围筛选
自动归档:当工单状态变为
completed
时:
  • 工单从
    issues.jsonl
    移至
    issue-history.jsonl
  • 解决方案仍保留在
    solutions/<id>.jsonl
  • 队列中的任务标记为已完成

6. BULK 📦

6. 批量操作 📦

Batch operations:
OperationDescription
Update StatusChange multiple issues
Update PriorityBatch priority change
Add LabelsTag multiple issues
Delete MultipleBulk removal
Queue All PlannedAdd all planned to queue
Retry All FailedReset failed tasks
Sync from QueueUpdate statuses from active queue
批量操作说明:
操作描述
更新状态修改多个工单的状态
更新优先级批量修改优先级
添加标签为多个工单添加标签
批量删除批量移除工单
将所有已规划工单加入队列将所有已规划工单添加至队列
重试所有失败任务重置失败任务
从队列同步从活跃队列更新状态

Workflow

工作流

┌────────────────────────────────────────────────┐
│              Main Menu                          │
│  ┌────┐ ┌────┐ ┌────┐ ┌─────┐ ┌────┐          │
│  │List│ │View│ │Edit│ │Hist.│ │Bulk│          │
│  └──┬─┘ └──┬─┘ └──┬─┘ └──┬──┘ └──┬─┘          │
└─────┼──────┼──────┼──────┼───────┼─────────────┘
      │      │      │      │       │
      ▼      ▼      ▼      ▼       ▼
   Filter  Detail  Fields  History Multi
   Select  Actions Update  Browse  Select
      │      │      │      │       │
      └──────┴──────┴──────┴───────┘
             Back to Menu
Issue Lifecycle:
registered → planned → queued → executing → completed
                                    issue-history.jsonl
┌────────────────────────────────────────────────┐
│              主菜单                          │
│  ┌────┐ ┌────┐ ┌────┐ ┌─────┐ ┌────┐          │
│  │列表│ │查看│ │编辑│ │历史│ │批量│          │
│  └──┬─┘ └──┬─┘ └──┬─┘ └──┬──┘ └──┬─┘          │
└─────┼──────┼──────┼──────┼───────┼─────────────┘
      │      │      │      │       │
      ▼      ▼      ▼      ▼       ▼
   筛选选择  详情操作  字段更新  历史浏览  批量选择
      │      │      │      │       │
      └──────┴──────┴──────┴───────┘
             返回主菜单
工单生命周期:
已注册 → 已规划 → 已加入队列 → 执行中 → 已完成
                                    issue-history.jsonl

Implementation Guide

实现指南

Entry Point

入口点

javascript
// Parse input for issue ID
const issueId = input.match(/^([A-Z]+-\d+|ISS-\d+)/i)?.[1];

// Show main menu
await showMainMenu(issueId);
javascript
// 解析输入中的工单ID
const issueId = input.match(/^([A-Z]+-\d+|ISS-\d+)/i)?.[1];

// 显示主菜单
await showMainMenu(issueId);

Main Menu Pattern

主菜单模式

javascript
// 1. Fetch dashboard data
const issues = JSON.parse(Bash('ccw issue list --json') || '[]');
const history = JSON.parse(Bash('ccw issue history --json 2>/dev/null') || '[]');
const queue = JSON.parse(Bash('ccw issue queue --json 2>/dev/null') || '{}');

// 2. Display summary
console.log(`Active: ${issues.length} | Completed: ${history.length} | Queue: ${queue.pending_count || 0} pending`);

// 3. Ask action via AskUserQuestion
const action = AskUserQuestion({
  questions: [{
    question: 'What would you like to do?',
    header: 'Action',
    options: [
      { label: 'List Issues', description: 'Browse active issues' },
      { label: 'View Issue', description: 'Detail view' },
      { label: 'Edit Issue', description: 'Modify fields' },
      { label: 'View History', description: 'Completed issues' },
      { label: 'Bulk Operations', description: 'Batch actions' }
    ]
  }]
});

// 4. Route to handler
javascript
// 1. 获取仪表盘数据
const issues = JSON.parse(Bash('ccw issue list --json') || '[]');
const history = JSON.parse(Bash('ccw issue history --json 2>/dev/null') || '[]');
const queue = JSON.parse(Bash('ccw issue queue --json 2>/dev/null') || '{}');

// 2. 显示汇总信息
console.log(`活跃工单: ${issues.length} | 已完成: ${history.length} | 队列: ${queue.pending_count || 0} 个待处理`);

// 3. 通过AskUserQuestion询问操作
const action = AskUserQuestion({
  questions: [{
    question: '您想要执行什么操作?',
    header: '操作选项',
    options: [
      { label: '查看工单列表', description: '浏览活跃工单' },
      { label: '查看工单详情', description: '详情视图' },
      { label: '编辑工单', description: '修改字段' },
      { label: '查看历史记录', description: '已完成工单' },
      { label: '批量操作', description: '批量任务' }
    ]
  }]
});

// 4. 路由至处理函数

Filter Pattern

筛选模式

javascript
const filter = AskUserQuestion({
  questions: [{
    question: 'Filter by status?',
    header: 'Filter',
    multiSelect: true,
    options: [
      { label: 'All', description: 'Show all' },
      { label: 'Registered', description: 'Unplanned' },
      { label: 'Planned', description: 'Has solution' },
      { label: 'Executing', description: 'In progress' }
    ]
  }]
});
javascript
const filter = AskUserQuestion({
  questions: [{
    question: '按状态筛选?',
    header: '筛选选项',
    multiSelect: true,
    options: [
      { label: '全部', description: '显示所有工单' },
      { label: '已注册', description: '未规划' },
      { label: '已规划', description: '已有解决方案' },
      { label: '执行中', description: '处理中' }
    ]
  }]
});

Edit Pattern

编辑模式

javascript
// Select field
const field = AskUserQuestion({...});

// Get new value based on field type
// For Priority: show P1-P5 options
// For Status: show status options
// For Title: accept free text via "Other"

// Update file
const issuesPath = '.workflow/issues/issues.jsonl';
// Read → Parse → Update → Write
javascript
// 选择字段
const field = AskUserQuestion({...});

// 根据字段类型获取新值
// 优先级:显示P1-P5选项
// 状态:显示状态选项
// 标题:通过“其他”接受自由文本

// 更新文件
const issuesPath = '.workflow/issues/issues.jsonl';
// 读取 → 解析 → 更新 → 写入

Data Files

数据文件

FilePurpose
.workflow/issues/issues.jsonl
Active issue records
.workflow/issues/issue-history.jsonl
Completed issues (archived)
.workflow/issues/solutions/<id>.jsonl
Solutions per issue
.workflow/issues/queues/index.json
Queue index (multi-queue)
.workflow/issues/queues/<queue-id>.json
Individual queue files
文件用途
.workflow/issues/issues.jsonl
活跃工单记录
.workflow/issues/issue-history.jsonl
已完成工单(已归档)
.workflow/issues/solutions/<id>.jsonl
每个工单对应的解决方案
.workflow/issues/queues/index.json
队列索引(多队列)
.workflow/issues/queues/<queue-id>.json
单个队列文件

Error Handling

错误处理

ErrorResolution
No issues foundSuggest
/issue:new
to create
Issue not foundShow available issues, re-prompt
Write failureCheck file permissions
Queue errorDisplay ccw error message
错误解决方法
未找到工单建议使用
/issue:new
创建工单
工单不存在显示可用工单,重新提示
写入失败检查文件权限
队列错误显示ccw错误信息

Related Commands

相关命令

  • /issue:new
    - Create structured issue
  • /issue:plan
    - Generate solution
  • /issue:queue
    - Form execution queue
  • /issue:execute
    - Execute tasks
  • /issue:new
    - 创建结构化工单
  • /issue:plan
    - 生成解决方案
  • /issue:queue
    - 创建执行队列
  • /issue:execute
    - 执行任务