Skip to content

redesign skills library#8868

Merged
lifeizhou-ap merged 10 commits intomainfrom
morganm/skills-redesign
Apr 28, 2026
Merged

redesign skills library#8868
lifeizhou-ap merged 10 commits intomainfrom
morganm/skills-redesign

Conversation

@morgmart
Copy link
Copy Markdown
Collaborator

@morgmart morgmart commented Apr 27, 2026

Category: improvement
User Impact: Users can browse skills in a richer library with project-aware filtering, category grouping, and a detail view.
Problem: The skills view was a flat list that did not clearly show where skills came from, how to inspect them, or how project skills related to saved Goose projects. It also needed review cleanup so chat-only affordances did not appear before their behavior is wired and skill counts localize correctly.
Solution: This PR redesigns the skills library around categorized sections, project/source filters, a dedicated detail page, and ACP-backed project skill discovery. It also adds shared layout primitives needed by the new view, while leaving repo-level skill bundles out of this PR.

File changes

crates/goose/src/sources.rs
Adds project-aware source handling so Goose can list and operate on project skills in addition to global skills.

ui/goose2/src/features/skills/api/skills.ts
Expands the skills API model with stable ids, directory paths, source metadata, project links, and global/project options for update, delete, and export flows.

ui/goose2/src/features/skills/api/skills.test.ts
Covers project skill aggregation, deduping, and legacy .goose project skill path handling.

ui/goose2/src/features/skills/lib/skillCategories.ts
Adds category inference so skills can be grouped and filtered by likely task type.

ui/goose2/src/features/skills/lib/skillsHelpers.ts
Adds shared helpers for project filters, category filters, skill sorting, and export download behavior.

ui/goose2/src/features/skills/ui/SkillsView.tsx
Rebuilds the skills library with source/project/category filters, search, grouped sections, detail navigation, and project-aware edit/delete/export behavior.

ui/goose2/src/features/skills/ui/SkillsListSections.tsx
Adds the sectioned list UI with accessible sibling click targets for row details and chat actions, plus localized skill counts.

ui/goose2/src/features/skills/ui/SkillDetailPage.tsx
Adds the skill detail page with metadata, instructions, source location, and available actions.

ui/goose2/src/features/skills/ui/SkillsDialogs.tsx
Extracts the skills dialog orchestration from the main view.

ui/goose2/src/features/skills/ui/SkillsEmptyState.tsx
Adds focused empty and no-result states for the redesigned list.

ui/goose2/src/features/skills/ui/CreateSkillDialog.tsx
Passes global/project context when editing an existing skill.

ui/goose2/src/features/skills/ui/tests/SkillsView.test.tsx
Updates coverage for the redesigned skills view, project filters, category filtering, detail navigation, and delete confirmation.

ui/goose2/src/features/skills/ui/tests/CreateSkillDialog.test.tsx
Updates edit expectations for the new skill location options.

ui/goose2/tests/e2e/skills.spec.ts
Updates the skills end-to-end coverage for the redesigned flows.

ui/goose2/tests/e2e/fixtures/mock-data.ts
Updates mocked data for project-linked skills.

ui/goose2/tests/e2e/fixtures/tauri-mock.ts
Updates the Tauri mock for the new skills API behavior.

ui/goose2/src/shared/i18n/locales/en/skills.json
Adds English strings for the redesigned skills UI, including pluralized skill counts.

ui/goose2/src/shared/i18n/locales/es/skills.json
Adds Spanish strings for the redesigned skills UI, including pluralized skill counts.

ui/goose2/src/shared/ui/page-shell.tsx
Adds reusable page shell/header primitives for detail-style Goose 2 pages.

ui/goose2/src/shared/ui/page-columns.tsx
Adds reusable resizable page columns for detail layouts.

ui/goose2/src/shared/ui/page-columns.test.tsx
Covers the page columns behavior.

ui/goose2/src/shared/ui/detail-field.tsx
Adds a small detail metadata primitive used by the skills detail page.

ui/goose2/src/shared/ui/accordion.tsx
Extends accordion primitives for the sectioned skills list.

ui/goose2/src/shared/ui/button.tsx
Extends button variants and sizing for the redesigned controls.

ui/goose2/src/shared/ui/button.test.tsx
Covers button behavior added for the new variants.

ui/goose2/src/shared/ui/SearchBar.tsx
Updates the shared search input behavior and styling used by the skills view.

ui/goose2/src/shared/ui/input.tsx
Adjusts shared input styling for the updated search/filter controls.

ui/goose2/src/shared/ui/MainPanelLayout.tsx
Adjusts panel layout support for the redesigned skills surface.

ui/goose2/src/shared/ui/resizable.tsx
Updates the resizable primitive used by the detail columns.

ui/goose2/src/shared/styles/globals.css
Adds global styling utilities used by the redesigned page transitions and layout.

ui/goose2/scripts/check-file-sizes.mjs
Allows the redesigned skills view while the main list/detail state is still centralized.

ui/goose2/src/features/agents/ui/PersonaDetails.tsx
Aligns persona detail styling with the shared page/detail primitives.

Reproduction Steps

  1. Open Goose 2 and navigate to Skills.
  2. Confirm skills are grouped into sections, with search plus source, project, and category filters.
  3. Select a skill row and confirm the detail page shows source, location, category, file path, and instructions.
  4. For a project skill, confirm edit/delete/export calls preserve project context.
  5. Confirm the section counts are localized through i18n and the chat affordance is hidden unless a chat handler is wired.

Screenshots/Demos

Not included in this pass; the branch was validated with local checks and targeted skills tests.

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 8aa2038872

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread ui/goose2/src/features/skills/api/skills.ts Outdated
Comment thread ui/goose2/src/features/skills/ui/SkillDetailPage.tsx Outdated
Reapplies the skills page redesign on top of the ACP-based sources
backend. The redesign was originally built against the legacy Tauri
`skills.rs` commands; this rewires it to `_goose/sources/*` and derives
`SkillInfo` (id, sourceKind, sourceLabel, projectLinks) from the
`SourceEntry { name, description, content, directory, global }` shape
the new backend exposes.

Highlights:
- New skills page with header, search, project/global filter chips, and
  accordion-grouped list with hover affordance to start a chat.
- Dedicated detail subpage per skill showing source, location, file
  path, and instructions.
- Adds `PageShell`/`DetailPageShell`/`PageHeader`/`FilterRow` shared
  layout primitives, an `AccordionSectionTrigger`, an `inline-subtle`
  button variant, `--border-soft(-divider)` tokens, and the
  `accordion-content-open/close` keyframes the redesign relies on.
- `updateSkill`/`deleteSkill`/`exportSkill` now thread `{ global,
  projectDir }` so project-scoped skills can be operated on.
- Drops UI for fields the new backend does not expose
  (supportingFiles, symlinkedLocations, duplicateNameCount).
- SkillsView is split into SkillDetailPage, SkillsListSections,
  SkillsEmptyState, SkillsDialogs, and a `lib/skillsHelpers.ts` to
  stay under the 500-line file size limit.
- Updates unit tests, e2e fixtures, and the e2e spec to match the new
  flow.
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 5221ae2401

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread crates/goose/src/sources.rs Outdated
Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
@morgmart morgmart force-pushed the morganm/skills-redesign branch from 5221ae2 to 6385379 Compare April 27, 2026 20:56
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 6385379362

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread ui/goose2/src/features/skills/api/skills.ts
Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 44eebce915

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread ui/goose2/src/features/skills/ui/SkillsView.tsx
Comment thread ui/goose2/src/features/skills/ui/SkillsView.tsx Outdated
Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
Bojun-Vvibe added a commit to Bojun-Vvibe/oss-contributions that referenced this pull request Apr 27, 2026
…merge-after-nits; docs: INDEX +8 PRs (drip-123)
Copy link
Copy Markdown
Collaborator

@lifeizhou-ap lifeizhou-ap left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved this PR for now. I'll create a followup PR for code refinement

@lifeizhou-ap lifeizhou-ap added this pull request to the merge queue Apr 28, 2026
Merged via the queue into main with commit b35eaf4 Apr 28, 2026
22 of 26 checks passed
@lifeizhou-ap lifeizhou-ap deleted the morganm/skills-redesign branch April 28, 2026 07:12
DOsinga pushed a commit that referenced this pull request Apr 30, 2026
…esign

Merges main's path-based source addressing (#8731), redesigned skills library
(#8868), and 70+ other commits while preserving the projects-as-sources work.

Backend:
- SourceType gains Project alongside main's Skill/BuiltinSkill/Recipe/Subrecipe/Agent
- SourceEntry.directory renamed to .path so the field name matches its role
  (a stable path identifier passed back to update/delete/export, regardless
  of whether the underlying entity is a directory or file)
- SourceEntry.properties (free-form metadata bag) coexists with main's
  supporting_files
- ListSourcesRequest.include_project_sources scans every known project's
  workingDirs and tags resulting skills with projectName/projectDir
- CreateSourceRequest.project_id resolves to the project's first workingDir
- Projects stored as <dataDir>/projects/<slug>.md flat-file frontmatter
- read_project / project_working_dirs helpers used by agent.rs to inject
  project instructions into the system prompt
- Drops our SetSessionProjectRequest in favor of main's identical
  UpdateSessionProjectRequest (_goose/session/update_project)

Frontend:
- features/projects/api/projects.ts rewritten on the typed SDK; ProjectInfo
  loses createdAt/updatedAt/artifactsDir, gains path
- Skills API uses main's typed GooseSourcesCreate/List/Update/Delete/Export/
  Import calls. toSkillInfo prefers backend-provided properties.projectName/
  projectDir tags over path-derived guesses
- CreateSkillDialog keeps our save-location picker (Global vs each project)
  on top of main's redesigned UI; edits use path-based addressing
- SkillsView takes main's redesigned filter row + sectioned list rendering
- AppShell drops the old inline-type adapter
- Removes ui/goose2/src-tauri/src/commands/projects.rs (508 lines) and its
  9 Tauri command registrations; main's project_icons.rs (filesystem icon
  scanning, a real shell concern) is kept

Verification: cargo test -p goose passes (incl. 17 sources tests, 2 new
project ones); cargo clippy clean; pnpm tsc clean; pnpm test 538/538;
pnpm check clean.
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.

2 participants