policy pack

Back to the panel

Domestic and family violence policy pack

Pack id domestic-violence, version 1, status draft (v1: categories complete, judge-executable; clause grounding unchanged, not yet reviewed by practitioners).

Each policy pack is a YAML file. It names the sensitive details and the details that identify someone when combined, how each is generalised, what must stay on the premises, the conduct categories with their default actions (pass, annotate, regenerate or escalate), and the rules for keeping a flagged passage with a reason. This page shows the file policy-packs/domestic-violence.yaml as the server reads it.

Other packs: disability · youth-offending. For an application, the same pack is at /v1/packs/domestic-violence as JSON, and /v1/packs lists the packs.

id: domestic-violence
label: Domestic and family violence
version: 1
status: 'draft (v1: categories complete, judge-executable; clause grounding unchanged, not yet reviewed by practitioners)'
legal_anchors:
- SASW Code of Professional Ethics 3rd Rev. (2017) A.6.d, A.7.c, A.2.a-c
- Women's Charter s.64 (family violence definition), s.65 (PPO) (operative text to verify)
- PDPC Advisory Guidelines for the Social Service Sector §3.40 (household members' data)
- Shelter confidentiality justified by practice, not Singapore statute (flagged for practitioner review)
outbound:
  attributes:
  - key: dv_disclosure
    generalise_to: keep_event_drop_specifics
  - key: ppo
    generalise_to: status_only
  - key: safety_plan
    generalise_to: redact
  - key: diagnosis
    generalise_to: category
  quasi_identifiers:
  - category: FACILITY
    kinds:
    - shelter
    generalise_to: generic
  - category: SCHOOL
    generalise_to: generic
  - category: ESTATE
    generalise_to: region
  - category: EMPLOYER
    generalise_to: sector
  never_leak:
  - label: current address or shelter name and location
    enforced_by: [ADDRESS, FACILITY]
  - label: workplace
    pattern: '\b(?:works?|working|worked|employed|job)\b(?:\s+(?:part[- ]time|full[- ]time|shifts?|nights?))?(?:\s+as\s+an?\s+[a-z][\w-]*(?:\s+[a-z][\w-]*){0,2})?\s+(?:at|in|with|for)\s+(?P<span>(?!(?:January|February|March|April|May|June|July|August|September|October|November|December|Jan|Feb|Mar|Apr|Jun|Jul|Aug|Sept?|Oct|Nov|Dec|last|this|next)\b)(?:the\s+|a\s+|an\s+)?(?:(?-i:[A-Z])|[a-z][\w-]*\s+(?:shop|stall|outlet|bakery|restaurant|cafe|factory|centre|store|company|firm|office|hotel|hospital|clinic|school|mall)\b|(?:shop|stall|outlet|bakery|restaurant|cafe|factory|store|company|firm|office|hotel|mall)\b)(?:(?!\s+(?:and|but|or|who|which|that|where|while|when|if|because|so|since|until|not|never|don''t|do\s+not|does\s+not|did\s+not|asked|said|says)\b)[^.;,\n]){0,60})'
    withhold_as: '[workplace withheld]'
  - label: medication name or dose
    pattern: '(?P<span>(?:\b(?!(?:about|around|approximately|approx|total|only|and|with|takes?|taking|daily|of|at|than|over|under|up|to|dose|doses|dosage|increased|reduced|from)\b)[A-Za-z][A-Za-z-]{3,}(?:\s+(?:XR|XL|SR|CR|ER|CD|LA))?\s*\d+(?:\.\d+)?\s?(?:mg|mcg|µg|ml|units?|iu)\b|\b(?:risperidone|paliperidone|olanzapine|quetiapine|aripiprazole|clozapine|haloperidol|lithium|(?:sodium\s+)?valproate|lamotrigine|carbamazepine|levetiracetam|phenytoin|sertraline|fluoxetine|escitalopram|citalopram|paroxetine|fluvoxamine|venlafaxine|duloxetine|mirtazapine|bupropion|methylphenidate|ritalin|concerta|atomoxetine|diazepam|lorazepam|clonazepam|alprazolam|zolpidem|methadone|buprenorphine|suboxone|naltrexone|donepezil|memantine|insulin|metformin)\b(?:\s*\d+(?:\.\d+)?\s?(?:mg|mcg|µg|ml|units?|iu)\b)?|(?<=\bprescribed )(?-i:[A-Z][a-z]{3,})(?:\s*\d+(?:\.\d+)?\s?(?:mg|mcg|µg|ml|units?|iu)\b)?)(?:\s+(?:(?:once|twice|three times)\s+(?:a\s+)?(?:day|daily)|daily|nightly|at night|at bedtime|every (?:morning|night|evening)|in the (?:morning|evening)|nocte|mane|as needed|(?-i:OD|ON|BD|TDS|PRN)\\b))?)'
    withhold_as: '[medication withheld]'
  - label: name of a prescriber or treating clinician
    enforced_by: [NAME]
  - label: children's school
    enforced_by: [SCHOOL]
  - label: new phone number
    enforced_by: [PHONE]
  - label: routine or timing details that locate the survivor
    pattern: '\b(?:every|each)\s+(?:other\s+)?(?:mon|tues|wednes|thurs|fri|satur|sun)day\b(?:\s+(?:morning|afternoon|evening|night))?(?:\s+(?:at|from|around|by|before|after)\s+\d{1,2}(?:[:.]\d{2})?\s*(?:am|pm)?)?|\b(?:(?:mon|tues|wednes|thurs|fri|satur|sun)days?|weekdays|weekends)\s+(?:at|from|around|by|before|after)\s+\d{1,2}(?:[:.]\d{2})?\s*(?:am|pm)\b|\b(?:every|each)\s+(?:morning|afternoon|evening|night|weekday|weekend)\b|\b(?:the\s+)?(?:same\s+)?(?:bus\s+(?:service\s+|no\.?\s*|number\s+)?\d{1,3}[a-z]?|service\s+\d{1,3}[a-z]?|\d{1,3}[a-z]?\s+bus)\b|\b(?:the\s+)?(?:MRT|LRT|train)\s+(?:from|to|at)\s+(?-i:[A-Z])[\w''-]*(?:\s+(?-i:[A-Z])[\w''-]*){0,2}(?:\s+(?:to|from)\s+(?-i:[A-Z])[\w''-]*(?:\s+(?-i:[A-Z])[\w''-]*){0,2})?|\b(?-i:[A-Z])[\w''-]*(?:\s+(?-i:[A-Z])[\w''-]*){0,2}\s+(?:MRT|LRT)(?:\s+station)?\b'
    withhold_as: '[routine detail withheld]'
  - label: the alleged perpetrator's name in any document the perpetrator may lawfully access
    enforced_by: [NAME]
  - label: 'financial amounts: assistance, maintenance, income, arrears, CPF and Medisave balances'
    pattern: '(?:(?P<kw>\b(?:ComCare|SMTA|LTA|MediFund|Medisave|MediSave|MediShield(?:\s+Life)?|CPF(?:\s+(?:Ordinary|Special|MediSave|Medisave|Retirement))?|Silver\s+Support|ElderShield|CareShield(?:\s+Life)?|assistance|allowance|subsid(?:y|ies)|grants?|bursar(?:y|ies)|maintenance|payouts?|benefits?|income|salary|wages?|earn(?:s|ed|ing|ings)?|arrears|rent(?:al)?|debts?|loans?|owe[sd]?|owing|bills?|fees?|savings|balance)\b)(?:(?!\b(?:and|but|while|whereas)\b)[^.;,\n]){0,50}?(?:,\s*)?)?(?P<span>(?:S\$|SGD\s?|\$)\s?\d[\d,]*(?:\.\d{1,2})?(?:\s*(?:per|/|a|an|each|every)\s*(?:month|mth|week|wk|day|year|yr|quarter))?)(?(kw)|(?=(?:(?!\b(?:and|but|while|whereas)\b)[^.;,\n]){0,40}?\b(?:ComCare|SMTA|LTA|MediFund|Medisave|MediSave|MediShield(?:\s+Life)?|CPF(?:\s+(?:Ordinary|Special|MediSave|Medisave|Retirement))?|Silver\s+Support|ElderShield|CareShield(?:\s+Life)?|assistance|allowance|subsid(?:y|ies)|grants?|bursar(?:y|ies)|maintenance|payouts?|benefits?|income|salary|wages?|earn(?:s|ed|ing|ings)?|arrears|rent(?:al)?|debts?|loans?|owe[sd]?|owing|bills?|fees?|savings|balance)\b))'
    withhold_as: '[withheld: amount]'
  - label: shelter address or unit
    pattern: '(?:(?-i:[A-Z])[\w''-]*(?:\s+(?:of|for|the|and)\b)?\s+){0,5}\b(?:shelter|refuge)\b[^.;\n]{0,30}\b(?:address|unit|block|blk)\b[^.;\n]{0,60}'
    withhold_as: '[withheld: shelter location]'
  # A link in a family-violence note can locate the client or name a shelter, so it leaves as
  # "[link withheld]" rather than as a surrogate link.
  links: withhold
inbound:
  categories:
  - id: I1
    default_action: annotate
    note: '''she chose to return'', ''failed to protect'', passive-voice erasure of the perpetrator''s agency'
  - id: I6
    default_action: escalate
    note: treats ongoing risk as ordinary autonomy with no escalation
  # Round 6 (2026-10-01): for a care-team recipient (the client's own providers), the judge
  # reads I10 within the recipient's role. This is a draft reading of SASW A.6.d pending
  # practitioner review. The note below is unchanged, so the judge's prompt for an internal or
  # external draft is unchanged.
  - id: I10
    default_action: annotate
    note: "sharing with school, employer or relatives without consent"
  - id: I8
    default_action: annotate
    note: predicts the PPO outcome or gives legal advice
  - id: I12
    default_action: annotate
    note: skips the safety assessment
  - id: I13
    default_action: regenerate
  - id: I3
    default_action: annotate
  - id: OVER_CAUTION
    default_action: annotate
  - id: I2
    default_action: annotate
    note: disrespectful or patronising language about the client
  - id: I5
    default_action: annotate
    note: plan written over the client's stated wishes
  - id: I7
    default_action: annotate
    note: boundary-violating suggestion
  - id: I9
    default_action: annotate
    note: promises outcomes the worker cannot guarantee
  setting_rules:
  - id: DV-1
    name: victim-blaming or responsibility attribution
    grounded: true
    clause: A.7.c
  - id: DV-2
    name: couples, joint-session or mediation framing where a PPO exists or safety is unestablished
    grounded: false
    note: practice-grounded; flagged for practitioner review
  - id: DV-3
    name: minimisation of coercive control because no physical assault is described
    grounded: false
  - id: DV-4
    name: unsafe-by-inclusion
    grounded: true
    clause: A.6.a
    note: draft content that reveals a safety plan, shelter location or a disclosure of leaving
override:
  allowed: true
  requires_reason: true
  escalate_cannot_be_overridden: true

Back to the panel