From editgeo
Author animated MAP videos for the EditBĐS / editgeo engine from natural language — fly-to, orbit, cinematic earth-dive, draw routes, highlight a building/boundary, subdivide land into lots (phân lô), grow 3D buildings, clip satellite imagery to a parcel, animate data over time (events by year / a moving trip), heatmaps, on-map charts (giá/m², unit mix), and labels/info boxes. Use when asked to "add a map", "make a map video", "fly to <place>", "highlight <road/building/ward>", "phân lô / chia nền", "show the route/travel time to ...", "show <data> by year / over time", "biểu đồ giá trên bản đồ", "clip ảnh theo ranh", "intro/showcase video for <project/area/line>", or any geographic shot for a real-estate (BĐS) or location video. You write ONE IR JSON; the map is DATA, never hand-written code. For the resolver/data directives (geocode, route snap, building footprint, road/boundary, POI, VN admin geography) see the editgeo-data skill; for CLI commands (login, resolve, preview, render, export) see the editgeo-cli skill; for embedding the baked map into a HyperFrames video with overlays/captions see the editgeo-export skill.
How this skill is triggered — by the user, by Claude, or both
Slash command
/editgeo:editgeoThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
The map layer is **one IR JSON file**, validated by `schema/map-ir.schema.json`. You author and edit that file; tools resolve it, render it to MP4, and (optionally) embed it in a HyperFrames composition. **The map is DATA, never code** — never hand-write map-rendering JavaScript. If a need can't be expressed in the IR, the schema + engine get extended once in the engine package, never per-video.
The map layer is one IR JSON file, validated by schema/map-ir.schema.json. You author and edit that file; tools resolve it, render it to MP4, and (optionally) embed it in a HyperFrames composition. The map is DATA, never code — never hand-write map-rendering JavaScript. If a need can't be expressed in the IR, the schema + engine get extended once in the engine package, never per-video.
For vague asks ("make a video for this listing", "intro for the metro line") settle intent before authoring:
For specific asks ("highlight this plot", "fix the camera on scene 2"), skip discovery and edit the IR.
Write against schema/map-ir.ts (typed) / schema/map-ir.schema.json (validated). Top-level shape:
output · basemap · slots[] · assets{} (DataAssets) · drawingOptions · markerTemplates · images{} · media{}.
Full field reference: references/schema.md (it carries inline IR snippets for every shape).
Before authoring anything cinematic, read references/cinematography.md — the EditBĐS house style (prescriptive defaults, easing-as-emotion, Build→Breathe→Resolve, the warm grade, and the anti-pattern list that separates a cinematic map from a generic "AI map"). It is the difference between correct and good.
Pick the shot(s) and follow the matching reference:
| Want | Reference |
|---|---|
| House style: look, easing, pacing, grade, presets, anti-patterns | references/cinematography.md |
| Camera: fly-to / orbit / cinematic earth-dive / follow-route / fit-bounds | references/camera.md |
| Layer style: fill/stroke, dash + marching-ants, pattern, road casing, 3D extrusion, circle/heatmap, raw paint passthrough | references/layers-styling.md |
| Markers, info boxes, icons, rich cards (chart/image/video/html) | references/markers.md |
Time-series: events by year, moving trip + comet trail (the now playhead) | references/temporal.md |
| Image/video painted on the ground; clip imagery to a parcel/boundary | references/media.md |
| Area/frontage/route-length/ETA/distance → printed labels | references/measurements.md |
| Recipes: journey, highlight a building/plot/division, draw a route, ward/road | references/recipes.md |
| Color grade, vignette, tilt-shift, terrain/fog/hillshade/light, basemap style | references/fx-world.md |
| Real geometry (geocode, route, footprint, road/boundary, POI) + VN geography | editgeo-data skill |
place, snap, resolve:"building", query, search: icons) become concrete geometry: editgeo resolve map.json. (editgeo-data)editgeo preview map.json shows the real map; tweak the IR, refresh. Get the user's approval. Do not bake an MP4 each prompt. (editgeo-cli)editgeo export <dir> bakes the map MP4 and renders the final HyperFrames video (map + overlays/captions). (editgeo-export)resolve, the IR holds only concrete geometry — no unresolved directives. This is the Single Source of Truth: same IR → same pixels, offline, deterministic.Date.now, no randomness, no in-render fetches. The baked IR renders the same every time.defaultEaser: "inOutQuart" + viewportSmoothing: 0.4 (a camera that glides, not snaps). Warm satellite/dark look; labels at video scale (not web-UI opacity). Full gu: references/cinematography.md.A map that is correct but generic is the failure mode. These are hard rules — follow them unless the user asks otherwise. Full reasoning + presets: references/cinematography.md.
fx slot (warm grade + vignette, subtle at the wide → lifted on arrival) and a world slot (golden light/fog). Every shot has ≥1 focal accent.t=0 (offset the open 0.2–0.3s) · stack eased waypoints in an earth-dive (one segment, fixed center) · spin bearing 0→360 in one keyframe (hops <180°) · over-grade (sat/contrast ≤1.3).preview, run the pre-preview checklist at the end of cinematography.md.When you show IR, label the block with the filename so it's clear what to write, e.g.:
{ "version": 1, "output": { "width": 1920, "height": 1080, "fps": 30, "duration": 8 }, "...": "..." }
Node 22+ / Bun, system Google Chrome, FFmpeg. MapTiler tiles + map-data resolvers route through the gated server when logged in (editgeo login); see editgeo-cli. The engine is the core; this skill is one way to drive it.
Provides CDSS development patterns for drug interaction checking, dose validation, clinical scoring (NEWS2, qSOFA), and alert classification integrated into EMR workflows.
npx claudepluginhub manhcuongincusar1/editgeo-skills --plugin editgeo