From israel-agent-skills
Use when the user wants to browse, list, or download protocols (meeting minutes) from Jerusalem Municipality council committee sittings (ישיבות ועדות מועצת העיר ירושלים). Navigates the official archive at https://www.jerusalem.muni.il/he/city/council/committeesmeetings/, opens a specific committee meeting detail page (CommitteeMeeting?term=<N>&id=<GUID>), pulls the section-by-section agenda outline, and downloads the full protocol PDF linked under פרוטוקול. The site is fronted by Akamai and blocks plain curl/fetch, so this skill drives a real browser (Playwright). Trigger phrases: "Jerusalem city council minutes", "committee meeting protocol", "פרוטוקול ועדה ירושלים", "download Jerusalem municipality sitting", "Jerusalem council meeting agenda", "ישיבת ועדה עיריית ירושלים", "get the protocol PDF for meeting X".
npx claudepluginhub danielrosehill/claude-code-plugins --plugin israel-agent-skillsThis skill uses the workspace's default tool permissions.
Access archived committee sittings (ישיבות ועדה) of Jerusalem City Council: list meetings, open a specific meeting's agenda, and download the protocol PDF.
Mandates invoking relevant skills via tools before any response in coding sessions. Covers access, priorities, and adaptations for Claude Code, Copilot CLI, Gemini CLI.
Share bugs, ideas, or general feedback.
Access archived committee sittings (ישיבות ועדה) of Jerusalem City Council: list meetings, open a specific meeting's agenda, and download the protocol PDF.
https://www.jerusalem.muni.il/he/city/council/committeesmeetings/https://www.jerusalem.muni.il/he/city/council/CommitteesMeetings/CommitteeMeeting?term=<TERM>&id=<GUID>
term — council term number (e.g. 17).id — meeting GUID (e.g. 85cf59bc-f6d0-f011-bbd3-7ced8d49cdf0).curl / fetch returns HTTP 403 ("Access Denied" from errors.edgesuite.net) even with a browser User-Agent. Use a real browser — Playwright (headless is usually fine; fall back to headed if Akamai challenges).From CommitteeMeeting?term=<N>&id=<GUID>:
| Field (HE) | English | Notes |
|---|---|---|
| שם הוועדה | Committee name | Page heading |
| תאריך הישיבה | Meeting date | Usually near title |
| מספר ישיבה | Meeting number | Within the term |
| סדר יום / נושאים | Agenda / topics | Section-by-section outline — the main body of the page |
| פרוטוקול | Protocol (minutes) | PDF link — the full meeting minutes. Primary artefact this skill downloads. |
| החלטות | Decisions | Sometimes a separate linked doc |
| הקלטה / וידאו | Audio / video recording | If present, link to media |
The agenda outline on the page is the cheap summary; the פרוטוקול PDF is the authoritative record.
CommitteeMeeting?term=…&id=… URL, orפרוטוקול (or an href ending in .pdf near that label). Resolve to an absolute URL.page.request.get(pdf_url) in Playwright, or click-and-capture-download. Save to the user's requested path, defaulting to:
~/jerusalem-council-meetings/<term>-<short-id>-<YYYY-MM-DD>.pdffrom playwright.sync_api import sync_playwright
from pathlib import Path
URL = "https://www.jerusalem.muni.il/he/city/council/CommitteesMeetings/CommitteeMeeting?term=17&id=85cf59bc-f6d0-f011-bbd3-7ced8d49cdf0"
with sync_playwright() as p:
browser = p.chromium.launch(headless=True)
ctx = browser.new_context(locale="he-IL")
page = ctx.new_page()
page.goto(URL, wait_until="domcontentloaded")
# Agenda
agenda = page.locator("main").inner_text()
# Protocol PDF — anchor with text containing פרוטוקול, or href ending .pdf
pdf_link = page.locator("a:has-text('פרוטוקול')").first
pdf_url = pdf_link.get_attribute("href")
if pdf_url and pdf_url.startswith("/"):
pdf_url = "https://www.jerusalem.muni.il" + pdf_url
# Download through the browser context so cookies/Akamai tokens are reused
resp = ctx.request.get(pdf_url)
out = Path.home() / "jerusalem-council-meetings" / "17-85cf59bc.pdf"
out.parent.mkdir(parents=True, exist_ok=True)
out.write_bytes(resp.body())
browser.close()
Selectors above are best-effort from the described structure — verify on first run and adjust if the markup differs (especially the פרוטוקול anchor and any cookie/consent banner that may intercept clicks).
Committee: <HE name> (<English gloss if obvious>)
Date: <YYYY-MM-DD>
Term: <N> Meeting #: <M>
Agenda:
1. <section heading>
- <bullet>
- <bullet>
2. ...
Protocol PDF saved to: <absolute path> (<size>, <n> pages)