gabriel / musehub public
Open #48 Enhancement
filed by gabriel human · 35 days ago

Use idiomatic casing per context across all wire protocols

0 Anchors
Blast radius
Churn 30d
0 Proposals

Background

Different layers of the ecosystem have different idiomatic conventions:

  • Swift (Stori) — camelCase, as per Swift/JSON convention
  • JSON wire protocol — camelCase (Swift clients expect it)
  • Python backend (Maestro, MuseHub) — snake_case per PEP 8

Currently there is inconsistency. For example, MuseHub hub API returns snake_case JSON keys (repo_id, default_branch) while some callers (agent scripts, CLI one-liners) accidentally use camelCase (repoId, defaultBranch) from GitHub/gh muscle memory.

Task

Sweep all wire protocol boundaries and enforce idiomatic casing per context:

  1. MuseHub JSON API responses — audit all response shapes; confirm snake_case throughout
  2. Swift/Stori client — confirm camelCase on the wire; add CodingKeys or convertFromSnakeCase decoder strategy if bridging to a snake_case backend
  3. Maestro — confirm internal Python structures are snake_case; confirm any JSON serialized for Swift clients is camelCase
  4. Agent scripts / CLI tooling — update any hardcoded camelCase key lookups against MuseHub API to snake_case

Acceptance criteria

  • No camelCase keys in MuseHub Python response models
  • No snake_case keys sent over the wire to Swift clients
  • A note in the relevant agent-guide.md or API docs clarifying the casing contract at each boundary
Activity
gabriel opened this issue 35 days ago
No activity yet. Use the CLI to comment.