---
name: government-communications
description: "Draft government press releases, media response statements, and social media posts. Covers formal (.docx) and journalistic/social-media styles. Designed for Indonesian government officials responding to news, DPRD inquiries, or public issues."
version: 1.0.0
author: Hermes Agent
license: MIT
platforms: [linux, macos, windows]
metadata:
  hermes:
    tags: [government, press-release, media-response, social-media, communications, Indonesia, docx]
    related_skills: [powerpoint]
---

# Government Communications

Draft press releases, media response statements, and social media posts for government officials — particularly Indonesian regional government (Pemprov/Kabupaten) staff responding to news coverage, DPRD inquiries, or public issues.

## When to Use

- User asks to "buat rilis", "buat tanggapan", "counter berita", or respond to a news article
- User needs a press release for a government office (Dinas, Bidang, Pemprov)
- User wants to post on official social media (Instagram, Facebook, WhatsApp)
- User needs to respond to DPRD questions or public criticism
- User mentions "rilis pers", "siaran pers", or "statement"

## Critical Style Rule

**Default to JOURNALISTIC tone, NOT formal/bureaucratic.**

The user explicitly rejected overly formal language ("Bentuknya formil sekali"). When the destination is social media or public-facing channels, use:

- **Engaging headline** — not "RILIS PERS" but an action-oriented title (e.g., "DISBUNAK KALSEL TANGGAPI ISU TELUR LUAR DAERAH")
- **Strong lead** — open with a bold quote or commitment, not "Menanggapi pemberitaan..."
- **Q&A structure** — "Apa masalahnya?" → "Apa yang dilakukan?" (conversational, not numbered sections 1-2-3)
- **Pull quotes** — bold+italic attributed quotes from the official
- **Plain language** — avoid bureaucratic jargon ("sebagaimana mestinya", "demikian disampaikan")
- **Hashtags** — include relevant hashtags at the end
- **CTA** — close with a call for collaboration/dialogue

**Formal .docx version** is still needed for official records, but the social media version is the primary deliverable.

## Workflow

### Step 1 — Read & Understand the News

1. Extract the article using `web_extract` (if URL provided) or `browser_navigate` (if behind paywall)
2. Identify: Who said what? What's the criticism/issue? What agency is involved?
3. Determine the counter-argument or response angle

### Step 2 — Draft the Journalistic Version (Primary)

Structure for social media / public-facing post:

```
[AGENCY ACRONYM] [ACTION VERB] [ISSUE]:
[Subtitle / commitment statement]

[DATELINE] — [Opening quote or bold commitment]

[1-2 paragraphs context: who raised the issue, when, where]

[Section: Acknowledge & appreciate]
"We mengapresiasi dan terbuka..."

[Section: "Apa sebenarnya masalahnya?" — list real problems honestly]
  - Problem 1 (bold lead-in)
  - Problem 2
  - Problem 3
  + Luruskan miskonsepsi (correct misunderstanding)

[Section: "Apa yang sedang dilakukan?" — concrete actions]
1. [Action area 1] — bold heading + explanation
2. [Action area 2]
3. [Action area 3]
4. [Action area 4]
5. [Action area 5]

[Pull quote — bold+italic, attributed to official by name+title]

[Closing paragraph — why this matters, stakes]

[Bold one-liner conclusion]

[CTA — open for dialogue/collaboration]

#Hashtag1 #Hashtag2 #Hashtag3

[Signature block: name, title, NIP]
```

### Step 3 — Draft the Formal Version (Secondary, if needed)

For official .docx archive:
- Kop surat (letterhead)
- "RILIS PERS" title
- Numbered sections (1-2-3-4-5)
- Formal language but still clear
- Signature block with NIP
- Times New Roman 12pt

### Step 4 — Add Charts (matplotlib) and Embed in .docx

When the report needs data-driven charts:

```bash
# 1. Create isolated venv (matplotlib needs numpy — Hermes venv lacks it)
python3 -m venv /tmp/mplenv
/tmp/mplenv/bin/pip install matplotlib python-docx -q

# 2. Write the chart generation script
#    Save to /tmp/generate_charts.py and run with:
/tmp/mplenv/bin/python3 /tmp/generate_charts.py

# 3. Copy outputs
cp /tmp/charts/*.png /home/ubuntu/charts/
```

