ABCDEFGHIJKLMNOPQRSTUVWXYZ
1
AEGIS LINK — TEAM BACKLOG · 80 Items · 4 Sprints · 8 Weeks · Plain HTML/CSS/JS · Team of 5
2
SprintIDCategoryPriorityTitleUser Story / TaskAcceptance CriteriaStatusNotes / Comments
3
Sprint 1 · Design, Infrastructure & Core Encrypted Chat · Weeks 1–2 · 24 items
4
Sprint 1DES-001DesignMustWireframes — All ScreensAs a team, we need wireframes for every screen so that developers have a clear blueprint before building.Wireframes cover Home, Setup, Chat Room, Group Chat, Contacts, Settings. Reviewed and approved by team.DoneAll 6 screens wireframed and team-approved. Foundation for all page builds.
5
Sprint 1DES-002DesignMustDesign System (Colours, Typography, Spacing)As a developer, I want a shared design system so that the UI is consistent across all pages.Colour palette, font sizes, spacing scale, and icon set documented. Available to all team members.DoneCSS variables file created. Shared with all devs. Ensures visual consistency.
6
Sprint 1DES-003DesignMustShared Component Designs (Buttons, Inputs, Modals)As a developer, I want designed reusable components so that I can build them once and use them everywhere.Button states, text inputs, modal overlay, toast notification, and avatar all designed and agreed.DoneReusable component spec agreed. Prevents duplication across pages.
7
Sprint 1PAGE-001PageMustBuild: Home / Landing PageAs a user, I want a clear home page so that I understand what the app does and how to get started.Page renders correctly. Includes app name, brief description, 'Start Chat' and 'View Contacts' CTAs. Responsive on mobile and desktop.DoneLanding page complete and responsive. Core entry point for all users.
8
Sprint 1PAGE-002PageMustBuild: Setup / Key Exchange PageAs a user, I want a dedicated setup page so that I can generate or import keys and initiate a secure session.Page includes: generate key button, paste/import partner key field, session ID display, and Connect button. Blocked until keys exchanged. Responsive.DoneSetup page complete. Route guard enforced — chat inaccessible until keys exchanged.
9
Sprint 1PAGE-003PageMustBuild: Chat Room PageAs a user, I want a chat room page so that I can send and read messages in a clear interface.Page includes: message list, message input, send button, self-destruct timer indicator, and edit/delete controls. Scrollable history. Responsive.DoneChat room page complete. Full P2P encrypted chat UI in place.
10
Sprint 1FE-001FeatureMustCSS Framework & Global StylesheetAs a developer, I want a global stylesheet and CSS variables set up so that all pages share a consistent base style.CSS variables for colours, fonts, and spacing defined. Reset/base styles applied. Shared across all pages.DonePartially implemented. CSS variables defined but not applied uniformly across all pages yet.
11
Sprint 1FE-002FeatureMustClient-Side Routing SetupAs a developer, I want client-side routing so that users can navigate between pages without full page reloads.Navigation between Home, Setup, Chat, Contacts, and Settings works. Active route highlighted. Back/forward browser buttons work.PlannedHash-based routing planned. Implementation blocked by FE-001 completion.
12
Sprint 1FE-003FeatureMustReusable HTML/CSS/JS Component LibraryAs a developer, I want reusable component functions so that I do not duplicate code across pages.Components built: PrimaryButton, TextInput, Modal, Toast notification, Avatar. Used consistently across all pages.StartedCore components started. PrimaryButton and TextInput done. Modal and Toast pending.
13
Sprint 1BE-001BackendMustSignalling Server SetupAs a developer, I want an ephemeral signalling server so that clients can establish WebSocket connections.Server starts, accepts WebSocket connections, handles connect/disconnect events. No message content stored.DoneNode.js/ws server live. Accepts connections and handles events. Zero storage confirmed.
14
Sprint 1BE-002BackendMustRoom / Session ManagementAs a developer, I want the server to manage session rooms so that only the right users are connected.Sessions created/joined via unique ID. Third connection rejected. Session destroyed on disconnect.Not StartedDepended on BE-001. Room logic not yet implemented. Blocks AL-004 private sessions.
15
Sprint 1BE-003BackendMustMessage Relay (No Storage)As a developer, I want the server to relay encrypted payloads only so that no message content is stored.Server forwards messages without logging or storing content. Confirmed via server inspection.DoneRelay-only mode confirmed. Server inspection shows zero message content stored.
16
Sprint 1AL-001FeatureMustSolution SetupAs a developer, I want the application structure ready so that I can start building quickly.App builds, client opens, setup guide included.DoneProject scaffold complete. Build process working. Setup guide in repo.
17
Sprint 1AL-002FeatureMustPeer-to-Peer MessagingAs a user, I want to send and receive messages so that I can communicate securely.Messages sent/received correctly in real-time.DoneReal-time P2P messaging confirmed via WebSocket relay.
18
Sprint 1AL-004FeatureMustPrivate Chat SessionAs a user, I want each chat to be a separate session so that only my partner can read messages.Session create/join works, isolated sessions, session ID shown.DoneSession isolation verified. Cross-session message bleed confirmed absent.
19
Sprint 1AL-005FeatureMustSecure Message FormatAs a developer, I want consistent message structure so that encryption works reliably.Messages include session ID, encrypted payload, version.DoneMessage envelope schema defined and in use. Version field present.
20
Sprint 1AL-006FeatureMustKey Exchange (ECDH)As a user, I want to exchange keys securely so that only my partner can read messages.Keys generated locally, shared secret derived, never sent to server.DoneECDH via Web Crypto API. Private key confirmed never transmitted.
21
Sprint 1AL-007FeatureMustEnd-to-End Encryption (AES-256-GCM)As a user, I want all messages encrypted so that no one else can read them.Messages encrypted before sending, decrypted only by recipient.DoneAES-256-GCM encryption verified end-to-end. Server sees only ciphertext.
22
Sprint 1AL-013FeatureMustCryptographically Strong Session IDsAs a user, I want session IDs to be unguessable so that no one can join without permission.IDs random, collision-resistant, URL-safe.DoneUUID v4 via crypto.randomUUID(). Collision resistance confirmed.
23
Sprint 1AL-014FeatureMustTwo-Peer Session EnforcementAs a user, I want only two people in a session so that third-party access is blocked.Third join rejected, users notified.DoneMerged into BE-002. Third connection rejection logic in signalling server.
24
Sprint 1AL-015FeatureMustEphemeral Session StateAs a user, I want messages to exist only in memory so that no data persists after session ends.Session state cleared on disconnect, no database writes.DoneAll messages in JS memory only. Confirmed no localStorage/DB writes for messages.
25
Sprint 1AL-016FeatureMustZero LoggingAs a user, I want no server logs so that my session cannot be traced.Logging disabled for all ephemeral events.DoneServer logs connect/disconnect only. Message events excluded. Verified in server output.
26
Sprint 1TST-001TestMustUnit Tests — Encryption FunctionsAs a developer, I want unit tests for ECDH and AES-GCM so that crypto logic is verified correct.Tests cover key generation, shared secret derivation, encrypt/decrypt round-trip. All pass.StartedPartial unit tests written for ECDH. AES-GCM round-trip test pending.
27
Sprint 1TST-002TestMustIntegration Test — P2P Message FlowAs a developer, I want an integration test for the full message flow so that send-to-receive is verified.Client A sends encrypted message, client B decrypts correctly. No server copy confirmed.DoneIntegration test passing. Full send/receive encrypted flow verified.
28
Sprint 2 · Security Hardening, Contacts Page & Core Features · Weeks 3–4 · 21 items
29
Sprint 2DES-004DesignMustSecurity & Warning UI PatternsAs a designer, I want consistent patterns for warnings and confirmations so that users understand security prompts.Modal, inline warning, and toast components designed. Used consistently across all security screens.PlannedDesign spec pending. Required before implementing SAS fingerprint and key lifecycle UIs.
30
Sprint 2DES-005DesignMustContacts Page DesignAs a designer, I want a contacts page layout so that developers can implement add/delete contact features.Contacts list, add flow, delete confirmation, and nuke option all wireframed and approved.DoneFull contacts page wireframe approved. Covers list, add, delete, and nuke flows.
31
Sprint 2PAGE-004PageMustBuild: Contacts PageAs a user, I want a contacts page so that I can view, add, and remove saved contacts.Page renders contact list from localStorage. Includes add contact button/form, delete confirmation, and empty state. Responsive.DoneContacts page live. localStorage-backed. Add/delete/empty state all functional.
32
Sprint 2BE-004BackendMustGroup Session Room LogicAs a developer, I want the server to support multi-user rooms so that group messaging is possible.Room supports 3+ users. Join/leave handled. Ephemeral keys distributed correctly.DoneMulti-user room logic implemented. Tested with 3 simultaneous connections.
33
Sprint 2BE-005BackendMustServer Hardening & Security HeadersAs a developer, I want security headers configured on the server so that the app is protected from common attacks.CSP, X-Frame-Options, HSTS all set. Verified via browser devtools.DoneHelmet.js security headers applied. CSP, X-Frame-Options, HSTS confirmed via devtools.
34
Sprint 2AL-008FeatureMustSetup Screen — Gate LogicAs a user, I want to complete security setup before chatting so that my session is protected.Chat page blocked until keys exchanged. Clear setup flow enforced.DoneRoute guard active. Chat page inaccessible until shared secret derived.
35
Sprint 2AL-010FeatureMustImport Partner KeyAs a user, I want to scan or paste a partner's key so that I can connect securely.Key accepted if valid, invalid rejected, shared secret derived.DonePaste-based key import working. Validation in place. Invalid format shows helpful error.
36
Sprint 2AL-012FeatureMustSAS Fingerprint ConfirmationAs a user, I want to confirm a short code so that I can detect MITM attacks.Both devices compute same code, must confirm match before chatting.Not StartedSecurity-critical MITM prevention. Deferred in PoC but required for full product release.
37
Sprint 2AL-017FeatureMustKey Lifecycle & ZeroiseAs a user, I want keys deleted after session so that memory exposure is minimised.Keys cleared after inactivity, tab close triggers cleanup.DoneKey zeroise on tab close and session end implemented. Memory exposure minimised.
38
Sprint 2AL-018FeatureMustCSP & Security Headers (Client)As a user, I want headers to reduce attack risks so that my session is safer.CSP headers set, inline eval restricted.DoneClient-side CSP headers set. Inline eval blocked. Verified in browser Security tab.
39
Sprint 2AL-027FeatureMustAdd ContactAs a user, I want to save contacts so that I can reconnect easily.Contacts saved to localStorage only. Visible on Contacts page.DoneAdd contact functionality complete. Persisted to localStorage only.
40
Sprint 2AL-028FeatureMustDelete ContactAs a user, I want to remove contacts so that I can manage my list.Contact removed from localStorage. Page updates immediately.DoneDelete contact with confirmation modal. localStorage updated. Page reactive.
41
Sprint 2AL-029FeatureMustSelf-Destruct MessagesAs a user, I want messages to auto-delete so that sensitive data does not remain.Timer removes message from UI and memory. No server copy.DoneFixed 30s timer planned for PoC. Adjustable timer deferred to full product.
42
Sprint 2AL-023FeatureMustEdit MessagesAs a user, I want to edit messages so that I can correct mistakes.Edits reflected to both parties in real time.DoneInline edit UI not yet started. Required for Sprint 3 PoC delivery.
43
Sprint 2AL-024FeatureMustDelete Individual MessagesAs a user, I want to delete messages so that I can remove unwanted content.Messages removed from view and memory. No server copy.DoneDelete button not yet implemented. Both-sides removal required.
44
Sprint 2AL-039FeatureMustAuto-Correct / Spell CheckAs a user, I want spelling suggestions so that my messages are clearer.Misspellings highlighted via browser spellcheck API. Suggestions offered.Not StartedBrowser-native spellcheck attribute — trivial to add. Pending.
45
Sprint 2AL-043FeatureMustLow Latency MessagingAs a user, I want messages delivered fast so that conversation feels natural.Messages appear within acceptable time under normal network conditions.DoneSub-1s delivery confirmed on local network. No artificial delays.
46
Sprint 2AL-046FeatureMustError-Tolerant Key EntryAs a user, I want key entry to handle small mistakes so that I can connect without frustration.Minor formatting errors handled, guidance shown.DoneValidation with helpful inline error messages in place on Setup page.
47
Sprint 2TST-003TestMustUnit Tests — SAS & Key LifecycleAs a developer, I want tests for SAS fingerprint and key zeroise so that security-critical paths are verified.SAS match/mismatch tested. Key cleared from memory on session end confirmed.DoneBlocked by AL-012 (SAS) not started. Key zeroise test can proceed independently.
48
Sprint 2TST-004TestMustSecurity Header TestsAs a developer, I want automated checks for security headers so that misconfiguration is caught early.Tests verify CSP, HSTS, X-Frame-Options present on all responses.Not StartedAutomated header checks not yet written. Can be done with supertest/fetch assertions.
49
Sprint 2TST-005TestMustUnit Tests — Self-Destruct TimerAs a developer, I want tests for the self-destruct timer so that messages are provably wiped on schedule.Timer fires at correct interval. Message irrecoverable after expiry.PlannedBlocked by AL-029 (self-destruct) not started. Must implement before testing.
50
Sprint 3 · Group Chat, Settings Page & Should-Have Features · Weeks 5–6 · 22 items
51
Sprint 3DES-006DesignMustGroup Chat Page DesignAs a designer, I want a group chat layout so that developers can implement multi-user messaging correctly.Group creation flow, member list, and group chat UI all wireframed. Approved by team.PlannedGroup chat UI wireframe in progress. Must be approved before PAGE-005 build begins.
52
Sprint 3DES-007DesignShouldSettings Page DesignAs a designer, I want a settings page design so that developers can implement all user preferences in one place.Settings layout covers: mode switch, storage toggle, dark/light mode, font size. Wireframed and approved.DoneSettings wireframe approved. Covers all preference controls.
53
Sprint 3PAGE-005PageMustBuild: Group Chat PageAs a user, I want a group chat page so that I can message multiple people in a shared secure room.Page renders shared message list, member list/count, group name, message input, send button. Encrypted messages displayed. Responsive.PlannedBlocked by DES-006 approval. Build ready to start once wireframe approved.
54
Sprint 3PAGE-006PageShouldBuild: Settings PageAs a user, I want a settings page so that I can manage all preferences in one place.Page includes: mode switch, storage consent toggle, dark/light mode toggle, font size control, generate new keys button. Preferences persist in localStorage. Responsive.StartedBasic settings page scaffold in place. Mode switch and key generation buttons functional. Toggles pending.
55
Sprint 3BE-006BackendMustConnection Drop & Reconnect HandlingAs a developer, I want the server to handle dropped connections gracefully so that sessions close cleanly.Disconnect detected within 5s. Partner notified. Session state cleared. Reconnect handled without error.Not StartedGraceful disconnect logic not yet implemented. Partner notification on drop missing.
56
Sprint 3BE-007BackendMustEncrypted Image Payload RelayAs a developer, I want the server to relay encrypted image payloads so that image messaging works end-to-end.Base64 encoded encrypted image relayed correctly. No image stored server-side.Not StartedImage relay depends on AL-025 (image messaging). Both not started.
57
Sprint 3AL-025FeatureMustImage MessagingAs a user, I want to send images securely so that I can share visual content safely.Images encrypted via AES-GCM, sent inline in chat. Only recipient can view.Not StartedDeferred in PoC (text-only sufficient). Required for full product.
58
Sprint 3AL-026FeatureMustGroup MessagingAs a user, I want to chat with multiple people so that I can communicate in groups.Group created, all members receive messages securely.PlannedGroup room logic (BE-004) done. Frontend group messaging UI pending DES-006.
59
Sprint 3AL-044FeatureMustGroup ScalabilityAs a user, I want large groups to perform well so that communication remains smooth.Multi-user group tested with no noticeable slowdown or key distribution failure.Not StartedPost-PoC testing goal. Basic group works; scale testing deferred.
60
Sprint 3AL-045FeatureMustIntuitive UI PolishAs a new user, I want the app easy to understand so that I can use it without technical knowledge.New user can start a secure chat without external instructions. Guided prompts and clear icons throughout.DoneGuided prompts and iconography applied. New-user walkthrough confirmed working.
61
Sprint 3AL-021FeatureShouldMode Switch (Ephemeral / Audit)As a user, I want to switch modes so that I can control data handling.Mode toggle visible on Settings page. Behaviour changes accordingly.Not StartedSingle ephemeral mode sufficient for PoC. Full mode switch deferred to full product.
62
Sprint 3AL-022FeatureShouldOptional On-Device StorageAs a user, I want to optionally store messages on my device so that I can keep a local record.Only stores if both parties consent. Uses localStorage/IndexedDB. No server storage.Not StartedDeferred. Ephemeral-only mode sufficient for PoC.
63
Sprint 3AL-030FeatureShouldAdjustable Self-Destruct TimerAs a user, I want to set message duration so that I control how long messages are visible.Timer dropdown available in chat. Messages removed after selected duration.DoneFixed 30s timer used in PoC. Adjustable timer is post-PoC enhancement.
64
Sprint 3AL-031FeatureShouldGenerate New Encryption KeysAs a user, I want to generate new keys so that I can replace potentially compromised ones.New keypair generated locally via Web Crypto API. Old keys zeroised.DoneKey regeneration button on Settings page functional. Old keys cleared on trigger.
65
Sprint 3AL-032FeatureShouldAutomatic Key DetectionAs a user, I want the app to detect valid keys automatically so that connecting is easier.Pasted key format validated client-side. User prompted to confirm before connecting.DonePaste flow is sufficient for PoC. Auto-detection is a polish enhancement.
66
Sprint 3AL-033FeatureShouldConsent Warning for Local StorageAs a user, I want a warning before storing chat locally so that I understand data is being kept.Modal warning shown. User must confirm before any local storage write occurs.DoneConsent modal shown before any localStorage write. GDPR-aligned.
67
Sprint 3AL-040FeatureCouldDark ModeAs a user, I want a dark theme so that I can use the app comfortably at night.Dark theme toggled from Settings page. CSS variables swap correctly. Preference saved in localStorage.DoneDark mode implemented via CSS variable swap. Preference persisted in localStorage.
68
Sprint 3AL-041FeatureCouldLight ModeAs a user, I want a light theme so that I can choose my appearance preference.Light theme selectable alongside dark mode.Not StartedLight theme CSS variables not yet added. Trivial once dark mode base is confirmed.
69
Sprint 3AL-042FeatureCouldAccessibility Font OptionsAs a user, I want adjustable fonts so that I can read comfortably.Font size adjustable via Settings page without breaking layout. Preference persists.Not StartedFont size slider not yet implemented. Low priority — post-PoC polish.
70
Sprint 3TST-006TestMustIntegration Tests — Group MessagingAs a developer, I want integration tests for group messaging so that multi-user sessions are verified.3-user group tested: all receive messages, join/leave handled, keys distributed correctly.Not StartedBlocked by AL-026 (group messaging) not being complete yet.
71
Sprint 3TST-007TestShouldUI / Page Render TestsAs a developer, I want tests confirming each page renders correctly so that broken layouts are caught early.All 6 pages tested: renders without JS errors, key elements present in DOM, responsive breakpoints checked.DoneAll 6 pages render-tested. No JS errors. Responsive breakpoints verified.
72
Sprint 3TST-008TestShouldCross-Browser Compatibility TestsAs a developer, I want the app tested across major browsers so that users are not locked to one browser.Critical flows pass on Chrome, Firefox, Edge, and Safari.DoneTested on Chrome, Firefox, and Edge. Safari pending.
73
Sprint 4 · Could-Have Features, E2E Testing & Release · Weeks 7–8 · 13 items
74
Sprint 4DES-008DesignCouldCould Have Screen Designs (QR, Export, Nuke)As a designer, I want layouts for QR display, JSON export, and nuke contact screens so that Could Have features look consistent.QR display, DevTools warning, JSON export confirmation, and nuke contact screens designed and approved.DoneCould Have screen designs complete. Ready for implementation if time allows.
75
Sprint 4AL-009FeatureCouldDisplay Public Key via QR CodeAs a user, I want to display my public key as a QR so that I can share it securely.QR renders correctly on Setup page. Fallback copy-to-clipboard button available.Not StartedCould Have — deferred. Paste flow sufficient for PoC. Nice-to-have for demo.
76
Sprint 4AL-011FeatureCouldExpiring QR CodesAs a user, I want QR codes to expire so that old codes cannot be reused.QR invalid after 5 minutes. Scanning an expired QR shows an error.Not StartedDepends on AL-009. Both deferred. Post-PoC security enhancement.
77
Sprint 4AL-019FeatureCouldDevTools Open WarningAs a user, I want a warning when DevTools is open so that I am aware of potential compromise.Warning shown in UI when DevTools detected. Normal usage continues.Not StartedCould Have. Interesting security UX feature but not required for PoC.
78
Sprint 4AL-020FeatureCouldBrowser Extension Detection WarningAs a user, I want a warning if suspicious extensions are detected so that I understand the risks.Informational warning displayed with guidance. Does not block use.Not StartedCould Have. Post-PoC. Informational only — does not affect core security.
79
Sprint 4AL-034FeatureCouldReset / Kill ConversationAs a user, I want to instantly wipe a conversation so that no traces remain.All messages and session keys cleared from memory immediately on trigger.DoneKill switch implemented. All messages and keys cleared on trigger. Confirmed via memory inspection.
80
Sprint 4AL-035FeatureCouldScreenshot ProtectionAs a user, I want to reduce the risk of screenshots so that my data is harder to capture.Visibility API used to blur or warn where supported. Degrades gracefully on unsupported browsers.Not StartedCould Have. Visibility API-based blurring. Progressive enhancement approach.
81
Sprint 4AL-036FeatureCouldRandomised Metadata / TimingAs a user, I want to reduce identifiable traffic patterns so that my conversation is harder to analyse.Optional random delay injection on send. User can toggle on/off.Not StartedCould Have. Traffic analysis resistance. Post-PoC security hardening.
82
Sprint 4AL-037FeatureCouldExport Chat to JSONAs a user, I want to export a conversation to JSON so that I can keep a record with mutual consent.Both parties must approve. JSON file generated and downloaded locally only.Not StartedCould Have. Mutual consent export. Useful for audit mode in full product.
83
Sprint 4AL-038FeatureCouldNuke ContactAs a user, I want to delete all traces of a contact so that no related data remains.Contact entry, associated messages, and localStorage data all removed. Action confirmed via modal.StartedNuke contact UI started. Confirmation modal in place. localStorage wipe logic pending.
84
Sprint 4TST-009TestMustEnd-to-End Test SuiteAs a developer, I want a full E2E test suite covering all critical user flows so that the app is release-ready.E2E tests cover: home > setup > chat, self-destruct, group chat, add/delete contact, settings. All pass.DoneE2E framework set up. Home > setup > chat flow passing. Remaining flows in progress.
85
Sprint 4TST-010TestShouldPerformance & Load TestingAs a developer, I want performance tests for group sessions so that scalability claims are validated.10-user group tested with no latency degradation. Memory within acceptable limits.StartedBasic load test script written. 3-user group passing. 10-user test pending.
86
Sprint 4TST-011TestMustFinal Regression Pass & Bug FixesAs a developer, I want a full regression pass before release so that all known issues are resolved.All P1/P2 bugs fixed. Full regression suite passes. Reviewed by all 4 team members.DoneScheduled for end of Sprint 4. Requires all other tests passing first.
87
88
89
90
91
92
93
94
95
96
97
98
99
100