Skip to content

[Feature] Add ASCII art banner to startup output #6

@spejman

Description

@spejman

Problem Statement

Currently, the startup banner shows plain text output beginning with "imploid v{version}". Adding ASCII art would make the tool's startup more visually distinctive and branded, improving the user experience when launching imploid.

User Value

  • Enhanced Branding: Users will immediately recognize imploid with distinctive ASCII art
  • Improved Visual Feedback: The ASCII art provides clear visual confirmation that imploid has started
  • Professional Polish: Adds personality and polish to the CLI tool startup experience

Definition of Done

  • Implementation complete with edge cases handled
  • ASCII art displays the tool name "imploid" in a creative style
  • ASCII art appears at the beginning of the startup banner (above the version line)
  • ASCII art respects the --quiet flag (hidden when quiet mode is enabled)
  • Unit tests added (>80% coverage)
  • Integration tests for main flows
  • Documentation updated if needed
  • Code review approved
  • CI/CD passes
  • Manual testing complete

Manual Testing Checklist

  • Basic flow: Run imploid and verify ASCII art appears above version line
  • Quiet mode: Run imploid --quiet and verify no ASCII art is displayed
  • Version display: Verify version and description info still appear correctly after ASCII art
  • Edge case: Test with different terminal widths to ensure ASCII art displays properly
  • Integration: Verify ASCII art works correctly with foreground mode (imploid --foreground)

Potential Solutions

Option 1: Generate ASCII art using figlet-style approach

  • Description: Use a figlet-style ASCII art generator or library to create the "imploid" text art dynamically
  • Pros:
    • Can potentially support multiple font styles
    • Cleaner code if using a library
  • Cons:
    • Adds an external dependency
    • May be overkill for a static banner
  • Files to modify:
    • src/lib/startupBanner.ts (add ASCII art generation)
    • package.json (add dependency if needed)

Option 2: Hardcode creative ASCII art banner

  • Description: Design a creative ASCII art representation of "imploid" and store it as a string constant in the startupBanner module
  • Pros:
    • No external dependencies
    • Full creative control over the design
    • Simple implementation
    • Fast execution (no generation overhead)
  • Cons:
    • Fixed design (can't easily change styles)
  • Files to modify:
    • src/lib/startupBanner.ts (add ASCII art constant and prepend to banner output)

Recommended Approach

Option 2 - Hardcode the ASCII art banner. This is the simplest, most maintainable approach that:

  • Requires no new dependencies
  • Provides full creative control
  • Has zero runtime overhead
  • Is easy to test and modify

Implementation approach:

  1. Create an ASCII art constant at the top of src/lib/startupBanner.ts
  2. Modify buildStartupBanner() function to prepend ASCII art lines to the output array
  3. Ensure ASCII art is only added when quiet mode is not enabled (handled by caller in orchestrator.ts:320-329)

Technical Notes

  • Affected files:
    • src/lib/startupBanner.ts (primary implementation)
    • Tests may need updates to verify ASCII art inclusion
  • Dependencies: None (using Option 2)
  • The --quiet flag is already handled in src/lib/orchestrator.ts:320-329, so the ASCII art will automatically be suppressed when quiet mode is enabled

🤖 Generated with Claude Code

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions