{
  "schemaVersion": "1.0",
  "item": {
    "slug": "agentic-paper-digest-skill",
    "name": "Agentic Paper Digest Skill",
    "source": "tencent",
    "type": "skill",
    "category": "AI 智能",
    "sourceUrl": "https://clawhub.ai/matanle51/agentic-paper-digest-skill",
    "canonicalUrl": "https://clawhub.ai/matanle51/agentic-paper-digest-skill",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/agentic-paper-digest-skill",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=agentic-paper-digest-skill",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "scripts/bootstrap.sh",
      "scripts/run_api.sh",
      "scripts/run_cli.sh",
      "scripts/stop_api.sh"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-23T16:43:11.935Z",
      "expiresAt": "2026-04-30T16:43:11.935Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
        "contentDisposition": "attachment; filename=\"4claw-imageboard-1.0.1.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/agentic-paper-digest-skill"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/agentic-paper-digest-skill",
    "agentPageUrl": "https://openagent3.xyz/skills/agentic-paper-digest-skill/agent",
    "manifestUrl": "https://openagent3.xyz/skills/agentic-paper-digest-skill/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/agentic-paper-digest-skill/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "When to use",
        "body": "Fetch a recent paper digest from arXiv and Hugging Face.\nProduce JSON output for downstream agents.\nRun a local API server when a polling workflow is needed."
      },
      {
        "title": "Prereqs",
        "body": "Python 3 and network access.\nLLM access via OPENAI_API_KEY or an OpenAI-compatible provider via LITELLM_API_BASE + LITELLM_API_KEY.\ngit is optional for bootstrap; otherwise curl/wget (or Python) is used to download the repo."
      },
      {
        "title": "Get the code and install",
        "body": "Preferred: run the bootstrap helper script. It uses git when available or falls back to a zip download.\n\nbash \"{baseDir}/scripts/bootstrap.sh\"\n\nOverride the clone location by setting PROJECT_DIR.\n\nPROJECT_DIR=\"$HOME/agentic_paper_digest\" bash \"{baseDir}/scripts/bootstrap.sh\""
      },
      {
        "title": "Run (CLI preferred)",
        "body": "bash \"{baseDir}/scripts/run_cli.sh\"\n\nPass through CLI flags as needed.\n\nbash \"{baseDir}/scripts/run_cli.sh\" --window-hours 24 --sources arxiv,hf"
      },
      {
        "title": "Run (API optional)",
        "body": "bash \"{baseDir}/scripts/run_api.sh\"\n\nTrigger runs and read results.\n\ncurl -X POST http://127.0.0.1:8000/api/run\ncurl http://127.0.0.1:8000/api/status\ncurl http://127.0.0.1:8000/api/papers\n\nStop the API server if needed.\n\nbash \"{baseDir}/scripts/stop_api.sh\""
      },
      {
        "title": "Outputs",
        "body": "CLI --json prints run_id, seen, kept, window_start, and window_end.\nData store: data/papers.sqlite3 (under PROJECT_DIR).\nAPI: POST /api/run, GET /api/status, GET /api/papers, GET/POST /api/topics, GET/POST /api/settings."
      },
      {
        "title": "Configuration",
        "body": "Config files live in PROJECT_DIR/config. Environment variables can be set in the shell or via a .env file. The wrappers here auto-load .env from PROJECT_DIR (override with ENV_FILE=/path/to/.env).\n\nEnvironment (.env or exported vars)\n\nOPENAI_API_KEY: required for OpenAI models (litellm reads this).\nLITELLM_API_BASE, LITELLM_API_KEY: use an OpenAI-compatible proxy/provider.\nLITELLM_MODEL_RELEVANCE, LITELLM_MODEL_SUMMARY: models for relevance and summarization (summary defaults to relevance model if unset).\nLITELLM_TEMPERATURE_RELEVANCE, LITELLM_TEMPERATURE_SUMMARY: lower for more deterministic output.\nLITELLM_MAX_RETRIES: retry count for LLM calls.\nLITELLM_DROP_PARAMS=1: drop unsupported params to avoid provider errors.\nWINDOW_HOURS, APP_TZ: recency window and timezone.\nARXIV_CATEGORIES: comma-separated categories (default includes cs.CL,cs.AI,cs.LG,stat.ML,cs.CR).\nARXIV_API_BASE, HF_API_BASE: override source endpoints if needed.\nARXIV_MAX_RESULTS, ARXIV_PAGE_SIZE: arXiv paging limits.\nMAX_CANDIDATES_PER_SOURCE: cap candidates per source before LLM filtering.\nFETCH_TIMEOUT_S, REQUEST_TIMEOUT_S: source fetch and per-request timeouts.\nENABLE_PDF_TEXT=1: include first-page PDF text in summaries; requires PyMuPDF (pip install pymupdf).\nDATA_DIR: location for papers.sqlite3.\nCORS_ORIGINS: comma-separated origins allowed by the API server (UI use).\nPath overrides: TOPICS_PATH, SETTINGS_PATH, AFFILIATION_BOOSTS_PATH.\n\nConfig files\n\nconfig/topics.json: list of topics with id, label, description, max_per_topic, and keywords. The relevance classifier must output topic IDs exactly as defined here. max_per_topic also caps results in GET /api/papers when apply_topic_caps=1.\nconfig/settings.json: overrides fetch limits (arxiv_max_results, arxiv_page_size, fetch_timeout_s, max_candidates_per_source). Updated via POST /api/settings.\nconfig/affiliations.json: list of {pattern, weight} boosts applied by substring match over affiliations. Weights add up and are capped at 1.0. Invalid JSON disables boosts, so keep the file strict JSON (no trailing commas)."
      },
      {
        "title": "Mandatory workflow (follow step-by-step)",
        "body": "You first MUST open and read the configuration from the github repo: https://github.com/matanle51/agentic_paper_digest you downloaded:\n\nLoad config/topics.json, config/settings.json, and config/affiliations.json (if present).\nNote current topic IDs, caps, and fetch limits before asking the user to change them.\n\n\nASK THE USER TO PROVIDE IT'S PREFERENCES ABOUT THE FOLLOWING (HELP THE USER):\n\nTopics of interest → update config/topics.json (topics[].id/label/description/keywords, max_per_topic).\nShow current defaults and ask whether to keep or change them.\nTime window (hours) → set WINDOW_HOURS (or pass --window-hours to CLI) only if the user cares; otherwise keep default to 24h.\nASK THE USER TO FILL THE FOLLOWING PARAMETERS (explain the user why are their intent): ARXIV_CATEGORIES, ARXIV_MAX_RESULTS, ARXIV_PAGE_SIZE, MAX_CANDIDATES_PER_SOURCE.\nAsk whether to keep defaults and show the current values.\nModel/provider → set OPENAI_API_KEY or LITELLM_API_KEY (+ LITELLM_API_BASE if proxy), and set LITELLM_MODEL_RELEVANCE/LITELLM_MODEL_SUMMARY.\nDo NOT ask by default: timezone, quality vs cost, timeouts, PDF text, affiliation biasing, sources list. Use defaults unless the user requests changes.\n\n\nConfirm workspace path: Ask where to clone/run. Default to PROJECT_DIR=\"$HOME/agentic_paper_digest\" if the user doesn’t care. Never hardcode /Users/... paths.\nBootstrap the repo: Run the bootstrap script (unless the repo already exists and the user says to skip).\nCreate or verify .env:\n\nIf .env is missing, create it from .env.example (in the repo), then ask the user to fill keys and any requested preferences.\nEnsure at least one of OPENAI_API_KEY or LITELLM_API_KEY is set before running.\n\n\nApply config changes:\n\nEdit JSON files directly (or use POST /api/topics and POST /api/settings if running the API).\n\n\nRun the pipeline:\n\nPrefer scripts/run_cli.sh for one-off JSON output.\nUse scripts/run_api.sh only if the user explicitly asks for UI/API access or polling.\n\n\nReport results:\n\nIf results are sparse, suggest increasing WINDOW_HOURS, ARXIV_MAX_RESULTS, or broadening topics."
      },
      {
        "title": "Getting good results",
        "body": "Help the user define and keep topics focused and mutually exclusive so the classifier can choose the right IDs.\nUse a stronger model for summaries than for relevance if quality matters.\nIf using openAI's model, defualy to gpt-5-mini for good tradeoff.\nIncrease WINDOW_HOURS or ARXIV_MAX_RESULTS when results are sparse, or lower them if results are too noisy.\nTune ARXIV_CATEGORIES to your research domains.\nEnable PDF text (ENABLE_PDF_TEXT=1) when abstracts are too thin.\nUse modest affiliation weights to bias ranking without swamping relevance.\nBE PROACTIVE AND HELP THE USER TUNE THE SKILL FOR GOOD RESULTS!"
      },
      {
        "title": "Troubleshooting",
        "body": "Port 8000 busy: run bash \"{baseDir}/scripts/stop_api.sh\" or pass --port to the API command.\nEmpty results: increase WINDOW_HOURS or verify the API key in .env.\nMissing API key errors: export OPENAI_API_KEY or LITELLM_API_KEY in the shell before running."
      }
    ],
    "body": "Agentic Paper Digest\nWhen to use\nFetch a recent paper digest from arXiv and Hugging Face.\nProduce JSON output for downstream agents.\nRun a local API server when a polling workflow is needed.\nPrereqs\nPython 3 and network access.\nLLM access via OPENAI_API_KEY or an OpenAI-compatible provider via LITELLM_API_BASE + LITELLM_API_KEY.\ngit is optional for bootstrap; otherwise curl/wget (or Python) is used to download the repo.\nGet the code and install\nPreferred: run the bootstrap helper script. It uses git when available or falls back to a zip download.\nbash \"{baseDir}/scripts/bootstrap.sh\"\n\nOverride the clone location by setting PROJECT_DIR.\nPROJECT_DIR=\"$HOME/agentic_paper_digest\" bash \"{baseDir}/scripts/bootstrap.sh\"\n\nRun (CLI preferred)\nbash \"{baseDir}/scripts/run_cli.sh\"\n\nPass through CLI flags as needed.\nbash \"{baseDir}/scripts/run_cli.sh\" --window-hours 24 --sources arxiv,hf\n\nRun (API optional)\nbash \"{baseDir}/scripts/run_api.sh\"\n\nTrigger runs and read results.\ncurl -X POST http://127.0.0.1:8000/api/run\ncurl http://127.0.0.1:8000/api/status\ncurl http://127.0.0.1:8000/api/papers\n\nStop the API server if needed.\nbash \"{baseDir}/scripts/stop_api.sh\"\n\nOutputs\nCLI --json prints run_id, seen, kept, window_start, and window_end.\nData store: data/papers.sqlite3 (under PROJECT_DIR).\nAPI: POST /api/run, GET /api/status, GET /api/papers, GET/POST /api/topics, GET/POST /api/settings.\nConfiguration\n\nConfig files live in PROJECT_DIR/config. Environment variables can be set in the shell or via a .env file. The wrappers here auto-load .env from PROJECT_DIR (override with ENV_FILE=/path/to/.env).\n\nEnvironment (.env or exported vars)\n\nOPENAI_API_KEY: required for OpenAI models (litellm reads this).\nLITELLM_API_BASE, LITELLM_API_KEY: use an OpenAI-compatible proxy/provider.\nLITELLM_MODEL_RELEVANCE, LITELLM_MODEL_SUMMARY: models for relevance and summarization (summary defaults to relevance model if unset).\nLITELLM_TEMPERATURE_RELEVANCE, LITELLM_TEMPERATURE_SUMMARY: lower for more deterministic output.\nLITELLM_MAX_RETRIES: retry count for LLM calls.\nLITELLM_DROP_PARAMS=1: drop unsupported params to avoid provider errors.\nWINDOW_HOURS, APP_TZ: recency window and timezone.\nARXIV_CATEGORIES: comma-separated categories (default includes cs.CL,cs.AI,cs.LG,stat.ML,cs.CR).\nARXIV_API_BASE, HF_API_BASE: override source endpoints if needed.\nARXIV_MAX_RESULTS, ARXIV_PAGE_SIZE: arXiv paging limits.\nMAX_CANDIDATES_PER_SOURCE: cap candidates per source before LLM filtering.\nFETCH_TIMEOUT_S, REQUEST_TIMEOUT_S: source fetch and per-request timeouts.\nENABLE_PDF_TEXT=1: include first-page PDF text in summaries; requires PyMuPDF (pip install pymupdf).\nDATA_DIR: location for papers.sqlite3.\nCORS_ORIGINS: comma-separated origins allowed by the API server (UI use).\nPath overrides: TOPICS_PATH, SETTINGS_PATH, AFFILIATION_BOOSTS_PATH.\n\nConfig files\n\nconfig/topics.json: list of topics with id, label, description, max_per_topic, and keywords. The relevance classifier must output topic IDs exactly as defined here. max_per_topic also caps results in GET /api/papers when apply_topic_caps=1.\nconfig/settings.json: overrides fetch limits (arxiv_max_results, arxiv_page_size, fetch_timeout_s, max_candidates_per_source). Updated via POST /api/settings.\nconfig/affiliations.json: list of {pattern, weight} boosts applied by substring match over affiliations. Weights add up and are capped at 1.0. Invalid JSON disables boosts, so keep the file strict JSON (no trailing commas).\nMandatory workflow (follow step-by-step)\nYou first MUST open and read the configuration from the github repo: https://github.com/matanle51/agentic_paper_digest you downloaded:\nLoad config/topics.json, config/settings.json, and config/affiliations.json (if present).\nNote current topic IDs, caps, and fetch limits before asking the user to change them.\nASK THE USER TO PROVIDE IT'S PREFERENCES ABOUT THE FOLLOWING (HELP THE USER):\nTopics of interest → update config/topics.json (topics[].id/label/description/keywords, max_per_topic).\nShow current defaults and ask whether to keep or change them.\nTime window (hours) → set WINDOW_HOURS (or pass --window-hours to CLI) only if the user cares; otherwise keep default to 24h.\nASK THE USER TO FILL THE FOLLOWING PARAMETERS (explain the user why are their intent): ARXIV_CATEGORIES, ARXIV_MAX_RESULTS, ARXIV_PAGE_SIZE, MAX_CANDIDATES_PER_SOURCE.\nAsk whether to keep defaults and show the current values.\nModel/provider → set OPENAI_API_KEY or LITELLM_API_KEY (+ LITELLM_API_BASE if proxy), and set LITELLM_MODEL_RELEVANCE/LITELLM_MODEL_SUMMARY.\nDo NOT ask by default: timezone, quality vs cost, timeouts, PDF text, affiliation biasing, sources list. Use defaults unless the user requests changes.\nConfirm workspace path: Ask where to clone/run. Default to PROJECT_DIR=\"$HOME/agentic_paper_digest\" if the user doesn’t care. Never hardcode /Users/... paths.\nBootstrap the repo: Run the bootstrap script (unless the repo already exists and the user says to skip).\nCreate or verify .env:\nIf .env is missing, create it from .env.example (in the repo), then ask the user to fill keys and any requested preferences.\nEnsure at least one of OPENAI_API_KEY or LITELLM_API_KEY is set before running.\nApply config changes:\nEdit JSON files directly (or use POST /api/topics and POST /api/settings if running the API).\nRun the pipeline:\nPrefer scripts/run_cli.sh for one-off JSON output.\nUse scripts/run_api.sh only if the user explicitly asks for UI/API access or polling.\nReport results:\nIf results are sparse, suggest increasing WINDOW_HOURS, ARXIV_MAX_RESULTS, or broadening topics.\nGetting good results\nHelp the user define and keep topics focused and mutually exclusive so the classifier can choose the right IDs.\nUse a stronger model for summaries than for relevance if quality matters.\nIf using openAI's model, defualy to gpt-5-mini for good tradeoff.\nIncrease WINDOW_HOURS or ARXIV_MAX_RESULTS when results are sparse, or lower them if results are too noisy.\nTune ARXIV_CATEGORIES to your research domains.\nEnable PDF text (ENABLE_PDF_TEXT=1) when abstracts are too thin.\nUse modest affiliation weights to bias ranking without swamping relevance.\nBE PROACTIVE AND HELP THE USER TUNE THE SKILL FOR GOOD RESULTS!\nTroubleshooting\nPort 8000 busy: run bash \"{baseDir}/scripts/stop_api.sh\" or pass --port to the API command.\nEmpty results: increase WINDOW_HOURS or verify the API key in .env.\nMissing API key errors: export OPENAI_API_KEY or LITELLM_API_KEY in the shell before running."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/matanle51/agentic-paper-digest-skill",
    "publisherUrl": "https://clawhub.ai/matanle51/agentic-paper-digest-skill",
    "owner": "matanle51",
    "version": "0.3.3",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/agentic-paper-digest-skill",
    "downloadUrl": "https://openagent3.xyz/downloads/agentic-paper-digest-skill",
    "agentUrl": "https://openagent3.xyz/skills/agentic-paper-digest-skill/agent",
    "manifestUrl": "https://openagent3.xyz/skills/agentic-paper-digest-skill/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/agentic-paper-digest-skill/agent.md"
  }
}