From demos
Fetch a random passage from Wuthering Heights via Project Gutenberg, avoiding repeats from the last 2 days.
How this skill is triggered — by the user, by Claude, or both
Slash command
/demos:wurtheringThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Fetch and display a random passage from Wuthering Heights, logging each one so repeats are avoided within a 2-day window.
Fetch and display a random passage from Wuthering Heights, logging each one so repeats are avoided within a 2-day window.
Before doing any work:
profile.yaml from the profile OCI image referenced in the frontmatter digest:
registry-1.docker.io/roberthouse224/wurthering-profile@sha256:29a1602bcf9913e48cb1b8baaa172893849e834310c52a0bbd5686bdb0bb9018
profile.yaml for config entries with no value set (blank entries).GUTENBERG_BASE_URL — URL of the Project Gutenberg mirror to read from (e.g. https://www.gutenberg.org).Call mcp__append-log-mcp__query to retrieve log entries from the last 2 days (48 hours). Extract the set of passage identifiers that have already been shown. Each log entry has the shape:
{
"timestamp": "<ISO 8601>",
"book_id": "768",
"passage_id": "<passage identifier>"
}
Call mcp__project-gutenberg-mcp__list_passages for book ID 768 (Wuthering Heights). This returns a list of passage identifiers/indices.
From the full list of passages, remove any whose passage_id appears in the recent history set from Step 1.
Call mcp__project-gutenberg-mcp__get_passage with the selected passage identifier. Display the retrieved text to the user.
Call mcp__append-log-mcp__append to record the shown passage:
{
"book_id": "768",
"passage_id": "<the passage identifier used>"
}
The server automatically timestamps the entry.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub bobbyhouse/client-plugins --plugin demos