Skip to content

feat(wow): add a width-safe Tiny Actor Grid for ASCII agent scenes #1267

Description

@JeremyDev87

Background

CodingBuddy already has a strong visual language for character output:

  • Buddy uses compact face banners such as ◕‿◕, ◕⌄◕, and ◕⁀◕.
  • Agents already define their own visual.eye glyphs in agent JSON.
  • Rendering helpers already exist for display-width-aware padding and truncation.

The goal is not to invent a completely different mascot style. The goal is to extend the existing style into a kitschy, character-driven ASCII scene that can show multiple agents at once.

Goal

Introduce a Tiny Actor Grid presentation for agent scenes such as PLAN, EVAL, AUTO, and SHIP.

The grid must feel playful and characterful, but it must also be technically robust:

  • it must not tilt,
  • it must not break with CJK text,
  • it must not break with emoji,
  • it must not break with ANSI color codes,
  • and it must degrade responsively instead of forcing a broken multi-column layout.

Core constraints

  • Reuse the existing display-width helpers from /Users/pjw/workspace/codingbuddy/packages/claude-code-plugin/hooks/lib/buddy_renderer.py.
  • Do not use naive len()-based visible-width logic for layout decisions.
  • Derive agent faces from each agent JSON visual.eye value rather than inventing unrelated character sets.
  • Keep Buddy as the moderator character and keep the rest of the cast in the existing eye + mouth + eye style.
  • Support both Unicode mode and asciiMode fallback.
  • Use responsive column fallback. If the terminal is too narrow, the layout must move from 4 or 3 columns to 2 or 1 columns instead of rendering a crooked grid.

Non-goals for the first milestone

  • Full multi-agent orchestration is not required here.
  • Replacing all existing Buddy surfaces is not required.
  • A TUI-wide rollout is not required in the first pass.

Initial implementation strategy

  1. Define a small card contract for actor entries.
  2. Build a width-safe card renderer.
  3. Build a responsive grid layout engine.
  4. Add regression tests specifically for alignment safety.
  5. Add a feature-flagged preview path before replacing stable output paths.

Expected output style

The final style should look like a compact sticker board or cardboard standee cast, not like full-body ASCII characters.

Example direction:

  • [⎔⌄⎔] planner
  • [◮‿◮] security
  • [⊙‿⊙] test
  • ◕⁀◕ Buddy: conditional yes

Implementation notes

Candidate integration points:

  • /Users/pjw/workspace/codingbuddy/packages/claude-code-plugin/hooks/lib/buddy_renderer.py
  • /Users/pjw/workspace/codingbuddy/packages/claude-code-plugin/hooks/lib/agent_status.py
  • /Users/pjw/workspace/codingbuddy/packages/claude-code-plugin/commands/buddy.md

Candidate new module:

  • /Users/pjw/workspace/codingbuddy/packages/claude-code-plugin/hooks/lib/tiny_actor_grid.py

Sub-issues

Recommended execution order

  1. feat(plugin): add a TinyActorCard contract and mood-to-face mapping for ASCII actor scenes #1270
  2. feat(plugin): implement a width-safe Tiny Actor card renderer using display-width helpers #1269
  3. feat(plugin): add a responsive Tiny Actor Grid layout engine with column fallback #1268
  4. test(plugin): add alignment regression coverage for Tiny Actor Grid across CJK, emoji, ANSI, and asciiMode #1273
  5. feat(plugin): define mode-specific Tiny Actor cast presets and Buddy moderator copy #1272
  6. feat(plugin): add a feature-flagged Tiny Actor Grid preview to Buddy or council surfaces #1271

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1Priority 1: First Impressionfeatparent-issue하위 이슈를 포함하는 상위 이슈pluginpackages/claude-code-pluginpriority:shouldShould Have - 중요하지만 필수는 아님wow-experiencePlugin Wow Experience Design

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions