subtractive-review
Review a codebase for safe deletions by pairing each removal with the invariant and evidence that make it safe.
Skill by terebentina
Chalk Labs
Need help deploying subtractive-review?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
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/terebentina-subtractive-review
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
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/subtractive-review
What's inside
- Skill name
subtractive-review- Description
- Review a codebase for safe deletions by pairing each removal with the invariant and evidence that make it safe.
- License
- MIT
- Instructions
- 110 lines in SKILL.md · view on GitHub
Files (2)
- SKILL.md
- openai.yaml · agents/
SKILL.md (first lines)
# Subtractive Review Find code the repository no longer needs. A finding is not a smell or a complexity score. It is one specific deletion, plus the invariant that makes the deletion safe, plus evidence that the invariant holds. If the invariant depends on unwritten domain knowledge, turn it into a concrete question for the human instead of guessing. This is a read-only review until the human approves particular removals. ## Process ### 1. Establish the contract Read the repository instructions, domain documentation, tests, and current working-tree state. Identify the supported callers and inputs for the area under review. Record the command that currently verifies the repository, or state that no usable baseline exists. The user may name a file, module, or subsystem as the review scope. Search the whole repository when establishing reachability. A local search cannot prove that code has no callers elsewhere in the repository. Treat an exported or documented public interface as having unknown external callers unless the repository's compatibility policy says it can be removed. ### 2. Build a candidate list Use the repository's existing analysis tools when available: symbol references, call graphs, coverage, complexity reports, linters, or dead-code detectors. Do not add a dependency just to run this review. Metrics and tool warnings choose where to read; they are not findings and have no target value. Look for: - branches whose callers cannot produce the tested state; - optional parameters or modes that every caller uses the same way; - compatibility paths with no supported producer or consumer; - errors converted into `null`, sentinels, or empty results that force every caller to branch; - the same validation repeated after a constructor or boundary already establishes the invariant; - private helpers with no real caller, one caller, or only test callers; - abstractions introduced for hypothetical variation that never arrived. One caller is a prompt to read, not a reason to inline. A helper earns its name when the name communicates more than the body or when it contains a meaningful concept. Complexity and line count cannot answer that question. ### 3. Prove each candidate Trace every candidate through production entry points, scripts, tests, configuration, generated code, reflection, registration, and dynamic dispatch where the language permits them. Search for string references as well as direct calls before treating a symbol as unused. Classify it: - **Ready to remove**: repository evidence or an already-documented invariant proves the path is unsupported or unreachable. - **Question for the human**: one concrete domain fact would decide it. - **Keep**: a real caller, supported input, compatibility promise, or clearer concept earns the code its place. A test proves that code behaves as written. It does not prove that the tested case belongs to the domain. When a test is the only evidence for a supposedly supported case, ask whether the case is real. Prefer invariants that the implementation can enforce. In order: make the invalid state unrepresentable, assert it once at the input boundary, then document it. Do not scatter the same check through downstream callers. ### 4. Report and stop Start with the baseline, review scope, and stopping point. Then report each ready removal with: - **Where**: file and symbol; - **Delete**: the exact branch, parameter, helper, or compatibility path; - **Invariant**: the fact that makes deletion safe and where it is enforced; - **Evidence**: callers, repository documentation, runtime contract, or a human-confirmed fact; - **Verify**: the focused check that would catch a wrong deletion. List unresolved questions separately in an answerable form, such as "Can `parseOrder()` receive an empty item list?" Report any part of the requested scope you did not reach. Do not assign a score, severity, or percentage of complexity to remove. Stop after the report and ask which removals the human approves. ### 5. Apply approved removals Only after approval, apply one logically independent removal at a time. Remove tests whose only purpose was to certify an excluded case, but preserve tests of supported behaviour. Run the focused check after each removal and the full baseline at the end. Inspect the final diff for unrelated changes and state any remaining uncertainty. Do not replace deleted code with a new abstraction. Do not commit unless the human asks. ## Boundaries - Use `code-review` for defects or conformance in a diff. - Use `improve-codebase-architecture` for additive or restructuring proposals. - Mention a bug discovered in passing, but leave it outside this report.
From terebentina/skills, MIT.
More from terebentina/skills
- 0.524score
improve-codebase-architecture
terebentina
Scan a codebase for deepening opportunities and present an HTML report.
SkillBFreshness: BClaude Code +9 - 0.524score
wayfinder
terebentina
Explore work that exceeds one agent session as local decision tickets.
SkillBFreshness: BClaude Code +9 - 0.524score
deps-up
terebentina
Update npm packages across major versions while respecting minimumReleaseAge, then compare the result against a baseline.
SkillBFreshness: BClaude Code +9 - 0.524score
to-spec
terebentina
Turn the conversation, plan, or completed Wayfinder effort into a spec in the issue tracker.
SkillBFreshness: BClaude Code +9 - 0.524score
setup
terebentina
Configure the issue tracker, triage labels, and domain docs for these engineering skills.
SkillBFreshness: BClaude Code +9 - 0.523score
to-tickets
terebentina
Split a plan or spec into tracer-bullet tickets with blocking edges.
SkillBFreshness: BClaude Code +9 - 0.523score
triage
terebentina
Move issues and external pull requests through triage roles.
SkillBFreshness: BClaude Code +9 - 0.521score
lets-plan-code
terebentina
Plan session that integrates with the existing domain model, sharpens terminology, and updates documentation (CONTEXT.md, ADRs) as decisions are made.
SkillBFreshness: BClaude Code +9 - 0.521score
implement
terebentina
Build ready-for-agent tickets from a spec, epic, or ticket ID.
SkillBFreshness: BClaude Code +9 - 0.519score
business-behavior-testing
terebentina
Select and write risk-based behavior tests for features or bug fixes.
SkillBFreshness: BClaude Code +9 - 0.519score
fresh-eyes
terebentina
Re-read a draft plan with adversarial eyes before committing to it.
SkillBFreshness: BClaude Code +9 - 0.518score
handoff
terebentina
Create a handoff document for another agent.
SkillBFreshness: BClaude Code +9
Signals
- Stars
- 0
- Forks
- 1
- Open issues
- 0
- Last commit (this folder)
- Sep 24, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/terebentina/skills
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from terebentina
- 0.524score
improve-codebase-architecture
terebentina
Scan a codebase for deepening opportunities and present an HTML report.
SkillBFreshness: BClaude Code +9 - 0.524score
wayfinder
terebentina
Explore work that exceeds one agent session as local decision tickets.
SkillBFreshness: BClaude Code +9 - 0.524score
to-spec
terebentina
Turn the conversation, plan, or completed Wayfinder effort into a spec in the issue tracker.
SkillBFreshness: BClaude Code +9 - 0.524score
deps-up
terebentina
Update npm packages across major versions while respecting minimumReleaseAge, then compare the result against a baseline.
SkillBFreshness: BClaude Code +9 - 0.524score
setup
terebentina
Configure the issue tracker, triage labels, and domain docs for these engineering skills.
SkillBFreshness: BClaude Code +9 - 0.523score
to-tickets
terebentina
Split a plan or spec into tracer-bullet tickets with blocking edges.
SkillBFreshness: BClaude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get subtractive-review running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
subtractive-review skill. Agent Mart. https://agentmart.dev/skills/terebentina-subtractive-review (last updated 2026-10-24)