Skip to content

Product and System Requirements

Document status: Baseline requirements for review and approval. These requirements describe intended product behavior; they do not certify that the current implementation satisfies them.

Product: WhiteLotus AI
Organization: Whitelotus Corporation
Document owner: Product Owner / Engineering
Approval status: Pending
Verification status: Not fully verified
Scope: Initial product and engineering baseline
Last review: Update through the project change-control process

Requirements are not proof of compliance

A requirement is not satisfied merely because related source code, an API route, a tool definition, or a test file exists. Mark a requirement Verified only after the applicable checks have been executed and the evidence has been recorded and reviewed.

1. Purpose

This document defines the functional, non-functional, security, verification, and operational requirements for WhiteLotus AI.

Requirements provide a shared reference for product development, implementation reviews, testing, security assessment, and release decisions. Every requirement must have a unique identifier, a defined acceptance criterion, and traceable verification evidence before it can be considered satisfied.

This document distinguishes between:

  • Requirement: what the product is expected to do.
  • Implementation status: what has been demonstrated in the current source code.
  • Verification evidence: test results or approved review records supporting a compliance claim.
  • Approval status: whether the responsible owner has formally accepted the requirement.

The presence of a requirement in this document does not imply that it is implemented, tested, or approved.

2. Product scope

2.1 Product objectives

WhiteLotus AI is intended to provide an AI-assisted workspace where users can interact with enterprise information, query connected services, and retrieve answers from authorized organizational documents.

The initial product scope includes:

  • User authentication and access control.
  • Conversational interaction and intent routing.
  • Controlled access to approved integration tools.
  • Read-only access to the initial set of enterprise integrations.
  • Document ingestion and retrieval-augmented question answering.
  • Consistent API responses and error handling.
  • Operational configuration, logging, monitoring, and testing.

These objectives describe intended scope. Each capability remains subject to implementation verification and release approval.

2.2 Initial integration scope

The initial integration scope consists exclusively of the following providers:

  • Jira — retrieve projects and issue information within approved access.
  • Slack — retrieve channels and channel history within approved access.
  • Google Drive — list and search permitted files and metadata.
  • Google Gmail — retrieve and search email information within approved access.
  • Google Calendar — retrieve calendar events within approved access.
  • Microsoft Teams — retrieve teams, channels, messages, and related information only where supported and authorized.

The approved initial behavior is read-only. The application may retrieve, search, list, and display information permitted by the user's identity, provider permissions, and approved scopes.

Creating, modifying, sending, deleting, sharing, or otherwise changing data in a connected provider is outside the approved initial scope.

Read-only is a release requirement

Existing write-capable tools or API routes must not be interpreted as approved product capabilities. Their presence is an implementation gap until they are disabled or denied and the read-only acceptance tests pass. A confirmation prompt is not a substitute for denying a write operation in the initial read-only release.

2.3 Scope exclusions

Unless explicitly approved through change control, the initial release excludes:

  • Sending, drafting, forwarding, or replying to email through integrations.
  • Creating or modifying calendar events.
  • Creating, editing, moving, copying, sharing, starring, or deleting Drive content.
  • Creating or modifying Jira issues.
  • Sending Slack messages or changing Slack content.
  • Sending Microsoft Teams messages or modifying Teams content.
  • Any additional integration provider outside the six listed above.

Local application operations, such as managing a user's own sessions or knowledge-base records, must be governed by their own authorization and data-management requirements. The read-only provider policy does not automatically prohibit legitimate local application administration.

2.4 Requirement lifecycle at a glance

flowchart TD
    A(["Draft Requirement"])
    B["Owner Review \n and \n Approval"]
    C["Design \n and \n Implementation"]
    D["Define \n and \n Execute \n Verification"]
    E["Review Evidence"]
    F["Record Defect \n or \n Gap"]
    G(["Verified"])
    H(["Release Decision"])

    A --> B
    B -->|Approved| C
    B -->|Changes Requested| A
    C --> D
    D -->|Evidence Passes| E
    D -->|Evidence Fails| F
    F --> C
    E -->|Accepted| G
    E -->|Rejected \n or \n Incomplete| F
    G --> H

    %% Pastel fills with distinct, colored outlines.
    classDef requirement fill:#EDE9FE,stroke:#7C3AED,stroke-width:1.5px,color:#3B267A
    classDef review fill:#E8F0FE,stroke:#2563EB,stroke-width:1.5px,color:#23345B
    classDef implementation fill:#E0F7FA,stroke:#0891B2,stroke-width:1.5px,color:#164E63
    classDef verification fill:#FFF2CC,stroke:#D97706,stroke-width:1.5px,color:#7C3E00
    classDef defect fill:#FCE8E6,stroke:#DC2626,stroke-width:1.5px,color:#7F1D1D
    classDef verified fill:#DDF5E5,stroke:#059669,stroke-width:1.5px,color:#16452B

    class A requirement
    class B,E review
    class C implementation
    class D verification
    class F defect
    class G,H verified

    %% Consistent connectors for dark and light modes.
    linkStyle default stroke:#9CA3AF,stroke-width:1.3px

3. Requirement status model

Use the following statuses consistently. A status describes the requirement's lifecycle, not the maturity of the whole product.

Status Meaning
Proposed Requirement is drafted but not yet approved.
Approved An authorized owner has accepted the requirement.
Implemented — unverified Source code appears to contain the relevant behavior, but acceptance evidence is incomplete.
Verified Required acceptance tests or approved verification records have passed.
Failed Verification demonstrates that the requirement is not satisfied.
Deferred Delivery is intentionally postponed with documented approval.
Not applicable Requirement does not apply, with a documented rationale and approval.

Use statuses consistently

Do not mark a requirement Verified solely because a corresponding source file, route, tool definition, or test file exists. Link the status to execution results for an identified version of the system.

4. Functional requirements

The tables below are the normative functional baseline. Requirement statements use shall to indicate mandatory behavior within the stated scope. Status labels such as To verify indicate that compliance has not yet been established.

4.1 Identity and access control

ID Requirement Acceptance evidence Initial status
FR-001 The application shall authenticate users through the approved identity flow before granting access to protected resources. Valid, invalid, expired, and missing credential tests. To verify
FR-002 The application shall associate protected operations with a trusted, authenticated user identity. Authentication and identity-propagation tests across service boundaries. To verify
FR-003 The application shall prevent one user from accessing another user's sessions, connected accounts, documents, and integration data without explicit authorization. Cross-user isolation and unauthorized-access tests. To verify
FR-004 The application shall enforce authorization in trusted application code rather than relying on model-generated decisions. Negative authorization tests and code review. To verify
FR-005 The application shall deny protected operations when required identity or authorization evidence is missing or invalid. Missing-identity, invalid-token, permission-service failure, and tampered-claim tests. To verify

4.2 Conversational processing and tool dispatch

ID Requirement Acceptance evidence Initial status
FR-006 The application shall identify supported user intents and route them to an approved workflow, or return a clear clarification or unsupported-request response. Intent-routing tests, ambiguous-query tests, and regression cases. To verify
FR-007 The application shall validate external input and tool arguments against defined schemas and constraints before execution. Missing-field, invalid-type, malformed-input, and boundary tests. To verify
FR-008 The application shall validate model-generated plans and tool arguments before allowing them to influence protected operations. Invalid, malformed, adversarial, and out-of-scope planner-output tests. To verify
FR-009 The application shall dispatch only registered tools that are explicitly permitted for the requested provider, operation, and user. Tool-registry, authorization, unknown-tool, and cross-provider dispatch tests. To verify
FR-010 The application shall return a controlled response when intent classification is ambiguous, required arguments are missing, or no approved tool matches the request. Ambiguous-intent and unsupported-operation regression tests. To verify
FR-011 The application shall apply configured execution timeouts and rate limits to protected tool calls. Timeout, rate-limit, and repeated-request tests. To verify
FR-012 The application shall return a clear failure response when a tool or upstream provider cannot complete a request. Simulated timeout, authentication failure, provider error, and unavailable-service tests. To verify

4.3 Read-only integration requirements

ID Requirement Acceptance evidence Initial status
FR-013 The initial release shall permit only approved read operations for Gmail, Google Calendar, Google Drive, Jira, Slack, and Microsoft Teams. Per-provider read-operation allowlist tests. Required; verification pending
FR-014 The application shall deny write, destructive, and state-changing operations for all six initial integrations, regardless of model output or user prompt. Direct tool-dispatch denial tests and API-route denial tests. Required; verification pending
FR-015 The application shall not treat a model-generated confirmation claim as trusted user approval. Forged confirmation, injected planner output, and missing-confirmation tests. Required; verification pending
FR-016 The application shall request only provider permissions and OAuth scopes necessary for the approved read-only functionality. Provider-by-provider scope review and OAuth consent inspection. Required; verification pending
FR-017 The application shall enforce per-user provider authorization and must not silently use another user's connection or an unintended shared credential. Missing-token, expired-token, invalid-internal-credential, and cross-user isolation tests. To verify
FR-018 The application shall validate integration arguments, including identifiers, query parameters, pagination limits, and date ranges where applicable. Provider-specific input-validation and boundary tests. To verify
FR-019 The application shall handle provider authentication failures, rate limits, timeouts, and malformed responses without exposing credentials or internal secrets. Provider fault-injection and response-redaction tests. To verify
FR-020 The application shall document supported read operations, required scopes, limitations, and known gaps for each initial integration. Integration documentation review against source code and provider behavior. To verify

Read-only acceptance rule

A provider is not approved for release until its allowed operations have been explicitly enumerated, disallowed operations have been tested for denial, and the required evidence has been recorded. Requiring confirmation for a write operation does not satisfy the read-only requirement.

4.4 Knowledge base and retrieval

ID Requirement Acceptance evidence Initial status
FR-021 The application shall allow authorized users to submit supported documents through the approved knowledge-base workflow. Upload, unsupported-file, malformed-file, and authorization tests. To verify
FR-022 The application shall validate uploaded files and enforce approved file-type, size, and processing constraints. File-validation and size-boundary tests. To verify
FR-023 The application shall extract, segment, and index supported document content for retrieval. Ingestion tests and inspection of stored document chunks and metadata. To verify
FR-024 The application shall retrieve relevant document content for supported knowledge-base questions. Representative retrieval and question-answering evaluation set. To verify
FR-025 The application shall enforce document access restrictions during retrieval and answer generation. Cross-user retrieval-isolation and unauthorized-document tests. To verify
FR-026 The application shall handle ingestion and retrieval failures without presenting failed processing as successful completion. Failed-ingestion, empty-index, unavailable-database, and retrieval-error tests. To verify

Data lifecycle decisions

Document retention, re-indexing, replacement, and deletion behavior must be explicitly specified and approved before they are treated as release guarantees.

4.5 API and service behavior

ID Requirement Acceptance evidence Initial status
FR-027 The application shall expose documented API operations with defined methods, request constraints, authentication requirements, and response behavior. API contract tests and documentation review. To verify
FR-028 The application shall return consistent, documented error responses for validation failures, unauthorized requests, unavailable dependencies, and unexpected server errors. API error-contract tests. To verify
FR-029 The application shall reject malformed or invalid requests before protected business operations are executed. Request-schema and negative API tests. To verify
FR-030 The application shall apply configured request rate limits and return an appropriate response when a limit is exceeded. Rate-limit tests across relevant endpoints and identities. To verify
FR-031 The application shall support the documented client response and streaming behavior where streaming is part of the approved interface. Streaming, disconnect, error, and completion tests. To verify

4.6 Configuration and maintainability

ID Requirement Acceptance evidence Initial status
FR-032 Operators shall be able to configure supported environments using documented configuration variables and approved secret-management practices. Clean-environment startup and configuration-validation tests. Required; verification pending
FR-033 The application shall fail safely when required configuration is missing or invalid. Missing-variable and invalid-configuration tests. To verify
FR-034 Changes to supported functionality shall include appropriate automated regression tests. CI results and linked test evidence for the change. Required
FR-035 The project shall maintain documentation for architecture, APIs, integrations, security, deployment, and testing that reflects verified behavior and identifies known gaps. Documentation review and strict documentation build. To verify

5. Non-functional requirements

Numeric targets must be approved by the product owner and engineering owner before they become release gates. Do not infer service-level objectives from current implementation defaults.

ID Quality attribute Requirement Acceptance evidence Target status
NFR-001 Security Enforce least privilege, trusted authorization, and protection of credentials and sensitive data. Security review and negative security tests. Target to approve
NFR-002 Reliability Define expected behavior for dependency failures, retries, timeouts, and graceful degradation. Fault-injection results and approved reliability targets. Target to approve
NFR-003 Performance Define response-latency targets for chat, integration calls, and document retrieval. Repeatable benchmark results under an agreed workload. Target to approve
NFR-004 Capacity Define supported concurrent users, request rates, document volumes, and resource ceilings. Load tests and resource measurements. Target to approve
NFR-005 Availability Define service availability expectations and the measurement window. Monitoring data and an approved availability calculation. Target to approve
NFR-006 Maintainability Maintain clear service boundaries, reviewable changes, and automated quality checks. Code review, linting, type-checking, and test evidence as applicable. Target to approve
NFR-007 Observability Provide actionable service health information and logs that support diagnosis without unnecessarily exposing sensitive data. Log review, health-check tests, and incident-diagnosis exercise. Target to approve
NFR-008 Privacy Define data minimization, access restrictions, retention, deletion, and handling of sensitive content. Approved data-handling policy and verification evidence. Target to approve
NFR-009 Portability Provide reproducible setup and deployment instructions for supported environments. Clean deployment exercise in each supported environment. Target to approve
NFR-010 Recovery Define backup, restoration, and recovery expectations for persistent application data. Approved recovery objectives and restoration test results. Target to approve
NFR-011 Compatibility Define supported browsers, operating environments, API compatibility rules, and migration expectations. Compatibility test results and documented support matrix. Target to approve

For each approved measurable target, record:

  • Metric and target value.
  • Measurement method and observation window.
  • Test or monitoring data source.
  • Workload and environment assumptions.
  • Responsible owner.
  • Approval date and review date.
Example of a measurable non-functional target

The following is a template only, not an approved WhiteLotusAI target. Replace the placeholders with values formally agreed by the responsible owners.

requirement_id: NFR-003
metric: response_latency
percentile: p95
target: "<approved threshold>"
workload: "<approved workload profile>"
environment: "<target environment>"
measurement_window: "<approved duration>"
owner: "<responsible owner>"
approval_status: pending

6. Security and authorization requirements

ID Requirement Acceptance evidence Status
SEC-001 Model output, retrieved documents, and external provider content shall be treated as untrusted data. Prompt-injection and untrusted-content tests. To verify
SEC-002 Authorization decisions shall be made by trusted application components, not by the model. Authorization code review and adversarial tests. To verify
SEC-003 A user confirmation claim supplied by the model or request payload shall not, by itself, authorize a protected operation. Forged-confirmation and replay tests. Required; verification pending
SEC-004 Initial provider integrations shall enforce a read-only allowlist independently of model intent and confirmation behavior. Direct-dispatch and direct-route write-denial tests. Required; verification pending
SEC-005 Provider scopes and application permissions shall follow least-privilege principles. Scope inventory and permission review. To verify
SEC-006 Access tokens, refresh tokens, passwords, client secrets, and other credentials shall not be written to application logs. Automated secret scanning and log inspection. To verify
SEC-007 Required identity, permission, connection, or authorization evidence shall fail closed when missing, invalid, or unavailable. Failure-path and dependency-outage tests. To verify
SEC-008 Internal service endpoints shall validate their required service credentials and user context. Missing, invalid, and mismatched internal-credential tests. To verify
SEC-009 Sensitive data returned in errors shall be minimized and redacted. Provider-error simulation and response/log inspection. To verify
SEC-010 Security-relevant actions and denied operations shall be auditable without storing unnecessary secrets or sensitive payloads. Audit-event tests and log-content review. To verify

Fail closed

Where identity, permission, connection, or authorization evidence is required, missing, invalid, or unavailable evidence must not silently grant access. Tests must cover failure paths as well as normal operation.

7. Testing and verification requirements

7.1 Verification levels

Use the level appropriate to the requirement. A single feature may require evidence from more than one level.

Validate individual functions, schemas, policies, authorization rules, and data transformations. Include invalid and boundary input cases.

Validate interactions between services, databases, queues, and provider clients, including authentication and dependency failure behavior.

Validate authentication, request validation, response contracts, access control, rate limits, and error behavior at the API boundary.

Validate authorization, user isolation, secret handling, prompt-injection resistance, and strict read-only enforcement.

Validate approved workflows across the relevant application components using a documented test identity and controlled test data.

Validate deployment, configuration, health checks, logging, recovery, navigation, links, rendered content, and strict documentation builds.

7.2 Test evidence

ID Requirement Acceptance evidence Status
TST-001 Every approved requirement shall map to one or more verification cases or have an approved rationale for an alternative verification method. Requirement-to-test traceability matrix. Required
TST-002 Tests shall include positive, negative, and boundary cases appropriate to the requirement. Test-case review and execution results. Required
TST-003 Read-only enforcement shall be tested against direct tool invocation and provider API routes, not only natural-language prompts. Write-denial test results for all six providers. Required
TST-004 Cross-user access restrictions shall be tested for sessions, documents, OAuth connections, and provider data. User-isolation test results. Required
TST-005 Release decisions shall use recorded test results from the intended release candidate. CI evidence, test reports, and release checklist. Required
TST-006 A test file's existence shall not be considered evidence that the test passed. Test execution records and reviewed results. Required

7.3 Minimum test record

Each verification record should identify, as applicable, the requirement ID, test-case ID, tested version or commit, environment, preconditions, steps, expected result, observed result, execution timestamp, outcome, evidence location, and reviewer.

Requirement: FR-014
Test case: <test-case identifier>
Build or commit: <tested version>
Environment: <environment identifier>
Expected: Write-capable provider operation is denied by trusted backend policy.
Observed: <record actual result>
Outcome: <pass | fail | blocked>
Evidence: <link to test report or artifact>
Reviewer: <reviewer>

The example is a record template, not evidence that the test has passed.

8. Acceptance criteria

A requirement may be marked Verified only when all applicable criteria are satisfied:

  1. The requirement has an unambiguous, testable statement.
  2. Preconditions, expected outcomes, and relevant failure cases are defined.
  3. Verification cases cover required positive, negative, and boundary conditions.
  4. Tests or approved manual verification have been executed against an identified version.
  5. Results and relevant artifacts are recorded and reviewable.
  6. Security and privacy implications have been reviewed where applicable.
  7. Known failures and exceptions are documented, assigned, and handled according to the approved release policy.
  8. The responsible owner has accepted the evidence.
  9. The requirement is linked to the relevant source change, issue, test record, or release record where applicable.

For security-critical requirements and the initial read-only policy, unresolved failures block approval of the affected capability unless a formally authorized exception explicitly permits otherwise.

8.1 Evidence flow

flowchart TD
    R(["Requirement ID"])
    D["Design \n or \n Component"]
    I["Implementation \n Change"]
    T["Test Case"]
    V["Recorded \n Verification \n Result"]
    A["Owner Review"]
    S(["Verified"])
    G["Gap \n or \n Defect Recorded"]

    R --> D
    D --> I
    I --> T
    T --> V
    V --> A
    A -->|Accepted| S
    A -->|Rejected or Incomplete| G
    G --> I

    %% Pastel fills and colored outlines.
    classDef requirement fill:#EDE9FE,stroke:#7C3AED,stroke-width:1.5px,color:#3B267A
    classDef implementation fill:#E0F7FA,stroke:#0891B2,stroke-width:1.5px,color:#164E63
    classDef verification fill:#FFF2CC,stroke:#D97706,stroke-width:1.5px,color:#7C3E00
    classDef review fill:#E8F0FE,stroke:#2563EB,stroke-width:1.5px,color:#23345B
    classDef verified fill:#DDF5E5,stroke:#059669,stroke-width:1.5px,color:#16452B
    classDef defect fill:#FCE8E6,stroke:#DC2626,stroke-width:1.5px,color:#7F1D1D

    class R requirement
    class D,I implementation
    class T,V verification
    class A review
    class S verified
    class G defect

    %% Neutral connectors for dark and light theme compatibility.
    linkStyle default stroke:#9CA3AF,stroke-width:1.3px

9. Traceability and change control

Each requirement shall be traceable through the delivery lifecycle:

Requirement → Design or component → Implementation change → Test case → Verification result → Release decision

Changes to requirements must record:

  • Requirement ID and proposed change.
  • Reason and business justification.
  • Affected services, integrations, APIs, data models, and documentation.
  • Compatibility and migration impact.
  • Security and privacy impact.
  • Acceptance-test changes.
  • Responsible owner and approver.
  • Decision, date, and linked issue or merge request.

No requirement should be silently removed, weakened, or marked complete merely because implementation is inconvenient or incomplete.

9.1 Example requirement record

The following illustrates a traceability record structure. Placeholder values must be replaced with real project references before use.

requirement_id: FR-014
statement: Deny state-changing operations for all initial provider integrations.
owner: "<assigned owner>"
implementation_reference: "<merge request or commit>"
test_cases:
  - "<provider-specific denial test>"
evidence: "<test report or artifact URL>"
status: "Required; verification pending"
approval_reference: "<approval record, when available>"

10. Known verification priorities

The following areas require explicit evidence before the relevant release claims can be approved:

  1. Read-only enforcement: confirm that write-capable tools and routes are denied across all six integrations, including direct invocation paths.
  2. Trusted confirmation: confirm that model-generated claims cannot satisfy trusted authorization or confirmation requirements.
  3. OAuth and user isolation: verify provider scopes, token handling, connection ownership, refresh behavior, and internal-service authentication.
  4. Input and error handling: verify schema validation, pagination and date boundaries, provider failure handling, and secret redaction.
  5. Knowledge-base isolation: verify document access controls during ingestion, indexing, retrieval, and answer generation.
  6. Test evidence: execute the required tests and record results against the release candidate.
  7. Non-functional targets: obtain approval for measurable performance, availability, capacity, and recovery targets.

These are verification priorities, not a declaration that every listed area contains a confirmed defect. Confirmed defects should be recorded separately with reproducible evidence and linked remediation work.

11. Release acceptance

The product shall not be declared compliant with this requirements baseline merely because the documentation builds or the application starts successfully.

Before release approval:

  • Required product requirements are approved.
  • Critical security and authorization requirements pass verification.
  • The six initial integrations satisfy the approved read-only policy.
  • Required regression and integration tests pass, with exceptions formally recorded.
  • Deployment configuration and secret handling are reviewed.
  • Applicable non-functional targets are approved and verified.
  • Open risks, deferred requirements, and known limitations are documented.
  • The release decision identifies the tested version and responsible approver.

Release decision: pending

This baseline remains pending verification and owner approval. Do not interpret the presence of the checklist as evidence that its items have passed.

12. Document maintenance

Review this document when product scope, security policy, integrations, architecture, APIs, or release criteria change.

Implementation status must be updated from source review and test evidence rather than assumptions. Changes to this document must follow the project's documentation and change-control process.

Feature catalogue

Compare intended requirements with capabilities and implementation caveats.

Review features
Security overview

Review security boundaries, authorization principles, and risk controls.

Review security
Test inventory

Locate test cases and connect planned checks to evidence.

Review tests
Release readiness

Use the release gate when preparing a candidate for approval.

Review release gate

Document control: update requirement status only when supported by reviewed implementation details and recorded verification evidence. For terms such as RAG and OAuth, consult the relevant architecture and integration documentation for implementation-specific details.