MCP HubMCP Hub
스킬 목록으로 돌아가기

moai-project-batch-questions

modu-ai
업데이트됨 Today
167 조회
424
78
424
GitHub에서 보기
메타projectquestionsbatchtemplatesuxoptimization

정보

이 스킬은 일괄 최적화를 위한 표준화된 AskUserQuestion 템플릿을 제공하여 사용자 상호작용을 최대 60%까지 줄여줍니다. 일반적인 패턴에 대한 재사용 가능한 질문 그룹을 제공하여 개발자가 반복적인 프롬프트를 최소화하면서 명확성을 유지할 수 있게 합니다. 사용자로부터 여러 관련 입력을 단일의 효율적인 상호작용으로 수집해야 할 때 사용하세요.

빠른 설치

Claude Code

추천
기본
npx skills add modu-ai/moai-adk
플러그인 명령대체
/plugin add https://github.com/modu-ai/moai-adk
Git 클론대체
git clone https://github.com/modu-ai/moai-adk.git ~/.claude/skills/moai-project-batch-questions

Claude Code에서 이 명령을 복사하여 붙여넣어 스킬을 설치하세요

문서

Project Batch Questions - Skill Guide

Skill Metadata

FieldValue
Skill Namemoai-project-batch-questions
Version1.0.0 (2025-11-05)
Core ToolAskUserQuestion (Claude Code built-in)
UX Goal60% interaction reduction through batching

What It Does

Purpose: Standardize AskUserQuestion patterns with reusable batch templates that reduce user interactions while maintaining clarity.

Key capabilities:

  • Batch Templates: Pre-designed question groups for common scenarios
  • UX Optimization: 60% interaction reduction through strategic batching
  • Multi-language Support: Templates in Korean, English, Japanese, Chinese
  • Response Validation: Built-in validation and processing patterns
  • Error Handling: Graceful handling of invalid or missing responses

Batch Design Philosophy

Traditional vs Batch Approach

Traditional: Q1 → Answer → Q2 → Answer → Q3 → Answer (3 interactions) Batch: Q1 + Q2 + Q3 → All answers at once (1 interaction, 66% reduction)

Batching Rules

RuleDescriptionExample
Related QuestionsGroup questions about same topicLanguage settings
Sequential LogicQ2 depends on Q1 answerTeam mode conditional questions
Same Decision ContextUser thinking about same aspectGitHub + Git workflow

Core Batch Templates

Template 1: Language Selection Batch (3 questions)

Purpose: Set language preferences for project initialization Interaction Reduction: 3 turns → 1 turn (66% improvement)

const languageBatch = {
  questions: [
    {
      question: "Which language would you like to use for project initialization and documentation?",
      header: "Language",
      multiSelect: false,
      options: [
        { label: "English", description: "All dialogs and documentation in English" },
        { label: "한국어", description: "모든 대화와 문서를 한국어로" },
        { label: "日本語", description: "すべての対話と文書を日本語で" },
        { label: "中文", description: "所有对话和文档使用中文" }
      ]
    },
    {
      question: "In which language should Alfred's sub-agent prompts be written?",
      header: "Agent Prompt",
      multiSelect: false,
      options: [
        { label: "English (Global Standard)", description: "Reduces token usage by 15-20%" },
        { label: "Selected Language (Localized)", description: "Local efficiency with native language" }
      ]
    },
    {
      question: "How would you like to be called in our conversations? (max 20 chars)",
      header: "Nickname",
      multiSelect: false,
      options: [
        { label: "Enter custom nickname", description: "Type your preferred name using 'Other' option" }
      ]
    }
  ]
};

Template 2: Team Mode Settings Batch (2 questions)

Purpose: Configure team-specific GitHub and Git settings Interaction Reduction: 2 turns → 1 turn (50% improvement) Conditional: Only shown when mode: "team" detected

const teamModeBatch = {
  questions: [
    {
      question: "[Team Mode] Is 'Automatically delete head branches' enabled in your GitHub repository?",
      header: "GitHub Settings", 
      multiSelect: false,
      options: [
        { label: "Yes, already enabled", description: "PR merge 후 자동으로 원격 브랜치 삭제됨" },
        { label: "No, not enabled (Recommended)", description: "Settings → General에서 확인 필요" },
        { label: "Not sure / Need to check", description: "GitHub Settings 확인 후 다시 진행" }
      ]
    },
    {
      question: "[Team Mode] Which Git workflow should we use for SPEC documents?",
      header: "Git Workflow",
      multiSelect: false,
      options: [
        { label: "Feature Branch + PR", description: "매 SPEC마다 feature 브랜치 생성 → PR 리뷰 → develop 병합" },
        { label: "Direct Commit to Develop", description: "develop에 직접 커밋. 빠른 프로토타이핑에 최적" },
        { label: "Decide per SPEC", description: "SPEC 생성 시마다 매번 선택. 유연성 높지만 결정 필요" }
      ]
    }
  ]
};

Template 3: Report Generation Batch (1 question)

Purpose: Configure report generation with token cost awareness

const reportGenerationBatch = {
  questions: [
    {
      question: "Configure report generation:\n\n⚡ **Minimal (Recommended)**: Essential reports only (20-30 tokens)\n📊 **Enable**: Full analysis reports (50-60 tokens)\n🚫 **Disable**: No reports (0 tokens)\n\nAffects future /alfred:3-sync costs.",
      header: "Report Generation",
      multiSelect: false,
      options: [
        { label: "⚡ Minimal (Recommended)", description: "80% token reduction, faster sync" },
        { label: "Enable", description: "Complete reports, higher token usage" },
        { label: "🚫 Disable", description: "No automatic reports, zero cost" }
      ]
    }
  ]
};

