Files
Sage/.planning/phases/01-authentication/01-05-PLAN.md
Dani B ff56c75da0 fix(01): resolve checker blocker issues
- Create missing Plan 01-07 (password reset navigation)
- Update Plan 01-10 to contain logout functionality (covers AUTH-05)
- Split Plan 01-04 into Plans 01-04 and 01-11 (2-3 tasks each)
- Fix dependency references throughout phase
- Update ROADMAP.md to reflect 11 plans in 4 waves
2026-01-28 00:49:01 -05:00

116 lines
4.2 KiB
Markdown

---
phase: 01-authentication
plan: 05
type: execute
wave: 3
depends_on: ["01-03", "01-11"]
files_modified: ["lib/features/authentication/presentation/pages/reset_password_page.dart", "lib/features/authentication/presentation/widgets/password_reset_form.dart"]
autonomous: true
user_setup:
- service: supabase
why: "Configure password reset redirect URLs"
env_vars: []
dashboard_config:
- task: "Add password reset redirect URLs"
location: "Supabase Dashboard → Authentication → URL Configuration → Site URL"
- task: "Add password reset redirect URLs"
location: "Supabase Dashboard → Authentication → URL Configuration → Redirect URLs"
must_haves:
truths:
- "User can request password reset via email"
- "User receives reset email within 1 minute"
artifacts:
- path: "lib/features/authentication/presentation/pages/reset_password_page.dart"
provides: "Password reset request page"
min_lines: 35
- path: "lib/features/authentication/presentation/widgets/password_reset_form.dart"
provides: "Password reset form components"
min_lines: 25
key_links:
- from: "lib/features/authentication/presentation/pages/reset_password_page.dart"
to: "lib/providers/auth_provider.dart"
via: "password reset method"
pattern: "resetPassword|_authProvider"
---
<objective>
Implement password reset request interface and form components.
Purpose: Enable users to initiate password recovery through email-based reset flow.
Output: Password reset request page with form validation and email submission.
</objective>
<execution_context>
@~/.opencode/get-shit-done/workflows/execute-plan.md
@~/.opencode/get-shit-done/templates/summary.md
</execution_context>
<context>
@.planning/PROJECT.md
@.planning/ROADMAP.md
@.planning/STATE.md
@.planning/phases/01-authentication/01-RESEARCH.md
</context>
<tasks>
<task type="auto">
<name>Create password reset request page</name>
<files>lib/features/authentication/presentation/pages/reset_password_page.dart</files>
<action>
Create ResetPasswordPage that:
1. Has email input field with validation
2. Uses AuthButton for "Send Reset Email" action
3. Shows success message after email sent
4. Shows error message for invalid email
5. Has loading state during email sending
6. Includes "Back to Login" navigation
7. Provides clear instructions to user
8. Handles rate limiting feedback (if email already sent)
9. Uses AuthRepository resetPassword() method
10. Has proper page structure and responsive design
11. Includes accessibility features
12. Shows helpful copy like "Check your email for reset link"
</action>
<verify>Reset password page sends email request and shows appropriate success/error states</verify>
<done>Complete password reset request interface integrated with auth system</done>
</task>
<task type="auto">
<name>Create password reset components</name>
<files>lib/features/authentication/presentation/widgets/password_reset_form.dart</files>
<action>
Create PasswordResetForm widget that:
1. Accepts email field configuration
2. Provides email validation
3. Shows validation errors in real-time
4. Has onSubmit callback for email submission
5. Shows loading state during submission
6. Has proper styling consistent with AuthForm
7. Includes proper text input types
8. Responsive layout for mobile/tablet
9. Proper accessibility labels
10. Can be reused in different contexts
</action>
<verify>Password reset form validates email properly and handles submission states correctly</verify>
<done>Reusable password reset form component</done>
</task>
</tasks>
<verification>
1. Password reset email sends successfully and arrives within 1 minute
2. Reset password page validates email input properly
3. Error handling covers all failure scenarios (invalid email, network issues, etc.)
4. Loading states show during email submission
5. Success message provides clear guidance to users
</verification>
<success_criteria>
Password reset request interface working with proper validation, email submission, and user feedback.
</success_criteria>
<output>
After completion, create `.planning/phases/01-authentication/01-05-SUMMARY.md`
</output>