Files
Claude-Code-Workflow/.claude/skills/brainstorm/phases/01-mode-routing.md
catlog22 cdb240d2c2 Add quality standards and team command design patterns documentation
- Introduced a new quality standards document outlining assessment criteria for team command .md files, including completeness, pattern compliance, integration, and consistency dimensions.
- Established quality gates and issue classification for errors, warnings, and informational notes.
- Created a comprehensive team command design patterns document detailing infrastructure and collaboration patterns, including message bus integration, YAML front matter requirements, task lifecycle, five-phase execution structure, and error handling.
- Included a pattern selection guide for collaboration scenarios to enhance team interaction models.
2026-02-13 23:39:06 +08:00

6.5 KiB

Phase 1: Mode Detection & Interactive Routing

Parse user arguments, detect execution mode from flags/parameters, or interactively ask the user which mode to use via AskUserQuestion.

Objective

  • Parse all command arguments and flags
  • Detect execution mode automatically when possible
  • Ask user via AskUserQuestion when mode is ambiguous
  • Initialize TodoWrite with mode-appropriate task list
  • Route to correct execution path

Execution

Step 1.1: Parameter Parsing

// Parse from user input (argument string)
const args = parseArguments(user_input);

// Flags
const auto_yes = args.includes('--yes') || args.includes('-y');
const count = extractFlag(args, '--count', 3);  // default 3, max 9
if (count > 9) count = 9;  // Cap at maximum
const session_id = extractFlag(args, '--session', null);
const update_mode = args.includes('--update');
const include_questions = args.includes('--include-questions');
const skip_questions = args.includes('--skip-questions');
const style_skill = extractFlag(args, '--style-skill', null);

// Role detection
const VALID_ROLES = [
  'data-architect', 'product-manager', 'product-owner', 'scrum-master',
  'subject-matter-expert', 'system-architect', 'test-strategist',
  'ui-designer', 'ux-expert'
];
const first_arg = getFirstNonFlagArg(args);
const is_role = VALID_ROLES.includes(first_arg);

// Topic extraction (everything that's not a flag or role)
const topic = is_role ? null : extractTopic(args);

Step 1.2: Style-Skill Validation

if (style_skill) {
  const skill_path = `.claude/skills/style-${style_skill}/SKILL.md`;
  if (fileExists(skill_path)) {
    style_skill_package = style_skill;
    style_reference_path = `.workflow/reference_style/${style_skill}`;
    // "✓ Style SKILL package found: style-{style_skill}"
  } else {
    // "⚠ WARNING: Style SKILL package not found: {style_skill}"
    style_skill_package = null;
  }
} else {
  style_skill_package = null;
}

Step 1.3: Mode Detection

// Auto-detection rules (ordered by priority)
if (auto_yes) {
  // --yes flag explicitly requests auto mode
  execution_mode = 'auto';
} else if (is_role) {
  // First arg is a valid role name → single role mode
  execution_mode = 'single-role';
  role_name = first_arg;
} else if (topic && !session_id) {
  // Topic provided without session → likely auto mode, but ask
  execution_mode = null;  // Ask user
} else {
  // Ambiguous → ask user
  execution_mode = null;
}

Step 1.4: Interactive Mode Selection (when mode is null)

if (execution_mode === null) {
  AskUserQuestion({
    questions: [{
      question: "请选择头脑风暴模式",
      header: "模式选择",
      multiSelect: false,
      options: [
        {
          label: "自动模式 (推荐)",
          description: "完整流程:框架生成 → 多角色并行分析 → 跨角色综合。适合新主题的全面分析"
        },
        {
          label: "单角色分析",
          description: "为单个角色生成分析文档。适合补充已有会话的角色视角或迭代更新"
        }
      ]
    }]
  });

  // Route based on user selection
  if (user_selected === "自动模式 (推荐)") {
    execution_mode = 'auto';
  } else {
    execution_mode = 'single-role';
  }
}

Step 1.5: Single Role Mode - Role Selection (if needed)

When entering single-role mode without a role name specified:

if (execution_mode === 'single-role' && !role_name) {
  // Need to ask which role
  AskUserQuestion({
    questions: [{
      question: "请选择要执行分析的角色",
      header: "角色选择",
      multiSelect: false,
      options: [
        { label: "system-architect", description: "系统架构师 - 技术架构、可扩展性、集成模式" },
        { label: "ux-expert", description: "UX专家 - 用户研究、信息架构、用户旅程" },
        { label: "product-manager", description: "产品经理 - 产品策略、路线图、优先级" },
        { label: "ui-designer", description: "UI设计师 - 视觉设计、高保真原型、设计系统" }
      ]
    }]
  });
  // Note: If user needs a role not in top 4, they select "Other" and type it
  role_name = user_selected;

  // Validate role name
  if (!VALID_ROLES.includes(role_name)) {
    // ERROR with valid roles list
    // EXIT
  }
}

Step 1.6: Session Detection

if (!session_id) {
  // Find active sessions
  const sessions = Glob('.workflow/active/WFS-*/');

  if (sessions.length > 1) {
    // Multiple sessions → ask user to select
    // Use AskUserQuestion with session list
  } else if (sessions.length === 1) {
    session_id = extractSessionId(sessions[0]);
  } else {
    if (execution_mode === 'auto') {
      // Will be created by artifacts phase
      session_id = null;  // artifacts handles creation
    } else {
      // Single role mode requires existing session
      // ERROR: "No active session. Run /brainstorm 'topic' first"
      // EXIT
    }
  }
}

Step 1.7: Initialize TodoWrite

if (execution_mode === 'auto') {
  TodoWrite({
    todos: [
      { content: "Phase 1: Mode detection and parameter parsing", status: "completed", activeForm: "Detecting mode" },
      { content: "Phase 2: Interactive Framework Generation", status: "pending", activeForm: "Generating framework" },
      { content: "Phase 3: Parallel Role Analysis", status: "pending", activeForm: "Executing parallel analysis" },
      { content: "Phase 4: Synthesis Integration", status: "pending", activeForm: "Executing synthesis" }
    ]
  });
} else {
  TodoWrite({
    todos: [
      { content: "Phase 1: Mode detection and parameter parsing", status: "completed", activeForm: "Detecting mode" },
      { content: `Phase 3: ${role_name} analysis`, status: "pending", activeForm: `Executing ${role_name} analysis` }
    ]
  });
}

Output

  • Variable: execution_mode ("auto" | "single-role")
  • Variable: role_name (single-role mode only)
  • Variable: topic (auto mode only)
  • Variable: session_id (may be null for auto mode - artifacts creates it)
  • Variable: count (auto mode, default 3)
  • Variable: auto_yes (boolean)
  • Variable: style_skill_package (optional)
  • Variable: update_mode, include_questions, skip_questions (single-role flags)
  • TodoWrite: Phase 1 completed, subsequent phases pending

Next Phase

Return to orchestrator: