UNPKG

homebridge-rabbitair

Version:
197 lines (148 loc) 6 kB
# Modification Spec: [CHANGE DESCRIPTION] **Original Feature**: [###-feature-name](../../###-feature-name/spec.md) **Modification ID**: ###-mod-### **Branch**: `###-mod-###-short-description` **Created**: [DATE] **Status**: Draft ## Input User description: "$ARGUMENTS" ## Why Modify? [Business justification - new requirement, user feedback, technical improvement, bug pattern, compliance need, etc.] ## What's Changing? ### Added - [New functionality 1 - describe what's being added] - [New functionality 2] - [New data/fields/capabilities] ### Modified - [Changed behavior 1: **Was**: X, **Now**: Y, **Why**: reason] - [Changed behavior 2: **Was**: A, **Now**: B, **Why**: reason] - [Modified validation/logic/UI] ### Removed - [Deprecated functionality 1 - explain why no longer needed] - [Removed constraints/fields] ### Unchanged (Important to Document) - [Critical functionality that MUST remain the same] - [Existing contracts/APIs that cannot break] - [Data that must be preserved] ## Impact Analysis *Auto-generated by scan-impact.sh - review and adjust* ### Files Affected (from original implementation) **Created in Original Feature**: - [file1.ts] - [what it does] - [file2.tsx] - [what it does] - [file3.ts] - [what it does] **Will Need Updates**: - [file1.ts] - [lines XX-YY: what needs to change] - [file2.tsx] - [component: what UI changes] **Unchanged but Referenced**: - [file4.ts] - [no changes but may be affected by API changes] ### Contracts Changed **Original Contracts** (from `specs/###-feature/contracts/`): - [contract1.schema.json] - [what's changing in request/response] - [contract2.schema.json] - [new fields added] **New Contracts Needed**: - [contract3.schema.json] - [describe new endpoint/function] ### Tests Requiring Updates **From Original Feature** (in `specs/###-feature/tasks.md`): - [test1.test.ts] - [why it needs update] - [test2.test.ts] - [expected failure, needs adjustment] **New Tests Needed**: - [test3.test.ts] - [new functionality coverage] ### Database Migrations - [ ] No database changes required - [ ] Migration needed: [describe schema changes] - [ ] Data migration needed: [describe data transformation] - [ ] Backward compatible: [ ] Yes | [ ] No ### Dependencies Changed **New Dependencies**: - [package-name@version] - [why needed] **Updated Dependencies**: - [package-name] - [from version X to Y, why] **Removed Dependencies**: - [package-name] - [no longer needed because] ## Backward Compatibility **Breaking Changes**: [ ] Yes | [ ] No If Yes, explain impact: - [What breaks] - [Who is affected (users, other features, integrations)] - [Migration path] - [Deprecation warnings to add] **Compatibility Checklist**: - [ ] Existing API contracts unchanged OR properly versioned - [ ] Existing data readable by new code - [ ] Existing tests pass after modification - [ ] No forced migration for existing users - [ ] Deprecation warnings added if removing functionality ## Updated User Scenarios *Filled during /speckit.plan - Only scenarios that change, reference original spec for unchanged* ### Modified Scenario: [Original Scenario Name] **Original**: [how it worked before] **Modified**: **Given** [state], **When** [action], **Then** [new expected outcome] **Why Changed**: [reason for modification] ### New Scenario: [New Scenario Name] **Given** [state], **When** [action], **Then** [expected outcome] **Why Added**: [reason for new functionality] ### Removed Scenario: [Removed Scenario Name] **Was**: [what used to happen] **Why Removed**: [reason for removal] **Migration**: [how users adapt] ## Updated Requirements *Filled during /speckit.plan* ### Modified Requirements - **Original FR-00X**: [original requirement] - **Modified to**: [new requirement] - **Justification**: [why changed] ### New Requirements - **FR-NEW-001**: System MUST [new capability] - **FR-NEW-002**: Users MUST be able to [new interaction] ### Deprecated Requirements - **Original FR-00Y**: [requirement being removed] - **Reason for Deprecation**: [why no longer needed] - **Sunset Plan**: [when and how to remove] ## Constitution Compliance *Check if modification violates any project principles* - [ ] **Specification-First**: Modification spec complete before coding - [ ] **Minimal Complexity**: No unnecessary features added beyond requirement - [ ] **TDD**: Tests updated/added before implementation - [ ] **Progressive Enhancement**: Builds on stable foundation - [ ] **Clear Boundaries**: Maintains separation of concerns **Violations and Justifications**: [If any principle violated, explain why necessary and document trade-offs] ## Testing Strategy *Filled during /speckit.plan* ### Existing Tests - [ ] Run full original feature test suite - [ ] Document which tests fail (expected) - [ ] Update failing tests to match new behavior - [ ] Ensure all tests pass before claiming complete ### New Tests - [ ] Contract tests for modified contracts - [ ] Integration tests for new scenarios - [ ] Regression tests to prevent breaking original functionality - [ ] Performance tests if behavior changes impact speed ## Rollout Strategy *Filled during /speckit.plan* **Phased Rollout**: [ ] Yes | [ ] No If Yes: 1. **Phase 1**: [what gets deployed first] 2. **Phase 2**: [what comes next] 3. **Phase 3**: [final changes] **Feature Flags**: [ ] Yes | [ ] No - [Flag name: what it controls] **Monitoring**: - [Metric 1 to watch: expected value] - [Metric 2 to watch: expected value] **Rollback Plan**: [How to undo this modification if production issues arise] --- ## Verification Checklist - [ ] Impact analysis reviewed and accurate - [ ] Backward compatibility assessed - [ ] Migration path documented (if breaking) - [ ] All modified scenarios documented - [ ] Tests strategy defined - [ ] Rollout plan complete - [ ] Original spec cross-referenced - [ ] Constitution compliance verified --- *Modification spec created using `/modify` workflow - See .specify/extensions/workflows/modify/*