This release-readiness check exercised the experimental files already tracked in
the repository on 2026-07-21 with xps-fitting-workbench 0.3.0. It is a software
workflow check, not a peer-reviewed XPS interpretation. Generated figures remain
under the ignored figures/diagnostic/experimental_validation/ directory.
Run the reproducible check from the repository root after uv sync:
PYTHONPATH=src MPLBACKEND=Agg python scripts/validate_experimental_workflow.pyPass --overwrite only to intentionally replace an earlier local validation set.
The validation script persists the configured C 1s and Cl 2p candidates before it
writes their review diagnostics, a candidate-model comparison, and raw overview
panels in both PNG and PDF. These are not final publication figures. Experimental
plots use the sample title PDI-H-COOH; the word Synthetic is reserved for
generated validation data.
For manuscript reproduction after scientific review, use the plotting-only command
in README.md with the accepted Phase 1 fit bundle and
configs/plots/c1s_publication.json. Unlike this broader validation script, that
route never invokes the optimiser and suppresses the sample title in the final panel.
The historical validation command saved PNG/PDF figures only; it did not persist its
in-memory FitResult, so those figures cannot provide the exact reviewed arrays.
All paths below are repository-relative. The VGD adapter parsed every tracked VGD
file. Narrow scans expose all 11 metadata fields collected by the adapter. Survey
scans expose 8/11; pass energy, dwell time, and periods are absent. The embedded
sample identifier is 3.10-3 in all three directories, so the directory label is
needed to distinguish samples and should be checked against the laboratory record.
| Sample | Core level | Format and bytes | Points | Parse | Fit configuration | Demonstration suitability |
|---|---|---|---|---|---|---|
| PDI-H-COOH | C 1s | VGD, 11,776 | 231 | Yes; metadata 11/11 | Four- and five-component JSON | Candidate-model diagnostic, with manual review |
| PDI-H-COOH | Cl 2p | VGD, 12,288 | 261 | Yes; metadata 11/11 | configs/fits/pdi_h_cooh_cl2p_constrained.json |
Constrained-fit diagnostic, with manual review |
| PDI-H-COOH | N 1s | VGD, 11,264 | 181 | Yes; metadata 11/11 | None | Ingestion and raw plotting only |
| PDI-H-COOH | O 1s | VGD, 11,776 | 201 | Yes; metadata 11/11 | None | Ingestion and raw plotting only |
| PDI-H-COOH | Survey | VGD, 20,992 | 1,361 | Yes; metadata 8/11 | None | Parser check only |
| PDI-Me-COOH | C 1s | VGD, 11,776 | 231 | Yes; metadata 11/11 | None specific to sample | Ingestion and raw comparison plot |
| PDI-Me-COOH | Cl 2p | VGD, 12,288 | 261 | Yes; metadata 11/11 | None | Parser check only |
| PDI-Me-COOH | N 1s | VGD, 11,264 | 181 | Yes; metadata 11/11 | None | Parser check only |
| PDI-Me-COOH | O 1s | VGD, 11,776 | 201 | Yes; metadata 11/11 | None | Parser check only |
| PDI-Me-COOH | Survey | VGD, 20,992 | 1,361 | Yes; metadata 8/11 | None | Parser check only |
| PDI-OMe-COOH | C 1s | VGD, 11,776 | 231 | Yes; metadata 11/11 | None specific to sample | Ingestion and raw comparison plot |
| PDI-OMe-COOH | Cl 2p | VGD, 12,288 | 261 | Yes; metadata 11/11 | None | Parser check only |
| PDI-OMe-COOH | N 1s | VGD, 11,264 | 181 | Yes; metadata 11/11 | None | Parser check only |
| PDI-OMe-COOH | O 1s | VGD, 11,776 | 201 | Yes; metadata 11/11 | None | Parser check only |
| PDI-OMe-COOH | Survey | VGD, 20,992 | 1,361 | Yes; metadata 8/11 | None | Parser check only |
Each sample directory also contains five XML companion files (6,667–8,026 bytes).
They are not direct spectrum inputs in the package and were inventoried but not
interpreted. The three legacy workbooks are PDI-H-COOH 2.xls (214,016 bytes),
PDI-Me-COOH 1.xls (215,552 bytes), and PDI-OMe-COOH 3.xls (214,016 bytes).
Pandas reported that the optional xlrd engine was unavailable. The supported
tabular workflow is CSV or XLSX through the declared dependencies; these old XLS
files therefore remain an explicitly unsupported ingestion case.
The PDI-H-COOH C 1s scan was fitted with
configs/fits/pdi_h_cooh_c1s_4.json and configs/fits/pdi_h_cooh_c1s_5.json.
Both seeded two-start fits converged to essentially identical RSS values between
starts. The five-component candidate lowered RSS by about 12.9% and had lower
AICc/BIC, but the residual remained strongly structured.
| Candidate | RSS | AICc | BIC | Durbin–Watson | Runs | Warnings |
|---|---|---|---|---|---|---|
| Four components | 1.6899e9 | 3676.51 | 3716.39 | 0.103 | 25 | 4 |
| Five components | 1.4717e9 | 3649.09 | 3695.34 | 0.112 | 53 | 4 |
Both candidates reported correlation above 0.95, the C–N/C–Cl centre at a bound, and the carboxylic centre and/or width at bounds. The low Durbin–Watson values and visible residual shape show that neither candidate is an adequate chemically validated description merely because the optimiser converged. The added satellite is a hypothesis, not an assignment proven by the information criteria.
The 2026-07-21 lifecycle rerun persisted these new experimental generations before
plotting at artifacts/candidates/PDI-H-COOH/C1s/c1s-4.bundle/ and
c1s-5.bundle/. Both contain 231 points, the raw-source SHA-256
080a8d87490cbf883c4c9becabc3982eeff35b1d7533a49e9a0bc30cf8a2f9f5,
nontrivial backgrounds, complete component/total/residual arrays, full-precision
centres, uncertainties, configurations, convergence metadata, and explicit
review_status = candidate. They replace no historical arrays and remain
publication-ineligible until a human review decision is recorded.
The PDI-H-COOH Cl 2p check used a 1.6 eV separation, exact 2:1 area ratio, shared
FWHM/fraction, and a linear background. It converged reproducibly at 199.992 and
201.592 eV, FWHM 0.966 eV, with RSS 1.0557e8 and Durbin–Watson 0.092. No automated
warning fired, but the visibly structured residual and low Durbin–Watson statistic
still require manual review of background, line shape, calibration, and possible
additional chemistry. Its unreviewed result is persisted at
artifacts/candidates/PDI-H-COOH/Cl2p/cl2p-constrained.bundle/.
PDI-Me-COOH and PDI-OMe-COOH C 1s spectra were parsed and plotted beside PDI-H-COOH without normalisation or fitted assignments. The PDI-H-COOH N 1s and O 1s spectra were likewise parsed and plotted as raw points. This confirms the reader and publication theme on real arrays while avoiding unsupported peak claims.
Synthetic examples recover the deliberately generated components and generally have cleaner residuals. The experimental scans have much larger count scales, baseline structure, correlated residuals, bound-sensitive components, and metadata identity ambiguity. Deterministic multistart stability therefore demonstrates only numerical repeatability for a configured model—not model adequacy or chemical truth.
Before reporting assignments, an analyst should verify energy calibration and sample identity, select physically defensible crop/background conventions, inspect residuals and parameter correlations, justify every component against chemical evidence, and assess uncertainty/replicates. Recommended next development is a reviewed configuration set for all three PDI samples, weighted residual statistics, simultaneous global fitting with explicit charging shifts, and validated Tougaard or asymmetric line shapes. Optional legacy XLS support and stronger residual- autocorrelation warnings are useful engineering follow-ups.