Applies Anthropic's official prompt engineering methodology to every Claude Code interaction. 3-tier hook (bypass/ask/apply), 4 switchable modes (full/preview/ask-only/off), manual /steelprompt skill. No external API calls.
Every prompt restructured using Anthropic's 7 official principles — automatically in Claude Code, on demand in Claude.ai.
✦ No API keys · ✦ Claude Code + Claude.ai web · ✦ Zero added latency · ✦ 4 switchable modes
The problem
Claude is only as good as the prompts you give it. Most prompts are missing role assignment, structured context, explicit constraints, output format specification, and examples — all things Anthropic's own guidelines say dramatically improve response quality.
You could spend 10 minutes engineering every prompt manually. Or use steelprompt — automatic in Claude Code, on demand in Claude.ai.
How it works
steelprompt runs on two surfaces:
Claude Code (CLI) — a UserPromptSubmit hook intercepts every prompt automatically before Claude processes it.
Claude.ai (web) — paste prompts/steelprompt-web.md into Custom Instructions once, then use /sp "prompt" to engineer any prompt on demand.
In both cases, the same 3-tier decision protocol applies:
Your prompt
│
▼
┌─────────────────────────────────────────────────┐
│ TIER 1 — BYPASS │
│ Slash commands · < 5 words · atomic tasks │
│ → Pass through unchanged │
└─────────────────────────────────────────────────┘
│ not bypassed
▼
┌─────────────────────────────────────────────────┐
│ TIER 2 — ASK │
│ Critical information missing? │
│ → AskUserQuestion (1–2 targeted questions) │
└─────────────────────────────────────────────────┘
│ prompt is clear
▼
┌─────────────────────────────────────────────────┐
│ TIER 3 — APPLY FRAMEWORK ← default │
│ Restructure using 7 Anthropic principles │
│ silently, before Claude responds │
└─────────────────────────────────────────────────┘
No external API calls. Claude restructures inline during its normal inference — zero added latency, zero extra tokens billed.
Demo
Tier 3 in action
This is the core of steelprompt. Every clear, non-atomic prompt goes through it automatically.
You type:
add rate limiting to the auth endpoints
What steelprompt injects internally (visible in preview mode before execution):
You are a senior backend security engineer.
<context>
Project: Express.js API with JWT authentication
Endpoints affected: POST /auth/login, POST /auth/refresh, POST /auth/register
Environment: Node.js 20, existing middleware stack in src/middleware/
Known constraints from conversation: Redis already in use for session storage
</context>
<task>
Implement rate limiting on authentication endpoints:
1. Add per-IP rate limiting: max 5 requests/minute on /login and /register
2. Add per-user rate limiting: max 20 requests/hour on /refresh
3. Return 429 with Retry-After header on limit exceeded
4. Do not affect non-auth endpoints
</task>
<constraints>
- Reuse existing Redis connection, do not introduce a new client
- Do not modify JWT validation logic
- Rate limit state must survive server restarts
- Follow existing middleware patterns in src/middleware/
</constraints>
<output_format>
1. New middleware file with implementation
2. Diff showing changes to auth routes
3. Two Jest test cases: limit hit + normal flow
</output_format>
Think through this step by step before answering.
What Claude produces: a complete, production-ready implementation with tests — not a generic overview of rate limiting options.
Advanced Patterns
steelprompt extends the 7 core principles with 5 context-specific patterns from the full Anthropic documentation — applied automatically when the prompt signals them:
Chain detection
When a task spans multiple sequential operations, steelprompt detects the chain and shows a plan before executing.
You type:
refactor auth.py, add tests, update the documentation
Intelligent prompt optimization: injects the right context at the right moment so Claude lands a better first output. Clarifies vague prompts with research-based questions, plus targeted nudges for approach selection, plan readability, workflow routing, background execution, subagent routing, output readability, user-decision questions, and plan-mode assessment