Skip to content

Task register

github-actions[bot] edited this page Nov 11, 2026 · 4 revisions

This page is generated from the repository on every merge to main; changes made here are overwritten.

The register is a catalogue of 857 humanitarian mapping tasks in 49 sections (rapid mapping, health, WASH, logistics, protection, remote sensing, reporting and so on). Each task is a machine-readable contract. When you type a request, the plugin matches it against the register on your machine. No API call is made to match, and the register is never sent to the model: it is about 218 KB, so only the one matched task's contract is injected into the prompt.

What a task contains

Field Meaning Example
id Section number, a dot, and a stable position 5.02
text What the task is "Classify damage by severity"
out The output contract: what you should end up with analysis
slots Information the task cannot proceed without aoi (area of interest), facility_type, threshold, time_range, hazard_type, sector…
tools Suggested tool chain, validated against the live registry: acquisition first, renderer last calculate_severity_index, apply_humanitarian_look, export_to_csv
kw Matching vocabulary classify, damage, severity
acc File kinds the task can take in vector, raster, pdf, table, image
prod File kinds it can put out .csv, .pdf, .html

Output contracts, and what each promises you:

out You should end up with
layer One or more styled QGIS layers on the canvas
layout A composed print layout ready to export
dashboard An HTML dashboard
report A written report with supporting figures
analysis Numeric results, a table and a short interpretation
dataset An exported dataset or schema, not a rendered map
guidance Written guidance or a procedure; no GIS output expected

How matching works

Stage 1 is pure local scoring (task_matcher.py): tokens of your request against each task's vocabulary, ignoring words that nearly every task contains ("map", "data", "area"…). A match is trusted when it clears a score (0.34) and beats the runner-up by a margin (0.08); otherwise it is ambiguous and the request is sent as typed. Failure to match is a normal outcome, never an error.

Rules that came out of hand testing:

  • A request that names a tool ("Use optimal_hub_siting …") is only matched to a task that uses that tool; otherwise it goes as typed.
  • A weak tie across sections (under 25 percent keyword coverage) gives no directive.
  • A request that names a loaded layer is not asked "Which facility or service type?".
  • A task that names one hazard (drought, extreme heat) matches only when the request names it.

What you see

  1. Missing information (a slot with no safe default) is asked once, before anything is sent. Things the plugin can work out itself, such as the area of interest from open layers, are not asked.
  2. The prompt preview: which task matched and how confident, what you will get, any value assumed on your behalf, and what each attached file will be read as. "yes", "send" or "go ahead" sends it; typing anything else sends your own wording with nothing added; "cancel" abandons it. Previews can be turned off in Settings.
  3. The output check: after the answer, the tools that actually ran are compared with the contract, and a missing deliverable you named yourself is asked for once. See Guards.

Honest limits

The register tells the model what to aim for; it does not make the model's analysis correct. A match is a heuristic. Section 36 (engineering hydrology) has a single task. See the Humanitarian mapping task reference for the taxonomy behind it.

The 36 sections

Section Name Tasks
1 Base mapping and reference data 21
2 Rapid mapping and emergency mapping 25
3 Population and displacement mapping 27
4 Camp and settlement mapping 26
5 Damage and needs assessment 23
6 Infrastructure and service mapping 32
7 Health and public-health mapping 29
8 Water, sanitation, and hygiene mapping 27
9 Food security and nutrition mapping 24
10 Logistics and supply-chain mapping 27
11 Accessibility and road-network analysis 23
12 Protection and safety mapping 23
13 Conflict and security analysis 21
14 Natural-hazard and disaster-risk mapping 28
15 Climate and environmental mapping 25
16 Remote sensing and satellite-image analysis 26
17 Drone and aerial mapping 20
18 Field data collection and mobile mapping 24
19 OpenStreetMap and crowdsourced mapping 23
20 GIS database management 29
21 Spatial analysis 32
22 Data analysis and statistics 31
23 Humanitarian needs assessment 23
24 Humanitarian program monitoring 22
25a Shelter and settlements 10
25b Education 9
25c Health 7
25d Protection 6
25e Livelihoods and recovery 7
26 Reporting and information products 32
27 Coordination and decision support 23
28 Web mapping, dashboards, and visualization 20
29 Data sharing, standards, and governance 21
30 Training and capacity building 20
31 Typical final outputs 25
36 Engineering hydrology and drainage 1
38 Humanitarian response: overview, access and needs 6
39 Engineering: terrain, corridors and plans 4
40 Urban planning: zoning, catchments and parcels 5
41 Logistics: hubs, routes and delivery risk 4
42 Agriculture: crop indices, seasons and zones 5
43 Environment: land cover, change and suitability 7
44 Public health: access, cases and indicators 8
45 Disaster risk: hazards, exposure and triggers 4
46 Utilities: network checks, faults and CAD 4
47 Transport: accessibility, speeds and weak links 4
48 Public safety: incidents, coverage and route safety 5
49 Research: provenance, workflows and metadata 4
50 Real estate: site comparison and context 5

Deliverable kinds across all 857 tasks: layer (341), analysis (306), layout (76), guidance (53), dataset (35), report (34), dashboard (12).

Clone this wiki locally