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 skills add cwinvestments/memstack --skill reportgit clone --depth 1 https://github.com/cwinvestments/memstackWrote 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.
[](https://agentmods.dev/skills/cwinvestments/memstack/report)<a href="https://agentmods.dev/skills/cwinvestments/memstack/report"><img src="https://agentmods.dev/badge/skills/cwinvestments/memstack/report.svg" alt="Measured on agentmods" height="20"></a>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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00067 | $0.02361 |
| Opus 5 | $0.00034 | $0.01180 |
| Sonnet 5 | $0.00013 | $0.00472 |
| Haiku 4.5 | $0.00007 | $0.00236 |
Grade A, and why
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 yesterday.
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 — 181 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Report: Writing the Session Report
The session states what it did, in a file, once, at the end.
Activation
Output Report: writing the session report..., then follow the rules below.
Context Guard
| Context | Status | Priority |
|---|---|---|
| The prompt contains "Report per memstack:report" | ACTIVE, write the file before finishing | P1 |
| The prompt's first non-blank line starts with a configured trigger | ACTIVE, same requirement | P1 |
| The prompt matched a prefix trigger, but is under 40 characters | DORMANT, see the floor below | n/a |
| The prompt asks for a summary, a recap or a status line | DORMANT, answer in the terminal, no file | n/a |
| A long session ends and nobody asked for a report | DORMANT, an unrequested file is litter | n/a |
| The prompt asks for a diary or a handoff | DORMANT, that is Diary and Project, not this | n/a |
Triggers
The phrase always arms, on every install, with nothing configured. It is a phrase rather than a keyword because "report" appears in ordinary prose constantly.
Two environment variables add standing triggers on top of it. Both are unset by default, so a shipped install arms on the phrase and on nothing else.
| Variable | Effect |
|---|---|
MEMSTACK_REPORT_ON_TASK_PROMPTS |
Set to 1, arms any prompt whose first non-blank line starts with Working directory:. Any other value, including 0, changes nothing. |
MEMSTACK_REPORT_TRIGGERS |
Extra prefixes, semicolon separated, each matched against the first non-blank line. Surrounding spaces are trimmed, so Task briefing:; Ticket: configures two. |
Working directory: is separated out rather than left to the general list
because it is the opening line of a dispatched task prompt, which is the shape
this was built for, and because arming on it by default would file a report for
a large share of every prompt anyone writes.
When either variable is configured, the SessionStart hook injects one sentence saying so. That sentence is the only announcement: a prompt carrying the phrase announces the requirement itself, so a default install is told nothing and pays nothing.
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.
- yesterday First seen · 181 lines · 67 tokens per session scan A 9c141cfa81a4
report is a skill published in the GitHub repository cwinvestments/memstack (419 stars, last pushed yesterday), licensed MIT. It adds 67 tokens to every session and 2,361 once invoked, about $0.0003 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-09-06.
Other skills, from other repositories
atomic-wiki
Conversational wiki and capture-bucket routing. Fires when the user wants a place, space, or folder for notes, research, tickets, raw dumps, or knowledge capture — checks the block in /.claude/CLAUDE.md; if the cwd is under a registered realm, creates the folder as a bucket via atomic wiki bucket add rather than a…
ralph-memory
Manage Al semantic memory entries — list, query, and clear lessons learned across loop iterations.
ralph-reflect
View and manage agent loop reflections and episodic memory.
continuous-learning-v2
Instinct-based learning system that observes sessions via hooks, creates atomic instincts with confidence scoring, and evolves them into skills/commands/agents.
auto-memory
Configure AIWG automatic-memory seed templates for project overview, testing, debugging, and architecture knowledge, with provider compatibility guidance.
ijfw-handoff
Session handoff generation and loading. Trigger: session end, context full, /handoff.