Instruction manual

moonlight-lupin/agent-skills instruction manual

MIT-licensed collection of 29 self-contained Agent Skills built for Hermes Agent, plus a Hermes-only BM25 skill-retrieval plugin; Claude Code can install the SKILL.md packages, but workflows may require mapping Hermes tool names and the plugin itself is explicitly incompatible with Claude Code.

1. Purpose, Claude Code classification, and installation

Agent Skills manual

`moonlight-lupin/agent-skills` is an MIT-licensed catalog of self-contained Agent Skills, primarily built and tested for Hermes Agent. Each skill lives in its own folder and normally uses a `SKILL.md` entry point, with optional scripts, references, examples, tests, or evaluation fixtures.

**Claude Code classification: context injection by adaptation; manual or skills-CLI installation.** The repository is not documented as a native Claude Code plugin suite. Its skills use Hermes tool names such as `web_search`, `web_extract`, `terminal`, `delegate_task`, and `cronjob`. Claude Code can receive a symlinked/copy-installed skill, but the user must map those tool names and adapt skill-loading conventions. The separate `skill-retrieval` component is explicitly Hermes-only and does not load in Claude Code. Accordingly, this repository relates to Claude Code as a portable skill collection, not as a reliable native plugin or hook integration.

To install the entire catalog with the documented multi-agent installer:

npx skills add moonlight-lupin/agent-skills

This installs skills under `.agents/skills/`, also uses `.claude/skills/`, and creates a hash-pinned `skills-lock.json`. The README states that `npx skills update` can refresh the installation. For one exact skill path:

gh skill install moonlight-lupin/agent-skills creative/image-studio/SKILL.md

For a user-scoped Claude Code installation:

gh skill install moonlight-lupin/agent-skills creative/image-studio/SKILL.md --agent claude-code --scope user

Manual setup is also documented:

git clone https://github.com/moonlight-lupin/agent-skills.git
cd agent-skills

Copy only wanted skill folders into the host’s skill directory, such as `~/.claude/skills/`. Never commit credentials or generated artifacts. Read each selected folder’s `SKILL.md` before use because dependencies and host-tool expectations differ.

2. Creative media skills

The **creative** domain contains three complementary workflows.

Safe, documented clips-studio previews and cost inspection are:

python scripts/falvid.py generate --prompt "abstract light sweep" --duration 5 --dry-run
python scripts/falvid.py animate --image still.png --prompt "slow light sweep across the product" --duration 5 --aspect 16:9 --dry-run
python scripts/falvid.py costs

Text-to-video rates in its registry are marked for verification, so confirm the first live generation on the fal dashboard. Use Pexels when a real photograph is required; use image-studio for generated or edited stills; use clips-studio when motion is the output.

3. Research, verification, monitoring, and source management

The first group of **research** skills organizes evidence and recurring investigation.

These are agent workflows, not guarantees of factual or legal correctness. Claude Code users must substitute available search, fetch, scheduling, and delegation tools for the Hermes names in each skill. Prompt-only entries have no extra runtime dependency, but live research still depends on the host’s web capabilities and requires human checking of citations, dates, identity matches, and conclusions.

4. Enrichment, APIs, video research, model comparison, and scraping

The remaining research and extraction functions are more specialized.

python scripts/enrich.py --self-test
python scripts/enrich.py person-enrich --input people.csv --dry-run
python scripts/enrich.py person-search --company "Northwind Capital" --title director --size 25 --dry-run
python scripts/enrich.py company-enrich --input companies.csv --output firms.xlsx

A supplied browser example shows when agentic browsing is justified: dependent dropdowns that require ordered interaction and AJAX-aware polling. From that example’s `final_runs/run_1` location, its documented rerun is:

python final_runs/run_1/final_script.py

Use browser automation when navigation is the difficult part; once the rendered page is available, prefer ordinary extraction. Ensure scraping is authorized and review target-site requirements before collecting data.

5. Productivity and local document workflows

The **productivity** domain contains seven functions.

These workflows are designed to prevent invented data and premature action. Inspect generated documents, calendar details, conversions, file-move plans, and summaries before distributing them.

6. Agent operations and DevOps functions

The **agent-ops** skills maintain agents and skill libraries; **disk-cleanup** covers system maintenance.

