Dagster is a platform for developing, running, and observing data assets, such as datasets and the processes that produce them. It is used to organize and automate data workflows.
Borrowing it
Nothing to install: this file belongs to dagster-io/dagster. 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/dagster-io/dagster/master/.claude/commands/erk/pr-address.mdgit clone --depth 1 https://github.com/dagster-io/dagsterWrote 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/dagster-io/dagster/pr-address)<a href="https://agentmods.dev/commands/dagster-io/dagster/pr-address"><img src="https://agentmods.dev/badge/commands/dagster-io/dagster/pr-address.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.00007 | $0.02979 |
| Opus 5 | $0.00003 | $0.01489 |
| Sonnet 5 | $0.00001 | $0.00596 |
| Haiku 4.5 | $0.00001 | $0.00298 |
Grade A, and why
pr-address 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 6d 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 — 368 lines — stays where its author put it; the contents beside it link to each section on GitHub.
/erk:pr-address
Description
Fetches unresolved PR review comments AND PR discussion comments from the current branch's PR and addresses them using holistic analysis with smart batching. Comments are grouped by complexity and relationship, then processed batch-by-batch with incremental commits and resolution.
Usage
/erk:pr-address
/erk:pr-address --all # Include resolved threads (for reference)
Agent Instructions
CRITICAL: Use ONLY
erk execCommands
- ❌ DO NOT use raw
gh apicalls- ❌ DO NOT use
gh prcommands directly- ✅ ONLY use
erk exec get-pr-review-comments,erk exec resolve-review-thread, etc.The
erk execcommands handle thread resolution correctly. Raw API calls only reply without resolving.
Phase 1: Fetch & Analyze
Step 1.1: Fetch All Comments
Run both CLI commands to get review comments AND discussion comments:
erk exec get-pr-review-comments
erk exec get-pr-discussion-comments
Review Comments JSON:
{
"success": true,
"pr_number": 123,
"pr_url": "https://github.com/owner/repo/pull/123",
"pr_title": "Feature: Add new capability",
"threads": [
{
"id": "PRRT_abc123",
"path": "src/foo.py",
"line": 42,
"is_outdated": false,
"comments": [
{
"author": "reviewer",
"body": "This should use LBYL pattern instead of try/except",
"created_at": "2024-01-01T10:00:00Z"
}
]
}
]
}
Discussion Comments JSON:
{
"success": true,
"pr_number": 123,
"pr_url": "https://github.com/owner/repo/pull/123",
"pr_title": "Feature: Add new capability",
"comments": [
{
"id": 12345,
"author": "reviewer",
"body": "Please also update the docs",
"url": "https://github.com/owner/repo/pull/123#issuecomment-12345"
}
]
}
Step 1.2: Handle No Comments Case
If both threads is empty AND comments is empty, display: "No unresolved review comments or discussion comments on PR #123."
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.
- 6d ago First seen · 368 lines · 7 tokens per session scan A b3c77b7a2d65
pr-address is a command published in the GitHub repository dagster-io/dagster (16,114 stars, last pushed yesterday), licensed Apache-2.0. It adds 7 tokens to every session and 2,979 once invoked, about $0.0000 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-30.
Other commands, from other repositories
review
Review code changes against project conventions.
python-review
Comprehensive Python code review for PEP 8 compliance, type hints, security, and Pythonic idioms. Invokes the python-reviewer agent.
resolve-pr
Resolve PR review feedback — fetch unresolved threads, triage, dispatch resolver agents, reply + resolve via GraphQL.
branch-review
Command "branch-review" from hamr0/agentic-toolkit, covering guardrails, target — check the tree first, then interpret $arguments, effort level, stage 1 — general review and stage 2 — security (always full).
review-uv-script
Review uv Python script for PEP 723 compliance and best practices.
review-team
Parallel code review with 3 specialist lenses plus the kit-default advisor extra lens. Dispatches the security, architecture, and test-coverage lenses simultaneously, adds the cross-cutting advisor (critique mode), then merges findings.