changelog

GitHub

用于为LLM Gateway撰写公开更新日志条目。自动获取日期ID,查阅文档与代码确保准确性,生成符合规范的Markdown文件及OpenGraph图片提示词。

.agents/skills/changelog/SKILL.md theopenco/llmgateway

Trigger Scenarios

changelog changelog entry write a changelog add a changelog announce this feature document a shipped feature

Install

npx skills add theopenco/llmgateway --skill changelog -g -y
More Options

Non-standard path

npx skills add https://github.com/theopenco/llmgateway/tree/main/.agents/skills/changelog -g -y

Use without installing

npx skills use theopenco/llmgateway@changelog

指定 Agent (Claude Code)

npx skills add theopenco/llmgateway --skill changelog -a claude-code -g -y

安装 repo 全部 skill

npx skills add theopenco/llmgateway --all -g -y

预览 repo 内 skill

npx skills add theopenco/llmgateway --list

SKILL.md

Frontmatter
{
    "name": "changelog",
    "description": "Write a new LLM Gateway changelog entry. Use when the user says \"changelog\", \"changelog entry\", \"write a changelog\", \"add a changelog\", \"announce this feature\", or asks to document a shipped feature for the public changelog. Produces the dated markdown file under apps\/ui\/src\/content\/changelog plus a gpt-image-2 prompt for the OpenGraph image."
}

Changelog

Write a public changelog entry for LLM Gateway, in the house style, and hand back a ready-to-run gpt-image-2 prompt for its OpenGraph image.

What you need first

Before writing, make sure you understand the feature concretely. If the user only gave a feature name, find the facts — don't guess:

  • Read the relevant docs page under apps/docs/content/ (e.g. features/<feature>.mdx).
  • Inspect the shipping commit/PR if one is referenced: git show <sha> --stat, then read the changed UI/API/gateway files for the exact user-facing behavior.
  • Confirm plan gating (free vs Pro vs Enterprise), exact field names, error codes, and any limits. The changelog must be accurate — never invent prices, limits, or capabilities.

Where entries live

  • Entries: apps/ui/src/content/changelog/<YYYY-MM-DD>-<kebab-slug>.md
  • Images: apps/ui/public/changelog/<kebab-slug>.png
  • Schema is enforced by apps/ui/content-collections.ts — all frontmatter fields below are required (except draft).

