OvitalMap Parcel CSV
Convert parcel boundaries into OvitalMap-compatible CSV files, assign stable parcel codes, and maintain deduplicated country and master archives. Use for WGS84, DMS, or UTM coordinates supplied as text or images, including archive re-exports and coordinate corrections. Do not use it as cadastral or legal validation.
Rank
62
Safety
84
Downloads
1.1k
Updated
Oct 11, 2026
Version
3.0.1
Source
CLAWHUB
About
What it does, and when to use it.
Capability contract not published. No trust telemetry is available yet. 1.1K downloads reported by the source. Last updated 10/11/2026.
Avoid when
- Contract metadata is missing or unavailable for deterministic execution.
Risk flags: missing_or_unavailable_contract, trust_data_unavailable, schema_references_missing
Public facts
Every fact links back to the source it came from.
- Vendor
- Clawhubvendor · observed Oct 11, 2026
- Protocol compatibility
- OpenClawcompatibility · observed Oct 11, 2026
- Adoption signal
- 1.1K downloadsadoption · observed Oct 11, 2026
- Latest release
- 3.0.1release · observed Sep 4, 2026
- Handshake status
- UNKNOWNsecurity
Install and run
Setup complexity: low.
clawhub skill install s17fqp1p7fy20kfj7hwd6ax4z1885ne8:ovitalmap-parcel-csv- Install using `clawhub skill install s17fqp1p7fy20kfj7hwd6ax4z1885ne8:ovitalmap-parcel-csv` in an isolated environment before connecting it to live workloads.
- No published capability contract is available yet, so validate auth and request/response behavior manually.
- Review the upstream CLAWHUB listing at https://clawhub.ai/jeromeex/ovitalmap-parcel-csv before using production credentials.
Contract: missing
curl -s "https://www.xpersona.co/api/v1/agents/clawhub-jeromeex-ovitalmap-parcel-csv/snapshot"
Documentation
CLAWHUB
150,212 characters of source documentation, loaded on request.
Extracted files
5 files captured from the source.
SKILL.md
---
name: ovitalmap-parcel-csv
description: Convert parcel boundaries into OvitalMap-compatible CSV files, assign stable parcel codes, and maintain deduplicated country and master archives. Use for WGS84, DMS, or UTM coordinates supplied as text or images, including archive re-exports and coordinate corrections. Do not use it as cadastral or legal validation.
license: MIT-0
metadata:
openclaw:
requires:
bins:
- python3
envVars:
- name: OVITALMAP_WORKSPACE
required: false
description: Directory for generated exports and archives; defaults to the current working directory.
---
# OvitalMap Parcel CSV
Use the bundled Python scripts through JSON stdin/stdout. Do not recreate coordinate conversion, code allocation, CSV generation, or archive updates manually.
## Input
Set `OVITALMAP_WORKSPACE` to the directory where exports and archives should be stored. If it is unset, the scripts use the current working directory.
Each parcel is a JSON object:
```json
{"vertices":[[114.13472,22.50422],[114.13564,22.50411],[114.135,22.503]],"provider_name":"Survey Team","official_id":null,"altitude":[]}
```
Use WGS84 longitude, latitude order. For a batch, keep one country or region per pipeline run. The pipeline assigns stable `parcel_ref` values (`P01`, `P02`, and so on).
## Workflow
1. Extract and show the source coordinate text. When the source is an image, preserve the transcription for review.
2. Convert decimal, DMS, or UTM coordinates with `scripts/coordinate_converter.py`. Supply the coordinate `format`; for decimal input also supply `order`, and for UTM supply `zone` and `hemisphere`.
3. Show the resulting WGS84 vertices and obtain explicit confirmation of the coordinates and provider names. Do not write exports or archives before confirmation.
4. Obtain the ISO 3166-1 alpha-2 country or region code from explicit context. Ask when it is uncertain.
5. Run `python3 scripts/parcel_pipeline.py --step 1` with `parcels`, `country_code`, and optional `date` in `YYMMDD` form. Retain the returned `run_id`. On `needs_input`, request only the fields listed in `required_input`.
6. Continue with the same `run_id`: run Step `2b` to classify archive hits and new parcels, then Step `2` to assign codes to new parcels.
7. Show the proposed codes. After the user approves them, pass `confirmed_codes: true` to Step `3`.
8. Deliver every path in `result.exports` in its returned order. Boundary files import into OvitalMap as tracks (`轨迹`); vertex files import as labels (`标签`).
Use `--step all` only when the user has already confirmed the complete input and explicitly approved automatic code acceptance with `"confirmed": true` and `"auto_accept_codes": true`.
## Parcel codes
Prefer a confirmed official registration, cadastral, or permit identifier:
```text
{CC}-{OFFICIAL_ID}
```
When no official identifier is available, assign a stable archive code:
```text
{CC}-{YYMMDD}-{SEQ}
```
The archive determines the next three-di_meta.json
{
"ownerId": "kn76j7kby3cajgq933bwccdxbn82fw68",
"slug": "ovitalmap-parcel-csv",
"version": "3.0.1",
"publishedAt": 1788527160108
}references/csv-contract.md
# CSV Compatibility Contract
Do not change this contract without an explicit migration request.
## Encoding and filenames
- Encoding: UTF-8, comma-separated, no BOM.
- Directory: `ovitalmap_exports/{CC}/`.
- Every generated file contains exactly one parcel.
- Default boundary export: `{parcelCode}_{YYYYMMDD_HHMMSS}.csv`.
- Explicit vertex export: `{parcelCode}_{YYYYMMDD_HHMMSS}_vertices.csv`.
- Same-second collisions append `_02`, `_03`, and so on before `.csv` or `_vertices.csv`.
For multiple parcels, generate files in submitted `parcel_ref` order and do not combine them. Archive names remain `{CC}_parcels.csv` and `master.csv`.
The export modes are:
- `boundary` (default): boundary file only.
- `vertices`: vertex file only, and only after an explicit user request.
- `both`: both files, only after an explicit user request for both.
## Vertex CSV (顶点表)
Exact headers:
```text
文件夹,名称,经度,纬度,海拔,文本显示风格,图标样式,Comment
```
- 文件夹: parcel code.
- 名称: `{parcel_code}_A01`, restarting at A01 for each parcel.
- 经度/纬度: WGS84 longitude and latitude in original vertex order.
- 海拔: input altitude or empty.
- 文本显示风格: empty.
- 图标样式: `1`.
- Comment: `提供者:{provider} 归档日期:{YYYY-MM-DD}` and, when present, ` 地籍号:{cadastre_code}`.
## Boundary CSV
Exact headers:
```text
文件夹,名称,经纬度[经度+纬度],线条宽度,线条颜色,线条不透明度,闭合,线型,轨迹风格,Comment
```
- 文件夹 and 名称: parcel code.
- 经纬度: `lon,lat;lon,lat;...`; repeat the first point to close the polygon.
- 线条宽度: `3`.
- 线条颜色: `0X00FF0000`.
- 线条不透明度: `50`.
- 闭合: `1`.
- 线型: `0`.
- 轨迹风格: `1`.
- Comment: same as the vertex CSV.
## Archive schemas
Per-country:
```text
parcel_code,provider_name,archive_date,boundary_coords,provider_notes,cadastre_code
```
Master:
```text
CC,parcel_code,provider_name,archive_date,boundary_coords,provider_notes,cadastre_code
```references/interaction-and-edge-cases.md
# Interaction and Edge Cases
## Delivery
Send or link the actual files in their returned order:
```text
1. {first_parcel_filename}
2. {second_parcel_filename}
```
Give the import instruction once: open each boundary CSV in OvitalMap and choose `轨迹`. For vertex files, choose `标签`. If both modes were requested, distinguish them by the `_vertices` filename suffix.
## Archive model
- `{CC}_parcels.csv` is the country record.
- `master.csv` is the all-in-one cross-country record.
- New parcels update both in one locked commit.
- Archive hits are re-exported without another append.
- Corrections back up and update both records.
## Parcel codes
Prefer a confirmed official registration/cadastre/permit ID:
```text
{CC}-{OFFICIAL_ID}
```
Otherwise use:
```text
{CC}-{YYMMDD}-{SEQ}
```
The archive allocates sequence continuity. An existing official code is blocking and requires user review; do not silently fall back to a sequential code.
## Archive hits
- Reuse the archived parcel code and provider metadata.
- Export only that parcel as its own file in the requested export mode.
- Do not append it again.
- If a newly supplied official ID fills an empty cadastre field, update it during Step 3.
- If the user insists identical coordinates represent a different parcel, require explicit confirmation and set `allow_duplicate_coordinates: true` with a note naming the matched code.
For a mixed batch, preserve the original `parcel_ref` order across archive hits and new parcels. Export each parcel separately; do not group the delivered files by archive status.
## Multi-parcel batches
- Keep `parcel_ref` stable from intake through replies, CSV generation, and archive results. Numeric positions remain accepted only for backward-compatible input.
- Generate one file per parcel for the requested mode and return the files in `parcel_ref` order. If both modes were requested, keep each parcel's normal file immediately before its `_vertices` file.
- Use one country/region per pipeline run. If parcel-level country codes differ, split the batch and preserve each parcel's ref.
- Report all current parcel-specific problems together in the user's language.
- If two submitted parcels have identical boundaries, request `duplicate_resolutions.{parcel_ref}`:
- `same`: skip the later duplicate.
- `different`: keep both, record explicit confirmation, and allow the duplicate boundary during archive commit.
- Reject duplicate non-empty official IDs before code allocation. Use `official_id_resolutions.{parcel_ref}` to correct or clear the later value.
- Never drop an unresolved parcel from run state. No CSV or archive write may occur while a batch conflict remains.
## Provider matching
- Exact normalized match: reuse automatically.
- No match: keep the supplied provider.
- Never merge providers based on similarity alone.
## Corrections
Use `archive_manager.py` action `correct` with `country_code`, `parcel_code`, and `new_vertices`. The operation must:
1. Validate references/workflow-contract.md
# Workflow Contract
Every pipeline response contains:
```text
status: needs_input | ready | completed | blocked
next_action: machine-readable next step
required_input: exact missing confirmations or values
message: concise user-facing summary
result: structured evidence and file paths
```
## Agent behavior
- `needs_input`: show the message and relevant coordinate or code preview, ask only for `required_input`, and stop.
- `ready`: report the result and perform `next_action` when it requires no new user decision.
- `completed`: deliver every item in `result.exports` in order and give the appropriate OvitalMap import instruction.
- `blocked`: explain the message, make no success claim, and wait for corrected input or retry safely.
Respond in the user's language. Do not expose run state or raw JSON unless the user asks for technical details.
## Confirmation gates
The pipeline must not pass these gates implicitly:
- `confirmed_coordinates`: the user verified the displayed WGS84 vertices.
- `country_code`: the country or region is known rather than guessed.
- `provider_resolutions.{parcel_ref}`: a missing or ambiguous provider is resolved per parcel.
- `duplicate_resolutions.{parcel_ref}`: identical submitted boundaries are confirmed as `same` or `different`.
- `official_id_resolutions.{parcel_ref}`: duplicate official identifiers are corrected or cleared.
- `confirmed_codes`: the user approved generated parcel codes before Step 3.
- `auto_accept_codes`: explicit permission for non-interactive `--step all`.
`export_mode` is not a confirmation gate. It defaults to `boundary` and must remain unchanged throughout a run unless the user explicitly requests another mode.
Use stable parcel references in decisions:
```json
{"provider_resolutions":{"P01":"Survey Team"},"duplicate_resolutions":{"P02":"different"}}
```
Use `parcel_ref` keys for every per-parcel decision.AionUi
Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!
activepieces
AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents
cherry-studio
AI productivity studio with smart chat, autonomous agents, and 300+ assistants.
CopilotKit
The Frontend for Agents & Generative UI. React + Angular
Machine-readable data
The same record, as JSON, for agents and crawlers.
{
"facts": [
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Clawhub",
"href": "https://clawhub.ai/jeromeex/skills/ovitalmap-parcel-csv",
"sourceUrl": "https://clawhub.ai/jeromeex/skills/ovitalmap-parcel-csv",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-11T06:50:12.624Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "OpenClaw",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-jeromeex-ovitalmap-parcel-csv/contract",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-jeromeex-ovitalmap-parcel-csv/contract",
"sourceType": "contract",
"confidence": "medium",
"observedAt": "2026-10-11T06:50:12.624Z",
"isPublic": true
},
{
"factKey": "traction",
"category": "adoption",
"label": "Adoption signal",
"value": "1.1K downloads",
"href": "https://clawhub.ai/jeromeex/ovitalmap-parcel-csv",
"sourceUrl": "https://clawhub.ai/jeromeex/ovitalmap-parcel-csv",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-11T06:50:12.624Z",
"isPublic": true
},
{
"factKey": "latest_release",
"category": "release",
"label": "Latest release",
"value": "3.0.1",
"href": "https://clawhub.ai/jeromeex/ovitalmap-parcel-csv",
"sourceUrl": "https://clawhub.ai/jeromeex/ovitalmap-parcel-csv",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-09-04T13:06:00.108Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-jeromeex-ovitalmap-parcel-csv/trust",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-jeromeex-ovitalmap-parcel-csv/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
],
"events": [
{
"eventType": "release",
"title": "Release 3.0.1",
"description": "Prepared for portable public use: added runtime metadata and MIT-0 licensing, replaced hard-coded Chinese replies with language-neutral workflow messages, removed Chinese-specific provider heuristics and legacy interfaces, and retained validated OvitalMap CSV/archive safeguards.",
"href": "https://clawhub.ai/jeromeex/ovitalmap-parcel-csv",
"sourceUrl": "https://clawhub.ai/jeromeex/ovitalmap-parcel-csv",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-09-04T13:06:00.108Z",
"isPublic": true
}
]
}Record generated Oct 11, 2026.
