# Verixa — User Requirements Specification

# Module 10: Product / SKU / Drug Master Data

| Field | Value |
|---|---|
| Document ID | VRX-URS-10 |
| Version | 1.0 |
| Status | Final — ready for QA, Validation, Regulatory Affairs, Information Security, and Founder approval. URS approval is separate from validation execution. This document becomes "Approved Controlled URS — released for engineering implementation and validation planning" only after signature capture in the Document Approval block. It becomes "Released for validation execution" only after the module migration evidence gate (URS-10-VAL-008) and validation evidence pack are satisfied. |
| Document Type | User Requirements Specification (URS) |
| GAMP 5 Category | Category 5 — Custom Application |
| Regulatory Classification | Master-data substrate — operates the canonical product hierarchy (brand → product family → product → SKU), the drug substance and drug product registries, the multi-jurisdictional product registration register, the specifications register (per version immutable), the composition / formula record (high-level; full BOM is owned by a forward manufacturing BOM module — exact module-number is a program dependency, not URS-13), the container closure system register, the storage conditions and shelf-life policy register, the Drug Master File (DMF) and Reference Listed Drug (RLD) reference linkage, the product / site manufacturing relationship table, the product lifecycle state machine, and the product-bound regulated-record discovery surface that maps the canonical `product` and `product_family` scope dimensions consumed by URS-03 / URS-05 / URS-07 to every regulated record across URS-12..URS-34. |
| Date of Issue | 2026-05-06 |
| Module Owner (Engineering) | Product Master-Data Squad |
| Module Owner (Quality Validation) | CSV / CSA Lead — Product Master Data |
| Module Owner (Compliance) | Quality Assurance, Regulatory Affairs, R&D / Formulation |
| Approving Authority | Founder / Chairman & MD; QA Head; Validation Head; RA Head; Information Security Head; R&D / Formulation Lead |

## Document Approval

| Role | Name | Signature | Date |
|---|---|---|---|
| Author — Platform Architecture | _____________________ | _____________________ | __________ |
| Reviewer — Engineering Lead | _____________________ | _____________________ | __________ |
| Reviewer — QA / Validation Lead | _____________________ | _____________________ | __________ |
| Reviewer — Information Security Lead | _____________________ | _____________________ | __________ |
| Reviewer — Regulatory Affairs Lead | _____________________ | _____________________ | __________ |
| Reviewer — R&D / Formulation Lead | _____________________ | _____________________ | __________ |
| Approving Authority — Founder, Chairman & MD | _____________________ | _____________________ | __________ |

## Version History

| Version | Date | Summary |
|---|---|---|
| 1.0 | 2026-05-06 | First issued user requirements specification for Module 10. |

---

## 0. Document Framing

### 0.1 Purpose of this document

This URS defines the target expected state for Verixa's Product / SKU / Drug Master Data module (Module 10). It is the binding contract between product, engineering, quality validation, regulatory affairs, R&D / formulation, information security, and the executive authority for the design, implementation, validation, release, and on-going periodic review of the canonical product hierarchy, the drug substance and drug product registries, the multi-jurisdictional product registration register, the specifications register, the composition / formula record at the high level, the container closure system register, the storage conditions and shelf-life policy register, the Drug Master File and Reference Listed Drug reference linkage, the product / site manufacturing relationship table, the product lifecycle state machine, the product URS-13 linkage, and the product-bound regulated-record discovery surface that maps the canonical `product` and `product_family` scope dimensions consumed by URS-03 / URS-05 / URS-07 to every regulated record across URS-12..URS-34. Compliance with this URS is mandatory.

### 0.2 Audience

Engineering, QA, Validation, Regulatory Affairs, R&D / Formulation, Manufacturing Sciences, Information Security, executive authority, the platform's Implementation team, internal and external auditors, and inspectors from regulatory bodies including the United States Food and Drug Administration, the European Medicines Agency / national competent authorities, the Medicines and Healthcare products Regulatory Agency, Health Canada, the Central Drugs Standard Control Organisation of India, Japan's Pharmaceuticals and Medical Devices Agency (PMDA), and Pharmaceutical Inspection Co-operation Scheme members. The plain-language primer (§0.4) and worked examples (§3.5) make Module 10 accessible to non-domain engineers, product owners, validation engineers, R&D scientists, and regulatory affairs operations leads who have not previously specified product master-data substrates for regulated GxP platforms.

### 0.3 How to read this document

Each requirement has a unique identifier. "MUST" denotes a mandatory requirement; "SHOULD" denotes a strong recommendation; "MAY" denotes an option. The document is self-contained: front end (§5), back end (§6), data model (§6.2), application programming interface (§6.3), workflow (§6.4), business rules (§6.5), audit (§6.6), security (§12), regulatory mapping (§14), test cases (§16), and validation evidence (§17) are all in this single file.

### 0.4 Plain-language primer for non-domain readers

A **drug** in regulatory speak is not one thing — it is a layered set of objects. At the bottom is the **drug substance** (the active pharmaceutical ingredient or "API" — the chemical or biological entity that produces the pharmacological effect, e.g., atorvastatin calcium, or a recombinant antibody). On top of one or more drug substances sits a **drug product** — the formulated, dose-form-bearing entity that the patient receives (e.g., atorvastatin 20 mg film-coated tablets). For each drug product, there are typically multiple **SKUs** — the actual sellable presentations, distinguished by pack size, count, market, and presentation (e.g., "atorvastatin 20 mg, 30-tablet bottle, US market"; "atorvastatin 20 mg, 90-tablet bottle, US market"; "atorvastatin 20 mg, 28-tablet blister, EU market"). Module 10 owns the canonical registry for all three layers plus a higher level — the **brand** and **product family** that group related products commercially.

A drug product may be registered in multiple jurisdictions, each with its own **regulatory dossier** (NDA in the US, MAA in EU, MA in UK, ANDA for US generics, IND for clinical-stage, CTD/eCTD documentation, CDSCO Form 26 in India, PMDA application in Japan, etc.). The same drug substance and the same formulation may be registered as different products in different markets, with different brand names, different SKU presentations, different regulatory frameworks, and different specification appendices. Module 10 captures this multi-jurisdictional reality.

A product has a **lifecycle**. New products enter as `in_development` (during R&D and pre-IND); move to `in_registration` once a regulatory dossier is submitted to an authority; move to `commercial` once approved by at least one regulatory authority and ready for marketing; can be `suspended` (e.g., during a manufacturing hold, a quality investigation, or a recall); and ultimately `discontinued` when the product is permanently retired (the regulatory dossier is withdrawn or expired; the product is no longer marketed). Every lifecycle transition is electronically signed; **high-risk product types** (controlled substances, narcotics, biologics, vaccines, ATMPs — Advanced Therapy Medicinal Products like cell therapies, gene therapies, tissue-engineered products) require executive authority co-sign at commercial activation per DEC-10-14.

The **specifications register** captures the regulatory-relevant tests, methods, and limits that the product must meet at release and at end-of-shelf-life. Each specification version is immutable; changes produce new versions through controlled URS-13 governance. Specifications are tied to monographs (USP, EP, BP, IP, JP) where applicable.

The **composition / formula** record captures the high-level qualitative-quantitative formulation: the drug substance(s) at named strength(s), the major excipient classes and amounts, the dosage form, the manufacturing process class. Detailed bill of materials are owned by a forward manufacturing BOM module; the exact module number is a program dependency. URS-13 is Change Control and MUST NOT be referenced as the BOM module. Module 10 owns the high-level formulation record only.

The **container closure system** is the immediate package — the bottle, blister, vial, ampoule, vial closure, stopper, seal — that touches the drug product. The container closure has its own qualification (extractables / leachables, integrity, compatibility) and is regulator-tracked. Module 10 captures the high-level container-closure record per SKU.

The **storage conditions** and **shelf life** record specifies how the product is stored (controlled room temperature, refrigerated, frozen, with or without protection from light or moisture) and how long the product remains within specification under those conditions. Shelf life is supported by stability data from URS-07 stability studies; expiry-date assignment for batches in production is downstream.

The **Drug Master File (DMF) reference linkage** captures references to drug master files for drug substances or container-closure components, where applicable. A DMF is a regulator-held document that allows a third party (typically the API supplier) to provide confidential information to the regulator without exposing it to the drug-product applicant; the applicant references the DMF in their dossier. Module 10 captures the DMF reference number, type, holder, and last-update date; the actual DMF content is not in Verixa.

The **Reference Listed Drug (RLD) and bioequivalence reference linkage** captures the reference product against which a generic is compared (FDA Orange Book RLD; EU reference medicinal product; CDSCO reference product). Module 10 captures the reference product identifier and demonstrated bioequivalence linkage.

The **product / site manufacturing relationship** binds drug products to the sites (Module 9) that manufacture, package, label, or release them. A single drug product is typically manufactured at one or more sites, packaged at one or more sites, labelled at one or more sites, released at one or more sites; some sites perform multiple functions. Module 10 owns this relationship register; site-level qualification of the product-specific manufacturing process is captured through URS-07 process-validation studies.

The **product-bound regulated-record discovery** surface is the read-only view that surfaces every regulated record (deviation, OOS, batch record, complaint, URS-13 record, recall, validation finding, stability finding, etc.) whose URS-03 active scope intersects the product over a configurable window. This makes the product a **first-class navigation entry point** for product-quality reviews, periodic product reviews per Annex 11 §11 / 21 CFR Part 211 §211.180(e), and regulatory inspections.

Module 10 is consumed by every other module that has any product-bound activity. URS-03 active-scope intersection consumes the `product` and `product_family` scope dimensions defined here. URS-07 study scope can include products from this catalogue. URS-05 Authority Profile assignments scope-bind to products. URS-09 site / product manufacturing relationships originate here. URS-12..URS-34 regulated records are bound to products at creation. Module 10 is the single source of truth for "what was made / sold / studied?"

### 0.5 Product lifecycle diagram

```mermaid
stateDiagram-v2
  [*] --> in_development : Tenant creates product
  in_development --> in_registration : Regulatory dossier submitted (per jurisdiction)
  in_registration --> commercial : Regulatory approval received (at least one jurisdiction); executive authority co-sign for high-risk types
  commercial --> suspended : Manufacturing hold / quality investigation / recall
  suspended --> commercial : Hold released; resolution evidence logged
  commercial --> discontinued : Product retirement workflow
  suspended --> discontinued : Discontinuation from suspended state
  in_development --> withdrawn : Cancelled before registration (terminal)
  in_registration --> withdrawn : Dossier withdrawn before approval (terminal)
  withdrawn --> [*]
  discontinued --> [*]
```

Diagram 0.5-A — Product lifecycle. Activation (`in_registration → commercial`) requires regulatory approval evidence linked through URS-12 plus executive authority co-sign for high-risk product types per DEC-10-14. Suspension preserves all historical records; discontinuation is the terminal retirement workflow with comprehensive close-out.

### 0.6 Glossary of key terms used in this document

| Term | Definition |
|---|---|
| ANDA | Abbreviated New Drug Application; the US regulatory pathway for generic drugs. |
| API | Active Pharmaceutical Ingredient; the drug substance that produces the pharmacological effect. |
| ATMP | Advanced Therapy Medicinal Product (EU); cell therapy, gene therapy, tissue-engineered products. |
| Bioequivalence reference | The reference product against which a generic is demonstrated bioequivalent. |
| Brand | The commercial trade name under which a product or product family is marketed; optional grouping above product family. |
| Container closure system | The immediate primary packaging that contacts the drug product (bottle, blister, vial, stopper, seal, etc.). |
| CTD / eCTD | Common Technical Document / electronic CTD; ICH M4 standard for regulatory dossier organisation. |
| DMF | Drug Master File; a confidential dossier filed with a regulator by a third party (typically API supplier or container manufacturer) referenced by the drug-product applicant. |
| Drug product | The formulated dose-form entity received by the patient (e.g., 20 mg tablet). |
| Drug substance | The active pharmaceutical ingredient; the chemical or biological entity producing the pharmacological effect. |
| eCTD | electronic Common Technical Document; the e-format of the CTD. |
| IND | Investigational New Drug; US regulatory pathway for clinical-stage products. |
| MA | Marketing Authorisation; the EU / UK regulatory approval to market a product. |
| MAA | Marketing Authorisation Application; the EU regulatory dossier for new products. |
| Monograph | Pharmacopoeial standard for a drug substance or drug product (USP, EP, BP, IP, JP). |
| NDA | New Drug Application; US regulatory pathway for innovator drugs. |
| Product | The registered entity per jurisdiction (drug substance + formulation registered as a unit). |
| Product family | The umbrella for related products (e.g., all atorvastatin calcium products with different strengths). |
| RLD | Reference Listed Drug; the FDA-designated reference product for generic comparison (Orange Book). |
| Shelf life | The period during which a product remains within specification under defined storage conditions. |
| SKU | Stock Keeping Unit; the commercial sellable presentation distinguished by strength, pack size, market, and presentation. |
| Specification | The quality control test, method, and limit set that defines acceptance criteria for a drug substance or drug product. |
| Storage conditions | The defined environmental conditions (temperature, humidity, light protection) under which the product is stored. |

### 0.7 Module 10 architectural picture

```mermaid
graph LR
  subgraph M10 [Module 10 — Product / SKU / Drug Master Data]
    DS[Drug Substance Registry]
    DP[Drug Product Registry]
    SKU[SKU Registry]
    HIER[Brand / Product Family Hierarchy]
    REG[Multi-jurisdictional Registrations]
    SPEC[Specifications Register]
    COMP[Composition / Formula]
    CCS[Container Closure System]
    STORE[Storage and Shelf Life]
    DMF[DMF and RLD References]
    SITE[Product / Site Relationships]
    LCY[Product Lifecycle]
  end

  M3[URS-03 Active Scope] <--> DP
  M4[URS-04 Workflow / E-Sign] --> LCY
  M5[URS-05 Authority] --> DP
  M6[URS-06 Audit Substrate] --> LCY
  M7[URS-07 Study] <--> DP
  M8[URS-08 Tenant Lifecycle] --> DP
  M9[URS-09 Site] <--> SITE
  M12[URS-12 Document Control] <--> SPEC
  M12 <--> REG
  M30[URS-30 Notifications] --> LCY
  DP --> M14[URS-14..URS-34 Domain modules]
```

Diagram 0.7-A — Module 10 sits at the master-data layer alongside Module 9 (sites). URS-03 active-scope intersection consumes the `product` and `product_family` scope dimensions; URS-07 study scope includes products; URS-09 product / site manufacturing relationships are mutual; URS-12 holds specifications, registration dossiers, and DMF references. Every regulated record across URS-12..URS-34 binds to a product (or product family) at creation.

---

## 1. Module Purpose

Module 10 establishes Product / SKU / Drug Master Data as the canonical master-data substrate for "what was made / sold / studied" in Verixa. It owns the drug substance registry; the drug product registry; the SKU registry; the brand and product family hierarchy; the multi-jurisdictional product registration register; the specifications register (per version immutable); the high-level composition / formula record; the container closure system register; the storage conditions and shelf-life policy register; the DMF and RLD reference linkage; the product / site manufacturing relationship register; the product lifecycle state machine; the product URS-13 linkage; and the product-bound regulated-record discovery surface. Module 10 is consumed by URS-03 to compute active-scope intersection on `product` and `product_family` scope dimensions; by URS-04 to drive product-aware workflow firing; by URS-05 to scope-bind Authority Profile assignments to products; by URS-06 to attribute audit rows; by URS-07 to compose study scope including products; by URS-09 to bind product / site manufacturing relationships; by URS-12..URS-34 to bind regulated records to products at creation.

Module 10 is the **first-class navigation entry point for product-quality review** — for periodic product reviews per 21 CFR Part 211 §211.180(e) / EU GMP Chapter 1, for inspection responses focused on a specific product family, and for recall / market-action coordination.

---

## 2. Scope

### 2.1 In scope

- The drug substance registry per DEC-10-01: per-tenant registry of drug substances with `id`, `tenant_id`, `name` (INN where assigned; chemical name; established name), `synonyms_jsonb`, `cas_number`, `molecular_formula`, `molecular_weight`, `chemical_structure_reference_document_id` (FK URS-12), `monograph_references_jsonb` (USP / EP / BP / IP / JP), `substance_class` (`small_molecule_chemical` / `biological` / `vaccine_antigen` / `cell_therapy` / `gene_therapy` / `tissue_engineered` / `controlled_substance` / `narcotic` / `radiopharmaceutical`), `controlled_substance_schedule_jsonb` (where applicable; per-jurisdiction schedule e.g. US DEA Schedule II, India NDPS), `dmf_references_jsonb` (FK to `drug_master_files`), `lifecycle_state`.
- The drug product registry per DEC-10-02: per-tenant registry of drug products with `id`, `tenant_id`, `display_name`, `display_id`, `brand_id` (nullable), `product_family_id` (nullable), `dose_form` (per ICH-controlled vocabulary: tablet / capsule / oral solution / oral suspension / injection solution / injection suspension / ophthalmic solution / topical cream / topical ointment / transdermal patch / inhalation aerosol / inhalation powder / nasal spray / suppository / lyophilised powder / etc.), `route_of_administration` (oral / parenteral-IV / parenteral-IM / parenteral-SC / parenteral-IT / topical / ophthalmic / inhalation / nasal / rectal / etc.), `strength_jsonb` (e.g., `[{"substance": "atorvastatin", "amount": "20 mg"}]`), `therapeutic_area`, `atc_code` (where assigned), `vertical_classification_jsonb` (e.g., `controlled_substance`, `narcotic`, `biologic`, `vaccine`, `atmp`), `lifecycle_state`, `created_at`, `commercial_activated_at`, `discontinued_at`, `successor_of_product_id`.
- The SKU registry per DEC-10-03: per-product registry of SKUs with `id`, `product_id`, `display_name`, `display_id`, `pack_size`, `pack_size_unit`, `presentation` (e.g., `bottle_30_count`, `blister_28_count`, `single_dose_vial_5ml`), `market_jurisdiction`, `gtin_or_upc` (nullable; commercial barcode), `ndc_code` (US National Drug Code; nullable), `eu_pc` (EU Product Code; nullable), `lifecycle_state`.
- Brand and product family hierarchy per DEC-10-01: optional `brands` and required `product_families` allowing the catalogue to express commercial groupings.
- Multi-jurisdictional product registrations register per DEC-10-04: per-product per-jurisdiction registration with `regulatory_pathway` (`nda` / `anda` / `bla` / `505b2` / `ind` / `maa` / `ma` / `cdsco_form_26` / `cdsco_form_44` / `pmda_application` / `health_canada_nds` / `health_canada_andsa`), `regulatory_authority`, `application_or_approval_number`, `submission_date`, `approval_date` (nullable), `effective_from`, `effective_to`, `dossier_document_ids_jsonb` (FK URS-12; CTD modules), `current_status`.
- Specifications register per DEC-10-05: per-product per-version immutable specification with `id`, `product_id`, `version`, `effective_from`, `effective_to`, `release_specifications_jsonb` (test / method / acceptance criteria for release), `shelf_life_specifications_jsonb` (test / method / acceptance criteria at end of shelf life), `urs13_record_id` (FK URS-12), `published_e_sig_id`, `previous_hash`, `record_hash`. Drug substance specifications are a separate per-substance per-version register.
- Composition / formula record per DEC-10-06: per-product per-version formulation with `id`, `product_id`, `version`, `effective_from`, `drug_substance_components_jsonb` (substance / amount / role), `excipient_class_summary_jsonb` (binder / disintegrant / lubricant / coating / preservative / etc. with high-level amount), `manufacturing_process_class` (e.g., `direct_compression`, `wet_granulation`, `aseptic_filling`, `lyophilisation`, `chromatography_purification`, `cell_culture_fermentation`), `urs13_change_control_record_id` (URS-13 Change Control linkage). Detailed BOM with raw-material identifiers, supplier identifiers, and lot-level traceability is owned by a forward manufacturing BOM module (exact module-number is a program dependency, not URS-13 which is Change Control).
- Container closure system register per DEC-10-07: per-SKU container-closure record with `container_type` (bottle / blister / vial / ampoule / pre-filled syringe / inhaler / pouch / tube / etc.), `container_material` (HDPE / glass type I / type II / type III / aluminium / etc.), `closure_type` (cap-with-liner / rubber-stopper / aluminium-seal / blister-seal / etc.), `closure_material`, `extractables_leachables_assessment_id` (FK URS-12 study reference), `integrity_test_evidence_id` (FK URS-12), `compatibility_evidence_id` (FK URS-12).
- Storage conditions and shelf-life register per DEC-10-08: per-product per-version storage with `storage_conditions` (`controlled_room_temperature_15_25c` / `refrigerated_2_8c` / `frozen_minus_20c` / `frozen_minus_70c` / `protect_from_light` / `protect_from_moisture` etc. as a structured JSONB), `proposed_shelf_life_months`, `approved_shelf_life_months_per_jurisdiction_jsonb`, `stability_study_evidence_ids_jsonb` (FK URS-07 stability studies), `urs13_record_id`.
- DMF reference linkage per DEC-10-17: per-tenant DMF references with `dmf_holder`, `dmf_type` (`type_ii_drug_substance` / `type_iii_packaging_material` / `type_iv_excipient` / `type_v_clinical_studies` per US classification; equivalent EU ASMF / EU CEP records), `dmf_number`, `regulatory_authority`, `effective_from`, `effective_to`, `last_updated_at`, `evidence_document_id` (FK URS-12).
- Reference Listed Drug (RLD) and bioequivalence reference linkage per DEC-10-18: per-product RLD reference with `rld_product_identifier`, `rld_application_number`, `bioequivalence_evidence_document_id` (FK URS-12 study reference), `regulatory_authority`.
- Product / site manufacturing relationship register per DEC-10-16: per-product per-site relationship with `relationship_type` (`drug_substance_manufacture` / `drug_product_manufacture` / `packaging` / `labelling` / `release` / `storage` / `distribution`), `effective_from`, `effective_to`, `site_id` (FK URS-09), `product_specific_qualification_evidence_id` (FK URS-07 study or URS-12 evidence).
- Product lifecycle state machine per DEC-10-03: `in_development` → `in_registration` → `commercial` → `suspended` ↔ `commercial` → `discontinued`; plus terminal pre-commercial states `withdrawn`. Activation (`in_registration → commercial`) requires evidence of regulatory approval; high-risk product types per DEC-10-14 require executive authority co-sign.
- Product URS-13 linkage per DEC-10-11: every specifications version, composition / formula version, container-closure update, and storage / shelf-life update is linked to a URS-13 record; the URS-13 record is the controlling regulatory artefact.
- Cross-product relationships per DEC-10-12: `successor_of_product` (where a new SKU / formulation supersedes an older one); `bioequivalence_reference` (per DEC-10-18); `co-marketed` (where two tenants market the same product under different brands); `licensed_in` (where the product is licensed in from a partner).
- Product-bound regulated-record discovery per DEC-10-10: for every product, the platform computes the set of regulated records whose URS-03 active scope intersects the product within a configurable window (default rolling 24 months for active discovery; full lifetime for inspection / archive surface).
- Periodic product review (PPR) support: dashboard surfaces the regulated records, deviation summary, batch yield trend, complaint trend, OOS frequency, and CAPA status for the product per regulatory PPR cadence (annual per 21 CFR Part 211 §211.180(e) and EU GMP Chapter 1).
- Product discontinuation workflow per DEC-10-15: pre-discontinuation gate (every batch of the product still in market is past expiry or recalled; every regulatory dossier is withdrawn or expired; every site / product relationship is terminated); discontinuation attestation electronically signed by RA Lead, Quality Lead, executive authority co-sign for high-risk product types.
- Reports and dashboards: per-tenant product catalogue, per-product dashboard, per-product discovery view, multi-jurisdictional registrations register, specifications version history, container closure register, storage / shelf-life timeline, DMF / RLD reference register, product / site relationships matrix, periodic product review pack, discontinuation register.
- Front-end: product catalogue browser, drug substance creation, drug product creation wizard, SKU creation, registration register management, specification authoring, composition / formula authoring, container closure register, storage / shelf-life register, DMF / RLD reference register, product / site relationship management, lifecycle transitions, periodic product review surface, discontinuation workflow.
- Cross-module wiring: URS-03 consumes product / product_family scope; URS-04 fires product-aware workflows; URS-05 scope-binds Authority Profiles; URS-06 audits every Module 10 lifecycle event; URS-07 references products in study scope; URS-08 tenant lifecycle gate; URS-09 product / site relationship cross-references; URS-12 holds specifications, registration dossiers, URS-13 records, DMF references; URS-30 delivers notifications; URS-35 owns long-term archive.

### 2.2 Out of scope

- Authentication, multi-factor authentication, password policy, session lifecycle (URS-01).
- Permission matrix and base role catalogue (URS-02).
- Active-context resolution and approval-scope check (URS-03; Module 10 provides the product / product_family scope content).
- Workflow templates, runtime, e-signature ceremony, HITL lifecycle (URS-04).
- Authority Profile catalogue, assignments, delegations, SoD (URS-05).
- Audit substrate (URS-06; Module 10 is a major writer).
- Study management (URS-07; Module 10 is consumed for study scope).
- Tenant lifecycle (URS-08; Module 10 mutations gated by tenant `active` state).
- Site catalogue and facility hierarchy (URS-09; Module 10 references sites).
- Document control (URS-12; Module 10 holds linkages to specifications, dossiers, URS-13 records).
- Detailed bill of materials (forward manufacturing BOM module — exact module-number assignment is a program dependency; raw-material-level detail is owned by that forward module, not by URS-13 which is Change Control).
- Supplier qualification (forward URS-11 — Supplier Management).
- Manufacturing batch records (forward URS-23).
- Stability data tables (forward URS-24 Stability; Module 10 captures shelf-life policy and references the URS-07 stability study).
- Domain-specific record semantics (every domain module owns its own state model).
- AI-driven decision-making (explicitly prohibited; AI suggestion paths are advisory only).

### 2.3 Closed launch decisions

| Identifier | Closed launch decision |
|---|---|
| DEC-10-01 | The product hierarchy is exactly four levels at launch: optional `brand` (top, commercial trade name; e.g., "Lipitor"), required `product_family` (umbrella for related products; e.g., atorvastatin calcium family), required `product` (the registered drug-product entity per jurisdiction; e.g., atorvastatin 20 mg tablet US-registered), required `sku` (sellable presentation; e.g., 30-count bottle US market). Drug substance is a separate registry referenced by products. Adding a hierarchy level is a Class 1 change. |
| DEC-10-02 | Drug product types and sub-classifications at launch: substance class drives the type — `small_molecule_chemical` (most generics and innovators), `biological` (recombinant proteins, antibodies), `vaccine` (preventive vaccines), `cell_therapy` (autologous / allogeneic; ATMP class), `gene_therapy` (in-vivo / ex-vivo; ATMP class), `tissue_engineered` (ATMP class), `controlled_substance` (per US DEA / India NDPS / international), `narcotic`, `radiopharmaceutical`, `combination_product`. Vertical classification is independent of substance class and captures `controlled_substance`, `narcotic`, `biologic`, `vaccine`, `atmp`, `radiopharmaceutical` flags that drive executive authority co-sign requirements. Adding a substance class or vertical classification is a Class 1 change. |
| DEC-10-03 | Product lifecycle states are exactly six values: `in_development`, `in_registration`, `commercial`, `suspended`, `discontinued`, plus terminal pre-commercial `withdrawn`. Allowed transitions: `in_development → in_registration`, `in_registration → commercial`, `in_registration → withdrawn`, `in_development → withdrawn`, `commercial → suspended ↔ commercial`, `commercial → discontinued`, `suspended → discontinued`. All other transitions are forbidden. `discontinued → commercial` is forbidden (a re-launched product creates a successor entry referencing the discontinued predecessor). |
| DEC-10-04 | Multi-jurisdictional product registrations register: a single drug product MAY have multiple registrations across jurisdictions; each registration row has its own `regulatory_pathway`, `regulatory_authority`, `application_or_approval_number`, dates, and dossier evidence linkage. The launch list of regulatory pathways is enumerated in §2.1; adding a pathway is a Class 2 change. The product transitions to `commercial` lifecycle state when at least one jurisdiction's registration has `approval_date` populated and is `effective_from` ≤ now. |
| DEC-10-05 | The specifications register is **per-product per-version immutable**; every version is a separate row with `previous_hash` / `record_hash` chain linkage, URS-13 linkage, electronic signature. Drug-substance specifications are a separate per-substance per-version register with the same structural rules. Specification changes propagate forward to in-flight regulated records via snapshot pinning per URS-05 catalogue-version pinning principle applied to specification version. |
| DEC-10-06 | Composition / formula record at launch captures **high-level qualitative-quantitative formulation**: drug substance components with named strength, excipient classes (not raw-material identifiers) with summarised amount, dose form, manufacturing process class. Detailed bill of materials are owned by a forward manufacturing BOM module; the exact module number is a program dependency. URS-13 is Change Control and MUST NOT be referenced as the BOM module. Composition versions are immutable; changes flow through controlled URS-13 (Change Control) linkage. |
| DEC-10-07 | Container closure system register at launch captures container type, container material (e.g., glass type I), closure type, closure material, extractables / leachables assessment evidence reference, integrity test evidence reference, compatibility evidence reference. Detailed packaging-component supplier qualification is in forward URS-11. Per-SKU container closure may differ across markets (e.g., bottle in US; blister in EU). |
| DEC-10-08 | Storage conditions and shelf-life register: structured JSONB representation of storage conditions per the launch list of values (controlled room temperature 15-25°C, refrigerated 2-8°C, frozen -20°C, frozen -70°C, protect from light, protect from moisture, with desiccant, etc.). Shelf life is `proposed_shelf_life_months` (during development / registration) and `approved_shelf_life_months_per_jurisdiction_jsonb` (where regulators may approve different shelf lives in different markets). Stability evidence linked to URS-07 stability studies. |
| DEC-10-09 | Shelf-life policy supports per-jurisdiction values because regulators MAY approve different shelf lives; the platform respects the per-jurisdiction value when computing batch expiry per URS-23 (forward). At launch, Module 10 captures the policy; computation of batch expiry is delegated to URS-23. |
| DEC-10-10 | Product-bound regulated-record discovery is computed by URS-03 active-scope intersection on the `product` and / or `product_family` scope dimensions over a configurable window. Default window for active discovery is rolling 24 months; the inspection / archive surface uses full lifetime from product creation. Discovery is read-only. |
| DEC-10-11 | Every specifications version, composition / formula version, container-closure update, storage / shelf-life update, and registration-status change MUST be linked to a URS-13 record. The URS-13 record is the controlling regulatory artefact; without a linked URS-13 record, the update is rejected with `URS_13_RECORD_REQUIRED`. |
| DEC-10-12 | Cross-product relationships at launch: `successor_of_product`, `bioequivalence_reference`, `co_marketed`, `licensed_in`, `licensed_out`. Adding a relationship type is a Class 2 change. |
| DEC-10-13 | A single drug product may have multiple registrations across jurisdictions with potentially different brand names, different SKU presentations, different specifications appendices, and different shelf lives per DEC-10-04 / DEC-10-09. The Module 10 data model captures this as separate registration rows per jurisdiction, with the underlying drug product and composition shared, and per-jurisdiction overlays on SKU presentation, brand name, and approved shelf life. |
| DEC-10-14 | High-risk product types: substance class `controlled_substance`, `narcotic`, `biological`, `vaccine`, `cell_therapy`, `gene_therapy`, `tissue_engineered`, `radiopharmaceutical`; or vertical classification including any of `controlled_substance`, `narcotic`, `biologic`, `vaccine`, `atmp`, `radiopharmaceutical`. These types require executive authority co-sign at `in_registration → commercial` activation and at `commercial → discontinued`; standard activation co-signs (`final_quality_approver`, `regulatory_oversight_admin`) also apply. The high-risk list is platform-managed; adding to the list is a Class 2 change. |
| DEC-10-15 | Product discontinuation workflow: pre-discontinuation gate requires (a) every batch of the product still in market is past expiry or recalled (per URS-23 / URS-26 forward; at launch represented as the tenant attesting absence of in-market batches), (b) every regulatory dossier is withdrawn or expired (per the registrations register), (c) every site / product manufacturing relationship is terminated, (d) every URS-07 study where the product is in scope is closed or amended, (e) every URS-05 Authority Profile assignment scoped to the product is revoked. Discontinuation attestation electronically signed by RA Lead, Quality Lead, executive authority for high-risk types. |
| DEC-10-16 | Product / site manufacturing relationship register: a single product may have multiple sites for each relationship type (drug-substance manufacture, drug-product manufacture, packaging, labelling, release, storage, distribution); a single site may have multiple relationship types for a single product. Each relationship row has effective dates and product-specific qualification evidence linkage (URS-07 process-validation study or URS-12 evidence). Relationship changes are linked to URS-13 records. |
| DEC-10-17 | DMF reference linkage at launch covers US classification (Type II Drug Substance, Type III Packaging Material, Type IV Excipient, Type V Clinical Studies), EU Active Substance Master File (ASMF), EU Certificate of Suitability (CEP / COS); each reference has holder, number, regulatory authority, dates, and evidence linkage to URS-12. The DMF content itself is not in Verixa; only the reference linkage. |
| DEC-10-18 | Reference Listed Drug (RLD) and bioequivalence reference linkage at launch supports US FDA Orange Book RLD identification, EU reference medicinal product, India CDSCO reference product. Bioequivalence study evidence is linked to URS-07 bioequivalence studies. |
| DEC-10-19 | Forward roadmap deferred capabilities: detailed bill-of-materials (forward manufacturing BOM module; exact module number is a program dependency, not URS-13), supplier qualification (URS-11), batch records (URS-23), stability data tables (URS-24 Stability). Module 10 at launch supports their integration through the high-level composition record, the DMF reference linkage, the URS-07 stability study reference, the product / site manufacturing relationship register, leaving the run-time data to those modules when delivered. |
| DEC-10-20 | Product registration approval evidence MUST be linked to URS-12 (the regulatory approval letter or equivalent). The product cannot transition `in_registration → commercial` without at least one registration row whose `approval_date` is populated AND `dossier_document_ids_jsonb` contains the approval letter document. Bypass returns `APPROVAL_EVIDENCE_REQUIRED`. |

---

## 3. User Roles and Permissions

### 3.1 Architecture

Module 10 consumes Layer 1 (base role) and Layer 2 (permission matrix) from URS-02; consumes the Authority Profile catalogue and resolver from URS-05; consumes the active scope from URS-03. Module 10 owns three administrative surfaces: (a) the per-tenant product catalogue and creation wizards, (b) the per-product detail and management surface, (c) the cross-product relationship management surface. Module 10 layers a **product-level role overlay** for selected high-sensitivity product programs (e.g., pre-launch products with confidential formulations).

### 3.2 Role definitions

The five tenant-level base roles defined by URS-02 (`admin`, `quality_lead`, `reviewer`, `auditor`, `viewer`) and the two cross-tenant platform identities (`platform_admin`, `super_admin`) apply unchanged. Module 10 introduces three **product-level roles** that overlay base roles per DEC-10-14 high-sensitivity programs:

| Product role | Description | Cardinality per product |
|---|---|---|
| `product_owner` | The named accountable user for the product master-data record; approves specifications, formulation, registrations, lifecycle transitions. | Exactly 1 (when product is `in_registration` or beyond) |
| `product_quality_lead` | Named QA accountable user for the product; co-signs specifications, URS-13 records, periodic product reviews, recall decisions. | Exactly 1 (when product is `in_registration` or beyond) |
| `product_member` | A user with explicit access to a high-sensitivity product under access overlay. | 0 or more |

`product_owner` and `product_quality_lead` are also tenant base-role `admin` or `quality_lead` users; the product-level role is an overlay assigning per-product accountability.

### 3.3 Authority Profiles consumed by Module 10

| Authority Profile (consumed) | Module 10 action gated |
|---|---|
| `tenant_admin_authority` | Read product catalogue; create products of any type the tenant has activated; configure tenant-level product taxonomy preferences. |
| `final_quality_approver` | Co-sign specification version publication; co-sign URS-13 linked to specifications, composition, container closure, storage / shelf-life. |
| `regulatory_oversight_admin` | Co-sign registration row creation / approval logging; co-sign discontinuation; co-sign DMF / RLD reference creation. |
| `validation_approver` | Co-sign product / site relationship creation where qualification evidence (URS-07 process validation) is referenced. |
| `recall_decision_authority` | Co-sign product suspension where reason is recall-related; co-sign suspension release. |
| executive authority | Co-sign activation for high-risk product types (DEC-10-14); co-sign discontinuation for high-risk types; co-sign return-to-commercial from suspension when reason is regulatory or recall-related. |
| `cross_tenant_collaboration_authority` | Visibility of partner-tenant products within URS-07 collaboration grants. |

### 3.4 Segregation-of-Duties rules consumed by Module 10

| SoD rule (consumed from URS-05) | Module 10 application |
|---|---|
| `AUTHOR_NEQ_APPROVER` | The user who created a product cannot also activate it; activation approver MUST be a different user. |
| `REVIEWER_NEQ_FINAL_APPROVER` | A reviewer of a specification version cannot also be the `final_quality_approver` who signs publication. |
| `PRODUCT_OWNER_NEQ_QUALITY_LEAD` (Tier 1, product-specific) | The `product_owner` and `product_quality_lead` MUST be distinct users. |
| `RECALL_DECISION_INDEPENDENT` (Tier 1, product-specific) | A user named in the precipitating quality event cannot be the sole signer of the recall / suspension decision; an independent `recall_decision_authority` is mandatory. |

### 3.5 Worked examples

#### Worked example A — Generic atorvastatin product creation

PharmaCorp creates a generic atorvastatin product. The QA Director (with `tenant_admin_authority`) creates the drug substance "atorvastatin calcium" referencing the USP monograph and the API supplier's DMF; substance class `small_molecule_chemical`. She then creates the drug product "atorvastatin 20 mg tablet" referencing the drug substance, dose form `tablet`, route `oral`, strength 20 mg; product family "atorvastatin calcium family". Three SKUs are created: 30-count bottle US, 90-count bottle US, 28-count blister EU. The product moves to state `in_development`. The R&D and formulation team author the high-level composition (atorvastatin calcium 21.7 mg = 20 mg base; microcrystalline cellulose; lactose monohydrate; crospovidone; magnesium stearate; film coat; manufacturing process class `direct_compression`); composition v1.0 published with `final_quality_approver` co-sign. The container closure system is registered per SKU. The storage conditions are set: controlled room temperature 15-25°C, protect from moisture. Stability studies under URS-07 produce 24-month proposed shelf life. The team submits an ANDA to FDA referencing the RLD (Lipitor); the registration row is created with `regulatory_pathway = anda`, `regulatory_authority = fda`, `application_or_approval_number = ANDA-201234`. State moves to `in_registration`. After 18 months, FDA approves; the approval letter is uploaded to URS-12; the registration row's `approval_date` is populated. PharmaCorp's `regulatory_oversight_admin` co-signs the approval logging. The product is ready for activation. Standard activation flow (non-high-risk; small molecule generic): `product_owner` (independent of creator per `AUTHOR_NEQ_APPROVER`) signs activation; `final_quality_approver` co-signs; state moves to `commercial`. URS-06 captures `PRODUCT_ACTIVATED`.

#### Worked example B — Biologic product activation with executive authority co-sign

BiotechPharma develops a recombinant antibody product. Substance class `biological`; vertical classification includes `biologic`. Per DEC-10-14, this is a high-risk product type. After clinical Phase 3 completes, the team submits a BLA to FDA; FDA approves; the registration row is logged. At activation, the standard flow plus executive authority co-sign and `regulatory_oversight_admin` co-sign are required; the executive authority reviews the product activation pack (BLA approval letter, biological substance master file reference, production-cell-line qualification per URS-07, US market access plan) and electronically co-signs with multi-factor step-up. State moves to `commercial`.

#### Worked example C — Specification version update through URS-13

