Skip to content

feat(demos): add five demos and give each one an indexable page - #515

Merged
harlan-zw merged 2 commits into
mainfrom
feat/demo-pages
Oct 7, 2026
Merged

harlan-zw merged 2 commits into
mainfrom
feat/demo-pages

Conversation

@harlan-zw

Copy link
Copy Markdown
Collaborator

🔗 Linked issue

No linked issue.

❓ Type of change

  • 📖 Documentation
  • 🐞 Bug fix
  • 👌 Enhancement
  • ✨ New feature
  • 🧹 Chore
  • ⚠️ Breaking change

📚 Description

A demo had no URL of its own. A pick on /skills/demos wrote ?demo=owner/repo/name into the query, so search engines saw one page. No sitemap listed /skills/demos either, because the pages sitemap excludes /skills/**.

Five new demos (16 to 21):

Skill Group
leonxlnx/taste-skill/taste-skill Landing pages
nutlope/hallmark/hallmark Landing pages
emilkowalski/skills/apple-design UI components
tt-a1i/archify/archify Diagrams and explainers
unclecatvn/agent-skills/flow-diagram Diagrams and explainers

They come from trending and the design and diagrams tracks. visual-explainer was dropped: skilld run stops for approval because the Skill reads credential files. The first archify run drew broken arrows, so it was recorded again with an architecture prompt. Its two images stay unreferenced in the R2 bucket.

One page per demo at /skills/demos/<owner>/<repo>/<name>:

  • One catch-all page serves the board and every demo URL, with a fixed page key so the rail keeps its place.
  • A demo page sets its own title ({name} skill example: {noun}), description, canonical, and H1. The strings are in COPY.md.
  • Rail picks are links now. An unknown path answers 404 with no-store. Old ?demo= links 301 to the demo page.
  • A new demos sitemap lists the board and each shown demo, with recordedAt as lastmod. It leaves out flagged demos and lists nothing below six.

Every demo page reads the /skills/demos admission in page-admissions.ts. Each one targets "{skill} skill example", which has no measured volume. The cull path is the same entry: remove it, and every demo page goes noindex and nuxt.config drops the sitemap.

Architecture: the demos page serves the board and each demo URL; the new demos sitemap reads the shared demo helpers, and nuxt.config registers it only while page-admissions admits /skills/demos

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

taste-skill, hallmark, archify, apple-design and flow-diagram, picked from trending and the design and diagrams tracks. Each Skill loads with no shell, so the page recorder covers it. visual-explainer was dropped: skilld asks for approval because it reads credential files.
A demo pick lived in a query string on /skills/demos, so search engines saw one page and no demo had a URL worth ranking. Each demo now answers at /skills/demos/<owner>/<repo>/<name> under the /skills/demos admission, and a demos sitemap lists them. The board itself was missing from every sitemap, since the pages sitemap excludes /skills/**; it is listed now too. Old ?demo= links 301 to the demo page.
@harlan-zw harlan-zw added the harlan-agent-review Pull request triage requires an adversarial Review. Adding this label manually always forces one. label Oct 7, 2026
@harlan-zw

Copy link
Copy Markdown
Collaborator Author

Agent comment (Harlan Agent Kit). Checked by hand on a local pnpm build served with wrangler dev, since CI cannot cover it:

  • /skills/demos and three demo pages answered 200 with their own title, description, canonical, and index,follow. A mixed-case owner path canonicalised to the manifest casing.
  • /skills/demos/nope/nope/nope, a two-segment path, and a four-segment path answered 404 with cloudflare-cdn-cache-control: no-store.
  • /skills/demos?demo=pbakaus/impeccable/impeccable answered 301 to /skills/demos/pbakaus/impeccable/impeccable.
  • /__sitemap__/demos.xml listed 22 URLs: the board plus 21 demos. The sitemap index lists it.
  • Headless Chrome at 1440 px: a rail click changed the URL, H1, title, canonical, aria-current, and the live frame, and kept the scroll position. Back restored the previous demo.
  • Headless Chrome at 390 px: a rail click scrolled the stage into view.
  • All 12 new media URLs on media.skilld.dev answered 200.

@harlan-github-agent harlan-github-agent Bot added harlan-agent-review-required Pull request triage requires an adversarial Review for this head commit. harlan-agent-running An Agent holds a Task on this issue or pull request right now. and removed harlan-agent-review Pull request triage requires an adversarial Review. Adding this label manually always forces one. labels Oct 7, 2026
@harlan-github-agent

harlan-github-agent Bot commented Oct 7, 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-10-07 02:26 UTC.

GitHub merged this pull request.

  • Logged (10/100): The pull request's only embedded image is unavailable. The claimed data flow (one catch-all demos page, the demos sitemap source, and nuxt.config registering it only while page-admissions admits /skills/demos) was instead confirmed from cod
    • Ask an agent to verify and fix this finding

Review completed. No finding above 80/100.

Selected findings run after merge and open separate pull requests.

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