review-behavior-change
Review code changes for undocumented behavioral/surface changes.
Skill by thrawn01
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/thrawn01-review-behavior-change
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: documents, backend, security
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/review-behavior-change
Tools it pre-approves 5
From allowed-tools in SKILL.md: the agent may use these without asking you each time.
Read,Edit,Bash,Agent,AskUserQuestion
What's inside
- Skill name
review-behavior-change- Description
- Review code changes for undocumented behavioral/surface changes. Flags modifications to public interfaces, API contracts, or observable behavior that lack justification in an ADR, PRD, tech spec, or implementation plan. Use when the user asks to "check for breaking changes", "review surface changes", "audit behavioral changes", or "validate contract compliance".
- License
- MIT
- Allowed tools
- Read,, Edit,, Bash,, Agent,, AskUserQuestion
- Instructions
- 283 lines in SKILL.md · view on GitHub
Before installing
- Pre-approves some shell commands
Files (1)
- SKILL.md
SKILL.md (first lines)
# Surface Change Review ## Execution Model Delegate the ENTIRE workflow below to a single top-level sub-agent (Agent tool, **foreground**, `model: "sonnet"`). The main context must not perform the analysis itself — this prevents conversation history from biasing the review. Pass the sub-agent the full skill instructions (everything below this section), the `$ARGUMENTS`, and the repository path. The sub-agent performs all phases and returns the final report. The main context relays the report to the user and handles any follow-up (CHANGELOG approval, etc.). --- Review recent code changes (uncommitted, commit, or branch diff) for behavioral changes at the system's surface — the outermost layer consumers interact with (HTTP endpoints, CLI entry points, exported functions, library public APIs). Flag any surface-level behavioral change that is not explicitly justified in a docs/ artifact (ADR, PRD, tech spec, or implementation plan). ## Change Severity: ADR vs CHANGELOG Not every surface change warrants an ADR. Classify each unjustified change by severity: **ADR-required** (architectural/breaking changes): - Removing or renaming a public endpoint, function, or field - Changing a function signature in a way that breaks existing callers - Changing the semantics of an existing API (same inputs produce fundamentally different outputs) - Switching protocols, storage backends, or communication patterns - Changes that require consumers to update their code **CHANGELOG-only** (minor behavioral improvements): - Improving error messages (better wording, adding context/field names) - Tightening validation (rejecting previously-accepted invalid input) - Returning more specific error codes where a generic one was used before - Adding fields to a response (non-breaking addition) - Fixing a status code to be more semantically correct (e.g., 500 → 422 for bad input) - Improving output formatting without changing data content - Any change that makes the API "more correct" without breaking existing valid usage The key distinction: if existing consumers of the API **would break** or **get different results for the same valid inputs**, it's ADR-worthy. If the change only affects error paths, invalid inputs, or adds information — it's a CHANGELOG entry. ## CHANGELOG Format When suggesting changelog entries, use this format (entries go in `CHANGELOG.md` at the repo root under `## Behavioral Changes`): ``` - **YYYY-MM-DD** `<surface identifier>` — <what changed>: <new behavior> (was: <old behavior>) ``` Examples: ``` - **2026-05-17** `POST /enroll` — Improved error: now returns field name in validation errors (was: generic "invalid request") - **2026-05-17** `GET /items` — Tightened: malformed cursor now returns 400 with message (was: empty 200) - **2026-05-15** `Run()` — Fixed: negative qty now returns exit code 1 with message (was: panic) ``` ## Human vs Agent Invocation When this skill is invoked directly by a human (the default — no `--agent` flag in `$ARGUMENTS`), suggest CHANGELOG entries for minor behavioral changes. Present the suggested entries and let the user approve before any file is modified. When invoked with `--agent` in `$ARGUMENTS` (called from another skill or automation), only report violations — do not suggest changelog entries or prompt for approval. ## What Counts as "The Surface" The surface is defined by the same philosophy as the `surface-testing` skill: - **HTTP/gRPC API**: endpoints, request/response shapes, status codes, error codes, headers - **CLI**: flags, subcommands, output format, exit codes - **Library public API**: exported function signatures, return types, error types, exported struct fields - **Internal library boundaries**: packages that expose a complete, self-contained API (could be extracted independently) ## Quick Signal: Test File Changes Before deep analysis, check whether existing test files were **modified** (not just added). This is the fastest indicator of a surface change: - **Only new test files or only additive changes** (new test functions, new test cases added to existing tables): likely a new feature — no violation. - **Modified or deleted assertions in existing tests**: the surface likely changed. This triggers deep analysis. - **Renamed test functions or restructured test tables**: could be refactoring OR a behavioral change — triggers deep analysis. If no existing test assertions were modified/deleted, AND the deep analysis (Phase 1) finds no other surface changes, report clean and exit early. ## Inputs Determine the diff to review based on `$ARGUMENTS`: - No arguments: use uncommitted changes (`git diff` + `git diff --cached`) - `--commit <sha>`: diff that specific commit against its parent - `--branch` or no flag with a branch name: diff current branch against main (`git diff main...HEAD`) - A file path: diff only that file (uncommitted changes) Also locate the docs directory: - Look for `docs/` at the repository root - Within docs, look for: `adr/`, `features/` (containing PRDs, tech specs), and any `*-plan.md` or `implementation-plan.md` files - List all doc files found (paths only — don't read them yet) ## Phase 1: Change Analysis Agent Spawn a sub-agent (Agent tool, **foreground**, `model: "sonnet"`) to analyze the diff and classify changes. **Prompt structure:** ``` You are analyzing a code diff for surface-level behavioral changes. Your job is to identify changes that alter the system's public interface or observable behavior — NOT internal refactoring. DIFF: <full diff content> TEST FILE CHANGES (if any): <subset of diff that touches test files — show full hunks> Classify each meaningful change as one of: ### Surface Change <N>: <short title> **Type**: <one of: endpoint-added, endpoint-removed, endpoint-modified, signature-changed, return-type-changed, error-behavior-changed, field-added, field-removed, field-renamed, status-code-changed, flag-added, flag-removed, output-format-changed, breaking-removal> **Severity**: <ADR — breaking/semantic change to valid usage | CHANGELOG — improvement to error paths, validation, or non-breaking addition> **File**: <path:line> **Before**: <what it was (quote old code or describe)> **After**: <what it is now (quote new code or describe)> **Breaking**: <yes/no — would existing consumers break without code changes?> **Test impact**: <were existing tests modified to accommodate this change? cite the test file and what changed> SEVERITY RULES: - If existing valid inputs would produce different outputs or errors → ADR - If a public symbol is removed or renamed → ADR - If only invalid inputs are now handled differently (better errors, tighter validation) → CHANGELOG - If a response adds new fields without removing/changing existing ones → CHANGELOG - If an error message text changed but error type/code is the same → CHANGELOG - If a wrong status code is corrected (e.g., 500→422 for invalid input) → CHANGELOG
From thrawn01/claude-dotfiles, MIT.
More from thrawn01/claude-dotfiles
- 0.632score
review-tests
thrawn01
Review whether a feature's existing tests actually cover the acceptance criteria, scenarios, and correctness constraints documented in its Blueprint…
SkillAFreshness: A★ 11Claude Code +9 - 0.628score
linear-resume
thrawn01
Resume in-flight work tracked in Linear by reading the latest handoff and surfacing where things stand + the reasoned next step.
SkillAFreshness: A★ 11Claude Code +9 - 0.607score
herdr
thrawn01
Control Herdr, a terminal multiplexer for coding agents.
SkillAFreshness: A★ 11Claude Code +9 - 0.592score
lazy
thrawn01
Write the fewest words that carry the facts — terse, plain, human, not lawyerly.
SkillBFreshness: B★ 11Claude Code +9 - 0.592score
html-explainer
thrawn01
Create a standalone HTML explainer that teaches a thing visually, from the outside in — leading with the perspective of the person who uses or calls it (a…
SkillBFreshness: B★ 11Claude Code +9 - 0.592score
writing-style
thrawn01
Write or edit long-form prose in the user's essayist voice.
SkillBFreshness: B★ 11Claude Code +9 - 0.592score
no-ai-slop
thrawn01
Load and apply the No AI Slop output style — direct, opinionated answers with zero filler and a real point of view.
SkillBFreshness: B★ 11Claude Code +9 - 0.592score
writing-prose
thrawn01
Write explanatory prose for a smart reader meeting the subject for the first time: newcomer explainers, concept sections, 'how it works' docs, the explanatory…
SkillBFreshness: B★ 11Claude Code +9 - 0.543score
babysit-pr
thrawn01
Monitor and fix automated review comments (Copilot, SonarCloud) and CI failures on the current branch's PR.
SkillCFreshness: C★ 11Claude Code +9 - 0.542score
review-validate
thrawn01
Validate reported bugs/issues via sub-agents, write surface tests proving each one, then present findings for review before fixing.
SkillCFreshness: C★ 11Claude Code +9 - 0.542score
bug-detector
thrawn01
Detects bugs, logic errors, and edge case handling issues in code.
SkillCFreshness: C★ 11Claude Code +9 - 0.542score
handoff
thrawn01
Write a brief capturing the current state of in-flight work so it can be resumed in a fresh context window.
SkillCFreshness: C★ 11Claude Code +9
Signals
- Stars
- 11
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- May 17, 2026 (5 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/thrawn01/claude-dotfiles
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from thrawn01
- 0.632score
review-tests
thrawn01
Review whether a feature's existing tests actually cover the acceptance criteria, scenarios, and correctness constraints documented in its Blueprint…
SkillAFreshness: A★ 11Claude Code +9 - 0.628score
linear-resume
thrawn01
Resume in-flight work tracked in Linear by reading the latest handoff and surfacing where things stand + the reasoned next step.
SkillAFreshness: A★ 11Claude Code +9 - 0.607score
herdr
thrawn01
Control Herdr, a terminal multiplexer for coding agents.
SkillAFreshness: A★ 11Claude Code +9 - 0.592score
lazy
thrawn01
Write the fewest words that carry the facts — terse, plain, human, not lawyerly.
SkillBFreshness: B★ 11Claude Code +9 - 0.592score
writing-prose
thrawn01
Write explanatory prose for a smart reader meeting the subject for the first time: newcomer explainers, concept sections, 'how it works' docs, the explanatory…
SkillBFreshness: B★ 11Claude Code +9 - 0.592score
writing-style
thrawn01
Write or edit long-form prose in the user's essayist voice.
SkillBFreshness: B★ 11Claude Code +9
Cite this page
review-behavior-change skill. Agent Mart. https://agentmart.dev/skills/thrawn01-review-behavior-change (last updated 2026-10-24)