The QA team identifies an opportunity to add a new impurity test method that is more sensitive than the current method. A URS-13 is opened; the new method is validated under URS-07 method-validation study; the specification is updated. The new specification version v2.0 is created in Module 10 referencing the URS-13 record; previous version v1.0 is marked `superseded_by_v2`; the `published_e_sig_id` is captured; `final_quality_approver` co-signs. Per DEC-10-05 / URS-05 catalogue-version-pinning principle, in-flight regulated decisions made under v1.0 remain pinned to v1.0; new decisions reference v2.0 from `effective_from` forward.

#### Worked example D — Multi-jurisdictional registration

PharmaCorp wants to launch the same generic atorvastatin in EU. The product remains the same drug substance and composition; a new registration row is created with `regulatory_pathway = ma`, `regulatory_authority = ema`, dossier referenced. EU registration requires per-EU labeling and a different SKU presentation (28-count blister); the SKU is added to the registry with `market_jurisdiction = eu`. Each market's shelf life is captured: US approves 24 months; EU approves 24 months; India approves 18 months (CDSCO). The product remains `commercial` after the first jurisdiction approved; subsequent jurisdictions add registration rows.

#### Worked example E — Product / site manufacturing relationship

PharmaCorp manufactures the drug substance at their API site (Site A); the drug product at their tablet manufacturing site (Site B); packages at Site B; releases for US market at Site B's QP/QA function; releases for EU market at a contracted EU release site (Site C, owned by a partner tenant via URS-07 collaboration grant). Each relationship is captured in Module 10's product / site relationship register with the appropriate type and effective dates. Process-validation evidence per relationship type is linked from URS-07.

#### Worked example F — Product suspension for batch recall

A batch of atorvastatin 20 mg tablets is recalled due to a contamination finding. The `product_quality_lead` opens the suspension surface; provides reason (`recall`); references the recall decision record; signs; `recall_decision_authority` co-signs (`RECALL_DECISION_INDEPENDENT` ensures the signer is not named in the precipitating quality event). State moves to `suspended`; URS-30 notifies all members; cross-product relationships (e.g., active studies referencing the product) flagged. After investigation closes and CAPA is implemented, the suspension is released with executive authority co-sign per DEC-10-14 (high-risk-or-not, recall-related returns require Founder).

#### Worked example G — Product discontinuation workflow

After 12 years on the market, an older formulation is being phased out in favour of a successor product. The `product_owner` opens the discontinuation workflow. Pre-discontinuation gate runs: every in-market batch is past expiry or recalled — pass; every registration is withdrawn at the relevant authorities — three of four are withdrawn, one (India) is still active and must be addressed before continuing; every site / product relationship is terminated — two relationships are still active and must be terminated. The team resolves the blockers: India dossier withdrawn through CDSCO; site relationships terminated through URS-13 records. Gate clears. RA Lead, Quality Lead, and Founder (since this is a controlled-substance product) co-sign the discontinuation attestation. State moves to `discontinued`. The successor product is already `commercial`.

#### Worked example H — DMF reference for API supplier

A product references its API supplier's Type II DMF filed with FDA. The DMF reference is captured in Module 10 with holder = API supplier name, type = Type II Drug Substance, DMF number, regulatory authority = FDA, evidence (the DMF reference letter from the supplier authorising Verixa's tenant to reference the DMF). When the API supplier updates the DMF (e.g., changes synthesis route), URS-30 alerts the tenant; the tenant reviews and updates the linkage with a new evidence document and last-updated date.

### 3.6 Role-permission matrix (Module 10 administrative surface only)

| Action (within Module 10) | viewer | reviewer | quality_lead | auditor | admin | platform_admin | super_admin | Founder | Authority Profile / Product role |
|---|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|---|
| Read product catalogue (own tenant) | — | ✓ | ✓ | ✓ | ✓ | support / break-glass only | support / break-glass only | ✓ | — |
| Read partner-tenant product (within URS-07 grant) | — | study-role | study-role | study-role | study-role | — | — | — | URS-07 collaboration grant |
| Create drug substance | — | — | ✓ + sign | — | ✓ + sign | support / break-glass only | support / break-glass only | — | `tenant_admin_authority` |
| Create drug product (non-high-risk) | — | — | ✓ + sign | — | ✓ + sign | support / break-glass only | support / break-glass only | — | `tenant_admin_authority` |
| Create drug product (high-risk per DEC-10-14) | — | — | ✓ + sign | — | ✓ + sign | support / break-glass only | support / break-glass only | — | `tenant_admin_authority` (system flags the product as high-risk; executive authority co-sign is required only at commercial activation, recall / regulatory return-to-commercial, and high-risk discontinuation — not at creation) |
| Create SKU | — | — | ✓ + sign | — | ✓ + sign | support / break-glass only | support / break-glass only | — | `tenant_admin_authority` |
| Publish specification version | — | — | product_quality_lead + sign + final_quality_approver co-sign | — | product_quality_lead + sign + final_quality_approver co-sign | — | — | — | `product_quality_lead` + `final_quality_approver` |
| Publish composition version | — | — | product_quality_lead + sign + final_quality_approver co-sign | — | product_quality_lead + sign + final_quality_approver co-sign | — | — | — | `product_quality_lead` + `final_quality_approver` |
| Update container closure | — | — | product_quality_lead + sign + final_quality_approver co-sign | — | product_quality_lead + sign + final_quality_approver co-sign | — | — | — | `product_quality_lead` + `final_quality_approver` |
| Update storage / shelf-life | — | — | product_quality_lead + sign + final_quality_approver co-sign | — | product_quality_lead + sign + final_quality_approver co-sign | — | — | — | `product_quality_lead` + `final_quality_approver` |
| Register / log regulatory dossier | — | — | — | — | product_owner + sign + RA co-sign | — | — | — | `product_owner` + `regulatory_oversight_admin` |
| Log registration approval | — | — | — | — | product_owner + sign + RA co-sign | — | — | — | `product_owner` + `regulatory_oversight_admin` |
| Submit product for in-registration | — | — | product_owner + sign | — | product_owner + sign | — | — | — | `product_owner` |
| Activate product (non-high-risk) | — | — | independent of creator + sign | — | independent of creator + sign | — | — | — | `product_owner` (independent); `final_quality_approver` co-sign |
| Activate product (high-risk per DEC-10-14) | — | — | — | — | — | — | — | ✓ + sign + MFA (executive authority co-sign) | `product_owner` + `final_quality_approver` + `regulatory_oversight_admin` + executive authority |
| Suspend product (non-recall) | — | — | product_owner + sign | — | product_owner + sign | — | — | — | `product_owner` |
| Suspend product (recall-related) | — | — | product_owner + sign + recall_decision_authority co-sign + executive authority | — | product_owner + sign + recall_decision_authority co-sign + executive authority | — | — | ✓ + sign + MFA | `product_owner` + `recall_decision_authority` + executive authority |
| Release product hold | — | — | product_owner + sign + RA / recall co-sign | — | product_owner + sign + RA / recall co-sign | — | — | ✓ + sign + MFA for recall-related | `product_owner` + `regulatory_oversight_admin` (+ executive authority for recall) |
| Initiate product discontinuation | — | — | product_owner + sign | — | product_owner + sign | — | — | — | `product_owner` |
| Sign discontinuation attestation | — | — | product_owner + product_quality_lead + RA + executive authority for high-risk | — | product_owner + product_quality_lead + RA | — | — | ✓ + sign + MFA for high-risk | `product_owner` + `product_quality_lead` + `regulatory_oversight_admin` + executive authority for high-risk |
| Manage product / site relationships | — | — | product_owner + sign + validation co-sign | — | product_owner + sign + validation co-sign | — | — | — | `product_owner` + `validation_approver` |
| Register DMF reference | — | — | — | — | product_owner + sign + RA co-sign | — | — | — | `product_owner` + `regulatory_oversight_admin` |
| Register RLD / bioequivalence reference | — | — | — | — | product_owner + sign + RA co-sign | — | — | — | `product_owner` + `regulatory_oversight_admin` |
| Configure product-level access overlay | — | — | — | — | ✓ + sign | support / break-glass only | support / break-glass only | — | `tenant_admin_authority` |
| Add / remove product_member (when overlay enabled) | — | — | product_owner + sign | — | product_owner + sign | — | — | — | `product_owner` |
| Read per-product discovery view | — | product-role | product-role | ✓ | product-role or `audit:read` | support / break-glass only | support / break-glass only | ✓ | product-role overlay |
| Export per-product discovery | — | — | — | — | product_owner + sign + `audit:export` | support / break-glass only | support / break-glass only | — | `product_owner` + `audit:export` |
| Run periodic product review | — | — | product_quality_lead + sign | — | product_quality_lead + sign | — | — | — | `product_quality_lead` |

External identities (URS-01 §3.2.3) MAY be added as `product_observer`-equivalent (read of non-confidential content only) but cannot hold `product_owner`, `product_quality_lead`, or `product_member`-with-overlay roles.

#### 3.6.1 Platform-identity tenant actions — controlled support / break-glass posture

Per URS-02 §3.6.1, URS-08 §3.6.1, platform identities MAY perform tenant-scoped Module 10 actions only under controlled support / break-glass posture: target tenant identifier, business-justification reason, support-ticket / customer-reference identifier, electronic signature, `PLATFORM_TENANT_ACCESS_USED` audit emit, SOC alert, customer notification within 24 hours per privacy policy.

---

## 4. End-to-End User Journeys

### J-01 — Drug substance creation

- Trigger: tenant administrator creates a new drug substance.
- Steps: opens substance registry; creates substance with INN / chemical name / synonyms / CAS / molecular formula / monograph references; substance class; controlled-substance schedule where applicable; signs; URS-30 informs RA / R&D leads.
- Audit: `DRUG_SUBSTANCE_CREATED`.

### J-02 — Drug product creation (non-high-risk)

- Trigger: tenant administrator creates a generic small-molecule drug product.
- Steps: opens product registry; creates product referencing drug substance; dose form; route; strength; product family; signs; product enters `in_development`.
- Audit: `DRUG_PRODUCT_CREATED`.

### J-03 — Drug product creation (high-risk per DEC-10-14)

- Trigger: tenant administrator creates a biologic / vaccine / cell therapy / gene therapy / controlled-substance / radiopharmaceutical product.
- Steps: standard creation flow plus Founder + `regulatory_oversight_admin` co-signs at activation later; high-risk flag visible.
- Audit: `DRUG_PRODUCT_CREATED` with `high_risk_flag = true`.

### J-04 — SKU creation

- Trigger: product created; team adds market-specific SKUs.
- Steps: per-SKU form (pack size, presentation, market jurisdiction, GTIN/UPC, NDC/EU PC); signs.
- Audit: `SKU_CREATED`.

### J-05 — Specification version publication

- Trigger: R&D / QA team publishes a new specification version.
- Steps: opens specification authoring; creates version referencing URS-13 record; enters release-spec and shelf-life-spec criteria; signs; `final_quality_approver` co-signs; previous version marked `superseded_by`; new version effective from `effective_from`.
- Audit: `SPECIFICATION_VERSION_PUBLISHED`.

### J-06 — Composition / formula version publication

- Trigger: R&D updates the formulation.
- Steps: opens composition authoring; creates version referencing URS-13 record; enters drug-substance components, excipient classes, manufacturing process class; signs; `product_quality_lead` co-signs.
- Audit: `COMPOSITION_VERSION_PUBLISHED`.

### J-07 — Container closure system update

- Trigger: packaging change.
- Steps: opens container-closure register; updates container type / material / closure type / extractables-leachables evidence references; signs; `final_quality_approver` co-signs.
- Audit: `CONTAINER_CLOSURE_UPDATED`.

### J-08 — Storage / shelf-life update

- Trigger: stability study updates shelf-life.
- Steps: opens storage / shelf-life register; updates conditions / proposed shelf life / per-jurisdiction approved shelf life; references stability study; signs; `final_quality_approver` co-signs.
- Audit: `STORAGE_SHELF_LIFE_UPDATED`.

### J-09 — Regulatory dossier registration logged

- Trigger: tenant submits dossier to regulatory authority.
- Steps: opens registrations register; creates row with pathway / authority / number / submission date / dossier evidence reference; `regulatory_oversight_admin` co-signs.
- Audit: `REGISTRATION_LOGGED`.

### J-10 — Submit product for in-registration

- Trigger: at least one regulatory submission complete.
- Steps: `product_owner` submits; state moves to `in_registration`; URS-30 informs RA leads.
- Audit: `PRODUCT_MOVED_TO_IN_REGISTRATION`.

### J-11 — Registration approval logged

- Trigger: regulatory authority approves dossier.
- Steps: `product_owner` updates registration row with approval letter (URS-12 link), approval date; `regulatory_oversight_admin` co-signs; state of registration row becomes `approved`.
- Audit: `REGISTRATION_APPROVAL_LOGGED`.

### J-12 — Product activation (non-high-risk)

- Trigger: at least one registration approval logged.
- Steps: `product_owner` (independent of creator) signs activation; `final_quality_approver` co-signs; state moves to `commercial`.
- Audit: `PRODUCT_ACTIVATED`.

### J-13 — Product activation (high-risk)

- Trigger: high-risk type with registration approval.
- Steps: standard activation plus `regulatory_oversight_admin` co-sign + executive authority co-sign with MFA step-up; state moves to `commercial`.
- Audit: `PRODUCT_ACTIVATED` with `high_risk_cosigns_recorded`.

```mermaid
flowchart TD
  A([Registration approved; ready for commercial]) --> B{High-risk type?}
  B -- no --> C[product_owner signs activation independent of creator]
  C --> D[final_quality_approver co-signs]
  D --> E[PRODUCT_ACTIVATED]
  B -- yes --> F[product_owner + final_quality_approver + regulatory_oversight_admin + executive authority co-signs with MFA]
  F --> G[PRODUCT_ACTIVATED with high_risk_cosigns_recorded]
```

### J-14 — Product / site manufacturing relationship registered

- Trigger: tenant assigns sites to product manufacturing roles.
- Steps: opens product / site relationships; selects site; selects relationship type; references qualification evidence (URS-07 study or URS-12); signs; `validation_approver` co-signs.
- Audit: `PRODUCT_SITE_RELATIONSHIP_REGISTERED`.

### J-15 — DMF reference registered

- Trigger: tenant references API supplier's DMF.
- Steps: opens DMF register; creates row with holder / type / number / authority / evidence; signs; `regulatory_oversight_admin` co-signs.
- Audit: `DMF_REFERENCE_REGISTERED`.

### J-16 — RLD / bioequivalence reference registered

- Trigger: generic product references its RLD.
- Steps: opens RLD register; creates row with RLD identifier / application number / bioequivalence study evidence; signs; `regulatory_oversight_admin` co-signs.
- Audit: `RLD_REFERENCE_REGISTERED`.

### J-17 — Product suspension (recall-related)

- Trigger: batch recall triggers product hold.
- Steps: `product_owner` opens suspension; provides reason `recall`; references recall decision; signs; `recall_decision_authority` co-signs (independent of precipitating event); executive authority co-signs; state moves to `suspended`; cross-tenant studies notified.
- Audit: `PRODUCT_SUSPENDED` with reason `recall`.

### J-18 — Product suspension (manufacturing hold)

- Trigger: manufacturing investigation triggers product hold.
- Steps: `product_owner` opens suspension; provides reason `manufacturing_hold`; signs; `regulatory_oversight_admin` co-signs; state moves to `suspended`.
- Audit: `PRODUCT_SUSPENDED` with reason `manufacturing_hold`.

### J-19 — Product return-to-commercial

- Trigger: hold reason resolved.
- Steps: `product_owner` submits resolution evidence; `regulatory_oversight_admin` (or `recall_decision_authority` for recall-derived holds) co-signs; executive authority co-signs for recall-derived; state returns to `commercial`.
- Audit: `PRODUCT_RETURNED_TO_COMMERCIAL`.

### J-20 — Periodic product review

- Trigger: annual or per-regulatory-framework PPR cadence.
- Steps: `product_quality_lead` opens PPR surface; reviews dashboard summary (deviations, OOS, batch yield trend, complaint trend, CAPA status); attests review; archived for audit per 21 CFR Part 211 §211.180(e).
- Audit: `PERIODIC_PRODUCT_REVIEW_COMPLETED`.

### J-21 — Product / site relationship terminated

- Trigger: tenant ends a product / site manufacturing relationship.
- Steps: `product_owner` opens relationship register; selects active relationship; provides reason; references URS-13 record; signs; effective_to set; URS-30 informs site head.
- Audit: `PRODUCT_SITE_RELATIONSHIP_TERMINATED`.

### J-22 — Product discontinuation initiated

- Trigger: business decision; end-of-product-life.
- Steps: `product_owner` opens discontinuation; system runs pre-discontinuation gate per DEC-10-15.
- Audit: `PRODUCT_DISCONTINUATION_INITIATED`.

### J-23 — Pre-discontinuation gate blocks

- Trigger: open in-market batches / active dossiers / active site relationships / open studies / open delegations.
- Steps: gate returns specific blocker codes with deep-links; tenant resolves each.
- Audit: one of `PRODUCT_DISCONTINUATION_BLOCKED_BY_OPEN_BATCHES`, `PRODUCT_DISCONTINUATION_BLOCKED_BY_OPEN_REGISTRATIONS`, `PRODUCT_DISCONTINUATION_BLOCKED_BY_OPEN_SITE_RELATIONSHIPS`, `PRODUCT_DISCONTINUATION_BLOCKED_BY_OPEN_STUDIES`, `PRODUCT_DISCONTINUATION_BLOCKED_BY_OPEN_DELEGATIONS` per blocker category.

### J-24 — Product discontinuation completion

- Trigger: gate cleared.
- Steps: `product_owner` + `product_quality_lead` + `regulatory_oversight_admin` + executive authority for high-risk sign discontinuation attestation; state moves to `discontinued`; historical records preserved.
- Audit: `PRODUCT_DISCONTINUED`.

### J-25 — Successor product creation

- Trigger: tenant launches a successor formulation replacing a discontinued product.
- Steps: tenant administrator creates new product referencing `successor_of_product_id` of the discontinued predecessor; standard creation flow.
- Audit: `SUCCESSOR_PRODUCT_CREATED`.

### J-26 — Cross-tenant study reference to partner-tenant product

- Trigger: cross-tenant study (URS-07) references a partner-tenant product.
- Steps: per URS-07 collaboration grant; partner-tenant product visible only within per-grant scope; sponsor-tenant members cannot see partner-tenant products outside grant.
- Audit: per URS-07 access; URS-06 emits `CROSS_TENANT_STUDY_ACCESS_USED`.

### J-27 — Product-level access overlay

- Trigger: pre-launch product with confidential novel formulation.
- Steps: tenant administrator enables overlay; defines `product_member` roster; non-members denied with `403 PRODUCT_CONFIDENTIAL_NOT_MEMBER`.
- Audit: `PRODUCT_ACCESS_OVERLAY_ENABLED`.

### J-28 — Auditor reads product discovery as inspection-ready evidence

- Trigger: regulatory inspection or annual product review.
- Steps: auditor opens per-product discovery view; full lifetime range; exports through Controlled Approval Modal; receives PDF + JSON bundle with integrity manifest.
- Audit: `PRODUCT_DISCOVERY_EXPORTED`.

---

## 5. Front-End Expected State

### 5.1 Routes

| Route | Surface | Role / Authority gate | Notes |
|---|---|---|---|
| `/products` | Product catalogue browser | tenant base role + `audit:read` | filterable by family, type, lifecycle, jurisdiction, vertical |
| `/products/new` | Drug product creation wizard | `tenant_admin_authority` | high-risk flag visible |
| `/products/:id` | Per-product detail (Overview / Composition / Specifications / Container Closure / Storage / Registrations / SKUs / Sites / DMF / RLD / Discovery / Lifecycle / Periodic Review) | product-role overlay or base role | tabbed |
| `/products/:id/specifications` | Specifications register | `product_quality_lead` for write; auditor for read | versioned |
| `/products/:id/composition` | Composition / formula authoring | `product_quality_lead` for write; auditor for read | versioned |
| `/products/:id/skus` | SKU registry | `product_owner` for write | per market |
| `/products/:id/registrations` | Multi-jurisdictional registrations | `product_owner` + RA co-sign | per pathway / authority |
| `/products/:id/container-closure` | Container closure system register | `product_quality_lead` + final QA co-sign | per SKU |
| `/products/:id/storage-shelf-life` | Storage / shelf-life policy | `product_quality_lead` + final QA co-sign | per jurisdiction |
| `/products/:id/sites` | Product / site manufacturing relationships | `product_owner` + validation co-sign | per relationship type |
| `/products/:id/dmf-references` | DMF reference register | `product_owner` + RA co-sign | per DMF |
| `/products/:id/rld-references` | RLD / bioequivalence references | `product_owner` + RA co-sign | per RLD |
| `/products/:id/discovery` | Product-bound regulated record discovery view | product-role or `audit:read` | rolling 24m default |
| `/products/:id/periodic-review` | Periodic product review surface | `product_quality_lead` | annual |
| `/products/:id/lifecycle` | Lifecycle transitions | `product_owner` + co-signers | high-risk requires Founder |
| `/products/:id/discontinue` | Discontinuation workflow | `product_owner` + `product_quality_lead` + RA + executive authority for high-risk | gate, attestation |
| `/products/:id/access-overlay` | Product-level access overlay management | `tenant_admin_authority` | enable / disable + roster |
| `/admin/products/drug-substances` | Drug substance registry | `tenant_admin_authority` | per-tenant |
| `/admin/products/brands` | Brand registry | `tenant_admin_authority` | optional commercial brand grouping |
| `/admin/products/product-families` | Product family registry | `tenant_admin_authority` | umbrella for related products |

### 5.2 Component requirements

- **Product catalogue browser** — high-density list with family / type chips, lifecycle badges, jurisdiction flags, vertical chips (`controlled_substance`, `narcotic`, `biologic`, `vaccine`, `atmp`, `radiopharmaceutical`); filters by family, lifecycle, market jurisdiction, vertical, last-PPR date.
- **Drug product creation wizard** — multi-step: drug substance reference → product identity → dose form / route / strength → product family → vertical classification → review → submit. High-risk flag visible.
- **Per-product detail (tabbed)** — Overview, Composition, Specifications, Container Closure, Storage / Shelf Life, Registrations, SKUs, Sites, DMF / RLD references, Discovery, Periodic Review, Lifecycle. Lifecycle banner across top. High-risk warning visible.
- **Specifications authoring** — version timeline with diff between versions; release-spec and shelf-life-spec separate sections; references monographs; URS-13 linkage.
- **Composition / formula authoring** — drug substance components with amounts and roles; excipient class summary; manufacturing process class; version timeline with diff.
- **Container closure register** — per-SKU table with container type / material / closure / E&L / integrity / compatibility evidence references.
- **Storage / shelf-life register** — structured storage conditions; per-jurisdiction approved shelf life; stability study evidence references; URS-13 linkage.
- **Registrations register** — per-jurisdiction table with pathway / authority / numbers / dates / dossier evidence; expiry / renewal calendar.
- **SKU registry** — per-market presentation table; commercial barcodes (GTIN/UPC/NDC/EU PC).
- **Product / site relationships matrix** — visual matrix of products × sites with per-relationship-type badges.
- **DMF / RLD reference registers** — per-reference rows with holder / type / numbers / authority / evidence.
- **Discovery view** — paginated list of records intersecting product scope; export with electronic signature.
- **Periodic product review surface** — dashboard summary of deviations / OOS / batches / complaints / CAPAs; reviewer attestation flow; annual cadence default.
- **Lifecycle transitions surface** — per-transition Controlled Approval Modal with appropriate co-sign requirements.
- **Discontinuation surface** — pre-discontinuation gate; remediation list; attestation wizard with co-signatures.
- **Product-level access overlay** — toggle + roster management.

### 5.3 Accessibility and internationalisation

- WCAG 2.1 Level AA across every Module 10 surface.
- Substance / product / SKU names translated where appropriate; identifiers (`display_id`, `licence_number`, etc.) remain canonical.
- Date / time displayed in user time zone; stored UTC; ISO 8601.
- Cross-tenant content (visible via URS-07 grant) clearly distinguished.

---

## 6. Back-End Expected State

### 6.1 Domain entities

- `drug_substances` — drug substance registry per DEC-10-01.
- `drug_products` — drug product registry per DEC-10-02.
- `skus` — SKU registry per DEC-10-03.
- `brands` — optional commercial brand registry.
- `product_families` — product family registry.
- `product_specifications` — per-product per-version specifications register per DEC-10-05.
- `drug_substance_specifications` — per-substance per-version specifications register.
- `product_compositions` — per-product per-version composition / formula record per DEC-10-06.
- `sku_container_closures` — per-SKU container closure system record per DEC-10-07.
- `product_storage_shelf_life` — per-product per-version storage and shelf-life record per DEC-10-08.
- `product_registrations` — multi-jurisdictional product registrations register per DEC-10-04.
- `drug_master_files` — DMF reference linkage per DEC-10-17.
- `rld_references` — RLD / bioequivalence reference linkage per DEC-10-18.
- `product_site_relationships` — product / site manufacturing relationships per DEC-10-16.
- `cross_product_relationships` — cross-product relationships per DEC-10-12.
- `product_lifecycle_events` — append-only lifecycle transition log.
- `product_member_roster` — product-level access overlay roster.
- `product_discontinuation_runs` — per-discontinuation workflow record.
- `periodic_product_reviews` — per-PPR-cycle attestation record.

### 6.1.1 Diagram 6.1-A — Module 10 entity-relationship overview

```mermaid
erDiagram
  DRUG_SUBSTANCES ||--o{ DRUG_SUBSTANCE_SPECIFICATIONS : has_versions
  DRUG_SUBSTANCES ||--o{ DRUG_MASTER_FILES : referenced_via
  DRUG_PRODUCTS ||--o{ SKUS : presented_as
  DRUG_PRODUCTS ||--o{ PRODUCT_SPECIFICATIONS : has_versions
  DRUG_PRODUCTS ||--o{ PRODUCT_COMPOSITIONS : has_versions
  DRUG_PRODUCTS ||--o{ PRODUCT_STORAGE_SHELF_LIFE : has_versions
  DRUG_PRODUCTS ||--o{ PRODUCT_REGISTRATIONS : registered_via
  DRUG_PRODUCTS ||--o{ PRODUCT_SITE_RELATIONSHIPS : manufactured_via
  DRUG_PRODUCTS ||--o{ CROSS_PRODUCT_RELATIONSHIPS : related_to
  DRUG_PRODUCTS ||--o{ PRODUCT_LIFECYCLE_EVENTS : lifecycle_log
  DRUG_PRODUCTS ||--o| PRODUCT_MEMBER_ROSTER : access_overlay
  DRUG_PRODUCTS ||--o| PRODUCT_DISCONTINUATION_RUNS : discontinued_via
  DRUG_PRODUCTS ||--o{ PERIODIC_PRODUCT_REVIEWS : reviewed_via
  DRUG_PRODUCTS ||--o{ RLD_REFERENCES : compared_to
  PRODUCT_COMPOSITIONS }o--o{ DRUG_SUBSTANCES : uses
  SKUS ||--o| SKU_CONTAINER_CLOSURES : packaged_in
  PRODUCT_SPECIFICATIONS }o--|| URS_12_DOCUMENTS : change_control
  PRODUCT_REGISTRATIONS }o--|| URS_12_DOCUMENTS : dossier_evidence
  DRUG_PRODUCTS }o--o| BRANDS : branded_under
  DRUG_PRODUCTS }o--|| PRODUCT_FAMILIES : grouped_in
  PRODUCT_SITE_RELATIONSHIPS }o--|| URS_09_SITES : site_reference
```

### 6.1.2 Diagram 6.1-B — Product lifecycle state machine

```mermaid
stateDiagram-v2
  [*] --> in_development : DRUG_PRODUCT_CREATED
  in_development --> in_registration : PRODUCT_MOVED_TO_IN_REGISTRATION
  in_development --> withdrawn : PRODUCT_WITHDRAWN
  in_registration --> commercial : PRODUCT_ACTIVATED
  in_registration --> withdrawn : PRODUCT_WITHDRAWN
  commercial --> suspended : PRODUCT_SUSPENDED
  suspended --> commercial : PRODUCT_RETURNED_TO_COMMERCIAL
  commercial --> discontinued : PRODUCT_DISCONTINUED
  suspended --> discontinued : PRODUCT_DISCONTINUED
  withdrawn --> [*]
  discontinued --> [*]
```

### 6.1.3 Diagram 6.1-C — Product scope feeds URS-03 active scope intersection

```mermaid
flowchart LR
  M10[Module 10 product / product_family identifiers + active window] --> U3[URS-03 active scope resolver]
  R[Regulated record with product or product_family in scope] --> U3
  U3 --> I{Intersection within product active window?}
  I -- yes --> D[Discoverable from product]
  I -- no --> ND[Not discoverable]
```

### 6.1.4 Diagram 6.1-D — Multi-jurisdictional registration model

```mermaid
graph LR
  DP[Drug Product Atorvastatin 20mg Tablet] --> R1[Registration ANDA-201234 FDA]
  DP --> R2[Registration MA-EU-XXXX EMA]
  DP --> R3[Registration CDSCO Form 26 India]
  DP --> R4[Registration PMDA Application Japan]
  R1 --> S1[SKU 30-count bottle US market]
  R1 --> S2[SKU 90-count bottle US market]
  R2 --> S3[SKU 28-count blister EU market]
  R3 --> S4[SKU 100-count strip India market]
  R4 --> S5[SKU 30-count blister Japan market]
  DP --> COMP[Composition shared]
  DP --> SPEC[Specifications shared baseline; per-jurisdiction appendices]
  DP --> SLT1[Shelf life US 24 months]
  DP --> SLT2[Shelf life EU 24 months]
  DP --> SLT3[Shelf life India 18 months]
  DP --> SLT4[Shelf life Japan 36 months]
```

### 6.2 Data model requirements

| Entity | Purpose | Key fields | Required | Unique | Tenant isolation | Versioning | Retention | Soft-delete | Audit | E-sig link |
|---|---|---|---|---|---|---|---|---|---|---|
| `drug_substances` | Drug substance registry | `id`, `tenant_id`, `name`, `synonyms_jsonb`, `cas_number`, `molecular_formula`, `molecular_weight`, `chemical_structure_reference_document_id`, `monograph_references_jsonb`, `substance_class`, `controlled_substance_schedule_jsonb`, `dmf_references_jsonb`, `lifecycle_state`, `created_by`, `created_at` | core required | unique(`tenant_id`, `name`); unique(`tenant_id`, `cas_number`) where set | RLS on `tenant_id` | stateful | per regulatory framework retention | yes (retired preserved) | yes | yes |
| `drug_products` | Drug product registry per DEC-10-02 | `id`, `tenant_id`, `display_name`, `display_id`, `brand_id` (nullable), `product_family_id`, `dose_form`, `route_of_administration`, `strength_jsonb`, `therapeutic_area`, `atc_code` (nullable), `vertical_classification_jsonb`, `lifecycle_state`, `created_by`, `created_at`, `commercial_activated_at`, `discontinued_at`, `successor_of_product_id` (nullable), `high_risk_flag` | per state | unique(`tenant_id`, `display_id`); unique(`tenant_id`, `display_name`) | RLS on `tenant_id` | stateful + append-only audit | per regulatory framework retention (typically 25+ years for pharmaceutical products; longer for vaccines / biologics) | yes (discontinued / withdrawn preserved) | yes | yes |
| `skus` | SKU registry | `id`, `tenant_id`, `product_id`, `display_name`, `display_id`, `pack_size`, `pack_size_unit`, `presentation`, `market_jurisdiction`, `gtin_or_upc` (nullable), `ndc_code` (nullable), `eu_pc` (nullable), `lifecycle_state`, `created_at`, `created_by` | core required | unique(`tenant_id`, `display_id`); unique(`product_id`, `presentation`, `market_jurisdiction`) | RLS via product | stateful | per product retention | yes (retired preserved) | yes | yes |
| `brands` | Optional commercial brand registry | `id`, `tenant_id`, `brand_name`, `created_at`, `created_by` | core required | unique(`tenant_id`, `brand_name`) | RLS on `tenant_id` | stateful | per product retention | yes | yes | yes |
| `product_families` | Product family registry | `id`, `tenant_id`, `family_name`, `description`, `created_at`, `created_by` | core required | unique(`tenant_id`, `family_name`) | RLS on `tenant_id` | stateful | per product retention | yes | yes | yes |
| `product_specifications` | Per-product per-version specifications register per DEC-10-05 | `id`, `tenant_id`, `product_id`, `version`, `effective_from`, `effective_to` (nullable), `release_specifications_jsonb`, `shelf_life_specifications_jsonb`, `urs13_record_id` (FK URS-12), `published_e_sig_id`, `final_quality_co_sign_e_sig_id`, `superseded_by_version_id` (nullable), `previous_hash`, `record_hash` | all required | unique(`product_id`, `version`); unique(`record_hash`) | RLS via product | versioned (immutable) | per product retention | not applicable | yes | yes |
| `drug_substance_specifications` | Per-substance per-version specifications register | `id`, `tenant_id`, `substance_id`, `version`, `effective_from`, `effective_to` (nullable), `specifications_jsonb`, `urs13_record_id`, `published_e_sig_id`, `previous_hash`, `record_hash` | all required | unique(`substance_id`, `version`); unique(`record_hash`) | RLS via substance | versioned (immutable) | per regulatory framework retention | not applicable | yes | yes |
| `product_compositions` | Per-product per-version composition / formula | `id`, `tenant_id`, `product_id`, `version`, `effective_from`, `effective_to` (nullable), `drug_substance_components_jsonb`, `excipient_class_summary_jsonb`, `manufacturing_process_class`, `urs13_record_id`, `published_e_sig_id`, `previous_hash`, `record_hash` | all required | unique(`product_id`, `version`); unique(`record_hash`) | RLS via product | versioned (immutable) | per product retention | not applicable | yes | yes |
| `sku_container_closures` | Per-SKU container closure system | `id`, `tenant_id`, `sku_id`, `container_type`, `container_material`, `closure_type`, `closure_material`, `extractables_leachables_assessment_id` (FK URS-12), `integrity_test_evidence_id` (FK URS-12), `compatibility_evidence_id` (FK URS-12), `urs13_record_id`, `effective_from`, `effective_to` (nullable), `published_e_sig_id`, `final_quality_co_sign_e_sig_id` | core required | unique active(`sku_id`) | RLS via SKU | stateful + versioned via URS-13 | per product retention | not applicable | yes | yes |
| `product_storage_shelf_life` | Per-product per-version storage / shelf-life | `id`, `tenant_id`, `product_id`, `version`, `effective_from`, `effective_to` (nullable), `storage_conditions_jsonb`, `proposed_shelf_life_months`, `approved_shelf_life_months_per_jurisdiction_jsonb`, `stability_study_evidence_ids_jsonb`, `urs13_record_id`, `published_e_sig_id`, `final_quality_co_sign_e_sig_id`, `previous_hash`, `record_hash` | all required | unique(`product_id`, `version`); unique(`record_hash`) | RLS via product | versioned (immutable) | per product retention | not applicable | yes | yes |
| `product_registrations` | Multi-jurisdictional product registrations | `id`, `tenant_id`, `product_id`, `regulatory_pathway`, `regulatory_authority`, `application_or_approval_number`, `submission_date`, `approval_date` (nullable), `effective_from` (nullable), `effective_to` (nullable), `dossier_document_ids_jsonb`, `current_status`, `created_by`, `regulatory_co_sign_e_sig_id` | core required | unique(`tenant_id`, `regulatory_pathway`, `regulatory_authority`, `application_or_approval_number`) | RLS via product | stateful | retain (long-term) | yes (withdrawn / expired preserved) | yes | yes |
| `drug_master_files` | DMF reference linkage | `id`, `tenant_id`, `dmf_holder`, `dmf_type`, `dmf_number`, `regulatory_authority`, `effective_from`, `effective_to` (nullable), `last_updated_at`, `evidence_document_id` (FK URS-12), `created_by`, `regulatory_co_sign_e_sig_id` | all | unique active(`tenant_id`, `regulatory_authority`, `dmf_number`) | RLS on `tenant_id` | stateful | retain (long-term) | yes | yes | yes |
| `rld_references` | RLD / bioequivalence references | `id`, `tenant_id`, `product_id`, `rld_product_identifier`, `rld_application_number`, `bioequivalence_evidence_document_id` (FK URS-12 study reference), `regulatory_authority`, `created_by`, `regulatory_co_sign_e_sig_id` | all | unique(`product_id`, `regulatory_authority`, `rld_application_number`) | RLS via product | stateful | retain (long-term) | yes | yes | yes |
| `product_site_relationships` | Product / site manufacturing relationships per DEC-10-16 | `id`, `tenant_id`, `product_id`, `site_id` (FK URS-09), `relationship_type`, `effective_from`, `effective_to` (nullable), `product_specific_qualification_evidence_id` (FK URS-07 / URS-12), `urs13_record_id` (FK URS-13 Change Control), `created_e_sig_id`, `validation_co_sign_e_sig_id`, `terminated_at` (nullable), `terminated_e_sig_id` (nullable) | core required | unique active(`product_id`, `site_id`, `relationship_type`) | RLS via product | stateful | retain (long-term) | yes (terminated preserved) | yes | yes |
| `cross_product_relationships` | Cross-product relationships per DEC-10-12 | `id`, `tenant_id`, `from_product_id`, `to_product_id`, `relationship_type`, `rationale`, `effective_from`, `effective_to` (nullable), `created_e_sig_id`, `revoked_at` (nullable), `revoked_e_sig_id` (nullable) | core required | unique active(`from_product_id`, `to_product_id`, `relationship_type`) | RLS via product | stateful | retain (long-term) | yes | yes | yes |
| `product_lifecycle_events` | Append-only lifecycle transition log | `id`, `tenant_id`, `product_id`, `from_state`, `to_state`, `event_code`, `signature_set_jsonb` (derived read snapshot only), `reason_jsonb`, `audit_log_id` (FK URS-06), `triggered_at`, `previous_hash`, `record_hash` | all | unique(`product_id`, `id`); unique(`record_hash`) | RLS via product | append-only | retain (long-term) | not applicable | yes | yes |
| `product_member_roster` | Product-level access overlay roster | `id`, `tenant_id`, `product_id`, `user_id`, `effective_from`, `effective_to` (nullable), `assigned_e_sig_id`, `removed_at` (nullable), `removed_e_sig_id` (nullable) | core required | unique active(`product_id`, `user_id`) | RLS via product | stateful | per product retention | yes | yes | yes |
| `product_discontinuation_runs` | Per-discontinuation workflow record | `id`, `tenant_id`, `product_id`, `initiated_at`, `gate_check_results_jsonb`, `gate_cleared_at`, `attestation_signed_e_sig_ids_jsonb` (product_owner, product_quality_lead, regulatory_oversight_admin, founder for high-risk — derived read snapshot only; authoritative multi-signature evidence is stored in the module signature-slot table), `state`, `discontinued_at` | per state | unique(`product_id`) | RLS via product | stateful | retain (long-term) | not applicable | yes | yes |
| `periodic_product_reviews` | Per-PPR-cycle attestation per regulatory cadence | `id`, `tenant_id`, `product_id`, `review_window_start`, `review_window_end`, `review_dashboard_snapshot_jsonb`, `reviewer_user_id`, `attestation_e_sig_id`, `findings_summary`, `linked_capa_ids_jsonb` | all | unique(`product_id`, `review_window_start`) | RLS via product | append-only | retain (long-term) | not applicable | yes | yes |

### 6.3 API requirements

#### 6.3.1 Substance, product, SKU registries

| Method | Endpoint | Actor | Request | Response | Permission | Audit | Error codes |
|---|---|---|---|---|---|---|---|
| GET | `/products` | tenant-scoped | filters | `Product[]` | tenant base role + `audit:read` | `PRODUCT_CATALOGUE_VIEW_OPENED` once per session | none |
| GET | `/products/:id` | tenant-scoped or partner-tenant per URS-07 grant | none | full product detail | product-role overlay or grant | none | `NOT_FOUND` |
| POST | `/admin/products/drug-substances` | administrator | substance fields (electronic-signed) | `201` | `tenant_admin_authority` | `DRUG_SUBSTANCE_CREATED` | validation |
| POST | `/products` | administrator | product fields (electronic-signed) | `201` | `tenant_admin_authority` (system flags the product as high-risk where applicable; executive authority co-sign is required only at commercial activation, recall / regulatory return-to-commercial, or high-risk discontinuation — not at creation) | `DRUG_PRODUCT_CREATED` | validation |
| POST | `/products/:id/skus` | administrator | SKU fields (electronic-signed) | `201` | `tenant_admin_authority` | `SKU_CREATED` | validation |
| POST | `/products/:id/submit-for-in-registration` | product owner | reason (electronic-signed) | `200` | `product_owner` | `PRODUCT_MOVED_TO_IN_REGISTRATION` | `STATE_NOT_IN_DEVELOPMENT` |
| POST | `/products/:id/activate` | product owner (independent of creator) + co-signers | reason (electronic-signed + MFA + co-signs) | `200` | `product_owner` (independent) + `final_quality_approver` (+ executive authority + `regulatory_oversight_admin` for high-risk) | `PRODUCT_ACTIVATED` | `STATE_NOT_IN_REGISTRATION`, `APPROVER_IS_CREATOR`, `APPROVAL_EVIDENCE_REQUIRED`, `MISSING_FOUNDER_COSIGN`, `MISSING_RA_COSIGN` |
| POST | `/products/:id/suspend` | product owner | `{reason, recallEvidence?}` (electronic-signed + co-sign per reason) | `200` | `product_owner` (+ `recall_decision_authority` for recall + executive authority for recall) | `PRODUCT_SUSPENDED` | `STATE_NOT_COMMERCIAL`, `RECALL_DECISION_INDEPENDENT_REQUIRED` |
| POST | `/products/:id/return-to-commercial` | product owner + co-signers | resolution evidence (electronic-signed + co-signs) | `200` | `product_owner` + `regulatory_oversight_admin` (+ executive authority for recall) | `PRODUCT_RETURNED_TO_COMMERCIAL` | `STATE_NOT_SUSPENDED`, `RESOLUTION_EVIDENCE_MISSING` |
| POST | `/products/:id/withdraw` | product owner | reason (electronic-signed) | `200` | `product_owner` | `PRODUCT_WITHDRAWN` | `STATE_NOT_PRE_COMMERCIAL` |

#### 6.3.2 Specifications, composition, container closure, storage

| Method | Endpoint | Actor | Request | Response | Permission | Audit | Error codes |
|---|---|---|---|---|---|---|---|
| GET | `/products/:id/specifications` | tenant-scoped | none | version history | product-role | none | none |
| POST | `/products/:id/specifications/version` | product quality lead + final QA co-sign | new version (electronic-signed + co-sign + URS-13 record) | `201` | `product_quality_lead` + `final_quality_approver` | `SPECIFICATION_VERSION_PUBLISHED` | `URS_13_RECORD_REQUIRED`, validation |
| GET | `/products/:id/composition` | tenant-scoped | none | version history | product-role | none | none |
| POST | `/products/:id/composition/version` | product quality lead + final QA co-sign | new version (electronic-signed + co-sign + URS-13 record) | `201` | `product_quality_lead` + `final_quality_approver` | `COMPOSITION_VERSION_PUBLISHED` | `URS_13_RECORD_REQUIRED`, validation |
| GET | `/products/:id/skus/:skuId/container-closure` | tenant-scoped | none | record | product-role | none | none |
| POST | `/products/:id/skus/:skuId/container-closure` | product quality lead + final QA co-sign | record (electronic-signed + co-sign + URS-13 record) | `201` | `product_quality_lead` + `final_quality_approver` | `CONTAINER_CLOSURE_UPDATED` | `URS_13_RECORD_REQUIRED`, validation |
| GET | `/products/:id/storage-shelf-life` | tenant-scoped | none | version history | product-role | none | none |
| POST | `/products/:id/storage-shelf-life/version` | product quality lead + final QA co-sign | new version (electronic-signed + co-sign + URS-13 record) | `201` | `product_quality_lead` + `final_quality_approver` | `STORAGE_SHELF_LIFE_UPDATED` | `URS_13_RECORD_REQUIRED`, validation |

#### 6.3.3 Registrations, DMF / RLD, product / site

| Method | Endpoint | Actor | Request | Response | Permission | Audit | Error codes |
|---|---|---|---|---|---|---|---|
| GET | `/products/:id/registrations` | tenant-scoped | none | `Registration[]` | product-role | none | none |
| POST | `/products/:id/registrations` | product owner + RA co-sign | registration fields + dossier evidence (electronic-signed + co-sign) | `201` | `product_owner` + `regulatory_oversight_admin` | `REGISTRATION_LOGGED` | validation |
| POST | `/products/:id/registrations/:regId/log-approval` | product owner + RA co-sign | approval letter (electronic-signed + co-sign) | `200` | `product_owner` + `regulatory_oversight_admin` | `REGISTRATION_APPROVAL_LOGGED` | validation |
| POST | `/products/:id/registrations/:regId/withdraw` | product owner + RA co-sign | reason (electronic-signed + co-sign) | `200` | `product_owner` + `regulatory_oversight_admin` | `REGISTRATION_WITHDRAWN` | validation |
| GET | `/products/:id/dmf-references` | tenant-scoped | none | `DmfReference[]` | product-role | none | none |
| POST | `/products/:id/dmf-references` | product owner + RA co-sign | DMF fields + evidence (electronic-signed + co-sign) | `201` | `product_owner` + `regulatory_oversight_admin` | `DMF_REFERENCE_REGISTERED` | validation |
| GET | `/products/:id/rld-references` | tenant-scoped | none | `RldReference[]` | product-role | none | none |
| POST | `/products/:id/rld-references` | product owner + RA co-sign | RLD fields + evidence (electronic-signed + co-sign) | `201` | `product_owner` + `regulatory_oversight_admin` | `RLD_REFERENCE_REGISTERED` | validation |
| GET | `/products/:id/sites` | tenant-scoped | none | `ProductSiteRelationship[]` | product-role | none | none |
| POST | `/products/:id/sites` | product owner + validation co-sign | relationship fields + qualification evidence + URS-13 record (electronic-signed + co-sign) | `201` | `product_owner` + `validation_approver` | `PRODUCT_SITE_RELATIONSHIP_REGISTERED` | `QUALIFICATION_EVIDENCE_MISSING`, validation |
| POST | `/products/:id/sites/:relId/terminate` | product owner | reason + URS-13 Change Control record + electronic signature; `validation_approver` co-sign where validated manufacturing, packaging, release, storage, or distribution scope is affected; RA co-sign where the site relationship is listed in a regulatory dossier | `200` | `product_owner` (+ `validation_approver` co-sign for validated scope; + `regulatory_oversight_admin` co-sign for dossier-listed relationships) | `PRODUCT_SITE_RELATIONSHIP_TERMINATED` | validation, `MISSING_VALIDATION_COSIGN`, `MISSING_RA_COSIGN` |

#### 6.3.4 Cross-product, member roster, periodic review, discontinuation

| Method | Endpoint | Actor | Request | Response | Permission | Audit | Error codes |
|---|---|---|---|---|---|---|---|
| GET | `/products/:id/relationships` | tenant-scoped | none | `CrossProductRelationship[]` | product-role | none | none |
| POST | `/products/:id/relationships` | product owner | relationship fields (electronic-signed) | `201` | `product_owner` | `CROSS_PRODUCT_RELATIONSHIP_REGISTERED` | validation |
| GET | `/products/:id/access-overlay` | tenant-scoped | none | roster + state | `tenant_admin_authority` | none | none |
| POST | `/products/:id/access-overlay/enable` | tenant administrator | initial roster (electronic-signed) | `200` | `tenant_admin_authority` | `PRODUCT_ACCESS_OVERLAY_ENABLED` | validation |
| POST | `/products/:id/access-overlay/members` | product owner | `{userId}` (electronic-signed) | `201` | `product_owner` | `PRODUCT_MEMBER_ADDED` | validation |
| POST | `/products/:id/access-overlay/members/:memberId/remove` | product owner | reason (electronic-signed) | `200` | `product_owner` | `PRODUCT_MEMBER_REMOVED` | validation |
| GET | `/products/:id/discovery` | tenant-scoped or partner-tenant per grant | filters | `DiscoveryRecord[]` | product-role or `audit:read` | `PRODUCT_DISCOVERY_VIEW_OPENED` once per session | none |
| POST | `/products/:id/discovery/export` | product owner + `audit:export` | filters + format (electronic-signed) | signed download URL + integrity manifest | `product_owner` + `audit:export` | `PRODUCT_DISCOVERY_EXPORTED` | none |
| GET | `/products/:id/periodic-review` | tenant-scoped | none | review history | product-role | none | none |
| POST | `/products/:id/periodic-review` | product quality lead | review attestation (electronic-signed) | `201` | `product_quality_lead` | `PERIODIC_PRODUCT_REVIEW_COMPLETED` | validation |
| POST | `/products/:id/discontinue/initiate` | product owner | reason (electronic-signed) | `200` | `product_owner` | `PRODUCT_DISCONTINUATION_INITIATED` | gate blockers |
| GET | `/products/:id/discontinue/gate-status` | product owner / auditor | none | gate result | `product_owner` / `audit:read` | none | none |
| POST | `/products/:id/discontinue/sign-attestation` | product_owner + product_quality_lead + RA + executive authority for high-risk | attestation (electronic-signed + co-signs) | `200` | product_owner + product_quality_lead + `regulatory_oversight_admin` + executive authority for high-risk | `PRODUCT_DISCONTINUED` | `MISSING_COSIGN`, `GATE_NOT_CLEARED` |

### 6.4 Workflow / lifecycle requirements

| Workflow | Step | Time-to-live or timer | Auto-action | Reminder |
|---|---|---|---|---|
| Periodic product review | annual per regulatory framework cadence | continuous | URS-30 alert; PPR surface populates | T-90, T-30, T-7 |
| Registration renewal (where applicable) | per `effective_to` | continuous | URS-30 alert | T-180, T-90, T-30 |
| DMF re-verification | per supplier cadence | continuous | URS-30 alert | T-30 |
| Stability shelf-life update | per URS-07 stability study close | event-driven | propose new storage / shelf-life version | none |
| Discontinuation gate watch | none | continuous | surfaces remediation list | none |
| Specification version effective date | per `effective_from` | event-driven | snapshot pinning per BR-10-XX | none |

### 6.5 Business rules

- **BR-10-01** — Product activation requires `product_owner` (independent of creator per `AUTHOR_NEQ_APPROVER`) + `final_quality_approver` co-sign; high-risk types require Founder + `regulatory_oversight_admin` per DEC-10-14.
- **BR-10-02** — Specification, composition, container-closure, storage / shelf-life updates MUST be linked to a URS-13 per DEC-10-11; missing returns `URS_13_RECORD_REQUIRED`.
- **BR-10-03** — Specification versions are immutable; new version supersedes old; `previous_hash` / `record_hash` chain enforced.
- **BR-10-04** — `product_owner` and `product_quality_lead` MUST be distinct users per `PRODUCT_OWNER_NEQ_QUALITY_LEAD`.
- **BR-10-05** — Recall-related suspension requires `recall_decision_authority` co-sign; signer MUST be independent of precipitating quality event per `RECALL_DECISION_INDEPENDENT`.
- **BR-10-06** — Registration approval logging requires `regulatory_oversight_admin` co-sign + linked approval letter (URS-12).
- **BR-10-07** — Product activation `in_registration → commercial` requires at least one registration row with `approval_date` populated AND approval evidence linked per DEC-10-20.
- **BR-10-08** — Pre-discontinuation gate per DEC-10-15 MUST clear all blockers before attestation.
- **BR-10-09** — Discontinuation attestation requires `product_owner` + `product_quality_lead` + `regulatory_oversight_admin` + executive authority for high-risk co-signs.
- **BR-10-10** — Product / site relationship registration requires `validation_approver` co-sign + qualification evidence per DEC-10-16.
- **BR-10-11** — DMF reference registration requires `regulatory_oversight_admin` co-sign + DMF holder authorisation evidence.
- **BR-10-12** — RLD reference registration requires `regulatory_oversight_admin` co-sign + bioequivalence study evidence.
- **BR-10-13** — Product-bound regulated-record discovery is computed by URS-03 active-scope intersection on `product` and `product_family` dimensions per DEC-10-10.
- **BR-10-14** — Product-level access overlay enforces `403 PRODUCT_CONFIDENTIAL_NOT_MEMBER` for non-members.
- **BR-10-15** — Module 10 mutations are blocked when tenant lifecycle (URS-08) is anything other than `active` per URS-08 BR-08-20.
- **BR-10-16** — Cross-tenant product visibility is restricted to URS-07 collaboration grant scope.
- **BR-10-17** — Audit-log writes are atomic with the originating action per URS-04 BR-04-15 / URS-06 BR-06-01.
- **BR-10-18** — Product lifecycle events emit dual audit per URS-08 DEC-08-18 (tenant chain + global chain).
- **BR-10-19** — Successor product linkage preserved via `successor_of_product_id` (DEC-10-12).
- **BR-10-20** — Snapshot pinning: in-flight regulated decisions reference the specification / composition version effective at decision time per URS-05 catalogue-version pinning principle applied to specification version.
- **BR-10-21** — Periodic product review is annual minimum per 21 CFR Part 211 §211.180(e) and EU GMP Chapter 1; tenant MAY configure shorter (more frequent), never longer.
- **BR-10-22** — Detailed bill of materials are owned by a forward manufacturing BOM module; the exact module number is a program dependency. URS-13 is Change Control and MUST NOT be referenced as the BOM module. Per-batch records are owned by URS-23; supplier qualification is owned by URS-11. Module 10 retains references but not run-time data.

### 6.6 Audit trail requirements

Module 10 governance event vocabulary (canonical launch list; every code MUST have at least one writer and one regression test; adding a code is a Class 3 change):

`DRUG_SUBSTANCE_CREATED`, `DRUG_SUBSTANCE_RETIRED`, `DRUG_PRODUCT_CREATED`, `PRODUCT_MOVED_TO_IN_REGISTRATION`, `PRODUCT_ACTIVATED`, `PRODUCT_SUSPENDED`, `PRODUCT_RETURNED_TO_COMMERCIAL`, `PRODUCT_DISCONTINUATION_INITIATED`, `PRODUCT_DISCONTINUATION_BLOCKED_BY_OPEN_BATCHES`, `PRODUCT_DISCONTINUATION_BLOCKED_BY_OPEN_REGISTRATIONS`, `PRODUCT_DISCONTINUATION_BLOCKED_BY_OPEN_SITE_RELATIONSHIPS`, `PRODUCT_DISCONTINUATION_BLOCKED_BY_OPEN_STUDIES`, `PRODUCT_DISCONTINUATION_BLOCKED_BY_OPEN_DELEGATIONS`, `PRODUCT_DISCONTINUED`, `PRODUCT_WITHDRAWN`, `SKU_CREATED`, `SKU_RETIRED`, `BRAND_CREATED`, `PRODUCT_FAMILY_CREATED`, `SPECIFICATION_VERSION_PUBLISHED`, `DRUG_SUBSTANCE_SPECIFICATION_VERSION_PUBLISHED`, `COMPOSITION_VERSION_PUBLISHED`, `CONTAINER_CLOSURE_UPDATED`, `STORAGE_SHELF_LIFE_UPDATED`, `REGISTRATION_LOGGED`, `REGISTRATION_APPROVAL_LOGGED`, `REGISTRATION_WITHDRAWN`, `REGISTRATION_RENEWAL_LOGGED`, `DMF_REFERENCE_REGISTERED`, `DMF_REFERENCE_UPDATED`, `DMF_REFERENCE_RETIRED`, `RLD_REFERENCE_REGISTERED`, `RLD_REFERENCE_UPDATED`, `PRODUCT_SITE_RELATIONSHIP_REGISTERED`, `PRODUCT_SITE_RELATIONSHIP_TERMINATED`, `CROSS_PRODUCT_RELATIONSHIP_REGISTERED`, `CROSS_PRODUCT_RELATIONSHIP_REVOKED`, `PRODUCT_ACCESS_OVERLAY_ENABLED`, `PRODUCT_ACCESS_OVERLAY_DISABLED`, `PRODUCT_MEMBER_ADDED`, `PRODUCT_MEMBER_REMOVED`, `PRODUCT_CONFIDENTIAL_ACCESS_DENIED` (forensic), `PERIODIC_PRODUCT_REVIEW_COMPLETED`, `PRODUCT_DISCOVERY_VIEW_OPENED` (coarse), `PRODUCT_DISCOVERY_EXPORTED`, `PRODUCT_CATALOGUE_VIEW_OPENED` (coarse), `SUCCESSOR_PRODUCT_CREATED`, `PLATFORM_TENANT_ACCESS_USED`, `PLATFORM_TENANT_ACCESS_DENIED`.

### 6.7 Record versioning and class-of-change governance

- Versioned (immutable per published version): `product_specifications`, `drug_substance_specifications`, `product_compositions`, `product_storage_shelf_life`, `product_lifecycle_events`.
- Stateful with append-only audit history: `drug_substances`, `drug_products`, `skus`, `brands`, `product_families`, `sku_container_closures` (versioned through URS-13), `product_registrations`, `drug_master_files`, `rld_references`, `product_site_relationships`, `cross_product_relationships`, `product_member_roster`, `product_discontinuation_runs`.
- Append-only: `periodic_product_reviews`.
- Soft-delete: `drug_products` (discontinued / withdrawn preserved), `skus` (retired preserved), `cross_product_relationships` (revoked preserved).

---

## 7. Cross-Module Wiring and Change-Impact

### 7.1 Cross-module wiring

```mermaid
graph LR
  subgraph M10 [Module 10 — Product Master Data]
    DS[Drug Substances]
    DP[Drug Products]
    SKU[SKUs]
    SPEC[Specifications]
    REG[Registrations]
    SITE[Product / Site Relationships]
    LCY[Lifecycle]
  end

  M3[URS-03 Active Scope] <--> DP
  M4[URS-04 Workflow / E-Sign] --> LCY
  M5[URS-05 Authority] --> DP
  M6[URS-06 Audit Substrate] --> LCY
  M7[URS-07 Study] <--> DP
  M8[URS-08 Tenant Lifecycle] --> DP
  M9[URS-09 Site] <--> SITE
  M12[URS-12 Document Control] <--> SPEC
  M12 <--> REG
  M30[URS-30 Notifications] --> LCY
  DP --> M14[URS-14..URS-34 Domain modules]
```

### 7.2 Change-Impact Matrix (CIM)

| Change | Class | Impact on (modules) | Required revalidation |
|---|---|---|---|
| Add product type / sub-classification (DEC-10-02) | 1 | URS-04 templates; URS-12 master-file templates | Full regression |
| Add hierarchy level (DEC-10-01) | 1 | URS-03 scope intersection | Full regression |
| Add high-risk product type to list (DEC-10-14) | 2 | activation flow; discontinuation flow | Targeted regression |
| Add regulatory pathway (DEC-10-04) | 2 | registration register | Targeted regression |
| Add storage condition / shelf-life value | 2 | URS-30 reminders; URS-23 batch expiry forward | Targeted regression |
| Add cross-product relationship type (DEC-10-12) | 2 | UI relationship graph | Targeted regression |
| Change PPR cadence default | 3 | URS-30 schedule | Unit regression |
| Add audit event code | 3 | URS-06 | Writer-presence regression |
| UI copy or layout change | 4 | none | Visual regression |

### 7.3 Cross-module dependencies (consumed by Module 10)

| Dependency | Source | Impact | Blocking? |
|---|---|---|---|
| Authentication, MFA | URS-01 | Substrate | Blocking |
| Effective permissions | URS-02 | Base role gate | Blocking |
| Active scope | URS-03 | Discovery | Blocking |
| Workflow / e-sig ceremony | URS-04 | Lifecycle signatures | Blocking |
| Authority resolver, scope dimensions | URS-05 | Product role gating | Blocking |
| Audit substrate | URS-06 | Audit | Blocking |
| Study management | URS-07 | Stability / process-validation evidence | Blocking |
| Tenant lifecycle | URS-08 | Mutation gating | Blocking |
| Site catalogue | URS-09 | Product / site relationships | Blocking |
| Document control | URS-12 | Specifications, dossiers, URS-13 records, DMF references | Blocking |
| Notifications | URS-30 | Reminders | Non-blocking (direct e-mail fallback) |
| Backup / restore | URS-35 | Long-term archive | Blocking for PQ |
| Forward manufacturing BOM module | (forward — exact module-number is a program dependency) | Detailed BOM | Forward |
| Forward URS-24 (Stability) | URS-24 | Stability tables | Forward |
| Forward URS-23 (Batch Records) | URS-23 | Batch expiry per shelf-life | Forward |
| Forward URS-11 (Supplier Management) | URS-11 | Supplier qualification | Forward |
| Forward URS-26 (Recall Management) | URS-26 | Recall decision integration | Forward |

---

## 8. AI / Automation / Human-in-the-Loop Controls

Module 10 contains **no AI / ML components** in the catalogue, hierarchy, specifications, composition, container-closure, storage, registrations, DMF / RLD, sites, lifecycle, or discovery paths. AI suggestions in URS-32 / MIRA that inform product master data (e.g., recommending a regulatory pathway based on substance class and jurisdiction; surfacing comparable products from public regulatory databases) are advisory only and MUST set `ai_advisory = true` per URS-06 DEC-06-15.

The HITL lifecycle is owned by URS-04. Module 10 consumes the Controlled Approval Modal for every electronic signature. Static analysis MUST verify zero references to LLM SDKs in Module 10 source per CLAUDE.md QS-21.

---

## 9. Reports, Dashboards, and Exports

| Report | Purpose | Audience | Format |
|---|---|---|---|
| Per-tenant product catalogue | Inventory and lifecycle posture | Tenant administrator, auditor | CSV + PDF |
| Per-product dashboard | Lifecycle, registrations, specifications, SKUs, sites, discovery | Product members, auditor | PDF + JSON |
| Product-bound regulated-record discovery | Inspection-ready list per product | Product owner, auditor, inspector | PDF + JSON + integrity manifest |
| Multi-jurisdictional registrations register | Per-tenant cross-product registration view | RA Lead | CSV + PDF |
| Specifications version history | Per-product version timeline with diffs | Product quality lead, auditor | PDF |
| Container closure register | Per-tenant cross-product / per-SKU | Engineering, QA | CSV |
| Storage / shelf-life timeline | Per-product per-jurisdiction shelf life | RA, QA | Timeline + CSV |
| DMF / RLD reference register | Per-tenant DMF / RLD references | RA Lead | CSV + PDF |
| Product / site relationships matrix | Per-tenant products × sites | Tenant administrator | Visual matrix |
| Periodic product review pack | Per-product PPR with linked CAPAs | Product quality lead, auditor, inspector | PDF (electronically signed) |
| Discontinuation register | Past discontinuations | Tenant administrator, auditor | CSV + PDF |
| Founder activation high-risk-product register | High-risk product activations with executive authority co-signs | Founder, QA, RA | PDF |

Every export routes through the Controlled Approval Modal, carries an electronic signature, a signed download URL with 15-minute TTL unless a stricter TTL is specified, and an integrity manifest accompanies every export per URS-06 DEC-06-10.

---

## 10. Notifications and Queues

| Trigger | Recipient | Channel | Latency |
|---|---|---|---|
| Product created | tenant administrators | URS-30 in-app + e-mail | within 60 seconds |
| Product moved to in-registration | RA leads | URS-30 in-app + e-mail | within 60 seconds |
| Registration approval logged | RA leads, product owner, executive authority for high-risk | URS-30 in-app + e-mail | within 60 seconds |
| Product activated | tenant administrators, product members, executive authority for high-risk | URS-30 in-app + e-mail | within 60 seconds |
| Product suspended | product members, cross-tenant partners, executive authority for recall | URS-30 in-app + e-mail | within 60 seconds |
| Product returned to commercial | product members, cross-tenant partners | URS-30 in-app + e-mail | within 60 seconds |
| Product discontinued | tenant administrators | URS-30 in-app + e-mail | within 60 seconds |
| Specification version published | RA, QA, Manufacturing | URS-30 in-app + e-mail | within 60 seconds |
| Composition version published | RA, QA, Manufacturing | URS-30 in-app + e-mail | within 60 seconds |
| Container closure updated | RA, QA, Engineering | URS-30 in-app + e-mail | within 60 seconds |
| Storage / shelf-life updated | RA, QA, Distribution | URS-30 in-app + e-mail | within 60 seconds |
| Periodic product review approaching | product quality lead | URS-30 in-app + e-mail | T-90, T-30, T-7 |
| Periodic product review completed | tenant administrators, QA Head | URS-30 in-app + e-mail | within 60 seconds |
| Registration renewal approaching (where applicable) | RA Lead, product owner | URS-30 in-app + e-mail | T-180, T-90, T-30 |
| DMF re-verification due | product owner, supplier contact | URS-30 in-app + e-mail | T-30 |
| Pre-discontinuation gate failure | product owner | URS-30 in-app + e-mail (synchronous response) | immediate |

---

## 11. Error Handling and Negative Paths

### 11.1 Error envelope

Standard envelope (human message, machine code in upper-snake-case, optional structured details, correlation identifier).

### 11.2 Error-code catalogue

| Code | HTTP | Path | UI behaviour |
|---|---|---|---|
| HIGH_RISK_TYPE_REQUIRES_FOUNDER | 401 | product activate / discontinue | open executive authority co-sign request |
| MISSING_FOUNDER_COSIGN | 401 | high-risk lifecycle | open executive authority co-sign request |
| MISSING_RA_COSIGN | 401 | activation / registration / discontinuation | open RA co-sign request |
| APPROVER_IS_CREATOR | 403 | product activation | inline error citing AUTHOR_NEQ_APPROVER |
| APPROVAL_EVIDENCE_REQUIRED | 409 | product activation | inline error citing missing approval evidence per DEC-10-20 |
| CHANGE_CONTROL_REQUIRED | 400 | specifications / composition / container closure / storage update | inline error citing URS-13 Change Control link required |
| PRODUCT_OWNER_NEQ_QUALITY_LEAD | 403 | product role assignment | inline error |
| RECALL_DECISION_INDEPENDENT_REQUIRED | 401 | recall-related suspension | open independent reviewer route |
| QUALIFICATION_EVIDENCE_MISSING | 400 | product / site relationship registration | inline error |
| PRODUCT_DISCONTINUATION_BLOCKED_BY_OPEN_BATCHES | 409 | discontinuation initiation | inline list with deep-links |
| PRODUCT_DISCONTINUATION_BLOCKED_BY_OPEN_REGISTRATIONS | 409 | discontinuation initiation | inline list with deep-links |
| PRODUCT_DISCONTINUATION_BLOCKED_BY_OPEN_SITE_RELATIONSHIPS | 409 | discontinuation initiation | inline list with deep-links |
| PRODUCT_DISCONTINUATION_BLOCKED_BY_OPEN_STUDIES | 409 | discontinuation initiation | inline list with deep-links |
| PRODUCT_DISCONTINUATION_BLOCKED_BY_OPEN_DELEGATIONS | 409 | discontinuation initiation | inline list with deep-links |
| GATE_NOT_CLEARED | 409 | discontinuation attestation | inline message |
| MISSING_COSIGN | 401 | various | open co-signer route |
| STATE_NOT_IN_DEVELOPMENT | 409 | lifecycle endpoints | inline error |
| STATE_NOT_IN_REGISTRATION | 409 | lifecycle endpoints | inline error |
| STATE_NOT_COMMERCIAL | 409 | lifecycle endpoints | inline error |
| STATE_NOT_SUSPENDED | 409 | lifecycle endpoints | inline error |
| STATE_NOT_PRE_COMMERCIAL | 409 | lifecycle endpoints | inline error |
| PRODUCT_CONFIDENTIAL_NOT_MEMBER | 403 | product-confidential read | inline error |
| TENANT_NOT_ACTIVE | 403 | any Module 10 mutation when tenant not `active` | banner |
| AUDIT_TRAIL_WRITE_FAILED | 500 | any state-changing action | toast; the originating action did NOT commit |
| PLATFORM_TENANT_ACCESS_DENIED | 403 | platform identity outside support envelope | inline error; SOC alert |

### 11.3 Negative-path catalogue

| Scenario | Detection | Response | UI behaviour |
|---|---|---|---|
| Activation by creator | back end | `403 APPROVER_IS_CREATOR` | inline error |
| Activation without approval evidence | back end | `409 APPROVAL_EVIDENCE_REQUIRED` | inline error |
| Spec / composition / container / storage update without URS-13 linkage | back end | `400 URS_13_RECORD_REQUIRED` | inline error |
| Recall suspension without independent reviewer | back end | `401 RECALL_DECISION_INDEPENDENT_REQUIRED` | open reviewer route |
| Product / site relationship without qualification evidence | back end | `400 QUALIFICATION_EVIDENCE_MISSING` | inline error |
| Discontinuation with blockers | back end | one of `409 PRODUCT_DISCONTINUATION_BLOCKED_BY_OPEN_BATCHES`, `409 PRODUCT_DISCONTINUATION_BLOCKED_BY_OPEN_REGISTRATIONS`, `409 PRODUCT_DISCONTINUATION_BLOCKED_BY_OPEN_SITE_RELATIONSHIPS`, `409 PRODUCT_DISCONTINUATION_BLOCKED_BY_OPEN_STUDIES`, `409 PRODUCT_DISCONTINUATION_BLOCKED_BY_OPEN_DELEGATIONS` per blocker category | inline list |
| `product_owner` and `product_quality_lead` same user | back end | `403 PRODUCT_OWNER_NEQ_QUALITY_LEAD` | inline error |
| Mutation when tenant not `active` | back end | `403 TENANT_NOT_ACTIVE` | banner |
| Product-confidential read by non-member | back end | `403 PRODUCT_CONFIDENTIAL_NOT_MEMBER` | inline error |
| Audit-write failure mid-decision | back end | `500 AUDIT_TRAIL_WRITE_FAILED` | toast; action did NOT commit |

---

## 12. Security, Privacy, and Tenant Isolation

### 12.1 Authentication dependency

URS-10 reached only through authenticated session per URS-01. Every Module 10 mutation goes through URS-04 Controlled Approval Modal with electronic signature; high-risk lifecycle transitions (high-risk product activation, recall-related suspension, discontinuation of high-risk types) require multi-factor step-up.

### 12.2 Authorisation pipeline

`authenticate hook → tenant hook → rbac hook → context gate hook → product-membership overlay hook → esigService.createSignature where applicable → module10 surface action`. Module 10 owns the product-membership overlay hook position.

### 12.3 Tenant isolation

Every product query routes through TDAL with tenant context bound. RLS on `drug_products.tenant_id`. Cross-tenant visibility restricted to URS-07 collaboration grant scope.

### 12.4 Encryption

At rest: substance / product master data, registration dossier metadata, DMF references, RLD references may contain commercially sensitive content; protected by RLS plus KMS at the storage layer; tenant residency per URS-08. In transit: TLS 1.2 or higher.

### 12.5 Logging hygiene

Logs scrub passwords, MFA tokens. Structured logs carry the correlation identifier on every request.

### 12.6 Privacy and data residency

Inherits tenant data-residency configuration from URS-08. Some product master data may contain regulated personal data (e.g., responsible person names in registration dossiers); residency respected.

### 12.7 Periodic access review

Per URS-05 §12.7: product role overlays (`product_owner`, `product_quality_lead`, `product_member`) reviewed annually.

### 12.8 Periodic audit-trail review

Per URS-06 DEC-06-14: high-risk Module 10 events triaged within one business day: `PRODUCT_ACTIVATED` for high-risk types, `PRODUCT_SUSPENDED` for recall, `PRODUCT_DISCONTINUED` for high-risk types, `REGISTRATION_APPROVAL_LOGGED`.

### 12.9 Security-operations alert thresholds

| Pattern | Threshold | Severity | Channel |
|---|---|---|---|
| `PRODUCT_SUSPENDED` reason recall | any single event | critical | SOC chat + RA Lead + executive authority |
| `PRODUCT_ACTIVATED` for high-risk type | any single event | informational (real-time) | SOC chat + executive authority |
| `PRODUCT_DISCONTINUED` for high-risk type | any single event | informational (real-time) | SOC chat + executive authority |
| `REGISTRATION_WITHDRAWN` | any single event | high | SOC chat + RA Lead |
| `DMF_REFERENCE_RETIRED` | any single event | informational (real-time) | SOC chat + RA Lead |
| `PRODUCT_CONFIDENTIAL_ACCESS_DENIED` cluster | five per user per hour | medium | SOC e-mail digest |
| `PLATFORM_TENANT_ACCESS_USED` for Module 10 | any single event | informational (real-time) | SOC chat |

### 12.10 Self-modification block

A user MUST NOT activate a product they themselves created. A user MUST NOT occupy both `product_owner` and `product_quality_lead`. A user named in the precipitating quality event MUST NOT be the sole signer of a recall-related suspension (`RECALL_DECISION_INDEPENDENT`).

### 12.11 Secure export

Every export routes through Controlled Approval Modal. Signed download URLs with 15-minute TTL. Integrity manifest per URS-06.

### 12.12 Cross-tenant confidentiality envelope

Products are tenant-scoped. Cross-tenant visibility through URS-07 collaboration grants is restricted to per-grant scope. Partner-tenant products are not visible outside the grant. URS-06 audits every cross-tenant access.

---

## 13. Data Integrity and ALCOA+ Controls

| Principle | Module 10 control | Requirement | Verification |
|---|---|---|---|
| Attributable | Every product lifecycle event records signing user(s); contacts and members attributable | URS-10-AUD-001 | Integration test |
| Legible | Product detail rendered structured; exports in PDF + JSON | URS-10-REP-001 | Export test |
| Contemporaneous | Server-set timestamps; client-supplied dropped | URS-10-AUD-002 | Integration test |
| Original | Immutable specification / composition / shelf-life versions; lifecycle events append-only | URS-10-AUD-003 | Validation test |
| Accurate | Three-cosign gates at high-risk activation; pre-discontinuation gate; URS-13 linkage | URS-10-DATA-001 | Validation test |
| Complete | Every event in §6.6 has at least one writer | URS-10-AUD-004 | Validation test |
| Consistent | URS-08 dual-chain audit; URS-07 study-scope linkage; snapshot pinning | URS-10-AUD-005 | Concurrency test |
| Enduring | Per-regulatory-framework retention (typically 25+ years for pharmaceutical products); discontinued products preserved | URS-10-DATA-002 | Migration test |
| Available | Discontinued products query-accessible; cold-tier supported | URS-10-REP-002 | End-to-end test |

---

## 14. Regulatory Mapping

| Identifier | Control | Regulation / Guidance | Clause | Applicable | Implementation expectation |
|---|---|---|---|---|---|
| RG-10-001 | Audit trail | 21 CFR Part 11 | §11.10(e) | Yes | URS-06 substrate |
| RG-10-002 | Validation of computerised systems | EU GMP Annex 11 | §4 | Yes | CSV / CSA pack per §17 |
| RG-10-003 | Records retention | EU GMP Annex 11 | §17 | Yes | Per regulatory framework retention |
| RG-10-004 | Periodic product review | 21 CFR Part 211 | §211.180(e) | Yes | Annual PPR per BR-10-21 |
| RG-10-005 | Annual product quality review | EU GMP Chapter 1 | §1.10 | Yes | Annual PPR per BR-10-21 |
| RG-10-006 | NDA / ANDA / BLA US regulatory pathways | 21 CFR Part 314, Part 600 | applicable | Yes (US registrations) | Registration pathway support |
| RG-10-007 | EU MA / MAA | Directive 2001/83/EC, Regulation EC 726/2004 | applicable | Yes (EU registrations) | Registration pathway support |
| RG-10-008 | India product registration / approval — D&C Act 1940 + Drugs Rules 1945 + Revised Schedule M (where manufacturing scope) + New Drugs and Clinical Trials Rules 2019 (where new-drug or clinical-trial product scope) + Medical Devices Rules 2017 (where device / combination-product scope) + CDSCO product registration / approval references (Form 25 / Form 28 manufacturing licence linkage where applicable; CDSCO Form 26 / Form 41 / Form 44 import / new-drug registration where applicable) | India Drugs and Cosmetics Act 1940; Drugs Rules 1945; Revised Schedule M; New Drugs and Clinical Trials Rules 2019; Medical Devices Rules 2017; CDSCO product registration / approval references | Applicable per India tenant operation and jurisdictional regulatory assessment | Yes (India product registrations per applicable scope — drug, new drug, clinical-trial product, device / combination product) | Registration pathway support; CDSCO product registration / approval references captured in product registrations register; external jurisdictional legal / RA confirmation required for clause / form applicability per India product scope |
| RG-10-009 | Common Technical Document | ICH M4 | applicable | Yes | Dossier evidence linkage to URS-12 |
| RG-10-010 | Stability testing | ICH Q1A(R2) | applicable | Yes | Storage / shelf-life linkage to URS-07 stability studies |
| RG-10-011 | Specifications | ICH Q6A / Q6B | applicable | Yes | Specifications register |
| RG-10-012 | Lifecycle management | ICH Q12 | applicable | Yes | URS-13 linkage to URS-12 |
| RG-10-013 | DMF references | 21 CFR §314.420 (US), EU ASMF / CEP | applicable | Yes | DMF reference linkage |
| RG-10-014 | RLD / Orange Book | FDA Approved Drug Products with Therapeutic Equivalence Evaluations | applicable | Yes (US generics) | RLD reference linkage |
| RG-10-015 | Risk-based assurance | FDA Computer Software Assurance for Production and Quality Management System Software, Final Guidance, February 2026 | applicable | Yes | Risk classification per validation pack |
| RG-10-016 | ALCOA+ data integrity | MHRA Data Integrity Guidance (2018) | nine principles | Yes | §13 mapping |
| RG-10-017 | EU AI Act applicability | Regulation (EU) 2024/1689 | Article 3(1) | Not applicable to this module | No AI; documented exclusion |
| RG-10-018 | EU GMP Annex 22 (Draft 2025) | EU GMP Annex 22 | applicable forward-looking | Forward-looking only | No Annex-22-dependent control |
| RG-10-019 | Controlled substances | US DEA Parts 1300-1316; India NDPS | applicable | Conditional (controlled substance products) | Schedule capture in drug substance |
| RG-10-020 | Biologics / vaccines / ATMPs | 21 CFR Part 600 (US); EU ATMP Regulation 1394/2007 | applicable | Conditional | High-risk product type with executive authority co-sign |
| RG-10-021 | Pharmacopoeial monographs | USP / EP / BP / IP / JP | applicable | Conditional | Monograph reference linkage |
| RG-10-022 | Bioequivalence (US) | 21 CFR Part 320 | applicable | Yes (US generics) | RLD / bioequivalence reference |

### 14.1 Predicate-rule applicability matrix

