Token导航 LogoToken导航

Agent Skill · 研究检索

biweekly-collector(双周刊收藏家)

biweekly-collector 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

biweekly-collector 是研究检索类 Agent Skill,可用宿主为 Codex、Claude、Cursor、Gemini CLI,通过GitHub 仓库获取,权限为需要联网;许可证信息还不明确,第三方扫描有未通过项,按安装量在研究检索类的 73,675 个 Skill 里排第 69,749。

总安装 216周安装 9GitHub Stars 11下载 72核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
unknown

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:biweekly-collector(双周刊收藏家)
来源仓库:https://github.com/niracler/skill
仓库路径:skills/biweekly-collector
安装命令:
npx skills add https://github.com/niracler/skill --skill biweekly-collector
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/niracler/skill --skill biweekly-collector

这个 Skill 是做什么的

研究检索类 Skill 主要解决「找资料、核对事实、把来源整理清楚」的问题,通常会让助手先检索再总结。

biweekly-collector 用于收集双周记写作素材,聚合多个来源的信息。核心能力包括从日记、书签、豆瓣、Telegram 等渠道抓取过去 2-4 周的素材。使用方式:整理成周记模板结构,供用户手写周记时参考。

安装方式:通过 npx skills add 命令从 GitHub 仓库安装,需 macOS 系统支持。适用于 Codex、Claude、Cursor、Gemini CLI 等宿主环境。

来源仓库内路径:skills/biweekly-collector

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 Codex、Claude、Cursor、Gemini CLI;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 npx skills add https://github.com/niracler/skill --skill biweekly-collector;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要需要联网,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

biweekly-collector 怎么安装?

在终端执行 npx skills add https://github.com/niracler/skill --skill biweekly-collector。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

biweekly-collector 支持哪些 AI 工具?

公开资料标注支持 Codex、Claude、Cursor、Gemini CLI。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

biweekly-collector 需要什么权限?

权限级别是需要联网。该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

biweekly-collector 是免费的吗?

公开资料没有标注明确许可证,收费和商用限制都无法确认。正式使用前请到来源仓库核对授权说明。

biweekly-collector 用的人多吗?

公开数据是累计安装 216 次,近一周安装 9 次,下载 72 次,GitHub 11 星。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

biweekly-collector 安全吗?

第三方扫描有未通过项,风险较高。除非你确认过源码,否则不建议直接安装到常用环境。

值得选的地方和要先想清楚的地方

值得选的地方

  • 同时适配 4 种工具,换客户端不用重新找替代品。

先想清楚的地方

  • 许可证没有明确标注,能不能商用、能不能再分发都不确定。
  • 第三方扫描存在提醒项或未通过项,需要人工逐条确认。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 Codex,想直接扩展它能力的人。
  • 需要处理研究检索类任务、又不想每次都手写提示词的人。

不太适合

  • 需要明确授权才能用到公司项目里的场景。
  • 需要厂商级技术支持和 SLA 的生产系统。

研究检索类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
find-skills

寻找技能 · Codex、Claude

31,199,81316,486操作浏览器MIT有提醒
self-improving-agent

自我改进 Agent · OpenClaw

16,464,0023,396接触敏感数据MIT-0通过
soultrace

灵魂追踪 · Codex、Claude

7,588,94412需要联网未明确有提醒
self-improving

自我完善 · OpenClaw

6,829,2841,046需要联网MIT-0通过
microsoft-foundry

微软代工厂 · Codex、Claude

6,614,144764调用外部服务未明确有提醒
biweekly-collector

双周刊收藏家 · 本页

21611需要联网未明确未通过

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

Biweekly Collector

收集双周记写作素材。从日记、书签、豆瓣、Telegram、日历、提醒事项、照片、RSS 精选、plrom 变更等 多个来源抓取过去 2-4 周的素材,整理成周记模板结构,供用户手写周记时参考。

