System Requirements (Spec Kit Baseline)
Functional Requirementsβ
SYS-FR-001The system SHALL start the baseline services in deterministic dependency order using explicit ports.SYS-FR-002The UI SHALL load all accounts at startup through account-service and render them for selection.SYS-FR-003The UI SHALL load initial trades and positions for a selected account via position-service.SYS-FR-004The UI SHALL subscribe to trade-feed account topics and render incremental trade/position updates.SYS-FR-005The system SHALL expose ticker lookup/list APIs through reference-data.SYS-FR-006The trade-service SHALL validate account and ticker before publishing new trade orders.SYS-FR-007The trade-processor SHALL persist trades, update trade state, and upsert positions in database.SYS-FR-008The account-service SHALL support account create/update and account-user mapping operations.SYS-FR-009The account-service SHALL validate users with people-service before persisting account-user mappings.SYS-FR-010The system SHALL provide health/readiness endpoints used by startup and smoke checks.SYS-FR-011The generated codebase SHALL preserve current baseline API/event contracts required for UI and service interoperability.SYS-FR-012Submitting a valid trade through trade-service SHALL produce realtime account-scoped trade and position websocket updates consumable without page refresh.SYS-FR-013The UI position blotter SHALL upsert realtime position updates by security key so existing rows are updated in place and duplicates are not created.SYS-FR-014The UI SHALL provide anAll Accountsselection that loads aggregated trades and merged positions across all known accounts.SYS-FR-015InAll Accountsmode, the UI SHALL disable trade-ticket creation and display explanatory guidance.SYS-FR-016Security entry in trade ticket SHALL use typeahead matching by combined ticker/company label and disable browser autocomplete.SYS-FR-017Account administration UI SHALL resolve usernames to people-service full names for account-user display with fallback to username on lookup failure.
Non-Functional Requirementsβ
SYS-NFR-001Baseline pre-ingress mode SHALL allow required cross-origin browser calls between UI and API ports.SYS-NFR-002Baseline runtime ports SHALL remain stable and configurable through environment variables.SYS-NFR-003Generated components SHALL be runnable on local developer workstations using language-native toolchains.SYS-NFR-004The system SHALL provide deterministic smoke-testable startup and stop scripts.SYS-NFR-005Requirements SHALL be traceable to user stories, acceptance criteria, generated components, and verification commands.SYS-NFR-006Angular UI branding assets and FINOS/TraderX identity SHALL remain intact in baseline UI generation.SYS-NFR-007Spec-first generation SHALL not require hydration from deleted legacy source trees.SYS-NFR-008Trade and position blotters SHALL keep responsive readability through side-by-side layout with wrap and minimum pane width constraints.