| name | code-scope-boundaries |
| description | Project-level scope analysis for evaluating whether a project has exceeded its useful boundaries, needs splitting, or is experiencing scope creep. Use when evaluating project structure, considering whether to split a project, assessing feature belonging, or when projects feel too large or unfocused during brainstorm, scope, or architecture review. Covers cohesion test at project level, feature belonging assessment, scope creep detection, split-vs-keep decision framework, and safe splitting patterns. |
Code Scope Boundaries
Scope Health Checklist
Run this during architecture review or when scope feels unclear:
If 3+ items fail: The project may have outgrown its boundaries. Run the split-vs-keep framework below.
Feature Belonging Quick Test
| Question | Belongs | Doesn't Belong |
|---|
| Who uses it? | Same users as existing features | Different user group entirely |
| When does it change? | Same triggers as the core product | Independent triggers, different release cycle |
| How is it deployed? | Same deployment artifact and cadence | Needs separate scaling, uptime, or infrastructure |
| What data does it use? | Same domain entities | Different data domain with minimal overlap |
| Who maintains it? | Same team with shared context | Different team or skill set required |
If 3+ answers land in "Doesn't Belong": The feature is a candidate for extraction.
The One-Sentence Test
Describe your project's purpose in a single sentence. If the sentence contains "and" connecting unrelated capabilities, that conjunction is a potential split point. Related capabilities often belong together โ the question is whether they share users, data, and deployment needs.
The Boiling Frog Pattern
Scope creep follows a predictable progression:
- Phase 1: Core product solves one problem well
- Phase 2: Adjacent features added ("natural extensions")
- Phase 3: Unrelated features added ("while we're at it")
- Phase 4: Features serve different users with different needs
- Phase 5: The project has become a platform โ intentional or not
Each phase transition feels small. Monitor for transitions and make conscious decisions about whether to accept them.
Scope Creep Measurement
| Metric | Healthy | Warning | Critical |
|---|
| Utils/helpers ratio | <10% of codebase | 10-25% | >25% โ domain boundaries unclear |
| Cross-feature dependencies | Rare, well-defined interfaces | Growing, some circular | Pervasive โ features can't change independently |
| New developer productivity | Productive in days | Productive in weeks | Months before meaningful contributions |
| Unrelated issue coupling | Issues affect one feature | Issues span 2-3 features | Most issues touch 4+ features |
Split-vs-Keep Decision Tree
Are different teams blocked by shared codebase?
โโโ Yes โ Split along team boundaries (Conway's Law)
โโโ No
Does the project need different scaling for different features?
โโโ Yes โ Extract the differently-scaled component
โโโ No
Are cascading failures affecting unrelated features?
โโโ Yes โ Split to isolate failure domains
โโโ No
Is onboarding time growing beyond acceptable?
โโโ Yes โ Consider splitting, but check if better
โ internal organization helps first
โโโ No โ Don't split. Improve internal boundaries instead.
"Should I Split This Project?"
| Your situation | Recommendation |
|---|
| One team, features cohesive, shared data | Don't split โ improve internal organization |
| One team, features diverging, shared deployment | Internal boundaries โ modules or packages, not projects |
| Multiple teams, shared codebase friction | Split along team boundaries โ Conway's Law |
| Independent scaling needs | Extract the bottleneck โ Strangler Fig pattern |
| Cascading failures across features | Isolate failure domains โ split for resilience |
| "It's getting big" but no measured pain | Don't split โ size alone is not a reason |
"Is This Scope Creep or Natural Growth?"
| Indicator | Natural Growth | Scope Creep |
|---|
| User request | From primary audience | From a different user group |
| Domain fit | Same business domain | Adjacent or unrelated domain |
| Data model | Uses existing entities | Requires new, unrelated entities |
| Team expertise | Existing team can build it | Requires different skill set |
| Deployment | Ships with existing cadence | Needs different infrastructure |