{
 "design_id": "D08",
 "units": [
  {"unit": "U1",
   "human_action": {"present": true, "basis": "implied", "quote": "Establish the key questions:"},
   "machine_action": {"present": false, "basis": "none", "quote": ""},
   "control_acts": [
     {"type": "SET", "object": "key questions/objectives", "basis": "implied",
      "quote": "Establish the key questions:",
      "evidence_stated": null, "evidence_quote": "", "criterion_stated": null, "criterion_quote": ""}],
   "output": {"named": false, "quote": ""}},
  {"unit": "U2",
   "human_action": {"present": true, "basis": "explicit", "quote": "The analyst should inspect whether apparent hotspots are genuine signals or artifacts of high social-media use, tourist locations, hospitals, or large events."},
   "machine_action": {"present": true, "basis": "implied", "quote": "Remove duplicates, reposts, spam, bots, commercial content, and likely automated accounts."},
   "control_acts": [
     {"type": "JUDGE", "object": "apparent hotspots", "basis": "explicit",
      "quote": "The analyst should inspect whether apparent hotspots are genuine signals or artifacts of high social-media use, tourist locations, hospitals, or large events.",
      "evidence_stated": true, "evidence_quote": "apparent hotspots",
      "criterion_stated": true, "criterion_quote": "genuine signals or artifacts of high social-media use, tourist locations, hospitals, or large events"}],
   "output": {"named": true, "quote": "Create maps and time-series plots for:"}},
  {"unit": "U3",
   "human_action": {"present": true, "basis": "explicit", "quote": "so analysts can verify that clusters reflect real reports rather than media attention"},
   "machine_action": {"present": true, "basis": "implied", "quote": "Create a text-classification pipeline that separates relevant illness signals from unrelated discussion."},
   "control_acts": [
     {"type": "SET", "object": "symptom/outbreak vocabulary", "basis": "implied",
      "quote": "Develop a symptom/outbreak vocabulary",
      "evidence_stated": null, "evidence_quote": "", "criterion_stated": null, "criterion_quote": ""},
     {"type": "SET", "object": "weighting of report types", "basis": "implied",
      "quote": "Prioritize self-reports and direct reports of illness. Downweight news coverage because it can cause geographically widespread posting without reflecting local disease incidence.",
      "evidence_stated": null, "evidence_quote": "", "criterion_stated": null, "criterion_quote": ""},
     {"type": "ANNOTATE", "object": "sample of posts", "basis": "implied",
      "quote": "Manually label a representative sample of posts.",
      "evidence_stated": null, "evidence_quote": "", "criterion_stated": null, "criterion_quote": ""},
     {"type": "JUDGE", "object": "false positives and false negatives", "basis": "implied",
      "quote": "Review false positives, such as \"sick of work,\" and false negatives caused by slang.",
      "evidence_stated": true, "evidence_quote": "false positives, such as \"sick of work,\" and false negatives caused by slang",
      "criterion_stated": false, "criterion_quote": ""},
     {"type": "JUDGE", "object": "sampled posts on map/timeline", "basis": "explicit",
      "quote": "so analysts can verify that clusters reflect real reports rather than media attention",
      "evidence_stated": true, "evidence_quote": "sampled posts on a map and in a timeline",
      "criterion_stated": true, "criterion_quote": "that clusters reflect real reports rather than media attention"}],
   "output": {"named": true, "quote": "Create a text-classification pipeline that separates relevant illness signals from unrelated discussion."}},
  {"unit": "U4",
   "human_action": {"present": false, "basis": "none", "quote": ""},
   "machine_action": {"present": true, "basis": "implied", "quote": "Normalize by population and, where possible, baseline posting activity."},
   "control_acts": [],
   "output": {"named": true, "quote": "Build a spatiotemporal illness-signal dataset"}},
  {"unit": "U5",
   "human_action": {"present": true, "basis": "explicit", "quote": "Analysts should inspect the early cluster against:"},
   "machine_action": {"present": true, "basis": "implied", "quote": "Estimate the first sustained cluster rather than relying on a single isolated post."},
   "control_acts": [
     {"type": "JUDGE", "object": "early cluster location", "basis": "explicit",
      "quote": "Analysts should inspect the early cluster against:",
      "evidence_stated": true, "evidence_quote": "the early cluster",
      "criterion_stated": false, "criterion_quote": ""}],
   "output": {"named": true, "quote": "Useful outputs:"}},
  {"unit": "U6",
   "human_action": {"present": true, "basis": "implied", "quote": "Define downwind sectors from possible source locations."},
   "machine_action": {"present": true, "basis": "implied", "quote": "Build a network using adjacency, highways, transit corridors, or commuting flows."},
   "control_acts": [
     {"type": "SET", "object": "downwind sectors", "basis": "implied",
      "quote": "Define downwind sectors from possible source locations.",
      "evidence_stated": null, "evidence_quote": "", "criterion_stated": null, "criterion_quote": ""},
     {"type": "JUDGE", "object": "spatial plume shift relative to wind changes", "basis": "implied",
      "quote": "Check whether the spatial plume shifts when winds change.",
      "evidence_stated": true, "evidence_quote": "the spatial plume shifts when winds change",
      "criterion_stated": true, "criterion_quote": "whether the spatial plume shifts when winds change"},
     {"type": "JUDGE", "object": "symptom profiles", "basis": "implied",
      "quote": "Examine symptom profiles: gastrointestinal symptoms may support waterborne exposure, though respiratory illness would weaken that hypothesis.",
      "evidence_stated": true, "evidence_quote": "symptom profiles",
      "criterion_stated": true, "criterion_quote": "gastrointestinal symptoms may support waterborne exposure, though respiratory illness would weaken that hypothesis"}],
   "output": {"named": true, "quote": "Build a network using adjacency, highways, transit corridors, or commuting flows."}},
  {"unit": "U7",
   "human_action": {"present": true, "basis": "implied", "quote": "Death-related posts should be manually reviewed because they may be news reports, rumors, or duplicated messages."},
   "machine_action": {"present": true, "basis": "implied", "quote": "Create a separate high-priority stream for posts mentioning:"},
   "control_acts": [
     {"type": "JUDGE", "object": "death-related posts", "basis": "implied",
      "quote": "Death-related posts should be manually reviewed because they may be news reports, rumors, or duplicated messages.",
      "evidence_stated": true, "evidence_quote": "Death-related posts",
      "criterion_stated": true, "criterion_quote": "because they may be news reports, rumors, or duplicated messages"}],
   "output": {"named": true, "quote": "Create a separate high-priority stream for posts mentioning:"}},
  {"unit": "U8",
   "human_action": {"present": false, "basis": "none", "quote": ""},
   "machine_action": {"present": false, "basis": "none", "quote": ""},
   "control_acts": [],
   "output": {"named": false, "quote": ""}},
  {"unit": "U9",
   "human_action": {"present": true, "basis": "implied", "quote": "inspect site"},
   "machine_action": {"present": false, "basis": "none", "quote": ""},
   "control_acts": [],
   "output": {"named": false, "quote": ""}},
  {"unit": "U10",
   "human_action": {"present": false, "basis": "none", "quote": ""},
   "machine_action": {"present": false, "basis": "none", "quote": ""},
   "control_acts": [],
   "output": {"named": false, "quote": ""}}
 ],
 "loops": [
  {"id": "L1", "units": ["U3"], "cue_quote": "Re-run classification after vocabulary refinement.",
   "redefines": ["PARAMETERS_CRITERIA"], "redefines_basis": "explicit",
   "trigger_stated": false, "trigger_quote": "",
   "exit_stated": false, "exit_quote": "",
   "decided_by": "unstated"}
 ],
 "parameters": [
  {"id": "P1", "name": "symptom/outbreak vocabulary", "unit": "U3", "tuned": true,
   "initial_value_stated": true, "range_or_rule_stated": true, "set_by": "unstated",
   "quote": "Develop a symptom/outbreak vocabulary", "detail_quote": "Include terms related to:"},
  {"id": "P2", "name": "time lag", "unit": "U6", "tuned": false,
   "initial_value_stated": false, "range_or_rule_stated": false, "set_by": "unstated",
   "quote": "with plausible time lags", "detail_quote": ""},
  {"id": "P3", "name": "time resolution", "unit": "U4", "tuned": false,
   "initial_value_stated": false, "range_or_rule_stated": true, "set_by": "unstated",
   "quote": "Use multiple time resolutions:", "detail_quote": "Multi-day rolling averages, to reduce noise"}
 ],
 "branches": [
  {"id": "B1", "unit": "U2", "type": "CONDITIONAL_PATH", "outcomes_stated": true,
   "quote": "If available, add public-transit routes, schools, workplaces, event venues, wastewater infrastructure, and clinic/ER data."},
  {"id": "B2", "unit": "U6", "type": "HYPOTHESES_COMPARED", "outcomes_stated": true,
   "quote": "Evaluate each mechanism against its expected spatial, temporal, and textual signature."},
  {"id": "B3", "unit": "U6", "type": "CONDITIONAL_PATH", "outcomes_stated": true,
   "quote": "Map reports relative to water bodies, water-treatment assets, and supply zones if available."},
  {"id": "B4", "unit": "U9", "type": "CONDITIONAL_PATH", "outcomes_stated": true,
   "quote": "Early persistent cluster near a venue or workplace | Conduct exposure investigation, inspect site, identify attendees/workers"},
  {"id": "B5", "unit": "U9", "type": "CONDITIONAL_PATH", "outcomes_stated": true,
   "quote": "Spread follows social or transport connections | Expand testing, contact tracing, public messaging, and clinic capacity in linked zones"},
  {"id": "B6", "unit": "U9", "type": "CONDITIONAL_PATH", "outcomes_stated": true,
   "quote": "Downwind pattern is consistent across weather changes | Investigate environmental/industrial sources; issue exposure precautions while confirming"},
  {"id": "B7", "unit": "U9", "type": "CONDITIONAL_PATH", "outcomes_stated": true,
   "quote": "Cluster aligns with a water-service area | Test water supply, inspect treatment/distribution systems, issue boil-water or alternative-water guidance if warranted"},
  {"id": "B8", "unit": "U9", "type": "CONDITIONAL_PATH", "outcomes_stated": true,
   "quote": "Severe clusters exceed local healthcare capacity | Deploy mobile clinics, emergency transport, PPE, triage support, and surge staffing"},
  {"id": "B9", "unit": "U10", "type": "HYPOTHESES_COMPARED", "outcomes_stated": true,
   "quote": "the strongest supported hypothesis, competing explanations, evidence quality, and what data would confirm or refute each explanation"}
 ],
 "global_statements": [],
 "uncertain": [
  {"unit": "U2", "item": "250-500 m grid cell size as a parameter", "reason": "A range is named but no listed parameter-type term (threshold, window, radius, etc.) explicitly applies, so it is unclear whether this qualifies under Section 6."},
  {"unit": "U8", "item": "whether 'Provide a regularly updated operational dashboard' counts as machine action/named output", "reason": "'Provide' is not on either verb list and no explicit output cue (produces, Output:, create/build/generate) is used, though named deliverables follow."},
  {"unit": "U3", "item": "trigger for vocabulary refinement before re-run", "reason": "The review of false positives/negatives precedes the re-run but no explicit conditional statement links them as cause and effect."}
 ]
}
