OpenClaw · Skill
Esri Smells Consumer
This skill helps an agent call the paid Smell Detector endpoint (x402 pay-per-request) using Base/USDC.
Install
Start with the primary install command. Alternate entrypoints are included below for ClawHub and OpenClaw CLI users.
Primary command
clawhub install danmaps/esri-smells-consumerClawHub installer
npx clawhub@latest install danmaps/esri-smells-consumerOpenClaw CLI
openclaw skills install danmaps/esri-smells-consumerDirect OpenClaw install
openclaw install danmaps/esri-smells-consumerWhat this skill does
This skill helps an agent call the paid Smell Detector endpoint (x402 pay-per-request) using Base/USDC.
Why it matters
Separates the stateless, deterministic risk analysis from your local tooling so the same input always returns the same result and results are safe to cache.
Typical use cases
- Checking a project snapshot for automation risks before deploying ArcPy scripts
- Scoring risk level of an AGOL workflow before a scheduled server run
- Validating geoprocessing inputs to catch issues before a long batch job
- Caching risk reports by requestHash to avoid redundant paid calls
- Integrating preflight risk scoring into a CI pipeline for GIS automation
Source instructions
Esri Workflow Smell Detector (Consumer Skill)
This skill helps an agent call the paid Smell Detector endpoint (x402 pay-per-request) using Base/USDC.
It does not host the service.
How this relates to arcgispro-cli
The expected input, project_snapshot, is the JSON artifact produced by the open-source ArcGIS Pro CLI (arcgispro-cli).
Recommended workflow:
- Use
arcgispro-clito export a project snapshot/context artifact (safe-by-default, no raw data) - Send that JSON to this paid endpoint for a deterministic preflight risk report
- Use the report to decide whether to proceed with automation (ArcPy/GP/AGOL) and what to fix first
This keeps a clean boundary:
- Open core (
arcgispro-cli) answers: what is in the project - Paid layer (this service) answers: how risky is it to automate, and why
Endpoint
POST https://api.x402layer.cc/e/esri-smells
Input
Required JSON body:
{
"project_snapshot": { },
"constraints": {
"target": "arcpy" | "geoprocessing" | "agol",
"deployment": "desktop" | "server",
"max_runtime_sec": 300
}
}
Output (guaranteed fields)
summaryrisk_score(0.0–1.0)issues[]flagsversionrequestHash
Determinism
- Stateless
- No external network calls (beyond the paid endpoint itself)
- Same input produces same output
- Safe to cache by
requestHash
Pricing
- x402 pay-per-request on Base
- Target price: $0.001 per call
How to call (Python helper)
- Install deps:
pip install -r {baseDir}/requirements.txt
- Set wallet env (consumer wallet):
export PRIVATE_KEY="0x..."
export WALLET_ADDRESS="0x..."
- Call the endpoint:
python {baseDir}/scripts/call_smells.py path/to/project_snapshot.json
Notes
- The script implements the x402 HTTP 402 challenge flow and retries with
X-Payment. - If the endpoint is unreachable or the network rejects the payment, surface the error as-is.