agentleFS
promptmechanicpromptmechanic/ai-toolbox/skills/week-in-review/SKILL.md

week-in-review

Skill14 starsChanged 3 months agoMITView on GitHub

End-of-week reflection report. Mines your Claude Code transcripts from the last 7 days to produce a self-contained HTML file with (1) the topics/areas you explored, (2) distilled key learnings with live-searched further-reading links, and (3) a token/command/skill/ctx-stack usage summary. Use when the user says "week in review", "weekly review", "what did I learn this week", "my week", or runs /week-in-review.

1 other project uses a version of this.

Adopted by

Most recently taken up by

  • Other versions1 project uses a version of this.

    Word for word · 0

    None found.

    Edited · 0

    None found.

    Wrote their own version · 1

    1. Unabyss/unabyss-skills★ 15same name

    How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.

  • In this repository2 other files it gives its agents.

The file

We split this skill into the rules it gives an agent

3 rules. About 0 are common, 1 is distinctive, and 2 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈1

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    When targeting a past range, name the output dir after it (e.g.

    line 32
  2. Very specific:

    Scope: all projects under ~/.claude/projects (override: --project-filter <substr>).

    line 33
  3. Distinctive:

    If the subagent cannot search (offline), it should still cluster and distil, omitting links — the report degrades gracefully.

    line 75

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Week in Review

A Friday ritual: you stayed in the flow all week — this skill surfaces what you were curious about so you can learn/deep-dive later, and shows how you spent your tokens, commands, skills, and ctx-stack usage.

Three deterministic scripts + one synthesis subagent. Do NOT reimplement the parsing by hand — the scripts already handle the Claude Code transcript format, cache-token accounting, and harness-wrapper stripping.

Paths (resolve these first)

# Where this skill is installed. Global install (default):
SKILL=~/.claude/skills/week-in-review
# ...or if installed as a PROJECT skill, use: SKILL="$(git rev-parse --show-toplevel)/.claude/skills/week-in-review"

# Where reports go. Override with WEEK_IN_REVIEW_OUT to point into a repo you sync/commit.
DAY=$(date +%F); OUT="${WEEK_IN_REVIEW_OUT:-$HOME/week-in-review}/$DAY"; mkdir -p "$OUT"

Inputs / defaults

  • Window: defaults to this week (since Monday). Pick the flag that matches what the user asked for:
    • --last-week — the previous calendar week
    • --days N — a rolling last-N-days window ("the last 10 days")
    • --since YYYY-MM-DD [--until YYYY-MM-DD] — a specific date range or a named past week (omit --until for "since X until now"; a bare --until date counts through end of that day)
    • --week-start sun — treat the week as Sunday-started (applies to this-week / last-week)
    • When targeting a past range, name the output dir after it (e.g. .../week-in-review/2026-07-20_to_2026-07-26/) instead of today.
  • Scope: all projects under ~/.claude/projects (override: --project-filter <substr>).
  • Output: $OUT/report.html — a self-contained, theme-aware HTML file (its header shows the window it covers).

Steps

1. Collect the deterministic stats

python3 "$SKILL/scripts/collect.py" --out "$OUT/week-data.json"   # default: this week
# past week / range examples:
#   python3 "$SKILL/scripts/collect.py" --last-week --out "$OUT/week-data.json"
#   python3 "$SKILL/scripts/collect.py" --since 2026-07-20 --until 2026-07-26 --out "$OUT/week-data.json"

This prints a summary and writes week-data.json (token usage by model, slash commands, skills, ctx-stack subcommands, tools, projects, and your cleaned typed prompts). Read the printed summary so you know roughly what the week held.

2. Synthesise learning areas (subagent, live web search)

Spawn ONE subagent to do the clustering + link-finding — this is a search/clustering task, not frontier reasoning, so a mid-tier model (e.g. Sonnet) is the right call; don't burn the top session model on it. Give it this brief, substituting the real $OUT path:

Read $OUT/week-data.json. The prompts array is a week of the user's real typed prompts to Claude Code across their projects. Your job:

  1. Cluster them into 3–8 coherent "learning areas" — topics the user asked about, explored, or seemed curious about. Ignore pure command/glue noise; focus on things worth learning more about later.
  2. For each area write: a title, a one-line why_it_came_up, and 2–4 concise key_learnings bullets (what someone would take away).
  3. For each area, run web searches to find 1–3 current, authoritative links (official docs, canonical references, high-quality articles). Prefer primary sources. Only include links whose URL you actually saw in search results — never invent URLs.
  4. Also produce a short week_summary (1–2 sentences) and a curiosities list: things the user flagged wanting to explore later.

Write the result to $OUT/learnings.json with exactly this schema: { "week_summary": str, "areas": [ { "title": str, "why_it_came_up": str, "key_learnings": [str], "links": [ {"title": str, "url": str} ] } ], "curiosities": [str] } Output only valid JSON to the file. Confirm the path when done.

If the subagent cannot search (offline), it should still cluster and distil, omitting links — the report degrades gracefully.

3. Render the HTML report

python3 "$SKILL/scripts/render.py" \
  --data "$OUT/week-data.json" --learnings "$OUT/learnings.json" --out "$OUT/report.html"

render.py is defensive: if learnings.json is missing or partial it still renders the usage dashboard plus a raw-prompt fallback, so always run it.

4. Hand off

Tell the user the path ($OUT/report.html) — a self-contained, theme-aware file they can open in any browser — with a one-line highlight from the summary.

Guardrails

  • The report quotes your prompts — treat it as personal. By default it lives outside any repo; don't publish it to an external/hosted service unless asked.
  • Token totals are dominated by cache_read (context re-served from cache) — the report deliberately separates fresh Output/Input from cache reads so the numbers aren't misleading. Don't "correct" this by summing everything.
  • "ctx-stack usage" refers to the ctx CLI from the AI Codebase Semantics toolkit; on machines without it that section is simply empty.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.