| Record / artifact | Predicate-rule basis | Part 11 applicable? | Retention | Owner | Evidence |
|---|---|---|---|---|---|
| Drug product record (lifecycle states) | Product registration evidence | Yes (Part 11 §11.10(e)) | per regulatory framework retention | RA / QA | Lifecycle audit chain |
| Drug substance record | Substance master evidence | Yes | per substance retention | RA / R&D | Substance row + monograph references |
| Specifications register | Quality acceptance criteria evidence | Yes | per product retention | QA | Versioned specifications + URS-13 |
| Composition / formula | Formulation evidence | Yes | per product retention | R&D / QA | Versioned composition + URS-13 |
| Container closure | Primary packaging evidence | Yes | per product retention | QA / Engineering | Versioned container closure + E&L evidence |
| Storage / shelf life | Stability acceptance evidence | Yes | per product retention | RA / QA | Versioned storage + URS-07 stability study evidence |
| Multi-jurisdictional registrations | Marketing authorisation evidence | Yes | retain (long-term) | RA | Per-jurisdiction registration row + URS-12 dossier |
| DMF / RLD references | Supplier / reference evidence | Yes | retain (long-term) | RA | DMF / RLD row + URS-12 evidence |
| Product / site relationships | Manufacturing scope evidence | Yes | retain (long-term) | QA / Manufacturing | Relationship row + URS-07 process validation |
| Periodic product review | PPR evidence | Yes | retain (long-term) | QA | PPR row + reviewer signature |
| Discontinuation record | Product retirement evidence | Yes | retain (long-term) | RA / QA / executive authority for high-risk | Discontinuation row + signatures |

---

## 15. URS Requirements Register

### 15.1 Front-end (FE)

- URS-10-FE-001 — Product catalogue browser MUST surface filters by family, type, lifecycle, jurisdiction, vertical. Priority MUST. Risk MEDIUM.
- URS-10-FE-002 — Per-product detail tabbed view per §5.2. Priority MUST. Risk LOW.
- URS-10-FE-003 — Drug product creation wizard MUST flag high-risk types and surface required co-signs. Priority MUST. Risk HIGH.
- URS-10-FE-004 — Specifications authoring MUST surface version timeline with diff. Priority MUST. Risk MEDIUM.
- URS-10-FE-005 — Multi-jurisdictional registrations register MUST surface per-pathway calendar with renewal alerts. Priority MUST. Risk HIGH.
- URS-10-FE-006 — Container closure register MUST surface per-SKU detail with E&L evidence references. Priority MUST. Risk MEDIUM.
- URS-10-FE-007 — Storage / shelf-life MUST surface per-jurisdiction approved values. Priority MUST. Risk MEDIUM.
- URS-10-FE-008 — Product / site relationships matrix MUST visualise per-relationship-type. Priority MUST. Risk MEDIUM.
- URS-10-FE-009 — Discovery view MUST show records intersecting product scope. Priority MUST. Risk HIGH.
- URS-10-FE-010 — Periodic product review surface MUST present dashboard summary with reviewer attestation. Priority MUST. Risk HIGH.
- URS-10-FE-011 — Discontinuation surface MUST run pre-discontinuation gate at open. Priority MUST. Risk HIGH.
- URS-10-FE-012 — Cross-tenant content (via URS-07 grant) MUST be visually distinguished. Priority MUST. Risk MEDIUM.
- URS-10-FE-013 — Every route in §5.1 MUST be registered in the application router before release. Priority MUST. Risk LOW.
- URS-10-FE-014 — All Module 10 surfaces MUST meet WCAG 2.1 Level AA. Priority MUST. Risk MEDIUM.

### 15.2 Back-end (BE)

- URS-10-BE-001 — Product activation MUST require activator independent of creator (`AUTHOR_NEQ_APPROVER`). Priority MUST. Risk HIGH.
- URS-10-BE-002 — High-risk product activation MUST require Founder + `final_quality_approver` + `regulatory_oversight_admin` co-signs. Priority MUST. Risk CRITICAL.
- URS-10-BE-003 — Spec / composition / container-closure / storage updates MUST require URS-13 linkage. Priority MUST. Risk CRITICAL.
- URS-10-BE-004 — Specification versions MUST be immutable; chain hash linkage. Priority MUST. Risk HIGH.
- URS-10-BE-005 — `product_owner` and `product_quality_lead` MUST be distinct users (`PRODUCT_OWNER_NEQ_QUALITY_LEAD`). Priority MUST. Risk HIGH.
- URS-10-BE-006 — Recall-related suspension MUST require independent reviewer (`RECALL_DECISION_INDEPENDENT`). Priority MUST. Risk HIGH.
- URS-10-BE-007 — Registration approval logging MUST require `regulatory_oversight_admin` co-sign + URS-12 evidence. Priority MUST. Risk HIGH.
- URS-10-BE-008 — Activation MUST require at least one approval evidence per DEC-10-20. Priority MUST. Risk HIGH.
- URS-10-BE-009 — Pre-discontinuation gate MUST clear all blockers. Priority MUST. Risk HIGH.
- URS-10-BE-010 — Discontinuation attestation MUST require `product_owner` + `product_quality_lead` + `regulatory_oversight_admin` + executive authority for high-risk. Priority MUST. Risk HIGH.
- URS-10-BE-011 — Product / site relationship MUST require `validation_approver` co-sign + qualification evidence. Priority MUST. Risk HIGH.
- URS-10-BE-012 — DMF reference MUST require `regulatory_oversight_admin` co-sign + DMF holder authorisation evidence. Priority MUST. Risk HIGH.
- URS-10-BE-013 — RLD reference MUST require `regulatory_oversight_admin` co-sign + bioequivalence evidence. Priority MUST. Risk HIGH.
- URS-10-BE-014 — Product-bound discovery MUST be computed by URS-03 active-scope intersection. Priority MUST. Risk CRITICAL.
- URS-10-BE-015 — Product-level access overlay MUST enforce `403 PRODUCT_CONFIDENTIAL_NOT_MEMBER`. Priority MUST. Risk HIGH.
- URS-10-BE-016 — Module 10 mutations MUST be blocked when tenant not `active`. Priority MUST. Risk CRITICAL.
- URS-10-BE-017 — Cross-tenant product visibility MUST be restricted to URS-07 grant scope. Priority MUST. Risk CRITICAL.
- URS-10-BE-018 — Audit-log writes MUST be atomic with originating action. Priority MUST. Risk CRITICAL.
- URS-10-BE-019 — Product lifecycle events MUST emit dual audit (tenant + global chains) per URS-08 DEC-08-18. Priority MUST. Risk HIGH.
- URS-10-BE-020 — Successor product linkage MUST preserve via `successor_of_product_id`. Priority MUST. Risk MEDIUM.
- URS-10-BE-021 — Snapshot pinning: in-flight regulated decisions reference specification / composition version effective at decision time. Priority MUST. Risk CRITICAL.
- URS-10-BE-022 — Periodic product review annual minimum per BR-10-21. Priority MUST. Risk HIGH.
- URS-10-BE-023 — Detailed BOM is owned by a forward manufacturing BOM module (exact module-number is a program dependency, not URS-13). Batch records are owned by URS-23. Supplier qualification is owned by URS-11. Stability tables are owned by URS-24. Module 10 retains references only. Priority MUST. Risk LOW.

### 15.3 Workflow (WF)

- URS-10-WF-001 — Product lifecycle state machine per Diagram 6.1-B. Priority MUST. Risk CRITICAL.
- URS-10-WF-002 — Specification version flow with URS-13 linkage. Priority MUST. Risk HIGH.
- URS-10-WF-003 — Registration lifecycle from `submitted` to `approved` to `withdrawn`. Priority MUST. Risk HIGH.
- URS-10-WF-004 — Discontinuation gate watch with remediation list. Priority MUST. Risk HIGH.
- URS-10-WF-005 — Periodic product review annual cadence. Priority MUST. Risk HIGH.

### 15.4 Data (DATA)

- URS-10-DATA-001 — Snapshot pinning per BR-10-21. Priority MUST. Risk CRITICAL.
- URS-10-DATA-002 — Per-regulatory-framework retention. Priority MUST. Risk HIGH.
- URS-10-DATA-003 — Scope JSONB compatibility with URS-05 §6.2.1 canonical registry. Priority MUST. Risk HIGH.

### 15.5 Security (SEC)

- URS-10-SEC-001 — Tenant isolation via TDAL + RLS. Priority MUST. Risk CRITICAL.
- URS-10-SEC-002 — Multi-factor step-up for high-risk transitions. Priority MUST. Risk HIGH.
- URS-10-SEC-003 — Self-modification block (`AUTHOR_NEQ_APPROVER`, `PRODUCT_OWNER_NEQ_QUALITY_LEAD`, `RECALL_DECISION_INDEPENDENT`). Priority MUST. Risk HIGH.
- URS-10-SEC-004 — Cross-tenant access governed by URS-07 grant scope. Priority MUST. Risk CRITICAL.

### 15.6 Audit (AUD)

- URS-10-AUD-001 — Every Module 10 mutation produces audit row through URS-06. Priority MUST. Risk CRITICAL.
- URS-10-AUD-002 — Server-set timestamps. Priority MUST. Risk HIGH.
- URS-10-AUD-003 — Append-only specifications, lifecycle events. Priority MUST. Risk HIGH.
- URS-10-AUD-004 — Every event in §6.6 has at least one writer. Priority MUST. Risk HIGH.
- URS-10-AUD-005 — Dual-chain emission per URS-08 DEC-08-18. Priority MUST. Risk HIGH.

### 15.7 AI / HITL (AI)

- URS-10-AI-001 — No AI / ML in core path; static analysis MUST find zero LLM SDK references. Priority MUST. Risk HIGH.
- URS-10-AI-002 — AI suggestions in URS-32 set `ai_advisory = true`. Priority MUST. Risk HIGH.

### 15.8 Integration (INT)

- URS-10-INT-001 — URS-03 active-scope intersection on `product` and `product_family` dimensions. Priority MUST. Risk CRITICAL.
- URS-10-INT-002 — URS-04 e-sig ceremony for every signed action. Priority MUST. Risk CRITICAL.
- URS-10-INT-003 — URS-05 product role overlay; executive authority for high-risk. Priority MUST. Risk HIGH.
- URS-10-INT-004 — URS-06 dual-chain audit. Priority MUST. Risk CRITICAL.
- URS-10-INT-005 — URS-07 study scope inclusion (stability, validation, bioequivalence); cross-tenant grants. Priority MUST. Risk HIGH.
- URS-10-INT-006 — URS-08 tenant lifecycle gating. Priority MUST. Risk CRITICAL.
- URS-10-INT-007 — URS-09 product / site relationships. Priority MUST. Risk HIGH.
- URS-10-INT-008 — URS-12 specifications, dossiers, URS-13 records, DMF references. Priority MUST. Risk HIGH.
- URS-10-INT-009 — URS-30 notifications. Priority MUST. Risk MEDIUM.

### 15.9 Reporting (REP)

- URS-10-REP-001 — Reports per §9 exportable with electronic signature. Priority MUST. Risk MEDIUM.
- URS-10-REP-002 — Discovery export integrity manifest end-to-end across chains. Priority MUST. Risk HIGH.
- URS-10-REP-003 — Signed download URL TTL 15 minutes. Priority MUST. Risk MEDIUM.

### 15.10 Notifications (NOTIF)

- URS-10-NOTIF-001 — Notifications per §10 delivered through URS-30. Priority MUST. Risk MEDIUM.
- URS-10-NOTIF-002 — Cross-tenant notifications reach both tenants where applicable. Priority MUST. Risk HIGH.

### 15.11 Validation (VAL)

- URS-10-VAL-001 — Test execution covers IQ (schema, RLS, indexes, lifecycle bootstrap, scope-intersection bootstrap), OQ (per URS-10-VAL-002), PQ (per URS-10-VAL-003), regression (per URS-10-VAL-004).
- URS-10-VAL-002 — OQ validates every API endpoint, every error code, every state transition, every audit event writer.
- URS-10-VAL-003 — PQ validates discovery view under representative tenant volume.
- URS-10-VAL-004 — Regression on every Class 1 / Class 2 change.
- URS-10-VAL-005 — Requirements-to-test traceability per §16.4.
- URS-10-VAL-006 — Supplier qualification pack per §17.1.
- URS-10-VAL-007 — Inspection-ready evidence index per §17.2.
- URS-10-VAL-008 — Migration evidence gate: schema migrations idempotent; restore drill verifies product integrity.

---

## 16. Acceptance Criteria and Test Cases

### 16.1 Plain-language test cases

- TC-PLAIN-001 — A non-high-risk product (small-molecule generic) requires only the standard activation flow with product-owner and final-quality-approver signatures.
- TC-PLAIN-002 — A biologic / vaccine / cell therapy / controlled substance requires the standard flow plus executive authority + RA co-signs at activation.
- TC-PLAIN-003 — The user who created a product cannot also activate it.
- TC-PLAIN-004 — `product_owner` and `product_quality_lead` cannot be the same user.
- TC-PLAIN-005 — A specification update cannot be published without a linked URS-13 record.
- TC-PLAIN-006 — A specification version is immutable; changes produce a new version that supersedes the old.
- TC-PLAIN-007 — A product cannot be activated without at least one regulatory approval evidence.
- TC-PLAIN-008 — A recall-related suspension requires an independent reviewer who is not named in the precipitating event.
- TC-PLAIN-009 — Discontinuation cannot complete while open in-market batches, active dossiers, active site relationships, open studies, or open delegations remain.
- TC-PLAIN-010 — A high-sensitivity product can opt-in to a product-level access overlay restricting access to a designated member roster.
- TC-PLAIN-011 — Cross-tenant studies (URS-07) reference partner-tenant products only within per-grant scope.
- TC-PLAIN-012 — A successor product preserves linkage to discontinued predecessor.
- TC-PLAIN-013 — Periodic product review runs annually and surfaces dashboard summary linked to CAPAs.
- TC-PLAIN-014 — Product mutations are blocked when the tenant is not `active`.

### 16.2 Technical test cases

- TC-TECH-001 — Product activation by creator returns `403 APPROVER_IS_CREATOR`.
- TC-TECH-002 — High-risk product activation without executive authority co-sign returns `401 HIGH_RISK_TYPE_REQUIRES_FOUNDER`.
- TC-TECH-003 — Activation without approval evidence returns `409 APPROVAL_EVIDENCE_REQUIRED`.
- TC-TECH-004 — Spec update without URS-13 linkage returns `400 URS_13_RECORD_REQUIRED`.
- TC-TECH-005 — Spec version v1 superseded by v2 preserves v1 immutable; chain-hash linkage verified.
- TC-TECH-006 — `product_owner` equal to `product_quality_lead` returns `403 PRODUCT_OWNER_NEQ_QUALITY_LEAD`.
- TC-TECH-007 — Recall suspension without independent reviewer returns `401 RECALL_DECISION_INDEPENDENT_REQUIRED`.
- TC-TECH-008 — Product / site relationship without qualification evidence returns `400 QUALIFICATION_EVIDENCE_MISSING`.
- TC-TECH-009 — Discontinuation while open batches exist returns `409 PRODUCT_DISCONTINUATION_BLOCKED_BY_OPEN_BATCHES`.
- TC-TECH-010 — Discontinuation while active dossiers exist returns `409 PRODUCT_DISCONTINUATION_BLOCKED_BY_OPEN_REGISTRATIONS`.
- TC-TECH-011 — Discontinuation while site relationships active returns `409 PRODUCT_DISCONTINUATION_BLOCKED_BY_OPEN_SITE_RELATIONSHIPS`.
- TC-TECH-012 — Discontinuation attestation without executive authority co-sign for high-risk returns `401 MISSING_FOUNDER_COSIGN`.
- TC-TECH-013 — Product-confidential read by non-member returns `403 PRODUCT_CONFIDENTIAL_NOT_MEMBER`.
- TC-TECH-014 — Mutation when tenant `suspended` returns `403 TENANT_NOT_ACTIVE`.
- TC-TECH-015 — Schema migrations idempotent; RLS enabled on every Module 10 tenant-scoped table.
- TC-TECH-016 — Penetration test: cross-tenant product query without active URS-07 grant returns RLS-empty.
- TC-TECH-017 — Discovery view computes intersection correctly across `product` and `product_family` dimensions.
- TC-TECH-018 — Discovery export integrity manifest includes Merkle proofs per URS-06 BR-06-10.
- TC-TECH-019 — Static analysis finds zero LLM SDK references in Module 10 source.
- TC-TECH-020 — Lifecycle event emits dual audit per URS-08 DEC-08-18.
- TC-TECH-021 — Snapshot pinning: a regulated decision signed at spec v1 references v1 in its authority snapshot even after v2 is effective.
- TC-TECH-022 — Successor product creation preserves `successor_of_product_id`.
- TC-TECH-023 — `PRODUCT_CATALOGUE_VIEW_OPENED` and `PRODUCT_DISCOVERY_VIEW_OPENED` emit once per session.
- TC-TECH-024 — Multi-jurisdictional registration: a single product with multiple registrations per jurisdiction with distinct shelf-life values per jurisdiction.
- TC-TECH-025 — Periodic product review annual cadence enforced; reviewer signature captured.

### 16.3 Acceptance criteria (Given / When / Then)

- AC-10-FUN-01 — Given product creator attempts activation, When called, Then `403 APPROVER_IS_CREATOR`.
- AC-10-FUN-02 — Given high-risk product type, When activation submitted without executive authority co-sign, Then `401 HIGH_RISK_TYPE_REQUIRES_FOUNDER`.
- AC-10-FUN-03 — Given activation without approval evidence, When called, Then `409 APPROVAL_EVIDENCE_REQUIRED`.
- AC-10-FUN-04 — Given spec update without URS-13 linkage, When called, Then `400 URS_13_RECORD_REQUIRED`.
- AC-10-FUN-05 — Given recall suspension without independent reviewer, When called, Then `401 RECALL_DECISION_INDEPENDENT_REQUIRED`.
- AC-10-FUN-06 — Given discontinuation blockers exist, When discontinuation attempted, Then `409` with one of `PRODUCT_DISCONTINUATION_BLOCKED_BY_OPEN_BATCHES`, `PRODUCT_DISCONTINUATION_BLOCKED_BY_OPEN_REGISTRATIONS`, `PRODUCT_DISCONTINUATION_BLOCKED_BY_OPEN_SITE_RELATIONSHIPS`, `PRODUCT_DISCONTINUATION_BLOCKED_BY_OPEN_STUDIES`, `PRODUCT_DISCONTINUATION_BLOCKED_BY_OPEN_DELEGATIONS` per blocker category.
- AC-10-FUN-07 — Given mutation when tenant not `active`, Then `403 TENANT_NOT_ACTIVE`.
- AC-10-PERM-01 — Given non-member, When product-confidential read attempted, Then `403 PRODUCT_CONFIDENTIAL_NOT_MEMBER`.
- AC-10-PERM-02 — Given non-`tenant_admin_authority`, When attempting Module 10 administrative mutation, Then `403`.
- AC-10-AUD-01 — Every Module 10 mutation produces audit row through URS-06 in both tenant chain and global chain.
- AC-10-AUD-02 — Audit-write failure rolls back originating action.
- AC-10-DI-01 — Spec version immutable; chain hash verifies.
- AC-10-DI-02 — Backup-restore drill produces same product lifecycle history and chain HEAD as source.
- AC-10-INT-01 — URS-03 active-scope intersection on `product`/`product_family` produces correct discovery.
- AC-10-INT-02 — URS-08 tenant lifecycle gates Module 10 mutations.
- AC-10-INT-03 — URS-13 linkage required for spec / composition / container / storage updates.
- AC-10-REP-01 — Every export carries integrity manifest + electronic signature.
- AC-10-AI-01 — Static analysis finds zero LLM SDK references in Module 10.
- AC-10-NEG-01 — Every error code in §11.2 reachable by automated test.
- AC-10-PERF-01 — Discovery view p95 ≤ 2 s for representative-volume product.
- AC-10-SEC-01 — Penetration test: cross-tenant product query without active URS-07 grant returns RLS-empty.
- AC-10-MIG-01 — Module 10 migrations idempotent.
- AC-10-MIG-02 — Migrations bootstrap fixture; restore drill reproducible.

### 16.4 Requirements-to-test traceability