**matplotlib pitfall — font rendering:**
- DejaVu Sans does NOT support CJK characters. Use ONLY plain ASCII category labels in chart text.
- Do NOT use Chinese characters, fraktur math symbols, or emoji in `ax.set_title()`, `ax.set_xlabel()`, or tick labels.
- If category names contain non-ASCII (e.g. Indonesian accented chars), map them to ASCII-safe abbreviations in the chart but keep full names in the Word doc table.

**Embedding charts in .docx:**
```python
from docx import Document
doc = Document()
doc.add_picture('/tmp/charts/chart01_name.png', width=Inches(6.0))
last_para = doc.paragraphs[-1]
last_para.alignment = WD_ALIGN_PARAGRAPH.CENTER
```

### Step 5 — Convert to .docx

Use `python-docx` (install in venv if needed):
```bash
source venv/bin/activate
pip install python-docx
```

Generate with proper formatting: margins, bold headings, justified paragraphs, bullet lists, signature block.

### Step 6 — Deliver

Send the .docx file via `MEDIA:` path. Offer to also create:
- PDF version
- Shorter Instagram caption version
- Infographic summary

## Tone Guidelines

| Element | ❌ Formal (avoid for social) | ✅ Journalistic (use) |
|---------|------------------------------|----------------------|
| Opening | "Menanggapi pemberitaan..." | Bold quote or commitment |
| Structure | Sections 1-2-3-4-5 | Q&A flow with subheadings |
| Language | "sebagaimana", "demikian" | Plain, direct Indonesian |
| Quotes | Block quote at end | Pull quote, bold+italic, attributed |
| Closing | "Demikian riwayat hidup ini..." | CTA + hashtags |
| Headline | "RILIS PERS" | Action-oriented: "[AGENCY] TANGGAPI [ISSUE]" |

## Key Principles

1. **Acknowledge before defending** — validate the concern first, then present your side
2. **Be honest about problems** — don't deny real issues; show you understand them
3. **Correct misconceptions** — if the news misrepresents something, politely clarify
4. **Show action, not just promises** — list concrete steps being taken or planned
5. **Quote the official by name** — adds credibility and personal stake
6. **Invite collaboration** — end with openness to dialogue, not defensiveness
7. **Tie to budget/planning cycle** — if relevant, mention KUA-PPAS or APBD context

## Indonesian Government Context

- **KUA-PPAS** = Kebijakan Umum Anggaran dan Prioritas Plafon Anggaran Sementara (annual budget planning)
- **DPRD** = regional legislature; responses to DPRD must be respectful but firm
- **NIP** = Nomor Induk Pegawai (always include in signature block)
- **Pangkat/Golongan** = civil service rank (e.g., Pembina TK I / IV.b)
- Common agencies: Disbunak (Perkebunan dan Peternakan), Dishut (Kehutanan), DKP (Kelautan dan Perikanan)

## Example

See `references/telur-kalsel-response-example.md` for the full worked example from this session — includes both the formal and journalistic versions, showing the transformation from bureaucratic to conversational tone.

See `references/laporan-kinerja-triwulan-workflow.md` for the complete pipeline: Google Sheets CSV → python-docx laporan kinerja triwulan (BAB I–IV format) → output .docx. Includes boilerplate code, table templates, parse logic, and pitfalls for this exact workflow.

See `references/chatbot-whatsapp-analysis-workflow.md` for the complete pipeline: Google Sheets export → Python parse + categorize → 20 matplotlib charts → Word report — for analyzing WhatsApp chatbot logs from an Indonesian government Dinas/Bidang office.

## Pitfalls

- **matplotlib CJK / special character rendering** — DejaVu Sans (default matplotlib font) does NOT render Chinese characters, math fraktur symbols, or emoji. Always use ASCII-only labels in chart text. Map non-ASCII category names to abbreviations for charts only.
- **Don't be defensive** — the goal is to show the agency is listening AND acting
- **Don't deny real problems** — acknowledge them, then show what's being done
- **Don't use excessive formal language for social media** — the user explicitly rejected this
- **Don't forget hashtags** — include 4-6 relevant tags at the end
- **Don't forget the NIP in signature** — it's required for official Indonesian government documents
- **Always offer both versions** — formal (.docx) for archive, journalistic for social media
