Change Control Without Scope Creep: CHG-130 Explained
"Can we just add one more feature?"
Five words that destroy projects.
Not because the feature is bad. Not because it's hard to build. But because "just one more" becomes twenty, the timeline doubles, the budget triples, and nobody knows who approved what.
This is scope creep. CHG-130 eliminates it.
The Scope Creep Problem
Every project faces mid-course changes. Requirements shift. Priorities change. New opportunities emerge.
The question isn't "Will scope change?"
It's "How do we handle it without chaos?"
Scenario: Client asks for SMS notifications mid-project
- No re-scoping
- No price discussion
- Timeline slips by 2 weeks
- Final invoice: $15K higher than quote
- Everything becomes a battle
- Client frustrated: "You're nickel-and-diming me"
- Relationship damaged
- Change requests avoided instead of managed
- Change deferred indefinitely
- Shipped product missing critical feature
- Post-launch scramble
- Two months of wasted "let's circle back"
The CHG-130 Approach
CHG-130 is our change control protocol. Every scope change goes through it.
What "Baseline" Means
When we co-write AC.md and both parties sign off, we tag it:
git tag ac-baseline_signup_2025-11-02
This tag means:
- 🔒 Scope is frozen
- 💰 Price is locked
- 📅 Timeline is set
- 🔄 Any change requires CHG-130
Two Types of Changes: Swap or Add
When a client requests a change, we classify it:
Swap
€0, Same Milestone- Same milestone
- Equal or simpler implementation
- No new features, just substitution
Example: Email → SMS Notifications
## Notification System - Send email notifications on signup - Send email notifications on password reset - Email delivery rate > 99%
"Change email notifications to SMS"
- ✓ Same functionality (notifications)
- ✓ Similar complexity (both are external API calls)
- ✓ No new features (just swap delivery method)
Add
New Milestone, Priced- New features
- Increased complexity
- Additional work beyond baseline
Example: Add Mobile Push Notifications
## Notification System - Send email notifications on signup - Send email notifications on password reset
"Also add mobile push notifications"
- ⚠ New feature (push notifications)
- ⚠ New infrastructure (push service, mobile SDK)
- ⚠ Increased complexity (multi-platform support)
Interactive Decision Tree: Swap or Add?
Select a change example below and walk through the CHG-130 classification process.
Select a Change Request:
The CHG-130 Workflow
Client Requests Change
Client: "Can we change X to Y?"
Rafael Opens Change Request
git tag change-req_001_2025-11-02
- What's being requested
- Why (client rationale)
- Current state vs desired state
Aïcha Analyzes Complexity
Classification Decision
If Swap:
- Price: €0
- Update AC.md to reflect change
- Deliver within original milestone
If Add:
- Create new milestone
- Write new AC.md
- Price the new work
- Client approval required before starting
Delivery
git tag change-delivered_001_2025-11-03
/proof/change-req_001- Shows: request → analysis → decision → delivery
- Transparent change history
Real Examples
Example 1: Swap
Authentication Method- Both are auth methods
- OTP is actually simpler (no password storage)
- Equal complexity
Outcome: Delivered in original timeline, no price change
Example 2: Add
Analytics Dashboard- New feature (analytics)
- New infrastructure (data aggregation, charting library)
- Significantly more complex
Price: $12K
Client: Approved
Outcome: New AC.md created, Evidence Sprint → AC green
Example 3: Swap
UI Framework- Same output (UI components)
- Same complexity (modern frameworks)
- Personal preference, not new features
Note: Requested early in project, minimal rework
Outcome: Swapped, delivered on time
Why This Prevents Scope Creep
1. Explicit Classification
Every change is either Swap or Add. No gray area.
2. Price Transparency
Adds are priced before work begins.
3. Baseline Protection
AC.md is frozen after baseline. Changes require CR.
4. Audit Trail
Every CR is tagged and generates a public proof entry.
The Math That Matters
❌ Project without CHG-130
✅ Project with CHG-130
Common Questions
"What if I'm not sure if something is Swap or Add?"
That's what the analysis phase is for (Step 3).
We err on the side of transparency:
- If it's borderline, we explain both options
- Client decides if the Add is worth it
- If not, we stick with original scope
"What if I want to Swap multiple things?"
Each Swap is a separate CR.
Why? Audit trail. We want clear history of every change.
"What happens if we disagree on Swap vs Add?"
We provide complexity analysis:
- Lines of code estimate
- New dependencies required
- Infrastructure changes needed
If it's genuinely equal complexity, it's a Swap. If it's more, it's an Add.
Disagreement is rare because the analysis is objective.
"Can I cancel an Add after approving?"
What's Next?
At ScopeLock, CHG-130 is mandatory. We don't accept projects without baseline protection.