| Requirement | Plain-language | Technical | Given / When / Then |
|---|---|---|---|
| URS-10-FE-001 | — | (UI test) | — |
| URS-10-FE-002 | — | (UI test) | — |
| URS-10-FE-003 | TC-PLAIN-002 | TC-TECH-002 | AC-10-FUN-02 |
| URS-10-FE-004 | TC-PLAIN-006 | TC-TECH-005 | AC-10-DI-01 |
| URS-10-FE-005 | — | TC-TECH-024 | — |
| URS-10-FE-006 | — | (container closure UI test) | — |
| URS-10-FE-007 | — | TC-TECH-024 | — |
| URS-10-FE-008 | — | (relationships matrix test) | — |
| URS-10-FE-009 | — | TC-TECH-017 | AC-10-INT-01 |
| URS-10-FE-010 | TC-PLAIN-013 | TC-TECH-025 | — |
| URS-10-FE-011 | TC-PLAIN-009 | TC-TECH-009..011 | AC-10-FUN-06 |
| URS-10-FE-012 | TC-PLAIN-011 | TC-TECH-016 | AC-10-SEC-01 |
| URS-10-FE-013 | — | TC-TECH-015 | — |
| URS-10-FE-014 | — | (accessibility test) | — |
| URS-10-BE-001 | TC-PLAIN-003 | TC-TECH-001 | AC-10-FUN-01 |
| URS-10-BE-002 | TC-PLAIN-002 | TC-TECH-002 | AC-10-FUN-02 |
| URS-10-BE-003 | TC-PLAIN-005 | TC-TECH-004 | AC-10-FUN-04 |
| URS-10-BE-004 | TC-PLAIN-006 | TC-TECH-005 | AC-10-DI-01 |
| URS-10-BE-005 | TC-PLAIN-004 | TC-TECH-006 | — |
| URS-10-BE-006 | TC-PLAIN-008 | TC-TECH-007 | AC-10-FUN-05 |
| URS-10-BE-007 | TC-PLAIN-007 | TC-TECH-003 | AC-10-FUN-03 |
| URS-10-BE-008 | TC-PLAIN-007 | TC-TECH-003 | AC-10-FUN-03 |
| URS-10-BE-009 | TC-PLAIN-009 | TC-TECH-009..011 | AC-10-FUN-06 |
| URS-10-BE-010 | — | TC-TECH-012 | — |
| URS-10-BE-011 | — | TC-TECH-008 | — |
| URS-10-BE-012 | — | (DMF reference test) | — |
| URS-10-BE-013 | — | (RLD reference test) | — |
| URS-10-BE-014 | — | TC-TECH-017 | AC-10-INT-01 |
| URS-10-BE-015 | TC-PLAIN-010 | TC-TECH-013 | AC-10-PERM-01 |
| URS-10-BE-016 | TC-PLAIN-014 | TC-TECH-014 | AC-10-FUN-07 |
| URS-10-BE-017 | TC-PLAIN-011 | TC-TECH-016 | AC-10-SEC-01 |
| URS-10-BE-018 | — | TC-TECH-015 | AC-10-AUD-02 |
| URS-10-BE-019 | — | TC-TECH-020 | AC-10-AUD-01 |
| URS-10-BE-020 | TC-PLAIN-012 | TC-TECH-022 | — |
| URS-10-BE-021 | — | TC-TECH-021 | AC-10-DI-01 |
| URS-10-BE-022 | TC-PLAIN-013 | TC-TECH-025 | — |
| URS-10-BE-023 | — | (forward URS stub test) | — |
| URS-10-WF-001 | — | (state machine test) | — |
| URS-10-WF-002 | TC-PLAIN-005, TC-PLAIN-006 | TC-TECH-004, TC-TECH-005 | — |
| URS-10-WF-003 | — | (registration lifecycle test) | — |
| URS-10-WF-004 | TC-PLAIN-009 | TC-TECH-009 | AC-10-FUN-06 |
| URS-10-WF-005 | TC-PLAIN-013 | TC-TECH-025 | — |
| URS-10-DATA-001 | — | TC-TECH-021 | AC-10-DI-01 |
| URS-10-DATA-002 | — | TC-TECH-015 | — |
| URS-10-DATA-003 | — | TC-TECH-017 | AC-10-INT-01 |
| URS-10-SEC-001 | — | TC-TECH-015, TC-TECH-016 | AC-10-SEC-01 |
| URS-10-SEC-002 | TC-PLAIN-002 | TC-TECH-002 | — |
| URS-10-SEC-003 | TC-PLAIN-003, TC-PLAIN-004, TC-PLAIN-008 | TC-TECH-001, TC-TECH-006, TC-TECH-007 | — |
| URS-10-SEC-004 | TC-PLAIN-011 | TC-TECH-016 | AC-10-SEC-01 |
| URS-10-AUD-001 | — | TC-TECH-020, TC-TECH-023 | AC-10-AUD-01 |
| URS-10-AUD-002 | — | (server timestamp test) | — |
| URS-10-AUD-003 | — | TC-TECH-005 | — |
| URS-10-AUD-004 | — | (writer-presence test) | — |
| URS-10-AUD-005 | — | TC-TECH-020 | AC-10-AUD-01 |
| URS-10-AI-001 | — | TC-TECH-019 | AC-10-AI-01 |
| URS-10-AI-002 | — | (URS-32 integration test) | — |
| URS-10-INT-001 | — | TC-TECH-017 | AC-10-INT-01 |
| URS-10-INT-002 | — | (URS-04 integration test) | — |
| URS-10-INT-003 | TC-PLAIN-002 | TC-TECH-002 | — |
| URS-10-INT-004 | — | TC-TECH-020 | AC-10-AUD-01 |
| URS-10-INT-005 | TC-PLAIN-011 | TC-TECH-016 | AC-10-INT-02 |
| URS-10-INT-006 | TC-PLAIN-014 | TC-TECH-014 | AC-10-FUN-07 |
| URS-10-INT-007 | — | (URS-09 integration test) | — |
| URS-10-INT-008 | TC-PLAIN-005 | TC-TECH-004 | AC-10-INT-03 |
| URS-10-INT-009 | — | (notification test) | — |
| URS-10-REP-001 | — | TC-TECH-018 | AC-10-REP-01 |
| URS-10-REP-002 | — | TC-TECH-018 | — |
| URS-10-REP-003 | — | (TTL test) | — |
| URS-10-NOTIF-001 | — | (notification delivery test) | — |
| URS-10-NOTIF-002 | TC-PLAIN-011 | (cross-tenant notification test) | — |
| URS-10-VAL-001 | — | TC-TECH-015 | — |
| URS-10-VAL-002 | All applicable | All applicable | All applicable |
| URS-10-VAL-003 | — | (PQ test) | AC-10-PERF-01 |
| URS-10-VAL-004 | — | full TC-TECH suite | — |
| URS-10-VAL-005 | — | this table is the seed | — |
| URS-10-VAL-006 | — | (supplier qualification) | — |
| URS-10-VAL-007 | — | (evidence index) | — |
| URS-10-VAL-008 | — | TC-TECH-015 | AC-10-MIG-01, AC-10-MIG-02 |

---

## 17. Validation and CSV/CSA Evidence Expectations

| Item | Required evidence |
|---|---|
| URS traceability | Per §16.4 |
| Risk assessment | GAMP 5 risk register; risk-based assurance per FDA CSA |
| Configuration specification | Documented seed of high-risk product type list; regulatory pathway registry; storage condition vocabulary |
| Functional specification | Matches §6 |
| Design specification | Matches §6.1–§6.4 |
| Test protocols | IQ (schema, RLS, indexes, lifecycle bootstrap, scope-intersection bootstrap), OQ per URS-10-VAL-002, PQ per URS-10-VAL-003, regression per URS-10-VAL-004 |
| Test evidence | Pass / fail per protocol step |
| Defect log | Defects mapped to URS requirements |
| Requirements traceability matrix | Per §16.4 |
| Release approval | Electronically signed by Quality Lead, Validation Lead, Information Security Lead, Regulatory Affairs Lead, R&D / Formulation Lead, executive authority |
| Training record | Engineering, QA, validation, RA, R&D / formulation trained on Module 10 |
| Periodic review | Annual per Annex 11 §11; trigger reviews on every Class 1 / Class 2 change |
| Data migration evidence | Backfill of high-risk product type list; regulatory pathway registry; restore drill verifies product integrity |

### 17.1 Supplier and service-provider qualification pack

| Category | Required evidence |
|---|---|
| Cloud hosting provider | Inherited from URS-01 §17.1 |
| Document control provider (URS-12) | Right-to-audit; retention compliance |
| Notification provider (URS-30) | Inherited from URS-01 §17.1 |
| Backup / restore provider (URS-35) | Restore drill preserving product lifecycle and chain HEAD |
| Security-operations / SIEM | Alert routing per §12.9 |

### 17.2 Inspection-ready evidence index

| Evidence item | Owner | Location / system of record | Retention | Linked requirement | Inspection use |
|---|---|---|---|---|---|
| Drug substance record | RA / R&D | `drug_substances` + URS-06 | per substance retention | URS-10-BE-014 | demonstrate substance baseline |
| Drug product record (lifecycle) | RA / QA | `drug_products` + `product_lifecycle_events` + URS-06 | per regulatory framework | URS-10-WF-001 | demonstrate product registration history |
| Specifications versions | QA | `product_specifications` + URS-13 | per product retention | URS-10-DATA-001 | demonstrate quality acceptance criteria |
| Composition versions | R&D / QA | `product_compositions` + URS-12 | per product retention | URS-10-WF-002 | demonstrate formulation evidence |
| Container closure records | QA / Engineering | `sku_container_closures` + URS-12 E&L | per product retention | URS-10-FE-006 | demonstrate primary packaging evidence |
| Storage / shelf-life records | RA / QA | `product_storage_shelf_life` + URS-07 stability | per product retention | URS-10-FE-007 | demonstrate stability acceptance |
| Multi-jurisdictional registrations | RA | `product_registrations` + URS-12 dossier | retain (long-term) | URS-10-FE-005 | demonstrate marketing authorisations |
| DMF / RLD references | RA | `drug_master_files` + `rld_references` + URS-12 | retain (long-term) | URS-10-BE-012 | demonstrate supplier / reference compliance |
| Product / site relationships | QA / Manufacturing | `product_site_relationships` + URS-07 process validation | retain (long-term) | URS-10-INT-007 | demonstrate manufacturing scope |
| Periodic product reviews | QA | `periodic_product_reviews` + reviewer signatures | retain (long-term) | URS-10-WF-005 | demonstrate annual PPR compliance |
| Discontinuation records | RA / QA / executive authority for high-risk | `product_discontinuation_runs` + signatures | retain (long-term) | URS-10-BE-010 | demonstrate product retirement governance |
| Validation evidence pack (IQ / OQ / PQ) | Validation | testing system of record | retain per release | URS-10-VAL-001..008 | release approval |
| Release approval (electronically signed) | Founder, QA, RA, Validation, IS, R&D | URS-12 | retain per release | URS-10-VAL-007 | demonstrate authority chain for release |

---

## 18. Closed Decision and Dependency Register

### 18.1 Closed Launch Decisions Register

| Closed decision | Spec reference |
|---|---|
| Product hierarchy (brand → family → product → SKU) | DEC-10-01 |
| Drug product types and sub-classifications | DEC-10-02 |
| Product lifecycle states | DEC-10-03 |
| Multi-jurisdictional product registrations register | DEC-10-04 |
| Specifications register per-product per-version immutable | DEC-10-05 |
| High-level composition / formula record | DEC-10-06 |
| Container closure system register | DEC-10-07 |
| Storage conditions and shelf-life register | DEC-10-08 |
| Per-jurisdiction shelf-life values | DEC-10-09 |
| Product-bound discovery via URS-03 active-scope | DEC-10-10 |
| URS-13 linkage required for spec / composition / container / storage updates | DEC-10-11 |
| Cross-product relationships | DEC-10-12 |
| Multi-jurisdictional product registration model | DEC-10-13 |
| High-risk product type list with executive authority co-sign | DEC-10-14 |
| Product discontinuation workflow | DEC-10-15 |
| Product / site manufacturing relationship register | DEC-10-16 |
| DMF reference linkage | DEC-10-17 |
| RLD / bioequivalence reference linkage | DEC-10-18 |
| Forward roadmap deferred capabilities (forward manufacturing BOM module / URS-24 Stability / URS-23 / URS-11 / URS-26) | DEC-10-19 |
| Activation requires approval evidence | DEC-10-20 |

### 18.2 Dependencies

| ID | Dependency | Source | Impact | Blocking? | Mitigation |
|---|---|---|---|---|---|
| DEP-10-01 | URS-01 authentication, MFA | URS-01 | Substrate | Blocking | none |
| DEP-10-02 | URS-02 base roles | URS-02 | Product role overlay | Blocking | none |
| DEP-10-03 | URS-03 active scope | URS-03 | Discovery | Blocking | none |
| DEP-10-04 | URS-04 e-sig ceremony | URS-04 | Lifecycle / amendment signatures | Blocking | none |
| DEP-10-05 | URS-05 authority resolver, scope dimensions | URS-05 | Product role gating | Blocking | none |
| DEP-10-06 | URS-06 audit substrate | URS-06 | Audit | Blocking | none |
| DEP-10-07 | URS-07 study scope and stability / process-validation evidence | URS-07 | Product / site qualification; shelf-life | Blocking | none |
| DEP-10-08 | URS-08 tenant lifecycle | URS-08 | Mutation gating | Blocking | none |
| DEP-10-09 | URS-09 site catalogue | URS-09 | Product / site relationships | Blocking | none |
| DEP-10-10 | URS-12 document control | URS-12 | Specifications, dossiers, URS-13 records, DMF / RLD evidence | Blocking | none |
| DEP-10-11 | URS-30 notifications | URS-30 | Reminders, escalations | Non-blocking | direct e-mail fallback |
| DEP-10-12 | URS-35 backup / restore / cold storage | URS-35 | Long-term archive | Blocking for PQ | DR drill |
| DEP-10-13 | URS-11 forward Supplier Management | URS-11 | API supplier qualification | Forward (post-launch) | DMF reference linkage |
| DEP-10-14 | Forward manufacturing BOM module (exact module-number is a program dependency; not URS-13 which is Change Control) | Forward | Detailed BOM | Forward (post-launch) | high-level composition only |
| DEP-10-15 | URS-24 forward Stability | URS-24 | Stability tables | Forward (post-launch) | URS-07 study evidence reference |
| DEP-10-16 | URS-23 forward Batch Records | URS-23 | Batch expiry per shelf-life | Forward (post-launch) | shelf-life policy only |
| DEP-10-17 | URS-26 forward Recall Management | URS-26 | Recall integration | Forward (post-launch) | recall-related suspension entry |

---

## 19. Completeness Checklist

| Item | Yes / No | Evidence |
|---|---|---|
| Controlled-document metadata complete? | Yes | front matter |
| Approval block complete? | Yes (signatures pending) | Document Approval section |
| Version history complete? | Yes | Version History |
| Glossary complete? | Yes | §0.6 |
| Scope complete? | Yes | §2 |
| Roles and permissions complete? | Yes | §3 |
| User journeys complete? | Yes | §4 (28 journeys) |
| Front-end complete? | Yes | §5 |
| Backend complete? | Yes | §6 |
| Data model complete? | Yes | §6.2 |
| APIs complete? | Yes | §6.3 |
| Workflow / lifecycle complete? | Yes | §6.4 |
| Business rules complete? | Yes | §6.5 |
| Audit trail complete? | Yes | §6.6 |
| AI / Human-in-the-Loop complete? | Yes (no AI in core) | §8 |
| Reports complete? | Yes | §9 |
| Notifications complete? | Yes | §10 |
| Cross-module wiring complete? | Yes | §7 |
| Change-impact matrix complete? | Yes | §7.2 |
| Negative paths complete? | Yes | §11 |
| Security / privacy / tenant isolation complete? | Yes | §12 |
| ALCOA+ complete? | Yes | §13 |
| Regulatory mapping complete? | Yes | §14 |
| Predicate-rule applicability matrix complete? | Yes | §14.1 |
| Requirements register complete? | Yes | §15 |
| Acceptance tests complete? | Yes | §16 |
| Requirements-to-test traceability complete? | Yes | §16.4 |
| Validation evidence complete? | Yes | §17 |
| Supplier and service-provider qualification pack complete? | Yes | §17.1 |
| Decisions and dependencies registered (no internal decisions outstanding)? | Yes | §18.1, §18.2 |
| Final quality gate answered? | Yes | §20 |

---

## 20. Final Module Output Quality Gate

**URS approval is separate from validation execution.** This document becomes "Approved Controlled URS — released for engineering implementation and validation planning" upon signature capture in the Document Approval block; it becomes "Released for validation execution" only after URS-10-VAL-008 (Migration Evidence Gate) and the §17 validation evidence pack are satisfied. **No Module 10 internal open questions remain.**

- **Specification ready for engineering review?** Yes — every MUST requirement is declarative, atomic, and testable.
- **Specification ready for quality validation review?** Yes — IQ/OQ/PQ scope specified; traceability matrix in §16.4.
- **Specification ready for compliance review?** Yes — ALCOA+ table, regulatory mapping (Part 11, Annex 11, Annex 1, Part 211 §211.180(e), Part 314, Part 600, Directive 2001/83/EC, India D&C Act, ICH M4 / Q1 / Q6 / Q12, DEA, ATMP, Orange Book, Part 320), predicate-rule applicability matrix populated.
- **Specification ready for inspector / client review?** Yes — every regulated assertion traces to a regulatory clause and a test case.
- **Specification ready for Founder approval?** Yes.
- **Blocking gaps?** None internal. Cross-module dependencies (§18.2) are owned by their named companion modules and tracked at the program level. Forward-roadmap dependencies (URS-11 / URS-13 Change Control / forward manufacturing BOM module / URS-24 Stability / URS-23 / URS-26) are documented but not blocking for launch as Module 10 retains references through the high-level composition record, the DMF reference linkage, and the URS-07 / URS-12 evidence linkages. The Installation Qualification gate URS-10-VAL-008 and the §17 evidence pack govern only the transition to "Released for validation execution".
- **Two-step release path:**
  1. **Approved Controlled URS — released for engineering implementation and validation planning.** Reached upon signature capture.
  2. **Released for validation execution.** Reached after URS-10-VAL-008 is satisfied and the §17 evidence pack is complete.

---

## Appendix A — Product Lifecycle Composite

```mermaid
flowchart TD
  A([Tenant administrator creates drug substance]) --> B[DRUG_SUBSTANCE_CREATED]
  B --> C[Tenant creates drug product referencing substance]
  C --> D[DRUG_PRODUCT_CREATED state in_development]
  D --> E[SKUs created per market]
  E --> F[High-level composition published with URS-13 linkage]
  F --> G[Specifications version published with URS-13 linkage]
  G --> H[Container closure registered per SKU]
  H --> I[Storage / shelf-life published with URS-13 linkage]
  I --> J[Tenant submits regulatory dossiers per jurisdiction]
  J --> K[PRODUCT_MOVED_TO_IN_REGISTRATION state in_registration]
  K --> L[Regulator approves; approval logged]
  L --> M[REGISTRATION_APPROVAL_LOGGED]
  M --> N{High-risk product type?}
  N -- yes --> O[product_owner + final_quality_approver + regulatory_oversight_admin + executive authority co-signs with MFA]
  N -- no --> P[product_owner signs activation independent of creator + final_quality_approver co-signs]
  O --> Q[PRODUCT_ACTIVATED state commercial]
  P --> Q
  Q --> R[URS-03 active-scope intersection begins; records bind to product]
  R --> S[Product / site relationships registered with validation co-sign]
  S --> T[Product manufactured; periodic product reviews run annually]
  T --> U{Lifecycle event?}
  U -- recall / hold --> V[PRODUCT_SUSPENDED with reason; cross-tenant studies notified]
  V --> W{Resolved?}
  W -- yes --> X[PRODUCT_RETURNED_TO_COMMERCIAL with executive authority for recall]
  X --> U
  W -- no, prolonged --> Y[Discontinuation initiation]
  U -- discontinuation --> Y
  Y --> Z[Pre-discontinuation gate: batches, registrations, sites, studies, delegations]
  Z --> AA{Blockers?}
  AA -- yes --> AB[Surface remediation list]
  AB --> Z
  AA -- no --> AC[Discontinuation attestation: product_owner + product_quality_lead + RA + executive authority for high-risk]
  AC --> AD[PRODUCT_DISCONTINUED state discontinued]
  AD --> AE[Historical records preserved; queries continue for inspection / annual review]
```

— End of Module 10 User Requirements Specification —




