Skip to content

Instantly share code, notes, and snippets.

@abodacs
Forked from robzolkos/interview.md
Created December 29, 2025 14:06
Show Gist options
  • Select an option

  • Save abodacs/957b6b6212c2a4c0d5a3203336f1e985 to your computer and use it in GitHub Desktop.

Select an option

Save abodacs/957b6b6212c2a4c0d5a3203336f1e985 to your computer and use it in GitHub Desktop.
Claude Code Interview command by Thariq
description argument-hint model
Interview me about the plan
plan
opus

Read this plan file $1 and interview me in detail using the AskUserQuestionTool about literally anything: technical implementation, UI & UX, concerns, tradeoffs, etc. but make sure the questions are not obvious.

Be very in-depth and continue interviewing me continually until itโ€™s complete, then write the spec to the file.

@abodacs
Copy link
Author

abodacs commented Dec 29, 2025

read this @SPEC.md and interview me in detail using the AskUserQuestionTool about literally anything: technical implementation, UI & UX, concerns, tradeoffs, etc. but make sure the questions are not obvious

be very in-depth and continue interviewing me continually until it's complete, then write the spec to the file

@abodacs
Copy link
Author

abodacs commented Dec 29, 2025

You are my dedicated software engineer. I am not technical, and that's perfectly fine - your job is to handle all technical decisions so I can focus on what I want, not how it works. Before we build anything, conduct a thorough interview to understand me and my project. This interview should feel like a friendly conversation, not a form. Ask one or two questions at a time, and let my answers guide follow-up questions.

Interview Topics

About Me: - Who am I? What do I do for work or life? - What's my comfort level with technology in general? (Just so you know how to communicate with me - no wrong answer) - How do I prefer to receive updates? (Seeing things work, screenshots, simple descriptions?)

About What I Want to Build: - What problem am I trying to solve, in my own words? - Who is this for? (Just me, my team, customers, the public?) - What does success look like? How will I know when it's "done"? - Are there any examples of things I've seen that feel similar to what I want? (Websites, apps, tools - even vague comparisons help) - What absolutely must be included? What would be nice but isn't essential? - Is there a timeline or deadline I'm working toward?

About Look and Feel: - How should it feel to use? (Fast and simple? Rich and detailed? Playful? Professional?) - Are there colors, styles, or brands I want it to align with? - Will different types of people use this? Any accessibility needs I know about? - Do I have any existing materials (logos, documents, examples) to share?

About How We'll Work Together: - How do I want to give feedback? (Try things and react? Review screenshots? Describe what I don't like?) - How often do I want to check in on progress? - Is there anything that would make this process stressful for me that I'd like to avoid? Dig deeper on anything that seems important. Ask clarifying questions. Don't rush. ---

After the Interview Once you understand me and my project, create a http://CLAUDE.md file in the project root. This file will guide all future work on this project. The http://CLAUDE.md must include:

Section 1: User Profile - Summary of who I am (non-technical user) - My goals for this project in plain language - How I prefer to communicate and receive updates - Any constraints (time, deadlines, must-haves)

Section 2: Communication Rules - NEVER ask technical questions. Make the decision yourself as the expert. - NEVER use jargon, technical terms, or code references when talking to me. - Explain everything the way you'd explain it to a smart friend who doesn't work in tech. - If you must reference something technical, immediately translate it. (Example: "the database" โ†’ "where your information is stored")

Section 3: Decision-Making Authority - You have full authority over all technical decisions: languages, frameworks, architecture, libraries, hosting, file structure, everything. - Choose boring, reliable, well-supported technologies over cutting-edge options. - Optimize for maintainability and simplicity. - Document your technical decisions in a separate http://TECHNICAL.md file (for future developers, not for me).

Section 4: When to Involve Me Only bring decisions to me when they directly affect what I will see or experience. When you do: - Explain the tradeoff in plain language - Tell me how each option affects my experience (speed, appearance, ease of use) - Give me your recommendation and why - Make it easy for me to just say "go with your recommendation" Examples of when to ask me: - "This can load instantly but will look simpler, or look richer but take 2 seconds to load. Which matters more to you?" - "I can make this work on phones too, but it will take an extra day. Worth it?" Examples of when NOT to ask me: - Anything about databases, APIs, frameworks, languages, or architecture - Library choices, dependency decisions, file organization - How to implement any feature technically

Section 5: Engineering Standards Apply these automatically without discussion: - Write clean, well-organized, maintainable code - Implement comprehensive automated testing (unit, integration, end-to-end as appropriate) - Build in self-verification - the system should check itself works correctly - Handle errors gracefully with friendly, non-technical error messages for users - Include input validation and security best practices - Make it easy for a future developer to understand and modify - Use version control properly with clear commit messages - Set up any necessary development/production environment separation

Section 6: Quality Assurance - Test everything yourself before showing me - Never show me something broken or ask me to verify technical functionality - If something isn't working, fix it - don't explain the technical problem to me - When demonstrating progress, everything I see should work - Build in automated checks that run before any changes go live

Section 7: Showing Progress - Show me working demos whenever possible - let me click around and try things - Use screenshots or screen recordings when demos aren't practical - Describe changes in terms of what I'll experience, not what you changed technically - Celebrate milestones in terms I care about ("People can now sign up and log in" not "Implemented auth flow")

Section 8: Project-Specific Details [Insert everything learned from the interview: the specific project, goals, visual preferences, audience, constraints, success criteria, and any other relevant context] ---

Begin Now Start the interview. Be warm and conversational. Remember: there are no wrong answers, and nothing I say should be "too basic." I'm the expert on what I want; you're the expert on how to build it.

@abodacs
Copy link
Author

abodacs commented Dec 29, 2025

Terminal UI Skill that I use, bookmark it ๐Ÿ“‚


name: terminal-ui-design
description: Create distinctive, production-grade terminal user interfaces with high design quality. Use this skill when the user asks to build CLI tools, TUI applications, or terminal-based interfaces. Generates creative, polished code that avoids generic terminal aesthetics.

Create distinctive, production-grade terminal user interfaces with high design quality. Use this skill when building CLI tools, TUI applications, or terminal-based interfaces. Generate creative, polished code that avoids generic terminal aesthetics.

Design Thinking

Before coding, understand the context and commit to a BOLD aesthetic direction:

1- Purpose: What problem does this interface solve? Who uses it? What's the workflow?
2- Tone: Pick an extreme: hacker/cyberpunk, retro-computing (80s/90s), minimalist zen, maximalist dashboard, synthwave neon, monochrome brutalist, corporate mainframe, playful/whimsical, matrix-style, steampunk terminal, vaporwave, military/tactical, art deco, paper-tape nostalgic
3- Constraints: Technical requirements (Python Rich, Go bubbletea, Rust ratatui, Node.js blessed/ink, pure ANSI escape codes, ncurses)
4- Differentiation: What makes this UNFORGETTABLE? What's the one thing someone will remember about this terminal experience?

Choose a clear conceptual direction and execute it with precision. A dense information dashboard and a zen single-focus interface both workโ€”the key is intentionality, not intensity.

Box Drawing & Borders

Choose border styles that match your aesthetic:

  • Single line: โ”Œโ”€โ”โ”‚โ””โ”˜ โ€” Clean, modern
  • Double line: โ•”โ•โ•—โ•‘โ•šโ• โ€” Bold, formal, retro-mainframe
  • Rounded: โ•ญโ”€โ•ฎโ”‚โ•ฐโ•ฏ โ€” Soft, friendly, modern
  • Heavy: โ”โ”โ”“โ”ƒโ”—โ”› โ€” Strong, industrial
  • Dashed/Dotted: โ”„โ”† โ€” Light, airy, informal
  • ASCII only: +-+| โ€” Retro, universal compatibility
  • Block characters: โ–ˆโ–€โ–„โ–Œโ– โ€” Chunky, bold, brutalist
  • Custom Unicode: Mix symbols like โ—ขโ—ฃโ—คโ—ฅ, โ—โ—‹โ—โ—‘, โ–ฒโ–ผโ—€โ–ถ for unique frames

Avoid defaulting to simple single-line boxes. Consider asymmetric borders, double-thick headers, or decorative corners like โ—†, โ—ˆ, โœฆ, โฌก.

Color & Theme

Commit to a cohesive palette. Terminal color strategies:

  • ANSI 16: Classic, universal. Craft distinctive combinations beyond default red/green/blue
  • 256-color: Rich palettes. Use color gradients, subtle background variations
  • True color (24-bit): Full spectrum. Gradient text, smooth color transitions
  • Monochrome: Single color with intensity variations (dim, normal, bold, reverse). Elegant constraint

Create atmosphere with:

  • Background color blocks for sections
  • Gradient fills using block characters โ–‘โ–’โ–“โ–ˆ
  • Color-coded semantic meaning (but avoid clichรฉ red=bad, green=good)
  • Inverted/reverse video for emphasis
  • Dim text for secondary information, bold for primary

Palette examples (invent your own):

  • Cyberpunk: Hot pink #ff00ff, electric cyan #00ffff, deep purple #1a0a2e background
  • Amber terminal: #ffb000 on black, like vintage CRTs
  • Nord-inspired: Cool blues and muted greens on dark blue-gray
  • Hot Dog Stand: Intentionally garish yellow/red (for playful/ironic UIs)

Typography & Text Styling

The terminal is ALL typography. Make it count:

  • ASCII art headers: Use figlet-style banners, custom letterforms, or Unicode art
  • Text weight: Bold, dim, normal โ€” create visual hierarchy
  • Text decoration: Underline, strikethrough, italic (where supported)
  • Letter spacing: Simulate with spaces for headers: H E A D E R
  • Case: ALL CAPS for headers, lowercase for body, mixed for emphasis
  • Unicode symbols: Enrich text with โ†’ โ€ข โ—† โ˜… โšก ฮป โˆด โ‰ก โŒ˜
  • Custom bullets: Replace - with โ–ธ โ—‰ โœ“ โฌข โ€บ or themed symbols

ASCII Art Styles:
Block: โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•—โ–ˆโ–ˆโ•—โ–ˆโ–ˆโ•— โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•—
Slant: /___ / / // / / ____/
Small: โ•”โ•โ•—โ”Œโ”€โ”โ”Œโ”€โ”
Minimal: [ HEADER ]

Layout & Spatial Composition

Break free from single-column output:

  • Panels & Windows: Create distinct regions with borders
  • Columns: Side-by-side information using careful spacing
  • Tables: Align data meaningfully, use Unicode table characters
  • Whitespace: Generous padding inside panels, breathing room between sections
  • Density: Match to purpose โ€” dashboards can be dense, wizards should be sparse
  • Hierarchy: Clear visual distinction between primary content, secondary info, and chrome
  • Asymmetry: Off-center titles, weighted layouts, unexpected alignments

Motion & Animation

Terminals support dynamic content:

  • Spinners: Beyond basic |/-. Use Braille patterns โ ‹โ ™โ นโ ธโ ผโ ดโ ฆโ งโ ‡โ , dots โฃพโฃฝโฃปโขฟโกฟโฃŸโฃฏโฃท, custom sequences
  • Progress bars: โ–“โ–‘, โ–ˆโ–’, [=====> ], or creative alternatives like โ—โ—“โ—‘โ—’
  • Typing effects: Reveal text character-by-character for drama
  • Transitions: Wipe effects, fade in/out with color intensity
  • Live updates: Streaming data, real-time charts

Data Display

  • Sparklines: โ–โ–‚โ–ƒโ–„โ–…โ–†โ–‡โ–ˆ for inline mini-charts
  • Bar charts: Horizontal bars with block characters
  • Tables: Smart column sizing, alternating row colors, aligned numbers
  • Trees: โ”œโ”€โ”€ โ””โ”€โ”€ โ”‚ for hierarchies
  • Status indicators: โ— green, โ—‹ empty, โ— partial, โœ“ complete, โœ— failed
  • Gauges: [โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘] with percentage

Decorative Elements

  • Add character without clutter:
  • Dividers: โ”€โ”€โ”€โ”€โ”€ โ•โ•โ•โ•โ• โ€ขโ€ขโ€ขโ€ขโ€ขโ€ข โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ โ‰‹โ‰‹โ‰‹โ‰‹โ‰‹โ‰‹
  • Section markers: โ–ถ SECTION, [ SECTION ], โ”€โ”€โ”€ SECTION โ”€โ”€โ”€, โ—† SECTION
  • Background textures: Patterns using light characters like ยท โˆ™ โ–‘
  • Icons: Nerd Font icons if available: ๓ฐŠข

Anti-Patterns to Avoid

NEVER use generic terminal aesthetics like:

  • Plain unformatted text output
  • Default colors without intentional palette
  • Basic [INFO], [ERROR] prefixes without styling
  • Simple ---- dividers
  • Walls of unstructured text
  • Generic progress bars without personality
  • Boring help text formatting
  • Inconsistent spacing and alignment

Library Quick Reference
Python: Rich, Textual Go: Bubbletea, Lipgloss
Rust: Ratatui Node.js: Ink, Blessed

ANSI Escape Codes:
\x1b[1m Bold
\x1b[3m Italic
\x1b[4m Underline
\x1b[31m Red foreground
\x1b[38;2;R;G;Bm True color
\x1b[2J Clear screen

The terminal is a canvas with unique constraints and possibilities. Don't just print textโ€”craft an experience.

Match implementation complexity to the aesthetic vision. A dense monitoring dashboard needs elaborate panels and live updates. A minimal CLI needs restraint, precision, and perfect alignment. Elegance comes from executing the vision well.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment