catalog / libraries

Shell (TS workbench)

Reusable VS Code-style shell: activity bar, sidebars, toolbar, status bar, toasts.

22 capabilities 4 sections extracted from Shell (TS workbench) source: D:\Dev\TS\Shell

Build against it

# give your agent the catalog — no account, no install
claude mcp add provespec -- npx -y provespec-mcp

# then, from any agent session
spec_get(slug: "shell-workbench")                → the capability tree
spec_checklist(slug: "shell-workbench")          → the questions to answer
spec_grade(slug: "shell-workbench", grades: [...])  → parity % + the gap list

# or just fetch it
curl https://provespec.com/catalog/shell-workbench/spec.json

Grade every capability below as yes · partial · no · na, with a file reference as evidence. Whatever you leave ungraded counts as missing — the gap list is the work queue.

Or just paste this to your agent

Use the ProveSpec MCP server. Fetch the "shell-workbench" spec with
spec_get, then walk spec_checklist and grade this repository against it —
one verdict per capability, each with a file reference as the note.
Call spec_grade with the results and give me the gap list as the plan.

If the server is not registered, add it first:
  claude mcp add provespec -- npx -y provespec-mcp

The specification

Components 9

  • Workbench layout host components/AppLayout.tsx: toolbar, activity bar, 3 panels, editor, status bar
  • Activity bar components/ActivityBar.tsx; hidden activities supported
  • Primary/secondary sidebars PrimarySidebar/SecondarySidebar.tsx; per-view title bar + Actions slot
  • Bottom panel with tabs BottomPanel.tsx + registerShellBottomTab
  • Status bar with contributed items left/right StatusBar.tsx + registerShellStatusBarItem
  • Toolbar with app slots Toolbar.tsx; left/right item registries, IconButton
  • Panel resize dividers PanelDivider.tsx; bounds in layoutStore
  • Toast notifications 4 types ToastViewport + toastStore; duration<=0 = sticky
  • Log tab cap 500 LogTab + logStore, pushLog(level, source, message)

State & persistence 5

  • Activity registry + persisted selection stores/activityStore.ts; lazy persisted read after initShell
  • Layout state + hydrate stores/layoutStore.ts: panel sizes/toggles, zoom, hydrate()
  • Prefixed localStorage persistence storagePrefix persistence.ts codecs; config.ts initShell
  • App name store stores/appNameStore.ts, setAppName
  • UI preferences store stores/uiPrefsStore.ts

Extensibility API 3

  • Activity contract types.ts: Editor, views(primary/secondary), toolbarItems, statusBarItems, bottomTabs, hidden
  • Shell-level contribution registries hooks.ts: bottom tabs, status items, toolbar left/right, account slot
  • Settings sections registry registerSettingsSection: group/order/subtitle/Nav/Details/tree/fullBleed

Settings & theming 5

  • Shell-owned Settings activity settings/SettingsActivity.tsx + shellSections
  • Appearance element editor settings/appearance/*: element tree, tokens, per-element style vars
  • Theme, accent, zoom, typography dark/light theme.ts: applyTheme/applyAccent/applyZoom/applyFontSize/applyFontFamily
  • CSS-var theming contract styles.ts recipes (CHROME_CONTROL, BTN_*, TREE_ROW_*) over host vars --bg-*/--fg-*/--accent
  • Keyboard shortcuts Ctrl+B/Alt+B/Ctrl+J, zoom AppLayout.tsx key handler
Download spec.json All 53 specs