Files
AGENTS/skills/basecamp-project/references/discovery-questions.md

17 KiB

title, description, type, version, last_updated
title description type version last_updated
Discovery Questions Framework Guided project definition workflow for Basecamp projects - 8 phases covering vision, success criteria, timeline, team, communication, tools, risks, and review reference 1.0 2025-04-27

Discovery Questions Framework

Leitet User durch 8 Phasen der Projekt-Definition, ähnlich dem brainstorming Skill. Jede Phase kann übersprungen werden; Multiple-Choice-Fragen haben "Anderes"-Fallback.


Phase 1: Vision & Goals

phase:
  id: 1
  name: "Vision & Goals"
  description: "Kläre das Ziel und den Zweck des Projekts"
  skippable: true
  questions:
    - id: "project_goal"
      text: "Was ist das Ziel dieses Projekts?"
      type: "freetext"
      required: true
      prompt: "Beschreibe in einem Satz, was wir erreichen wollen"
      
    - id: "problem_solved"
      text: "Welches Problem löst dieses Projekt?"
      type: "freetext"
      required: false
      placeholder: "Welchen Schmerzpunkt oder welches Bedürfnis adressieren wir?"

Beispiel-Prompts

Frage: Was ist das Ziel dieses Projekts? Prompt: Beschreibe in einem Satz, was wir erreichen wollen.

Antwort-Beispiel: "Wir wollen die interne Dokumentation von Prozessen verbessern, damit new Joiner schneller produktiv werden."


Phase 2: Success Criteria

phase:
  id: 2
  name: "Success Criteria"
  description: "Definiere messbare Kriterien für Projekterfolg"
  skippable: true
  questions:
    - id: "success_indicators"
      text: "Woran erkennen wir, dass das Projekt erfolgreich war?"
      type: "multiple_choice_checkbox"
      required: false
      options:
        - label: "Funktional fertig"
          description: "Alle geplanten Features wurden implementiert"
          value: "functional_complete"
        - label: "Zeitnah geliefert"
          description: "Deadline wurde eingehalten"
          value: "on_time"
        - label: "Qualitätsziele erreicht"
          description: "Tests, Reviews und QA bestanden"
          value: "quality_met"
        - label: "Stakeholder zufrieden"
          description: "Feedback von Auftraggebern eingeholt und positiv"
          value: "stakeholder_happy"
        - label: "Budget eingehalten"
          description: "Kosten blieben im geplanten Rahmen"
          value: "on_budget"
        - label: "Andere"
          description: "Eigene Erfolgskriterien definieren"
          value: "other"
          freetext: true
          freetext_label: "Andere Erfolgskriterien:"
          freetext_placeholder: "z.B. 95% Adoption Rate nach Launch"
          
    - id: "kpis"
      text: "Welche messbaren KPIs definieren Erfolg?"
      type: "freetext"
      required: false
      multiline: true
      placeholder: "z.B. Response Time < 200ms, Coverage > 80%, NPS > 50"

UI-Darstellung

Woran erkennen wir, dass das Projekt erfolgreich war?
☐ Funktional fertig (alle Features implementiert)
☐ Zeitnah geliefert (Deadline eingehalten)
☐ Qualitätsziele erreicht (Tests, Reviews bestanden)
☐ Stakeholder zufrieden (Feedback eingeholt)
☐ Budget eingehalten
☑ Andere: ___95% Adoption Rate nach Launch___

Phase 3: Timeline & Milestones

phase:
  id: 3
  name: "Timeline & Milestones"
  description: "Definiere Start, Ende und wichtige Zwischenmeilensteine"
  skippable: true
  questions:
    - id: "start_date"
      text: "Wann soll das Projekt starten?"
      type: "date"
      required: true
      parse_natural: true
      examples:
        - "nächsten Montag"
        - "2025-06-01"
        - "Mitte Juni"
        - "sofort"
        
    - id: "end_date"
      text: "Wann soll das Projekt abgeschlossen sein?"
      type: "date"
      required: true
      parse_natural: true
      examples:
        - "Ende Q2"
        - "2025-08-15"
        - "in 3 Monaten"
        
    - id: "milestones"
      text: "Welche wichtigen Zwischenmeilensteine gibt es?"
      type: "dynamic_list"
      required: false
      item_template:
        - id: "name"
          type: "freetext"
          placeholder: "Meilenstein Name"
        - id: "date"
          type: "date"
          required: false
          parse_natural: true
          placeholder: "Datum (optional)"
      add_button: "+ Meilenstein hinzufügen"
      min_items: 0
      max_items: 10