Step 1 — Pick the date, id, and slug

  • Date: today, YYYY-MM-DD. Entries sort by date descending, so this puts the entry at the top.

  • id: the next integer after the current highest. Find it with:

    rg --no-filename '^id:' apps/ui/src/content/changelog/*.md | sed 's/[^0-9]//g' | sort -n | tail -1
    

    Use that number + 1, as a string. Also check for existing duplicates before adding the entry:

    rg --no-filename '^id:' apps/ui/src/content/changelog/*.md | sed 's/[^0-9]//g' | sort -n | uniq -d
    

    If this prints an existing duplicate, report it and still choose an unused id above the current maximum; do not silently renumber published entries.

  • slug: short kebab-case, feature-focused (e.g. custom-model-catalog). The slug must match the filename suffix and the image.src filename, and becomes the URL /changelog/<slug>.

Step 2 — Write the markdown file

Frontmatter (YAML), then the body. Entries are plain Markdown — no MDX/JSX components (no <Callout>); use bold inline notes instead.

---
id: "<next-id>"
slug: "<slug>"
date: "<YYYY-MM-DD>"
title: "<Title Case, ~3–7 words>"
summary: "<1–3 sentences: what shipped, the concrete benefit, and the plan if gated. This is the OG description and the listing blurb.>"
image:
  src: "/changelog/<slug>.png"
  alt: "<Descriptive alt text: the feature and what the image shows>"
  width: 1536
  height: 1024
---

<Opening paragraph: the problem this solves, then the one-line statement of what shipped. Bold the feature name once.>

## <Section header — verb-led or outcome-led>

<Body. Prefer a table for field/option references and a fenced code block for an API example.>

---

**[<Docs link> →](https://docs.llmgateway.io/...)** | **[<Secondary CTA> →](https://llmgateway.io/...)**

House style (match existing entries)

Read the two or three most recent files in apps/ui/src/content/changelog/ before writing, and mirror their tone:

  • Lead with the problem, then the fix. First paragraph names the pain; the next sentence states what shipped.
  • Benefits over features, specific over vague. "about 50% cheaper", "rejected with 400 before any data leaves the gateway" — not "improved efficiency".
  • Confident and plain. Active voice. No exclamation points. No "very/really/simply". No buzzwords ("streamline", "seamless", "revolutionary").
  • Show the API. Include a realistic curl or JSON example when there's a request-level change. Use https://api.llmgateway.io/v1/... and $LLM_GATEWAY_API_KEY.
  • Use a table for fields, options, strategies, or tiers.
  • State plan gating explicitly (e.g. "Available on the Enterprise plan").
  • Close with a footer link line: a verified docs link and one verified secondary CTA, separated by | and bolded.
  • Keep section headers in ##. Keep it scannable — short paragraphs, bullets for lists of behaviors.

Step 3 — Produce the OpenGraph image prompt

Hand the user a single, ready-to-paste gpt-image-2 prompt that produces the OG image, plus where to save it.

Resolution. Target 1536×1024 (3:2 landscape), matching current changelog entries and the repository's gpt-image-2 image presets. Match the frontmatter dimensions to the generated file.

Prompt guidance. Write a small summary prompt — 2–4 sentences — in the house image style: a glossy 3D-rendered circuit-board scene, not a flat/minimal gradient backdrop. The prompt should:

  • Set the scene: a dark navy computer circuit board in glossy 3D isometric perspective, with bright neon-teal light traces flowing across it toward a central raised chip.
  • Put the feature's concept at the center: a glowing element mounted on the central chip (e.g. a glowing doorway for the gateway, a glowing key for API keys). Concept over literalism.
  • Surround it with supporting glossy rounded 3D icons that fit the feature (chat bubbles, keys, charts, coins…) in vivid purple, lime green, and mint, each on small pedestals on the board.
  • Add the render feel: subtle depth of field at the edges, soft reflections, premium 3D render, vibrant against the dark board.
  • Says "no text, no words, no letters, no UI chrome" — AI image text is unreliable; the title lives in the page, not the image.
  • Specifies the aspect: "wide 3:2 landscape composition, 1536×1024".

Output the prompt in a fenced block, then the save path, e.g.:

Prompt for gpt-image-2 (1536×1024):

```
A dark navy computer circuit board in glossy 3D isometric perspective, with
bright neon-teal light traces flowing across it toward a central raised chip.
On the chip sits a glowing <concept element>. Around it, glossy rounded 3D
<supporting icons> in vivid purple, lime green, and mint stand on small
pedestals on the board. Subtle depth of field at the edges, soft reflections,
premium 3D render. Wide 3:2 landscape composition, 1536×1024. No text, no
words, no letters, no UI chrome.
```

Save the result to: apps/ui/public/changelog/<slug>.png

Generate the image with gpt-image-2, then put the PNG at that path and inspect its actual dimensions before validating.

Step 4 — Validate

pnpm format
pnpm exec turbo run build --filter=ui

pnpm format normalizes the markdown; the ui build fails if the frontmatter doesn't match the content-collections schema. Then commit (conventional commit, ≤50-char title), e.g. docs(changelog): add custom model catalog entry.

Version History

  • 8fdff5b Current 2026-08-16 07:59

    将获取最高ID的命令从grep替换为rg以提高性能;截断并简化了slug部分的说明描述。

  • 8c03315 2026-07-24 16:53

Same Skill Collection

.agents/skills/add-model/SKILL.md
.agents/skills/blog/SKILL.md
.agents/skills/core-web-vitals/SKILL.md
.agents/skills/knowledge-base/SKILL.md
.agents/skills/migrations/SKILL.md
.agents/skills/pull-request/SKILL.md
.agents/skills/skill-authoring/SKILL.md
.agents/skills/verify/SKILL.md
.claude/skills/verify/SKILL.md

Metadata

Files
0
Version
8fdff5b
Hash
46ace48d
Indexed
2026-07-24 16:53

inicio - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-08-16 23:43
浙ICP备14020137号-1 $mapa de visitantes$