{
 "schema": "aiblocks-page/1",
 "id": "agency-gis-geoprocessing-specialist",
 "type": "agent",
 "name": "Geoprocessing specialist agent",
 "summary": "Turn a repeat ArcGIS Pro task into a Python script, toolbox or Model Builder model. Get a build plan with parameters, checks and a draft script.",
 "headline": "Geoprocessing specialist agent",
 "subhead": "Describe the manual steps you repeat in ArcGIS Pro. The agent picks a script, a Python toolbox or Model Builder, then plans the inputs, checks and error messages. You get a step table, a draft ArcPy script and a test list.",
 "job": {
  "id": "research-topics",
  "name": "Research a topic properly"
 },
 "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"
  },
  {
   "type": "plan",
   "required": false,
   "label": "Plan",
   "what": "a dated plan: what to do, in what order, with a decision rule for each step"
  }
 ],
 "outputs": [
  {
   "type": "plan",
   "required": true,
   "label": "Plan",
   "what": "a dated plan: what to do, in what order, with a decision rule for each step"
  }
 ],
 "you_give": [
  "Your manual steps in order, as you do them today",
  "The inputs and outputs: layer types, fields and folders",
  "How often it runs and how many items, such as 50 rasters each month",
  "Your ArcGIS Pro version and extensions, such as Spatial Analyst (optional)",
  "Who will run it, such as just you or a team (optional)",
  "Data problems you have hit, such as NoData or schema locks (optional)"
 ],
 "you_get": [
  "A choice of script, Python toolbox or Model Builder, with the reason",
  "A step table with input, operation, settings and check for each step",
  "Tool parameters with names, types and help text, for a toolbox",
  "A draft ArcPy script, marked as not run",
  "Error messages, progress and cleanup rules",
  "A test list that includes bad input"
 ],
 "use_when": [
  "You run the same clip, reproject or export in ArcGIS Pro again and again.",
  "A teammate needs a tool with a simple form, not a script they must edit.",
  "A script fails on odd data, such as empty layers, NoData cells or locked files.",
  "You want to turn a Model Builder model into Python so you can add logic."
 ],
 "skip_when": [
  "You need a one-off analysis or a single map: use the GIS analyst.",
  "You need a full data pipeline with scheduled loads: use the Spatial Data Engineer agent.",
  "You need a custom web tool or web map: use the Web GIS Developer agent.",
  "You use QGIS and not ArcGIS Pro: ArcPy will not run there. Use the GIS analyst or the Spatial Data Engineer agent."
 ],
 "output_sample": {
  "input": [
   "Your manual steps in order",
   "The inputs and outputs, with layer types and folders",
   "How often it runs and how many items",
   "Your ArcGIS Pro version and extensions (optional)"
  ],
  "prerequisites": [
   "ArcGIS Pro, since ArcPy runs only with it",
   "An AI that reads pasted text, such as Claude, ChatGPT or Gemini",
   "A copy of your project and a small test folder"
  ],
  "output": [
   {
    "name": "Task and assumptions",
    "contains": "Your manual task as understood, with how often it runs and MISSING items."
   },
   {
    "name": "Form choice",
    "contains": "Script, toolbox or Model Builder, with the reason and a runner-up."
   },
   {
    "name": "Parameters",
    "contains": "Each input the user sets, with type, default, dependencies and help text."
   },
   {
    "name": "Steps",
    "contains": "A table of input layer, operation, settings, check and expected result."
   },
   {
    "name": "Settings and licences",
    "contains": "Workspace, output coordinate system, extent and extensions to check out."
   },
   {
    "name": "Errors and cleanup",
    "contains": "Plain error messages and how temporary data is removed."
   },
   {
    "name": "Draft script",
    "contains": "ArcPy code for the core steps, marked as not run."
   },
   {
    "name": "Tests and documentation",
    "contains": "Test cases including bad input, and what to write in the tool help."
   }
  ]
 },
 "output_shape": "TASK AND ASSUMPTIONS\n  Manual task <summary> | Runs <how often> | Volume <count> | Users <list>\n  Assumed: <list> | MISSING: <list>\n\nFORM CHOICE\n  <script, toolbox or model> | <reason> | <runner-up>\n\nPARAMETERS\n  <name> | <type> | <required or optional> | <default> | <depends on> | <help text>\n\nSTEPS\n  <number> | <input layer> | <operation> | <settings> | <check> | <expected result>\n\nSETTINGS AND LICENCES\n  Workspace <value> | Output coordinate system <value> | Extent <value> | Extensions <list>\n\nERRORS AND CLEANUP\n  <problem> | <plain message> | <action>\n\nDRAFT SCRIPT (not run)\n  <ArcPy code>\n\nTESTS\n  <number> | <input case> | <what a pass looks like>\n\nDOCUMENTATION\n  Purpose, parameters, limits, example\n\nOPEN QUESTIONS\n  <question> | <what the answer changes>",
 "how_to_use": [
  "Add the pack to your AI as a skill. Or open a new chat and paste SKILL.md, then references/source-agent.md.",
  "Write the manual steps in order. Say what you click or run, with the layer or file names. Never paste passwords or keys.",
  "Say 'Plan this automation. Do not guess my data.' Your AI asks once for what is missing.",
  "Read the form choice first. Change it if your team can only use Model Builder.",
  "Copy the draft script into the Python window in a copy of your project. Run it on a small test folder first. The AI cannot run it for you.",
  "Test with empty, wrong and normal input. Send back any error text and ask for a fix."
 ],
 "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": "Market research report writer",
   "url": "https://useaiblocks.com/skills/market-research-report-writer",
   "why": "Market research report writer"
  }
 ],
 "source": {
  "by": "Michael Sitarzewski and Agency Agents contributors",
  "repo": "msitarzewski/agency-agents",
  "url": "https://github.com/msitarzewski/agency-agents/blob/b37b5bb33b78f2c1d6567d98e25ca818e3259219/gis/gis-geoprocessing-specialist.md",
  "licence": "MIT",
  "original_name": "Geoprocessing Specialist",
  "commit": "b37b5bb33b78f2c1d6567d98e25ca818e3259219"
 },
 "credits": [
  {
   "title": "Geoprocessing Specialist",
   "by": "Michael Sitarzewski and Agency Agents contributors",
   "url": "https://github.com/msitarzewski/agency-agents/blob/b37b5bb33b78f2c1d6567d98e25ca818e3259219/gis/gis-geoprocessing-specialist.md",
   "used": "Original agent profile, preserved in references/source-agent.md; AI Blocks adds setup and review instructions."
  },
  {
   "title": "AI Blocks catalogue guidance",
   "by": "AI Blocks",
   "url": "https://useaiblocks.com",
   "used": "We added Before you start and After this sections that link to other AI Blocks steps. We refreshed those generated sections from the catalogue inputs and next-step links."
  }
 ],
 "files": [
  "LICENSE",
  "references/source-agent.md",
  "SETUP.md",
  "source.json"
 ],
 "links": {
  "page": "https://useaiblocks.com/agents/agency-gis-geoprocessing-specialist",
  "markdown": "https://useaiblocks.com/agents/agency-gis-geoprocessing-specialist.md",
  "json": "https://useaiblocks.com/agents/agency-gis-geoprocessing-specialist.json",
  "instructions": "https://useaiblocks.com/skills/agency-gis-geoprocessing-specialist/SKILL.md",
  "download": "https://useaiblocks.com/skills/agency-gis-geoprocessing-specialist.zip",
  "api_item": "https://useaiblocks.com/api/v1/items/agency-gis-geoprocessing-specialist",
  "api_document": "https://useaiblocks.com/api/v1/documents/agent/agency-gis-geoprocessing-specialist",
  "mcp": "https://useaiblocks.com/mcp"
 }
}
