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.
git clone --depth 1 https://github.com/hamza-ali-shahjahan/hamzaishWrote 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/commands/hamza-ali-shahjahan/hamzaish/learn-loop)<a href="https://agentmods.dev/commands/hamza-ali-shahjahan/hamzaish/learn-loop"><img src="https://agentmods.dev/badge/commands/hamza-ali-shahjahan/hamzaish/learn-loop/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/commands/hamza-ali-shahjahan/hamzaish/learn-loop"><img src="https://agentmods.dev/badge/commands/hamza-ali-shahjahan/hamzaish/learn-loop.svg" alt="Reviewed on agentmods" width="80" 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.00042 | $0.02062 |
| Opus 5.5 | $0.00017 | $0.00825 |
| Sonnet 5.5 | $0.00008 | $0.00412 |
| Haiku 4.5 | $0.00004 | $0.00206 |
Grade A, and why
learn-loop 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 1mo 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 — 57 lines — stays where its author put it; the contents beside it link to each section on GitHub.
The user invoked: /learn-loop $ARGUMENTS
This is the periodic scoring + promotion pass over the raw learnings the factory has been accumulating. It does NOT replace the always-on capture habit (brain/learnings/YYYY-MM-DD.md after every session) or the narrative retro (meta/retros/) — it sits on top of them and decides what to promote into a guardrail. Read meta/learning-loop-rubric.md first; it defines the triggers, axes, threshold, and entry format this command applies.
When to run
Only at a major-cycle boundary (see the rubric §1): a product crosses a stage gate, ships, or is killed; a sprint/session had notable friction or a notable win; or the factory itself changed. If none of those happened, say so and stop — running every session defeats the quality-over-volume point.
Steps
- Confirm the boundary. State which trigger fired (use
$ARGUMENTSas the cycle label if given). If it isn't actually a boundary, stop and tell the user. - Ground in the instruments first. Run
bun run trace-report(session traces —scripts/trace-report.ts),bun run friction report(structured friction/delight —scripts/friction.ts),bun run defect report(the guard-fire registry — which check caught what,scripts/defect.ts), andbun run skill-report(per-skill usage + trust states —scripts/skill-report.ts; ademotedskill is a candidate even if nothing else mentions it, anddormantrows feed the curator) and read all four before gathering prose candidates. A tool with a rising failure rate, or a source with repeated friction entries, is a candidate even if no learning entry mentions it — the instruments catch what sessions didn't remember to write down. Quote the relevant numbers in the[SCORED]block of any instrument-sourced candidate. (Blockers and delights are the highest-signal friction rows; a friction report with zero entries is itself worth one line — smooth week, or capture lapse?) - Gather candidates — factory AND products. Collect the raw learnings accumulated since the last
/learn-looprun:- New/changed
brain/learnings/*.mdentries since the last scored cycle. - New/changed
products/*/learnings/*.mdentries (indexed in the brain since 2026-07-02) — the cross-product channel: a lesson learned inside one product that would help the next one is exactly what this loop exists to catch. Same-problem-in-2+-products is an automatic strong Recurrence score. - The latest
meta/retros/entry if a sprint just closed (its What worked = promotion candidates for playbooks; What didn't / structural friction = anti-pattern candidates; Surprises = highest signal). Reference it — don't duplicate it. - Use
bun brain/ask.ts --context "<candidate theme>"to pull related prior context per candidate.
- New/changed
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.
- 1mo ago First seen · 57 lines · 42 tokens per session scan A cf5f769318bd
learn-loop is a command published in the GitHub repository hamza-ali-shahjahan/hamzaish (11 stars, last pushed 16d ago), licensed MIT. It adds 42 tokens to every session and 2,062 once invoked, about $0.0002 per session on Opus 5.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.
Other commands, from other repositories
minutes-ideas
Surface recent voice memos and ideas captured from any device. Use when the user asks "what ideas did I have?", "what were my recent memos?", "what did I record while walking?", or wants to recall a captured thought.
learn
Force claude-smart to extract learnings from this session now.
memory-store
Store an insight, decision, or pattern to memory.
cc-memory
Configure persistent memory that survives across sessions using a layered approach: split rule files for always-loaded context, auto-memory for organic learning, and optional MCP-backed long-term memory for large codebases.
lians-recall
Recall current (non-stale) facts from Lians memory, optionally as-of a past date.
music-suno-prompt
Grounded Suno prompt synthesis from local knowledge corpus + persona canon + label canon. No vibes-prompting.