weekly-recap

weekly-recap is a skill for Claude Code from iBrain-BVBA/gutt-claude-code-plugin. It costs 145 tokens per session (3,172 once invoked), scanned A, original, MIT.

A reporting skill that builds a cited summary of events, decisions, incidents, lessons, and mentions during a chosen time period.

In plain words
What is it for?
Use it to prepare weekly or other time-window recaps for a person, project, or team, using organizational records and available work-tracker activity.
Why use it?
It avoids unreliable time-based searches that may return relevant results from the wrong dates or miss important items. Each point includes its source and date.

Skill for Claude Code

Written for Claude Code: shipped in a Claude Code plugin.

Part of the gutt-pro plugin — 11 skills, 10 commands, 2 agents, 5 hooks shipped together

Install

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.

agentmods
npx agentmods add skills/ibrain-bvba/gutt-claude-code-plugin/weekly-recap
Any agent
npx skills add iBrain-BVBA/gutt-claude-code-plugin --skill weekly-recap
Clone the repo
git clone --depth 1 https://github.com/iBrain-BVBA/gutt-claude-code-plugin

Made for: Claude Code.

Or install gutt-pro, the plugin that ships this one along with the rest of its 11 skills, 10 commands, 2 agents, 5 hooks.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for weekly-recap

README.md
[![agentmods](https://agentmods.dev/badge/skills/ibrain-bvba/gutt-claude-code-plugin/weekly-recap.svg)](https://agentmods.dev/skills/ibrain-bvba/gutt-claude-code-plugin/weekly-recap)
Your own site
<a href="https://agentmods.dev/skills/ibrain-bvba/gutt-claude-code-plugin/weekly-recap"><img src="https://agentmods.dev/badge/skills/ibrain-bvba/gutt-claude-code-plugin/weekly-recap.svg" alt="Measured on agentmods" height="20"></a>
Per session 145 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 3,172 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What 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.

ModelPer sessionOnce invoked
Fable 5.1 $0.00145 $0.03172
Opus 5 $0.00072 $0.01586
Sonnet 5 $0.00029 $0.00634
Haiku 4.5 $0.00015 $0.00317

Measured 5d ago against content hash 7e490219e94f, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-05, from the pricing page.

Security

Grade A, and why

weekly-recap 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 5d 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.

gutt-core/skills/weekly-recap/SKILL.md · 255 lines

How it starts

The opening of the file, as written. The whole thing — 255 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Weekly Recap

A recap is a time-window question, and the graph's semantic search has no sense of time: it ranks by relevance, so asking it for "mentions of me last week" returns the best matches from any month and silently drops the week. The knowledge is in the graph; what is missing is the traversal. This skill is that traversal, written down: pivot from the subject's node to the episodes that mention it, sweep the window with the date filters that do exist, and turn what comes back into a brief a human wants to read — plain language, themed bullets, every line carrying its source and date.

Underneath, memory-search owns the search ladder and the relevance gate, graph-traversal owns relationship walking, and memory-capture owns any durable write; they ship with this plugin. The steps below compose those skills rather than bypass them: subject resolution and the themed sweep run under memory-search's rules, relationship checks under graph-traversal's — only the window-paging of episode lists is native to this skill. Work-tracker access comes from whatever tooling the session surfaces (issue tracker, wiki, or none); names and prefixes vary per install.

Hard rules (non-negotiable — read first)

  1. Resolve the window to absolute datetimes before any call, and print it. The report header states start, end, and timezone. A bare "recap" defaults to the trailing 7 days ending now. A named period means that calendar period in the user's timezone — "last week" is the previous Monday-to-Sunday week, "June" is June 1–30; a named period is never a trailing window. Tool calls take the resolved values; a relative phrase never reaches a parameter.
  2. Read-only. No writes to memory or to any external system. If the user wants the recap's outcome persisted, that goes through memory-capture's gate — hand it over rather than writing here.
  3. Every line is cited and in-window — each point names its source and date in reader's terms: a meeting or document name, a ticket key, a page title. Keep the underlying ids at hand for drill-down; don't print them through the brief. An item whose timestamp you have not seen does not enter the report. Relevance gate per memory-search: no loosely-matching filler.
  4. Use the time filters that exist; never fake the ones that don't. Fact search takes server-side created_after / created_before — use them for the sweep — and by default it returns only facts still valid now, which is the wrong default for a recap: a decision made in the window and reversed after it would silently vanish. Windowed sweeps pass include_invalidated=true, and an item the graph marks as later superseded enters the report labelled so — a reversal is part of the week's story, not noise. Episode listings take no date parameters; paging moves from newest toward oldest — page until the timestamps cross the window start; the stop condition is a date, not a count. The two listings order by different clocks — the per-group listing by event time, the per-entity mention walk by ingestion time — and nothing is ingested before it happens, so either way a page that has crossed the window start ends the walk: nothing deeper can still be in-window. Two cautions: items may present oldest-first inside a page even though pages step newest-to-older, so judge the stop on the page's date range, not its first row; and verify each further page actually advanced — a listing that repeats a page has given all it will give, so stop and let Coverage call the audit partial rather than refetch in a loop. Node search has no date filter at all — it resolves subjects to nodes and answers nothing about "when".
  5. Scope is server-decided; default to all of it. A recap wants everything the user is allowed to see, and that is what the search tools deliver when no group filter is passed — so pass none by default, and narrow with group_ids only when the user asks for one slice. Episode listings are the exception: one group per call, and omitting the group does not mean all of them — the server picks one team group, never the personal scope; passing the literal personal as the group id is how that scope gets swept. Name the group per call, taking ids from the groups already present in search results or the session's group listing — never from the user, never invented — and sweep each group you saw; Coverage names any you skipped.
  6. Report coverage, not just content. The graph knows only what was ingested: state the episode date range actually observed per group, and report an empty window as "nothing recorded for this window", never as "nothing happened". Mentions come from extraction, not from a raw text scan — say so when a mentions section comes back thin. Content that declares itself test or fixture material stays out of the report, and Coverage names the group it was found in. An exhausted page is a stopping point, not proof of completeness — never present the sweep as exhaustive.
  7. Bare tool names, probed with ToolSearch — prefixes vary per install.

Read the full file on GitHub · 255 lines

Changes

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.

  1. 5d ago First seen · 255 lines · 145 tokens per session scan A 7e490219e94f

Subscribe to this mod's changes

weekly-recap is a skill published in the GitHub repository iBrain-BVBA/gutt-claude-code-plugin (5 stars, last pushed 3d ago), licensed MIT. It adds 145 tokens to every session and 3,172 once invoked, about $0.0007 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-31.

Related

Other skills, from other repositories

systematic-debugging

Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes.

obra/superpowers · 21 tokens

local-ai-agents

Build local-first AI agents that run entirely on a developer workstation with Microsoft Foundry Local and Qwen function-calling models. Covers Small Language Models (SLMs), the OpenAI-compatible local endpoint, sandboxed local tools, local RAG with Chroma, local MCP servers, hybrid cloud/local routing, and the…

microsoft/ai-agents-for-beginners · 200 tokens

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…

vercel/next.js · 95 tokens

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…

vercel/next.js · 170 tokens

next-partial-prefetching-adoption

Turn on Partial Prefetching in a Next.js app and work through the insights it surfaces. Use when the user wants to enable or adopt Partial Prefetching, flip the partialPrefetching flag, opt routes in with export const prefetch = 'partial', audit Link prefetch={true} behavior, preserve existing prefetched UI with…

vercel/next.js · 103 tokens

chronicle

Analyze Copilot session history for standup reports, usage tips, session search, and session reindexing. Use when the user asks for a standup, daily summary, usage tips, workflow recommendations, wants to search or find past sessions by keyword/file/PR, wants to reindex their session store, or asks about deleting…

microsoft/vscode · 72 tokens