Skip to content

Surface synced catalogs that have no UI consumer yet #10

@samkeen

Description

@samkeen

Background

The catalog harness now syncs eight upstream JSON artifacts into catalog/*.json, all wired through the read_catalog Tauri command:

Catalog Records UI consumer today
settings.json many ✅ Inspector rows + drawer header (description / type / default)
env-vars.json 220 ✅ EnvVarsPanel + drawer cross-ref for env.<VAR>
permissions.json 6 modes ✅ Drawer value-conditional annotation for permissions.defaultMode
hooks.json events + handlers + per-event schemas + commonInput ❌ none
mcp.json 3 scopes ❌ none (managed-mcp pill exists but doesn't read mcp.scopes)
sub-agents.json 16 frontmatter fields ❌ none
keybindings.json 20 contexts ❌ none
cli-reference.json 20 commands + 63 flags ❌ none

Five catalogs sync on the cron and round-trip through read_catalog but never reach the user. A demo-day question — "you sync the keybindings catalog, where do I see it?" — has no good answer today.

Tracking, not a single piece of work

This is an umbrella for several distinct UI surfaces. Each catalog has its own natural shape and shouldn't be jammed into a one-size-fits-all view:

hooks.json (highest-value next)

The hooks.events array is already the load-bearing target for the next drawer cross-reference (already in roadmap Next-up candidates + Inspector polish § Open work). That work covers hooks.<EventName> rows in the inspector — but the catalog also carries handlers (5 handler types with their fields), commonInput (8 shared fields), and per-event inputFields / inputExample / outputFields. None of that surfaces yet.

Likely shape: extend the existing drawer plan to include a collapsible "event detail" section, plus a top-level Hooks reference panel reachable from the topbar (modeled on HelpView / ErrorPanel / EnvVarsPanel).

mcp.json (lower-bar follow-up)

The 3-record scopes array (Local / Project / User, each with loadsIn / shared / storedIn) is already called out in roadmap as a candidate enrichment for the existing managed-mcp pill (tooltip / popover). Smaller surface — pick up only if there's a clear UX win.

cli-reference.json (load-bearing for the deferred CLI layer)

The 20 commands + 63 flags catalog is parked for the deferred "CLI layer via process argv" plan — each documented flag is a candidate input the eventual flag-name → settings-key mapping will draw on (parallel to catalog/env-settings-map.json). Likely no standalone UI consumer until the CLI layer ships; a reference panel similar to EnvVarsPanel is one option but probably premature.

keybindings.json

The 20 contexts enumerate every value the context field accepts inside a bindings block of ~/.claude/keybindings.json. The natural consumer is a drawer cross-reference for ~/.claude/keybindings.json entries — but knobs.cc doesn't read keybindings.json today (only settings.json layers), so a UI consumer requires a new read path first.

sub-agents.json

The 16 frontmatter fields enumerate what's accepted in a sub-agent definition file. Same situation as keybindings: knobs.cc doesn't enumerate sub-agent files, so a UI consumer requires a new read surface.

Ask

Decide per-catalog: ship a UI consumer (and what shape), or de-scope the catalog from cron sync until a consumer exists. The current state — "sync but don't consume" — costs maintenance (cron CI runs, occasional drift PRs, schema rot) without paying users back.

Recommended starting move: pick hooks.json first (already on the roadmap) and mcp.json second (smallest surface). Defer cli-reference to the deferred CLI layer plan. For keybindings and sub-agents, decide whether to add the prerequisite read paths or de-scope the catalogs.

Related

  • spec/roadmap.md § "Catalog sync" (shipped catalogs) and § "Inspector polish — Open work" (the hooks drawer plan + the managed-mcp pill enrichment).
  • Deferred CLI layer plan: ~/.claude/plans/1-is-interesting-did-steady-seahorse.md.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions