View Markdown Β· Documentation index (llms.txt)
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.SYS-NFR-009Dependency upgrade targets SHALL be declared in canonical repository artifacts before template or patchset version changes are accepted, and MUST propagate to all generated state releases. Template smoke checks SHALL run before top-level state generation, and generated-output/branch validation gates SHALL fail before merge or publish when target versions do not propagate.SYS-NFR-010Generated states SHALL enforce a lifecycle script contract with distinct build/start/stop/readiness commands. Uncontainerized states SHALL providestart --build-only; containerized/Kubernetes states SHALL provide--skip-buildor equivalent build/start separation mode.