---
id: ADR-PFM-ELG-004
title: Applications declare vocabularies by complete manifest at deployment
product_area: platform
module: eligibility
revision: 1
status: proposed
design_intent: confirmed
source_sha:
  services-platform: ad3f6a6582843008ed0f5a17b131878d15829af1
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
decision: >-
  Register each application’s complete conditions, purposes, responsibility
  areas and attention kinds, rejecting invalid manifests atomically.
constrains:
  - DOM-PFM-ELG-001
  - DOM-PFM-ELG-004
  - DOM-PFM-ELG-005
  - SVC-PFM-ELG-eligibility
  - SVC-PFM-ELG-responsibilities
  - SVC-PFM-ELG-attention
  - WF-PFM-ELG-001
  - WF-PFM-ELG-010
  - WF-PFM-ELG-015
origin: >-
  Eligibility Engine architecture D-05 (condition types declared in the owning
  service and published at deploy), approved 2026-10-17; responsibilities and
  attention architecture D-13 (registries in Platform, conditions in the
  applications), approved 2026-10-18; the shared Platform registration pattern
alternatives:
  - option: Apply only incremental additions
    why_not: >-
      Dropped declarations would remain unless removal were separately
      maintained.
  - option: Allow staff to edit application declarations
    why_not: >-
      Declarations refer to application code and cannot safely become arbitrary
      configuration.
consequences:
  - Omission withdraws or retires an entry according to its registry rules.
  - Eligibility dependencies can block withdrawal.
  - >-
    Only changed condition-type declarations require a higher declaration
    version.
supersedes: []
evidence:
  - >-
    services-platform at ad3f6a6:
    docs/proposals/eligibility/17-decision-register.md;
    docs/milestones/PLAT-M11-eligibility-rules.md (Decisions)
  - >-
    services-platform at ad3f6a6:
    docs/proposals/responsibilities-and-attention/16-decisions.md;
    docs/milestones/PLAT-M15-home-attention-and-responsibilities.md (Decisions)
  - >-
    services-platform at ad3f6a6: modules/eligibility/services/registry/;
    modules/responsibilities/services/registration/;
    modules/attention/services/registration/;
    docs/standards/record-write-contracts.md (W3)
---
# Applications declare vocabularies by complete manifest at deployment

## Context

Deployed declarations must describe the complete vocabulary owned by an application.

## Decision

Register each application’s complete conditions, purposes, responsibility areas and attention kinds, rejecting invalid manifests atomically.

## Alternatives Considered

Apply only incremental additions: Dropped declarations would remain unless removal were separately maintained.

Allow staff to edit application declarations: Declarations refer to application code and cannot safely become arbitrary configuration.

## Consequences

Omission withdraws or retires an entry according to its registry rules. Eligibility dependencies can block withdrawal. Only changed condition-type declarations require a higher declaration version.
