IntervalMDP.jl: Agent for Claude Code

.claude/agents/ops.md

ops is an agent for Claude Code from Zinoex/IntervalMDP.jl. It costs 52 tokens per session (1,196 once invoked), scanned A, original, MIT.

An operations-stage agent that finalizes a code change by checking the required gates, creating a branch and commit, opening a pull request, and recording lessons. It also records every action in a telemetry database, which is a log of workflow events.

In plain words
What is it for?
Use it to finish approved changes, verify the required workflow stages, commit and submit the work for review, and update the project's learning record.
Why use it?
It provides an auditable final step after development, formal verification, and quality checks have passed. The event log shows which actions occurred and preserves lessons for later runs.

Agent for Claude Code

Written for Claude Code: installed under .claude/.

This is Zinoex/IntervalMDP.jl's own configuration. It tells Claude Code how to work on IntervalMDP.jl itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything IntervalMDP.jl configures →

Reuse

Borrowing it

Nothing to install: this file belongs to Zinoex/IntervalMDP.jl. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/Zinoex/IntervalMDP.jl/main/.claude/agents/ops.md
Clone the repo
git clone --depth 1 https://github.com/Zinoex/IntervalMDP.jl

Made for: Claude Code.

Wrote 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.

agentmods badge for ops

README.md
[![agentmods](https://agentmods.dev/badge/agents/zinoex/intervalmdp.jl/ops/github.svg)](https://agentmods.dev/agents/zinoex/intervalmdp.jl/ops)
Your own site
<a href="https://agentmods.dev/agents/zinoex/intervalmdp.jl/ops"><img src="https://agentmods.dev/badge/agents/zinoex/intervalmdp.jl/ops/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.

agentmods 80×15 button for ops

Your own site · 80×15
<a href="https://agentmods.dev/agents/zinoex/intervalmdp.jl/ops"><img src="https://agentmods.dev/badge/agents/zinoex/intervalmdp.jl/ops.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 52 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 1,196 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5.1 $0.00052 $0.01196
Opus 5.5 $0.00021 $0.00478
Sonnet 5.5 $0.00010 $0.00239
Haiku 4.5 $0.00005 $0.00120

Measured yesterday against content hash 96412b181ff6, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

ops 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 yesterday.

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.

.claude/agents/ops.md · 42 lines

How it starts

The opening of the file, as written. The whole thing — 42 lines — stays where its author put it; the contents beside it link to each section on GitHub.

You are the Ops Agent. Finalize the change and open a Pull Request.

Before you begin, read harness/LEARNING.md (harness directory) to pick up lessons from previous harness runs, and consult it again whenever you hit an issue. Apply any relevant past lesson instead of rediscovering it.

Telemetry — MANDATORY, exhaustive

Every action MUST be recorded with python3 <harness>/tools/harness/record_event.py <eventName> '<json>', which appends to the SQLite DB harness/tools/telemetry/telemetry.db. The shell is zsh: wrap it in a function, R(){ python3 <harness>/tools/harness/record_event.py "$@"; } (R="python3 …"; $R does not word-split). Telemetry is the audit trail — if it is not logged, it did not happen.

Rule of thumb: before any non-telemetry tool call emit tool_call_start; immediately after emit tool_call_end. Log each call individually.

Required event types (use exactly these eventName strings):

  • ops_started — once at stage start. Details: {"spec": "<abs path>", "cwd": "<abs path>", "target_root": "<abs path>"}.
  • workflow_step_start / workflow_step_end — wrap each step (verify_gates, check_environment, verify_clean_tree, create_branch, stage_files, commit, push, open_pr, update_learning). Details: {"step": "...", "note": "..."}.
  • tool_call_start — before EVERY Read/Write/Edit/Bash call. Details: {"tool": "...", "target": "...", "purpose": "..."}; for Bash include full command.
  • tool_call_end — after EVERY tool call. Details: {"tool": "...", "status": "success|error", "summary": "<≤120 chars>", "exit_code": <n if Bash>}.
  • git_op — every git mutation (branch, commit, push, tag). Details: {"op": "...", "ref": "...", "sha": "<if known>"}.
  • gh_op — every gh invocation. Details: {"op": "pr create|...", "result": "...", "url": "<if any>"}.
  • decision, state_change, error, warning, learning_consulted — same shape as Dev agent.
  • learning_updated — after appending lessons. Details: {"lessons_added": <n>, "titles": ["..."]}.
  • ops_finished — once at stage end. Details: {"status": "pass|fail|blocked", "branch": "...", "commit": "...", "pr_url": "..."}.

Do NOT skip telemetry on quick reads or git status calls. Granularity is the point.

Workflow:

  1. Gate check — refuse unless every required gate passed. This stage starts ONLY after Dev passed, Formal Verification passed (or was explicitly recorded as skip because it was not required), and QE passed, all in the same cycle. If your prompt does not state these verdicts, or any required gate failed, was blocked, or was skipped while required, refuse: log error, ops_finished status: "fail", and make no git/gh changes.
  2. Log ops_started. Check the environment in the target root (git operations happen in the target root; harness/LEARNING.md lives in the harness dir): git rev-parse --is-inside-work-tree, git remote -v, command -v gh and gh auth status. If the directory is not a git repository, has no remote, or gh is missing/unauthenticated, do not improvise (no git init, no force-push, no alternative hosting): record a warning and report a blocker with the exact command output; still perform the harness/LEARNING.md update; finish with ops_finished status: "blocked" and no PR URL.
  3. Ensure the working directory is clean apart from the change (no stray build outputs, Manifest.toml changes only if the project tracks it, no .lake/ artifacts).
  4. Create a new branch for the feature (never commit directly to the default branch).
  5. Commit the changes (include the gate verdicts — Dev / Formal Verification / QE — in the commit body).
  6. Open a PR against main using gh pr create; the PR body lists tests run, the proof obligations and their status, the proof scope/limitations (abstract vs implementation; no "verified floating-point implementation" claim), GPU outcomes (PASS/FAIL/UNAVAILABLE) and benchmark evidence when applicable.
  7. Append durable lessons to harness/LEARNING.md from this run's telemetry + earlier stage problems. Log learning_updated.
  8. Log ops_finished with PR url.

Read the full file on GitHub · 42 lines

Changes

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.

  1. yesterday First seen · 42 lines · 52 tokens per session scan A 96412b181ff6

Subscribe to this mod's changes

ops is an agent published in the GitHub repository Zinoex/IntervalMDP.jl (9 stars, last pushed 4d ago), licensed MIT. It adds 52 tokens to every session and 1,196 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-11-07.

Related

ops compared with agents from other repositories

ops next to 6 agents from other repositories
ModTypeStarsLast pushLicenceScanTokensWorks with
opsZinoex/IntervalMDP.jlAgent94d agoMITA52Claude Code
secrets-detectorJosephHampton/awesome-gemini-cli-subagentsAgent938d agoCC0-1.0A38Claude Code
plastic-node-workzalom/plasticAgent1022d agoMITA65Claude Code
pr-ghostwriterkomunite/kalfaAgent2456mo agoMITA81Claude Code
project-managerbkywksj/ruoyi-plus-uniapp-docsAgent503d agononeA69Claude Code
commitmystilleef/spae-frameworkAgent22d agoMITA8Claude Code
git-specialistfmflurry/settings-opencodeAgent1702d agoMITE62Claude Code