arcgis-maps-sdk-js-ai-context / arcgis-editing
AGENTS.md0 starsChanged 7 months agoMITView on GitHub
Quick-reference decisions, checklists, and tables for feature editing and versioning.
Where files are headingNew AGENTS.md files have more rules about keeping secrets out of the code, and fewer about code style.
Of the AGENTS.md files we read, the 31,542 first seen in the last six months, against the older ones: the kind of rule that gained most share, and the kind that lost most. About files like this in general, not this one, and an estimate, since a kind is a pattern in the words.
In this repository47 other files it gives its agents.
- AGENTS.mdAGENTS.md
- skills/arcgis-ai-components/AGENTS.mdAGENTS.md
- skills/arcgis-authentication/AGENTS.mdAGENTS.md
- skills/arcgis-charts/AGENTS.mdAGENTS.md
- skills/arcgis-coding-components/AGENTS.mdAGENTS.md
- skills/arcgis-core-maps/AGENTS.mdAGENTS.md
- skills/arcgis-embeddable-maps/AGENTS.mdAGENTS.md
- skills/arcgis-interaction/AGENTS.mdAGENTS.md
- skills/arcgis-layers/AGENTS.mdAGENTS.md
- skills/arcgis-starter-app/AGENTS.mdAGENTS.md
- skills/arcgis-visualization/AGENTS.mdAGENTS.md
- skills/arcgis-widgets-ui/AGENTS.mdAGENTS.md
- arcgis-3d-layersSkill
- arcgis-advanced-layersSkill
- arcgis-ai-componentsSkill
- arcgis-arcadeSkill
- arcgis-authenticationSkill
- arcgis-chartsSkill
- arcgis-cim-symbolsSkill
- arcgis-coding-componentsSkill
- arcgis-coordinates-projectionSkill
- arcgis-core-mapsSkill
- arcgis-core-utilitiesSkill
- arcgis-custom-renderingSkill
- arcgis-editingSkill
- arcgis-embeddable-mapsSkill
- arcgis-feature-effectsSkill
- arcgis-geometry-operationsSkill
- arcgis-imagerySkill
- arcgis-interactionSkill
- arcgis-knowledge-graphsSkill
- arcgis-layersSkill
- arcgis-map-toolsSkill
- arcgis-performanceSkill
- arcgis-popup-templatesSkill
- arcgis-portal-contentSkill
- arcgis-rest-servicesSkill
- arcgis-scene-environmentSkill
- arcgis-smart-mappingSkill
- arcgis-spatial-analysisSkill
- arcgis-starter-appSkill
- arcgis-tables-formsSkill
- arcgis-time-animationSkill
- arcgis-utility-networksSkill
- arcgis-visualizationSkill
- arcgis-widgets-advancedSkill
- arcgis-widgets-uiSkill
The file
We split this AGENTS.md into the rules it gives an agent
2 rules. About 0 are common, 0 are distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈0
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 97
All expressions use Arcade syntax and must return true/false.
- Very specific: line 107
All three can be combined in a single applyEdits() call.
≈ “Common” is an estimate: at least 1 in 5 of the 40,246 AGENTS.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Agent Guide: arcgis-editing
Quick-reference decisions, checklists, and tables for feature editing and versioning.
Editor Component vs Core API Decision
- Do you need a basic editing UI with default behavior?
- Yes -->
<arcgis-editor slot="top-right">(Map Component) - No, need custom form layout or logic --> Core API
Editorwidget orFeatureForm
- Yes -->
- Do you need a standalone form (not inside the Editor panel)?
- Yes -->
FeatureFormwidget or<arcgis-feature-form>component - No --> Editor handles forms internally
- Yes -->
- Do you need programmatic edits without any UI?
- Yes -->
featureLayer.applyEdits()directly
- Yes -->
- Do you need version management?
- Yes -->
VersionManagementService+<arcgis-version-management>component
- Yes -->
| Approach | UI Provided | Geometry Editing | Form Editing | Flexibility |
<arcgis-editor> component | Full | Yes | Yes | Low (defaults) |
Editor widget (Core API) | Full | Yes | Yes | High (layerInfos config) |
<arcgis-feature-form> component | Form only | No | Yes | Medium |
FeatureForm widget | Form only | No | Yes | High (custom form layout) |
applyEdits() | None | Via code | Via code | Maximum |
Edit Workflow Steps
Interactive editing (Editor widget)
- Setup -- Add Editor to view with
layerInfosconfig - Create -- User selects template, draws geometry, fills form
- Update -- User clicks feature, modifies geometry or attributes
- Delete -- User selects feature and deletes
Programmatic editing (applyEdits)
- Create Graphic -- Build object with geometry and attributes
- Call applyEdits --
layer.applyEdits({ addFeatures: [graphic] }) - Handle result -- Check
result.addFeatureResultsfor success/errors - Refresh -- Layer auto-refreshes; call
layer.refresh()if needed
Form-based editing (FeatureForm)
- Create form --
new FeatureForm({ layer, formTemplate }) - Set feature --
form.feature = graphic - User edits -- Form fields are populated and editable
- Validate -- Check
form.validbefore proceeding - Get values --
form.getValues()returns updated attributes - Apply --
layer.applyEdits({ updateFeatures: [graphic] })
Version Management Checklist
Setup
- Have a branch-versioned feature service
- Create
VersionManagementServicewith the service URL - Await
vms.load()
Create and edit in a version
- Create version:
vms.createVersion({ versionName, access: "private" }) - Switch layer:
featureLayer.gdbVersion = version.versionName - Refresh layer:
await featureLayer.refresh() - Start edit session:
await vms.startEditing({ versionIdentifier }) - Apply edits:
await featureLayer.applyEdits(edits) - Reconcile:
await vms.reconcile({ versionIdentifier, conflictResolution: "favorEditVersion" }) - Check for conflicts:
reconcileResult.hasConflicts - Post to parent:
await vms.post({ versionIdentifier }) - Stop editing:
await vms.stopEditing({ versionIdentifier, saveEdits: true })
Cleanup
- Switch layer back:
featureLayer.gdbVersion = vms.defaultVersionIdentifier - Delete temp version:
await vms.deleteVersion({ versionName })
Form Element Types
| Type | Purpose |
field | Single editable field |
group | Group of fields under a heading |
text | Read-only instructional text (HTML) |
relationship | Related records from relationships |
Field Element Expression Types
| Expression Property | Controls |
visibilityExpression | Whether the field is visible |
editableExpression | Whether the field is editable |
requiredExpression | Whether the field is required |
valueExpression | Computed default value |
All expressions use Arcade syntax and must return true/false.
applyEdits Operations
| Operation | Property | Value |
| Add features | addFeatures | Array of Graphics |
| Update features | updateFeatures | Array of Graphics (with existing OID) |
| Delete features | deleteFeatures | Array of Graphics or [{ objectId: N }] |
All three can be combined in a single applyEdits() call.
Input Types Quick Reference
| Input Type | Field Types | Use Case |
text-box | String, Number | Short text input |
text-area | String | Long text, notes |
combo-box | Coded value domains | Dropdown selection |
radio-buttons | Coded value domains | Few choices visible |
switch | Integer (0/1) | Boolean toggle |
date-picker | Date | Date-only selection |
datetime-picker | Date | Date + time selection |
time-picker | Date | Time-only selection |
barcode-scanner | String | Barcode/QR scanning |
See arcgis-tables-forms for detailed input type configuration.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

