Skip to content

feat: style-aware buddy generation from coding behavior #4

@Mythical365

Description

@Mythical365

Summary

Currently, buddy identity is deterministically rolled from the user's Claude account UUID. This means your buddy never changes regardless of how you actually code.

This proposal adds a coding style layer that blends with the existing UUID-based roll to make the buddy reflect your real development habits — tools you reach for, session patterns, how chaotic vs methodical you are.

How It Works

The existing buddi-hook.py already receives every tool event (PreToolUse, PostToolUse, Stop, etc.). The idea is to accumulate lightweight stats from these events into a local file (~/.buddi_style.json) — no data ever leaves the machine.

Stats tracked:

  • Tool usage breakdown (Bash, Read, Write, Grep, Edit, etc.)
  • Total sessions and average session length
  • Permission denial rate (chaos indicator)
  • Tool diversity score

These stats are then hashed alongside the user ID to produce a style seed that shifts the buddy outcome:

Coding pattern Influence
Bash-heavy / shell power user Boosts robot, dragon
Explorer (lots of Read/Grep) Boosts owl, octopus
High chaos (many denials, errors) Boosts ghost, blob
Methodical / clean (low chaos) Boosts turtle, penguin
Rare coder (few sessions) Boosts snail, cactus

Rarity is also influenced — more sessions = higher legendary chance, rewarding active users.

Implementation

Pure Python addition to buddi-hook.py — no Swift changes required. The style stats accumulate silently in the background. On first launch (or after enough sessions), the style seed is computed and stored alongside the existing identity in ~/.buddi_style.json.

This is fully backward-compatible: if no style data exists, behavior is identical to today.

Why This Is Better

The original /buddy mechanic was pure UUID luck. This makes the buddy earned — it reflects how you actually work, making it more personal and meaningful.

Happy to submit a PR with the implementation if this direction sounds good!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions