pcr.ai Software Requirements Specification
Version: v3.0.0 Status: Normative (text), Illustrative (diagrams only) Scope: Overview of SRS document conventions, terminology, and domain index Document Type: Introduction / Navigation
Statement
This document set defines the software requirements for pcr.ai, a PCR (Polymerase Chain Reaction) analysis and quality control system. The SRS comprises 88 domain-specific files containing approximately 350 testable requirements organized by functional area.
The introduction provides navigation guidance, establishes document conventions (requirement identifiers, normative language, section structure), defines domain terminology, and indexes all SRS files. Readers should reference this document to understand requirement format, locate specific domains, and interpret normative language throughout the specification.
Document Overview (Illustrative)
This diagram illustrates the document structure. The Introduction provides conventions and definitions used by all domain files.
1. Purpose and Scope
1.1 Purpose
This document set defines the software requirements for pcr.ai, a PCR (Polymerase Chain Reaction) analysis and quality control system.
1.2 Scope
In Scope:
- Functional requirements for all pcr.ai modules
- Non-functional requirements (performance, capacity)
- Acceptance criteria for verification
- Traceability to source documentation
Out of Scope:
- Deployment and infrastructure specifications
- Database schema definitions
- API specifications (covered in separate documentation)
- Test implementation details (covered in test plans)
- User training materials
1.3 Intended Audience
- Development teams implementing features
- QA teams writing test cases
- Product owners validating requirements
- Regulatory reviewers assessing compliance
2. Document Conventions
2.1 Requirement Identifiers
All requirements use the format REQ-{DOMAIN}-{NNN}:
| Pattern | Example | Meaning |
|---|---|---|
REQ-{DOMAIN}-{NNN} | REQ-KITCFG-001 | Functional requirement |
REQ-RULES-{RULE}-{NNN} | REQ-RULES-QSSC-001 | Rule-specific requirement |
NFR-{CATEGORY}-{NNN} | NFR-PERF-001 | Non-functional requirement |
Identifiers are immutable. Once assigned, an identifier permanently refers to that requirement.
2.2 Normative Language
| Term | Meaning |
|---|---|
| shall | Mandatory requirement. Must be implemented. |
| should | Recommended. Strong expectation unless justified otherwise. |
| may | Optional. Implementation discretion. |
Only shall statements are testable requirements. Other language is explanatory.
2.3 Document Structure
Each domain SRS file contains:
| Section | Normative? | Description |
|---|---|---|
| Overview | No | Context and purpose |
| Definitions | No | Domain-specific terminology |
| Assumptions | No | Preconditions for requirements |
| Requirements | Yes | Testable "shall" statements with acceptance criteria |
| Refinements | Yes | Constraints on requirements |
| Configuration Options | No | Configurable parameters |
| UI Detail | No | Presentation specifications (survives UI redesign) |
| Notes | No | Implementation guidance |
| Reviewer Notes | No | Conversion decisions and rationale |
| Traceability Matrix | Yes | Requirement-to-test mapping |
2.4 Acceptance Criteria
Each requirement includes acceptance criteria in table format:
| ID | Criterion |
|----|-----------|
| AC-01 | Given [context], when [action], then [outcome] |
Acceptance criteria describe behavior, not UI mechanics. They must survive a complete UI redesign unchanged.
3. Definitions
| Term | Definition |
|---|---|
| Run / Runfile | A PCR analysis batch from a thermocycler |
| Well | A single PCR reaction container on a plate |
| Observation | A target measurement within a well |
| Mix | A combination of targets and dyes for an assay |
| Target | A specific DNA/RNA sequence being detected |
| CT (Cycle Threshold) | The cycle number where fluorescence crosses threshold |
| Classification | Result categorization: Positive, Negative, or Ambiguous |
| Westgard Rules | Statistical QC rules (1:2S, 1:3S, 2:2S, R4S, 4:1S, 10X, 7T) |
| LIMS | Laboratory Information Management System |
| Resolution Code | User action to resolve a flagged well condition |
| Sigmoid | The characteristic S-shaped curve of PCR amplification |
| IC (Internal Control) | A control target used to detect reaction inhibition |
| Rule | An automated check executed during run analysis |
| Error Code | System-generated code indicating a validation failure |
4. Domain Index
4.1 Domain Files
| Domain | File | Description |
|---|---|---|
| Analytics | analytics.md | Rule execution on wells during processing |
| Analyzer | analyzer.md | Data validation for imported run files |
| Audit Log | audit-log.md | Change tracking and compliance trails |
| Client Config | client-config.md | System-wide configuration settings |
| Comments | comments.md | User tagging and notification |
| Config I/O | configio.md | Configuration import/export |
| Error Codes | errorcodes.md | Error codes from analytical rules |
| File Import | fileimport.md | Run file ingestion from thermocyclers |
| Filters | filters.md | Generic filtering across tables/reports |
| Global UI | globalui.md | Application-wide UI patterns |
| Help | help.md | Context-sensitive help and tutorials |
| Keyboard | keyboard.md | Keyboard shortcuts |
| Kit Config | kitcfg.md | Mixes, targets, instruments, assays |
| NFR | nfr.md | Non-functional requirements |
| Notifications | notif.md | Status icons and counts |
| print.md | PDF export and print formatting | |
| Progress | progress.md | Progress indicators |
| Reanalyze | reanalyze.md | Well outcome management |
| Reports | reports.md | Levey-Jennings, Trends, Outcomes |
| Runfile List | runfile-list.md | Run file browsing and filtering |
| Runfile Report | runfile-report.md | Individual run analysis |
| Site | site.md | Multi-site configuration |
| Tables | tables.md | Generic table display |
| UI | ui.md | Generic UI requirements |
| Upload Runs | upload-runs.md | Run file upload |
| User Management | user-management.md | Users, roles, authentication |
| User Settings | user-settings.md | Personal preferences |
4.2 Rules Domain
The Rules domain contains 61 files in the rules/ directory:
| File | Description |
|---|---|
| rule-engine.md | Rules Engine Framework - mapping, ordering, error flow |
| rule-adj.md | ADJ - Cross contamination detection |
| rule-amb.md | AMB - Ambiguous classification |
| rule-bpec.md | BPEC - Positive extraction control |
| rule-cc.md | CC - Control curve bounds |
| rule-combine-outcomes.md | Combined outcomes evaluation |
| rule-control-fail.md | Control failure propagation |
| rule-delta-ct.md | Delta CT validation |
| rule-downward-sigmoid.md | Downward sigmoid detection |
| rule-extraction-controls.md | Extraction control validation |
| rule-icct.md | IC CT validation |
| rule-inhibition-*.md | Inhibition detection (6 variants) |
| rule-nec.md | NEC - Negative control validation |
| rule-qssc.md | QSSC - Standard curve quantification |
| rule-reporting-*.md | Reporting rules (3 variants) |
| rule-threshold.md | Threshold validation |
| rule-westgards.md | Westgard statistical QC |
| rule-w*.md | Well-level rules (20+ variants) |
| (+ 30 additional rule files) |
5. References
| Document | Description |
|---|---|
| Confluence 3.0.0-Product Requirements | Original source (~77,000 lines) |
| Jira Epic BT-674 | Rules Engine epic |
| IEEE 29148:2018 | Systems and software engineering - Requirements engineering |
6. Document Statistics
| Metric | Count |
|---|---|
| Domain SRS files | 27 |
| Rule SRS files | 61 |
| Total SRS files | 88 |
| Total requirements | ~350 |
| Validation status | 100% pass (no blocking issues) |
7. Version History
| Version | Date | Description |
|---|---|---|
| 1.0 | 2026-01-15 | Initial SRS conversion from Confluence |
Related Design Documents
| Design Document | Relevant Sections |
|---|---|
| SDD Introduction | System architecture overview |
| SDD Glossary | Extended terminology (127 terms) |
| SDD Master Index | Topic-based navigation |
Appendix: Process Artifacts
Completion Checklist
- Statement section present (1-2 paragraphs)
- Mermaid diagram present and renders without errors
- Diagram marked as
(Illustrative) - No "non-normative" text anywhere
- All original content preserved
- Blank lines before bullet lists
- All Trace references preserved (Source, Jira, Tests, Epics)
- Related Design Documents section added
- Appendix has Completion Checklist and Reviewer Notes
Reviewer Notes
Document Type: This is an introduction/index document, not a domain requirements file. It contains no REQ-* identifiers or acceptance criteria because its purpose is to:
- Establish document conventions used across all SRS files
- Define common terminology
- Index all domain files for navigation
Conversion Notes:
| Section | Disposition |
|---|---|
| Purpose and Scope | Preserved verbatim |
| Document Conventions | Preserved verbatim |
| Definitions | Preserved verbatim |
| Domain Index | Preserved verbatim |
| References | Preserved verbatim |
| Document Statistics | Preserved verbatim |
| Version History | Preserved verbatim |
Additions:
- Statement section summarizing document purpose
- Mermaid diagram showing document structure relationship
- Related Design Documents section linking to SDD
- Process artifacts appendix
Reversibility: Source file preserved at output/srs/introduction.md