Skip to main content
/shipstar:build-changelog-page has your coding agent implement a changelog page on your own domain that machines can actually read. Client-rendered changelog widgets (Shipstar’s included) are invisible to search engines and AI answer engines — GPTBot, ClaudeBot, and PerplexityBot fetch your page’s HTML and see an empty container. This skill implements the same server-rendered pattern shipstar.ai/changelog itself uses, in your stack, from your project’s changelog data.

Install

Via the official Claude Code plugin (bundles the MCP connection):
Or install the skills standalone from your dashboard’s Agents page (curl -fsSL <APP_URL>/agent-skills/install.sh | sh -s -- <APP_URL>).

When to use it

Say “make our changelog readable by AI agents”, “add an SEO-friendly changelog page to our site”, “get our changelog cited by ChatGPT / Perplexity”, or “search engines can’t see our changelog”.

What the agent builds

Working in your repository, against the public changelog API:
  1. A server-rendered index — fetches GET /api/v1/changelogs with your API token kept server-side, and ships every entry as semantic HTML: one <article> per release period with stable anchors, category labels inside the entry headings, machine-readable <time> elements (formatted in UTC so dates never shift by timezone), a provenance line from the real per-period commit count, and a small ”★ Powered by Shipstar” link at the foot of each page (required on the Free plan).
  2. Permalink pages — every published period has a public slug (GET /api/v1/changelog/{slug}, no auth required); the agent builds a route per period with canonical URLs, article Open Graph metadata, and TechArticle JSON-LD, and adds them to your sitemap.
  3. An RSS feed — proxied through your site (the project-scoped GET /api/v1/changelogs/feed requires your bearer token, which feed readers can’t send), advertised with rel="alternate" links.
  4. Resilience — feeds and sitemaps fail closed: an API hiccup keeps the last good response serving instead of caching an empty feed that readers would interpret as “every entry deleted”. A 404 for a single slug is the real answer (that item is unpublished), not an outage, and renders as “nothing here” rather than failing.
  5. SEO & AEO — unique titles and meta descriptions per page, Open Graph and Twitter cards, complete TechArticle + BreadcrumbList JSON-LD (datePublished, publisher, canonical mainEntityOfPage), internal links from nav/docs and entry titles to feature pages, lastmod in the sitemap and an IndexNow ping on publish. For answer engines: a robots.txt/WAF check that GPTBot, ClaudeBot, PerplexityBot, Google-Extended, and OAI-SearchBot can fetch the pages, an llms.txt entry, answer-shaped copy (complete sentences that name the product and period, a visible “Last updated”), optional FAQPage JSON-LD where entries genuinely answer questions, and optional markdown content negotiation.
  6. Verification — the agent curls the finished pages with JavaScript off (and as GPTBot / ClaudeBot) to prove the content is really in the HTML, validates the JSON-LD and feed, checks titles/descriptions, robots.txt, and llms.txt, and checks phone-width rendering.
The existing embed widget can stay as progressive enhancement on top — just never as the only rendering path.

Requirements

  • A Shipstar API token (Dashboard → API Tokens) with published changelog content
  • A website with server rendering (any stack; the skill’s examples assume ISR-style caching)
The full skill definition is plain markdown: SKILL.md.