Skip to content

fix(registry): render Skill file deep links - #338

Merged
harlan-zw merged 1 commit into
mainfrom
fix/skill-file-deep-links
Sep 30, 2026
Merged

harlan-zw merged 1 commit into
mainfrom
fix/skill-file-deep-links

Conversation

@harlan-zw

Copy link
Copy Markdown
Collaborator

❓ Type of change

  • 🐞 Bug fix

📚 Description

Direct links to Skill files were dead. /gh/anthropics/skills/pdf/-/LICENSE.txt rendered the whole Skill page, and /-/reference.md came back as the Skill page in Markdown, with canonical /-/reference.

Two causes:

  • [name].vue sat beside a [name]/ folder, so Nuxt nested the file view under it. It never rendered a <NuxtPage>, so the file view never showed. /me had the same bug before. The page is [name]/index.vue now.
  • nuxt-ai-ready treats any .md URL as the Markdown twin of the page without .md. Skill file URLs now carry its internal header, so it steps aside and the file view renders.

The file tree only looked like it worked. Its router link pushed /-/<file> before the click handler swapped the document in place, and the nested route hid that push. With sibling routes the click would leave the Skill page, so the tree link is a plain anchor now.

Loose ends:

  • The internal header is the only opt-out nuxt-ai-ready has. A per-route exclude upstream would be cleaner. Worth adding?
  • A file without an extension, such as /-/LICENSE, still gets Link: rel="alternate" to /-/LICENSE.md. That opens the file view for a file that does not exist.
  • The URL no longer changes when you open a file from the tree. It used to change to a link that was broken when shared.

Skill file requests after this change: the new middleware lets Skill file URLs past nuxt-ai-ready, and the file view is a sibling route of the Skill page

🤖 AI disclosure: Harlan Agent Kit modified this description. My AI open-source policy.

`[name].vue` sat beside a `[name]/` folder, so Nuxt made it the parent
route of `[name]/-/[...file].vue`. It has no `<NuxtPage>`, so every direct
link to a Skill file rendered the whole Skill page. Moving it to
`[name]/index.vue` makes the two pages siblings.

nuxt-ai-ready also claims every `.md` URL as a page's Markdown twin, so
`/-/reference.md` came back as the Skill page in Markdown. Skill file URLs
now bypass it and content negotiation, since the file is the content.

The file tree used a router link that pushed `/-/<file>`. The nested
route hid that push, so the click looked like an in-place swap. With
sibling routes it would leave the Skill page, so the tree link is a
plain anchor now.

The routing test resolves every page file through unrouting, so a page
nested under a parent without `<NuxtPage>` fails it. `/me` hit the same
bug before.
@harlan-zw harlan-zw added the harlan-agent-review Pull request triage requires an adversarial Review. Adding this label manually always forces one. label Sep 30, 2026
@harlan-github-agent harlan-github-agent Bot added harlan-agent-review-required Pull request triage requires an adversarial Review for this head commit. and removed harlan-agent-review Pull request triage requires an adversarial Review. Adding this label manually always forces one. labels Sep 30, 2026
@harlan-zw

Copy link
Copy Markdown
Collaborator Author

Checked by hand, since CI does not run the e2e suite:

  • test/e2e/skill-file-deep-link.spec.ts failed on the base build: all three URLs had the title pdf by anthropics · skilld. It passes on this branch.
  • On a local Worker build, /-/BENCHMARKS.md, /-/benchmarks/README.md and /-/agents/codex.yaml return the file view HTML. /gh/ehmo/slopkit/slopbeth.md still returns the Skill as Markdown.
  • In the browser, a tree click on the Skill page swaps the document in place and keeps the Skill URL. "Back to slopbeth" returns to the Skill page.
  • The og-image and sitemap e2e specs fail the same 8 tests on the base build, so those failures predate this change.
Direct link to /-/BENCHMARKS.md Tree click on the Skill page
File view Tree swap

@harlan-github-agent harlan-github-agent Bot added the harlan-agent-running An Agent holds a Task on this issue or pull request right now. label Sep 30, 2026
@harlan-github-agent

harlan-github-agent Bot commented Sep 30, 2026 •

Copy link
Copy Markdown
Contributor

🤖 MERGED

Harlan Agent Kit posted this automated review. It is not Harlan's personal review or approval. AI open source policy. Last updated: 2026-09-30 15:23 UTC.

GitHub merged this pull request.

  • Logged (12/100): The site advertises markdown twins for extensionless skill files, and those URLs now return a 200 HTML error page. View code
    • Ask an agent to verify and fix this finding
  • Logged (18/100): Opening a file from the Skill file tree no longer updates the URL or history, so the viewed file cannot be shared, refreshed, or back-navigated. View code
    • Ask an agent to verify and fix this finding

eafd9697-b0b2-47cf-93a2-7447790a53e6

Selected findings run after merge and open separate pull requests.

@harlan-github-agent harlan-github-agent Bot added harlan-agent-ready The automated Review passed every gate on this head commit. and removed harlan-agent-running An Agent holds a Task on this issue or pull request right now. harlan-agent-review-required Pull request triage requires an adversarial Review for this head commit. labels Sep 30, 2026
@harlan-zw
harlan-zw merged commit c822aa8 into main Sep 30, 2026
6 checks passed
@harlan-github-agent harlan-github-agent Bot removed the harlan-agent-ready The automated Review passed every gate on this head commit. label Sep 30, 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