134 lines
4.3 KiB
Markdown
134 lines
4.3 KiB
Markdown
|
|
# Impact Analysis Template
|
||
|
|
|
||
|
|
Use this template before making changes to document what will be affected. Impact analysis prevents accidental regressions by forcing explicit consideration of downstream effects.
|
||
|
|
|
||
|
|
## How to Use
|
||
|
|
|
||
|
|
1. Complete this analysis before implementing changes
|
||
|
|
2. Review against invariants and golden examples
|
||
|
|
3. Get sign-off if impact is significant
|
||
|
|
4. Store with the change (commit message, PR description, or dedicated file)
|
||
|
|
|
||
|
|
## Template
|
||
|
|
|
||
|
|
```markdown
|
||
|
|
# Impact Analysis: [Brief description of change]
|
||
|
|
|
||
|
|
**Date:** YYYY-MM-DD
|
||
|
|
**Proposed By:** [Who]
|
||
|
|
|
||
|
|
## What Will Change
|
||
|
|
|
||
|
|
[Specific, observable differences after the change]
|
||
|
|
|
||
|
|
- [Change 1]
|
||
|
|
- [Change 2]
|
||
|
|
|
||
|
|
## What Could Degrade
|
||
|
|
|
||
|
|
[Potential negative effects - be honest about risks]
|
||
|
|
|
||
|
|
- [Risk 1]: [Likelihood and severity]
|
||
|
|
- [Risk 2]: [Likelihood and severity]
|
||
|
|
|
||
|
|
## Invariants Affected
|
||
|
|
|
||
|
|
| Invariant | Status | Notes |
|
||
|
|
|-----------|--------|-------|
|
||
|
|
| [Invariant text] | preserved / violated / modified | [Explanation] |
|
||
|
|
|
||
|
|
## Golden Examples Affected
|
||
|
|
|
||
|
|
| Example | Status | Notes |
|
||
|
|
|---------|--------|-------|
|
||
|
|
| [Example name] | passes / fails / needs update | [Explanation] |
|
||
|
|
|
||
|
|
## Recommendation
|
||
|
|
|
||
|
|
[ ] Proceed - changes are safe
|
||
|
|
[ ] Proceed with monitoring - watch for [specific signals]
|
||
|
|
[ ] Defer - needs [what's missing]
|
||
|
|
[ ] Reject - violates [what constraint]
|
||
|
|
|
||
|
|
**Rationale:** [Why this recommendation]
|
||
|
|
```
|
||
|
|
|
||
|
|
## Field Definitions
|
||
|
|
|
||
|
|
**What Will Change**: Observable differences. Focus on behavior, not implementation. Users should be able to notice these changes.
|
||
|
|
|
||
|
|
**What Could Degrade**: Honest risk assessment. Include low-probability high-impact risks. "Nothing could go wrong" is almost never true.
|
||
|
|
|
||
|
|
**Invariants Affected**: Check each documented invariant. "Preserved" means behavior unchanged. "Modified" means the invariant itself needs updating (rare and significant).
|
||
|
|
|
||
|
|
**Golden Examples Affected**: Run each golden example mentally or actually. "Needs update" means the example is wrong, not the change.
|
||
|
|
|
||
|
|
**Recommendation**: Clear action with justification. Defer and Reject are valid outcomes - not every change should proceed.
|
||
|
|
|
||
|
|
## Example: Filled-in Template
|
||
|
|
|
||
|
|
```markdown
|
||
|
|
# Impact Analysis: Add caching to skill-architect subagent spawn
|
||
|
|
|
||
|
|
**Date:** 2026-01-20
|
||
|
|
**Proposed By:** Developer
|
||
|
|
|
||
|
|
## What Will Change
|
||
|
|
|
||
|
|
- Subagent instructions cached for 5 minutes after first read
|
||
|
|
- Subsequent skill creations in same session use cached instructions
|
||
|
|
- Cache invalidated on any file change in skill-architect directory
|
||
|
|
|
||
|
|
## What Could Degrade
|
||
|
|
|
||
|
|
- Stale instructions if files change during session: Low likelihood, medium severity
|
||
|
|
- Memory usage from cache: Low likelihood, low severity
|
||
|
|
- Debugging difficulty if cache behavior unexpected: Medium likelihood, low severity
|
||
|
|
|
||
|
|
## Invariants Affected
|
||
|
|
|
||
|
|
| Invariant | Status | Notes |
|
||
|
|
|-----------|--------|-------|
|
||
|
|
| Always uses subagent for creation work | preserved | Cache is for instructions, not execution |
|
||
|
|
| Never creates files without reading existing patterns | preserved | Patterns still read, just cached |
|
||
|
|
| Always runs description-architect for frontmatter | preserved | Unaffected |
|
||
|
|
|
||
|
|
## Golden Examples Affected
|
||
|
|
|
||
|
|
| Example | Status | Notes |
|
||
|
|
|---------|--------|-------|
|
||
|
|
| Simple skill creation | passes | Behavior identical, just faster on repeat |
|
||
|
|
| Error handling | passes | Errors still propagate correctly |
|
||
|
|
|
||
|
|
## Recommendation
|
||
|
|
|
||
|
|
[x] Proceed with monitoring - watch for stale instruction complaints
|
||
|
|
|
||
|
|
**Rationale:** Performance improvement with low risk. Cache invalidation on file change handles the main failure mode. Monitor for user reports of unexpected behavior in first week.
|
||
|
|
```
|
||
|
|
|
||
|
|
## When to Create Impact Analysis
|
||
|
|
|
||
|
|
**Always create for:**
|
||
|
|
- Changes to documented invariants
|
||
|
|
- Changes affecting multiple tools
|
||
|
|
- Performance optimizations (often have subtle behavior changes)
|
||
|
|
- Removing or deprecating features
|
||
|
|
|
||
|
|
**Consider creating for:**
|
||
|
|
- Adding new features (may affect existing behavior)
|
||
|
|
- Refactoring (should be behavior-preserving but verify)
|
||
|
|
- Dependency updates
|
||
|
|
|
||
|
|
**Skip for:**
|
||
|
|
- Documentation-only changes
|
||
|
|
- Adding tests without behavior changes
|
||
|
|
- Fixing bugs to match documented behavior
|
||
|
|
|
||
|
|
## Using Impact Analysis Results
|
||
|
|
|
||
|
|
- **Proceed**: Implement, commit, done
|
||
|
|
- **Proceed with monitoring**: Implement, set reminder to check signals, document what to watch
|
||
|
|
- **Defer**: Document what's needed, create task to revisit
|
||
|
|
- **Reject**: Document in decision record why this change was rejected
|