oh-problem-statement

oh-problem-statement is an agent for Claude Code from open-horizon-labs/repo-native-alignment. It costs 22 tokens per session (2,467 once invoked), scanned A, original, MIT.

A guided step for clearly describing the problem before choosing a solution. It treats the problem statement as the viewpoint that determines which solutions seem possible.

In plain words
What is it for?
Use it at the start of a project, after setting an aim, or when scope keeps growing. It produces a written analysis for the caller or a referenced session file.
Why use it?
It helps when requirements are unclear, proposed fixes feel awkward, or the work keeps changing direction. Naming the underlying problem can expose an X-Y problem, where someone asks for a specific fix instead of explaining the real need.

Agent for Claude Code

Written for Claude Code: installed under .claude/.

Install

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.

agentmods
npx agentmods add agents/open-horizon-labs/repo-native-alignment/oh-problem-statement
Clone the repo
git clone --depth 1 https://github.com/open-horizon-labs/repo-native-alignment

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 oh-problem-statement

README.md
[![agentmods](https://agentmods.dev/badge/agents/open-horizon-labs/repo-native-alignment/oh-problem-statement.svg)](https://agentmods.dev/agents/open-horizon-labs/repo-native-alignment/oh-problem-statement)
Your own site
<a href="https://agentmods.dev/agents/open-horizon-labs/repo-native-alignment/oh-problem-statement"><img src="https://agentmods.dev/badge/agents/open-horizon-labs/repo-native-alignment/oh-problem-statement.svg" alt="Measured on agentmods" height="20"></a>
Per session 22 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 2,467 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
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.00022 $0.02467
Opus 5 $0.00011 $0.01234
Sonnet 5 $0.00004 $0.00493
Haiku 4.5 $0.00002 $0.00247

Measured 5d ago against content hash 86b1df31c126, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-06, from the pricing page.

Security

Grade A, and why

oh-problem-statement 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 5d 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.

.claude/agents/oh-problem-statement.md · 301 lines

How it starts

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

Session Context

If the assignment includes a session name or .oh/.md path:

  1. Read the session file to understand prior phase outputs
  2. Submit your full analysis as your final output — the caller will persist it to the session file

If no session file is referenced, produce your full output as text for the caller to handle.

/problem-statement

Define the framing. Change the statement, change the solution space.

A problem statement is not the problem itself—it's the lens through which you see the problem. Different framings open different solution spaces. The right framing makes good solutions obvious; the wrong framing makes them invisible.

When to Use

Invoke /problem-statement when:

  • Starting new work - Before diving into solutions, articulate what you're actually solving
  • Solutions feel off - When proposed solutions seem convoluted or like workarounds
  • Oscillating on approach - When you keep changing direction, the framing might be wrong
  • Suspected X-Y problem - When someone asks for a specific solution but the underlying need is unclear
  • Requirements keep expanding - Scope creep often signals a framing mismatch
  • After /aim but before /solution-space - The natural sequence: aim defines outcome, problem statement frames the challenge

Do not use when: You already have a crisp problem statement and are ready to explore solutions. Move to /solution-space.

The Framing Process

Step 1: Surface the Current Framing

Before reframing, understand how the problem is currently being seen:

"The problem is currently framed as: [how it's being described]"

Capture:

  • What's the stated problem?
  • What assumptions are embedded in how it's described?
  • What's being treated as fixed vs. changeable?

Step 2: Detect X-Y Problems

Watch for the X-Y problem pattern: someone asks for Y (their attempted solution) when they actually need X (the real problem).

Signs of X-Y mismatch:

  • Request is oddly specific for what seems like a simple goal
  • The solution feels like a workaround
  • "How do I do [technique]?" without explaining why
  • Convoluted multi-step approach to something that should be simple

Read the full file on GitHub · 301 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. 5d ago First seen · 301 lines · 22 tokens per session scan A 86b1df31c126

Subscribe to this mod's changes

oh-problem-statement is an agent published in the GitHub repository open-horizon-labs/repo-native-alignment (4 stars, last pushed today), licensed MIT. It adds 22 tokens to every session and 2,467 once invoked, about $0.0001 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.