← Back to Skills Marketplace
hunter-wrynn

Fetch the latest AI daily brief from imjuya/juya-ai-daily (GitHub) and return the Overview (summary) section.

by Haoxuan Ma · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ⚠ suspicious
297
Downloads
0
Stars
2
Active Installs
1
Versions
Install in OpenClaw
/install juya-ai-daily-skills
Description
Fetch the latest AI daily brief from imjuya/juya-ai-daily (GitHub) and return the Overview (summary) section.
README (SKILL.md)

Juya AI Daily (AI 日报)

Fetch the latest daily AI news brief from the public repo imjuya/juya-ai-daily and return the summary / overview section.

When to use (trigger phrases)

  • “AI 日报 / AI 早报 / 今日 AI 新闻”
  • “拉取今天最新的 AI 新闻总结”
  • “juya ai daily”

What you should return

  • The latest available date (from the repo)
  • The ## 概览 section only (this is the repo’s “summary view”)
  • A short note: “Reply with #n if you want the detailed explanation for item n”

Fetch latest summary (bash)

This repo stores daily posts under BACKUP/*.md (public, no auth required). If you run this frequently and hit GitHub rate limits, set GITHUB_TOKEN (or GH_TOKEN) to increase limits.

set -euo pipefail

API="https://api.github.com/repos/imjuya/juya-ai-daily/contents/BACKUP?ref=master"

latest_url="$(
  auth=()
  if [ -n "${GITHUB_TOKEN:-}" ]; then
    auth=(-H "Authorization: Bearer $GITHUB_TOKEN")
  elif [ -n "${GH_TOKEN:-}" ]; then
    auth=(-H "Authorization: Bearer $GH_TOKEN")
  fi
  curl -fsSL "${auth[@]}" -H "Accept: application/vnd.github+json" "$API" | node -e '
    const fs = require("node:fs");
    const items = JSON.parse(fs.readFileSync(0, "utf8"));
    const candidates = items
      .filter((it) => it && typeof it.name === "string" && typeof it.download_url === "string")
      .map((it) => {
        const m = it.name.match(/(?:^|_)(\d{4}-\d{2}-\d{2})\.md$/);
        return m ? { ...it, date: m[1] } : null;
      })
      .filter(Boolean);
    if (candidates.length === 0) {
      throw new Error("No BACKUP markdown files found.");
    }
    candidates.sort((a, b) => (a.date \x3C b.date ? -1 : a.date > b.date ? 1 : 0));
    console.log(candidates[candidates.length - 1].download_url);
  '
)"

latest_date="$(basename "$latest_url" .md | sed -E 's/^[0-9]+_//')"

echo "Latest: $latest_date" >&2

curl -fsSL "$latest_url" | awk '
  done { next }
  /^## 概览/ { in_section=1 }
  in_section && /^---$/ { in_section=0; done=1 }
  in_section && /^\\* \\* \\*$/ { in_section=0; done=1 }
  in_section { print }
'

Optional: fetch detailed explanation for a specific item #n

If the user asks for details for item #3, fetch the same latest file and extract that block:

set -euo pipefail

n="3"

API="https://api.github.com/repos/imjuya/juya-ai-daily/contents/BACKUP?ref=master"
latest_url="$(
  auth=()
  if [ -n "${GITHUB_TOKEN:-}" ]; then
    auth=(-H "Authorization: Bearer $GITHUB_TOKEN")
  elif [ -n "${GH_TOKEN:-}" ]; then
    auth=(-H "Authorization: Bearer $GH_TOKEN")
  fi
  curl -fsSL "${auth[@]}" -H "Accept: application/vnd.github+json" "$API" | node -e '
    const fs = require("node:fs");
    const items = JSON.parse(fs.readFileSync(0, "utf8"));
    const candidates = items
      .filter((it) => it && typeof it.name === "string" && typeof it.download_url === "string")
      .map((it) => {
        const m = it.name.match(/(?:^|_)(\d{4}-\d{2}-\d{2})\.md$/);
        return m ? { ...it, date: m[1] } : null;
      })
      .filter(Boolean);
    candidates.sort((a, b) => (a.date \x3C b.date ? -1 : a.date > b.date ? 1 : 0));
    console.log(candidates[candidates.length - 1].download_url);
  '
)"

curl -fsSL "$latest_url" | awk -v n="$n" '
  done { next }
  $0 ~ /^## \\[/ {
    if (in_section && $0 !~ ("`#" n "`")) {
      in_section=0
      done=1
    }
    if (!in_section && $0 ~ ("`#" n "`")) {
      in_section=1
    }
  }
  in_section && /^\\* \\* \\*$/ { in_section=0; done=1 }
  in_section { print }
'
Usage Guidance
This skill appears to do what it says (fetch a public GitHub markdown and extract the 'Overview'), but there are a few mismatches you should address before installing or running it unattended: - The SKILL.md uses node (node -e), awk, sed, basename and other shell utilities but the registry metadata only lists curl. Ensure your agent environment actually provides these binaries or update the metadata. If you cannot provide node, the script will fail or behave unexpectedly. - The script will read GITHUB_TOKEN or GH_TOKEN from the environment if present. If you supply a token to avoid rate limits, use a narrowly scoped, short-lived GitHub token (or avoid setting one). Do not set broad-scoped personal tokens in an environment accessible to untrusted skills. - Because the skill downloads and prints content from a public repo, it will surface whatever text is in those markdown files. That content could include arbitrary text or links; review returned content before acting on it. - If you want to proceed, either (1) run the provided commands manually once to verify output and that no unexpected binaries are invoked, or (2) update the skill metadata to declare 'node' and other required tools and list optional env vars (GITHUB_TOKEN/GH_TOKEN) so the requirements match the instructions. Given these mismatches (undeclared runtime binaries and undeclared optional env vars), I rate the package as suspicious rather than clearly benign. If the owner updates the metadata to explicitly list node and the optional env vars, this would likely be downgraded to benign.
Capability Analysis
Type: OpenClaw Skill Name: juya-ai-daily-skills Version: 1.0.0 The skill is designed to fetch and parse AI news summaries from a specific public GitHub repository (imjuya/juya-ai-daily). It uses standard system utilities (curl, node, awk) to interact with the GitHub API and extract content from markdown files, and while it accesses GITHUB_TOKEN to manage API rate limits, the token is only transmitted to the official GitHub API endpoint.
Capability Assessment
Purpose & Capability
The name/description match the instructions: the script lists BACKUP/*.md in imjuya/juya-ai-daily and extracts the '## 概览' section. That capability does not require credentials for public repos and is appropriate for the stated purpose. However, the SKILL.md's runtime commands use additional binaries (node, awk, sed, basename, etc.) beyond the single declared dependency (curl), creating an inconsistency between claimed requirements and actual runtime needs.
Instruction Scope
The instructions confine themselves to calling the GitHub API and downloading a public markdown file, then extracting the overview section. They conditionally read GITHUB_TOKEN or GH_TOKEN to increase rate limits (optional), and they print the latest date to stderr. The script does not instruct reading arbitrary host files or posting data to third-party endpoints beyond api.github.com and raw file download URLs. Still, the instructions run an embedded node -e script and several shell utilities that are not declared; that mismatch could cause runtime surprises.
Install Mechanism
This is instruction-only (no install spec, no code files). That is the lowest-risk install mechanism: nothing is downloaded or written by the registry/install process itself. The runtime will invoke curl and other tools already present on the host.
Credentials
The metadata declares no required environment variables, but the SKILL.md conditionally reads GITHUB_TOKEN and GH_TOKEN if present. Asking for optional GitHub tokens to raise rate limits is reasonable, but the skill metadata should declare these as optional env vars. More importantly, if a user provides a token, it grants GitHub API access — the token should be scoped and limited. The script will accept any token present in the environment, so users should not set broad-scoped or long-lived tokens without understanding the risk.
Persistence & Privilege
The skill is not always-enabled, it does not request persistent system presence, and it does not modify other skills' configurations. Autonomous invocation is enabled by default (normal) but not itself a red flag here.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install juya-ai-daily-skills
  3. After installation, invoke the skill by name or use /juya-ai-daily-skills
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
first try
Metadata
Slug juya-ai-daily-skills
Version 1.0.0
License MIT-0
All-time Installs 2
Active Installs 2
Total Versions 1
Frequently Asked Questions

What is Fetch the latest AI daily brief from imjuya/juya-ai-daily (GitHub) and return the Overview (summary) section.?

Fetch the latest AI daily brief from imjuya/juya-ai-daily (GitHub) and return the Overview (summary) section. It is an AI Agent Skill for Claude Code / OpenClaw, with 297 downloads so far.

How do I install Fetch the latest AI daily brief from imjuya/juya-ai-daily (GitHub) and return the Overview (summary) section.?

Run "/install juya-ai-daily-skills" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Fetch the latest AI daily brief from imjuya/juya-ai-daily (GitHub) and return the Overview (summary) section. free?

Yes, Fetch the latest AI daily brief from imjuya/juya-ai-daily (GitHub) and return the Overview (summary) section. is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does Fetch the latest AI daily brief from imjuya/juya-ai-daily (GitHub) and return the Overview (summary) section. support?

Fetch the latest AI daily brief from imjuya/juya-ai-daily (GitHub) and return the Overview (summary) section. is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Fetch the latest AI daily brief from imjuya/juya-ai-daily (GitHub) and return the Overview (summary) section.?

It is built and maintained by Haoxuan Ma (@hunter-wrynn); the current version is v1.0.0.

💬 Comments