Skip to content

Unify Skills, Plugins, and Automations in the Tools hub#407

Open
brsbl wants to merge 53 commits into
mainfrom
bb/skills-redesign
Open

Unify Skills, Plugins, and Automations in the Tools hub#407
brsbl wants to merge 53 commits into
mainfrom
bb/skills-redesign

Conversation

@brsbl

@brsbl brsbl commented Jun 26, 2026

Copy link
Copy Markdown
Collaborator

Summary

Builds a unified Tools hub for Skills, Plugins, and Automations, backed by shared resource-page primitives and end-to-end skill management. The branch also adds skills.sh discovery and installation, provider-aware skill and command autocomplete, shared composer infrastructure, and the remaining Loops-to-Automations product migration.

What changed

Unified Tools experience

  • Makes Skills the default /tools surface and keeps Plugins and Automations in the same navigation model, with a Tools sidebar entry, breadcrumbs, route coverage, and legacy redirects.
  • Uses shared overview, Browse shelf, toolbar, list-row, detail, state, and template-card components across all three resource types so their layout and interactions evolve together.
  • Adds consistent search, project and provider filters, sorting, full-row detail navigation, hover actions, responsive detail pages, and production-backed Ladle stories.

Skills and skills.sh

  • Discovers skills from bb, Claude Code, Codex, project, built-in, and plugin scopes through the host daemon and server APIs.
  • Adds Skills overview and detail flows with provider identity, rendered SKILL.md content, inline edit and delete actions for manageable bb skills, and editor opening.
  • Integrates the skills.sh registry with popular-skill Browse cards, pagination, install and star metadata, detail pages, and installation as manageable bb skills without removing the marketplace card.
  • Wires provider-aware skill and command autocomplete into new-thread, follow-up, and side-chat composers.

Plugins

  • Adds an installed Plugins overview backed by the existing plugin source of truth, including provider-contributed plugins, logos, capabilities, detail pages, and management actions.
  • Adds reusable plugin templates that open a seeded composer instead of creating immediately.
  • Keeps plugin discovery and ownership in the existing plugin contracts rather than introducing a parallel resource model.

Automations

  • Completes the user-facing Loops-to-Automations rename across navigation, composer affordances, timeline text, helpers, tests, and stories.
  • Keeps lifecycle and execution in the built-in Automations plugin while adding shared overview and detail UI, editing, run history, project filtering, templates, and legacy route redirects.
  • Aligns Automations with the same resource system used by Skills and Plugins without moving plugin-owned policy into the app.

Platform and shared infrastructure

  • Adds host, server, and contract support for skill discovery, content reads, updates, deletion, registry installation, cache invalidation, and timeline operation projection.
  • Extracts the shared composer area used by root compose, thread follow-up, and side chat, including draft persistence, attachments, mentions, provider actions, and command typeahead.
  • Expands shared UI and icon primitives plus story coverage for the unified resource system.

Review focus

  • Skill scope and ownership mapping, including safe filesystem boundaries for listing, reading, writing, deleting, and installing skills.
  • Shared overview abstractions across app-owned Skills and Plugins and plugin-owned Automations.
  • Composer trigger and typeahead behavior across providers and environment-scoped command discovery.
  • Route compatibility and redirects from legacy Skills, Loops, and Automations paths.

Validation

  • pnpm exec turbo run typecheck --filter=@bb/app --filter=@bb/shared-ui --filter=bb-plugin-automations
  • pnpm exec vitest run --config vitest.config.ts src/components/create-via-prompt-examples.test.ts src/views/SkillsView.test.tsx src/views/ToolsView.test.tsx (19 tests)
  • pnpm exec vitest run --config vitest.config.ts in plugins/automations (19 tests)
  • Broader server, contract, thread-view, plugin-registry, and packaging checks recorded on the PR have also passed.

Notes

  • Automations lifecycle and execution remain owned by the built-in Automations plugin; the app provides coherent navigation and shared presentation around that surface.
  • Skills installed from skills.sh become bb-owned skills so users can manage them in bb after installation.

brsbl and others added 2 commits July 2, 2026 14:21
A Skills library — a provider-grouped, searchable list of every skill agents can
run — with the backend (host.list_skills / write_skill / delete_skill + the
skill-listing service) and a SkillsView.

