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 StamKavid/last-ds-mile --skill capturing-learningsgit clone --depth 1 https://github.com/StamKavid/last-ds-mileWrote 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/stamkavid/last-ds-mile/capturing-learnings)<a href="https://agentmods.dev/skills/stamkavid/last-ds-mile/capturing-learnings"><img src="https://agentmods.dev/badge/skills/stamkavid/last-ds-mile/capturing-learnings/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/skills/stamkavid/last-ds-mile/capturing-learnings"><img src="https://agentmods.dev/badge/skills/stamkavid/last-ds-mile/capturing-learnings.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.00066 | $0.01204 |
| Opus 5 | $0.00033 | $0.00602 |
| Sonnet 5 | $0.00013 | $0.00241 |
| Haiku 4.5 | $0.00007 | $0.00120 |
Grade A, and why
capturing-learnings 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 9d 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 — 83 lines — stays where its author put it; the contents beside it link to each section on GitHub.
capturing-learnings
Overview
A lesson worth capturing is a specific failure and its specific fix — not a
reminder to "be careful." This skill defines the bar for that, and the
trigger for proactively suggesting /ds-learn when a real one just happened.
When to Use
- A bug was found and fixed mid-session — a leakage source removed, a broken validation split corrected, a wrong metric replaced after a misleading result.
- The user invokes
/ds-learnand needs the capture format (see Core Process). - NOT for: restating a rule that's already in a skill file ("remember to check for leakage") — that's not a lesson, it's the rule the lesson would illustrate. A lesson needs a specific instance: what broke, concretely, and what fixed it, concretely.
Core Process
- Recognize the moment. Mid-session, when a genuine failure-and-fix pair
just happened (not hypothetical, not "this could go wrong" — something
that did go wrong and got corrected), say so and suggest
/ds-learnrather than waiting to be asked. This is the same "notice the moment" pattern every domain skill in this plugin already uses for its own trigger. If already invoked via/ds-learndirectly, the suggestion has already happened — skip straight to step 2. - Check it clears the bar before capturing: does it name a concrete failure (a specific feature, a specific metric value, a specific broken assumption) and a concrete fix (what changed, not just "fixed it")? If either half is vague, ask one clarifying question rather than capturing a vague entry — a vague lesson never resurfaces usefully because nothing about it is specific enough to match against later.
- Tag it to whichever stage(s) and/or domain skill(s) it's actually
relevant to — the tags are what make the lesson resurface at the right
moment later (see
hooks/session_start.py's matching logic, documented inAUDIT.md). Tag broadly if genuinely relevant to more than one stage; don't tag narrowly just to keep the list short. - Capture it via
/ds-learn, which appends the structured entry to.last-ds-mile/learnings.jsonl— this skill defines the judgment, the command does the writing.
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.
- 9d ago First seen · 83 lines · 66 tokens per session scan A 0c188a8ffb2f
capturing-learnings is a skill published in the GitHub repository StamKavid/last-ds-mile (3 stars, last pushed 1mo ago), licensed MIT. It adds 66 tokens to every session and 1,204 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-08-31.
Other skills, from other repositories
wax-performance-audit
Benchmarking and performance auditing for the Wax repo. Use when running or interpreting Wax benchmarks, diagnosing CPU, memory, or I/O bottlenecks, or investigating Swift 6.2 concurrency issues such as Sendable, actor isolation, @unchecked Sendable, task-group fan-out, and data races.
developing-with-streamlit
Use for ALL Streamlit tasks: creating, editing, debugging, beautifying, styling, theming, optimizing, or deploying Streamlit apps. Also custom components, st.components.v2, HTML/JS/CSS work. Discovers and loads version-matched reference docs from the user's installed Streamlit (>=1.57). Triggers: streamlit, st.…
wax
Swift framework guidance for Wax on-device memory/RAG. Use when writing Swift code with the public Memory facade, experimental PhotoMemory / VideoMemory, BuiltInMultimodalEmbeddings, embedding providers, retrieval modes, or hybrid search. For agent operators using the Wax MCP server tools, use the separate wax-mcp…
compound-docs
Searchable Elixir/Phoenix/Ecto solution documentation system with YAML frontmatter. Builds institutional knowledge from solved problems. Use when consulting past solutions before investigating new issues.
wax-memory-maintenance
Maintain the Wax memory store used by the Hermes wax-memory provider.
wax-mcp
Operator playbook pointer for the Wax MCP memory server. Follow the live server instructions. Use when Wax MCP tools are available, or when installing or configuring waxmcp. Prefer this skill over the Swift framework skill unless the task is writing Wax Swift code.