Daily
sickn33/agentic-awesome-skills
Documentation and capabilities reference for Daily. An agent skill from sickn33/agentic-awesome-skills.
基于预设 URL 列表抓取内容,筛选高质量技术信息并生成每日 Markdown 报告. An agent skill from rookie-ricardo/erduo-skills.
$ npx skills add rookie-ricardo/erduo-skills --skill daily-news-report -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install rookie-ricardo/erduo-skills daily-news-report --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/rookie-ricardo/erduo-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/daily-news-report .claude/skills/daily-news-report && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "daily-news-report" agent skill from https://github.com/rookie-ricardo/erduo-skills/tree/main/skills/daily-news-report into .claude/skills/daily-news-report/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "daily-news-report", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/rookie-ricardo/erduo-skills/tree/main/skills/daily-news-reportType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add rookie-ricardo/erduo-skills --skill daily-news-report -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install rookie-ricardo/erduo-skills daily-news-report --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/rookie-ricardo/erduo-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/daily-news-report .agents/skills/daily-news-report && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "daily-news-report" agent skill from https://github.com/rookie-ricardo/erduo-skills/tree/main/skills/daily-news-report into .agents/skills/daily-news-report/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "daily-news-report", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add rookie-ricardo/erduo-skills --skill daily-news-report -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install rookie-ricardo/erduo-skills daily-news-report --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/rookie-ricardo/erduo-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/daily-news-report .cursor/skills/daily-news-report && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "daily-news-report" agent skill from https://github.com/rookie-ricardo/erduo-skills/tree/main/skills/daily-news-report into .cursor/skills/daily-news-report/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "daily-news-report", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/rookie-ricardo/erduo-skills.git --path skills/daily-news-report--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add rookie-ricardo/erduo-skills --skill daily-news-report -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install rookie-ricardo/erduo-skills daily-news-report --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/rookie-ricardo/erduo-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/daily-news-report .gemini/skills/daily-news-report && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "daily-news-report" agent skill from https://github.com/rookie-ricardo/erduo-skills/tree/main/skills/daily-news-report into .gemini/skills/daily-news-report/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "daily-news-report", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install rookie-ricardo/erduo-skills daily-news-reportInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add rookie-ricardo/erduo-skills --skill daily-news-report -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/rookie-ricardo/erduo-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/daily-news-report .github/skills/daily-news-report && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "daily-news-report" agent skill from https://github.com/rookie-ricardo/erduo-skills/tree/main/skills/daily-news-report into .github/skills/daily-news-report/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "daily-news-report", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add rookie-ricardo/erduo-skills --skill daily-news-report -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install rookie-ricardo/erduo-skills daily-news-report --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/rookie-ricardo/erduo-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/daily-news-report .opencode/skills/daily-news-report && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "daily-news-report" agent skill from https://github.com/rookie-ricardo/erduo-skills/tree/main/skills/daily-news-report into .opencode/skills/daily-news-report/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "daily-news-report", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
daily-news-report基于预设 URL 列表抓取内容,筛选高质量技术信息并生成每日 Markdown 报告. An agent skill from rookie-ricardo/erduo-skills.
Daily News Report is an agent skill from rookie-ricardo/erduo-skills. 基于预设 URL 列表抓取内容,筛选高质量技术信息并生成每日 Markdown 报告。
Its SKILL.md is about 2.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `cache.json` and `sources.json`).
The licence is MIT.
8 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 1fb6ec5. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
TaskWebFetchReadWriteBash(mkdir*)Bash(date*)Bash(ls*)mcp__chrome-devtools__*From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are yaml and markdown).
From the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
news.ycombinator.comhuggingface.coFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Daily News Report loads about 2.1k tokens when it runs. Until then it costs about 15 tokens; SKILL.md has 177 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from rookie-ricardo/erduo-skills at commit 1fb6ec5, republished under its MIT licence (© rookie-ricardo). 177 words, ~2,051 tokens.
.claude/skills/daily-news-report/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.架构升级:主 Agent 调度 + SubAgent 执行 + 浏览器抓取 + 智能缓存
┌─────────────────────────────────────────────────────────────────────┐
│ 主 Agent (Orchestrator) │
│ 职责:调度、监控、评估、决策、汇总 │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ 1. 初始化 │ → │ 2. 调度 │ → │ 3. 监控 │ → │ 4. 评估 │ │
│ │ 读取配置 │ │ 分发任务 │ │ 收集结果 │ │ 筛选排序 │ │
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
│ │ │ │ │ │
│ ▼ ▼ ▼ ▼ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ 5. 决策 │ ← │ 够20条? │ │ 6. 生成 │ → │ 7. 更新 │ │
│ │ 继续/停止 │ │ Y/N │ │ 日报文件 │ │ 缓存统计 │ │
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
│ │
└──────────────────────────────────────────────────────────────────────┘
↓ 调度 ↑ 返回结果
┌─────────────────────────────────────────────────────────────────────┐
│ SubAgent 执行层 │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ Worker A │ │ Worker B │ │ Browser │ │
│ │ (WebFetch) │ │ (WebFetch) │ │ (Headless) │ │
│ │ Tier1 Batch │ │ Tier2 Batch │ │ JS渲染页面 │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
│ ↓ ↓ ↓ │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ 结构化结果返回 │ │
│ │ { status, data: [...], errors: [...], metadata: {...} } │ │
│ └─────────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────┘本 Skill 使用以下配置文件:
| 文件 | 用途 |
|---|---|
sources.json | 信息源配置、优先级、抓取方法 |
cache.json | 缓存数据、历史统计、去重指纹 |
步骤:
1. 确定日期(用户参数或当前日期)
2. 读取 sources.json 获取源配置
3. 读取 cache.json 获取历史数据
4. 创建输出目录 NewsReport/
5. 检查今日是否已有部分报告(追加模式)策略:并行调度,分批执行,早停机制
第1波 (并行):
- Worker A: Tier1 Batch A (HN, HuggingFace Papers)
- Worker B: Tier1 Batch B (OneUsefulThing, Paul Graham)
等待结果 → 评估数量
如果 < 15 条高质量:
第2波 (并行):
- Worker C: Tier2 Batch A (James Clear, FS Blog)
- Worker D: Tier2 Batch B (HackerNoon, Scott Young)
如果仍 < 20 条:
第3波 (浏览器):
- Browser Worker: ProductHunt, Latent Space (需要JS渲染)每个 SubAgent 接收的任务格式:
task: fetch_and_extract
sources:
- id: hn
url: https://news.ycombinator.com
extract: top_10
- id: hf_papers
url: https://huggingface.co/papers
extract: top_voted
output_schema:
items:
- source_id: string # 来源标识
title: string # 标题
summary: string # 2-4句摘要
key_points: string[] # 最多3个要点
url: string # 原文链接
keywords: string[] # 关键词
quality_score: 1-5 # 质量评分
constraints:
filter: "前沿技术/高深技术/提效技术/实用资讯"
exclude: "泛科普/营销软文/过度学术化/招聘帖"
max_items_per_source: 10
skip_on_error: true
return_format: JSON主 Agent 职责:
监控:
- 检查 SubAgent 返回状态 (success/partial/failed)
- 统计收集到的条目数量
- 记录每个源的成功率
反馈循环:
- 如果某 SubAgent 失败,决定是否重试或跳过
- 如果某源持续失败,标记为禁用
- 动态调整后续批次的源选择
决策:
- 条目数 >= 25 且高质量 >= 20 → 停止抓取
- 条目数 < 15 → 继续下一批
- 所有批次完成但 < 20 → 用现有内容生成(宁缺毋滥)去重:
- 基于 URL 完全匹配
- 基于标题相似度 (>80% 视为重复)
- 检查 cache.json 避免与历史重复
评分校准:
- 统一各 SubAgent 的评分标准
- 根据来源可信度调整权重
- 手动标注的高质量源加分
排序:
- 按 quality_score 降序
- 同分按来源优先级排序
- 截取 Top 20对于需要 JS 渲染的页面,使用无头浏览器:
流程:
1. 调用 mcp__chrome-devtools__new_page 打开页面
2. 调用 mcp__chrome-devtools__wait_for 等待内容加载
3. 调用 mcp__chrome-devtools__take_snapshot 获取页面结构
4. 解析 snapshot 提取所需内容
5. 调用 mcp__chrome-devtools__close_page 关闭页面
适用场景:
- ProductHunt (403 on WebFetch)
- Latent Space (Substack JS 渲染)
- 其他 SPA 应用输出:
- 目录: NewsReport/
- 文件名: YYYY-MM-DD-news-report.md
- 格式: 标准 Markdown
内容结构:
- 标题 + 日期
- 统计摘要(源数量、收录数量)
- 20条高质量内容(按模板)
- 生成信息(版本、时间戳)更新 cache.json:
- last_run: 记录本次运行信息
- source_stats: 更新各源统计数据
- url_cache: 添加已处理的 URL
- content_hashes: 添加内容指纹
- article_history: 记录收录文章由于自定义 agent 需要 session 重启才能发现,可以使用 general-purpose 并注入 worker prompt:
Task 调用:
subagent_type: general-purpose
model: haiku
prompt: |
你是一个无状态的执行单元。只做被分配的任务,返回结构化 JSON。
任务:抓取以下 URL 并提取内容
URLs:
- https://news.ycombinator.com (提取 Top 10)
- https://huggingface.co/papers (提取高投票论文)
输出格式:
{
"status": "success" | "partial" | "failed",
"data": [
{
"source_id": "hn",
"title": "...",
"summary": "...",
"key_points": ["...", "...", "..."],
"url": "...",
"keywords": ["...", "..."],
"quality_score": 4
}
],
"errors": [],
"metadata": { "processed": 2, "failed": 0 }
}
筛选标准:
- 保留:前沿技术/高深技术/提效技术/实用资讯
- 排除:泛科普/营销软文/过度学术化/招聘帖
直接返回 JSON,不要解释。Task 调用:
subagent_type: worker
prompt: |
task: fetch_and_extract
input:
urls:
- https://news.ycombinator.com
- https://huggingface.co/papers
output_schema:
- source_id: string
- title: string
- summary: string
- key_points: string[]
- url: string
- keywords: string[]
- quality_score: 1-5
constraints:
filter: 前沿技术/高深技术/提效技术/实用资讯
exclude: 泛科普/营销软文/过度学术化# Daily News Report(YYYY-MM-DD)
> 本日筛选自 N 个信息源,共收录 20 条高质量内容
> 生成耗时: X 分钟 | 版本: v3.0
>
> **Warning**: Sub-agent 'worker' not detected. Running in generic mode (Serial Execution). Performance might be degraded.
> **警告**:未检测到 Sub-agent 'worker'。正在以通用模式(串行执行)运行。性能可能会受影响。
---
## 1. 标题
- **摘要**:2-4 行概述
- **要点**:
1. 要点一
2. 要点二
3. 要点三
- **来源**:[链接](URL)
- **关键词**:`keyword1` `keyword2` `keyword3`
- **评分**:⭐⭐⭐⭐⭐ (5/5)
---
## 2. 标题
...
---
*Generated by Daily News Report v3.0*
*Sources: HN, HuggingFace, OneUsefulThing, ...*| 场景 | 预期时间 | 说明 |
|---|---|---|
| 最优情况 | ~2 分钟 | Tier1 足够,无需浏览器 |
| 正常情况 | ~3-4 分钟 | 需要 Tier2 补充 |
| 需要浏览器 | ~5-6 分钟 | 包含 JS 渲染页面 |
| 错误类型 | 处理方式 |
|---|---|
| SubAgent 超时 | 记录错误,继续下一个 |
| 源 403/404 | 标记禁用,更新 sources.json |
| 内容提取失败 | 返回原始内容,主 Agent 决定 |
| 浏览器崩溃 | 跳过该源,记录日志 |
为了确保在不同 Agent 环境下的可用性,必须执行以下检查:
环境检查:
worker sub-agent 是否存在。串行执行模式:
用户提示:
© rookie-ricardo, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 2 other files in skills/daily-news-report of rookie-ricardo/erduo-skills.
Open the folder on GitHubat commit 1fb6ec5
Daily News Report next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Daily News Report this skillrookie-ricardo/erduo-skills | 935 | — | ~2.1k | Automated safety check: Pass | MIT | |
| Dailysickn33/agentic-awesome-skills | 47k | 3 repos | ~3.6k | Automated safety check: Pass | MIT | |
| Daily News Digestclawdotnet/openclaw.net | 522 | — | ~211 | Automated safety check: Pass | MIT | |
| Competitor News MonitorNousResearch/hermes-agent | 252k | — | ~1.2k | Automated safety check: Pass | MIT | |
| Newsalsk1992/CloddsBot | 3k | — | ~462 | Automated safety check: Pass | MIT | |
| Daily Financedigoal/blog | 8.6k | — | ~1.2k | Automated safety check: Pass | GPL-2.0 |
sickn33/agentic-awesome-skills
Documentation and capabilities reference for Daily. An agent skill from sickn33/agentic-awesome-skills.
clawdotnet/openclaw.net
Produce a daily news brief (AI/security/dev) with links, key takeaways, and action items.
NousResearch/hermes-agent
Watch named companies for material news; cited digests. An agent skill from NousResearch/hermes-agent.
alsk1992/CloddsBot
Monitor news and correlate with prediction market movements. An agent skill from alsk1992/CloddsBot.
digoal/blog
Generate stage-1 publishable daily financial news markdown by accessing current web data, filtering reliable macro/market news, validating numbers and article logic, and writing a source-backed brief.
digoal/blog
Generate stage-1 publishable daily financial news markdown by accessing current web data, filtering reliable macro/market news, validating numbers and article logic, and writing a source-backed brief.
rookie-ricardo/erduo-skills
Draw architecture, flow and structural diagrams in the Anthropic/Claude visual language as SVG, then render and save them as PNG.
rookie-ricardo/erduo-skills
Curate a Chinese reading digest from a fixed bundle of RSS and Atom feeds, with a strong preference for AI agent thinking, frontier AI commentary, deep interviews, and non-boring high-signal essays.
rookie-ricardo/erduo-skills
Convert a web URL into cleaned Markdown with deterministic routing.
rookie-ricardo/erduo-skills
Remove the visible Gemini AI watermark from images using reverse alpha blending.
rookie-ricardo/erduo-skills
高质量文章翻译技能,采用"分析→初译→审校→终稿"四步精翻工作流。仅支持中文↔英文、中文↔日文翻译。当用户明确提出"翻译"、"translate"、"精翻"、"翻訳"、"翻译文章"、"translate to Chinese/English/Japanese"、"改成中文"、"改成英文"、"改成日文"、"翻成中文"、"翻成日文"、"翻成英文"、"英译中"、"中译英"、"中译日"、"日译中"、"日…
rookie-ricardo/erduo-skills
将语音转录文本(访谈、演讲、播客、会议)精修为可读性更高的文章段落。当用户提到"字幕精修"、"transcript polish"、"润色字幕"、"把视频字幕整理成文章"、"访谈文字整理"、处理访谈记录、转录文本优化、语音转文字整理、或者需要将大段对话/演讲文本整理成可读文章时触发。适用于单人演说或多人对谈的转录文本整理,要求保留原句原词、拒绝高度概括。即使用户只是说"帮我整理一下这段文字"并附…
基于预设 URL 列表抓取内容,筛选高质量技术信息并生成每日 Markdown 报告. An agent skill from rookie-ricardo/erduo-skills. Daily News Report is an agent skill from rookie-ricardo/erduo-skills.
Run `npx skills add rookie-ricardo/erduo-skills --skill daily-news-report -a claude-code`. Or copy the skill folder (skills/daily-news-report in rookie-ricardo/erduo-skills) into .claude/skills/daily-news-report in your project. Claude Code loads it when a task matches its description.
Run `npx skills add rookie-ricardo/erduo-skills --skill daily-news-report -a codex`. Or copy the skill folder (skills/daily-news-report in rookie-ricardo/erduo-skills) into .agents/skills/daily-news-report in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add rookie-ricardo/erduo-skills --skill daily-news-report -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/daily-news-report, .gemini/skills/daily-news-report, .github/skills/daily-news-report and .opencode/skills/daily-news-report in your project.
SKILL.md names no scripts, command-line tools or credentials: Daily News Report is instructions for the agent only. Its frontmatter pre-approves these tools: Task, WebFetch, Read, Write, Bash(mkdir*), Bash(date*), Bash(ls*), mcp__chrome-devtools__*.
SKILL.md names 2 domains. In commands or code: news.ycombinator.com and huggingface.co; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Daily News Report is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.1k tokens (SKILL.md is roughly 8.2k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Daily News Report: Daily (sickn33/agentic-awesome-skills, 47k stars), Daily News Digest (clawdotnet/openclaw.net, 522 stars), Competitor News Monitor (NousResearch/hermes-agent, 252k stars) and News (alsk1992/CloddsBot, 3k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
rookie-ricardo (a GitHub user) maintains it in rookie-ricardo/erduo-skills, which has 935 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on July 25, 2026.
Source: rookie-ricardo/erduo-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.