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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions