You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
plugin.json's nav.screen/nav.icon fields are dead config #21
plugin.json's documented nav object includes a screen field (CLAUDE.md example: "nav": { "label": "My Plugin", "screen": "plugin-my_plugin" }), but the frontend never reads it. The nav dropdown builder in static/app.js hardcodes:
screenId="plugin-"+plugin.id
regardless of whatever nav.screen a plugin declares. Similarly, at least one plugin (multiplayer in slopsmith-stems) sets an undocumented nav.icon field that also has no consumer anywhere in app.js.
Evidence of confusion this causes
Across the plugin ecosystem, authors keep populating nav.screen inconsistently despite it doing nothing:
slopsmith-plugin-editor sets "screen": "editor"
slopsmith-plugin-tabimport sets "screen": "tab-import", which doesn't even match its own plugin id (tab_import)
slopsmith-plugin-rooms omits screen entirely
Since the field is silently ignored, none of this affects runtime behavior today — but it's actively misleading documentation, and plugin authors are cargo-culting a value that does nothing.
Ask
Either:
Wire nav.screen (and drop or formally support nav.icon) into the dropdown builder so plugin authors can actually control their nav entry's screen id, or
Remove nav.screen from the documented manifest schema in CLAUDE.md and note it's derived automatically from plugin.id, so authors stop setting a value with no effect.
Option 2 is probably the safer/simpler fix given no plugin currently depends on nav.screen being anything other than "plugin-" + id.
Activity
docs: remove misleading nav.screen/nav.icon from plugin manifest docs
fix: remove misleading nav.screen/nav.icon from plugin manifest docs
core: remove misleading nav.screen/nav.icon from plugin manifest docs