Skip to content

Explore graphify-style project graph export on top of ArcGIS Pro snapshots #51

Description

@danmaps

Summary

Explore borrowing the best ideas from safishamsi/graphify so arcgispro-cli can produce a relationship-aware project graph on top of the existing flat snapshot export.

This is not a proposal to embed graphify as a hard dependency. It is a proposal to study the UX and artifact pattern and decide what should be native in arcgispro-cli.

Why

The current .arcgispro/context/*.json export is already useful, but it is still mostly a set of flat files. For larger ArcGIS Pro projects, AI agents and humans would benefit from a derived graph that makes relationships first-class:

  • map -> layer -> datasource
  • layout -> map frame -> map
  • notebook -> referenced layers/tables/scripts
  • geodatabase/connection -> dependent layers/tables
  • broken source / unsupported capability / risk edges

graphify is interesting here because it turns raw project material into three durable artifacts:

  • a machine-readable graph
  • a human-readable report
  • an explorable HTML view

That feels close to what we want for agent-driven GIS reasoning.

What To Borrow

Potentially borrow these ideas:

  1. Generate a derived graph.json from the ArcGIS Pro snapshot so agents can query relationships instead of re-parsing every export file.
  2. Generate a concise GRAPH_REPORT.md-style summary that calls out high-value structure:
    • key maps
    • heavily reused layers
    • broken data sources
    • surprising dependencies
    • likely automation entry points
  3. Optionally generate a simple local graph.html explorer for human inspection.
  4. Keep the current flat JSON export as the source of truth, and treat the graph artifacts as a derived layer.

Non-Goals

  • Do not turn arcgispro-cli into a generic codebase knowledge graph tool.
  • Do not require a remote service or hosted UI.
  • Do not break the current snapshot format or existing CLI consumers.

Possible Shape

Maybe this lands as one or both of:

  • arcgis graph export
  • arcgis graph report

Or it could be an export toggle that writes something like:

.arcgispro/
  context/
  graph/
    graph.json
    GRAPH_REPORT.md
    graph.html

Acceptance Criteria

  • A snapshot can produce a derived relationship graph from existing exported context.
  • The graph captures at least maps, layers, tables, layouts, notebooks, and connections.
  • We can surface useful relationship queries that are currently awkward with flat files alone.
  • The feature is optional and does not materially slow the default snapshot path.
  • The implementation can start narrow without committing to full graphify-style scope.

Notes

  • Adjacent to Export: add optional context bundle for advisor tools #26 rather than a replacement for it: context bundle fields and graph-derived relationships likely complement each other.
  • If this is too much for core, a first step could be a separate prototype script/command that consumes the existing export and proves the value before deeper add-in work.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions