Skip to content

CAP-PFM-ELG-005Replace obsolete rules without losing their uses

Markdown

CAP-PFM-ELG-005

Replace obsolete rules without losing their uses

Markdown
  • DocumentDraft
  • Product intentConfirmed
  • ImplementationObserved

KindCapabilityProduct areaPlatformModuleEligibility, Responsibilities and AttentionRevision1

Read atservices-platform ad3f6a65react-console baf6dae3

The Formal Contract

The narrative above explains; the sections below are authoritative — the rules, scenarios and tests this document binds.

Outcomes
Existing consumers continue using deprecated rules while new uses choose alternatives.A replacement operation transfers compatible uses together.Archiving waits until all dependencies have cleared.
Surfaces
consoleapi
Intent sources
services-platform:docs/milestones/plans/PLAT-M11-plan.md#2. Scope

Controls

21 controls apply, from the corpus control catalogue.

TC-AZ-001 TC-AZ-002 TC-AZ-003 TC-AZ-004 TC-DAT-001 TC-DAT-002 TC-DAT-003 TC-DAT-004 TC-IAM-001 TC-IAM-006 TC-LOG-004 TC-LOG-005 TC-PI-001 TC-PI-003 TC-PI-005 TC-TEN-001 TC-TEN-002 TC-TEN-003 TC-VEN-001 TC-VEN-002 TC-VEN-003

Permissions

KeyChecked atScope
platform.eligibility.retireapitenant

Business Rules

9 rules, 8 to be proved before approval. A rule's product intent is derived from its origin: 9 confirmed by a product decision, the rest inheriting this capability's confirmed.

IdRuleKindEnforced atProvenance
01must prove
Confirmed
Retirement authority is required to deprecate, archive, restore, delete or transfer a rule’s uses; draft-writing and binding authority alone do not suffice.
permissionapitest
services-platform:modules/eligibility/tests/e2e/eligibility-definitions.e2e.spec.js#refuses the deprecation to a writer without the retire permission, 403
02must prove
Confirmed
Deprecation preserves existing evaluations but blocks new uses, with an optional replacement that is active, published and different from the original rule.
lifecycleservicetest
03must prove
Confirmed
Archive rejects rules still followed or pinned by active bindings or referenced by live rules’ current drafts or published versions, reporting both dependency counts.
policyservicetest
services-platform:modules/eligibility/tests/integration/services/persistence/definitions.integration.spec.js#refuses while an active binding follows it, counting the binding, and leaves it active
04must prove
Confirmed
Archive blocks drafts, new bindings and binding reactivation; restoration returns the rule to active standing and removes its replacement designation.
lifecycleservicetest
services-platform:modules/eligibility/tests/unit/lifecycle.spec.js#refuses making a binding of an archived definition active again
05must prove
Confirmed
Replacement moves compatible following bindings without duplicating a consumer use, republishes referencing rules and leaves pinned bindings and references for a person to resolve.
lifecycleservicetest
services-platform:modules/eligibility/tests/integration/services/governance/lifecycle.integration.spec.js#lists the pinned binding for a person to move, and leaves it on the deprecated definition
06must prove
Confirmed
Transferring references requires an active published replacement and reports any referencing expression that fails validation without publishing it.
validationservicetest
07must prove
Confirmed
Deletion removes only never-published rules and their drafts, dependencies and plans, refusing rules with bindings, references or resolved conversion reviews.
policyservicetest
services-platform:modules/eligibility/tests/e2e/eligibility-definitions.e2e.spec.js#refuses a published definition, 409, naming the archive instead
08must prove
Confirmed
A lifecycle request with an obsolete version fails, while a request without a version proceeds against the current record.
origin: services-platform:docs/milestones/plans/PLAT-M11-plan.md#Appendix A. Behaviours that stand as built unless Andrew objects
validationservicetest
09
Confirmed
The product should support withdrawing one published version as the retirement permission describes, but no exposed operation currently offers that action.
lifecycleserviceunknown

Scenarios

IdGivenWhenThenProvenance
01An expression has one active price use and one published reference.The administrator requests archive.The refusal counts both dependencies; removing them permits archive and later restoration.test
02An obsolete annual rule designates a rolling replacement.The administrator transfers its dependencies.Followers move, pins remain for manual handling and references receive fresh releases with change notes.test

The Markdown files under specs/ in rhythmsoftware/rhythm-v2-docs are the canonical source of truth. This reader is a generated, read-only projection of them.