{
 "schema": "aiblocks-page/1",
 "id": "agency-gis-qa-engineer",
 "type": "agent",
 "name": "GIS quality checker",
 "summary": "Check a map dataset before release. Get a pass or fail verdict, each problem with its location and likely cause, and checks to run in QGIS.",
 "headline": "GIS quality checker",
 "subhead": "Share your dataset's schema, a sample of its rows, its stated coordinate system and what it must match. It writes a QA report with a pass, conditional pass or fail verdict, each problem found, and the checks to run on the full file.",
 "job": {
  "id": "test-and-fix-code",
  "name": "Test and fix code"
 },
 "level": "intermediate",
 "thinking": "high",
 "tested": true,
 "updated": "2026-11-03",
 "first_published": "2026-10-26",
 "inputs": [
  {
   "type": "question",
   "required": true,
   "label": "Question",
   "what": "the problem, decision or piece of work you want help with, and what a good outcome looks like"
  },
  {
   "type": "map_data",
   "required": false,
   "label": "Map data",
   "what": "map data, such as GeoJSON, a shapefile, a GeoPackage, a raster or a point cloud, with its coordinate system and fields"
  }
 ],
 "outputs": [
  {
   "type": "audit_report",
   "required": true,
   "label": "Audit report",
   "what": "findings with evidence, severity, missing inputs and next actions"
  }
 ],
 "you_give": [
  "The dataset's name, format and what it is for, such as parcels in a shapefile for a public map",
  "The schema or field list, with a sample of rows (about 20, copied from the attribute table)",
  "The coordinate system the data says it uses, and the area it should cover",
  "The spec or rules it must meet, such as required fields and allowed values",
  "Metadata, row count you expect and control points for an accuracy check (optional)"
 ],
 "you_get": [
  "A verdict of pass, conditional pass or fail, with counts of critical, major and minor issues",
  "Each problem with its place, such as feature ID, the likely cause and a fix",
  "The checks it could not run, as commands or steps for QGIS, GDAL or PostGIS",
  "A metadata review that lists what is missing, such as source date, accuracy or contact",
  "A list of what to retest after the fixes"
 ],
 "use_when": [
  "A new dataset arrives from a vendor or another team, and you want to check it before you use it.",
  "You are about to publish a map layer or web service and need a go or no-go.",
  "Two layers do not line up, and you suspect a coordinate system mismatch.",
  "A grant, regulator or client asks for metadata and accuracy notes with the data."
 ],
 "skip_when": [
  "You need a map made or analysis run. Use the GIS analyst.",
  "You need data cleaned, converted or moved into a pipeline. Use the Spatial Data Engineer agent.",
  "You need a survey-grade accuracy sign-off. Use a licensed surveyor or your data provider's validation process.",
  "You want it to open and test your files itself. A chat AI can't. Use QGIS or GDAL for the checks it lists, or an AI that can run code on your files."
 ],
 "output_sample": {
  "input": [
   "The dataset's name, format and what it is for",
   "The field list and about 20 sample rows",
   "The coordinate system it declares and the area it should cover",
   "The spec or rules it must meet (optional)",
   "Metadata and the row count you expect (optional)"
  ],
  "prerequisites": [
   "QGIS, GDAL or PostGIS, to run the checks the AI lists on the full file"
  ],
  "output": [
   {
    "name": "Dataset",
    "contains": "What was reviewed, what it is for, the declared coordinate system and what is missing."
   },
   {
    "name": "Verdict",
    "contains": "Pass, conditional pass or fail, with issue counts by severity."
   },
   {
    "name": "Findings",
    "contains": "Each problem with severity, place, evidence, likely cause, fix and whether it was seen or still to check."
   },
   {
    "name": "Checks not run",
    "contains": "Shape and map checks for QGIS, GDAL or PostGIS, with what a pass looks like."
   },
   {
    "name": "Metadata review",
    "contains": "Which metadata items are present, partial or missing."
   },
   {
    "name": "Retest after fixes",
    "contains": "The checks to repeat before the data ships."
   }
  ]
 },
 "output_shape": "DATASET\n  name <name> | format <format> | purpose <use> | coordinate system declared <CRS> | spec <rules> | ASSUMED: <list> | MISSING: <list>\n\nVERDICT\n  <PASS, CONDITIONAL PASS or FAIL> | critical <count> | major <count> | minor <count> | why <one sentence>\n\nFINDINGS\n  <ID> | severity <critical, major, minor, suggestion> | check <which>\n    where <feature ID or place> | evidence <what was seen> | likely cause <source data, tool, setup> | fix <step> | status <seen, to check>\n\nCHECKS NOT RUN\n  <check> | how to run it <QGIS, GDAL or PostGIS step> | what a pass looks like\n\nMETADATA REVIEW\n  <item> | present, partial or missing | note\n\nRETEST AFTER FIXES\n  <list>",
 "how_to_use": [
  "Download the pack from this page and add it to your AI as a skill. Or paste SKILL.md into a new chat, then paste references/source-agent.md after it.",
  "Paste the schema, the sample rows, the stated coordinate system, the spec and what the data is for. For a big file, export the field list and 20 rows, not the whole table.",
  "Read the report. Anything marked \"seen\" came from your paste. Anything marked \"to check\" needs you to run the check on the full dataset.",
  "Run the listed checks in QGIS, GDAL or PostGIS, and paste the results back. Ask the agent to update the verdict.",
  "Fix the critical and major issues at the source, then run the same checks again. A fix only counts when the check passes.",
  "Add the report and the metadata notes to the dataset's record before you release it."
 ],
 "checks": [
  "The result addresses your actual task and cites the evidence used.",
  "Examples, role-play experience and targets are kept separate from verified results.",
  "Claims of tests, memory, tool access or completed actions match what actually happened."
 ],
 "next": [
  {
   "name": "Bug root cause finder",
   "url": "https://useaiblocks.com/skills/bug-root-cause-finder",
   "why": "Bug root cause finder"
  }
 ],
 "source": {
  "by": "Michael Sitarzewski and Agency Agents contributors",
  "repo": "msitarzewski/agency-agents",
  "url": "https://github.com/msitarzewski/agency-agents/blob/b37b5bb33b78f2c1d6567d98e25ca818e3259219/gis/gis-qa-engineer.md",
  "licence": "MIT",
  "original_name": "GIS QA Engineer",
  "commit": "b37b5bb33b78f2c1d6567d98e25ca818e3259219"
 },
 "credits": [
  {
   "title": "GIS QA Engineer",
   "by": "Michael Sitarzewski and Agency Agents contributors",
   "url": "https://github.com/msitarzewski/agency-agents/blob/b37b5bb33b78f2c1d6567d98e25ca818e3259219/gis/gis-qa-engineer.md",
   "used": "Original agent profile, preserved in references/source-agent.md; AI Blocks adds setup and review instructions."
  }
 ],
 "files": [
  "LICENSE",
  "references/source-agent.md",
  "SETUP.md",
  "source.json"
 ],
 "links": {
  "page": "https://useaiblocks.com/agents/agency-gis-qa-engineer",
  "markdown": "https://useaiblocks.com/agents/agency-gis-qa-engineer.md",
  "json": "https://useaiblocks.com/agents/agency-gis-qa-engineer.json",
  "instructions": "https://useaiblocks.com/skills/agency-gis-qa-engineer/SKILL.md",
  "download": "https://useaiblocks.com/skills/agency-gis-qa-engineer.zip",
  "api_item": "https://useaiblocks.com/api/v1/items/agency-gis-qa-engineer",
  "api_document": "https://useaiblocks.com/api/v1/documents/agent/agency-gis-qa-engineer",
  "mcp": "https://useaiblocks.com/mcp"
 }
}
