Skip to content

Essert.MF Development Backlog

Last updated: 2026-03-06

This is the central work item dashboard. RTM-001 is the single source of truth for requirement implementation status. This file tracks work items and their progress.


Status Legend

Status Meaning
Backlog Identified, not yet planned
Planned Scoped, requirement doc exists
In Progress Actively being worked on
Done Complete, tests verified

Completed Work

ID Title Priority Status URS Refs Phases Requirement Doc
SCHEMA-001 Database Schema Alignment High Done DAT-001.1, PAR-001.3 7/7 SCHEMA-001
FIX-001 Stale Ignoremessage.cs cleanup Low Done
DEBT-002 AutoMapper to Mapperly migration Medium Done 7/7 DEBT-002
FEAT-007 Native Windows Service Deployment (S7-1500 Open Controller) High Done INT-001.6, SYS-001.3 5/5 FEAT-007

Active & Planned Work

ID Title Priority Status URS Refs Phases Requirement Doc
FEAT-008 CI Pipeline with GitHub Actions High Planned SYS-001.4, INT-001.6 0/3 FEAT-008
FEAT-006 Docker Containerization (optional, dev/test/non-constrained) Medium Planned INT-001.5, INT-001.4, QUA-001.5 0/5 FEAT-006

Backlog

ID Title Priority URS Refs Description
DEBT-001 Changelog write path for new parameter groups Critical DAT-001.3 SCHEMA-001 Phase 6 added 23 changelog entities (EF read path). The write path — actually recording changes into db_changelogs when parameter modifications happen — is not connected for the 6 new groups (EGK, DistanceSensor, Pickit3D, SchmalzSCPSi, Lighting, VS) plus the 8 system parameter types. All parameter repository UpdateMappingWithChangelogAsync methods contain placeholder stubs (await Task.CompletedTask). GAMP5 compliance requires audit trails for all parameter changes.
FEAT-001 Cascading delete for parameter groups High PRD-001.5, PAR-001.4 DeleteMappingsForVersionHandler exists but is never called from the product/version delete path. DeleteProductWithAllVersionsAsync only removes product and version records — it does not cascade to delete parameter mappings across any of the 17+ parameter types. Orphaned parameter mapping records remain after product/version deletion.
FEAT-002 CRC read-time verification High DAT-001.2 CRC is calculated and stored on write (two-phase insert pattern). But there is no VerifyCrc or ValidateCrc method to re-verify integrity on read. URS-DAT-001.2 requires CRC to be "verifiable on read to detect tampering." Need to add verification capability in ICrcService and/or repository layer.
FEAT-003 Health check — multi-database connectivity Medium SYS-001.3 IsSystemHealthyAsync() only checks db_essert variable count. FS-SYS-001.3 specifies checking connectivity to all 8 databases with per-database status and response time. UnitOfWork.CanConnectToAllDatabasesAsync() exists and checks all databases but is not used by the health endpoint.
FEAT-004 Missing measurement type handlers Medium QUA-001.1 Only 4 of 14 measurement types have handlers: EGP, Kann, Length, Valve. Missing: Camera, CMMT, Consumption, CycleTime, Force, Posunit, Pressure, Shock, Temperature, Weight. Need to verify which types are actually needed per current deployments and implement or descope.
FEAT-005 GraphQL parameter operations Low INT-001.3 GraphQL covers core bounded contexts (24Q/26M/4S) but has no parameter CRUD operations. REST has 24 parameter controllers. Assess whether GraphQL coverage is needed for parameter management or if REST-only is acceptable.

Folder Structure

Requirement documents are organized by lifecycle state and category:

docs/requirements/
├── BACKLOG.md                    # This file — central dashboard (always in root)
├── Template/                     # Requirement document template
│   └── REQUIREMENT-TEMPLATE.md
├── Backlog/                      # Identified, not yet planned
│   └── {CATEGORY}/              # e.g., FEAT/, DEBT/, FIX/, SCHEMA/
├── Planned/                      # Scoped, requirement doc exists
│   └── {CATEGORY}/
├── InProgress/                   # Actively being worked on
│   └── {CATEGORY}/
└── Done/                         # Complete, tests verified
    └── {CATEGORY}/

Rules: - Category subfolders (FIX/, DEBT/, FEAT/, SCHEMA/) are created on-demand - When a work item changes state, move its doc to the corresponding state folder - Simple items (no dedicated doc) are tracked only in this BACKLOG.md - Gold standard reference: SCHEMA-001 (7-phase completed doc)


Cross-References

  • RTM-001 (single source of truth for requirement status): docs/gamp5/RTM/RTM-001-traceability-matrix.md
  • Requirement template (for multi-phase work items): docs/requirements/Template/REQUIREMENT-TEMPLATE.md
  • Lifecycle rules (mandatory workflow): .claude/rules/lifecycle.md
  • GAMP5 index: docs/gamp5/README.md