Files
daily-notification-plugin/docs/alarms/ACTIVATION-GUIDE.md
Matthew Raymer 87594be5be docs: integrate Phase 1-3 into unified directive and activation guide
Updates master coordination documents to reflect Phase 1-3 completion status.

Changes:
- Update 000-UNIFIED-ALARM-DIRECTIVE.md status matrix:
  - P1: Marked as emulator-verified
  - P2: Marked as implemented, ready for testing
  - P3: Marked as implemented, ready for testing
  - V1-V3: Added verification doc rows
- Update ACTIVATION-GUIDE.md status bullets:
  - Phase 1: Complete and emulator-verified
  - Phase 2: Implemented, ready for emulator testing
  - Phase 3: Implemented, ready for emulator testing
  - Overall status updated to reflect all three phases

All three phases now have:
- Implementation directives
- Emulator testing guides
- Verification documents
- Automated test harnesses

Related:
- Unified Directive: docs/alarms/000-UNIFIED-ALARM-DIRECTIVE.md
- Activation Guide: docs/alarms/ACTIVATION-GUIDE.md
2025-11-27 10:01:55 +00:00

320 lines
13 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Activation Guide: How to Use the Alarm Directive System
**Author**: Matthew Raymer
**Date**: November 2025
**Status**: Activation Guide
**Version**: 1.0.0
## Purpose
This guide explains how to **activate and use** the unified alarm directive system for implementation work. It provides step-by-step instructions for developers to follow the documentation workflow.
---
## Prerequisites Check
**Before starting any implementation work**, verify these conditions are met:
### ✅ Documentation Status
Check [Unified Directive §11 - Status Matrix](./000-UNIFIED-ALARM-DIRECTIVE.md#11-status-matrix):
- [x] **Doc A** (Platform Facts) - ✅ Drafted, ✅ Cleaned, ✅ In Use
- [x] **Doc B** (Exploration) - ✅ Drafted, ✅ Cleaned, ✅ In Use (drives emulator test harness)
- [x] **Doc C** (Requirements) - ✅ Drafted, ✅ Cleaned, ✅ In Use
- [x] **Phase 1** (Cold Start) - ✅ Drafted, ✅ Cleaned, ✅ In Use (implemented in plugin v1.1.0, emulator-verified via `test-phase1.sh`)
- [x] **Phase 2** (Force Stop) - ✅ Drafted, ✅ Implemented, ☐ Emulator-tested (`test-phase2.sh` + `PHASE2-EMULATOR-TESTING.md`)
- [x] **Phase 3** (Boot Recovery) - ✅ Drafted, ✅ Implemented, ☐ Emulator-tested (`test-phase3.sh` + `PHASE3-EMULATOR-TESTING.md`)
**Status**: ✅ **All prerequisites met** Phase 1 implementation is complete and emulator-verified; Phase 2 and Phase 3 are implemented and ready for emulator testing; ready for broader device testing and rollout.
---
## Activation Workflow
### Step 1: Choose Your Starting Point
**For New Implementation Work**:
- Start with **Phase 1** (Cold Start Recovery) - See [Phase 1 Directive](../android-implementation-directive-phase1.md)
- This is the minimal viable recovery that unblocks other work
**For Testing/Exploration**:
- Start with **Doc B** (Exploration) - See [Plugin Behavior Exploration](./02-plugin-behavior-exploration.md)
- Fill in test scenarios as you validate current behavior
**For Understanding Requirements**:
- Start with **Doc C** (Requirements) - See [Plugin Requirements](./03-plugin-requirements.md)
- Review guarantees, limitations, and API contract
---
## Implementation Activation: Phase 1
### 1.1 Read the Phase Directive
**Start Here**: [Phase 1: Cold Start Recovery](../android-implementation-directive-phase1.md)
**Key Sections to Read**:
1. **Purpose** (§0) - Understand what Phase 1 implements
2. **Acceptance Criteria** (§1) - Definition of done
3. **Implementation** (§2) - Step-by-step code changes
4. **Testing Requirements** (§8) - How to validate
### 1.2 Reference Supporting Documents
**During Implementation, Keep These Open**:
1. **Doc A** - [Platform Capability Reference](./01-platform-capability-reference.md)
- Use for: Understanding OS behavior, API constraints, permissions
- Example: "Can I rely on AlarmManager to persist alarms?" → See Doc A §2.1.1
2. **Doc C** - [Plugin Requirements](./03-plugin-requirements.md)
- Use for: Understanding what the plugin MUST guarantee
- Example: "What should happen on cold start?" → See Doc C §3.1.2
3. **Doc B** - [Plugin Behavior Exploration](./02-plugin-behavior-exploration.md)
- Use for: Test scenarios to validate your implementation
- Example: "How do I test cold start recovery?" → See Doc B Test 4
### 1.3 Follow the Implementation Steps
**Phase 1 Implementation Checklist** (from Phase 1 directive):
- [ ] Create `ReactivationManager.kt` file
- [ ] Implement `detectMissedNotifications()` method
- [ ] Implement `markMissedNotifications()` method
- [ ] Implement `verifyAndRescheduleFutureAlarms()` method
- [ ] Integrate into `DailyNotificationPlugin.load()`
- [ ] Add logging and error handling
- [ ] Write unit tests
- [ ] Test on physical device
**Reference**: See [Phase 1 §2 - Implementation](../android-implementation-directive-phase1.md#2-implementation)
---
## Testing Activation: Doc B
### 2.1 Execute Test Scenarios
**Start Here**: [Plugin Behavior Exploration](./02-plugin-behavior-exploration.md)
**Workflow**:
1. Choose a test scenario (e.g., "Test 4: Device Reboot")
2. Follow the **Steps** column exactly
3. Fill in **Actual Result** column with observed behavior
4. Mark **Result** column (Pass/Fail)
5. Add **Notes** for any unexpected behavior
### 2.2 Update Test Results
**As You Test**:
- Update checkboxes (☐ → ✅) when tests pass
- Document actual vs expected differences
- Add findings to "Findings & Gaps" section (§4)
**Example**:
```markdown
| Step | Action | Expected | Actual Result | Notes | Result |
| ---- | ------ | -------- | ------------- | ----- | ------ |
| 5 | Launch app | Plugin detects missed alarm | ✅ Missed alarm detected | Logs show "DNP-REACTIVATION: Detected 1 missed alarm" | ✅ Pass |
```
---
## Documentation Maintenance During Work
### 3.1 Update Status Matrix
**When You Complete Work**:
1. Open [Unified Directive §11](./000-UNIFIED-ALARM-DIRECTIVE.md#11-status-matrix)
2. Update the relevant row:
- Mark "In Use?" = ✅ when implementation is deployed
- Update "Notes" with completion status
**Example**:
```markdown
| P1 | `../android-implementation-directive-phase1.md` | Impl Cold start | ✅ | ✅ | ✅ | **Implemented and deployed** - See commit abc123 |
```
### 3.2 Update Doc B with Test Results
**After Testing**:
- Fill in actual results in test matrices
- Document any gaps or unexpected behavior
- Update severity classifications if issues found
### 3.3 Follow Change Control Rules
**When Modifying Docs A, B, or C**:
1. **Update version header** in the document
2. **Update status matrix** (Section 11) in unified directive
3. **Use commit message tag**: `[ALARM-DOCS]` prefix
4. **Notify in CHANGELOG** if JS/TS-visible behavior changes
**Reference**: See [Unified Directive §10 - Change Control](./000-UNIFIED-ALARM-DIRECTIVE.md#10-change-control-rules)
---
## Workflow Diagram
```
┌─────────────────────────────────────────┐
│ 1. Read Phase Directive (P1/P2/P3) │
│ Understand acceptance criteria │
└──────────────┬──────────────────────────┘
┌─────────────────────────────────────────┐
│ 2. Reference Doc A (Platform Facts) │
│ Understand OS constraints │
└──────────────┬──────────────────────────┘
┌─────────────────────────────────────────┐
│ 3. Reference Doc C (Requirements) │
│ Understand plugin guarantees │
└──────────────┬──────────────────────────┘
┌─────────────────────────────────────────┐
│ 4. Implement Code (Phase Directive) │
│ Follow step-by-step instructions │
└──────────────┬──────────────────────────┘
┌─────────────────────────────────────────┐
│ 5. Test (Doc B Scenarios) │
│ Execute test matrices │
└──────────────┬──────────────────────────┘
┌─────────────────────────────────────────┐
│ 6. Update Documentation │
│ - Status matrix │
│ - Test results (Doc B) │
│ - Version numbers │
└─────────────────────────────────────────┘
```
---
## Common Activation Scenarios
### Scenario 1: Starting Phase 1 Implementation
**Steps**:
1. ✅ Verify prerequisites (all docs exist - **DONE**)
2. Read [Phase 1 Directive](../android-implementation-directive-phase1.md) §1 (Acceptance Criteria)
3. Read [Doc C §3.1.2](./03-plugin-requirements.md#312-app-cold-start) (Cold Start Requirements)
4. Read [Doc A §2.1.4](./01-platform-capability-reference.md#214-alarms-can-be-restored-after-app-restart) (Platform Capability)
5. Follow [Phase 1 §2](../android-implementation-directive-phase1.md#2-implementation) (Implementation Steps)
6. Test using [Doc B Test 4](./02-plugin-behavior-exploration.md#test-4-device-reboot) (Cold Start Scenario)
7. Update status matrix when complete
### Scenario 2: Testing Current Behavior
**Steps**:
1. Open [Doc B](./02-plugin-behavior-exploration.md)
2. Choose a test scenario (e.g., "Test 2: Swipe from Recents")
3. Follow the **Steps** column
4. Fill in **Actual Result** column
5. Compare with **Expected (OS)** and **Expected (Plugin)** columns
6. Document findings in **Notes** column
7. Update "Findings & Gaps" section if issues found
### Scenario 3: Understanding a Requirement
**Steps**:
1. Open [Doc C](./03-plugin-requirements.md)
2. Find the relevant section (e.g., "Missed Alarm Handling" §4)
3. Read the requirement and acceptance criteria
4. Follow cross-references to:
- **Doc A** for platform constraints
- **Doc B** for test scenarios
- **Phase docs** for implementation details
### Scenario 4: Adding iOS Support
**Steps**:
1. ✅ Verify iOS parity milestone conditions (see [Unified Directive §9](./000-UNIFIED-ALARM-DIRECTIVE.md#9-next-steps))
2. Ensure Doc A has iOS matrix complete
3. Ensure Doc C has iOS guarantees defined
4. Create iOS implementation following Android phase patterns
5. Test using Doc B iOS scenarios
6. Update status matrix
---
## Blocking Rules
**⚠️ DO NOT PROCEED** if:
1. **Prerequisites not met** - See [Unified Directive §12](./000-UNIFIED-ALARM-DIRECTIVE.md#12-single-instruction-for-team)
- Doc A, B, C must exist
- Status matrix must be updated
- Deprecated files must be marked
2. **iOS work without parity milestone** - See [Unified Directive §9](./000-UNIFIED-ALARM-DIRECTIVE.md#9-next-steps)
- Doc A must have iOS matrix
- Doc C must define iOS guarantees
- Phase docs must not assume Android-only
3. **Phase 2/3 without Phase 1** - See Phase directives
- Phase 2 requires Phase 1 complete
- Phase 3 requires Phase 1 & 2 complete
---
## Quick Reference
### Document Roles
| Doc | Purpose | When to Use |
|-----|---------|-------------|
| **Unified Directive** | Master coordination | Understanding system structure, change control |
| **Doc A** | Platform facts | Understanding OS behavior, API constraints |
| **Doc B** | Test scenarios | Testing, exploration, validation |
| **Doc C** | Requirements | Understanding guarantees, API contract |
| **Phase 1-3** | Implementation | Writing code, step-by-step instructions |
### Key Sections
- **Status Matrix**: [Unified Directive §11](./000-UNIFIED-ALARM-DIRECTIVE.md#11-status-matrix)
- **Change Control**: [Unified Directive §10](./000-UNIFIED-ALARM-DIRECTIVE.md#10-change-control-rules)
- **Phase 1 Start**: [Phase 1 Directive](../android-implementation-directive-phase1.md)
- **Test Scenarios**: [Doc B Test Matrices](./02-plugin-behavior-exploration.md#12-behavior-testing-matrix)
- **Requirements**: [Doc C Guarantees](./03-plugin-requirements.md#1-plugin-behavior-guarantees--limitations)
---
## Next Steps
**You're Ready To**:
1.**Start Phase 1 Implementation** - All prerequisites met
2.**Begin Testing** - Doc B scenarios ready
3.**Reference Documentation** - All docs complete and cross-referenced
**Recommended First Action**:
- Read [Phase 1: Cold Start Recovery](../android-implementation-directive-phase1.md) §1 (Acceptance Criteria)
- Then proceed to §2 (Implementation) when ready to code
---
## Related Documentation
- [Unified Alarm Directive](./000-UNIFIED-ALARM-DIRECTIVE.md) - Master coordination document
- [Phase 1: Cold Start Recovery](../android-implementation-directive-phase1.md) - Start here for implementation
- [Plugin Requirements](./03-plugin-requirements.md) - What the plugin must guarantee
- [Platform Capability Reference](./01-platform-capability-reference.md) - OS-level facts
- [Plugin Behavior Exploration](./02-plugin-behavior-exploration.md) - Test scenarios
---
**Status**: Ready for activation
**Last Updated**: November 2025