← JUNECONTENT HISTORY

Update to JUNE

Snapshot Sep 30, 2026 · 23:00 UTC · version 1.0.0

Collection source: not recorded for this historical snapshot.

WHAT CHANGED · RULE-BASED ANALYSIS

First saved snapshot

No earlier snapshot is available to establish a change.

Compare saved observations

Download comparison JSON
Full technical diff · 0 changed fields
Full snapshot data
{
  "name": "june-prepare-correspondence",
  "description": "Draft or send controlled outgoing correspondence from a JUNE case and its filed documents. Use when a user asks to prepare or send an email or beA dispatch, select case attachments, resolve an eligible case participant's address, or start JUNE's outgoing-message and dispatch-check workflow.",
  "included_files": [
    {
      "relative_path": "agents/openai.yaml",
      "size_in_bytes": 464
    }
  ],
  "skill_md_contents": "---\nname: june-prepare-correspondence\ndescription: Draft or send controlled outgoing correspondence from a JUNE case and its filed documents. Use when a user asks to prepare or send an email or beA dispatch, select case attachments, resolve an eligible case participant's address, or start JUNE's outgoing-message and dispatch-check workflow.\n---\n\n# Prepare JUNE correspondence\n\nTreat dispatch as an external, irreversible action. Never send to a guessed address, use documents from another case, or invent recipient, sender, or provider identifiers.\n\n## Resolve the case and attachments\n\n1. Resolve the case with `get_case_by_reference`, then call `get_case_context`. Stop if the case is archived or read-only instead of attempting a dispatch.\n2. Select attachments from `get_all_documents_for_case`, `get_documents_by_ids`, or `azure_search`.\n3. Verify every selected document belongs to the resolved case. Keep the first document as the master unless the user designates another one.\n\n## Resolve the recipient and address\n\n1. Select an active entry from `get_case_context.case.participants`. Retain its `id` as the participant ID and its `contact_id` as the recipient contact ID.\n2. Call `get_contact(contact_id)` for the full contact. Read the available `emailAddresses` from that result; the case context intentionally does not include them.\n3. If starting with `search_contacts`, call `get_contact` for the chosen match and verify that its contact ID occurs among the selected case's participants. A contact search result alone is not an eligible recipient.\n4. If the contact is not yet a case participant, stop. Offer `add_case_participant` only when the user asks to add the contact, and resolve the role with `get_value_list(\"Roles\")`.\n5. If no E-mail address is stored, stop. Never substitute an address supplied outside the selected contact record.\n6. If several addresses are stored, show them and ask the user to choose the exact destination.\n7. Pass the chosen address as both `email` and `send_to` unless the user explicitly selects two different addresses from that same eligible participant. The server validates both fields independently.\n\n## Resolve sender and channel\n\n1. Use the case's `clerk_id` from `get_case_context` or the authenticated caller ID from `whoami`; no other sender ID is permitted.\n2. For this tool contract, use provider type 2 for E-mail and provider type 1 for beA.\n3. Draft subject and body in the user's language. Do not add unsupported factual or legal assertions.\n\n## Confirmation boundary\n\nIf the user asks only to prepare or draft correspondence, return the draft and do not call `process_dispatch_document`.\n\nImmediately before an actual send, show:\n\n- case reference\n- channel\n- participant and contact ID\n- recipient name and exact destination address\n- subject and complete body\n- document IDs, filenames, master document, and attachment order\n- sender identity\n\nObtain explicit confirmation of that complete summary. An earlier general request to prepare correspondence is not permission to send.\n\n## Send and report\n\nCall `process_dispatch_document` once after confirmation. The tool starts the actual dispatch and creates the outgoing-message record before it attempts to create the later dispatch-check task. The check task is not a pre-send approval gate.\n\nNever retry automatically after a timeout or ambiguous response. Inspect `get_outgoing_messages_for_case` and `get_tasks_for_case` first because the message may already have been dispatched even when task creation failed.\n\nReport dispatch status, outgoing-message or dispatch ID, check-task status and ID, and any manual review still required. If validation rejects a recipient, address, sender, or attachment, stop and correct the verified JUNE record rather than bypassing the check.\n"
}

SHA-256: 9bb7a24818d901fe7a84d66688219f2b9891415e2a6c99dd06fea9f3dbe01e40