# TASK METADATA - **Target Files:** `ui/components/PasskeysPage.tsx`, `ui/components/RegisterPage.tsx`, `ui/components/auth/PasskeyTable.tsx`, `ui/components/auth/WebAuthnScript.tsx`, `ui/public/ui/utils/bip39_wordlist.ts`, `ui/utils/bip39_wordlist.ts`, `ui/ui_scripts.test.ts` - **Core Objective:** Phase 3 (WebAuthn Scripts & Asset Deduplication): Extract shared WebAuthn client ceremony helper scripts into `ui/components/auth/WebAuthnScript.tsx`, modularize `PasskeysPage.tsx`, and delete the duplicate 2,051-line `ui/public/ui/utils/bip39_wordlist.ts` asset. - **Dependencies:** `tasks/new/2026-0825.01.jul.story.arch.ui-decomposition-roadmap-2300.md` - **Additional Important Notes:** Strictly 100% pure Hono SSR JSX. Preserve WebAuthn challenge/verify ceremonies, passkey deletion, and verify all wordlist imports point to `ui/utils/bip39_wordlist.ts`. --- ### 2. Architectural Considerations & Risks - **Risks:** - Broken WebAuthn registration/login ceremony if base64url or credential creation helpers are altered. - Broken imports if files still reference the deleted `ui/public/ui/utils/bip39_wordlist.ts`. - **Mitigation:** - Verify with `deno task check` and `deno test --allow-all`. ### 3. Proposed Implementation 1. **Extract WebAuthn Components & Scripts (`ui/components/auth/`):** - `PasskeyTable.tsx`: Passkeys list table and mobile deck rendering. - `WebAuthnScript.tsx`: SSR JSX script component containing shared base64url converters, biometric ceremony triggers, and challenge handlers. 2. **Deduplicate Wordlist Asset:** - Delete `ui/public/ui/utils/bip39_wordlist.ts`. - Update any import statements to point directly to `ui/utils/bip39_wordlist.ts`. 3. **Quality Gates & Validation:** - Run `deno fmt`, `deno task lint`, `deno task check`. - Run `deno test --allow-all` (all 58 tests must pass).