You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
236 lines
9.5 KiB
236 lines
9.5 KiB
---
|
|
description: when comments are generated by the model
|
|
alwaysApply: false
|
|
---
|
|
# Historical Comment Management — Harbor Pilot Directive
|
|
|
|
> **Agent role**: When encountering historical comments about removed methods, deprecated patterns, or architectural changes, apply these guidelines to maintain code clarity and developer guidance.
|
|
|
|
## 🎯 Purpose
|
|
|
|
Historical comments should either be **removed entirely** or **transformed into actionable guidance** for future developers. Avoid keeping comments that merely state what was removed without explaining why or what to do instead.
|
|
|
|
## 📋 Decision Framework
|
|
|
|
### Remove Historical Comments When:
|
|
- **Obsolete Information**: Comment describes functionality that no longer exists
|
|
- **No Action Required**: Comment doesn't help future developers make decisions
|
|
- **Outdated Context**: Comment refers to old patterns that are no longer relevant
|
|
- **Self-Evident**: The current code clearly shows the current approach
|
|
|
|
### Transform Historical Comments When:
|
|
- **Architectural Context**: The change represents a significant pattern shift
|
|
- **Migration Guidance**: Future developers might need to understand the evolution
|
|
- **Decision Rationale**: The "why" behind the change is still relevant
|
|
- **Alternative Approaches**: The comment can guide future implementation choices
|
|
|
|
## 🔄 Transformation Patterns
|
|
|
|
### 1. From Removal Notice to Migration Note
|
|
```typescript
|
|
// ❌ REMOVE THIS
|
|
// turnOffNotifyingFlags method removed - notification state is now managed by NotificationSection component
|
|
|
|
// ✅ TRANSFORM TO THIS
|
|
// Note: Notification state management has been migrated to NotificationSection component
|
|
// which handles its own lifecycle and persistence via PlatformServiceMixin
|
|
```
|
|
|
|
### 2. From Deprecation Notice to Implementation Guide
|
|
```typescript
|
|
// ❌ REMOVE THIS
|
|
// This will be handled by the NewComponent now
|
|
// No need to call oldMethod() as it's no longer needed
|
|
|
|
// ✅ TRANSFORM TO THIS
|
|
// Note: This functionality has been migrated to NewComponent
|
|
// which provides better separation of concerns and testability
|
|
```
|
|
|
|
### 3. From Historical Note to Architectural Context
|
|
```typescript
|
|
// ❌ REMOVE THIS
|
|
// Old approach: used direct database calls
|
|
// New approach: uses service layer
|
|
|
|
// ✅ TRANSFORM TO THIS
|
|
// Note: Database access has been abstracted through service layer
|
|
// for better testability and platform independence
|
|
```
|
|
|
|
## 🚫 Anti-Patterns to Remove
|
|
|
|
- Comments that only state what was removed
|
|
- Comments that don't explain the current approach
|
|
- Comments that reference non-existent methods
|
|
- Comments that are self-evident from the code
|
|
- Comments that don't help future decision-making
|
|
|
|
## ✅ Best Practices
|
|
|
|
### When Keeping Historical Context:
|
|
1. **Explain the "Why"**: Why was the change made?
|
|
2. **Describe the "What"**: What is the current approach?
|
|
3. **Provide Context**: When might this information be useful?
|
|
4. **Use Actionable Language**: Guide future decisions, not just document history
|
|
|
|
### When Removing Historical Context:
|
|
1. **Verify Obsoleteness**: Ensure the information is truly outdated
|
|
2. **Check for Dependencies**: Ensure no other code references the old approach
|
|
3. **Update Related Docs**: If removing from code, consider adding to documentation
|
|
4. **Preserve in Git History**: The change is preserved in version control
|
|
|
|
## 🔍 Implementation Checklist
|
|
|
|
- [ ] Identify historical comments about removed/deprecated functionality
|
|
- [ ] Determine if comment provides actionable guidance
|
|
- [ ] Transform useful comments into migration notes or architectural context
|
|
- [ ] Remove comments that are purely historical without guidance value
|
|
- [ ] Ensure remaining comments explain current approach and rationale
|
|
- [ ] Update related documentation if significant context is removed
|
|
|
|
## 📚 Examples
|
|
|
|
### Good Historical Comment (Keep & Transform)
|
|
```typescript
|
|
// Note: Database access has been migrated from direct IndexedDB calls to PlatformServiceMixin
|
|
// This provides better platform abstraction and consistent error handling across web/mobile/desktop
|
|
// When adding new database operations, use this.$getContact(), this.$saveSettings(), etc.
|
|
```
|
|
|
|
### Bad Historical Comment (Remove)
|
|
```typescript
|
|
// Old method getContactFromDB() removed - now handled by PlatformServiceMixin
|
|
// No need to call the old method anymore
|
|
```
|
|
|
|
## 🎯 Integration with Harbor Pilot
|
|
|
|
This rule works in conjunction with:
|
|
- **Component Creation Ideals**: Maintains architectural consistency
|
|
- **Migration Patterns**: Documents evolution of patterns
|
|
- **Code Review Guidelines**: Ensures comments provide value
|
|
|
|
## 📝 Version History
|
|
|
|
### v1.0.0 (2025-08-21)
|
|
- Initial creation based on notification system cleanup
|
|
- Established decision framework for historical comment management
|
|
- Added transformation patterns and anti-patterns
|
|
- Integrated with existing Harbor Pilot architecture rules
|
|
# Historical Comment Management — Harbor Pilot Directive
|
|
|
|
> **Agent role**: When encountering historical comments about removed methods, deprecated patterns, or architectural changes, apply these guidelines to maintain code clarity and developer guidance.
|
|
|
|
## 🎯 Purpose
|
|
|
|
Historical comments should either be **removed entirely** or **transformed into actionable guidance** for future developers. Avoid keeping comments that merely state what was removed without explaining why or what to do instead.
|
|
|
|
## 📋 Decision Framework
|
|
|
|
### Remove Historical Comments When:
|
|
- **Obsolete Information**: Comment describes functionality that no longer exists
|
|
- **No Action Required**: Comment doesn't help future developers make decisions
|
|
- **Outdated Context**: Comment refers to old patterns that are no longer relevant
|
|
- **Self-Evident**: The current code clearly shows the current approach
|
|
|
|
### Transform Historical Comments When:
|
|
- **Architectural Context**: The change represents a significant pattern shift
|
|
- **Migration Guidance**: Future developers might need to understand the evolution
|
|
- **Decision Rationale**: The "why" behind the change is still relevant
|
|
- **Alternative Approaches**: The comment can guide future implementation choices
|
|
|
|
## 🔄 Transformation Patterns
|
|
|
|
### 1. From Removal Notice to Migration Note
|
|
```typescript
|
|
// ❌ REMOVE THIS
|
|
// turnOffNotifyingFlags method removed - notification state is now managed by NotificationSection component
|
|
|
|
// ✅ TRANSFORM TO THIS
|
|
// Note: Notification state management has been migrated to NotificationSection component
|
|
// which handles its own lifecycle and persistence via PlatformServiceMixin
|
|
```
|
|
|
|
### 2. From Deprecation Notice to Implementation Guide
|
|
```typescript
|
|
// ❌ REMOVE THIS
|
|
// This will be handled by the NewComponent now
|
|
// No need to call oldMethod() as it's no longer needed
|
|
|
|
// ✅ TRANSFORM TO THIS
|
|
// Note: This functionality has been migrated to NewComponent
|
|
// which provides better separation of concerns and testability
|
|
```
|
|
|
|
### 3. From Historical Note to Architectural Context
|
|
```typescript
|
|
// ❌ REMOVE THIS
|
|
// Old approach: used direct database calls
|
|
// New approach: uses service layer
|
|
|
|
// ✅ TRANSFORM TO THIS
|
|
// Note: Database access has been abstracted through service layer
|
|
// for better testability and platform independence
|
|
```
|
|
|
|
## 🚫 Anti-Patterns to Remove
|
|
|
|
- Comments that only state what was removed
|
|
- Comments that don't explain the current approach
|
|
- Comments that reference non-existent methods
|
|
- Comments that are self-evident from the code
|
|
- Comments that don't help future decision-making
|
|
|
|
## ✅ Best Practices
|
|
|
|
### When Keeping Historical Context:
|
|
1. **Explain the "Why"**: Why was the change made?
|
|
2. **Describe the "What"**: What is the current approach?
|
|
3. **Provide Context**: When might this information be useful?
|
|
4. **Use Actionable Language**: Guide future decisions, not just document history
|
|
|
|
### When Removing Historical Context:
|
|
1. **Verify Obsoleteness**: Ensure the information is truly outdated
|
|
2. **Check for Dependencies**: Ensure no other code references the old approach
|
|
3. **Update Related Docs**: If removing from code, consider adding to documentation
|
|
4. **Preserve in Git History**: The change is preserved in version control
|
|
|
|
## 🔍 Implementation Checklist
|
|
|
|
- [ ] Identify historical comments about removed/deprecated functionality
|
|
- [ ] Determine if comment provides actionable guidance
|
|
- [ ] Transform useful comments into migration notes or architectural context
|
|
- [ ] Remove comments that are purely historical without guidance value
|
|
- [ ] Ensure remaining comments explain current approach and rationale
|
|
- [ ] Update related documentation if significant context is removed
|
|
|
|
## 📚 Examples
|
|
|
|
### Good Historical Comment (Keep & Transform)
|
|
```typescript
|
|
// Note: Database access has been migrated from direct IndexedDB calls to PlatformServiceMixin
|
|
// This provides better platform abstraction and consistent error handling across web/mobile/desktop
|
|
// When adding new database operations, use this.$getContact(), this.$saveSettings(), etc.
|
|
```
|
|
|
|
### Bad Historical Comment (Remove)
|
|
```typescript
|
|
// Old method getContactFromDB() removed - now handled by PlatformServiceMixin
|
|
// No need to call the old method anymore
|
|
```
|
|
|
|
## 🎯 Integration with Harbor Pilot
|
|
|
|
This rule works in conjunction with:
|
|
- **Component Creation Ideals**: Maintains architectural consistency
|
|
- **Migration Patterns**: Documents evolution of patterns
|
|
- **Code Review Guidelines**: Ensures comments provide value
|
|
|
|
## 📝 Version History
|
|
|
|
### v1.0.0 (2025-08-21)
|
|
- Initial creation based on notification system cleanup
|
|
- Established decision framework for historical comment management
|
|
- Added transformation patterns and anti-patterns
|
|
- Integrated with existing Harbor Pilot architecture rules
|
|
|