Cascade Advisory Patch Shape
Validation constraints for the envelope of a CAP file (advisory:CascadeAdvisoryPatch). Implements the required-envelope-metadata clause of PROFILE.md C6 and the closed-enumeration constraints on advisory:advisoryClass and advisory:cadence. Trusted-issuer membership is NOT validated here — see the file-level comment about D-Q3.
Human Summary
CascadeAdvisoryPatch must carry exactly one non-empty advisory:humanSummary (PROFILE.md C6)
Advisory Class
CascadeAdvisoryPatch must declare advisory:advisoryClass as one of the six published advisory:AdvisoryClass named individuals (SafetyCritical, VariantReclassification, DrugInteraction, LabReferenceRangeUpdate, SurveillanceGuidelineUpdate, CarrierFrequencyUpdate)
Issuer
CascadeAdvisoryPatch must declare advisory:issuer as a single IRI. Per-pod issuer-trust enforcement (D-Q3) is a runtime concern handled by the CAP applier reading <pod>/trust/issuers.ttl, not this shape.
Issued At
CascadeAdvisoryPatch must declare exactly one advisory:issuedAt xsd:dateTime
Advisory ID
advisory:advisoryId is recommended so later advisories can target this one via advisory:supersedes
Supersedes
advisory:supersedes must reference an advisory:CascadeAdvisoryPatch IRI
Applicable Until
advisory:applicableUntil should be an xsd:dateTime; absence means open-ended applicability
Profile Version
advisory:profileVersion is recommended (e.g. "0.1") so the applier can reject unsupported profile versions
Issuer Display Name
Evidence URL
advisory:evidenceUrl should be an IRI pointing at publicly-citable supporting evidence
Applies To Active Only
Cadence
advisory:cadence, if present, must be one of the six published advisory:Cadence named individuals (EveryAppOpen, Daily, Weekly, Monthly, Quarterly, Annually)
Signature
advisory:signature (detached JWS, RFC 7515) is strongly recommended; absence forces the applier to queue the patch for explicit user trust review (PROFILE.md §Profile validation step 4)
Signature Issuer (iss)
Signature Issued At (iat)
Signature Expires At (exp)
Signature Content Type (cty)
advisory:signatureContentType, if present, should be "application/x-cascade-advisory-patch" for v0.1
Trusted Issuer Shape
Validation constraints for advisory:TrustedIssuer records. These records live per-pod (typically at <pod>/trust/issuers.ttl) — the protocol does NOT operate a centralized registry. How the record entered the pod's trust graph is captured by advisory:trustSource.
Trusted Issuer ID
TrustedIssuer must carry exactly one advisory:trustedIssuerId (xsd:anyURI). It MUST equal advisory:issuer on any patch this issuer signs.
Trusted Issuer Public Key
TrustedIssuer must carry exactly one advisory:trustedIssuerPublicKey (Ed25519, JWK string or multibase-encoded raw bytes) for signature verification
Trust Source
TrustedIssuer must declare advisory:trustSource as one of the four published advisory:TrustSourceEnum named individuals (RecommendedStarterList, UserAdded, ImportedFromRegistry, VerifiedViaDID)
Trusted Issuer Display Name
advisory:trustedIssuerName is recommended for human-readable UI display
Trust Added At
Auto-Apply Policy Shape
Validation constraints for advisory:AutoApplyPolicy records. Auto-apply is opt-in by default; the user adds policy records explicitly. Each policy MUST link to at least one advisory:AutoApplyScope tuple.
Applies To (Auto-Apply Scope)
AutoApplyPolicy must link to at least one advisory:AutoApplyScope via advisory:appliesTo
Effective From
Effective Until
Requires Quorum
advisory:requiresQuorum is a v1.0 forward-compat hook; v0.1 appliers MUST treat it as if absent
Auto-Apply Scope Shape
Validation constraints for advisory:AutoApplyScope tuples. Each scope MUST pair exactly one trusted issuer with exactly one advisory class — the auto-apply matcher fires only when a patch's (advisory:issuer, advisory:advisoryClass) equals at least one scope.
Scope Issuer
AutoApplyScope must declare exactly one advisory:scopeIssuer referencing an advisory:TrustedIssuer record
Scope Advisory Class
AutoApplyScope must declare exactly one advisory:scopeAdvisoryClass drawn from the six published advisory:AdvisoryClass named individuals