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 ds-methodgit 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/ds-method)<a href="https://agentmods.dev/skills/stamkavid/last-ds-mile/ds-method"><img src="https://agentmods.dev/badge/skills/stamkavid/last-ds-mile/ds-method/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/ds-method"><img src="https://agentmods.dev/badge/skills/stamkavid/last-ds-mile/ds-method.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.00073 | $0.01934 |
| Opus 5.5 | $0.00029 | $0.00774 |
| Sonnet 5.5 | $0.00015 | $0.00387 |
| Haiku 4.5 | $0.00007 | $0.00193 |
Grade A, and why
ds-method 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 — 126 lines — stays where its author put it; the contents beside it link to each section on GitHub.
ds-method — The Last DS Mile Discipline Layer
Overview
Every /ds-* stage skill in this plugin inherits this shared voice. This is not a
pipeline stage itself — it defines the Red Flags, Rationalizations, and Hard Gates that
every stage cites, so a project can't quietly drift into leakage, inflated metrics, or
unreproducible results.
When to Use
- Referenced automatically by every stage skill (
ds-framethroughds-handoff) — you should not need to invoke it directly. - Use directly when the user asks "why do I need a baseline," pushes back on a gate, or you need to decide whether a stage should stop and ask before proceeding.
Core Process
- When a stage skill's process reaches a point covered below, check the relevant table instead of inventing new judgment calls ad hoc — this keeps behavior consistent across every stage.
- When a discipline gate applies and its artifact is missing, produce it inline — run the prior stage's work yourself, in the same turn, and say plainly what you produced and why. Never silently work around a missing gate artifact, and never end the turn asking the user to go run a separate command first: the gate is satisfied by doing the work, not by requesting permission to do it.
- When a safety gate applies (see below), stop and ask before proceeding — these are the cases where continuing unilaterally could be irreversible or externally visible.
- Before running a stage's full process, climb the stage ladder: (a) does that
stage's artifact already exist? if so, reuse it, don't redo it. (b) does this
request actually need it, or can the ask be answered without it (see
ds-method's guard against escalating a plain question)? (c) can it be satisfied in a couple of lines in the run's notes, rather than a full stage write-up? Stop at the first rung that resolves it. If you track progress with a todo list, keep one list for the whole run, not a fresh create/update pair per stage — a dozen-plus todo-tool calls for a single request is a sign the ladder above wasn't applied. - Pick the artifact mode once, at the start, and say which you picked:
- Express (default for a single-shot request answered in one session — "build a
model for X and tell me how it does"): write one
.last-ds-mile/run.mdcarrying every stage's output — framing, baseline, validation choice, model comparison, evaluation/slices — as sections in that one file, not a dozen separatestages/*.mdfiles. The gates and their evidence still all have to be there; only the file layout is consolidated. - Full per-stage (a genuine multi-session project, or the user asks to run a
specific
/ds-*stage on its own): each stage writes its own.last-ds-mile/stages/NN-name.mdas described in that stage's own Core Process — this is what makes stages resumable and reviewable independently across sessions. - Once a project has
.last-ds-mile/stages/files, stay in full per-stage mode for consistency; don't switch an in-progress project to express mid-way.
- Express (default for a single-shot request answered in one session — "build a
model for X and tell me how it does"): write one
- When a Red Flag fires, say so out loud before continuing, even if the user seems to want to move fast — a flagged result that turns out fine costs one sentence; a leaked metric that ships costs the project's credibility.
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 · 126 lines · 73 tokens per session scan A c58b0f6b8328
ds-method is a skill published in the GitHub repository StamKavid/last-ds-mile (3 stars, last pushed 7d ago), licensed MIT. It adds 73 tokens to every session and 1,934 once invoked, about $0.0003 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 skills, from other repositories
audit-ml-pipeline
Read-only audit of one persisted skore report: audit/NN .py (jupytext percent), 1:1 with experiments/ and journal/. Do not execute it. Run materialize.py once. Never call skore.evaluate or project.put. TRIGGER when a completed run needs an audit, the user asks to audit, show, or re-audit an experiment, a re-run…
model-ml-pipeline
Deterministic entry point for modeling. On a first landing, write the locked baseline design note and ask for approval. Later landings offer only the choices the workspace justifies (an EDA proposal, Backlog, discussion). A missing modeling lock loads frame-ml-problem and stops. After a design is approved, coordinate…
evaluate-ml-pipeline
Evaluate one learner with skore.evaluate. The splitter and any non-default score are already on the DataOp from build-ml-pipeline. This skill writes the call without splitter=, persists the report, and records the locator. When the locked split is the training table and test table that shipped with the data, fit on…
frame-ml-problem
Record the problem, the deployment setting, the comparison metric, the baseline, and the fold count in the journal before model code. Ask every missing decision in one turn, from frame show. Does not write Python, estimator hyperparameters, or splitter constructors. TRIGGER when the user asks which metric to compare…
export-ml-notebook
Write a jupytext percent # %% Python file out as an .ipynb. dataanalysis/, experiments/, and audit/ are filled with empty outputs. Pass --html when that notebook should also become a viewer on the site. Kernel notebook convert stays for a source that is itself the execution. Trigger on notebook, ipynb, HTML, or…
search-ml-literature
Search scientific and technical sources for a query and, after the user picks and confirms one direction, write one idea file and its Ideas row. Comes after review, beside the backlog. Do not call research-ml-practice. Do not write History, Backlog, or a design note. Do not pick a winner.