AgentSkillsCN

brainstorming

在开展任何创意工作之前,您都必须使用此技能——无论是创建功能、搭建组件、新增特性,还是修改行为。在正式实现前,先深入探索用户意图、需求与设计方案。

SKILL.md
--- frontmatter
name: brainstorming
description: "在任何創意工作之前您必須使用此技能 - 創建功能、構建元件、添加功能或修改行為。在實作之前探索使用者意圖、需求和設計。"

將想法腦力激盪成設計

概述

透過自然的協作對話,幫助將想法轉化為完整的設計和規格。

首先了解當前的專案脈絡,然後一次一個地提問以完善想法。一旦您了解要構建什麼,以小節(200-300 字)呈現設計,在每個節後確認到目前為止是否正確。

流程

了解想法:

  • 首先檢視當前專案狀態(檔案、文件、最近的提交)
  • 一次一個問題來完善想法
  • 盡可能優先使用選擇題,但開放式問題也可以
  • 每則訊息只有一個問題 - 如果一個主題需要更多探索,將其分成多個問題
  • 專注於理解:目的、限制、成功標準

探索方法:

  • 提出 2-3 種不同的方法及其權衡
  • 以對話方式呈現選項,說明您的推薦和理由
  • 首先提出您推薦的選項並解釋原因

呈現設計:

  • 一旦您相信自己了解要構建什麼,就呈現設計
  • 將其分成 200-300 字的小節
  • 在每個小節後詢問到目前為止是否正確
  • 涵蓋:架構、元件、資料流、錯誤處理、測試
  • 如果有些內容不清楚,準備好回頭澄清

設計文件必要元素:

  1. 問題描述/概述 - 功能目的和解決的問題
  2. 需求 - 明確的需求清單(編號列表)
  3. 使用者體驗流程 - ASCII 流程圖
  4. 資料流程 - 資料如何在系統中流動
  5. 資料結構變更 - 新增或修改的型別/欄位(如適用)
  6. UI 變更 - ASCII UI 圖(如適用)
  7. 修改檔案清單 - 表格列出所有變更
  8. 實作邏輯 - 關鍵程式碼片段
  9. 驗收標準 - checkbox 清單,定義「完成」的標準

UI 視覺化(適用於有介面的功能):

  • 使用 ASCII/文字圖示呈現 UI 佈局和元件配置
  • 標註互動元素、狀態變化、資料流向
  • 呈現不同螢幕尺寸或狀態的變化(如:loading、error、empty)

UI 圖示範例格式:

code
┌─────────────────────────────────────┐
│  Header                    [≡] [×]  │
├─────────────────────────────────────┤
│  ┌──────────┐  ┌──────────────────┐ │
│  │ Sidebar  │  │   Main Content   │ │
│  │ - Item 1 │  │                  │ │
│  │ - Item 2 │  │   [Button]       │ │
│  │ - Item 3 │  │                  │ │
│  └──────────┘  └──────────────────┘ │
├─────────────────────────────────────┤
│  Footer                             │
└─────────────────────────────────────┘

常用符號:

  • [ ] 按鈕、checkbox
  • ( ) radio button
  • [===] 輸入框
  • [▼] 下拉選單
  • ←→↑↓ 方向/流向
  • ├─┤ 分隔線
  • ●○ 狀態指示器

設計之後

文件化並立即提交:

  • 將驗證過的設計寫入 docs/plans/YYYY-MM-DD-<topic>-design.md
  • 如果可用,使用 elements-of-style:writing-clearly-and-concisely 技能
  • 立即使用 /auto-commit 提交設計文件
    • 設計文件是獨立的交付物,不要等到實作完成才提交
    • 分開提交可追蹤設計演進,避免大型混合 commit
  • 執行 /hi-update-plans-index 更新計畫索引

檔案命名規則:

  • 格式:YYYY-MM-DD-<descriptive-topic>-design.md
  • 命名前必須檢查 docs/plans/docs/plans/archive/ 是否有同名檔案
  • 如果名稱已存在於 archive,選擇不同的描述性名稱(換個說法)
  • 好的命名範例:
    • 2026-01-06-inbox-crm-integration-design.md(而非重複的 message-center-enhancement
    • 2026-01-06-customer-panel-redesign-design.md(具體描述功能)
  • 避免使用過於通用的名稱如 enhancementimprovementupdate

目錄結構:

code
docs/plans/
├── archive/                    # 已完成的設計和計劃
│   ├── 2026-01-04-xxx-design.md
│   └── 2026-01-04-xxx-plan.md
├── 2026-01-06-xxx-design.md   # 進行中的設計
└── 2026-01-06-xxx-plan.md     # 進行中的計劃

實作(如果繼續):

  • 詢問:「準備好設置實作環境了嗎?」
  • 使用 hi-skills:using-git-worktrees 創建隔離的工作區
  • 使用 hi-skills:writing-plans 創建詳細的實作計劃

關鍵原則

  • 一次一個問題 - 不要用多個問題讓人感到不知所措
  • 優先選擇題 - 在可能的情況下比開放式問題更容易回答
  • 無情地 YAGNI - 從所有設計中移除不必要的功能
  • 探索替代方案 - 在確定之前總是提出 2-3 種方法
  • 漸進式驗證 - 分節呈現設計,驗證每一節
  • 保持靈活 - 當某些內容不清楚時回頭澄清