Beispiel-Liste

Welche wichtigen Zwischenmeilensteine gibt es?

┌─────────────────────────────────────────────────────┐
│ 1. Discovery Phase                                  │
│    Datum: 2025-05-15                                │
├─────────────────────────────────────────────────────┤
│ 2. Design Approval                                  │
│    Datum: Ende Mai                                  │
├─────────────────────────────────────────────────────┤
│ 3. Beta Release                                    │
│    Datum: —                                        │
├─────────────────────────────────────────────────────┤
│ [+ Meilenstein hinzufügen]                          │
└─────────────────────────────────────────────────────┘

Phase 4: Team & Roles

phase:
  id: 4
  name: "Team & Roles"
  description: "Definiere Team-Mitglieder und Rollen"
  skippable: true
  questions:
    - id: "team_members"
      text: "Wer ist am Projekt beteiligt?"
      type: "basecamp_people_lookup"
      required: false
      source: "basecamp people list --json"
      fallback: "freetext"
      fallback_label: "Person hinzufügen (nicht in Basecamp):"
      
    - id: "roles_needed"
      text: "Welche Rollen brauchen wir?"
      type: "multiple_choice_checkbox"
      required: false
      options:
        - label: "Projektleitung"
          value: "project_lead"
        - label: "Entwicklung"
          value: "development"
        - label: "Design"
          value: "design"
        - label: "QA/Testing"
          value: "qa"
        - label: "Stakeholder/Product Owner"
          value: "stakeholder"
        - label: "Externe Dienstleister"
          value: "external"
        - label: "Andere"
          value: "other"
          freetext: true
          freetext_label: "Andere Rolle:"
          
    - id: "progress_reporting"
      text: "Soll regelmäßig über Fortschritt berichtet werden?"
      type: "yes_no"
      required: false
      default: true
      trigger: "creates_checkins"

Basecamp People Lookup Flow

Wer ist am Projekt beteiligt?

[🔍 Basecamp Team durchsuchen...]

Verfügbare Personen:
┌────────────────────────────────────────────────────┐
│ 👤 Alice Müller         Projektleitung              │
│ 👤 Bob Schmidt         Entwicklung                 │
│ 👤 Carol Weber         Design                      │
│ 👤 Dave Fischer        QA                          │
└────────────────────────────────────────────────────┘

[✓] Alice Müller
[✓] Bob Schmidt
[ ] Carol Weber
[ ] Dave Fischer

[+ Person hinzufügen (nicht in Basecamp)]

oder manuell eingeben:
Anderer Name: ___________

Phase 5: Communication Preferences

phase:
  id: 5
  name: "Communication Preferences"
  description: "Definiere Kommunikationskanäle und -rhythmus"
  skippable: true
  questions:
    - id: "communication_channels"
      text: "Wie soll hauptsächlich kommuniziert werden?"
      type: "multiple_choice_checkbox"
      required: false
      options:
        - label: "Täglicher Standup"
          description: "Kurze tägliche Updates im Chat-Kanal"
          value: "daily_standup"
        - label: "Wöchentliches Sync-Meeting"
          description: "Regelmäßiges Meeting für Fortschritt und Blocker"
          value: "weekly_sync"
        - label: "Ad-hoc bei Bedarf"
          description: "Kommunikation nur wenn nötig"
          value: "ad_hoc"
        - label: "Async-First"
          description: "Primär Messages und Documents, seltene Meetings"
          value: "async_first"
        - label: "Video-Calls für Meetings"
          description: "Meetings per Video-Call statt vor Ort"
          value: "video_calls"
          
    - id: "escalation_mentions"
      text: "Sollen @mentions für Eskalation genutzt werden?"
      type: "yes_no"
      required: false
      default: true
      hint: "Bei @mention wird derjenige sofort benachrichtigt"

UI-Darstellung

Wie soll hauptsächlich kommuniziert werden?
☐ Täglicher Standup (Chat-Kanal)
☑ Wöchentliches Sync-Meeting
☑ Async-First (primär Messages/Documents)
☐ Video-Calls für Meetings

Sollen @mentions für Eskalation genutzt werden?
[JA] Nein

Phase 6: Tools & Workflows

