惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
人人都是产品经理
人人都是产品经理
Cisco Talos Blog
Cisco Talos Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
V
V2EX
博客园 - 三生石上(FineUI控件)
Martin Fowler
Martin Fowler
WordPress大学
WordPress大学
D
Docker
S
SegmentFault 最新的问题
博客园 - 聂微东
美团技术团队
Apple Machine Learning Research
Apple Machine Learning Research
月光博客
月光博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Last Week in AI
Last Week in AI
M
MIT News - Artificial intelligence
F
Fortinet All Blogs
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
The GitHub Blog
The GitHub Blog
GbyAI
GbyAI
L
LangChain Blog
Vercel News
Vercel News
博客园 - 叶小钗
MongoDB | Blog
MongoDB | Blog
Stack Overflow Blog
Stack Overflow Blog
H
Help Net Security
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
The Cloudflare Blog
Engineering at Meta
Engineering at Meta
T
Threat Research - Cisco Blogs
T
Threatpost
Scott Helme
Scott Helme
T
Tailwind CSS Blog
Latest news
Latest news
Stack Overflow Blog
Stack Overflow Blog
Blog — PlanetScale
Blog — PlanetScale
The Register - Security
The Register - Security
罗磊的独立博客
P
Proofpoint News Feed
腾讯CDC
S
Schneier on Security
雷峰网
雷峰网
A
About on SuperTechFans
T
Tenable Blog
F
Full Disclosure
Cyberwarzone
Cyberwarzone
博客园_首页
有赞技术团队
有赞技术团队
K
Kaspersky official blog

DEV Community

🔮 Hermes Agent 🤖: A Practical Guide 🔥 — and How It Stacks Up Against OpenClaw & GoClaw 📊 CSS @function Agent Payment Stablecoin Fallbacks: Do Not Retry the Changed Quote Daily-summary-agent Opus 4.8 barely moved the leaderboard. It moved the one number that decides if your agents can be trusted. I Built an AI Interview Coach That Turns Any Resume Into a Personalized Prep Package — No API Keys Needed I Built a Tiny Skeleton Loader for React Why I Generated Synthetic Patients to Make Identity Matching Better SPIFFE Compliance Deep Dive PostgreSQL 08007 오류 원인과 해결 방법 완벽 가이드 I Was Tired of Writing Daily Standups, So I Built an AI Agent using claude code I got tired of LLM observability tools getting acquired. So I built one that can't be. Oracle ORA-00072 오류 원인과 해결 방법 완벽 가이드 Multi-Agent Negotiation Protocols: How AI Agents Should Bargain for Resources uBlock Origin No Longer Works on Chrome - Here Are the Best Alternatives in 2026 SSH Agent Forwarding vs ProxyJump: Why Agent Forwarding Is Dangerous and What to Use Instead The Best Technology Disappears I Built a Production-Oriented Multi-Provider AI Chatbot in Rust — Here's How Markov Chain Coin Sequence: E[HH] vs E[HTH] Explained LLM Deal Flow Automation in CRM The Do-Over Game: Nash Equilibrium at the Golden Ratio Cash Flow Waterfall Model for LBO Automated Client Reporting The Monty Hall Problem: Why Switching Wins 2/3 of the Time Chat With Your Database Using Natural Language: The Future of Business Analytics Google Apps Script Automation Amoeba Extinction Probability: The Branching Process Solution RAG Architecture Deep Dive Real-Time KPI Dashboards OpenAI Agents SDK的5个隐藏用法 🔥 Algorithmic Trading Pipelines 131 tokens per second on GPU under Kubernetes one of the best blogs about hermes agent Nous Research Hermes Agent: Setup and Tutorial Guide Day 20 - AWS Lambda Spending Hours Designing the UI? Or Just Telling AI the Pain Story Karpenter on AKS in 2026: What Actually Works I built a Chrome extension that shows your ChatGPT token usage in real-time Day 1 Field Report — Barriers to an Autonomous Agent Earning Money Online Mastering Background Processing in Rails 8: Sidekiq & Redis Optimization I shipped three fixes to my product in seven days. All three came from readers. Claude Code Model Switching: The Verification Notes That Could Save You $200/Month Three agent-memory threads this week, one missing field The Way to Break Through: Why Others Sail Through While You Struggle Simple Snap Layout Overlay for Tauri v2 CSS Animation vs Lottie: Which Should You Use in 2025? How to Add Lottie Animations to Vue.js (2025 Guide) Building BayouOps Suite Pro — Lightweight Operational Readiness & Visibility for IT Teams Detecting Adversary-in-the-Middle (T1557) with Data Science HTTP Headers Every Developer Should Know (2026) Detecting Ingress Tool Transfer (T1105) with Python Linux Command Line: The 25 Commands I Use Every Day (2026) Starting My Cybersecurity Learning Journey 🚀 CSS in 2026: Modern Techniques You Might Not Know (2026) TypeScript Deep Dive: Advanced Types and Patterns (2026) Three SQL Injection Patterns That Still Ship in Node.js — And the ESLint Rule That Catches Them From Idea to Production: How I Built a Decoupled Chatbot Ordering Engine I Spent 8 Months Building a Framer Killer as a Solo Undergrad. Here's What Happened. unknown 5 Git Commands I Wish I Knew 5 Years Ago How to Find users who don't follow you back in Github Bulk-check DNS, SSL and email auth for a whole list of domains (no scraping) Monolithic vs Microservices Architecture: Which One Should You Choose? The Full-Stack Developer's 2026 Playbook: 7 Shifts That Separate Senior Engineers from the Rest MCP Tool Budget for AI SaaS: Stop Agents From Burning Tokens, Tools, and Trust Untrusted Code, Trusted Cluster Scaling Secure AI Agent Workspaces with GKE Agent Sandbox Learning, Experimenting - Concurrency in Go Building Dhrishti Part 2: Go-Lang Quirks Announcing My New Book: Web Automation with Playwright and Python using AI and MCP Why MTP Batch Transfers Slow Down Between Files How We Cut Our AI Coding Bill by 65% Without Sacrificing Quality Claude vs Gemini Across 4 Security Domains: A Dead Heat — and the Hardening 63% of AI Code Skips I Benchmarked 4 Lightweight Transformers for Fault Detection. Here's What Survived. 🗡️ Tsundoku Slayer: An Agent That Decides What Not To Read Animated Icons for Web Apps — The Complete 2025 Guide How to Use Lottie Animations in React (2025 Guide) Azure API Management - Deploy gRPC API on Azure API management using self hosted gateway I Built pretext-pdf: Serverless PDFs Without Chromium Lottie JSON vs .lottie Format — What's the Difference and Which Should You Use? SVG Icon Systems in 2025 — Everything You Need to Know My Trading Bot Tried to Execute the Same Trade Twice. That Became SafeAgent. Free Loading Animations for Web Apps — Lottie, GIF, and SVG Spinners (2025) How to Add Lottie Animations to Your Website (Free JSON Files Included) Idempotency Keys: The One API Pattern That Prevents Duplicate Payments (and Worse) CONFIGURING SEMANTIC MODEL IN POWER BI Surviving Global Vendor Outages: Federated Cellular Architecture with EKS, AKS, and Istio I Turned My Cursor + Claude Code Setup Into 12 Reusable Files I Built a Cognitive Threat Hunter on Hermes Agent — It Analyzed the Session Where I Built It and Found Three Blind Spots Making AI-Generated Code Fail Gracefully How to Convert Lottie JSON to GIF (Free, Browser-Based, No Signup) Observability 2.0: Tracing AI "Thought Chains" with OpenTelemetry Best Free Lottie Animation Tools in 2025 (No Signup, No Paywall) What Is a Function in Scala Three ways to gate an MCP server: OAuth, L402, and proof-of-work You don't know kubectl — you know how to Google kubectl. The first-principles fix. Building a DevOps Incident Investigator with Coral SQL — From 15 Minutes to 15 Seconds When the Default Postgres Pool Died at 3 AM What Is Database Sharding — and When Does Your Startup Actually Need It Anti Refusal LLM Service A repeatable workflow for paper figures so you stop redrawing them every revision
The best Claude Code agents are defined by what they refuse to do
Peter Huang · 2026-05-31 · via DEV Community

TL;DR — When I write a Claude Code subagent, the most important part isn't the instructions for what it should do. It's the list of what it must refuse to do. This post explains why, and walks through a real ~50-line agent (free, MIT) that catches the embarrassing stuff in your diff before you merge.

The agent that was too helpful

The first useful-sounding Claude Code subagent I ever wrote was a "code reviewer." The prompt was the obvious thing: "You are a senior engineer. Review this diff thoroughly. Comment on bugs, style, naming, architecture, performance, security, and test coverage."

It worked, technically. It produced a review. A long one. Every single time.

And that was the problem. A review that flags 23 things trains you to read zero of them. The signal — "you left a hardcoded API key in here" — was buried on line 14 between "consider extracting this into a helper" and "this variable name could be more descriptive." I started skimming its output. Then I started ignoring it. An agent you ignore is worse than no agent, because you've paid the latency and convinced yourself you "have review covered."

The fix wasn't a better "what to do" list. It was the opposite.

Refusal lists

Here's the reframe that made my agents actually useful: a good agent has exactly one job, and an explicit list of things it will not do — even when it could.

The "will not do" list is the load-bearing part. LLMs are eager. Given any opening to be more thorough, more helpful, more comprehensive, they take it. Left unconstrained, every agent drifts toward the same bloated generalist that comments on everything. The refusal list is what holds the agent to a sharp edge.

