Conversation
On every turn, the analyst detects skill references in the prompt (<chat-reference>type="skill" skill="..."</chat-reference>) and pre-invokes load_skill once per distinct referenced skill that exists and applies to the analyst, before the model's turn. Unknown skills and skills for other agents are ignored; always-apply skills already pre-loaded on the first turn aren't loaded again. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Typing "/" in an analyst chat (project, dashboard, and embed) opens a picker listing the project's Skill resources that apply to the analyst, showing name and description. Picking one writes a <chat-reference>type="skill" skill="..."</chat-reference> tag into the prompt text -- the same tag the runtime resolves via load_skill -- and it renders as a chip both while typing and when the conversation is reloaded. A dedicated / button next to the existing @ button opens the same picker, adding a space first when the cursor sits right after a word. The "/" trigger is a second suggestion on the same Mention node as "@", so both share the parsing and serialization of chat-reference tags, the two pickers never open at once, and both follow Suggestion's default prefixes: a slash inside a word, as in a date or a path, stays text. The context picker takes the source of its options and whether several are picked, so the skills picker reuses it as a single-choice list. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
nishantmonu51
self-requested a review
September 17, 2026 08:57
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Hey @nishantmonu51,
We were working on a similar feature, but your approach in #9851 is better integrated with the developer agent, so we'd like to contribute this piece on top of it: letting the user explicitly invoke a Skill from the chat. Feel free to modify, adapt or discard it, or suggest changes.
/in an analyst chat opens a picker with the project's Skills whoseagentsincludeanalyst. A/button next to@opens it too./is a second suggestion on the same Mention node as@, so both share serialization.<chat-reference>type="skill" skill="…"</chat-reference>into the prompt, the same tag@already writes for other reference kinds, so it renders as a chip while typing and when the conversation is reloaded.AnalystAgentscans each prompt for skill references and callsload_skillonce per referenced skill before the model's turn, skipping unknown skills, skills that don't apply to the analyst, and skills already loaded in the conversation.load_skillpath the model already uses, instead of depending on the model to honor the reference.referencedSkillsinruntime/ai/skill_references.go). We kept the reference in the prompt because that is what gets persisted and re-rendered as a chip, but if you'd rather have it as an explicit field onAnalystAgentContext, or want<chat-reference>specified as a shared format with the Go parser as its reference implementation, we're happy to change it.Developed in collaboration with Claude Code