phase:
  id: 6
  name: "Tools & Workflows"
  description: "Wähle Basecamp-Tools und Workflow-Konfiguration"
  skippable: true
  questions:
    - id: "basecamp_tools"
      text: "Welche Basecamp-Tools sollen aktiv genutzt werden?"
      type: "multiple_choice_checkbox"
      required: false
      default_checked:
        - "message_board"
        - "todos"
        - "chat"
        - "checkins"
        - "documents"
      options:
        - label: "Message Board"
          description: "Kickoff-Nachrichten, Entscheidungen, Updates"
          value: "message_board"
        - label: "To-Dos"
          description: "Aufgaben und Meilensteine"
          value: "todos"
        - label: "Schedule"
          description: "Kalender-Events für Meilensteine"
          value: "schedule"
        - label: "Chat"
          description: "Kommunikation und Standups"
          value: "chat"
        - label: "Cards/Kanban"
          description: "Visuelles Task-Board (Alternative zu To-Dos)"
          value: "cards"
        - label: "Check-ins"
          description: "Automatische Abfragen zu Fortschritt"
          value: "checkins"
        - label: "Documents"
          description: "Specs, Referenzen, Entscheidungen"
          value: "documents"
        - label: "Gauges"
          description: "Fortschritts-Indikatoren"
          value: "gauges"
        - label: "Files"
          description: "Dateien und Anhänge"
          value: "files"
          
    - id: "progress_gauge"
      text: "Soll ein Gauge mit Fortschritts-Indikator erstellt werden?"
      type: "yes_no"
      required: false
      conditional_on: "basecamp_tools includes 'gauges'"
      default: false

UI-Darstellung mit Vorauswahl

Welche Basecamp-Tools sollen aktiv genutzt werden?

☑ Message Board (Kickoff, Entscheidungen)
☑ To-Dos (Aufgaben, Meilensteine)
☐ Schedule (Kalender-Events)
☑ Chat (Kommunikation, Standups)
☐ Cards/Kanban (Alternative zu To-Dos)
☑ Check-ins (Automatische Abfragen)
☑ Documents (Specs, Referenzen)
☐ Gauges (Fortschritts-Tracking)
☐ Files (Dateien, Anhänge)

Soll ein Gauge mit Fortschritts-Indikator erstellt werden?
[Ja] Nein

Phase 7: Risks & Dependencies

phase:
  id: 7
  name: "Risks & Dependencies"
  description: "Identifiziere Risiken und Abhängigkeiten"
  skippable: true
  questions:
    - id: "known_risks"
      text: "Gibt es bekannte Risiken?"
      type: "freetext"
      required: false
      multiline: true
      placeholder: "z.B. Abhängigkeit von externem API, limitierte Testumgebung, kritische Abhängigkeit von Key Person"
      
    - id: "dependencies"
      text: "Welche Abhängigkeiten gibt es?"
      type: "freetext"
      required: false
      multiline: true
      placeholder: "z.B. Wartet auf Approval von Legal, Abhängig von Datenbank-Migration, Braucht Zugang zu Prod-System"
      
    - id: "external_stakeholders"
      text: "Wer sind externe Stakeholder?"
      type: "freetext"
      required: false
      multiline: true
      placeholder: "z.B. Externe Agentur für Design, Kunde für Feedback, Vendor für Integration"

Phase 8: Review

phase:
  id: 8
  name: "Review"
  description: "Zusammenfassung aller Antworten zur Bestätigung"
  skippable: false
  questions:
    - id: "summary"
      type: "review_summary"
      sections:
        - "vision_goals"
        - "success_criteria"
        - "timeline"
        - "team"
        - "communication"
        - "tools"
        - "risks"
      actions:
        - label: "Alles korrekt"
          value: "confirm"
          next: "create_project"
        - label: "Bearbeiten"
          value: "edit"
          next: "phase_picker"

Review-Darstellung

═══════════════════════════════════════════════════════
                    PROJEKT-ZUSAMMENFASSUNG
═══════════════════════════════════════════════════════

📌 VISION & GOALS
   Ziel: Interne Dokumentation verbessern
   Problem: New Joiner brauchen zu lange zur Einarbeitung

🎯 SUCCESS CRITERIA
   ☑ Funktional fertig
   ☑ Zeitnah geliefert
   ☐ Qualitätsziele erreicht
   ☑ Stakeholder zufrieden
   KPI: 95% Adoption Rate nach Launch