Treat maintenance output as a proposal, not permission. Review generated plugin contents, upstream changes, logs that may contain secrets, token-measurement inputs, onboarding configuration, scheduled jobs, and every deletion candidate. For Claude Code, only the general workflows are portable; Hermes gateway, plugin, profile, cron, and dashboard operations need translation or are inapplicable. No supplied file documents direct Claude Code hooks for these functions.

7. Library RAG: conversion, indexing, search, and MCP

**library-rag** builds a personal semantic-search library: acquire content, convert it, embed it with NVIDIA NIM’s `nemotron-3-embed-1b`, store normalized vectors in sqlite-vec, and retrieve cited chunks. It supports English, Chinese, and other languages, incremental SHA-256 tracking, 15% overlap, and atomic per-file replacement so a failed re-index leaves the previous version searchable.

EPUB conversion splits chapters into frontmatter-bearing Markdown; PDF conversion uses `pdfplumber`, creates one `## Page N` section per page, and preserves tables for display while excluding duplicate table blocks from embeddings. `chunk_markdown()` splits `##`/`###` sections and carries parent breadcrumbs; `chunk_plain_text()` merges paragraphs with overlap. XML and JSON require a custom chunker registered in `discover_files()`.

From `research/library-rag`, documented conversion and indexing are:

python3 scripts/convert_epub_library.py \
    --epub /path/to/book.epub --slug my-book \
    --title "Book Title" --author "Author Name" --year 2024 \
    --md-root ~/.hermes/library/books/markdown
python3 scripts/rag_index.py

Build, rebuild, preview, and query with:

python3 scripts/rag_index.py
python3 scripts/rag_index.py --rebuild
python3 scripts/rag_index.py --dry-run
python3 scripts/rag_query.py "your search query"
python3 scripts/rag_query.py "search terms" --top-k 5
python3 scripts/rag_query.py "query" --source my-source-type --verbose

Requirements are Python 3.9+, packages in `requirements.txt`, an SQLite build permitting extension loading, and `NVIDIA_API_KEY`. Scripts first read the environment, then `HERMES_ENV` (default `~/.hermes/.env`). `OPENROUTER_API_KEY` activates the documented legacy bge-m3 path; old 1024-dimensional indexes must be rebuilt for the 2048-dimensional default. Optional MCP exposes `search(query, top_k, source_type)`, `stats()`, and `add_book(file_path, ...)`; `add_book` converts EPUB/PDF and indexes it in one call. The `mcp` package is needed only for that server. Users are responsible for having rights to indexed material.

8. Hermes skill retrieval, validation, testing, and operating limits

The repository’s only packaged plugin, **skill-retrieval**, is for Hermes Agent 0.20.0 or newer. It replaces a large full-description skill list with a compact names view, builds a stdlib BM25 inverted index, and injects only the top relevant descriptions per turn. Default top-K is 6. Discovery respects Hermes homes, named profiles, external and trusted project directories, disabled lists, and platform gates; caches are profile-specific. It normalizes paths for Windows and falls back to a standalone loader if Hermes core modules are unavailable. The reported token savings are measurements from one approximately 300-skill installation, not a universal guarantee.

From the repository root, install the plugin as documented:

ln -s "$(pwd)/plugins/skill-retrieval" ~/.hermes/plugins/skill-retrieval
pip install pyyaml

Restart Hermes so `register()` runs. To change result count before restart:

export SKILL_RETRIEVAL_TOP_K=8

To remove a symlinked installation:

rm ~/.hermes/plugins/skill-retrieval

For a copied installation, the documented command is `rm -rf ~/.hermes/plugins/skill-retrieval`; verify the path carefully first. Restart Hermes afterward. The prompt patch is in-process and disappears on restart. Do not attempt to load this plugin in Claude Code: the README explicitly says Claude Code lacks Hermes’s `pre_llm_call` and Python `register()` mechanisms and expects a different plugin manifest.

The catalog labels skills Stable or Beta. A check mark means a pytest suite; “evals” means routing/output fixtures checked without live-model execution. Repository-wide examples include:

python3 -m pytest plugins/skill-retrieval/tests/

Library-rag’s offline suite is:

pip install -r requirements.txt -r requirements-dev.txt
pytest -q

Tests do not establish live API quality, factual correctness, privacy compliance, or host compatibility. API keys, third-party processing, web access, cron execution, browser automation, personal data, filesystem moves, and deletions all require task-specific review.