用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/heldernoid/agentic-build-templates --skill rss-feeds命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
正在显示 SKILL.md
基于 SOC 职业分类
| name | rss-feeds |
| display_name | RSS Feed |
| description | Access and configure the RSS 2.0 feed generated by changelog-site. |
| base_url | http://localhost:3000 |
| auth | none |
| version | 1.0 |
Use this skill to:
GET /rss.xml
The feed is publicly accessible at /rss.xml. No authentication required.
curl http://localhost:3000/rss.xml
The response is Content-Type: application/rss+xml; charset=utf-8.
The feed follows RSS 2.0. Entry bodies use CDATA to wrap HTML safely.
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Acme App Changelog</title>
<link>https://changelog.acmeapp.com</link>
<description>Product updates, bug fixes, and new features.</description>
<language>en</language>
<lastBuildDate>Thu, 20 Mar 2026 10:00:00 +0000</lastBuildDate>
<atom:link href="https://changelog.acmeapp.com/rss.xml"
rel="self" type="application/rss+xml"/>
<item>
<title>Dark mode support across all pages</title>
<link>https://changelog.acmeapp.com/dark-mode-support</link>
<guid isPermaLink="true">https://changelog.acmeapp.com/dark-mode-support</guid>
<pubDate>Thu, 20 Mar 2026 00:00:00 +0000
Added
<![CDATA[<p>We've added a full dark mode...</p>]]>
| RSS field | Source |
|---|---|
<title> (channel) | settings.product_name + " Changelog" |
<link> (channel) | settings.public_url |
<description> (channel) | settings.description |
<lastBuildDate> | Published date of the most recent entry |
<title> (item) | entry.title |
<link> (item) | settings.public_url + "/" + entry.slug |
<guid> | Same as item <link> |
<pubDate> | entry.published_at in RFC 822 format |
<category> | entry.category (title-cased) |
<description> | entry.body_html wrapped in CDATA |
is_draft = false).published_at descending (newest first).The feed is enabled by default. To disable it:
curl -X PUT http://localhost:3000/api/settings \
-H "Content-Type: application/json" \
-d '{"rss_enabled": false}'
When disabled, GET /rss.xml returns 404.
To re-enable:
curl -X PUT http://localhost:3000/api/settings \
-H "Content-Type: application/json" \
-d '{"rss_enabled": true}'
Use the curl response headers to confirm the correct content type:
curl -I http://localhost:3000/rss.xml
Expected:
HTTP/1.1 200 OK
Content-Type: application/rss+xml; charset=utf-8
The public changelog page includes an autodiscovery <link> tag in <head> so feed readers can find the feed automatically:
<link rel="alternate" type="application/rss+xml"
title="Acme App Changelog"
href="https://changelog.acmeapp.com/rss.xml">
Common feed readers accept the raw feed URL directly. For direct subscription links:
| Reader | URL pattern |
|---|---|
| Feedly | https://feedly.com/i/subscription/feed/{encoded_feed_url} |
| Inoreader | https://www.inoreader.com/feed/{encoded_feed_url} |
| Generic | Paste the feed URL directly into any RSS reader |
Replace {encoded_feed_url} with the URL-encoded value of https://changelog.acmeapp.com/rss.xml.
Feed returns 404
Check that rss_enabled is true in settings:
curl http://localhost:3000/api/settings | jq .rss_enabled
Feed shows no items
Verify that at least one entry is published (not draft):
curl "http://localhost:3000/api/entries?status=published&limit=1"
Feed content is stale
The feed is generated dynamically on each request. There is no cache to clear. If entries appear in the API but not the feed, check that published_at is set (not null) on those entries.
Invalid XML in feed
Entry body HTML is sanitized with DOMPurify before storage. If a feed validator reports malformed XML, the likely cause is unescaped characters in the product_name or description setting. Update those fields to remove <, >, or & characters.