From 0e34e9e055b0b1293984a3917d29a1568128af3c Mon Sep 17 00:00:00 2001 From: sdlcadmin Date: Mon, 20 Jul 2026 07:44:52 +0000 Subject: [PATCH] docs(architecture): sync working spec + TAD from AI-SDLC (Gate 2) --- architecture/working-spec.md | 45 ++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 architecture/working-spec.md diff --git a/architecture/working-spec.md b/architecture/working-spec.md new file mode 100644 index 0000000..e1ef4c3 --- /dev/null +++ b/architecture/working-spec.md @@ -0,0 +1,45 @@ +# Working Spec + +## Overview + +SDLC SIMPCALC3 — Simple Calculator 3 is a browser-based web application that provides the four fundamental arithmetic operations: addition, subtraction, multiplication, and division. The application is delivered as a single-page web app through the AI-SDLC pipeline. It is intended to be lightweight, accessible, and easy to use without any installation or account creation. + +## Actors + +| Actor | Description | +|---|---| +| **End User** | Any person who opens the web app in a browser to perform arithmetic calculations. No authentication or account is required. | + +## Functional Requirements + +1. **Addition** — The user can enter two numeric operands and compute their sum. +2. **Subtraction** — The user can enter two numeric operands and compute their difference. +3. **Multiplication** — The user can enter two numeric operands and compute their product. +4. **Division** — The user can enter two numeric operands and compute their quotient. +5. **Division by zero handling** — When the divisor is zero, the application displays a clear error message rather than crashing or displaying `Infinity`/`NaN`. +6. **Result display** — The computed result is displayed prominently on screen immediately after the user triggers the calculation. +7. **Clear / reset** — The user can clear the current inputs and result to start a new calculation. +8. **Keyboard input** — The user can enter operands and trigger calculations using a standard keyboard. +9. **Decimal number support** — The application accepts and correctly computes floating-point (decimal) operands. +10. **Operator selection** — The user can select the desired arithmetic operator via the UI (e.g., buttons or a dropdown). + +## Non-Functional Requirements + +| ID | Category | Requirement | +|---|---|---| +| NFR-1 | Performance | The result must appear within 100 ms of user action on any modern browser. | +| NFR-2 | Usability | The UI must be usable on desktop and mobile screen sizes (responsive design). | +| NFR-3 | Accessibility | The app must meet WCAG 2.1 Level AA contrast and keyboard-navigation requirements. | +| NFR-4 | Compatibility | The app must function correctly in the latest stable versions of Chrome, Firefox, Safari, and Edge. | +| NFR-5 | Maintainability | Code must be modular and covered by unit tests for all arithmetic logic. | +| NFR-6 | Deployability | The app must be deployable as a static site (no server-side runtime required). | + +## Assumptions + +1. The target user base requires no server-side persistence; all computation is performed client-side in the browser. +2. No user authentication, account management, or history/logging feature is in scope for this version. +3. The calculator operates on two operands per operation (binary operations only); chained multi-step expression input (e.g., a full expression parser) is out of scope. +4. Numeric precision follows standard IEEE 754 double-precision floating-point; no arbitrary-precision arithmetic is required. +5. The application will be delivered as a static web app (HTML/CSS/JavaScript); a specific front-end framework will be determined during technical architecture. +6. Internationalisation (i18n) and localisation (l10n) are out of scope for this version. +7. Offline (PWA/service-worker) support is not required for this version.