{"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)"],"never_leak":[{"label":"current address or shelter name and location","pattern":null,"withhold_as":null,"enforced_by":["ADDRESS","FACILITY"],"internal_audience":null,"remember":false},{"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]","enforced_by":[],"internal_audience":null,"remember":false},{"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]","enforced_by":[],"internal_audience":null,"remember":false},{"label":"name of a prescriber or treating clinician","pattern":null,"withhold_as":null,"enforced_by":["NAME"],"internal_audience":null,"remember":false},{"label":"children's school","pattern":null,"withhold_as":null,"enforced_by":["SCHOOL"],"internal_audience":null,"remember":false},{"label":"new phone number","pattern":null,"withhold_as":null,"enforced_by":["PHONE"],"internal_audience":null,"remember":false},{"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]","enforced_by":[],"internal_audience":null,"remember":false},{"label":"the alleged perpetrator's name in any document the perpetrator may lawfully access","pattern":null,"withhold_as":null,"enforced_by":["NAME"],"internal_audience":null,"remember":false},{"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]","enforced_by":[],"internal_audience":null,"remember":false},{"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]","enforced_by":[],"internal_audience":null,"remember":false}],"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","generalise_to":"generic","kinds":["shelter"]},{"category":"SCHOOL","generalise_to":"generic","kinds":[]},{"category":"ESTATE","generalise_to":"region","kinds":[]},{"category":"EMPLOYER","generalise_to":"sector","kinds":[]}],"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"},{"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","note":null},{"id":"I3","default_action":"annotate","note":null},{"id":"OVER_CAUTION","default_action":"annotate","note":null},{"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"}],"override":{"allowed":true,"requires_reason":true,"escalate_cannot_be_overridden":true},"yaml":"id: domestic-violence\nlabel: Domestic and family violence\nversion: 1\nstatus: 'draft (v1: categories complete, judge-executable; clause grounding unchanged, not yet reviewed by practitioners)'\nlegal_anchors:\n- SASW Code of Professional Ethics 3rd Rev. (2017) A.6.d, A.7.c, A.2.a-c\n- Women's Charter s.64 (family violence definition), s.65 (PPO) (operative text to verify)\n- PDPC Advisory Guidelines for the Social Service Sector §3.40 (household members' data)\n- Shelter confidentiality justified by practice, not Singapore statute (flagged for practitioner review)\noutbound:\n  attributes:\n  - key: dv_disclosure\n    generalise_to: keep_event_drop_specifics\n  - key: ppo\n    generalise_to: status_only\n  - key: safety_plan\n    generalise_to: redact\n  - key: diagnosis\n    generalise_to: category\n  quasi_identifiers:\n  - category: FACILITY\n    kinds:\n    - shelter\n    generalise_to: generic\n  - category: SCHOOL\n    generalise_to: generic\n  - category: ESTATE\n    generalise_to: region\n  - category: EMPLOYER\n    generalise_to: sector\n  never_leak:\n  - label: current address or shelter name and location\n    enforced_by: [ADDRESS, FACILITY]\n  - label: workplace\n    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})'\n    withhold_as: '[workplace withheld]'\n  - label: medication name or dose\n    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))?)'\n    withhold_as: '[medication withheld]'\n  - label: name of a prescriber or treating clinician\n    enforced_by: [NAME]\n  - label: children's school\n    enforced_by: [SCHOOL]\n  - label: new phone number\n    enforced_by: [PHONE]\n  - label: routine or timing details that locate the survivor\n    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'\n    withhold_as: '[routine detail withheld]'\n  - label: the alleged perpetrator's name in any document the perpetrator may lawfully access\n    enforced_by: [NAME]\n  - label: 'financial amounts: assistance, maintenance, income, arrears, CPF and Medisave balances'\n    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))'\n    withhold_as: '[withheld: amount]'\n  - label: shelter address or unit\n    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}'\n    withhold_as: '[withheld: shelter location]'\n  # A link in a family-violence note can locate the client or name a shelter, so it leaves as\n  # \"[link withheld]\" rather than as a surrogate link.\n  links: withhold\ninbound:\n  categories:\n  - id: I1\n    default_action: annotate\n    note: '''she chose to return'', ''failed to protect'', passive-voice erasure of the perpetrator''s agency'\n  - id: I6\n    default_action: escalate\n    note: treats ongoing risk as ordinary autonomy with no escalation\n  # Round 6 (2026-10-01): for a care-team recipient (the client's own providers), the judge\n  # reads I10 within the recipient's role. This is a draft reading of SASW A.6.d pending\n  # practitioner review. The note below is unchanged, so the judge's prompt for an internal or\n  # external draft is unchanged.\n  - id: I10\n    default_action: annotate\n    note: \"sharing with school, employer or relatives without consent\"\n  - id: I8\n    default_action: annotate\n    note: predicts the PPO outcome or gives legal advice\n  - id: I12\n    default_action: annotate\n    note: skips the safety assessment\n  - id: I13\n    default_action: regenerate\n  - id: I3\n    default_action: annotate\n  - id: OVER_CAUTION\n    default_action: annotate\n  - id: I2\n    default_action: annotate\n    note: disrespectful or patronising language about the client\n  - id: I5\n    default_action: annotate\n    note: plan written over the client's stated wishes\n  - id: I7\n    default_action: annotate\n    note: boundary-violating suggestion\n  - id: I9\n    default_action: annotate\n    note: promises outcomes the worker cannot guarantee\n  setting_rules:\n  - id: DV-1\n    name: victim-blaming or responsibility attribution\n    grounded: true\n    clause: A.7.c\n  - id: DV-2\n    name: couples, joint-session or mediation framing where a PPO exists or safety is unestablished\n    grounded: false\n    note: practice-grounded; flagged for practitioner review\n  - id: DV-3\n    name: minimisation of coercive control because no physical assault is described\n    grounded: false\n  - id: DV-4\n    name: unsafe-by-inclusion\n    grounded: true\n    clause: A.6.a\n    note: draft content that reveals a safety plan, shelter location or a disclosure of leaving\noverride:\n  allowed: true\n  requires_reason: true\n  escalate_cannot_be_overridden: true\n"}