这个 skill 不代写周记 — 周记的灵魂在于你自己的文字和反思。它只负责把散落各处的碎片聚合起来, 让你写的时候不遗漏重要的事。

Prerequisites

ToolTypeRequiredInstall
macOSsystemYesThis skill requires macOS
reminders-clicliYesbrew install keith/formulae/reminders-cli
icalBuddycliYesbrew install ical-buddy
curlcliYesBuilt-in on macOS
gitcliYesBuilt-in or brew install git
PINBOARD_AUTH_TOKENenv varYesSee pinboard-manager skill for setup
Do NOT proactively verify these tools on skill load. If a command fails due to a missing tool, skip that data source and continue with what's available.

Key Paths

PathPurpose
~/Library/Mobile Documents/iCloud~md~obsidian/Documents/Note/Archives/日记(Daily)/Daily diary entries
~/Library/Mobile Documents/iCloud~md~obsidian/Documents/Note/Areas/生活(Life)/周记(Weekly)/Output location for 周记 (legacy)
~/Library/Mobile Documents/iCloud~md~obsidian/Documents/Note/Areas/生活(Life)/月记(Monthly)/Output location for 月记 (current)
~/Library/Mobile Documents/iCloud~md~obsidian/Documents/Note/templates/monthly.md周记 template
~/code/ai-dev/repos/rss-agent/output/daily/AI-curated RSS daily digests
~/code/nini-dev/repos/plrom/README.mdplrom source file (人 X 社区 X 物), has its own git repo

Workflow Overview

┌──────────────────────────────────────────────────────────────┐
│           biweekly-collector 完整流程(~15-20min)              │
└──────────────────────────────────────────────────────────────┘

  ┌──────────────────┐
  │ 用户触发素材收集   │
  └──────┬───────────┘
         │
         ▼
  ┌────────────────────────────────────┐
  │ 1. 确认时间范围 + 创建文件  (~2min) │
  └──────┬─────────────────────────────┘
         │
         ▼
  ┌─────────────────────────────────────────────┐
  │ 2. 并行数据收集(subagent)      (~5-8min)   │
  │    ┌─ 日记条目提取                           │
  │    ├─ Pinboard 书签                          │
  │    ├─ 豆瓣动态 (RSS)                         │
  │    ├─ Telegram 频道 (RSS)                    │
  │    ├─ Apple Calendar 事件                    │
  │    ├─ Apple Reminders 完成项                 │
  │    ├─ RSS 精选摘要                           │
  │    └─ plrom git diff                         │
  └──────┬──────────────────────────────────────┘
         │
         ▼
  ┌────────────────────────────────────┐
  │ 3. 整理素材到模板结构      (~3min)  │
  └──────┬─────────────────────────────┘
         │
         ▼
  ┌────────────────────────────────────┐
  │ 4. 展示 + 用户确认写入     (~3min)  │
  └──────┬─────────────────────────────┘
         │
         ▼
      ┌──────┐
      │ 完成  │
      └──────┘

Step 1: Confirm Period and Create File

Determine Time Range

The biweekly diary covers a flexible period (2-4 weeks). Ask the user:

Claude: 「这次周记要覆盖什么时间段?」
        建议:3/10 - 3/23(两周)
        或者你可以指定其他范围(最短两周,最长一个月)

Suggest a default based on the last entry's date. Scan both Areas/生活(Life)/周记(Weekly)/ and Areas/生活(Life)/月记(Monthly)/ for the most recent entry to calculate the gap.

Determine Title

The 周记 naming convention is YYYYMM-N-title.md:

  • YYYYMM: year-month of the period's end date
  • N: the nth entry of that month (1, 2, 3...)
  • title: a short descriptive title chosen by the user

Ask the user for a title, or offer to decide later after seeing the materials.

Create Skeleton File

Create the file using the template from templates/monthly.md. The output directory can be either 周记(Weekly)/ or 月记(Monthly)/ — ask the user or accept if they specify a path directly:

---
aliases:
tags:
  - 周记
date: {start_date}
modified: {today}
---

> {用户稍后填写的开场白}

## 关于现实生活的记录

> [!info]
> 我所有的周记或许并没有谎言,起码没有主动撒谎的部分。但其中的内容可能都具有某种倾向性,例如隐藏了某些未言明的黑暗成分,或者说是选择性的表达。

<!-- 以下是收集到的素材,请根据这些素材手写正文 -->

### 素材:生活事件与日记摘要

{collected_diary_materials}

### 素材:日历事件

{collected_calendar_events}

### 素材:当前提醒事项(个人相关)

{collected_reminders}

### 素材:plrom 变更

{collected_plrom_diff}

## 👀 还看了什么

### 📚 🎬 📺 作品

| 作品 & 产品名 | 媒介 | 进度 | 打分 | 吐槽 |
| -------- | --- | --- | --- | --- |
{collected_douban_entries}

### 🌐 文章

{collected_articles}

### 素材:RSS 精选回顾

{collected_rss_digests}

### 素材:Telegram 频道分享

{collected_telegram_posts}

## 后记

<!-- 这里是你的个人反思空间 -->

Step 2: Parallel Data Collection

Launch subagents for each data source concurrently. Each source is independent — if one fails, skip it and continue.

2a. Daily Diary Entries

Read each daily note within the date range from Archives/日记(Daily)/.

Extract content from three sections:

  • ## 1 title Journal → personal events, reflections, photos
  • ## 2 Work Log → skim for personal-interest items (skip formal 周报 content)
  • ## 3 Today I Learn → TIL entries, media impressions

Output format:

#### 3/10 (周一)
- 在图书馆看了《断舍离》
- 跟朋友 L 约了羽毛球

#### 3/11 (周二)
- Home Assistant Dashboard 大整理
- 看完了《迷宫饭》第二季

Preserve the user's original voice — summarize but don't rewrite. Include photo references (![[filename]] or ![](url)) as-is.

2b. Pinboard Bookmarks

Fetch bookmarks from the date range:

curl -s "https://api.pinboard.in/v1/posts/all?auth_token=$PINBOARD_AUTH_TOKEN&format=json&fromdt={start_date}T00:00:00Z&todt={end_date}T23:59:59Z"

Format each bookmark as:

- [Title](url) - {description if any} `{tags}`

Group by week or by tag category if there are many.

2c. Douban Activity (RSS)

Fetch the user's Douban interest feed. Try direct feed first, fall back to RSSHub:

# Try direct feed first
curl -s "https://www.douban.com/feed/people/niracler/interests"
# If empty or blocked, use RSSHub
curl -s "https://rsshub.app/douban/people/niracler/interests"

Parse the RSS/Atom entries. Extract:

  • Title (作品名)
  • Category/type (书/电影/音乐/游戏)
  • Rating (if marked)
  • Short comment (if any)
  • Date

Format into the 作品 table rows:

| 《作品名》 | 电影 | 100% | 8 | 用户的短评 |

If the Douban feed is unavailable or empty, note this and the user can fill manually.

2d. Telegram Channel (RSS)

Fetch the user's Telegram channel RSS:

curl -s "https://tg.niracler.com/rss.xml"