The detail popup renders SKILL.md through the app's real file viewer
(FilePreview): markdown, frontmatter metadata, code blocks, GFM tables. A single
overflow menu by the title (Edit / Open in editor / Delete); editing happens
inline with Cancel/Save in a modal footer. Quiet page-description caption,
pointer cursors on the rows and the dialog close, and a recoverable error state
(Couldn't load skills. + Retry).

Scoped to the Skills page only; the Loops/Automations redesign, the agent-loop
edit composer, and the created-loop timeline notice land in later commits.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Loops (Automations) UI:
- Overview: status-only 2-line rows (name / schedule) with a left last-run glyph,
  hover-revealed Run/Edit/Delete actions with tooltips, and a docked read-only
  detail pane on row click
- Detail: editing moved to the roomy full-page route (pane navigates there),
  Configuration/Run-history visual hierarchy pass, monochrome auto-archive
  checkbox, reuse of the sidebar thread-status glyphs for run history, canonical
  environment labels/icons, tighter action menu, "Loops" back link
- Drop the never-emitted `skipped` run state from the UI (kept in the domain type)
- Comprehensive stories + tests across run states, config options, and editing

Composer: extract useComposerArea, shared by RootCompose, thread detail, and the
Loops agent editor; related prompt-draft / thread-creation hooks and drawer tweaks.

Also includes in-progress thread-timeline / operation-message changes and
server-side automation route + scheduling updates present in the working tree.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@brsbl brsbl force-pushed the bb/skills-redesign branch from 7d284d9 to 328262b Compare July 2, 2026 21:46
@brsbl brsbl changed the title Redesign the Skills page Add Skills library and redesign Loops automations Jul 3, 2026
@brsbl brsbl changed the title Add Skills library and redesign Loops automations Add Tools hub, Skills library, and plugin-aware Automations Jul 7, 2026
@brsbl brsbl force-pushed the bb/skills-redesign branch from 30a03b0 to 269bba2 Compare July 7, 2026 23:07
brsbl added 27 commits July 9, 2026 11:37
…edback

# Conflicts:
#	apps/app/src/App.tsx
#	apps/app/src/components/layout/AppLayout.tsx
#	apps/app/src/components/promptbox/PromptBoxInternal.test.tsx
#	apps/app/src/components/settings/PluginsSettingsSection.test.tsx
#	apps/app/src/components/settings/PluginsSettingsSection.tsx
#	apps/app/src/components/sidebar/AppSidebar.tsx
#	apps/app/src/hooks/queries/plugin-settings-queries.ts
#	apps/app/src/lib/route-paths.ts
#	apps/server/src/server.ts
#	apps/server/src/services/plugins/plugin-service.ts
#	packages/host-daemon-contract/test/contract.test.ts
#	packages/plugin-registry/r/icon.json
#	packages/plugin-sdk/src/app-contract.ts
#	packages/plugin-sdk/src/testing/app.tsx
#	packages/shared-ui/src/components/ui/icon.tsx
#	packages/templates/src/generated/plugin-sdk-dts.generated.ts
#	packages/templates/src/generated/plugin-starter-files.generated.ts
…edback

# Conflicts:
#	apps/app/src/components/promptbox/PromptBoxActionsMenu.test.tsx
#	apps/app/src/components/promptbox/PromptBoxInternal.test.tsx
#	apps/app/src/components/promptbox/mentions/prompt-mention-display.test.ts
#	apps/app/src/components/secondary-panel/SideChatTabContent.test.tsx
#	apps/app/src/components/settings/PluginsSettingsSection.test.tsx
#	apps/app/src/components/sidebar/AppSidebar.tsx
#	apps/app/src/lib/route-paths.test.ts
#	packages/plugin-sdk/src/testing/__tests__/app-harness.test.tsx
#	packages/templates/src/generated/plugin-starter-files.generated.ts
…edback

# Conflicts:
#	packages/templates/src/generated/plugin-sdk-dts.generated.ts
@brsbl brsbl changed the title Add Tools hub, Skills library, and plugin-aware Automations Unify Skills, Plugins, and Automations in the Tools hub Jul 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant