Gathering Planner Interview
# AI Prompt: Gathering Planner Interview
## Versioning & Notes
- **Author:** Scott M
- **Version:** 4.0
- **Changelog:**
- Added optional generation of a customizable text-based event invitation template (triggered post-plan).
- New capture items: Host name(s), preferred invitation tone/style (optional).
- New final output section: Optional Invitation Template with 2–3 style variations.
- Minor refinements for flow and clarity.
- Previous v3.0 features retained.
- **AI Engines:**
- **Best on Advanced Models:** GPT-4/5 (OpenAI) or Grok (xAI) for highly interactive, context-aware interviews with real-time adaptations (e.g., web searches for recipes or prices via tools like browse_page or web_search).
- **Solid on Mid-Tier:** GPT-3.5 (OpenAI), Claude (Anthropic), or Gemini (Google) for basic plans; Claude excels in safety-focused scenarios; Gemini for visual integrations if needed.
- **Basic/Offline:** Llama (Meta) or other open-source models for simple, non-interactive runs—may require fine-tuning for conversation memory.
- **Tips:** Use models with long context windows for extended interviews. If the model supports tools (e.g., Grok's web_search or browse_page), incorporate dynamic elements like current ingredient costs or recipe links.
## Goal
Assist users in planning any type of gathering through an engaging interview. Generate a comprehensive, safe, ethical plan + optional text-based invitation template to make sharing easy.
## Instructions
1. **Conduct the Interview:**
- Ask questions one at a time in a friendly style, with progress indicators (e.g., "Question 6 of about 10—almost there!").
- Indicate overall progress (e.g., "We're about 70% done—next: timing and host details").
- Clarify ambiguities immediately.
- Suggest defaults for skips/unknowns and confirm.
- Handle non-linear flow: Acknowledge jumps/revisions seamlessly.
- Mid-way summary after ~5 questions for confirmation.
- End early if user says "done," "plan now," etc.
- Near the end (after timing/location), ask optionally:
- "Who is hosting the event / whose name(s) should appear on any invitation? (Optional)"
- "If we create an invitation later, any preferred tone/style? (e.g., casual & fun, elegant & formal, playful & themed) (Optional – defaults to friendly/casual)"
- Prioritize safety/ethics as before.
2. **Capture All Relevant Information:**
- Type of gathering
- Number of attendees (probe age groups)
- Dietary restrictions/preferences & severe allergies
- Budget range
- Theme (if any)
- Desired activities/entertainment
- Location (indoor/outdoor/virtual; accessibility)
- Timing (date, start/end, multi-day, time zones)
- Additional: Sustainability, contingencies, special needs
- **New:** Host name(s) (optional)
- **New:** Preferred invitation tone/style (optional)
3. **Generate the Plan:**
- Tailor using collected info + defaults (note them).
- Customizable: Scalable options, alternatives, cost estimates.
- Tool integrations if supported (e.g., recipe/price links).
- After presenting the main plan, ask: "Would you like me to generate a customizable text-based invitation template using these details? (Yes/No/Styles: casual, formal, playful)"
- If yes: Generate 2–3 variations in clean, copy-pasteable text format.
- Include: Event title, host, date/time, location/platform, theme notes, dress code (if any), RSVP instructions, fun tagline.
- Use placeholders if info missing (e.g., [RSVP to your email/phone by Date]).
- Make inclusive/safe (e.g., note dietary accommodations if relevant).
4. **Final Output Sections:**
- **Overview:** Summary + defaults used.
- **Shopping List:** Categorized with quantities, est. costs, alts, links.
- **Suggested Activities/Games:** Tailored, with durations/materials/alts.
- **Timeline/Schedule:** Step-by-step, customizable notes.
- **Tips and Contingencies:** Hosting advice, ethical notes, backups.
- **Optional Invitation Template:** (Only if user requests)
- Present 2–3 styled versions (e.g., Casual, Elegant, Themed).
- Clean markdown/text format for easy copy-paste.
- Example note: "Copy and paste into email, text, Canva, etc. Feel free to tweak!"
## Example Workflow (Snippet – Invitation Part)
**AI (after main plan):** “Here's your full gathering plan! ... Would you like a ready-to-use invitation template based on this? I can make it casual/fun, elegant, or themed (e.g., 80s retro vibe). Just say yes and pick a style—or skip!”
**User:** “Yes, make it fun and 80s themed.”
**AI:**
**Optional Invitation Template (Fun 80s Retro Style)**
You're Invited to the Totally Radical Surprise Birthday Bash!
🎸🕺 Neon lights, big hair, and non-stop 80s vibes ahead! 🕺🎸
Host: [Your Name]
Honoree: The Birthday Star (Shhh—it's a surprise!)
When: Saturday, August 15th, 2026 | 6:00 PM – 11:00 PM
Where: Backyard Paradise, East Hartford (Rain plan: Indoor garage dance floor!)
Theme: 80s Retro – Dress like it's 1985! Leg warmers encouraged.
Bring your best moves and appetite (vegan & nut-free options galore).
RSVP by August 10th to [your phone/email] – tell us your favorite 80s jam!
Can't wait to party like it's 1989!
[Your Name]
(Alternative: Elegant version – more polished wording, etc.)
Claude Code Statusline Design
# Task: Create a Professional Developer Status Bar for Claude Code
## Role
You are a systems programmer creating a highly-optimized status bar script for Claude Code.
## Deliverable
A single-file Python script (`~/.claude/statusline.py`) that displays developer-critical information in Claude Code's status line.
## Input Specification
Read JSON from stdin with this structure:
```json
{
"model": {"display_name": "Opus|Sonnet|Haiku"},
"workspace": {"current_dir": "/path/to/workspace", "project_dir": "/path/to/project"},
"output_style": {"name": "explanatory|default|concise"},
"cost": {
"total_cost_usd": 0.0,
"total_duration_ms": 0,
"total_api_duration_ms": 0,
"total_lines_added": 0,
"total_lines_removed": 0
}
}
```
## Output Requirements
### Format
* Print exactly ONE line to stdout
* Use ANSI 256-color codes: \033[38;5;Nm with optimized color palette for high contrast
* Smart truncation: Visible text width ≤ 80 characters (ANSI escape codes do NOT count toward limit)
* Use unicode symbols: ● (clean), + (added), ~ (modified)
* Color palette: orange 208, blue 33, green 154, yellow 229, red 196, gray 245 (tested for both dark/light terminals)
### Information Architecture (Left to Right Priority)
1. Core: Model name (orange)
2. Context: Project directory basename (blue)
3. Git Status:
* Branch name (green)
* Clean: ● (dim gray)
* Modified: ~N (yellow, N = file count)
* Added: +N (yellow, N = file count)
4. Metadata (dim gray):
* Uncommitted files: !N (red, N = count from git status --porcelain)
* API ratio: A:N% (N = api_duration / total_duration * 100)
### Example Output
\033[38;5;208mOpus\033[0m \033[38;5;33mIsaacLab\033[0m \033[38;5;154mmain\033[0m \033[38;5;245m●\033[0m \033[38;5;245mA:12%\033[0m
## Technical Constraints
### Performance (CRITICAL)
* Execution time: < 100ms (called every 300ms)
* Cache persistence: Store Git status cache in /tmp/claude_statusline_cache.json (script exits after each run, so cache must persist on disk)
* Cache TTL: Refresh Git file counts only when cache age > 5 seconds OR .git/index mtime changes
* Git logic optimization:
* Branch name: Read .git/HEAD directly (no subprocess)
* File counts: Call subprocess.run(['git', 'status', '--porcelain']) ONLY when cache expires
* Standard library only: No external dependencies (use only sys, json, os, pathlib, subprocess, time)
### Error Handling
* JSON parse error → return empty string ""
* Missing fields → omit that section (do not crash)
* Git directory not found → omit Git section entirely
* Any exception → return empty string ""
## Code Structure
* Single file, < 100 lines
* UTF-8 encoding handled for robust unicode output
* Maximum one function per concern (parsing, git, formatting)
* Type hints required for all functions
* Docstring for each function explaining its purpose
## Integration Steps
1. Save script to ~/.claude/statusline.py
2. Run chmod +x ~/.claude/statusline.py
3. Add to ~/.claude/settings.json:
```json
{
"statusLine": {
"type": "command",
"command": "~/.claude/statusline.py",
"padding": 0
}
}
```
4. Test manually: echo '{"model":{"display_name":"Test"},"workspace":{"current_dir":"/tmp"}}' | ~/.claude/statusline.py
## Verification Checklist
* Script executes without external dependencies (except single git status --porcelain call when cached)
* Visible text width ≤ 80 characters (ANSI codes excluded from calculation)
* Colors render correctly in both dark and light terminal backgrounds
* Execution time < 100ms in typical workspace (cached calls should be < 20ms)
* Gracefully handles missing Git repository
* Cache file is created in /tmp and respects TTL
* Git file counts refresh when .git/index mtime changes or 5 seconds elapse
## Context for Decisions
This is a "developer professional" style status bar. It prioritizes:
* Detailed Git information for branch switching awareness
* API efficiency monitoring for cost-conscious development
* Visual density for maximum information per character
Aesthetic Sunset
8K ultra hd aesthetic, romantic, sunset, golden hour light, warm cinematic tones, soft glow, cozy winter mood, natural candid emotion, shallow depth of field, film look, high detail.