About feedsmith
A developer skill for using Feedsmith v3+ to parse and generate RSS, Atom, RDF, JSON Feed, and OPML. It emphasizes typed, structure-preserving APIs and documents version-specific behavior and migration issues.
Key features
- 01Parse RSS, Atom, RDF, JSON Feed, and OPML
- 02Generate supported feed formats and OPML
- 03Typed, format-specific structures
- 04Feed format detection guidance
- 05v2-to-v3 migration guidance
Use cases
- 01Parsing feeds from known formats
- 02Handling mixed or unknown feed sources
- 03Generating JSON Feed, RSS, Atom, or OPML
- 04Migrating a project from Feedsmith v2
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ dobroslavradosavljevic/ skills --skill feedsmithAfter installing, type/feedsmithin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
agents/openai.yamlreferences/formats-namespaces.mdgenerating.mdmigration-v2-to-v3.mdparsing.mdsource-map.mdDetails
From the project READMEFeedsmith
Use this skill for Feedsmith v3+ (feedsmith): parse and generate RSS, Atom, RDF, JSON Feed, and OPML with structure-preserving, typed APIs. Docs: feedsmith.dev. Snapshot 3.0.1 (2026-10-01).
Workflow
- Inspect the local surface:
- Installed
feedsmithversion (bun pm ls feedsmith/bun info feedsmith). This skill targets 3.x;latestis 3.0.1 (ESM build now ships.mjsfiles; no API changes from 3.0.0). - Parse vs generate vs OPML vs detect-only usage.
- Dates: raw strings vs
parseDateFn/Dateon generate. - v2 leftovers:
feedsmith/types,{ lenient: true }, flat Atom strings, string RSS persons, singulardc.*fields,Rss/Atom/Json/Rdftype namespaces.
- Installed
- Prefer dedicated parsers when format is known; use
parseFeedonly for unknown/mixed sources. - Refresh docs when tags drift. Start from source-map.md.
- Route deeper detail:
- Parse/detect/dates/errors: parsing.md
- Generate, strict mode, stylesheets, OPML extras: generating.md
- Formats, namespaces, types: formats-namespaces.md
- v2→v3 breaking changes: migration-v2-to-v3.md
- Prefer
bun/bunxin command examples.
Core Judgment
- Preserve structure — do not invent a “universal flattened feed” layer; read format-specific fields and namespaces (
feed.itunes,item.dc, …). - Dates are strings by default on parse. Use
parseDateFnto convert; errors from that fn are not swallowed. - Generate is lenient by default (all fields optional). Use
{ strict: true }for compile-time spec-required fields +Datedates. - Atom text/content are objects:
title?.value,content?.value(not bare strings). - RSS persons are objects:
{ email?, name?, link? }— not"a@b (Name)"strings.linkis parse-only. - Types from main entry:
RssFeed,AtomFeed,JsonFeed,RdfFeed,Opml,AnyFeed. Nofeedsmith/types. - RDF generate is not available (
generateRdfFeedis planned). JSON Feed / RSS / Atom / OPML generate yes.generateJsonFeedreturns an object, not a string. - Catch
DetectError|MalformedError|ParseError|GenerateError— not only genericError. - Known format → dedicated parser (faster, more reliable than detect heuristics).
Verification
Prefer repository-owned commands. Cover the relevant subset:
bun pm ls feedsmith/bun info feedsmith— confirm 3.x.- Round-trip: parse fixture → assert key fields → generate → re-parse smoke.
- Typecheck Atom
.value/ RSSPerson/dc.creators(plural) /itunes.durationasnumberafter upgrades. - Strict generate: missing required fields should fail at compile time with
{ strict: true }. - Error-path tests for bad XML / wrong format using dedicated error classes.
Report which checks ran, which did not, and version/tag assumptions that remain.
Comments
Markdown supported