About Semaphore

Spotting mandate signals in resolutions of the UN General Assembly.

Why "Semaphore"?

In the age of steam, railway semaphore signals stood alongside the tracks — mechanical arms raised or lowered to tell approaching trains whether the line ahead was clear, cautioned, or blocked. A driver reading the semaphore at speed had to interpret a small set of well-defined positions to make a critical decision: proceed, slow down, or stop.

That is surprisingly close to what this tool does. Every session, the General Assembly adopts hundreds of resolutions — long, formal texts that bury actionable mandates deep inside operative paragraphs. Semaphore reads those paragraphs and raises a flag when it spots language that signals a concrete follow-up: a report requested, a meeting convened, a process launched.

Like its railway namesake, Semaphore doesn't decide what to do with the signal — it just makes sure you see it.

What are Signals?

Signals are specific phrases in UN General Assembly documents that indicate a mandate, request, or procedural action. Semaphore scans the operative paragraphs of resolutions, draft proposals, and decisions, and flags every paragraph that contains one or more trigger phrases.

Each signal corresponds to a category of action — requesting a report, scheduling a high-level event, establishing a consultative process, or placing something on a future agenda.

Signal Types

agenda

Decisions about agenda items, scheduling of future consideration, or requests for inclusion in upcoming sessions.

Trigger Phrases

decides to include decides to place on the provisional agenda requests the inclusion invites the Secretary-General to brief requests the President of the General Assembly to hold a meeting decides to convene a meeting decides to review decides to consider
PGA

References the President of the General Assembly, high-level meetings, interactive dialogues, or multistakeholder events.

Trigger Phrases

President of the General Assembly decides to hold decides to convene high-level meeting shall be held interactive dialogue multistakeholder high-level panel high-level segment
process

Procedural arrangements: co-facilitators, co-chairs, or informal consultations.

Trigger Phrases

co-facilitators co-chairs co-conveners informal consultations
report

Requests for reports from the Secretary-General or other bodies to the General Assembly.

Trigger Phrases

report to the General Assembly submit a report report thereon shall report apprise the General Assembly inform the General Assembly include in his report include in the report Secretary-General to submit Secretary-General to report Secretary-General to provide a report submit to the General Assembly report to the Assembly
observer

Granting of observer status to an entity.

Trigger Phrases

capacity of observer

How it Works

1

Discover

New resolutions and draft proposals are discovered automatically from the UN Official Document System.

2

Extract

PDF documents are parsed and operative paragraphs — the numbered action items in the resolution body — are extracted.

3

Detect

Each paragraph is scanned for trigger phrases. When a phrase matches, the corresponding signal is raised.

4

Link

Resolutions are linked back to their source draft proposals, connecting adopted text to its committee of origin.

5

Publish

Results are published here — filterable by session, signal type, and document type — updated automatically after each pipeline run.

Configuration

Signals are defined in config/checks.yaml. Each entry has a signal name and a list of phrases to match. Matching is case-insensitive. A single paragraph can trigger multiple signals if it contains phrases from different categories.

The pipeline runs on GitHub Actions — hourly for new documents, and on-demand for historical sessions.