
seam-ripper
Ruthlessly analyze architectural seams—the interfaces, boundaries, and contracts between system components—to expose coupling problems, abstraction leaks, and design failures. Use when asked to review architecture, analyze coupling, find interface problems, improve module boundaries, audit dependencies, or redesign system structure. Produces uncompromising redesign proposals that prioritize correctness over backwards compatibility.
- Installs
- 42
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/petekp/claude-code-setup --skill seam-ripper- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads seam-ripper automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Seam Ripper
Systematically dissect a codebase's internal architecture to expose where it's wrong and propose what's right.
Principles
No sacred cows. Existing patterns are evidence of past decisions, not correct ones.
Seams reveal truth. How components connect exposes what the system actually is, not what documentation claims.
Backwards compatibility is not a constraint. The goal is correct architecture. Migration is a separate problem.
Complexity is guilt until proven innocent. Every abstraction, indirection, and interface must justify its existence.
Execution
Phase 1: Map the Terrain
Build a complete picture of the system's internal structure before judging it.
- Identify all modules/packages/namespaces - List every bounded unit of code
- Trace import/dependency graphs - What depends on what, and why
- Catalog public interfaces - Every exported function, class, type, constant
- Find the data contracts - Shared types, DTOs, schemas that cross boundaries
- Locate the integration points - Where modules actually talk to each other
Output a dependency map showing:
- Module → Module edges with dependency reason
- Circular dependencies (immediate red flags)
- Fan-in/fan-out counts per module
Phase 2: Interrogate Each Seam
For every boundary identified, answer these questions:
Interface Clarity
- Can you understand what this module does from its public interface alone?
- Are there "util" or "helper" exports? (smell: no clear responsibility)
- Does the interface expose implementation details?
Dependency Direction
- Does this dependency make conceptual sense?
- Is a "lower-level" module depending on a "higher-level" one?
- Would inverting this dependency simplify both sides?
Coupling Assessment
- How many other modules break if this interface changes?
- Is the coupling through data, behavior, or both?
- Could this be an event/message instead of a direct call?
Abstraction Integrity
- Does this interface leak implementation details?
- Are callers doing work that belongs inside the module?
- Are there multiple ways to accomplish the same thing?
Contract Stability
- How often has this interface changed historically?
- Are there versioned interfaces or deprecation warnings? (smell: unstable contract)
- Do tests mock this interface? (evidence of coupling pain)
Phase 3: Identify Patterns of Failure
Look for these systemic problems:
| Pattern | Symptoms | What's Actually Wrong |
|---|---|---|
| God Module | Everything imports it, huge public API | Missing domain boundaries |
| Shotgun Surgery | One change requires edits across many modules | Responsibility scattered |
| Feature Envy | Module A constantly reaches into Module B's data | Wrong ownership of data/behavior |
| Inappropriate Intimacy | Two modules share private details | Should be one module or have explicit contract |
| Middle Man | Module just delegates to another | Unnecessary indirection |
| Parallel Hierarchies | Adding X requires adding Y in another module | Missing abstraction |
| Speculative Generality | Interfaces for flexibility never used | Premature abstraction |
| Dead Abstraction | Interface with one implementation forever | Abstraction without purpose |
Phase 4: Propose the Redesign
For each significant problem, provide:
1. The Indictment State clearly what is wrong and why it matters. Be specific:
- "Module X has 47 public exports and is imported by 23 other modules"
- "The User type is defined in
corebut has fields only used bybilling"
2. The Correct Architecture Describe what it should look like:
- Clear module boundaries with stated responsibilities
- Dependency direction that follows conceptual hierarchy
- Interfaces that expose intent, not implementation
3. The Transformation Concrete steps to get from wrong to right:
- What moves where
- What gets split or merged
- What interfaces change
- What new abstractions emerge
4. The Evidence Explain why this is better:
- Reduced coupling (quantify: N imports → M imports)
- Clearer responsibilities
- Easier to test, extend, or replace
Output Format
# Seam Analysis: [System/Area Name]
## Dependency Map
[Visual or textual representation of module dependencies]
## Critical Findings
### Finding 1: [Problem Name]
**Location:** [modules/files involved]
**Severity:** Critical | High | Medium
**Pattern:** [which failure pattern]
**Evidence:**
[Specific code/structure references]
**Indictment:**
[Clear statement of what's wrong]
**Redesign:**
[Proposed correct architecture]
**Transformation:**
1. [Step]
2. [Step]
...
### Finding 2: ...
## Recommended Architecture
[Overall vision for how the system should be structured]
## Transformation Sequence
[Ordered list of changes, grouped by logical phases]
Red Lines
Refuse to:
- Propose "incremental improvements" that preserve broken architecture
- Accept "but it works" as justification for poor design
- Recommend adapters/facades that hide problems instead of fixing them
- Preserve interfaces just because they're widely used
Always:
- Name the actual problem, not a symptom
- Propose the correct design, not a compromise
- Quantify coupling and complexity where possible
- Explain the conceptual model that makes the redesign correct
FAQ
What does the seam-ripper skill do?
Ruthlessly analyze architectural seams—the interfaces, boundaries, and contracts between system components—to expose coupling problems, abstraction leaks, and design failures. Use when asked to review architecture, analyze coupling, find interface problems, improve module boundaries, audit dependencies, or redesign system structure. Produces uncompromising redesign proposals that prioritize correctness over backwards compatibility.
How do I install seam-ripper?
Run npx skills add https://github.com/petekp/claude-code-setup --skill seam-ripper in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/seam-ripper/ (personal) or .claude/skills/seam-ripper/ (project).
Which AI agents can use seam-ripper?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is seam-ripper safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains seam-ripper?
It is published by petekp in petekp/claude-code-setup. It has 42 recorded installs.
More from petekp/claude-code-setup
code-comments
petekp/claude-code-setup
Write, review, or remove code comments. Use when adding comments or doc comments, reviewing the comments in a diff, or cleaning up or removing comments.
deep-research
petekp/claude-code-setup
Investigate a question that requires sustained research across sources and produce cited findings. Use for deep research requests; skip ordinary lookups and single-document reviews.
exhaustive-systems-analysis
petekp/claude-code-setup
Open the skill to read its SKILL.md instructions.
typography
petekp/claude-code-setup
Apply professional typography principles to create readable, hierarchical, and aesthetically refined interfaces. Use when setting type scales, choosing fonts, adjusting spacing, designing text-heavy layouts, implementing dark mode typography, or when asked about readability, font pairing, line height, measure, typographic hierarchy, variable fonts, font loading, or OpenType features.
claude-code-audit
petekp/claude-code-setup
Forensic audit of the user's recent Claude Code sessions to surface step-change workflow improvements — not marginal ones. Use when the user asks to "audit my Claude Code sessions", "analyze how I use Claude Code", "find patterns in my usage", "improve my Claude Code workflow", "review my sessions", "find leverage in my setup", or wants to understand where their Claude Code setup is leaking time. Samples dozens of real transcripts, extracts quantitative signal via scripts, uses parallel subagents for deep reads, then synthesizes into a short prioritized report with drafted implementations (new skills, CLAUDE.md rules, hooks, settings diffs) that the user can install directly. Trigger even when the user doesn't say the word "audit" — if they're asking about improving or reviewing their Claude Code habits at scale, use this skill.
literate-guide
petekp/claude-code-setup
Create a narrative guide to a codebase or feature in the style of Knuth's Literate Programming — code and prose interwoven as a single essay, ordered for human understanding rather than compiler needs. Use when the user asks to 'explain this codebase as a story', 'write a literate guide', 'create a narrative walkthrough', 'tell the story of this code', 'Knuth-style documentation', 'weave a guide for this feature', or when they want deep, readable documentation that treats the program as literature. Also trigger when someone wants a document that a thoughtful reader could follow from start to finish and come away understanding both WHAT the code does and WHY every design choice was made.
Popular code quality & workflow skills
grill-me
mattpocock/skills
A relentless interview to sharpen a plan or design.
improve-codebase-architecture
mattpocock/skills
Scan a codebase for deepening opportunities, present them as a visual HTML report, then grill through whichever one you pick.
handoff
mattpocock/skills
Compact the current conversation into a handoff document for another agent to pick up.
domain-modeling
mattpocock/skills
Build and sharpen a project's domain model. Use when discussing codebase terminology, writing or editing a GLOSSARY.md, or recording or editing an ADR.
codebase-design
mattpocock/skills
Shared vocabulary for designing deep modules. Use when the user wants to design or improve a module's interface, find deepening opportunities, decide where a seam goes, make code more testable or AI-navigable, or when another skill needs the deep-module vocabulary.
diagnosing-bugs
mattpocock/skills
Diagnosis loop for hard bugs and performance regressions. Use when the user says "diagnose"/"debug this", or reports something broken/throwing/failing/slow.