{"id":"6a4586aa-4792-4be5-a025-6921d6ed5f90","entityType":"agent","slug":"clawhub-diamond2nv-hfpclawer-citation-audit","name":"hfpclawer-citation-audit","canonicalUrl":"https://www.xpersona.co/agent/clawhub-diamond2nv-hfpclawer-citation-audit","canonicalPath":"/agent/clawhub-diamond2nv-hfpclawer-citation-audit","generatedAt":"2026-10-11T14:15:37.057Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-11T10:04:29.497Z","emptyReason":null},"description":"Verify academic paper citations using a three-tier fallback pipeline: local FTS5 database → Semantic Scholar API → OpenAlex API. Supports single citation checks and batch reference-list audits. No external API keys required for basic usage. Skill: hfpclawer-citation-audit Owner: diamond2nv Summary: Verify academic paper citations using a three-tier fallback pipeline: local FTS5 database → Semantic Scholar API → OpenAlex API. Supports single citation checks and batch reference-list audits. No external API keys required for basic usage. Tags: latest:0.19.4 Version history: v0.19.4 | 2026-09-22T03:34:17.498Z | user Cross-link the Exo suite (entry skill exo","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.1K downloads reported by the source. Last updated 10/11/2026.","installCommand":"clawhub skill install s173bdds2dnm0e1qxr38514gjh873hb8:hfpclawer-citation-audit","sourceUrl":"https://clawhub.ai/diamond2nv/hfpclawer-citation-audit","homepage":"https://clawhub.ai/diamond2nv/skills/hfpclawer-citation-audit","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/diamond2nv/hfpclawer-citation-audit","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/diamond2nv/skills/hfpclawer-citation-audit","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":61,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Verify academic paper citations using a three-tier fallback pipeline: local FTS5 database → Semantic Scholar API → OpenAlex API. Supports single citation checks"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-11T10:04:29.497Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T10:04:29.497Z","emptyReason":null},"stars":null,"forks":null,"downloads":1092,"packageName":null,"latestVersion":"0.19.4","tractionLabel":"1.1K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T10:04:29.432Z","emptyReason":null},"lastUpdatedAt":"2026-10-11T10:04:29.497Z","lastCrawledAt":"2026-10-11T10:04:29.432Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-12T10:04:29.432Z","lastVerifiedAt":null,"highlights":[{"version":"0.19.4","createdAt":"2026-09-22T03:34:17.498Z","changelog":"Cross-link the Exo suite (entry skill `exo-suite-linkage`: literature → experiments → proofs, cost tiers low → medium → high) · pin `uvx` launch versions (rug-pull hygiene; `uvx` otherwise reuses an installed tool env and can run an older release).","fileCount":3,"zipByteSize":6998},{"version":"0.19.2","createdAt":"2026-09-18T08:47:22.569Z","changelog":"cost wording corrected: the stack is low-cost by design (no LLM call and no API key on the core path) — not zero-token; bandwidth/disk/CPU and upstream rate limits still apply, LLM steps stay explicit","fileCount":3,"zipByteSize":6844},{"version":"0.19.1","createdAt":"2026-09-18T08:37:43.810Z","changelog":"uv-first install guide (uv tool / uvx / uv pip / pip / pipx), optional extras table with the PyPI spaCy-model caveat, project + PyPI links, and a Hermes Agent environment section (MCP stdio mode, env vars, 0-token cost profile); adds Zotero read/write/ingest and the search-breadth-recommend command families","fileCount":3,"zipByteSize":6652},{"version":"0.19.0","createdAt":"2026-09-18T08:35:10.989Z","changelog":"- Updated author field and version number in metadata. - Added a \"Sanitization\" note for public release and privacy best practices. - Expanded agent integration documentation, including Hermes/ClawHub MPC server setup instructions. - Documented new permissions: shell, file_read, file_write, network. - Removed outdated or internal example data, shifted privacy-sensitive details to internal guides. - Deleted obsolete skill-card.md file.","fileCount":3,"zipByteSize":5758},{"version":"0.5.0","createdAt":"2026-05-20T14:18:18.757Z","changelog":"- Added hfpclawer-citation-audit for verifying academic paper citations using a three-tier fallback (local FTS5, Semantic Scholar, OpenAlex). - Supports single citation checks and batch audits from text files. - No external API keys needed for basic usage; advanced rate limits available with keys. - Command-line and Python API interfaces provided. - Detailed status reporting: VERIFIED, SUSPECTED, NOT_FOUND, ERROR. - Included troubleshooting tips, requirements, and verification checklist.","fileCount":3,"zipByteSize":4470}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s173bdds2dnm0e1qxr38514gjh873hb8:hfpclawer-citation-audit","setupComplexity":"low","setupSteps":["Setup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-diamond2nv-hfpclawer-citation-audit/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-diamond2nv-hfpclawer-citation-audit/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-diamond2nv-hfpclawer-citation-audit/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-diamond2nv-hfpclawer-citation-audit/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-diamond2nv-hfpclawer-citation-audit/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-diamond2nv-hfpclawer-citation-audit/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-11T14:15:37.055Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-diamond2nv-hfpclawer-citation-audit/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-diamond2nv-hfpclawer-citation-audit/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-diamond2nv-hfpclawer-citation-audit/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-diamond2nv-hfpclawer-citation-audit/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-10-11T10:04:29.497Z","emptyReason":null},"readme":"Skill: hfpclawer-citation-audit\n\nOwner: diamond2nv\n\nSummary: Verify academic paper citations using a three-tier fallback pipeline: local FTS5 database → Semantic Scholar API → OpenAlex API. Supports single citation checks and batch reference-list audits. No external API keys required for basic usage.\n\nTags: latest:0.19.4\n\nVersion history:\n\nv0.19.4 | 2026-09-22T03:34:17.498Z | user\n\nCross-link the Exo suite (entry skill `exo-suite-linkage`: literature → experiments → proofs, cost tiers low → medium → high) · pin `uvx` launch versions (rug-pull hygiene; `uvx` otherwise reuses an installed tool env and can run an older release).\n\nv0.19.2 | 2026-09-18T08:47:22.569Z | user\n\ncost wording corrected: the stack is low-cost by design (no LLM call and no API key on the core path) — not zero-token; bandwidth/disk/CPU and upstream rate limits still apply, LLM steps stay explicit\n\nv0.19.1 | 2026-09-18T08:37:43.810Z | user\n\nuv-first install guide (uv tool / uvx / uv pip / pip / pipx), optional extras table with the PyPI spaCy-model caveat, project + PyPI links, and a Hermes Agent environment section (MCP stdio mode, env vars, 0-token cost profile); adds Zotero read/write/ingest and the search-breadth-recommend command families\n\nv0.19.0 | 2026-09-18T08:35:10.989Z | auto\n\n- Updated author field and version number in metadata.\n- Added a \"Sanitization\" note for public release and privacy best practices.\n- Expanded agent integration documentation, including Hermes/ClawHub MPC server setup instructions.\n- Documented new permissions: shell, file_read, file_write, network.\n- Removed outdated or internal example data, shifted privacy-sensitive details to internal guides.\n- Deleted obsolete skill-card.md file.\n\nv0.5.0 | 2026-05-20T14:18:18.757Z | auto\n\n- Added hfpclawer-citation-audit for verifying academic paper citations using a three-tier fallback (local FTS5, Semantic Scholar, OpenAlex).\n- Supports single citation checks and batch audits from text files.\n- No external API keys needed for basic usage; advanced rate limits available with keys.\n- Command-line and Python API interfaces provided.\n- Detailed status reporting: VERIFIED, SUSPECTED, NOT_FOUND, ERROR.\n- Included troubleshooting tips, requirements, and verification checklist.\n\nArchive index:\n\nArchive v0.19.4: 3 files, 6998 bytes\n\nFiles: skill-card.md (2261b), SKILL.md (12110b), _meta.json (144b)\n\nFile v0.19.4:SKILL.md\n\n---\nname: hfpclawer-citation-audit\ndescription: >\n  Verify academic paper citations using a three-tier fallback pipeline:\n  local FTS5 database → Semantic Scholar API → OpenAlex API.\n  Supports single citation checks and batch reference-list audits.\n  No external API keys required for basic usage.\ncategory: research\nauthor: HFPClawer Maintainers\nversion: 1.2.2\npermissions: [shell, file_read, file_write, network]\nmetadata:\n  hermes:\n    homepage: https://github.com/diamond2nv/hfpapers-crawler\n    pypi: https://pypi.org/project/hfpclawer/\n    tags: [citation, audit, verification, research, academic, paper]\n    related_skills: [hfpclawer-paper-search]\ntags: [citation, audit, verification, research, academic, paper]\n---\n\n# hfpclawer Citation Audit\n\n> **Part of the Exo suite** — literature (`hfpclawer`) → experiments (`expflow-pde`) → proofs\n> (`omega-architect`). Three independent CLIs that meet through **files and CLI calls**, never imports.\n> Entry skill: `exo-suite-linkage` (wiring, cost tiers **low → medium → high**, degradation ladder).\n> Install: `uv tool install hfpclawer` · `uv tool install expflow-pde` ·\n> `uv tool install \"omega-architect @ git+https://github.com/diamond2nv/omega-architect@v0.2.3\"`\n\n> 🔒 **Sanitization**: This skill ships in the public repo. Never embed private\n> LAN IPs, real person names, or machine codenames in examples — use\n> `<placeholder>` / `Jane Doe` / `dev@example.com`. Real values live in the\n> repo's gitignored `.hermes/internal-guide.md`. See repo AGENTS.md\n> \"Public-Release Sanitization\".\n\nVerify whether a cited academic paper actually exists, using a three-tier\npipeline that degrades gracefully when local data or remote APIs are unavailable.\n\n> **Who this is for**: Researchers, reviewers, and literature-survey authors who\n> need to check whether a citation refers to a real paper.\n\n## Overview\n\nThe audit engine tries three sources in order, stopping at the first\nconfirmation:\n\n```\n                    ┌──────────────────────────┐\n User:              │  hfpclawer audit verify   │\n \"Is this paper     │  \"Fourier Neural Operator\"│\n real?\"             └─────────────┬────────────┘\n                                  │\n                    ┌─────────────┼─────────────┐\n                    ▼             ▼              ▼\n              ┌─────────┐  ┌──────────┐  ┌──────────┐\n              │ L1:     │  │ L2:      │  │ L3:      │\n              │ Local   │→ │ Semantic │→ │ OpenAlex │\n              │ FTS5 DB │  │ Scholar  │  │          │\n              │ (1ms)   │  │ (200ms)  │  │ (200ms)  │\n              └─────────┘  └──────────┘  └──────────┘\n```\n\nEach source independently reports one of four statuses:\n- `VERIFIED` — the paper exists in this source\n- `SUSPECTED` — possible match (similar title, but not exact)\n- `NOT_FOUND` — no match found\n- `ERROR` — source unavailable (no local DB / API rate-limited)\n\n## When to Use\n\n- A user cites a paper you cannot find — verify its existence\n- You team is writing a survey / literature review — batch audit the reference list\n- You downloaded an LLM-generated paper and need to fact-check its citations\n- You want to know whether a paper is a known arXiv preprint or a non-existent hallucination\n\n## Prerequisites\n\n**Python ≥ 3.10.** Pick the install that matches how you work — **uv is recommended**, because the CLI then lives in its own environment (no conflicts with your project's dependencies):\n\n```bash\n# 1) Recommended — uv tool: isolated CLI install, `hfpclawer` on your PATH\nuv tool install hfpclawer\nhfpclawer init                    # writes config.yaml\n\n# 2) Try it without installing anything (ephemeral, one-off runs)\n# pin the version — `uvx`/`uv tool run` reuse an installed tool env (may run an older\n# release), and an unpinned launch is a supply-chain (rug-pull) risk\nuvx \"hfpclawer==0.19.0\" --help\n\n# 3) Inside an existing project / venv (uv-managed)\nuv pip install hfpclawer\n\n# 4) No uv yet — pip and pipx both work\npip install hfpclawer             # or: python -m pip install hfpclawer\npipx install hfpclawer            # CLI-style install, functionally like `uv tool`\n```\n\n**Optional extras** — the core install stays deliberately small:\n\n| Extra | Adds | Install |\n|:--|:--|:--|\n| `zotero` | `pyzotero` — the Zotero read / write / ingest paths | `uv tool install \"hfpclawer[zotero]\"` |\n| `nlp` | spaCy pipeline for entity enrichment | `uv tool install \"hfpclawer[nlp]\"` |\n| `graph` | networkx + geopy for the citation graph | `uv tool install \"hfpclawer[graph]\"` |\n| `llm` | litellm for opt-in LLM helpers (`sniff`) | `uv tool install \"hfpclawer[llm]\"` |\n\n> ⚠️ **`nlp` extra + PyPI** (checked against the published 0.19.0 metadata): PyPI strips the direct-URL spaCy model, so that extra installs `spacy` only — fetch the model yourself with `python -m spacy download en_core_web_sm`. The loader falls back `configured → en_core_web_md → en_core_web_sm` and logs one actionable hint when none is present: entity enrichment degrades, nothing else breaks.\n\n**Where to find it**: repo <https://github.com/diamond2nv/hfpapers-crawler> · PyPI <https://pypi.org/project/hfpclawer/> · registry: `clawhub inspect <slug>`\n\n- No API keys needed for basic use (S2 + OpenAlex use anonymous tier)\n- **Optional**: Set `S2_API_KEY` env var for 10x faster Semantic Scholar lookups\n- **Optional**: Set `OPENALEX_POLITE_EMAIL` env var for 10x faster OpenAlex lookups\n- **Optional**: Clone `arxiv-metadata-service` repo for L1 local FTS5 (see references/local-db-setup.md)\n\nQuick Start\n\n### 1. Verify a Single Citation (most common)\n\n```bash\n# Auto mode: tries local DB first, then Semantic Scholar, then OpenAlex\nhfpclawer audit verify \"Fourier Neural Operator for Parametric Partial Differential Equations\"\n\n# Short title works too — includes substring fallback\nhfpclawer audit verify \"Fourier Neural Operator\"\n\n# Exact arXiv ID\nhfpclawer audit verify --arxiv-id 2010.08895\n```\n\n### 2. Use a Specific Source\n\n```bash\n# Local FTS5 only (needs arxiv_meta.db)\nhfpclawer audit verify \"Attention Is All You Need\" --source local\n\n# Semantic Scholar only\nhfpclawer audit verify \"Attention Is All You Need\" --source s2\n\n# OpenAlex only\nhfpclawer audit verify \"Attention Is All You Need\" --source openalex\n```\n\n### 3. Check a Reference List from File\n\n```bash\n# Save citations in a text file, one per paragraph\ncat > refs.txt << 'EOF'\nThe FNO paper (arXiv:2010.08895) shows promising results.\nPINNs were introduced by Raissi et al. (2019) \"Physics-informed neural networks\".\nEOF\n\nhfpclawer audit --refs refs.txt\n```\n\n## Output Format\n\nEach result shows:\n- `[OK] VERIFIED` — paper confirmed; includes title, authors, source\n- `[?] SUSPECTED` — possible but uncertain; shows top matches\n- `[NF] NOT_FOUND` — no evidence of this paper\n- `[ERR] ERROR` — source unavailable (DB not found, rate limited)\n\n```\n[OK] VERIFIED\n  Title: Fourier Neural Operator\n  Authors: Zongyi Li, Nikola Kovachki, Kamyar Azizzadenesheli, ...\n  Sources: openalex: VERIFIED\n```\n\n## How Statuses Are Determined\n\n| Status | Local DB | Semantic Scholar | OpenAlex |\n|--------|:--------:|:----------------:|:--------:|\n| VERIFIED | FTS5 match with title similarity >= 0.70 | Title search ≥ 0.70 | Title search ≥ 0.70 |\n| SUSPECTED | FTS5 match with score 0.40-0.69 | — | — |\n| NOT_FOUND | No FTS5 results | No ≥0.70 match | No ≥0.70 match |\n| ERROR | DB not found / corrupt | 429/5xx / network | 429/5xx / network |\n\n**Title matching**: Title similarity uses `difflib.SequenceMatcher` on\nnormalized (lowercase, punctuation-stripped) titles. Short titles that are\nsubstrings of longer titles also pass the 0.70 threshold.\n\n## Batch Modes\n\n### From a Text File\n\n```bash\nhfpclawer audit --refs references.txt\n```\n\nThe parser detects:\n- arXiv:XXXX.XXXXX identifiers\n- `\"Title\" (Author, Year)` patterns\n- `Author (Year) \"Title\"` patterns\n\n### Via Python API\n\n```python\nfrom hfpclawer.citation_audit import check_citation\n\nresult = check_citation(\n    \"Fourier Neural Operator\",\n    authors_hint=\"Li\",\n    year_hint=2020,\n    source=\"auto\",       # or \"local\" / \"s2\" / \"openalex\"\n)\nprint(result[\"status\"])  # VERIFIED | NOT_FOUND | ERROR\nprint(result.get(\"authors\", \"N/A\"))\nprint(result.get(\"per_source\", {}))  # Per-source breakdown\n```\n\n## Hermes Agent Environment\n\nhfpclawer is built to run inside **Hermes Agent** (and OpenCode) as a first-class tool —\nthe agent discovers the skill, and every command below is callable without leaving the session.\n\n**1. Install the skill** — place this folder under `~/.hermes/skills/research/<slug>/`\n(or install from ClawHub: `clawhub inspect <slug> --file SKILL.md`); Hermes loads it automatically\nand `skill_view(name='<slug>')` returns this file.\n\n**2. Register the MCP server** so the agent calls the CLI as tools:\n\n```yaml\n# ~/.hermes/config.yaml\nmcp:\n  servers:\n    hfpclawer:\n      command: \"hfpclawer\"\n      args: [\"mcp\"]        # stdio mode — Hermes native MCP client\n```\nFor OpenCode / debugging use HTTP mode: `hfpclawer mcp --mode http --port 8765`.\n\n**3. Environment variables** — every one is optional; the pipeline runs with none set:\n\n| Variable | Purpose |\n|:--|:--|\n| `HFPAPERS_DATA_DIR` | state/DB root (XDG `~/.local/share/hfpclawer` when installed; the checkout when run from source) |\n| `HFPAPERS_CONFIG` / `HFPAPERS_LOCAL_CONFIG` | config file + private overlay |\n| `S2_API_KEY` | Semantic Scholar — 10x faster (anonymous tier works) |\n| `OPENALEX_POLITE_EMAIL` | OpenAlex polite pool — 10x faster |\n| `ZOTERO_API_URL` | Zotero local API base (default `http://127.0.0.1:23119/api/`) |\n| `HFPCLAWER_PEER_REPOS` / `HFPCLAWER_REPO_MAP` | address private sibling repos by tag instead of hard-coded paths |\n\n**4. Cost profile** — the mechanical layer (search / dedup / verify / audit / Zotero) needs\n**low-cost by design — not zero-cost.** The core path (search / dedup / verify / audit / Zotero)\nissues no LLM call and needs no API key, so the marginal cost per run is small; it is still **not\nzero** — bandwidth, disk and CPU are spent, and rate-limited upstreams (arXiv / OpenAlex / Semantic\nScholar) can throttle or expect a key at volume. LLM features (`sniff`, abstract triage) are opt-in\nand metered where they run; `rank` trains locally with lightgbm. Describe the cost as **low**, and\nkeep the LLM steps explicit — do not advertise the stack as zero-token.\n\n**5. Keep private data private** — real author lists, ORCIDs and Zotero ids belong in\n`config.local.yaml` (gitignored) or `~/.hfpclawer/profile.yaml`, never in tracked files.\nThe repo-side profile (the `hfpclawer:` block in a project `AGENTS.md`) is deliberately\n**public-safe**: neutral academic keywords only.\n\n## Common Pitfalls\n\n1. **Short/two-word queries may fail L1** because FTS5's porter stemmer requires\n   actual content words. Use at least 3-4 significant words for local DB queries.\n2. **Semantic Scholar rate-limits aggressively** without API key (~1 req/s,\n   ~100 req/day anonymous). Set `S2_API_KEY` for production use.\n3. **OpenAlex polite pool** is free and gives 10 req/s — set\n   `OPENALEX_POLITE_EMAIL` to your institution email.\n4. **No L1 without arxiv-metadata-service**: The local FTS5 DB requires\n   `git clone` of the separate arxiv-metadata-service repo. Without it,\n   the auto chain starts at L2 (slower but still works).\n\n## Verification Checklist\n\n- [ ] Single citation works: `hfpclawer audit verify \"Known Paper Title\"`\n- [ ] arXiv ID works: `hfpclawer audit verify --arxiv-id 2010.08895`\n- [ ] Non-existent paper returns NOT_FOUND\n- [ ] Network errors return ERROR (not crash)\n- [ ] Batch mode processes multiple citations from file\n- [ ] `hfpclawer audit verify --help` shows source options\n\nFile v0.19.4:_meta.json\n\n{\n  \"ownerId\": \"kn74estzgs04n6ymr1sk3wxnc58739bk\",\n  \"slug\": \"hfpclawer-citation-audit\",\n  \"version\": \"0.19.4\",\n  \"publishedAt\": 1790048057498\n}\n\nFile v0.19.4:skill-card.md\n\n## Description:\n\nVerify academic paper citations using local FTS5 data, Semantic Scholar, and OpenAlex, with support for single citation checks and batch reference-list audits.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[diamond2nv](https://clawhub.ai/user/diamond2nv)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nResearchers, reviewers, literature-survey authors, and agents use this skill to check whether cited academic papers exist and to audit reference lists for missing, suspected, or verified citations.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Auto mode may send citation titles, arXiv IDs, and author or year hints to Semantic Scholar or OpenAlex.\n\nMitigation: Use local source mode for confidential bibliographies when possible, and review citation inputs before enabling network-backed sources.\n\nRisk: Optional extras and MCP registration can broaden the runtime surface beyond basic citation checks.\n\nMitigation: Review optional extras and MCP configuration before enabling them in an agent environment.\n\nRisk: Anonymous academic API tiers can be rate-limited, which may produce ERROR statuses or slower audits.\n\nMitigation: Use the local FTS5 source where available, or configure the documented Semantic Scholar and OpenAlex rate-limit options for higher-volume use.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/diamond2nv/skills/hfpclawer-citation-audit)\n- [Project homepage](https://github.com/diamond2nv/hfpapers-crawler)\n- [PyPI package](https://pypi.org/project/hfpclawer/)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Markdown, Shell commands, Configuration, Guidance]\n\n**Output Format:** [Markdown with command examples and citation-status text]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May report VERIFIED, SUSPECTED, NOT_FOUND, or ERROR statuses and include source-specific results.]\n\n## Skill Version(s):\n\n0.19.4 (source: ClawHub release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v0.19.2: 3 files, 6844 bytes\n\nFiles: skill-card.md (2512b), SKILL.md (11396b), _meta.json (144b)\n\nFile v0.19.2:SKILL.md\n\n---\nname: hfpclawer-citation-audit\ndescription: >\n  Verify academic paper citations using a three-tier fallback pipeline:\n  local FTS5 database → Semantic Scholar API → OpenAlex API.\n  Supports single citation checks and batch reference-list audits.\n  No external API keys required for basic usage.\ncategory: research\nauthor: HFPClawer Maintainers\nversion: 1.2.1\npermissions: [shell, file_read, file_write, network]\nmetadata:\n  hermes:\n    homepage: https://github.com/diamond2nv/hfpapers-crawler\n    pypi: https://pypi.org/project/hfpclawer/\n    tags: [citation, audit, verification, research, academic, paper]\n    related_skills: [hfpclawer-paper-search]\n---\n\n# hfpclawer Citation Audit\n\n> 🔒 **Sanitization**: This skill ships in the public repo. Never embed private\n> LAN IPs, real person names, or machine codenames in examples — use\n> `<placeholder>` / `Jane Doe` / `dev@example.com`. Real values live in the\n> repo's gitignored `.hermes/internal-guide.md`. See repo AGENTS.md\n> \"Public-Release Sanitization\".\n\nVerify whether a cited academic paper actually exists, using a three-tier\npipeline that degrades gracefully when local data or remote APIs are unavailable.\n\n> **Who this is for**: Researchers, reviewers, and literature-survey authors who\n> need to check whether a citation refers to a real paper.\n\n## Overview\n\nThe audit engine tries three sources in order, stopping at the first\nconfirmation:\n\n```\n                    ┌──────────────────────────┐\n User:              │  hfpclawer audit verify   │\n \"Is this paper     │  \"Fourier Neural Operator\"│\n real?\"             └─────────────┬────────────┘\n                                  │\n                    ┌─────────────┼─────────────┐\n                    ▼             ▼              ▼\n              ┌─────────┐  ┌──────────┐  ┌──────────┐\n              │ L1:     │  │ L2:      │  │ L3:      │\n              │ Local   │→ │ Semantic │→ │ OpenAlex │\n              │ FTS5 DB │  │ Scholar  │  │          │\n              │ (1ms)   │  │ (200ms)  │  │ (200ms)  │\n              └─────────┘  └──────────┘  └──────────┘\n```\n\nEach source independently reports one of four statuses:\n- `VERIFIED` — the paper exists in this source\n- `SUSPECTED` — possible match (similar title, but not exact)\n- `NOT_FOUND` — no match found\n- `ERROR` — source unavailable (no local DB / API rate-limited)\n\n## When to Use\n\n- A user cites a paper you cannot find — verify its existence\n- You team is writing a survey / literature review — batch audit the reference list\n- You downloaded an LLM-generated paper and need to fact-check its citations\n- You want to know whether a paper is a known arXiv preprint or a non-existent hallucination\n\n## Prerequisites\n\n**Python ≥ 3.10.** Pick the install that matches how you work — **uv is recommended**, because the CLI then lives in its own environment (no conflicts with your project's dependencies):\n\n```bash\n# 1) Recommended — uv tool: isolated CLI install, `hfpclawer` on your PATH\nuv tool install hfpclawer\nhfpclawer init                    # writes config.yaml\n\n# 2) Try it without installing anything (ephemeral, one-off runs)\nuvx hfpclawer --help\n\n# 3) Inside an existing project / venv (uv-managed)\nuv pip install hfpclawer\n\n# 4) No uv yet — pip and pipx both work\npip install hfpclawer             # or: python -m pip install hfpclawer\npipx install hfpclawer            # CLI-style install, functionally like `uv tool`\n```\n\n**Optional extras** — the core install stays deliberately small:\n\n| Extra | Adds | Install |\n|:--|:--|:--|\n| `zotero` | `pyzotero` — the Zotero read / write / ingest paths | `uv tool install \"hfpclawer[zotero]\"` |\n| `nlp` | spaCy pipeline for entity enrichment | `uv tool install \"hfpclawer[nlp]\"` |\n| `graph` | networkx + geopy for the citation graph | `uv tool install \"hfpclawer[graph]\"` |\n| `llm` | litellm for opt-in LLM helpers (`sniff`) | `uv tool install \"hfpclawer[llm]\"` |\n\n> ⚠️ **`nlp` extra + PyPI** (checked against the published 0.19.0 metadata): PyPI strips the direct-URL spaCy model, so that extra installs `spacy` only — fetch the model yourself with `python -m spacy download en_core_web_sm`. The loader falls back `configured → en_core_web_md → en_core_web_sm` and logs one actionable hint when none is present: entity enrichment degrades, nothing else breaks.\n\n**Where to find it**: repo <https://github.com/diamond2nv/hfpapers-crawler> · PyPI <https://pypi.org/project/hfpclawer/> · registry: `clawhub inspect <slug>`\n\n- No API keys needed for basic use (S2 + OpenAlex use anonymous tier)\n- **Optional**: Set `S2_API_KEY` env var for 10x faster Semantic Scholar lookups\n- **Optional**: Set `OPENALEX_POLITE_EMAIL` env var for 10x faster OpenAlex lookups\n- **Optional**: Clone `arxiv-metadata-service` repo for L1 local FTS5 (see references/local-db-setup.md)\n\nQuick Start\n\n### 1. Verify a Single Citation (most common)\n\n```bash\n# Auto mode: tries local DB first, then Semantic Scholar, then OpenAlex\nhfpclawer audit verify \"Fourier Neural Operator for Parametric Partial Differential Equations\"\n\n# Short title works too — includes substring fallback\nhfpclawer audit verify \"Fourier Neural Operator\"\n\n# Exact arXiv ID\nhfpclawer audit verify --arxiv-id 2010.08895\n```\n\n### 2. Use a Specific Source\n\n```bash\n# Local FTS5 only (needs arxiv_meta.db)\nhfpclawer audit verify \"Attention Is All You Need\" --source local\n\n# Semantic Scholar only\nhfpclawer audit verify \"Attention Is All You Need\" --source s2\n\n# OpenAlex only\nhfpclawer audit verify \"Attention Is All You Need\" --source openalex\n```\n\n### 3. Check a Reference List from File\n\n```bash\n# Save citations in a text file, one per paragraph\ncat > refs.txt << 'EOF'\nThe FNO paper (arXiv:2010.08895) shows promising results.\nPINNs were introduced by Raissi et al. (2019) \"Physics-informed neural networks\".\nEOF\n\nhfpclawer audit --refs refs.txt\n```\n\n## Output Format\n\nEach result shows:\n- `[OK] VERIFIED` — paper confirmed; includes title, authors, source\n- `[?] SUSPECTED` — possible but uncertain; shows top matches\n- `[NF] NOT_FOUND` — no evidence of this paper\n- `[ERR] ERROR` — source unavailable (DB not found, rate limited)\n\n```\n[OK] VERIFIED\n  Title: Fourier Neural Operator\n  Authors: Zongyi Li, Nikola Kovachki, Kamyar Azizzadenesheli, ...\n  Sources: openalex: VERIFIED\n```\n\n## How Statuses Are Determined\n\n| Status | Local DB | Semantic Scholar | OpenAlex |\n|--------|:--------:|:----------------:|:--------:|\n| VERIFIED | FTS5 match with title similarity >= 0.70 | Title search ≥ 0.70 | Title search ≥ 0.70 |\n| SUSPECTED | FTS5 match with score 0.40-0.69 | — | — |\n| NOT_FOUND | No FTS5 results | No ≥0.70 match | No ≥0.70 match |\n| ERROR | DB not found / corrupt | 429/5xx / network | 429/5xx / network |\n\n**Title matching**: Title similarity uses `difflib.SequenceMatcher` on\nnormalized (lowercase, punctuation-stripped) titles. Short titles that are\nsubstrings of longer titles also pass the 0.70 threshold.\n\n## Batch Modes\n\n### From a Text File\n\n```bash\nhfpclawer audit --refs references.txt\n```\n\nThe parser detects:\n- arXiv:XXXX.XXXXX identifiers\n- `\"Title\" (Author, Year)` patterns\n- `Author (Year) \"Title\"` patterns\n\n### Via Python API\n\n```python\nfrom hfpclawer.citation_audit import check_citation\n\nresult = check_citation(\n    \"Fourier Neural Operator\",\n    authors_hint=\"Li\",\n    year_hint=2020,\n    source=\"auto\",       # or \"local\" / \"s2\" / \"openalex\"\n)\nprint(result[\"status\"])  # VERIFIED | NOT_FOUND | ERROR\nprint(result.get(\"authors\", \"N/A\"))\nprint(result.get(\"per_source\", {}))  # Per-source breakdown\n```\n\n## Hermes Agent Environment\n\nhfpclawer is built to run inside **Hermes Agent** (and OpenCode) as a first-class tool —\nthe agent discovers the skill, and every command below is callable without leaving the session.\n\n**1. Install the skill** — place this folder under `~/.hermes/skills/research/<slug>/`\n(or install from ClawHub: `clawhub inspect <slug> --file SKILL.md`); Hermes loads it automatically\nand `skill_view(name='<slug>')` returns this file.\n\n**2. Register the MCP server** so the agent calls the CLI as tools:\n\n```yaml\n# ~/.hermes/config.yaml\nmcp:\n  servers:\n    hfpclawer:\n      command: \"hfpclawer\"\n      args: [\"mcp\"]        # stdio mode — Hermes native MCP client\n```\nFor OpenCode / debugging use HTTP mode: `hfpclawer mcp --mode http --port 8765`.\n\n**3. Environment variables** — every one is optional; the pipeline runs with none set:\n\n| Variable | Purpose |\n|:--|:--|\n| `HFPAPERS_DATA_DIR` | state/DB root (XDG `~/.local/share/hfpclawer` when installed; the checkout when run from source) |\n| `HFPAPERS_CONFIG` / `HFPAPERS_LOCAL_CONFIG` | config file + private overlay |\n| `S2_API_KEY` | Semantic Scholar — 10x faster (anonymous tier works) |\n| `OPENALEX_POLITE_EMAIL` | OpenAlex polite pool — 10x faster |\n| `ZOTERO_API_URL` | Zotero local API base (default `http://127.0.0.1:23119/api/`) |\n| `HFPCLAWER_PEER_REPOS` / `HFPCLAWER_REPO_MAP` | address private sibling repos by tag instead of hard-coded paths |\n\n**4. Cost profile** — the mechanical layer (search / dedup / verify / audit / Zotero) needs\n**low-cost by design — not zero-cost.** The core path (search / dedup / verify / audit / Zotero)\nissues no LLM call and needs no API key, so the marginal cost per run is small; it is still **not\nzero** — bandwidth, disk and CPU are spent, and rate-limited upstreams (arXiv / OpenAlex / Semantic\nScholar) can throttle or expect a key at volume. LLM features (`sniff`, abstract triage) are opt-in\nand metered where they run; `rank` trains locally with lightgbm. Describe the cost as **low**, and\nkeep the LLM steps explicit — do not advertise the stack as zero-token.\n\n**5. Keep private data private** — real author lists, ORCIDs and Zotero ids belong in\n`config.local.yaml` (gitignored) or `~/.hfpclawer/profile.yaml`, never in tracked files.\nThe repo-side profile (the `hfpclawer:` block in a project `AGENTS.md`) is deliberately\n**public-safe**: neutral academic keywords only.\n\n## Common Pitfalls\n\n1. **Short/two-word queries may fail L1** because FTS5's porter stemmer requires\n   actual content words. Use at least 3-4 significant words for local DB queries.\n2. **Semantic Scholar rate-limits aggressively** without API key (~1 req/s,\n   ~100 req/day anonymous). Set `S2_API_KEY` for production use.\n3. **OpenAlex polite pool** is free and gives 10 req/s — set\n   `OPENALEX_POLITE_EMAIL` to your institution email.\n4. **No L1 without arxiv-metadata-service**: The local FTS5 DB requires\n   `git clone` of the separate arxiv-metadata-service repo. Without it,\n   the auto chain starts at L2 (slower but still works).\n\n## Verification Checklist\n\n- [ ] Single citation works: `hfpclawer audit verify \"Known Paper Title\"`\n- [ ] arXiv ID works: `hfpclawer audit verify --arxiv-id 2010.08895`\n- [ ] Non-existent paper returns NOT_FOUND\n- [ ] Network errors return ERROR (not crash)\n- [ ] Batch mode processes multiple citations from file\n- [ ] `hfpclawer audit verify --help` shows source options\n\nFile v0.19.2:_meta.json\n\n{\n  \"ownerId\": \"kn74estzgs04n6ymr1sk3wxnc58739bk\",\n  \"slug\": \"hfpclawer-citation-audit\",\n  \"version\": \"0.19.2\",\n  \"publishedAt\": 1789721242569\n}\n\nFile v0.19.2:skill-card.md\n\n## Description:\n\nVerify academic paper citations through a fallback pipeline that checks a local FTS5 database, Semantic Scholar, and OpenAlex, supporting both single-citation checks and batch reference-list audits.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[diamond2nv](https://clawhub.ai/user/diamond2nv)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nResearchers, reviewers, literature-survey authors, and agents use this skill to check whether cited academic papers exist and to audit reference lists for potentially hallucinated or unavailable citations.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Installing and running the external Python CLI introduces normal package-supply-chain and execution risk.\n\nMitigation: Review the package source or pin a known version before installation when reproducibility or trust boundaries matter.\n\nRisk: Citation verification can make network calls to public scholarly APIs and may encounter rate limits or upstream availability issues.\n\nMitigation: Expect network access during verification, handle ERROR statuses, and configure optional API keys or polite-email settings for higher-volume use.\n\nRisk: Initialization, local data paths, and optional Zotero-related features can read or write local files.\n\nMitigation: Check config and data paths before running init or enabling Zotero write or ingest workflows, and keep private research metadata in local ignored configuration files.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/diamond2nv/skills/hfpclawer-citation-audit)\n- [hfpclawer project homepage](https://github.com/diamond2nv/hfpapers-crawler)\n- [hfpclawer PyPI package](https://pypi.org/project/hfpclawer/)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, code, shell commands, configuration, guidance]\n\n**Output Format:** [Markdown guidance with CLI commands, YAML configuration, Python examples, and human-readable citation status results.]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Citation checks can report VERIFIED, SUSPECTED, NOT_FOUND, or ERROR; batch mode can read references from a text file.]\n\n## Skill Version(s):\n\n0.19.2 (source: server release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v0.19.1: 3 files, 6652 bytes\n\nFiles: skill-card.md (2658b), SKILL.md (11013b), _meta.json (144b)\n\nFile v0.19.1:SKILL.md\n\n---\nname: hfpclawer-citation-audit\ndescription: >\n  Verify academic paper citations using a three-tier fallback pipeline:\n  local FTS5 database → Semantic Scholar API → OpenAlex API.\n  Supports single citation checks and batch reference-list audits.\n  No external API keys required for basic usage.\ncategory: research\nauthor: HFPClawer Maintainers\nversion: 1.2.0\npermissions: [shell, file_read, file_write, network]\nmetadata:\n  hermes:\n    homepage: https://github.com/diamond2nv/hfpapers-crawler\n    pypi: https://pypi.org/project/hfpclawer/\n    tags: [citation, audit, verification, research, academic, paper]\n    related_skills: [hfpclawer-paper-search]\n---\n\n# hfpclawer Citation Audit\n\n> 🔒 **Sanitization**: This skill ships in the public repo. Never embed private\n> LAN IPs, real person names, or machine codenames in examples — use\n> `<placeholder>` / `Jane Doe` / `dev@example.com`. Real values live in the\n> repo's gitignored `.hermes/internal-guide.md`. See repo AGENTS.md\n> \"Public-Release Sanitization\".\n\nVerify whether a cited academic paper actually exists, using a three-tier\npipeline that degrades gracefully when local data or remote APIs are unavailable.\n\n> **Who this is for**: Researchers, reviewers, and literature-survey authors who\n> need to check whether a citation refers to a real paper.\n\n## Overview\n\nThe audit engine tries three sources in order, stopping at the first\nconfirmation:\n\n```\n                    ┌──────────────────────────┐\n User:              │  hfpclawer audit verify   │\n \"Is this paper     │  \"Fourier Neural Operator\"│\n real?\"             └─────────────┬────────────┘\n                                  │\n                    ┌─────────────┼─────────────┐\n                    ▼             ▼              ▼\n              ┌─────────┐  ┌──────────┐  ┌──────────┐\n              │ L1:     │  │ L2:      │  │ L3:      │\n              │ Local   │→ │ Semantic │→ │ OpenAlex │\n              │ FTS5 DB │  │ Scholar  │  │          │\n              │ (1ms)   │  │ (200ms)  │  │ (200ms)  │\n              └─────────┘  └──────────┘  └──────────┘\n```\n\nEach source independently reports one of four statuses:\n- `VERIFIED` — the paper exists in this source\n- `SUSPECTED` — possible match (similar title, but not exact)\n- `NOT_FOUND` — no match found\n- `ERROR` — source unavailable (no local DB / API rate-limited)\n\n## When to Use\n\n- A user cites a paper you cannot find — verify its existence\n- You team is writing a survey / literature review — batch audit the reference list\n- You downloaded an LLM-generated paper and need to fact-check its citations\n- You want to know whether a paper is a known arXiv preprint or a non-existent hallucination\n\n## Prerequisites\n\n**Python ≥ 3.10.** Pick the install that matches how you work — **uv is recommended**, because the CLI then lives in its own environment (no conflicts with your project's dependencies):\n\n```bash\n# 1) Recommended — uv tool: isolated CLI install, `hfpclawer` on your PATH\nuv tool install hfpclawer\nhfpclawer init                    # writes config.yaml\n\n# 2) Try it without installing anything (ephemeral, one-off runs)\nuvx hfpclawer --help\n\n# 3) Inside an existing project / venv (uv-managed)\nuv pip install hfpclawer\n\n# 4) No uv yet — pip and pipx both work\npip install hfpclawer             # or: python -m pip install hfpclawer\npipx install hfpclawer            # CLI-style install, functionally like `uv tool`\n```\n\n**Optional extras** — the core install stays deliberately small:\n\n| Extra | Adds | Install |\n|:--|:--|:--|\n| `zotero` | `pyzotero` — the Zotero read / write / ingest paths | `uv tool install \"hfpclawer[zotero]\"` |\n| `nlp` | spaCy pipeline for entity enrichment | `uv tool install \"hfpclawer[nlp]\"` |\n| `graph` | networkx + geopy for the citation graph | `uv tool install \"hfpclawer[graph]\"` |\n| `llm` | litellm for opt-in LLM helpers (`sniff`) | `uv tool install \"hfpclawer[llm]\"` |\n\n> ⚠️ **`nlp` extra + PyPI** (checked against the published 0.19.0 metadata): PyPI strips the direct-URL spaCy model, so that extra installs `spacy` only — fetch the model yourself with `python -m spacy download en_core_web_sm`. The loader falls back `configured → en_core_web_md → en_core_web_sm` and logs one actionable hint when none is present: entity enrichment degrades, nothing else breaks.\n\n**Where to find it**: repo <https://github.com/diamond2nv/hfpapers-crawler> · PyPI <https://pypi.org/project/hfpclawer/> · registry: `clawhub inspect <slug>`\n\n- No API keys needed for basic use (S2 + OpenAlex use anonymous tier)\n- **Optional**: Set `S2_API_KEY` env var for 10x faster Semantic Scholar lookups\n- **Optional**: Set `OPENALEX_POLITE_EMAIL` env var for 10x faster OpenAlex lookups\n- **Optional**: Clone `arxiv-metadata-service` repo for L1 local FTS5 (see references/local-db-setup.md)\n\nQuick Start\n\n### 1. Verify a Single Citation (most common)\n\n```bash\n# Auto mode: tries local DB first, then Semantic Scholar, then OpenAlex\nhfpclawer audit verify \"Fourier Neural Operator for Parametric Partial Differential Equations\"\n\n# Short title works too — includes substring fallback\nhfpclawer audit verify \"Fourier Neural Operator\"\n\n# Exact arXiv ID\nhfpclawer audit verify --arxiv-id 2010.08895\n```\n\n### 2. Use a Specific Source\n\n```bash\n# Local FTS5 only (needs arxiv_meta.db)\nhfpclawer audit verify \"Attention Is All You Need\" --source local\n\n# Semantic Scholar only\nhfpclawer audit verify \"Attention Is All You Need\" --source s2\n\n# OpenAlex only\nhfpclawer audit verify \"Attention Is All You Need\" --source openalex\n```\n\n### 3. Check a Reference List from File\n\n```bash\n# Save citations in a text file, one per paragraph\ncat > refs.txt << 'EOF'\nThe FNO paper (arXiv:2010.08895) shows promising results.\nPINNs were introduced by Raissi et al. (2019) \"Physics-informed neural networks\".\nEOF\n\nhfpclawer audit --refs refs.txt\n```\n\n## Output Format\n\nEach result shows:\n- `[OK] VERIFIED` — paper confirmed; includes title, authors, source\n- `[?] SUSPECTED` — possible but uncertain; shows top matches\n- `[NF] NOT_FOUND` — no evidence of this paper\n- `[ERR] ERROR` — source unavailable (DB not found, rate limited)\n\n```\n[OK] VERIFIED\n  Title: Fourier Neural Operator\n  Authors: Zongyi Li, Nikola Kovachki, Kamyar Azizzadenesheli, ...\n  Sources: openalex: VERIFIED\n```\n\n## How Statuses Are Determined\n\n| Status | Local DB | Semantic Scholar | OpenAlex |\n|--------|:--------:|:----------------:|:--------:|\n| VERIFIED | FTS5 match with title similarity >= 0.70 | Title search ≥ 0.70 | Title search ≥ 0.70 |\n| SUSPECTED | FTS5 match with score 0.40-0.69 | — | — |\n| NOT_FOUND | No FTS5 results | No ≥0.70 match | No ≥0.70 match |\n| ERROR | DB not found / corrupt | 429/5xx / network | 429/5xx / network |\n\n**Title matching**: Title similarity uses `difflib.SequenceMatcher` on\nnormalized (lowercase, punctuation-stripped) titles. Short titles that are\nsubstrings of longer titles also pass the 0.70 threshold.\n\n## Batch Modes\n\n### From a Text File\n\n```bash\nhfpclawer audit --refs references.txt\n```\n\nThe parser detects:\n- arXiv:XXXX.XXXXX identifiers\n- `\"Title\" (Author, Year)` patterns\n- `Author (Year) \"Title\"` patterns\n\n### Via Python API\n\n```python\nfrom hfpclawer.citation_audit import check_citation\n\nresult = check_citation(\n    \"Fourier Neural Operator\",\n    authors_hint=\"Li\",\n    year_hint=2020,\n    source=\"auto\",       # or \"local\" / \"s2\" / \"openalex\"\n)\nprint(result[\"status\"])  # VERIFIED | NOT_FOUND | ERROR\nprint(result.get(\"authors\", \"N/A\"))\nprint(result.get(\"per_source\", {}))  # Per-source breakdown\n```\n\n## Hermes Agent Environment\n\nhfpclawer is built to run inside **Hermes Agent** (and OpenCode) as a first-class tool —\nthe agent discovers the skill, and every command below is callable without leaving the session.\n\n**1. Install the skill** — place this folder under `~/.hermes/skills/research/<slug>/`\n(or install from ClawHub: `clawhub inspect <slug> --file SKILL.md`); Hermes loads it automatically\nand `skill_view(name='<slug>')` returns this file.\n\n**2. Register the MCP server** so the agent calls the CLI as tools:\n\n```yaml\n# ~/.hermes/config.yaml\nmcp:\n  servers:\n    hfpclawer:\n      command: \"hfpclawer\"\n      args: [\"mcp\"]        # stdio mode — Hermes native MCP client\n```\nFor OpenCode / debugging use HTTP mode: `hfpclawer mcp --mode http --port 8765`.\n\n**3. Environment variables** — every one is optional; the pipeline runs with none set:\n\n| Variable | Purpose |\n|:--|:--|\n| `HFPAPERS_DATA_DIR` | state/DB root (XDG `~/.local/share/hfpclawer` when installed; the checkout when run from source) |\n| `HFPAPERS_CONFIG` / `HFPAPERS_LOCAL_CONFIG` | config file + private overlay |\n| `S2_API_KEY` | Semantic Scholar — 10x faster (anonymous tier works) |\n| `OPENALEX_POLITE_EMAIL` | OpenAlex polite pool — 10x faster |\n| `ZOTERO_API_URL` | Zotero local API base (default `http://127.0.0.1:23119/api/`) |\n| `HFPCLAWER_PEER_REPOS` / `HFPCLAWER_REPO_MAP` | address private sibling repos by tag instead of hard-coded paths |\n\n**4. Cost profile** — the mechanical layer (search / dedup / verify / audit / Zotero) needs\n**no LLM and no API key**: 0 tokens. LLM use is opt-in (`sniff`, abstract triage) and `rank`\ntraining is local lightgbm. Nothing in this skill requires a paid key to produce a real result.\n\n**5. Keep private data private** — real author lists, ORCIDs and Zotero ids belong in\n`config.local.yaml` (gitignored) or `~/.hfpclawer/profile.yaml`, never in tracked files.\nThe repo-side profile (the `hfpclawer:` block in a project `AGENTS.md`) is deliberately\n**public-safe**: neutral academic keywords only.\n\n## Common Pitfalls\n\n1. **Short/two-word queries may fail L1** because FTS5's porter stemmer requires\n   actual content words. Use at least 3-4 significant words for local DB queries.\n2. **Semantic Scholar rate-limits aggressively** without API key (~1 req/s,\n   ~100 req/day anonymous). Set `S2_API_KEY` for production use.\n3. **OpenAlex polite pool** is free and gives 10 req/s — set\n   `OPENALEX_POLITE_EMAIL` to your institution email.\n4. **No L1 without arxiv-metadata-service**: The local FTS5 DB requires\n   `git clone` of the separate arxiv-metadata-service repo. Without it,\n   the auto chain starts at L2 (slower but still works).\n\n## Verification Checklist\n\n- [ ] Single citation works: `hfpclawer audit verify \"Known Paper Title\"`\n- [ ] arXiv ID works: `hfpclawer audit verify --arxiv-id 2010.08895`\n- [ ] Non-existent paper returns NOT_FOUND\n- [ ] Network errors return ERROR (not crash)\n- [ ] Batch mode processes multiple citations from file\n- [ ] `hfpclawer audit verify --help` shows source options\n\nFile v0.19.1:_meta.json\n\n{\n  \"ownerId\": \"kn74estzgs04n6ymr1sk3wxnc58739bk\",\n  \"slug\": \"hfpclawer-citation-audit\",\n  \"version\": \"0.19.1\",\n  \"publishedAt\": 1789720663810\n}\n\nFile v0.19.1:skill-card.md\n\n## Description:\n\nVerify academic paper citations with a fallback pipeline that checks a local FTS5 database, Semantic Scholar, and OpenAlex, supporting single-citation checks and batch reference-list audits without external API keys for basic use.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[diamond2nv](https://clawhub.ai/user/diamond2nv)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nResearchers, reviewers, literature-survey authors, and agents use this skill to check whether cited academic papers exist and to audit reference lists for likely hallucinated or uncertain citations.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill can install or run a local CLI and create local configuration or state.\n\nMitigation: Pin the package version for reproducible installs and review install, initialization, and MCP registration commands before adding them to an agent configuration.\n\nRisk: Citation queries may be sent to external academic APIs when local data is unavailable.\n\nMitigation: Avoid sending sensitive unpublished citation data to remote services, and configure optional API-related environment variables intentionally.\n\nRisk: Local reference files, local databases, or Zotero-related state may contain private research data.\n\nMitigation: Scope local data directories deliberately and keep private author, ORCID, Zotero, and profile data in local ignored configuration files.\n\nRisk: Rate limits, unavailable sources, or missing local databases can produce ERROR, NOT_FOUND, or uncertain SUSPECTED results.\n\nMitigation: Review uncertain or negative results manually across multiple sources before relying on them for publication or review decisions.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/diamond2nv/skills/hfpclawer-citation-audit)\n- [hfpclawer project homepage](https://github.com/diamond2nv/hfpapers-crawler)\n- [hfpclawer on PyPI](https://pypi.org/project/hfpclawer/)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance]\n\n**Output Format:** [Markdown guidance with shell command examples and citation-audit result text]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Can report VERIFIED, SUSPECTED, NOT_FOUND, or ERROR status for citation checks.]\n\n## Skill Version(s):\n\n0.19.1 (source: ClawHub release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v0.19.0: 3 files, 5758 bytes\n\nFiles: skill-card.md (2450b), SKILL.md (9160b), _meta.json (144b)\n\nFile v0.19.0:SKILL.md\n\n---\nname: hfpclawer-citation-audit\ndescription: >\n  Verify academic paper citations using a three-tier fallback pipeline:\n  local FTS5 database → Semantic Scholar API → OpenAlex API.\n  Supports single citation checks and batch reference-list audits.\n  No external API keys required for basic usage.\ncategory: research\nauthor: HFPClawer Maintainers\nversion: 1.1.0\npermissions: [shell, file_read, file_write, network]\nmetadata:\n  hermes:\n    tags: [citation, audit, verification, research, academic, paper]\n    related_skills: [hfpclawer-paper-search]\n---\n\n# hfpclawer Citation Audit\n\n> 🔒 **Sanitization**: This skill ships in the public repo. Never embed private\n> LAN IPs, real person names, or machine codenames in examples — use\n> `<placeholder>` / `Jane Doe` / `dev@example.com`. Real values live in the\n> repo's gitignored `.hermes/internal-guide.md`. See repo AGENTS.md\n> \"Public-Release Sanitization\".\n\nVerify whether a cited academic paper actually exists, using a three-tier\npipeline that degrades gracefully when local data or remote APIs are unavailable.\n\n> **Who this is for**: Researchers, reviewers, and literature-survey authors who\n> need to check whether a citation refers to a real paper.\n\n## Overview\n\nThe audit engine tries three sources in order, stopping at the first\nconfirmation:\n\n```\n                    ┌──────────────────────────┐\n User:              │  hfpclawer audit verify   │\n \"Is this paper     │  \"Fourier Neural Operator\"│\n real?\"             └─────────────┬────────────┘\n                                  │\n                    ┌─────────────┼─────────────┐\n                    ▼             ▼              ▼\n              ┌─────────┐  ┌──────────┐  ┌──────────┐\n              │ L1:     │  │ L2:      │  │ L3:      │\n              │ Local   │→ │ Semantic │→ │ OpenAlex │\n              │ FTS5 DB │  │ Scholar  │  │          │\n              │ (1ms)   │  │ (200ms)  │  │ (200ms)  │\n              └─────────┘  └──────────┘  └──────────┘\n```\n\nEach source independently reports one of four statuses:\n- `VERIFIED` — the paper exists in this source\n- `SUSPECTED` — possible match (similar title, but not exact)\n- `NOT_FOUND` — no match found\n- `ERROR` — source unavailable (no local DB / API rate-limited)\n\n## When to Use\n\n- A user cites a paper you cannot find — verify its existence\n- You team is writing a survey / literature review — batch audit the reference list\n- You downloaded an LLM-generated paper and need to fact-check its citations\n- You want to know whether a paper is a known arXiv preprint or a non-existent hallucination\n\n## Prerequisites\n\n- `pip install hfpclawer>=0.19.0`\n- No API keys needed for basic use (S2 + OpenAlex use anonymous tier)\n- **Optional**: Set `S2_API_KEY` env var for 10x faster Semantic Scholar lookups\n- **Optional**: Set `OPENALEX_POLITE_EMAIL` env var for 10x faster OpenAlex lookups\n- **Optional**: Clone `arxiv-metadata-service` repo for L1 local FTS5 (see references/local-db-setup.md)\n\n## Quick Start\n\n### 1. Verify a Single Citation (most common)\n\n```bash\n# Auto mode: tries local DB first, then Semantic Scholar, then OpenAlex\nhfpclawer audit verify \"Fourier Neural Operator for Parametric Partial Differential Equations\"\n\n# Short title works too — includes substring fallback\nhfpclawer audit verify \"Fourier Neural Operator\"\n\n# Exact arXiv ID\nhfpclawer audit verify --arxiv-id 2010.08895\n```\n\n### 2. Use a Specific Source\n\n```bash\n# Local FTS5 only (needs arxiv_meta.db)\nhfpclawer audit verify \"Attention Is All You Need\" --source local\n\n# Semantic Scholar only\nhfpclawer audit verify \"Attention Is All You Need\" --source s2\n\n# OpenAlex only\nhfpclawer audit verify \"Attention Is All You Need\" --source openalex\n```\n\n### 3. Check a Reference List from File\n\n```bash\n# Save citations in a text file, one per paragraph\ncat > refs.txt << 'EOF'\nThe FNO paper (arXiv:2010.08895) shows promising results.\nPINNs were introduced by Raissi et al. (2019) \"Physics-informed neural networks\".\nEOF\n\nhfpclawer audit --refs refs.txt\n```\n\n## Output Format\n\nEach result shows:\n- `[OK] VERIFIED` — paper confirmed; includes title, authors, source\n- `[?] SUSPECTED` — possible but uncertain; shows top matches\n- `[NF] NOT_FOUND` — no evidence of this paper\n- `[ERR] ERROR` — source unavailable (DB not found, rate limited)\n\n```\n[OK] VERIFIED\n  Title: Fourier Neural Operator\n  Authors: Zongyi Li, Nikola Kovachki, Kamyar Azizzadenesheli, ...\n  Sources: openalex: VERIFIED\n```\n\n## How Statuses Are Determined\n\n| Status | Local DB | Semantic Scholar | OpenAlex |\n|--------|:--------:|:----------------:|:--------:|\n| VERIFIED | FTS5 match with title similarity >= 0.70 | Title search ≥ 0.70 | Title search ≥ 0.70 |\n| SUSPECTED | FTS5 match with score 0.40-0.69 | — | — |\n| NOT_FOUND | No FTS5 results | No ≥0.70 match | No ≥0.70 match |\n| ERROR | DB not found / corrupt | 429/5xx / network | 429/5xx / network |\n\n**Title matching**: Title similarity uses `difflib.SequenceMatcher` on\nnormalized (lowercase, punctuation-stripped) titles. Short titles that are\nsubstrings of longer titles also pass the 0.70 threshold.\n\n## Batch Modes\n\n### From a Text File\n\n```bash\nhfpclawer audit --refs references.txt\n```\n\nThe parser detects:\n- arXiv:XXXX.XXXXX identifiers\n- `\"Title\" (Author, Year)` patterns\n- `Author (Year) \"Title\"` patterns\n\n### Via Python API\n\n```python\nfrom hfpclawer.citation_audit import check_citation\n\nresult = check_citation(\n    \"Fourier Neural Operator\",\n    authors_hint=\"Li\",\n    year_hint=2020,\n    source=\"auto\",       # or \"local\" / \"s2\" / \"openalex\"\n)\nprint(result[\"status\"])  # VERIFIED | NOT_FOUND | ERROR\nprint(result.get(\"authors\", \"N/A\"))\nprint(result.get(\"per_source\", {}))  # Per-source breakdown\n```\n\n## Hermes Agent Environment\n\nhfpclawer is built to run inside **Hermes Agent** (and OpenCode) as a first-class tool —\nthe agent discovers the skill, and every command below is callable without leaving the session.\n\n**1. Install the skill** — place this folder under `~/.hermes/skills/research/<slug>/`\n(or install from ClawHub: `clawhub inspect <slug> --file SKILL.md`); Hermes loads it automatically\nand `skill_view(name='<slug>')` returns this file.\n\n**2. Register the MCP server** so the agent calls the CLI as tools:\n\n```yaml\n# ~/.hermes/config.yaml\nmcp:\n  servers:\n    hfpclawer:\n      command: \"hfpclawer\"\n      args: [\"mcp\"]        # stdio mode — Hermes native MCP client\n```\nFor OpenCode / debugging use HTTP mode: `hfpclawer mcp --mode http --port 8765`.\n\n**3. Environment variables** — every one is optional; the pipeline runs with none set:\n\n| Variable | Purpose |\n|:--|:--|\n| `HFPAPERS_DATA_DIR` | state/DB root (XDG `~/.local/share/hfpclawer` when installed; the checkout when run from source) |\n| `HFPAPERS_CONFIG` / `HFPAPERS_LOCAL_CONFIG` | config file + private overlay |\n| `S2_API_KEY` | Semantic Scholar — 10x faster (anonymous tier works) |\n| `OPENALEX_POLITE_EMAIL` | OpenAlex polite pool — 10x faster |\n| `ZOTERO_API_URL` | Zotero local API base (default `http://127.0.0.1:23119/api/`) |\n| `HFPCLAWER_PEER_REPOS` / `HFPCLAWER_REPO_MAP` | address private sibling repos by tag instead of hard-coded paths |\n\n**4. Cost profile** — the mechanical layer (search / dedup / verify / audit / Zotero) needs\n**no LLM and no API key**: 0 tokens. LLM use is opt-in (`sniff`, abstract triage) and `rank`\ntraining is local lightgbm. Nothing in this skill requires a paid key to produce a real result.\n\n**5. Keep private data private** — real author lists, ORCIDs and Zotero ids belong in\n`config.local.yaml` (gitignored) or `~/.hfpclawer/profile.yaml`, never in tracked files.\nThe repo-side profile (the `hfpclawer:` block in a project `AGENTS.md`) is deliberately\n**public-safe**: neutral academic keywords only.\n\n## Common Pitfalls\n\n1. **Short/two-word queries may fail L1** because FTS5's porter stemmer requires\n   actual content words. Use at least 3-4 significant words for local DB queries.\n2. **Semantic Scholar rate-limits aggressively** without API key (~1 req/s,\n   ~100 req/day anonymous). Set `S2_API_KEY` for production use.\n3. **OpenAlex polite pool** is free and gives 10 req/s — set\n   `OPENALEX_POLITE_EMAIL` to your institution email.\n4. **No L1 without arxiv-metadata-service**: The local FTS5 DB requires\n   `git clone` of the separate arxiv-metadata-service repo. Without it,\n   the auto chain starts at L2 (slower but still works).\n\n## Verification Checklist\n\n- [ ] Single citation works: `hfpclawer audit verify \"Known Paper Title\"`\n- [ ] arXiv ID works: `hfpclawer audit verify --arxiv-id 2010.08895`\n- [ ] Non-existent paper returns NOT_FOUND\n- [ ] Network errors return ERROR (not crash)\n- [ ] Batch mode processes multiple citations from file\n- [ ] `hfpclawer audit verify --help` shows source options\n\nFile v0.19.0:_meta.json\n\n{\n  \"ownerId\": \"kn74estzgs04n6ymr1sk3wxnc58739bk\",\n  \"slug\": \"hfpclawer-citation-audit\",\n  \"version\": \"0.19.0\",\n  \"publishedAt\": 1789720510989\n}\n\nFile v0.19.0:skill-card.md\n\n## Description:\n\nVerify academic paper citations using local FTS5 lookup, Semantic Scholar, and OpenAlex, with support for single citation checks and batch reference-list audits.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[diamond2nv](https://clawhub.ai/user/diamond2nv)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nResearchers, reviewers, literature-survey authors, and agents use this skill to check whether cited academic papers exist, identify uncertain matches, and audit reference lists for hallucinated or missing citations.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Citation titles and batch reference lists may be sent to Semantic Scholar or OpenAlex when automatic lookup falls back to network sources.\n\nMitigation: Use the documented local source mode for sensitive or unpublished bibliographies, and review data-sharing expectations before enabling network lookups.\n\nRisk: The skill requires shell, file read, file write, and network permissions to drive the hfpclawer CLI and citation lookup workflow.\n\nMitigation: Install from trusted release sources, review command behavior before use, and grant these permissions only in an environment where the citation data and generated files are appropriate to process.\n\nRisk: External citation sources can be unavailable, rate-limited, or return uncertain matches.\n\nMitigation: Treat SUSPECTED, NOT_FOUND, and ERROR results as review signals rather than final scholarly determinations, and manually verify important citations.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/diamond2nv/skills/hfpclawer-citation-audit)\n- [ClawHub publisher profile](https://clawhub.ai/user/diamond2nv)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Markdown, Shell commands, Configuration, Guidance]\n\n**Output Format:** [Markdown with inline shell commands, configuration snippets, and citation status text]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Reports citation statuses such as VERIFIED, SUSPECTED, NOT_FOUND, and ERROR, with source details when available.]\n\n## Skill Version(s):\n\n0.19.0 (source: ClawHub release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v0.5.0: 3 files, 4470 bytes\n\nFiles: skill-card.md (2323b), SKILL.md (6722b), _meta.json (143b)\n\nFile v0.5.0:SKILL.md\n\n---\nname: hfpclawer-citation-audit\ndescription: >\n  Verify academic paper citations using a three-tier fallback pipeline:\n  local FTS5 database → Semantic Scholar API → OpenAlex API.\n  Supports single citation checks and batch reference-list audits.\n  No external API keys required for basic usage.\ncategory: research\nauthor: Li Shen\nversion: 1.0.0\nmetadata:\n  hermes:\n    tags: [citation, audit, verification, research, academic, paper]\n    related_skills: [hfpclawer-paper-search]\n---\n\n# hfpclawer Citation Audit\n\nVerify whether a cited academic paper actually exists, using a three-tier\npipeline that degrades gracefully when local data or remote APIs are unavailable.\n\n> **Who this is for**: Researchers, reviewers, and literature-survey authors who\n> need to check whether a citation refers to a real paper.\n\n## Overview\n\nThe audit engine tries three sources in order, stopping at the first\nconfirmation:\n\n```\n                    ┌──────────────────────────┐\n User:              │  hfpclawer audit verify   │\n \"Is this paper     │  \"Fourier Neural Operator\"│\n real?\"             └─────────────┬────────────┘\n                                  │\n                    ┌─────────────┼─────────────┐\n                    ▼             ▼              ▼\n              ┌─────────┐  ┌──────────┐  ┌──────────┐\n              │ L1:     │  │ L2:      │  │ L3:      │\n              │ Local   │→ │ Semantic │→ │ OpenAlex │\n              │ FTS5 DB │  │ Scholar  │  │          │\n              │ (1ms)   │  │ (200ms)  │  │ (200ms)  │\n              └─────────┘  └──────────┘  └──────────┘\n```\n\nEach source independently reports one of four statuses:\n- `VERIFIED` — the paper exists in this source\n- `SUSPECTED` — possible match (similar title, but not exact)\n- `NOT_FOUND` — no match found\n- `ERROR` — source unavailable (no local DB / API rate-limited)\n\n## When to Use\n\n- A user cites a paper you cannot find — verify its existence\n- You team is writing a survey / literature review — batch audit the reference list\n- You downloaded an LLM-generated paper and need to fact-check its citations\n- You want to know whether a paper is a known arXiv preprint or a non-existent hallucination\n\n## Prerequisites\n\n- `pip install hfpclawer>=0.5.0`\n- No API keys needed for basic use (S2 + OpenAlex use anonymous tier)\n- **Optional**: Set `S2_API_KEY` env var for 10x faster Semantic Scholar lookups\n- **Optional**: Set `OPENALEX_POLITE_EMAIL` env var for 10x faster OpenAlex lookups\n- **Optional**: Clone `arxiv-metadata-service` repo for L1 local FTS5 (see references/local-db-setup.md)\n\n## Quick Start\n\n### 1. Verify a Single Citation (most common)\n\n```bash\n# Auto mode: tries local DB first, then Semantic Scholar, then OpenAlex\nhfpclawer audit verify \"Fourier Neural Operator for Parametric Partial Differential Equations\"\n\n# Short title works too — includes substring fallback\nhfpclawer audit verify \"Fourier Neural Operator\"\n\n# Exact arXiv ID\nhfpclawer audit verify --arxiv-id 2010.08895\n```\n\n### 2. Use a Specific Source\n\n```bash\n# Local FTS5 only (needs arxiv_meta.db)\nhfpclawer audit verify \"Attention Is All You Need\" --source local\n\n# Semantic Scholar only\nhfpclawer audit verify \"Attention Is All You Need\" --source s2\n\n# OpenAlex only\nhfpclawer audit verify \"Attention Is All You Need\" --source openalex\n```\n\n### 3. Check a Reference List from File\n\n```bash\n# Save citations in a text file, one per paragraph\ncat > refs.txt << 'EOF'\nThe FNO paper (arXiv:2010.08895) shows promising results.\nPINNs were introduced by Raissi et al. (2019) \"Physics-informed neural networks\".\nEOF\n\nhfpclawer audit --refs refs.txt\n```\n\n## Output Format\n\nEach result shows:\n- `[OK] VERIFIED` — paper confirmed; includes title, authors, source\n- `[?] SUSPECTED` — possible but uncertain; shows top matches\n- `[NF] NOT_FOUND` — no evidence of this paper\n- `[ERR] ERROR` — source unavailable (DB not found, rate limited)\n\n```\n[OK] VERIFIED\n  Title: Fourier Neural Operator\n  Authors: Zongyi Li, Nikola Kovachki, Kamyar Azizzadenesheli, ...\n  Sources: openalex: VERIFIED\n```\n\n## How Statuses Are Determined\n\n| Status | Local DB | Semantic Scholar | OpenAlex |\n|--------|:--------:|:----------------:|:--------:|\n| VERIFIED | FTS5 match with title similarity >= 0.70 | Title search ≥ 0.70 | Title search ≥ 0.70 |\n| SUSPECTED | FTS5 match with score 0.40-0.69 | — | — |\n| NOT_FOUND | No FTS5 results | No ≥0.70 match | No ≥0.70 match |\n| ERROR | DB not found / corrupt | 429/5xx / network | 429/5xx / network |\n\n**Title matching**: Title similarity uses `difflib.SequenceMatcher` on\nnormalized (lowercase, punctuation-stripped) titles. Short titles that are\nsubstrings of longer titles also pass the 0.70 threshold.\n\n## Batch Modes\n\n### From a Text File\n\n```bash\nhfpclawer audit --refs references.txt\n```\n\nThe parser detects:\n- arXiv:XXXX.XXXXX identifiers\n- `\"Title\" (Author, Year)` patterns\n- `Author (Year) \"Title\"` patterns\n\n### Via Python API\n\n```python\nfrom hfpclawer.citation_audit import check_citation\n\nresult = check_citation(\n    \"Fourier Neural Operator\",\n    authors_hint=\"Li\",\n    year_hint=2020,\n    source=\"auto\",       # or \"local\" / \"s2\" / \"openalex\"\n)\nprint(result[\"status\"])  # VERIFIED | NOT_FOUND | ERROR\nprint(result.get(\"authors\", \"N/A\"))\nprint(result.get(\"per_source\", {}))  # Per-source breakdown\n```\n\n## Common Pitfalls\n\n1. **Short/two-word queries may fail L1** because FTS5's porter stemmer requires\n   actual content words. Use at least 3-4 significant words for local DB queries.\n2. **Semantic Scholar rate-limits aggressively** without API key (~1 req/s,\n   ~100 req/day anonymous). Set `S2_API_KEY` for production use.\n3. **OpenAlex polite pool** is free and gives 10 req/s — set\n   `OPENALEX_POLITE_EMAIL` to your institution email.\n4. **No L1 without arxiv-metadata-service**: The local FTS5 DB requires\n   `git clone` of the separate arxiv-metadata-service repo. Without it,\n   the auto chain starts at L2 (slower but still works).\n\n## Verification Checklist\n\n- [ ] Single citation works: `hfpclawer audit verify \"Known Paper Title\"`\n- [ ] arXiv ID works: `hfpclawer audit verify --arxiv-id 2010.08895`\n- [ ] Non-existent paper returns NOT_FOUND\n- [ ] Network errors return ERROR (not crash)\n- [ ] Batch mode processes multiple citations from file\n- [ ] `hfpclawer audit verify --help` shows source options\n\nFile v0.5.0:_meta.json\n\n{\n  \"ownerId\": \"kn74estzgs04n6ymr1sk3wxnc58739bk\",\n  \"slug\": \"hfpclawer-citation-audit\",\n  \"version\": \"0.5.0\",\n  \"publishedAt\": 1779286698757\n}\n\nFile v0.5.0:skill-card.md\n\n## Description:\n\nVerify academic paper citations using a three-tier fallback pipeline: local FTS5 database, Semantic Scholar API, and OpenAlex API, with support for single-citation checks and batch reference-list audits.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[diamond2nv](https://clawhub.ai/user/diamond2nv)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nResearchers, reviewers, and literature-survey authors use this skill to check whether cited academic papers exist and to audit reference lists for potentially hallucinated or hard-to-find citations.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Citation queries or proprietary reference lists may be sent to external academic APIs when auto mode falls back to Semantic Scholar or OpenAlex.\n\nMitigation: Use --source local for confidential manuscripts or proprietary reference lists, and document when external lookup sources are acceptable.\n\nRisk: The documented install command allows hfpclawer versions greater than or equal to 0.5.0, so behavior may change across installs.\n\nMitigation: Install in an isolated virtual environment and pin or review the hfpclawer package version before use.\n\nRisk: Remote academic APIs may be rate-limited or unavailable, producing ERROR results instead of verification.\n\nMitigation: Treat ERROR as an inconclusive source result, configure optional API credentials where appropriate, or use the local FTS5 source when available.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/diamond2nv/skills/hfpclawer-citation-audit)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, code, shell commands, configuration, guidance]\n\n**Output Format:** [Markdown with inline bash and Python code blocks]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May describe single-citation checks, batch audits, source selection, optional environment variables, and result status meanings.]\n\n## Skill Version(s):\n\n0.5.0 (source: evidence.release.version and target metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.","readmeExcerpt":"Skill: hfpclawer-citation-audit Owner: diamond2nv Summary: Verify academic paper citations using a three-tier fallback pipeline: local FTS5 database → Semantic Scholar API → OpenAlex API. Supports single citation checks and batch reference-list audits. No external API keys required for basic usage. Tags: latest:0.19.4 Version history: v0.19.4 | 2026-09-22T03:34:17.498Z | user Cross-link the Exo suite (entry skill exo","codeSnippets":[],"executableExamples":[{"language":"text","snippet":"┌──────────────────────────┐\n User:              │  hfpclawer audit verify   │\n \"Is this paper     │  \"Fourier Neural Operator\"│\n real?\"             └─────────────┬────────────┘\n                                  │\n                    ┌─────────────┼─────────────┐\n                    ▼             ▼              ▼\n              ┌─────────┐  ┌──────────┐  ┌──────────┐\n              │ L1:     │  │ L2:      │  │ L3:      │\n              │ Local   │→ │ Semantic │→ │ OpenAlex │\n              │ FTS5 DB │  │ Scholar  │  │          │\n              │ (1ms)   │  │ (200ms)  │  │ (200ms)  │\n              └─────────┘  └──────────┘  └──────────┘"},{"language":"bash","snippet":"# 1) Recommended — uv tool: isolated CLI install, `hfpclawer` on your PATH\nuv tool install hfpclawer\nhfpclawer init                    # writes config.yaml\n\n# 2) Try it without installing anything (ephemeral, one-off runs)\n# pin the version — `uvx`/`uv tool run` reuse an installed tool env (may run an older\n# release), and an unpinned launch is a supply-chain (rug-pull) risk\nuvx \"hfpclawer==0.19.0\" --help\n\n# 3) Inside an existing project / venv (uv-managed)\nuv pip install hfpclawer\n\n# 4) No uv yet — pip and pipx both work\npip install hfpclawer             # or: python -m pip install hfpclawer\npipx install hfpclawer            # CLI-style install, functionally like `uv tool`"},{"language":"bash","snippet":"# Auto mode: tries local DB first, then Semantic Scholar, then OpenAlex\nhfpclawer audit verify \"Fourier Neural Operator for Parametric Partial Differential Equations\"\n\n# Short title works too — includes substring fallback\nhfpclawer audit verify \"Fourier Neural Operator\"\n\n# Exact arXiv ID\nhfpclawer audit verify --arxiv-id 2010.08895"},{"language":"bash","snippet":"# Local FTS5 only (needs arxiv_meta.db)\nhfpclawer audit verify \"Attention Is All You Need\" --source local\n\n# Semantic Scholar only\nhfpclawer audit verify \"Attention Is All You Need\" --source s2\n\n# OpenAlex only\nhfpclawer audit verify \"Attention Is All You Need\" --source openalex"},{"language":"bash","snippet":"# Save citations in a text file, one per paragraph\ncat > refs.txt << 'EOF'\nThe FNO paper (arXiv:2010.08895) shows promising results.\nPINNs were introduced by Raissi et al. (2019) \"Physics-informed neural networks\".\nEOF\n\nhfpclawer audit --refs refs.txt"},{"language":"text","snippet":"[OK] VERIFIED\n  Title: Fourier Neural Operator\n  Authors: Zongyi Li, Nikola Kovachki, Kamyar Azizzadenesheli, ...\n  Sources: openalex: VERIFIED"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: hfpclawer-citation-audit\ndescription: >\n  Verify academic paper citations using a three-tier fallback pipeline:\n  local FTS5 database → Semantic Scholar API → OpenAlex API.\n  Supports single citation checks and batch reference-list audits.\n  No external API keys required for basic usage.\ncategory: research\nauthor: HFPClawer Maintainers\nversion: 1.2.2\npermissions: [shell, file_read, file_write, network]\nmetadata:\n  hermes:\n    homepage: https://github.com/diamond2nv/hfpapers-crawler\n    pypi: https://pypi.org/project/hfpclawer/\n    tags: [citation, audit, verification, research, academic, paper]\n    related_skills: [hfpclawer-paper-search]\ntags: [citation, audit, verification, research, academic, paper]\n---\n\n# hfpclawer Citation Audit\n\n> **Part of the Exo suite** — literature (`hfpclawer`) → experiments (`expflow-pde`) → proofs\n> (`omega-architect`). Three independent CLIs that meet through **files and CLI calls**, never imports.\n> Entry skill: `exo-suite-linkage` (wiring, cost tiers **low → medium → high**, degradation ladder).\n> Install: `uv tool install hfpclawer` · `uv tool install expflow-pde` ·\n> `uv tool install \"omega-architect @ git+https://github.com/diamond2nv/omega-architect@v0.2.3\"`\n\n> 🔒 **Sanitization**: This skill ships in the public repo. Never embed private\n> LAN IPs, real person names, or machine codenames in examples — use\n> `<placeholder>` / `Jane Doe` / `dev@example.com`. Real values live in the\n> repo's gitignored `.hermes/internal-guide.md`. See repo AGENTS.md\n> \"Public-Release Sanitization\".\n\nVerify whether a cited academic paper actually exists, using a three-tier\npipeline that degrades gracefully when local data or remote APIs are unavailable.\n\n> **Who this is for**: Researchers, reviewers, and literature-survey authors who\n> need to check whether a citation refers to a real paper.\n\n## Overview\n\nThe audit engine tries three sources in order, stopping at the first\nconfirmation:\n\n```\n                    ┌──────────────────────────┐\n User:              │  hfpclawer audit verify   │\n \"Is this paper     │  \"Fourier Neural Operator\"│\n real?\"             └─────────────┬────────────┘\n                                  │\n                    ┌─────────────┼─────────────┐\n                    ▼             ▼              ▼\n              ┌─────────┐  ┌──────────┐  ┌──────────┐\n              │ L1:     │  │ L2:      │  │ L3:      │\n              │ Local   │→ │ Semantic │→ │ OpenAlex │\n              │ FTS5 DB │  │ Scholar  │  │          │\n              │ (1ms)   │  │ (200ms)  │  │ (200ms)  │\n              └─────────┘  └──────────┘  └──────────┘\n```\n\nEach source independently reports one of four statuses:\n- `VERIFIED` — the paper exists in this source\n- `SUSPECTED` — possible match (similar title, but not exact)\n- `NOT_FOUND` — no match found\n- `ERROR` — source unavailable (no local DB / API rate-limited)\n\n## When to Use\n\n- A user cites a paper you cannot find — verify its existence\n- You team is writing a survey / literature re"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn74estzgs04n6ymr1sk3wxnc58739bk\",\n  \"slug\": \"hfpclawer-citation-audit\",\n  \"version\": \"0.19.4\",\n  \"publishedAt\": 1790048057498\n}"},{"path":"skill-card.md","content":"## Description:\n\nVerify academic paper citations using local FTS5 data, Semantic Scholar, and OpenAlex, with support for single citation checks and batch reference-list audits.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[diamond2nv](https://clawhub.ai/user/diamond2nv)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nResearchers, reviewers, literature-survey authors, and agents use this skill to check whether cited academic papers exist and to audit reference lists for missing, suspected, or verified citations.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Auto mode may send citation titles, arXiv IDs, and author or year hints to Semantic Scholar or OpenAlex.\n\nMitigation: Use local source mode for confidential bibliographies when possible, and review citation inputs before enabling network-backed sources.\n\nRisk: Optional extras and MCP registration can broaden the runtime surface beyond basic citation checks.\n\nMitigation: Review optional extras and MCP configuration before enabling them in an agent environment.\n\nRisk: Anonymous academic API tiers can be rate-limited, which may produce ERROR statuses or slower audits.\n\nMitigation: Use the local FTS5 source where available, or configure the documented Semantic Scholar and OpenAlex rate-limit options for higher-volume use.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/diamond2nv/skills/hfpclawer-citation-audit)\n- [Project homepage](https://github.com/diamond2nv/hfpapers-crawler)\n- [PyPI package](https://pypi.org/project/hfpclawer/)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Markdown, Shell commands, Configuration, Guidance]\n\n**Output Format:** [Markdown with command examples and citation-status text]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May report VERIFIED, SUSPECTED, NOT_FOUND, or ERROR statuses and include source-specific results.]\n\n## Skill Version(s):\n\n0.19.4 (source: ClawHub release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment."}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"Verify academic paper citations using a three-tier fallback pipeline: local FTS5 database → Semantic Scholar API → OpenAlex API. Supports single citation checks and batch reference-list audits. No external API keys required for basic usage. Skill: hfpclawer-citation-audit Owner: diamond2nv Summary: Verify academic paper citations using a three-tier fallback pipeline: local FTS5 database → Semantic Scholar API → OpenAlex API. Supports single citation checks and batch reference-list audits. No external API keys required for basic usage. Tags: latest:0.19.4 Version history: v0.19.4 | 2026-09-22T03:34:17.498Z | user Cross-link the Exo suite (entry skill exo","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":1255,"uniquenessScore":50,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-11T10:04:29.497Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-11T10:04:29.497Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-11T14:15:37.057Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}