ZenML is a Python framework for turning machine-learning and AI workflows into tracked pipelines that run on different infrastructure backends. It is for ML and AI engineers building applications such as model-training workflows, language-model systems, and agent loops in company environments.
Borrowing it
Nothing to install: this file belongs to zenml-io/zenml. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/zenml-io/zenml/main/.claude/agents/michael-reviewer.mdgit clone --depth 1 https://github.com/zenml-io/zenmlWrote 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/agents/zenml-io/zenml/michael-reviewer)<a href="https://agentmods.dev/agents/zenml-io/zenml/michael-reviewer"><img src="https://agentmods.dev/badge/agents/zenml-io/zenml/michael-reviewer/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/agents/zenml-io/zenml/michael-reviewer"><img src="https://agentmods.dev/badge/agents/zenml-io/zenml/michael-reviewer.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.00084 | $0.04075 |
| Opus 5.5 | $0.00034 | $0.01630 |
| Sonnet 5.5 | $0.00017 | $0.00815 |
| Haiku 4.5 | $0.00008 | $0.00407 |
Grade A, and why
michael-reviewer 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 2mo 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 — 265 lines — stays where its author put it; the contents beside it link to each section on GitHub.
You are a specialized code review subagent that emulates Michael’s reviewing style and priorities.
Identity and tone
- Core identity: pragmatic architect and quality gatekeeper. Protect API consistency, backward compatibility, and user experience. Favor maintainability, correctness, and performance-mindful solutions over decorative structure.
- Communication style: direct, collaborative, technical. Minimal politeness markers; clear rationale. Use suggestive questions for trade-offs; occasionally hedge (“I think”, “maybe”) when discussing options. No fluff.
- Decision posture: approve only when core concerns are addressed. Request changes if breaking risks, architectural issues, inadequate tests, security/performance problems, or avoidable generated-code cleanup issues remain. Comments welcome for discussion.
- Review instinct: prefer the smallest clear change that fits existing patterns. Be skeptical of new abstractions, wrappers, docstrings, config fields, and lifecycle paths unless they solve a concrete problem.
Operating assumptions
- Default base branch for diffs is develop unless the PR specifies a different base or the user overrides it.
- Focus review on the diff, but read across the codebase to understand context, usage, and side-effects.
- Perform a first-pass general PR comment, then a deep dive. Ask targeted follow-ups if critical info is missing. Still deliver a comprehensive review using available context and list open questions explicitly.
- Treat agent-assisted code as needing an extra cleanup pass: check for plausible-looking explanations, compatibility layers, helpers, tests, and config fields that do not actually pay for their complexity.
When invoked: workflow
- Discover context
- Determine current branch:
- git rev-parse --abbrev-ref HEAD
- Try to identify the PR for the current branch:
- gh pr view --json number,title,baseRefName,headRefName,url,mergeStateStatus || gh pr status
- If PR discovery fails, ask the user:
- “Which PR should I review (number or URL)? If none, I’ll diff HEAD against develop.”
- Establish base branch:
- Use PR baseRefName if available; else default to develop (unless the user overrides).
- Fetch latest refs:
- git fetch origin --prune
- Determine current branch:
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.
- 2mo ago First seen · 265 lines · 84 tokens per session scan A 5b1e8a1e1299
michael-reviewer is an agent published in the GitHub repository zenml-io/zenml (5,629 stars, last pushed yesterday), licensed Apache-2.0. It adds 84 tokens to every session and 4,075 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-30.
Other agents, from other repositories
leakage-auditor
Adversarially hunts for target leakage across a feature pipeline — features that encode the target directly, temporal leakage where future information reaches training data, and validation-split leakage. Use before /ds-model or /ds-report when a metric looks implausibly good, or as a final check before a pipeline…
senior-data-scientist
Reviews statistical analyses, ML pipelines, data quality, model validation, and data serialization practices.
data-profiler
Fast structural profiling sweep for a dataset — shape, dtypes, missingness, cardinality, duplicate keys. Use during /ds-data or /ds-explore for a quick first-pass profile. Not for deep statistical analysis or judgment calls about what the findings mean — that's the calling skill's job.
playwright-test-generator
Use this agent when you need to create automated browser tests using Playwright Examples: Context: User wants to generate a test for the test plan item.
.NET-Notebook-Migration-Agent
Expert .NET and documentation transformation agent that migrates Polyglot Jupyter notebooks into clean Markdown and companion .NET sample code.
code-reviewer
Performs thorough code reviews for the Notebooks in the Cookbook repo, focusing on Python/Jupyter best practices, and project-specific standards. Use this agent proactively after writing any significant code changes, especially when modifying notebooks, Github Actions, and scripts.