Change Management Plan¶
Claim boundary
This is a proposed product-control document, not an approved QMS SOP and not FDA clearance. Align with the organization's formal quality system before treating it as official procedure.
Status: proposed product control. Align this with the organization's formal quality management system before using it as an official SOP.
Purpose¶
This document defines a proposed change-management structure for MethylPipeline as a regulated software product. It connects source control, CI/CD, schemas, workflow definitions, deployment bundles, and model validation evidence.
Change Classes¶
| Class | Examples | Typical Impact |
|---|---|---|
| Documentation only | Clarifications, link fixes, non-procedural notes | No software behavior change |
| Infrastructure | CI pipeline, deployment script, VM setup, gateway config | May affect release or operations |
| Schema or contract | Pydantic model, JSON Schema, OpenAPI, action catalog | May affect portal editing, worker payloads, DB payloads |
| Workflow topology | DomainProgram nodes, branches, FOREACH scopes, bindings | May affect execution order and dashboard plan |
| Scientific method | Detector, classifier, validation, mapper/enricher behavior | May affect results and model claims |
| Configuration profile | Profile/site actionConfig values or defaults |
May affect outputs without code changes |
| Security | Authentication, tokens, managed identity, network restrictions | May affect access and compliance posture |
| Model artifact | Frozen panel, classifier, predictor, calibration, backend choice | Directly affects predictions |
Source Control Controls¶
Recommended controls:
- all production code changes occur through reviewed pull requests,
- release builds originate from signed or protected tags where available,
- release tags use SemVer-compatible identifiers,
- generated schemas and action catalogs are committed with model changes,
- docs are updated in the same change when behavior, deployment, or operator instructions change,
- production deployment uses approved release bundles, not ad hoc checkout execution on workers.
Impact Assessment Checklist¶
For each change, answer:
- Does it change an action input or output model?
- Does it require regenerating JSON Schemas?
- Does it change
schemas/actions/catalog.json? - Does it change a DomainProgram or compiled workflow graph?
- Does it change study/site/profile configuration semantics?
- Does it affect a tunable science parameter?
- Does it affect worker idempotency signatures or artifact manifests?
- Does it affect portal display or Gantt-style workflow status?
- Does it affect release packaging, deployment, rollback, or worker setup?
- Does it affect model outputs, metrics, calibration, or biological ranking?
- Does it require re-running validation evidence packages?
Required Gates By Change Type¶
Every non-documentation change additionally runs the full regression suite
(all packages) with coverage reporting as a pull-request gate. See
continuous-integration-and-regression-testing.md.
| Change Type | Required Gates |
|---|---|
| Documentation only | Link check, doc freshness where applicable; regression suite still runs |
| Python package code | Full regression suite passes, coverage report reviewed, import checks, relevant package tests |
| Task I/O model | methyl-export-task-schemas --check, schema review |
| Action catalog | methyl-export-action-catalog --check, DB seed/redeploy plan |
| Config model | config schema export/check, config boundary check |
| DomainProgram | domain schema export/check, compile smoke, workflow deploy plan |
| Worker protocol | worker tests, OpenAPI/schema review, protocol docs update |
| Deployment scripts | shell syntax, packaging smoke, release runbook update |
| Scientific behavior | full regression suite, targeted new/updated tests, validation artifact review, possible model revalidation |
| New feature | new tests demonstrating the feature and guarding against future regression |
| Security | threat/permission review, deployment runbook update, verification step |
Current CI hooks and documentation checks are summarized in
../DOCUMENTATION_AUDIT.md and ../../ci/README.md.
Schema and Contract Change Policy¶
When changing a workflow-exposed action boundary:
- Update the Pydantic input/output model.
- Keep
extra="forbid"unless there is a documented compatibility reason. - Regenerate task schemas.
- Regenerate action catalog if the action metadata changed.
- Run boundary checks.
- Update reference documentation.
- Confirm portal/editor compatibility when the schema is operator-facing.
Workflow workers must consume materialized task payloads and resolvedConfig.
They must not re-read study manifests, profiles, or environment variables for
tool parameters when a resolved task configuration is present.
Configuration Change Policy¶
Study manifests describe cohorts, comparisons, paths, chromosomes, regulatory metadata, and validation partitions. They must not carry tool parameters.
Tunable action parameters belong in:
- site
actionConfig, - profile
actionConfig, - instance/program override where explicitly intended.
Changing a profile or site parameter can change scientific outputs even without code changes. For regulated use, such changes should receive impact assessment and may require a new evidence package.
Workflow Topology Change Policy¶
DomainProgram changes can affect:
- node order,
- parallelism,
- branch behavior,
- FOREACH scope expansion,
- task bindings,
- output variable propagation,
- portal dashboard shape.
Any production DomainProgram change should be compiled, schema-validated, deployed as a new workflow version, and tied to release/evidence records.
Release and Deployment Change Policy¶
The standard production release path is:
- Tag MethylExtractor when native code changes.
- Tag MethylPipeline when Python, worker, schema, or runtime-bundle content changes.
- Run release assembly with explicit component version pins.
- Generate a release manifest with checksums.
- Deploy through the gated production pipeline.
- Promote to
/work/goliath/current. - Restart or roll workers according to the runbook.
Rollback promotes a previous release bundle and restarts workers. A rollback should be recorded with reason, affected instances, and verification results.
Model Change and Revalidation Policy¶
Treat the following as a new model version:
- changed stable DMP panel,
- changed production freeze inputs,
- changed classifier or predictor backend,
- changed training cohort or validation partition,
- changed profile/site parameters that affect detector, classifier, predictor, mapper, enrichment, or model selection,
- changed software behavior that affects model features or probabilities.
Revalidation expectations should scale with impact:
| Change | Suggested Revalidation |
|---|---|
| Documentation only | No model revalidation |
| Deployment script only | Deployment smoke and release verification |
| Schema-only compatible addition | Schema checks and portal/editor verification |
| Action output shape | Worker/protocol tests and portal verification |
| Scientific parameter profile | Re-run affected validation stage or full evidence package |
| Detector/classifier/predictor behavior | Re-run model creation and holdout evidence |
| Training cohort or intended-use claim | New or amended validation evidence package |
Deviations and Emergency Changes¶
Emergency fixes should still produce:
- linked issue or incident record,
- affected release/version,
- risk assessment,
- minimal verification evidence,
- rollback plan,
- post hoc review,
- documentation update if operator behavior changed.
Change Record Template¶
## Change Record: <title>
- Change ID:
- Date:
- Author:
- Reviewer(s):
- Class:
- Affected release:
- Affected workflow/action/config:
- Summary:
- Rationale:
- Impact assessment:
- Required gates:
- Test evidence:
- Schema/catalog changes:
- Deployment impact:
- Model/evidence impact:
- Rollback plan:
- Approval: