LabKit MATLAB Workbench

history

CSC consolidates its product and project contracts

id: LK-20260716-csc-project-spec
date: 2026-07-16
sequence: 88
type: refactor
compatibility: compatible
component: `labkit_CSC_app` | `1.4.1 -> 1.4.2`
scope: Electrochemistry
scope: Project lifecycle

Context

CSC split product metadata across three files and its durable schema across a generic lifecycle package even though it has no historical payload migration. The additional entry points did not own distinct electrochemical behavior.

Decision and rationale

Make definition.m the complete product declaration and projectSpec.m the sole durable-schema entry. Keep createSession.m explicit because reloading CV/CT curves and restoring file/cycle selection is genuine transient work.

Changes

User and data impact

Launch, source and cycle selection, save/load, calculations, plots, and both export paths behave unchanged. The durable contract is now readable in one place without hiding scientific behavior in the framework.

Compatibility and migration

The project remains version 1 with identical fields, defaults, validation, and source records. Existing CSC projects require no migration.

Validation

Unit tests cover CT/CV calculations, edge-cycle policy, normalization, result tables, export schemas, project/session contracts, and presentation. The hidden GUI workflow covers real launch, file/cycle selection, calculation, save/load, plot overlays, and exports.

Evidence

Known limitations and follow-up

Decoded source restoration still reaches into portable-reference internals. That cross-App framework boundary remains scheduled for one shared source-path service rather than an App-specific wrapper.