Template 4: Domain Selection Batch (Multi-select)

Purpose: Select project domains and technology areas

const domainSelectionBatch = {
  questions: [
    {
      question: "Which domains and technology areas should be included in this project?",
      header: "Domains",
      multiSelect: true,
      options: [
        { label: "Backend API", description: "REST/GraphQL APIs, server-side logic, databases" },
        { label: "Frontend Web", description: "React/Vue/Angular, UI components, client-side" },
        { label: "Mobile App", description: "iOS/Android apps, React Native, Flutter" },
        { label: "DevOps/Infrastructure", description: "CI/CD, Docker, Kubernetes, cloud" },
        { label: "Data/Analytics", description: "Data processing, ML pipelines, analytics" }
      ]
    }
  ]
};

Response Processing

Validation Function

function validateBatchResponse(responses: Record<string, string>, template: string): ValidationResult {
  const errors: string[] = [];
  
  switch (template) {
    case 'language-batch':
      const validLanguages = ['ko', 'en', 'ja', 'zh'];
      if (!validLanguages.includes(responses['Language'])) {
        errors.push('Invalid language selection');
      }
      if (responses['Nickname']?.length > 20) {
        errors.push('Nickname must be 20 characters or less');
      }
      break;
  }
  
  return { isValid: errors.length === 0, errors };
}

Configuration Mapping

function mapToConfig(responses: Record<string, string>, template: string): Partial<Config> {
  switch (template) {
    case 'language-batch':
      return {
        language: {
          conversation_language: responses['Language'],
          agent_prompt_language: responses['Agent Prompt'] === 'English (Global Standard)' ? 'english' : 'localized'
        },
        user: { nickname: responses['Nickname'], selected_at: new Date().toISOString() }
      };
      
    case 'team-mode-batch':
      return {
        github: {
          auto_delete_branches: responses['GitHub Settings'] === 'Yes, already enabled',
          spec_git_workflow: mapWorkflowToCode(responses['Git Workflow']),
          checked_at: new Date().toISOString()
        }
      };
  }
}

Usage Integration

Alfred Command Integration

// In 0-project.md command
async function initializeProject() {
  // Step 1: Language selection batch
  const languageResponses = await executeBatchTemplate(LANGUAGE_BATCH_TEMPLATE);
  
  // Step 2: Check for team mode
  if (isTeamMode()) {
    const teamResponses = await executeBatchTemplate(TEAM_MODE_BATCH_TEMPLATE);
  }
  
  // Step 3: Report generation batch  
  const reportResponses = await executeBatchTemplate(REPORT_GENERATION_BATCH_TEMPLATE);
}

Performance Metrics

Interaction Reduction

TemplateTraditionalBatchReduction
Language Selection3 interactions1 interaction66%
Team Mode Settings2 interactions1 interaction50%
Domain Selection5+ questions1 interaction80%+

Best Practices

✅ DO

  • Group related questions: Same decision context
  • Show total question count: "3 questions in this batch"
  • Use consistent headers: Short, descriptive (≤12 chars)
  • Include progress indicators: "Step 1 of 2"

❌ DON'T

  • Overload batches: Max 4 questions per batch
  • Mix unrelated topics: Keep thematic cohesion
  • Skip validation: Always verify responses
  • Ignore cancellation: Handle user gracefully

Quick Reference

Common Use Cases

Use CaseTemplateQuestionsInteraction Reduction
Project initializationLanguage + Team batches5 questions total60%
Settings modificationTargeted batches1-3 questions50-80%
Feature configurationDomain-specific batches2-4 questions75%

Integration Checklist

  • Template selected for use case
  • Response validation configured
  • Error handling implemented
  • Configuration mapping tested
  • Multi-language support if needed

End of Skill | Created 2025-11-05 | Optimized for batch interaction reduction

GitHub 저장소

modu-ai/moai-adk
경로: src/moai_adk/templates/.claude/skills/moai-project-batch-questions
agentic-aiagentic-codingagentic-workflowclaudeclaudecodevibe-coding

연관 스킬

moai-plugin-builder

기타

This skill provides patterns, templates, and best practices for developing Claude Code plugins. Use it when creating plugins, defining components like commands and hooks, or troubleshooting plugin issues. It covers essential structures including plugin manifests, agents, skills, and MCP/LSP configurations.

스킬 보기

when-optimizing-prompts-use-prompt-architect

기타

Prompt Architect is a framework for developers to systematically analyze, refine, and optimize prompts using evidence-based techniques. It helps improve AI response quality and consistency by identifying anti-patterns and validating changes through A/B testing. Use it when you need to refactor an underperforming prompt or design a new, effective one from scratch.

스킬 보기

when-creating-skill-template-use-skill-builder

기타

This skill generates properly structured Claude Code Skills with complete YAML frontmatter, progressive disclosure documentation, and organized directory layouts. It ensures new skills follow best practices and specification requirements while creating all necessary files including SKILL.md, README.md, and process diagrams. Developers should use it when creating reusable skills to maintain consistency and compliance with Claude's skill framework.

스킬 보기

deepspeed

디자인

This skill provides expert guidance for distributed training using Microsoft's DeepSpeed library. It helps developers implement optimization techniques like ZeRO stages, pipeline parallelism, and mixed-precision training. Use this skill when working with DeepSpeed features, debugging code, or learning best practices for large-scale model training.

스킬 보기