Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/niracler/skill/weekly-reportnpx skills add niracler/skill --skill weekly-reportgit clone --depth 1 https://github.com/niracler/skillWhat it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00082 | $0.01676 |
| Opus 5 | $0.00041 | $0.00838 |
| Sonnet 5 | $0.00016 | $0.00335 |
| Haiku 4.5 | $0.00008 | $0.00168 |
Grade A, and why
weekly-report scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 128 lines — stays where its author put it; the contents beside it link to each section on GitHub.
软件研发周报
从 Obsidian、飞书项目、GitLab、GitHub 和本地 Git 收集事实,生成主管可读的中文周报。 审阅完成后写回 Obsidian,并把下周计划安排到 Apple Calendar。
前置条件
| 工具或资源 | 类型 | 必需 | 安装或配置方式 |
|---|---|---|---|
| Git | cli |
是 | brew install git |
| Node.js | cli |
是 | brew install node |
| Obsidian | system |
是 | 提供已存在且包含工作日志的 vault |
| macOS Calendar | system |
是 | macOS 内置,通过 osascript 访问 |
meegle |
cli |
是 | npx @lark-project/meegle@latest install |
| GitLab MCP | mcp |
是 | 在 Codex MCP 配置中启用已安装的 GitLab MCP,设置自建地址和访问令牌,再重启会话 |
gh |
cli |
是 | brew install gh,然后运行 gh auth login |
加载 Skill 时不要主动检查环境。进入采集流程后执行一次预检;工具缺失、未认证、配置 错误或权限不足时停止生成,直接给出表格中的安装或配置步骤,处理完成后再继续。网络 超时、远程服务异常等临时故障无论在预检还是采集阶段发生,都按数据源说明降级。
工作流
按以下顺序执行:
- 确认目标周、大小周类型、报告周期和 Obsidian 目标日记。
- 读取最近一期历史周报。
- 按 data-sources.md 收集并核对所有必需数据源。
- 合并重复事项,对比上周计划与本周实际。
- 按 report-template.md 生成草稿。
- 等待审阅,确认后写回 Obsidian。
- 按 calendar-scheduling.md 生成下周日程建议,确认后写入 Apple Calendar。
大小周与报告周期
- 大周:周一至周六,周六属于工作日。
- 小周:周一至周五。
- 大周和小周逐周交替;下一周类型与当前周相反。
- 周报标题必须包含「大周」或「小周」,作为后续自动判断的基准。
先扫描最近一篇带大小周标记的历史周报,取其标题日期和类型。计算历史周周一与目标周周一 之间相差的完整周数:偶数周沿用历史类型,奇数周切换类型。没有历史标记、日期无法解析或 结果存在歧义时,请求确认目标周是大周还是小周,不得按自然周单双号猜测。
报告周期与目标日记按周类型确定:
| 周类型 | 报告周期 | 目标日记 |
|---|---|---|
| 大周 | 周一 00:00 至周日 00:00,结束时间不包含 | 周六日记 |
| 小周 | 周一 00:00 至周六 00:00,结束时间不包含 | 周五日记 |
周日触发时默认处理刚结束的一周。目标周尚未到最后一个工作日时,先说明报告不完整并请求
确认;未确认时不要生成。目标日记、vault 或 ## 2 Work Log 无法唯一定位时请求路径,
不要自行创建缺失资源。
历史周报
扫描最近 21 天的日记,查找标题 ### 软件研发周报,从最近一篇提取:
- 大小周类型与日期范围。
- 「下周工作计划」,作为计划与实际的比较基准。
- 项目显示名称、分组方式、语气和格式。
没有历史周报时跳过计划比较,但仍需确认本周类型。
合并与生成
数据优先级
| 优先级 | 数据源 | 主要用途 |
|---|---|---|
| 1 | Obsidian 工作日志 | 背景、决策、理由和业务结果 |
| 2 | 飞书项目 | 工作项状态、负责人和排期 |
| 3 | GitLab / GitHub | MR、PR 和 Issue 事实 |
| 4 | 本地 Git | 补充遗漏并核对事实 |
按项目、标题、工作项链接、分支和描述判断同一事项。多个来源指向同一工作时合并为一条, 不要把工具记录逐条复制进周报。
计划完成情况
| 状态 | 处理方式 |
|---|---|
| 已完成 | 写入「本周工作总结」 |
| 部分完成 | 在总结中说明进度,并顺延到「下周工作计划」 |
| 未开始 | 写入「其他事项」,已知原因时一并说明 |
| 计划外完成 | 作为新增成果写入「本周工作总结」 |
What ships with it
3 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2d ago First seen · 128 lines · 82 tokens per session scan A eb443a4670c1
weekly-report is a skill published in the GitHub repository niracler/skill (11 stars, last pushed 1mo ago), licensed MIT. It adds 82 tokens to every session and 1,676 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
systematic-debugging
Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes.
next-cache-components-adoption
Turn on Cache Components in a Next.js app and resolve the blocking routes it surfaces. Use when the user wants to enable, adopt, or migrate to Cache Components, flip the cacheComponents flag, work through a flood of blocking-prerender / instant validation errors, run the cache-components-instant-false codemod, or…
babysit-pr
Babysit a GitHub pull request after creation by continuously polling review comments, CI checks/workflow runs, and mergeability state until the PR is merged/closed or user help is required. Diagnose failures, retry likely flaky failures up to 3 times, auto-fix/push branch-related issues when appropriate, and keep…
imagegen
Generate or edit raster images when the task benefits from AI-created bitmap visuals such as photos, illustrations, textures, sprites, mockups, or transparent-background cutouts. Use when Codex should create a brand-new image, transform an existing image, or derive visual variants from references, and the output…
cpu-profile-analysis
Analyze V8/Chrome CPU profiles (.cpuprofile) and DevTools trace files (Trace-.json). Use when: profiling performance, investigating slow functions, comparing code paths, finding bottlenecks, analyzing timeToRequest, understanding call trees from sampling profiler data, analyzing layout/paint/rendering, investigating…
next-cache-components-optimizer
Drive a Next.js route to instant navigation by setting up an agentic loop, under Cache Components / PPR, on initial load (hard navigation) and client-side navigation (soft navigation). Encode the goal as a failing @next/playwright instant() e2e and work it to green, one verified route at a time; the shipped test then…