Commit b08c94e
Jminnetian/askskills (#1410)
* Update schema to support the foundation for skills, both personal and for the organization
* Add initial UI and actions to support personal skills
* support unsaved changes loss guard, work in progress
* Add Ask command suggestions for personal skills
* feat: add slash command argument substitution
* refactor: model agent skill scope explicitly
* Add org skill adoption commands
Any org member can create a skill into the shared workspace catalog; members opt in by adopting it, while only owners can feature or auto-enroll a skill for everyone. Personal and org skills may share a slug since commands resolve by source and id, so duplicates from different sources coexist.
* Add org skill settings UI
* Add workspace skill management UI
* Add file mentions to skill instructions
* feat(web): auto-invoke agent skills in Ask via load_skill tool
The Ask model can now discover opt-in skills from an <agent_skills> catalog
in the system prompt and load their instructions on demand through a single
load_skill tool, reusing the existing auth-scope helpers and argument
substitution. Auto-invocation is gated per skill by a new autoInvocationEnabled
flag and a global env kill-switch; manual slash-command invocation is unchanged.
* feat(web): render load_skill tool calls and harden auto-invocation
Surface load_skill tool calls in the Ask details card via a new tool-part
type and component so users can see which skill the model loaded and its
instructions. Also folds in review hardening: sanitize every skill catalog
field injected into the system prompt, make load_skill fail closed on
transient lookup errors, and consolidate the manual and auto skill catalogs
onto one shared query helper. Includes the migration for the
autoInvocationEnabled column.
* refactor(web): force skill auto-invocation, drop arguments, org-scope personal skills
Skills are now always model-invocable: removed the per-skill autoInvocationEnabled
flag, its UI toggle, and the env kill-switch. Skills no longer take arguments, so
the substitution engine and argumentNames are gone. Personal skills are bound to
the current org, and the ORG visibility is renamed to SHARED across schema, server,
and UI. The five skill migrations are collapsed into one.
* refactor(web): move Ask Sourcebot skills into a standalone Skills page
Extract personal and shared skill management out of the account Ask Sourcebot
settings into a routed /settings/skills two-pane page with inline editing. The
account page now manages connectors only; existing skill actions are reused,
with the shared catalog surfacing instructions and creator email for the detail view.
* update on skills editing ux
* refactor(web): UI improvements for the Ask skills page
Make the instructions editor flush with the name/command bars, let split view use the full pane, and keep the view toggle and counter stationary across mode switches. Replace the misleading Shared toggle on other members' shared skills with an enable toggle in the list, color the Auto/Featured badges instead of using icons, add a Skills entry to the chat + menu, and stop the table-of-contents focus ring from lingering after a click.
* refactor(web): remove the featured skills concept
Drop the `featured` flag entirely from agent skills: the schema column and shared-catalog index, the server selects/sort/flag-input schema, the Featured badge and admin toggle, and all related tests. Shared skills now sort by recency then name; the remaining auto-enroll flag is unchanged. Includes a migration dropping the column.
* fix(web): only show search mode tooltips when the dropdown is open
The Ask Sourcebot tooltip stayed permanently visible on the chat landing page because the search mode tooltips force their open state from the current mode. The recent tooltip Portal change let that force-open content escape the dropdown's DOM subtree. Gate the tooltips on the Select's open state so they only render while the dropdown is open.
* feat(web): import skills from markdown on the Skills page
The Skills page '+' now opens a menu offering manual create or import from markdown. Importing parses front matter for name, command, and description and the body for instructions, then drops into the create form pre-populated for review before saving.
* feat(web): import skills from an indexed repository
Adds an 'Import from repository' option to the Skills page '+' menu that browses your indexed repos, filters to markdown files, and populates the create form from the selected file's front matter and body. Reuses the existing markdown parser and create flow.
* feat(web): repo-synced agent skills with org sharing and access gating
Import a skill from an indexed repository file; its description and instructions stay synced to the file (refreshed via Update from source, keyed on the git blob OID) while name and command stay editable local labels. Synced skills can be published to the org and stay synced, and are exposed only to users who can access the source repo — across the command catalog, instruction materialization, load_skill, and the shared catalog.
* feat(web): overhaul shared-skills admin table and sharing UX
Replace the workspace shared-skills card list with a searchable, filterable table (Synced/Manual filter, Added by, Auto toggle), backed by source and creator fields on the management item. Sharing a synced skill now goes through a confirmation dialog warning about owner/member repo visibility, shown only when permission syncing is on. Add cross-navigation between the account and admin skill views, and drop the redundant Make personal menu item in favor of the Shared toggle.
* refactor(web): drop dead skill toggle and redundant delete guard
Remove the unused OrgSkillFlagToggle export (and its now-unused Switch import), which had no consumers after the shared-skills admin table redesign. Simplify the delete button's onClick, which is already disabled while a flag mutation is pending.
* Add changelog entry for Ask skills
* chore: regenerate OpenAPI spec
* fix: stabilize workspace skills management
* fix: refresh skills settings after mutations
* Squash agent skill migrations
* fix: escape agent skill catalog fields
* fix(web): preserve manual skill invocation source
* fix: remove made-personal skills from shared catalog
* fix(web): make unsaved changes bypass one-shot
* fix: center import repo dialog close button
* Track ask skill analytics events
* Strengthen skill analytics redaction test
* Address ask skill analytics feedback
* Address skill analytics feedback follow-ups
* Rename agent skills migration
* Improve skills editor guidance
* Extract chat agent tools
* Rename skill command server helper
* Refactor skills page components
* Remove redundant tooltip portal wrappers
TooltipContent now renders inside a portal itself, so the manual
TooltipPrimitive.Portal wrappers in upgradeBadge and membersTable
are redundant.
* Add client validation for skill forms
* Extract shared chat mention chip
* Make synced skills editable with warn-on-overwrite sync
Skill descriptions are now required everywhere. Synced skills' content is
fully editable; syncing (or force-syncing an up-to-date skill) warns only
when it would overwrite local edits, detected by diffing against the stored
imported blob rather than any new database state. Fields the source file
omits keep their local values, and repo imports now land in the prefilled
create form instead of creating directly.
* Add avatar to skill added-by metadata
* docs: add skills documentation images
* Move skill field guidance into placeholders
Fold the per-field help text into each input's placeholder and drop the
redundant description lines. Instructions guidance now covers both task
and knowledge skills.
* docs: update skills page screenshot
* fix(web): stabilize manual skill analytics
* refactor(web): standardize skills settings layout
* fix(web): prevent duplicate skill saves
* fix(web): scope shared skill sync status visibility
* fix padding
* docs: link Ask skills changelog entry to PR
---------
Co-authored-by: Jack Minnetian <270441393+BlueBottleLatte@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Brendan Kellam <brendan@sourcebot.dev>1 parent eeb9fd7 commit b08c94e
117 files changed
Lines changed: 13506 additions & 240 deletions
File tree
- docs
- api-reference
- docs/features/ask
- images
- packages
- db
- prisma
- migrations/20260706000100_add_agent_skills
- src
- web
- src
- app
- (app)
- @sidebar/components
- settingsSidebar
- askgh/[owner]/[repo]
- components
- chat
- [id]
- components
- components
- settings
- members
- skills
- workspaceAskAgent
- api
- (client)
- (server)/ee
- askmcp/configuration/[serverId]/tools
- chat
- skills/sourceStatus
- components/ui
- ee/features
- chat
- components
- chatThread
- tools
- mcp
- components
- skills
- components
- tools
- oauth
- features
- chat
- commands
- components
- chatBox
- git
- lib
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
25 | 25 | | |
26 | 26 | | |
27 | 27 | | |
| 28 | + | |
28 | 29 | | |
29 | 30 | | |
30 | 31 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
576 | 576 | | |
577 | 577 | | |
578 | 578 | | |
| 579 | + | |
| 580 | + | |
| 581 | + | |
579 | 582 | | |
580 | 583 | | |
581 | 584 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
66 | 66 | | |
67 | 67 | | |
68 | 68 | | |
| 69 | + | |
69 | 70 | | |
70 | 71 | | |
71 | 72 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
Loading
Loading
Loading
Loading
Loading
Loading
0 commit comments