Spots Inventory Automation
OpenClaw runs a geographic inventory job that discovers, verifies, enriches, and publishes operating public skateparks to TrickBook. It started with Greater Santiago and now advances through a configurable Chile city queue while periodically re-auditing completed metros.
Current Job
- Owner: Squid / OpenClaw
mainagent - Schedule: Every 30 minutes (
*/30 * * * *, America/New_York) - Session: Isolated agent turn
- Timeout: 25 minutes
- Delivery: Summary to the private TrickBook Spots operations channel
- State:
memory/spot-inventory-state.json - Discovery:
scripts/discover-city-skateparks.js --metro <key> - Legacy Santiago discovery:
scripts/discover-santiago-skateparks.js
Channel IDs, credentials, API keys, and the complete private job payload are intentionally excluded from this repository.
City Queue
The active queue begins with:
- Greater Valparaíso
- Greater Concepción
- La Serena-Coquimbo
- Antofagasta
- Temuco-Padre Las Casas
- Puerto Montt-Puerto Varas
- Rancagua-Machalí
- Talca
- Chillán-Chillán Viejo
- Iquique-Alto Hospicio
Each metro defines localities and a geographic bounding box in the discovery script. When a metro is complete, the job records the result, advances activeMetro, and retains the completed metro for periodic maintenance.
Qualification Rules
Include a candidate only when current evidence supports an operating public skatepark with dedicated skate terrain. Consolidate aliases, parent-park listings, and nearby duplicate map pins into one facility.
Exclude:
- Private or paywalled facilities
- Ordinary street spots without dedicated public skate terrain
- Pump tracks and bike-only facilities
- Roller-only rinks
- Closed, removed, or unbuilt parks
- Map pins that cannot be independently verified
Per-Spot Workflow
- Run fresh metro discovery and compare it with production and prior state.
- Research current operating status, official name, address, coordinates, access, hours, rules, and facility details.
- De-duplicate aliases and nearby listings.
- Curate media manually, retaining a layout-first hero and only useful additional views.
- Copy retained media to TrickBook-controlled storage.
- Publish or update the production record with source provenance.
- Audit every retained image, source, and video URL.
- Render the live page and every carousel slide in headless Chrome; check UTF-8, broken images, and console errors.
- Checkpoint progress and report counts plus direct URLs for every touched spot.
The job is idempotent: existing records are matched before insertion, and incomplete research is checkpointed rather than published as fact.
Greater Santiago Audit
Audit date: August 31, 2026
- 34 of 34 communes reviewed (100%)
- 30 communes with at least one qualifying public skatepark
- 4 communes with no qualifying facility: Conchalí, La Reina, San Miguel, and Vitacura
- 57 verified operating public skateparks in production
- 57/57 have curated images, source links, approved status, and operating status
- 77 raw candidates in the latest discovery pass, including duplicates and non-qualifying results
- 0 known Santiago candidates remaining
Santiago is complete for the defined Greater Santiago scope. Remaining work is maintenance rather than initial coverage: rerun discovery periodically, validate changed hours/status/source links, replace weak or dead media, and investigate genuinely new candidates.
Success and Failure Handling
A successful batch reports added, updated, excluded, and consolidated counts; media review totals; URL-audit results; browser-render results; and direct TrickBook URLs. A run must report only completed, verified work.
If discovery, production writes, audits, or rendering fail, the agent leaves the candidate pending, records the blocker, and retries in a later run. It must not publish an unverified record to satisfy the schedule.
Operations
# Discover one configured metro
node scripts/discover-city-skateparks.js --metro valparaiso
# Inspect scheduled jobs and state
openclaw cron list --json
Get-Content memory/spot-inventory-state.json
To pause, replay, or change the queue, update the OpenClaw job and state file together so the durable state and live schedule do not diverge.