V0.12 Scope Freeze#
Summary#
v0.12 is the diagnostics and supportability hardening release for pdelie.
Its purpose is:
harden diagnostics and reporting around generator fitting, verification, and orbit/coverage supportability without adding new numerical scope.
Committed release theme:
existing stable Heat/Burgers/weak-report/KdV/reporting surfaces -> fit and verification diagnostics -> orbit/coverage reporting feasibility -> release supportability
v0.12 does not add a new PDE and does not promote Kuramoto-Sivashinsky runtime APIs.
The v0.11 KS evidence remains internal feasibility/no-go evidence.
Motivation From V0.11 KS No-go#
v0.11 added the public order-4 derivative backend extension:
compute_spectral_fd_derivatives(field, *, max_spatial_order=4)
It also evaluated normalized scalar 1D periodic Kuramoto-Sivashinsky internally. The result was useful but not strong enough for public runtime promotion:
KS residual feasibility passed with large margin
mass drift passed with large margin
held-out canonical translation verification passed
vertical-slice evidence passed through
reference_fallbackdirect residual-based SVD fitting was out of tolerance
direct SVD span distance was around
0.418stable KS generator/residual/example promotion was deferred
The main supportability gap is diagnostic, not PDE coverage:
fit diagnostics do not expose full singular values
fit diagnostics do not expose condition number
epsilon sensitivity is not standardized
fallback-backed versus direct-fit evidence needs clearer reporting
orbit/coverage diagnostics are not yet reusable library utilities
v0.12 should address those supportability gaps before any further numerical expansion.
Stable Scope#
The stable scope carried into v0.12 remains:
canonical
FieldBatch,DerivativeBatch,ResidualBatch,GeneratorFamily,InvariantMapSpec, andVerificationReportuniform rectilinear scalar 1D stable paths
Heat and Burgers strong-form paths
frozen
v0.8weak Heat/Burgers residual report APIsfrozen
v0.9normalized periodic short-horizon KdV strong pathfrozen
v0.10supportability reporting helpers underpdelie.reportingfrozen
v0.11order-4 spectral derivative extensionexisting polynomial translation fitting and finite-transform verification
The new v0.12 scope is supportability around those existing surfaces:
generator-fit diagnostic semantics
verification diagnostic semantics
reporting helper hardening, if public helper names are frozen in M1/M2
internal KS diagnostic sweep reporting, without promotion
orbit/coverage diagnostic feasibility, without augmentation APIs in M0
API/public-surface audit and compact release-gate coverage
Non-goals#
v0.12 explicitly does not include:
a new PDE
stable KS generator promotion
stable KS residual evaluator promotion
stable KS vertical-slice example promotion
KS imported parity
weak KS
weak derivative expansion
broad dataset adapters
PDEBench or The Well support
multidimensional grids
nonuniform grids
multivariable systems
custom KS initial-condition APIs
configurable KS coefficient families
neural generators
operator-facing symmetry work
manuscript-specific experiment policy
private-paper branch logic
private-paper thresholds, tables, figures, or labels
public orbit augmentation utilities in M0
public reporting helpers in M0
root
pdelieexport expansion unless a later milestone explicitly accepts it
Candidate Public API Policy#
M0 lands no public API.
If v0.12 lands public APIs later, they must be reporting or diagnostic helpers only.
Candidate public APIs must be frozen in M1 before implementation in M2 or M4.
Likely allowed API direction:
submodule-only helpers under
pdelie.reportingJSON-compatible runtime summaries
diagnostic reports over existing canonical objects and runtime reports
no new canonical object unless a later milestone proves it is necessary
Likely rejected API direction:
root
pdelieexportsstable KS generator/residual APIs
broad adapter APIs
manuscript-table or figure APIs
mutation-heavy augmentation APIs
downstream sparse-discovery experiment policy
docs/specs/API_STABILITY.md remains unchanged in M0.
It should change only if M2 or M4 actually lands a public reporting/diagnostic API.
M1 Fit and Verification Diagnostic Semantics Freeze#
M1 freezes one future M2 public reporting helper:
pdelie.reporting.summarize_generator_fit_diagnostics(
generator: GeneratorFamily,
) -> dict[str, Any]
Public helper policy:
helper lives under
pdelie.reportingonlyno root
pdelieexportinput is a
GeneratorFamilyoutput is a JSON-compatible plain Python dict
summary type is
generator_fit_diagnosticssummary schema version is
"0.1"wrong input type raises the existing typed schema validation error in M2
helper summarizes existing and future
GeneratorFamily.diagnosticshelper does not create a canonical object
helper does not mutate inputs
Frozen generator-fit diagnostic fields for M2:
parameterizationfit_modetraining_epsilonbasisbasis_delta_normsdesign_column_normssingular_valuescondition_numberfit_residualmin_delta_basisselected_coefficientssvd_coefficientsselected_span_distancesvd_span_distancereference_fallback_usedfallback_reasonevidence_label
Diagnostic conventions:
condition_number = largest_singular_value / smallest_singular_valueif the denominator is zero or nonfinite, report
condition_number = Nonefallback_reasonis a stable category string, not prosecurrent stable fallback category remains
svd_translation_span_driftevidence_labelcategories are:direct_svd_in_tolerancedirect_svd_out_of_tolerancereference_fallbackmixedunavailable
Verification diagnostic semantics:
pdelie.reporting.summarize_verification_report(...)remains the verification summary surfaceM2 may harden top-level verification summary fields for transform, span, and batch-error diagnostics if needed
M1 and M2 do not change verification classification rules
M1 and M2 do not change finite-transform behavior
M3 internal KS sweep semantics:
internal KS sweeps record epsilon, fit mode, fallback status/reason, selected span, SVD span, first verification error, classification, singular values, and condition number
sweeps are diagnostic artifacts, not promotion gates
API_STABILITY.md remains unchanged in M1.
It should be updated in M2 only if summarize_generator_fit_diagnostics(...) lands as public runtime API.
Milestones#
Milestone 0 - Scope Freeze#
Freeze v0.12 as diagnostics and supportability hardening, add this scope document, reset PLAN.md, and update ROADMAP.md.
M0 is docs-only. It does not change runtime code, tests, package metadata, README, changelog, release readiness, or API stability docs.
Milestone 1 - Fit / Verification Diagnostic Semantics Freeze#
Freeze diagnostic semantics before implementation.
Completed decisions:
future M2 helper is
pdelie.reporting.summarize_generator_fit_diagnostics(...)helper is submodule-only and returns a JSON-compatible runtime dict
summary type is
generator_fit_diagnosticssummary schema version is
"0.1"fit diagnostic fields, condition-number policy, fallback category policy, and evidence labels are frozen above
verification keeps
summarize_verification_report(...)as its public summary surfaceM3 KS sweep semantics are diagnostic-only and not promotion gates
Milestone 2 - Diagnostic / Reporting Helper Implementation#
Implement the M1-frozen diagnostics.
Completed implementation:
added
pdelie.reporting.summarize_generator_fit_diagnostics(...)enriched translation-fit diagnostics with singular values, condition number, design column norms, selected coefficients, selected span distance, and evidence label
updated
API_STABILITY.mdfor the new public reporting helperkept fitting coefficient selection unchanged
kept existing reporting summary shapes unchanged except for the new helper
kept KS public runtime APIs absent
Milestone 3 - Internal KS Diagnostic Sweep Harness#
Keep KS internal and diagnostic-only.
Completed scope:
bounded epsilon sweeps
selected span distance
SVD span distance
fallback status and reason
first verification error
singular values and condition number from the M2 fit diagnostics
no promotion gate
Completed sweep matrix:
epsilons:
1e-5,3e-5,1e-4,3e-4,1e-3variants:
defaultlower_amplitudewithamplitude=0.04shorter_timewithmax_time=0.1
Completed diagnosis:
all frozen variants concluded
fallback_stable_across_epsilonsno epsilon or cheap fixture variant recovered direct SVD in-tolerance behavior
fallback reason was stable as
svd_translation_span_driftresidual and verification evidence remained healthy
relative L2 drift remained diagnostic-only
no public KS generator, residual evaluator, example, imported parity, weak API, or root export landed
Milestone 4 - Orbit / Coverage Diagnostic Feasibility#
Evaluate paper-agnostic orbit and coverage diagnostics.
Completed direction:
internal test-only periodic
xcoverage diagnosticsinternal test-only finite-transform consistency diagnostics
deterministic JSON-compatible summary output
no artifact files by default
no public API promotion
Completed evidence:
half-coverage quarter-shift case covered
32 / 64points with coverage fraction0.5full-coverage quarter-shift case covered
64 / 64points with coverage fraction1.0stable Heat and KdV fixtures preserved dims, coords, var names, metadata, and mask under uniform translations
inverse-transform and period-wrap errors remained at floating-point noise levels
residual RMS was stable under shifts for both fixtures
transform provenance recorded
invariant_applyanduniform_translation
M4 did not implement private-paper policy, train-augmentation recipes, public orbit/coverage helpers, or API stability entries.
Milestone 5 - API / Public-surface Audit#
Audit API stability and public exports after any M2/M4 helper decisions.
Completed checks:
API_STABILITY.mdmatches actual public helper surfaceroot exports remain narrow
KS generator/residual/example APIs remain absent
weak KS remains absent
broad adapters remain absent
M4 orbit/coverage diagnostics remain internal test-only helpers
no public augmentation utilities landed
API_STABILITY.mdrequired no update in M5
Milestone 6 - Release Gate and Readiness#
Add compact v0_12-release-gate, align release-facing docs and package metadata, and close the direct Git-tag release path.
Release-gate expectations stay representative:
current release gate is compact
full editable tests cover historical gates
package smoke remains small
no KS promotion claims
no PyPI or TestPyPI publishing before the v1.0 publishing policy is accepted
Milestone 6: COMPLETE.
Completed closeout:
package metadata is aligned with
0.12.0release-facing docs are aligned with
v0.12.0CI exposes one compact current
v0_12-release-gatefull editable tests remain the historical gate coverage
package smoke remains compact and includes a tiny generator-fit diagnostic summary check
API_STABILITY.mdremains aligned and required no M6 changeM3 internal KS diagnostics and M4 orbit/coverage diagnostics remain internal
Relationship to Downstream Orbit-augmentation Work#
Downstream work has shown that coverage-mediated translation-orbit augmentation can help sparse PDE recovery under localized observations.
The reusable pdelie candidates are the generic mechanics:
finite-transform or orbit views over canonical
FieldBatchperiodic
xwindow coverage diagnosticsgeneric augmentation provenance summaries
runtime summaries for residual, fit, verification, and coverage results
finite-transform consistency checks
The downstream-only pieces remain outside pdelie:
manuscript-specific branch naming
sparse-regression policy decisions
dataset-specific train/test policy
paper-specific thresholds and labels
automatic augmentation recipes tuned to one experiment
v0.12 may evaluate reusable diagnostics for this direction.
It must not implement private-paper experiment policy.
Release-gate Expectations#
The eventual v0_12-release-gate should be compact and representative.
It should not duplicate full diagnostic, reporting, KS, or historical release-gate suites.
Expected release-gate shape:
public reporting/diagnostic APIs exist only if frozen and implemented in M2/M4
root export boundaries remain intact
stable Heat/Burgers/weak-report/KdV surfaces remain importable
order-4 derivative API remains documented and available
public KS generator/residual/example APIs remain absent
no weak KS API appears
examples remain JSON-compatible runtime summaries
package smoke remains small and avoids KS internal feasibility sweeps
Historical release-gate tests should remain runnable locally and covered by the full editable test suite.
Status#
v0.11: COMPLETE as KS feasibility/no-go closeoutMilestone 0: COMPLETE
Milestone 1: COMPLETE
Milestone 2: COMPLETE
Milestone 3: COMPLETE
Milestone 4: COMPLETE
Milestone 5: COMPLETE
Milestone 6: COMPLETE