From ed39bf144a5265c3088c0f9ce9ec53ec889e26fc Mon Sep 17 00:00:00 2001 From: m3tm3re Date: Mon, 27 Apr 2026 09:56:04 +0200 Subject: [PATCH] feat(basecamp-project): add discovery questions framework --- .../references/discovery-questions.md | 587 ++++++++++++++++++ 1 file changed, 587 insertions(+) create mode 100644 skills/basecamp-project/references/discovery-questions.md diff --git a/skills/basecamp-project/references/discovery-questions.md b/skills/basecamp-project/references/discovery-questions.md new file mode 100644 index 0000000..b85af12 --- /dev/null +++ b/skills/basecamp-project/references/discovery-questions.md @@ -0,0 +1,587 @@ +--- +title: Discovery Questions Framework +description: Guided project definition workflow for Basecamp projects - 8 phases covering vision, success criteria, timeline, team, communication, tools, risks, and review +type: reference +version: 1.0 +last_updated: 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 + +```yaml +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 + +```yaml +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 + +```yaml +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 + +```yaml +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 + +```yaml +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 + +```yaml +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 + +```yaml +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 + +```yaml +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 + +```python +# 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