📅 TIMELINE
   Start: 2025-06-01
   Ende: 2025-08-15 (11 Wochen)
   Meilensteine:
     • Discovery Phase — 2025-05-15
     • Design Approval — Ende Mai
     • Beta Release — (ohne Datum)

👥 TEAM
   Alice Müller (Projektleitung)
   Bob Schmidt (Entwicklung)
   Carol Weber (Design)
   
   Rollen: Projektleitung, Entwicklung, Design
   ✓ Regelmäßige Fortschrittsberichte

💬 KOMMUNIKATION
   Async-First, wöchentliche Sync-Meetings
   ✓ @mentions für Eskalation aktiviert

🛠 TOOLS (aktiviert)
   Message Board, To-Dos, Chat, Check-ins, Documents

⚠️ RISIKEN & ABHÄNGIGKEITEN
   Risiken: —
   Abhängigkeiten: Wartet auf Approval von Legal
   Externe Stakeholder: Kunde für Feedback

═══════════════════════════════════════════════════════

[ ✅ Alles korrekt — Projekt erstellen ]
[ ✏️ Zurück zu Phase: [Vision ▼] ]

Nutzung im Skill Workflow

Discovery Flow Integration

Der Discovery-Fragen-Katalog wird verwendet wenn:

  1. Kein Plan vorhanden — User möchte Projekt von Grund auf definieren
  2. Vor dem Drafting — Als strukturierter Einstieg vor dem eigentlichen Planning
  3. Ergänzung zu bestehendem Plan — Falls wichtige Felder fehlen

Flow-Integration

User: "Ich will ein neues Projekt in Basecamp erstellen"
  ↓
Skill: "Lass uns das Projekt gemeinsam definieren."
       "Wir gehen durch 8 kurze Phasen."
  ↓
[Phase 1-8 durchlaufen]
  ↓
Zusammenfassung anzeigen
  ↓
User bestätigt → Erstelle Projekt
User möchte ändern → Springe zur Phase

Abspeichern der Answers

# Struktur für gesammelte Answers
discovery_answers = {
    "project_goal": "...",
    "problem_solved": "...",
    "success_indicators": [...],
    "kpis": "...",
    "start_date": "2025-06-01",
    "end_date": "2025-08-15",
    "milestones": [
        {"name": "Discovery", "date": "2025-05-15"},
        {"name": "Design Approval", "date": "..."},
    ],
    "team_members": [
        {"id": "123", "name": "Alice Müller", "role": "project_lead"}
    ],
    "roles_needed": ["project_lead", "development", "design"],
    "progress_reporting": True,
    "communication_channels": ["async_first", "weekly_sync"],
    "escalation_mentions": True,
    "basecamp_tools": ["message_board", "todos", "chat", "checkins", "documents"],
    "progress_gauge": False,
    "known_risks": "...",
    "dependencies": "...",
    "external_stakeholders": "...",
}

Mapping zu Basecamp Structure

Discovery Field Basecamp Creation
project_goal, problem_solved Kickoff Message
start_date, end_date Schedule (oder Project Description)
milestones To-Do Lists + Schedule Entries
team_members Project People
communication_channels Chat Channel Topic + PM Setup
basecamp_tools Aktiviert/Deaktiviert im Project
progress_gauge Gauge Creation
known_risks, dependencies Message Board Post

Natural Language Date Parsing

Der Skill unterstützt flexible Datumsangaben:

Input Parsed Output
"nächsten Montag" 2025-05-05 (wenn gerade April)
"Ende Q2" 2025-06-30
"Mitte Juni" 2025-06-15
"in 3 Wochen" +21 Tage von heute
"2025-06-01" 2025-06-01
"sofort" today's date
"ASAP" today's date

Implementation Notes

  1. Jede Phase ist überspringbar — User kann "Weiter" oder "Überspringen" sagen
  2. Multiple Choice mit Freitext-Fallback — "Andere" öffnet Freitext-Eingabe
  3. Datum-Parsing — Akzeptiere natürliche Sprache mit Fallback auf direkte Eingabe
  4. Basecamp People Lookup — Nutze basecamp people list --json für Team-Auswahl
  5. Review-Phase ist Pflicht — Zeigt Zusammenfassung vor Projekt-Erstellung
  6. Answers werden gesammelt — Bis zur Bestätigung in Discovery-Objekt gespeichert