{
  "schemaVersion": "1.0",
  "item": {
    "slug": "lastxdays",
    "name": "lastXdays",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/levineam/lastxdays",
    "canonicalUrl": "https://clawhub.ai/levineam/lastxdays",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/lastxdays",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=lastxdays",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md"
    ],
    "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-05-07T17:22:31.273Z",
      "expiresAt": "2026-05-14T17:22:31.273Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
        "contentDisposition": "attachment; filename=\"afrexai-annual-report-1.0.0.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/lastxdays"
    },
    "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/lastxdays",
    "agentPageUrl": "https://openagent3.xyz/skills/lastxdays/agent",
    "manifestUrl": "https://openagent3.xyz/skills/lastxdays/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/lastxdays/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": "lastXdays Skill",
        "body": "Summarize what happened in the last N days (or a specific YYYY-MM-DD → YYYY-MM-DD range) about a user-provided topic.\n\nDefault behavior is web-first (web_search + selective web_fetch). If optional credentials/data are available, you may ingest Reddit via API and X via x-cli (preferred), API, or local archive, falling back to web search if unavailable."
      },
      {
        "title": "Trigger Patterns",
        "body": "Activate when the user message contains any of:\n\nlastXdays / lastxdays\nlast x days\nA question like: \"what happened in the last N days\" (optionally followed by a topic)"
      },
      {
        "title": "Default Model",
        "body": "Default to sonnet (anthropic/claude-sonnet-4-6) when spawning as a subagent.\n\nUse flash (openrouter/google/gemini-2.0-flash-001) only for simple single-source lookups (one topic, one platform, straightforward synthesis with no file reading required). Flash is unreliable for multi-step agentic work requiring tool chaining (search → fetch → read files → synthesize → report). When in doubt, use sonnet."
      },
      {
        "title": "Input Parsing",
        "body": "Parse from the user message:"
      },
      {
        "title": "1) Date range (preferred if explicit)",
        "body": "If the user supplies a range like:\n\nfrom 2026-01-10 to 2026-02-08\n2026-01-10 → 2026-02-08\n\nThen:\n\nstart = YYYY-MM-DD\nend = YYYY-MM-DD\nIgnore N if both are present."
      },
      {
        "title": "2) Days (N)",
        "body": "Otherwise, infer N:\n\nLook for an integer N associated with the request, e.g.:\n\nlastxdays 7 <topic>\n7 lastxdays <topic>\nwhat happened in the last 14 days (about|re:) <topic>\n\n\nDefault: N = 30\nClamp: N = min(max(N, 1), 365)"
      },
      {
        "title": "3) Sources (optional)",
        "body": "Supported: web|reddit|x|all.\n\nAccept any of:\n\nfor web / sources web\nfor reddit / sources reddit\nfor x / sources x\nfor all / sources all\n\nIf unspecified: sources = all."
      },
      {
        "title": "4) Topic",
        "body": "The remaining text (after removing trigger words, N/range, and source phrases) is the topic.\nIf topic is empty/unclear, ask exactly one clarifying question and stop."
      },
      {
        "title": "Date Range (freshness)",
        "body": "Use an inclusive range in local time:\n\nfreshness = start + \"to\" + end  (e.g., 2026-01-10to2026-02-08)\n\nHelper for “last N days”:\n\nnode scripts/lastxdays_range.js <N>"
      },
      {
        "title": "Optional non-web ingestion (Reddit/X)",
        "body": "Use this helper to ingest Reddit/X when possible:\n\nnode scripts/lastxdays_ingest.js --source=reddit|x --topic \"...\" --start YYYY-MM-DD --end YYYY-MM-DD --limit 40\n\nThe script attempts:\n\nReddit: official API via OAuth (if credentials exist), else returns fallback:true\nX: x-cli search first (if installed/configured), then Twitter API v2 recent search (if bearer token + range <= ~7 days), then local archive at ~/clawd/data/x-archive/, else returns fallback:true\n\nRequired environment variables (if you want API mode):\n\nReddit:\n\nREDDIT_CLIENT_ID\nREDDIT_CLIENT_SECRET\neither REDDIT_REFRESH_TOKEN (recommended) or REDDIT_USERNAME + REDDIT_PASSWORD\noptional: REDDIT_USER_AGENT\n\n\n\nX API (optional; only works for recent ranges on most tiers):\n\nX_BEARER_TOKEN (also accepts TWITTER_BEARER_TOKEN)\n\n\n\nx-cli (optional, preferred for agent use):\n\nInstall: uv tool install x-cli (or from source)\nConfigure credentials in ~/.config/x-cli/.env (supports shared setup with x-mcp)\nIf present, lastxdays_ingest.js uses it before raw API/archive for X search\n\nCredentials loader:\n\nReads ~/.config/last30days/.env if present (does not hard-fail if missing)\nEnvironment variables override .env values (file only fills blanks)"
      },
      {
        "title": "Research Procedure",
        "body": "Compute start/end/freshness.\n\n\nFor each requested source:"
      },
      {
        "title": "Web",
        "body": "Query: <topic>\nRun web_search with freshness (count 5–8)\nOptionally web_fetch 2–6 best links"
      },
      {
        "title": "Reddit",
        "body": "Preferred:\n\nRun node scripts/lastxdays_ingest.js --source=reddit ...\nIf it returns fallback:false, treat returned items[] as “Notable links” (each has a Reddit permalink URL).\nIf items[] is empty / too small to be useful (e.g., <3), you may also run the web fallback to broaden coverage.\n\nFallback (if fallback:true):\n\nRun web_search with query site:reddit.com/r <topic> and the same freshness"
      },
      {
        "title": "X",
        "body": "Preferred:\n\nRun node scripts/lastxdays_ingest.js --source=x ...\nIf mode=x-cli, mode=api, or mode=archive, treat returned items[] as “Notable links” (each has a URL)\n\nIf mode=x-cli, note that X results came from local x-cli execution\nIf mode=archive, note that links come from the local X archive\n\n\nIf items[] is empty / too small to be useful (e.g., <3), you may also run the web fallback to broaden coverage.\n\nFallback (if fallback:true):\n\nRun web_search with query site:x.com <topic> and the same freshness\nExpect web_fetch to fail often on x.com; rely on snippets when needed\n\nSelect and deduplicate links/items:\n\nPrefer authoritative sources for Web\nPrefer high-engagement or highly-informative posts for Reddit/X\nKeep total links/items shown to ~10–20 max"
      },
      {
        "title": "Output Format (Markdown)",
        "body": "Title:\n\n## lastXdays — <N> days — <topic>\n\nIf an explicit range was used, you may replace <N> days with YYYY-MM-DD → YYYY-MM-DD.\n\nThen include sections in this order:\n\nDate range used\n\nYYYY-MM-DD → YYYY-MM-DD (and optionally the freshness string)\n\nTop themes\n\n3–7 bullets summarizing the dominant storylines/trends\n\nNotable links\nGroup by platform in this order, including only platforms actually searched:\n\nWeb\nReddit\nX\n\nFor each link/item:\n\nMarkdown link\nOne line: why it matters\nIf snippet-only (fetch failed/unavailable), say so\n\nWhat to follow up on\n\n3 copy/pasteable next searches"
      },
      {
        "title": "Smoke tests (local)",
        "body": "Date range helper:\n\nnode scripts/lastxdays_range.js 7\n\nReddit ingest (requires creds or it will return fallback=true):\n\nnode scripts/lastxdays_ingest.js --source=reddit --topic \"OpenClaw security vulnerability CVE\" --start 2026-02-07 --end 2026-02-08 --limit 20 --pretty\n\nX ingest (x-cli if installed; else API if bearer token + <=7 days; else local archive; else fallback=true):\n\nnode scripts/lastxdays_ingest.js --source=x --topic \"OpenClaw\" --start 2026-02-07 --end 2026-02-08 --limit 20 --pretty\n\nOptional x-cli direct smoke test:\n\nx-cli -v -j tweet search \"OpenClaw since:2026-02-07 until:2026-02-09\" --max 20"
      },
      {
        "title": "Examples",
        "body": "lastxdays AI agents for web\nlast x days 10 bitcoin ETF flows\nwhat happened in the last 7 days about OpenAI for reddit\n14 lastXdays Apple Vision Pro for web\nlastxdays 30 OpenAI sources all\nlastxdays from 2026-01-01 to 2026-01-15 about Anthropic sources reddit"
      }
    ],
    "body": "lastXdays Skill\n\nSummarize what happened in the last N days (or a specific YYYY-MM-DD → YYYY-MM-DD range) about a user-provided topic.\n\nDefault behavior is web-first (web_search + selective web_fetch). If optional credentials/data are available, you may ingest Reddit via API and X via x-cli (preferred), API, or local archive, falling back to web search if unavailable.\n\nTrigger Patterns\n\nActivate when the user message contains any of:\n\nlastXdays / lastxdays\nlast x days\nA question like: \"what happened in the last N days\" (optionally followed by a topic)\nDefault Model\n\nDefault to sonnet (anthropic/claude-sonnet-4-6) when spawning as a subagent.\n\nUse flash (openrouter/google/gemini-2.0-flash-001) only for simple single-source lookups (one topic, one platform, straightforward synthesis with no file reading required). Flash is unreliable for multi-step agentic work requiring tool chaining (search → fetch → read files → synthesize → report). When in doubt, use sonnet.\n\nInput Parsing\n\nParse from the user message:\n\n1) Date range (preferred if explicit)\n\nIf the user supplies a range like:\n\nfrom 2026-01-10 to 2026-02-08\n2026-01-10 → 2026-02-08\n\nThen:\n\nstart = YYYY-MM-DD\nend = YYYY-MM-DD\nIgnore N if both are present.\n2) Days (N)\n\nOtherwise, infer N:\n\nLook for an integer N associated with the request, e.g.:\nlastxdays 7 <topic>\n7 lastxdays <topic>\nwhat happened in the last 14 days (about|re:) <topic>\nDefault: N = 30\nClamp: N = min(max(N, 1), 365)\n3) Sources (optional)\n\nSupported: web|reddit|x|all.\n\nAccept any of:\n\nfor web / sources web\nfor reddit / sources reddit\nfor x / sources x\nfor all / sources all\n\nIf unspecified: sources = all.\n\n4) Topic\nThe remaining text (after removing trigger words, N/range, and source phrases) is the topic.\nIf topic is empty/unclear, ask exactly one clarifying question and stop.\nDate Range (freshness)\n\nUse an inclusive range in local time:\n\nfreshness = start + \"to\" + end (e.g., 2026-01-10to2026-02-08)\n\nHelper for “last N days”:\n\nnode scripts/lastxdays_range.js <N>\nOptional non-web ingestion (Reddit/X)\n\nUse this helper to ingest Reddit/X when possible:\n\nnode scripts/lastxdays_ingest.js --source=reddit|x --topic \"...\" --start YYYY-MM-DD --end YYYY-MM-DD --limit 40\n\nThe script attempts:\n\nReddit: official API via OAuth (if credentials exist), else returns fallback:true\nX: x-cli search first (if installed/configured), then Twitter API v2 recent search (if bearer token + range <= ~7 days), then local archive at ~/clawd/data/x-archive/, else returns fallback:true\n\nRequired environment variables (if you want API mode):\n\nReddit:\n\nREDDIT_CLIENT_ID\nREDDIT_CLIENT_SECRET\neither REDDIT_REFRESH_TOKEN (recommended) or REDDIT_USERNAME + REDDIT_PASSWORD\noptional: REDDIT_USER_AGENT\n\nX API (optional; only works for recent ranges on most tiers):\n\nX_BEARER_TOKEN (also accepts TWITTER_BEARER_TOKEN)\n\nx-cli (optional, preferred for agent use):\n\nInstall: uv tool install x-cli (or from source)\nConfigure credentials in ~/.config/x-cli/.env (supports shared setup with x-mcp)\nIf present, lastxdays_ingest.js uses it before raw API/archive for X search\n\nCredentials loader:\n\nReads ~/.config/last30days/.env if present (does not hard-fail if missing)\nEnvironment variables override .env values (file only fills blanks)\nResearch Procedure\n\nCompute start/end/freshness.\n\nFor each requested source:\n\nWeb\nQuery: <topic>\nRun web_search with freshness (count 5–8)\nOptionally web_fetch 2–6 best links\nReddit\n\nPreferred:\n\nRun node scripts/lastxdays_ingest.js --source=reddit ...\nIf it returns fallback:false, treat returned items[] as “Notable links” (each has a Reddit permalink URL).\nIf items[] is empty / too small to be useful (e.g., <3), you may also run the web fallback to broaden coverage.\n\nFallback (if fallback:true):\n\nRun web_search with query site:reddit.com/r <topic> and the same freshness\nX\n\nPreferred:\n\nRun node scripts/lastxdays_ingest.js --source=x ...\nIf mode=x-cli, mode=api, or mode=archive, treat returned items[] as “Notable links” (each has a URL)\nIf mode=x-cli, note that X results came from local x-cli execution\nIf mode=archive, note that links come from the local X archive\nIf items[] is empty / too small to be useful (e.g., <3), you may also run the web fallback to broaden coverage.\n\nFallback (if fallback:true):\n\nRun web_search with query site:x.com <topic> and the same freshness\nExpect web_fetch to fail often on x.com; rely on snippets when needed\nSelect and deduplicate links/items:\nPrefer authoritative sources for Web\nPrefer high-engagement or highly-informative posts for Reddit/X\nKeep total links/items shown to ~10–20 max\nOutput Format (Markdown)\n\nTitle:\n\n## lastXdays — <N> days — <topic>\nIf an explicit range was used, you may replace <N> days with YYYY-MM-DD → YYYY-MM-DD.\n\nThen include sections in this order:\n\nDate range used\nYYYY-MM-DD → YYYY-MM-DD (and optionally the freshness string)\nTop themes\n3–7 bullets summarizing the dominant storylines/trends\nNotable links Group by platform in this order, including only platforms actually searched:\nWeb\nReddit\nX\n\nFor each link/item:\n\nMarkdown link\nOne line: why it matters\nIf snippet-only (fetch failed/unavailable), say so\nWhat to follow up on\n3 copy/pasteable next searches\nSmoke tests (local)\n\nDate range helper:\n\nnode scripts/lastxdays_range.js 7\n\nReddit ingest (requires creds or it will return fallback=true):\n\nnode scripts/lastxdays_ingest.js --source=reddit --topic \"OpenClaw security vulnerability CVE\" --start 2026-02-07 --end 2026-02-08 --limit 20 --pretty\n\nX ingest (x-cli if installed; else API if bearer token + <=7 days; else local archive; else fallback=true):\n\nnode scripts/lastxdays_ingest.js --source=x --topic \"OpenClaw\" --start 2026-02-07 --end 2026-02-08 --limit 20 --pretty\n\nOptional x-cli direct smoke test:\n\nx-cli -v -j tweet search \"OpenClaw since:2026-02-07 until:2026-02-09\" --max 20\nExamples\nlastxdays AI agents for web\nlast x days 10 bitcoin ETF flows\nwhat happened in the last 7 days about OpenAI for reddit\n14 lastXdays Apple Vision Pro for web\nlastxdays 30 OpenAI sources all\nlastxdays from 2026-01-01 to 2026-01-15 about Anthropic sources reddit"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/levineam/lastxdays",
    "publisherUrl": "https://clawhub.ai/levineam/lastxdays",
    "owner": "levineam",
    "version": "1.0.2",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/lastxdays",
    "downloadUrl": "https://openagent3.xyz/downloads/lastxdays",
    "agentUrl": "https://openagent3.xyz/skills/lastxdays/agent",
    "manifestUrl": "https://openagent3.xyz/skills/lastxdays/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/lastxdays/agent.md"
  }
}