Skip to content

Add an Open in Claude split button to the page actions - #3350

Merged
enf0rc3 merged 1 commit into
mainfrom
wl/open-in-llm
Aug 13, 2026
Merged

Add an Open in Claude split button to the page actions#3350
enf0rc3 merged 1 commit into
mainfrom
wl/open-in-llm

Conversation

@enf0rc3

@enf0rc3 enf0rc3 commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

Adds an Open in Claude split button to the page actions row, between Copy as markdown and Edit on GitHub, per the Figma ordering.

Implements the Open in LLM design, using the SplitButton component from #3340.

Replaces #3330, which carried stack metadata from when it was based on wl/split-button. Same branch, same commit, no content change.

The primary half opens Claude with a prompt pointing at the page's .md URL. The caret opens a menu with Open in Claude and Open in ChatGPT, as link-styled rows with a provider logo and an external-link icon. The prompt carries an absolute URL, because the assistant fetches the page itself rather than following a link from this site.

Gemini is deliberately absent: gemini.google.com ignores prompt parameters, so the entry could only prefill by pointing at AI Studio, which is not where "Open in Gemini" says it is going.

Four files, additions only — the component, its strings, one line in the layout, and its tests. The icons and getPageMarkdownPath() both come from what has already landed.

Carried over from #3330: the per-component icon masks here would be better as a global icons.css, deliberately left for a follow-up.

Testing

Clean astro build, 2674 pages, 1253 .md emitted. 36 passed across open-in-llm, split-button, copy-button and llm-endpoints. Playwright is not wired into CI, so that is a local run.

The positioning tests wait for the menu's open animation to settle, the same way split-button.spec.ts does — measured mid-animation the icon box reads 12x9 rather than the 16x16 it lands on.

Measured where the menu ends up, to confirm those tests hold something down:

viewport menu opens towards
1200 641–834 start edge
700 321–514 start edge
430 159–353 flips to the end edge

430 is where the row wraps and the fallback fires, which is the case split-button.spec.ts could not reach on its own: the component gallery gives the control room on both sides at every width.

🤖 Generated with Claude Code

The primary half opens Claude with a prompt pointing at the page's .md URL. The
caret opens a menu with Open in Claude and Open in ChatGPT. It is the
SplitButton component, so the halves, divider, menu and positioning come from
there.

Gemini is absent because gemini.google.com ignores prompt parameters, so the
entry could only prefill by pointing at AI Studio, which is not where "Open in
Gemini" says it is going.

The prompt carries an absolute URL, because the assistant fetches the page
itself rather than following a link from this site.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@team-marketing-branch-protections

Copy link
Copy Markdown

Pull request environment is available at https://stoctodocspr3350.z22.web.core.windows.net.

You can view the ephemeral environment status in Octopus Deploy.

This environment will be automatically deprovisioned when the pull request is closed, or after 7 days of inactivity.

@enf0rc3
enf0rc3 marked this pull request as ready for review August 13, 2026 05:23

@rosslovas rosslovas left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Looks good! In the design it looks like the full non-compact menu, I'm assuming you've chosen to go with compact deliberately

@enf0rc3
enf0rc3 merged commit e36c8b1 into main Aug 13, 2026
13 checks passed
@enf0rc3
enf0rc3 deleted the wl/open-in-llm branch August 13, 2026 19:57
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.

3 participants