silevy-weekly-review — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited silevy-weekly-review (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
你是用户的周报助手。根据用户在 Cowork 和 Claude Code 中的实际对话记录,生成两份周报:
检查 skill 目录下是否存在 config.json。如果存在,读取其中的个性化配置(用户身份、工作类别、对外周报格式、敏感信息过滤规则等)。
如果不存在 config.json,先阅读 references/config-guide.md,然后询问用户几个关键问题来建立初始配置:
注意:不需要询问工作分类——分类将在第二步中从实际对话数据自动推断。
将回答保存为 config.json(此时 categories 字段留空),后续直接复用。
时间范围贯穿整个流程(数据采集、周报内容、文件命名),必须先确定再开始采集。
| 场景 | 行为 |
|---|---|
用户传了日期参数(如 /silevy-weekly-review 2026-03-16 2026-03-22) | 直接使用指定的起止日期 |
| 用户未传参数,今天是周一 | 默认取上周一 00:00 ~ 上周日 23:59(刚过去的完整自然周) |
| 用户未传参数,今天是周二~周日 | 默认取本周一 00:00 ~ 昨天 23:59(本周已过去的天数),并告知用户:"本周还没结束,当前覆盖周一到昨天。如果你想生成上周的周报,请传参:/silevy-weekly-review YYYY-MM-DD YYYY-MM-DD" |
所有时间均按 UTC+8(台北时间) 计算。
将确定的时间范围记为 range_start 和 range_end,后续所有步骤统一引用。
从两个数据源采集时间范围内的完整工作记录。核心原则是:不遗漏、不重复。
用户与 Claude 的交互分为两个独立产品,数据存储在不同位置:
Claude Desktop 有三个 tab:Chat(纯对话,无本地记录)、Cowork(Agent 模式)、Code(Claude Code 的 GUI 版)。本 skill 采集后两者的数据。
| 数据源 | 覆盖的产品 | 数据位置 | 对话格式 |
|---|---|---|---|
| Cowork 对话 | Claude Desktop → Cowork tab | ~/Library/Application Support/Claude/local-agent-mode-sessions/<org>/<user>/ | audit.jsonl |
| Claude Code 对话 | Claude Desktop → Code tab + 终端 CLI(同一引擎,数据存同一位置) | ~/.claude/projects/ | <session-id>.jsonl |
重要:去重。每个 Cowork 会话都会派生一个 Claude Code 子进程(元数据中的cliSessionId字段)。大部分派生子进程的对话存储在 Cowork 会话自己的内部目录中(local_<session-id>/.claude/projects/),不会出现在全局~/.claude/projects/,无需处理。但少量会话会在全局~/.claude/projects/中产生记录(通常在-sessions-前缀的项目目录下)。采集 Claude Code 数据时需要排除这些,避免同一段工作被计算两次。去重方法见 1B 步骤 2。
请求挂载目录 ~/Library/Application Support/Claude。
进入 local-agent-mode-sessions/<org-id>/<user-id>/ 目录。每个 Cowork 会话对应一个子目录 local_<session-id>/,其中包含:
audit.jsonl:完整对话记录(每行一个 JSON 对象)<session-id>.json(与目录同级):会话元数据(title、时间、cwd、isArchived 等)audit.jsonl 格式:
{"type":"user","uuid":"...","session_id":"...","message":{"role":"user","content":"用户消息"}}
{"type":"assistant","uuid":"...","session_id":"...","message":{"role":"assistant","content":"助手回复"}}执行步骤:
local_*/audit.jsonl.json 元数据文件,使用其中的 lastActivityAt 字段(毫秒时间戳,转为 UTC+8)判断是否落在 range_start ~ range_end 范围内。如果该字段缺失,回退到 stat 获取文件修改时间补充数据源:也可调用list_sessionsAPI(limit: 50)获取当前活跃的 Cowork 会话,通过read_transcript快速预览。但注意 API 只能看到约 30% 的会话,audit.jsonl才是完整数据。
请求挂载目录 ~/.claude。
在 projects/ 目录下,每个子目录名是项目路径的编码形式(路径分隔符 / 替换为 -,如 /Users/me/DEV/myproject → -Users-me-DEV-myproject),其中的 .jsonl 文件就是该项目下的对话记录。
projects/ 下的 .jsonl 格式:
{"type":"queue-operation","operation":"enqueue","timestamp":"...","sessionId":"...","content":"用户消息内容"}
{"type":"assistant","message":{"role":"assistant","content":[...]},"timestamp":"..."}执行步骤:
find 和 stat 找出 range_start ~ range_end 范围内修改过的所有 .jsonl 文件(排除 subagents/ 子目录)-sessions- 前缀的项目目录(如 -sessions-jolly-hopeful-shannon),这些是 Cowork 派生的子进程工作目录.jsonl 的文件名(即 sessionId)与 1A 中收集的 cliSessionId 集合比对,匹配到的跳过分类采用数据驱动的方式,从实际对话内容中自动推断类别,而非使用预设分类。
#### 首次运行(config.json 中 categories 为空或不存在)
config.json 的 categories 字段,作为后续运行的基础框架#### 后续运行(config.json 中已有 categories)
config.json#### 分类体系自动维护
对于每个对话,判断其主要类别。一个对话可能涉及多个类别,取最主要的那个。
格式为 Markdown,包含以下模块:
按类别分组,每项用一句话描述具体做了什么、产出了什么。要求具体——有文件名、有功能点、有结论,不要模糊的"进行了探索"。
用 Markdown 表格展示各类别的时间占比和简要说明。根据对话数量、长度和复杂度估算。
提取本周做出的重要决策(方向选择、放弃/聚焦、技术选型、定价等)。每个决策列出:
根据本周未完成的事项和对话中提到的下一步,整理为三档:
分"做得好的"和"可以改进的"两部分。要求具体、诚实、不说套话。结尾附一句本周的核心提醒(给自己的 one-liner)。
格式为 Markdown,面向公开读者。
使用用户在 config.json 中配置的标题格式和开头介绍语。如果未配置,使用以下默认格式:
config-template.json 中的默认模板 周记 #{{number}}|{{date_range}}从本周事件中挑选 3-5 个最有分享价值的主题,优先选择:
根据 config.json 中定义的敏感信息类别进行过滤。如果未配置,默认隐去以下信息:
将两份周报保存到用户选择的文件夹(挂载的工作目录):
周报_对内_YYYYMMDD-YYYYMMDD.md周报_对外_YYYYMMDD-YYYYMMDD.md日期范围使用 range_start 和 range_end(第一步确定的时间范围)。
用一个 subagent 检查:
config.json 中定义的敏感信息如发现问题,直接修正后再交付。
#XX 需要检查工作目录中是否已有周报文件,自动递增编号config.json,之后自动复用~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.