Concretely, a refusal list looks like this (from a pre-merge check agent):

## Rules

- Do not autofix. The user fixes; you verify.
- Do not comment on naming, design, architecture, or "could be cleaner."
  Other tools do that. Your job is narrower.
- Do not pad the report. If there are no blockers, say so in one line.
  A short honest report beats a long padded one.
- Do not run anything destructive (db resets, --fix flags that rewrite
  files) without explicit user request.
- If a check tool isn't installed, say "skipped: <reason>" — do not
  fake a pass.

Enter fullscreen mode Exit fullscreen mode

Every line there is closing a door the model would otherwise wander through. "Don't pad the report" exists because the model wants to look thorough. "Don't fake a pass" exists because the model wants to give you good news. You are not describing a task; you are fencing in a behavior.

A real example: a 90-second pre-merge check

Let me make this concrete with an agent I actually use on every project. It has one job: catch the stuff that would embarrass you in PR review, before you open the PR. Leftover console.log. A hardcoded key. A .skip you forgot to remove. A .DS_Store in the diff.

Here's the shape of it (the full file is on GitHub, MIT — link at the end):

---
name: shipping-coach
description: "Use as the final pre-merge / pre-deploy check. Runs a fast,"
  opinionated checklist over the diff. Triggers on "ready to ship",
  "pre-flight", "before I merge", "final check".
tools: Bash, Read, Grep, Glob
model: inherit
---

You are the last set of eyes before code ships. Be fast, be specific,
be hard to argue with.

## Checklist (run in parallel where possible)

### 1. Debug residue
Search the diff for: console.log, print(, debugger, .only(, .skip(,
new TODO/FIXME. Report only matches ADDED by this diff.

### 2. Secret leaks
Search for API key shapes (sk-, ghp_, AKIA, AIza), .env contents,
credentials in URLs, private keys. Treat any match as stop-the-line.

### 3. Type / lint / test status
Detect the project's check commands from package.json / Makefile /
pyproject.toml. Run typecheck, then lint, then tests. Stop on first fail.

### 4. Tracked junk
Check for .DS_Store, .env, node_modules/, build output that snuck
past .gitignore.

## Output format

## Pre-ship report (took <Xs>)
### Blockers (N)        <- empty heading if none, never omit it
### Worth a look (N)
### Passed

Enter fullscreen mode Exit fullscreen mode

Three design choices in there are worth calling out, because they're the difference between an agent you trust and one you mute:

1. "Report only matches ADDED by this diff." Without this, the agent flags every pre-existing console.log in the repo and the report is instantly noise. Scope is the diff, not the codebase. One sentence, huge signal difference.

2. A fixed output format with a "Blockers" section that's never omitted. Even when there are zero blockers, the heading stays (showing "Blockers (0)"). This sounds pedantic but it's a trust mechanism — you learn the report's shape, so you can read it in two seconds and know exactly where to look. Variable-shape output forces re-reading every time.

3. tools: Bash, Read, Grep, Glob — and nothing else. No Write, no Edit. The agent cannot modify your files even if it wanted to, because you didn't give it the tools. Tool scoping is a guardrail you enforce at the schema level, not a promise you hope the prompt keeps.

Try building your own

The pattern generalizes. Pick any narrow job — writing a PR description from the actual diff, finding which behaviors your change might break, auditing dependencies — and write the agent as:

  1. One job, stated in a sentence.
  2. A description that the dispatcher will actually route to — write it in trigger phrases ("when the user says X"), not abstract capability claims.
  3. Tool scoping — give it only the tools the job needs. Withhold Write/Edit from anything that should only report.
  4. An output format — so results are pipeable and skimmable.
  5. A refusal list — the doors you're closing. This is the part everyone skips and it's the part that matters.

Drop the file in ~/.claude/agents/ and Claude Code picks it up automatically. No framework, no config.

The free agent + where to go deeper

The shipping-coach agent above is free and MIT-licensed — the whole thing is one ~50-line .md file you can read, fork, and modify:

üëâ github.com/allcanprophesy-ops/claude-code-shipping-coach

Install is one command:

cp shipping-coach.md ~/.claude/agents/

Enter fullscreen mode Exit fullscreen mode

Then in any repo with uncommitted changes, just say "run the pre-flight check on my diff."

If the pattern clicks and you want more agents built the same way — pr-surgeon (writes PR descriptions from the actual diff), regression-sentinel (reads a diff asking only "what could this break?"), test-gap-hunter, and a few others — they're linked from the repo's README. But the free one is genuinely standalone; start there.


What's the one task in your workflow you wish was automated but isn't? I'm collecting edge cases where a narrow agent would help — drop them in the comments.