The feed is standard RSS 2.0 with <content:encoded> HTML bodies. Important parsing notes:

  • Title may be absent — fall back to extracting first line of <content:encoded> text
  • Hashtags are inline in HTML as <a href="/search/..."> links (e.g., #pinboard, #bilibili, #梦, #暴论, #网易云音乐). Extract via regex for categorization.
  • pubDate is in GMT (RFC 2822). Strictly filter by date range — only include items whose pubDate falls within the confirmed start/end dates. This is critical when the user specifies a historical range (e.g., 3/1-3/15) because the RSS feed contains recent posts that may be outside the range. Parse the date and compare before including.
  • Content types vary: bookmarked articles, video shares, personal thoughts, dream journal, music shares, ACG content, tech observations, life updates

Use a script to filter strictly:

# Fetch and filter Telegram RSS by date range
curl -s "https://tg.niracler.com/rss.xml" | python3 -c "
import sys, xml.etree.ElementTree as ET
from email.utils import parsedate_to_datetime
from datetime import datetime, timezone

start = datetime({start_year}, {start_month}, {start_day}, tzinfo=timezone.utc)
end = datetime({end_year}, {end_month}, {end_day}, 23, 59, 59, tzinfo=timezone.utc)

tree = ET.parse(sys.stdin)
for item in tree.findall('.//item'):
    pub = item.find('pubDate')
    if pub is not None:
        dt = parsedate_to_datetime(pub.text)
        if start <= dt <= end:
            title = item.find('title')
            link = item.find('link')
            print(f'{dt.strftime(\"%m/%d\")} | {title.text if title is not None and title.text else \"(untitled)\"} | {link.text}')
"

Group by hashtag category when possible:

#### 文章分享 (#pinboard)
- [Article title](url) - user's comment

#### 随想 (#暴论)
- 3/15: "some thought..."

#### 其他
- 3/12: 新电脑到了

2e. Apple Calendar Events

Use icalBuddy to query calendar events within the date range:

icalBuddy -sd -ic "Personal,Learn&Create" \
  eventsFrom:{start_date} to:{end_date}

Key flags:

  • -sd: separate by date (groups events under date headers)
  • -ic "Personal,Learn&Create": include only personal calendars, skip "Work" and "Scheduled Reminders" calendars (reminders are captured separately via reminders-cli)
  • Output includes: event summary, calendar name, time range, and notes

The output is already well-structured with date grouping. Include personal events (meetups, appointments, trips, hobbies) but skip recurring work meetings.

To list available calendar names: icalBuddy calendars

2f. Apple Reminders

Query current reminders to capture what the user is tracking and planning:

reminders show-all

This returns all active (uncompleted) reminders across all lists, with due dates and notes. For the 月记, current reminders are more valuable than completed ones — they show what the user is actively focused on: life goals, relationship maintenance schedules, recurring habits, upcoming plans, and learning checkpoints.

Filter the output to personal-relevant lists (生活, 健康, 人际关系, 阅读, 提醒) and skip pure work items (提醒 list items about specific work tasks like "sunlite: switch API").

2g. RSS Daily Digests

Read the AI-curated daily digest files from ~/code/ai-dev/repos/rss-agent/output/daily/.

For each day in the range, read YYYY-MM-DD.md if it exists. Each daily digest contains:

  • AI-scored articles (0-100) with Chinese summaries
  • Two sections: "核心推荐" (4 core focus) and "开拓视野" (3 exploration)
  • Each article has: title, source, score, reasoning, category, personal relevance

Extract the highest-scored articles (score >= 70) as "this period's reading highlights". Deduplicate against Pinboard bookmarks (same URL = already captured via Pinboard). Also deduplicate against Telegram channel shares (same URL).

2h. plrom Git Diff

The plrom repo (~/code/nini-dev/repos/plrom/) is a standalone git repo that tracks "人 X 社区 X 物" — the user's curated list of people, communities, and things they follow. It auto-syncs to the blog via GitHub Actions.

Check what changed during the period:

cd ~/code/nini-dev/repos/plrom
git log --since="{start_date}" --until="{end_date}" --oneline
# If there are commits, get the diff
FIRST_COMMIT=$(git log --since="{start_date}" --format="%H" --reverse | head -1)
if [ -n "$FIRST_COMMIT" ]; then
  git diff "$FIRST_COMMIT"^..HEAD -- README.md
fi

If there are changes, summarize what was added/removed:

  • New people followed (技术博主, 漫画家, UP 主, etc.)
  • New communities joined
  • New tools/products/games discovered
  • Items removed or moved to 弃坑列表

The plrom page has sections: 人 (技术博主/作家/漫画家/导演/UP主/TG芳邻/播客/歌手/淘宝店主), 组织或社区, 物 (软件/硬件/游戏). This captures the user's evolving interests and discoveries.

Step 3: Organize into Template

After all data is collected, organize the materials into the skeleton file created in Step 1.

Organization Rules

  1. 生活事件 — merge diary entries + calendar events + completed reminders into a chronological narrative scaffold. Group related events (e.g., consecutive days of a trip).
  2. 作品 table — merge Douban entries with any media mentioned in diary TIL sections. Deduplicate by title. Keep the user's original comments when available.
  3. 文章 section — merge Pinboard bookmarks + RSS digest highlights + Telegram shares. Deduplicate by URL. Prefer Pinboard entries (they have the user's own description). Format like historical 周记 entries: - [Title](url) - one-line comment from user or AI summary
  4. plrom diff — present as a "discoveries" subsection showing what's new.
  5. Photos — collect all ![[image]] and ![](url) references from diary entries. List them in context so the user can select which to include.

What NOT to Do

  • Do NOT write the actual 周记 prose — only organize raw materials
  • Do NOT filter out events you think are unimportant — the user decides what matters
  • Do NOT merge events that happened on different days without noting both dates
  • Do NOT include formal work 周报 content (that's the weekly-report skill's domain)

Step 4: Present and Confirm

Show the user a summary of what was collected:

素材收集完成!以下是各来源的数量统计:

📔 日记条目: 12 天有内容
📌 Pinboard 书签: 8 条
🎬 豆瓣动态: 3 部作品
📱 Telegram 分享: 15 条
📅 日历事件: 6 个
✅ 完成的提醒: 9 项
📰 RSS 精选: 22 篇(去重后 17 篇)
🔄 plrom 变更: +3 新增, -1 移除

已写入文件:Areas/生活(Life)/月记(Monthly)/202603-title.md
你可以在 Obsidian 中打开这个文件,在素材基础上写你的周记。

Ask if the user wants to:

  • Adjust the time range and re-collect
  • Remove certain sections
  • Add any manual notes they remembered

Write the final organized materials to the file.

Data Source Degradation

Source unavailableBehavior
Daily notes missing for some daysUse available days, note gaps
Pinboard token not setSkip, note "Pinboard 数据未获取"
Douban feed empty or blockedTry RSSHub fallback: https://rsshub.app/douban/people/niracler/interests; if still empty, leave table for manual fill
Telegram RSS unreachableSkip, note it
Calendar access deniedRun icalBuddy calendars to test access; if denied, suggest ! tccutil reset Calendar
rss-agent output missingSkip, note "RSS 精选未找到"
plrom repo not foundSkip plrom diff

Common Issues

IssueFix
Douban RSS returns emptyDouban may block direct RSS; try via RSSHub: https://rsshub.app/douban/people/niracler/interests
icalBuddy calendar name mismatchRun icalBuddy calendars to list exact names; adjust -ic filter accordingly
Too many Pinboard resultsAdd tag filter or increase fromdt precision
plrom has no commits in rangeNormal — plrom updates are infrequent
Telegram RSS has no date filterFetch all entries, filter by pubDate in the date range
File already existsAsk user: overwrite / append / use different name
Output path: 周记 vs 月记User may use 月记(Monthly)/ instead of 周记(Weekly)/. Ask or accept if user specifies a path directly

平台分布

Codex

35.87%
按下载量换算26

Claude

29.75%
按下载量换算21

Cursor

17.69%
按下载量换算13

Gemini CLI

8.36%
按下载量换算6

安全审计

Gen Agent Trust Hub

未通过

Socket

通过

Snyk

可疑

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在提醒或未通过项,安装前请自行复核。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills