KS
Killer-Skills

add-static-dataset — how to use add-static-dataset how to use add-static-dataset, add-static-dataset setup guide, GeoJSON dataset integration, TILDA administrative staff tools, add-static-dataset alternative, add-static-dataset vs OpenStreetMap, install add-static-dataset, what is add-static-dataset, add-static-dataset tutorial

v1.0.0
GitHub

About this Skill

Perfect for Geographic Information System (GIS) Agents needing access to OpenStreetMap data for advanced spatial analysis and visualization. add-static-dataset is a skill that enables the integration of static GeoJSON datasets into TILDA, providing access to administrative staff.

Features

Adds a new static dataset folder to app/scripts/StaticDatasets/geojson
Supports GeoJSON file integration
Creates a symlink to the /geojson folder
Requires group folder and sub-folder name for dataset organization
Enables user-provided GeoJSON file paths for custom integration

# Core Topics

FixMyBerlin FixMyBerlin
[0]
[0]
Updated: 3/6/2026

Quality Score

Top 5%
51
Excellent
Based on code quality & docs
Installation
SYS Universal Install (Auto-Detect)
Cursor IDE Windsurf IDE VS Code IDE
> npx killer-skills add FixMyBerlin/tilda-geo/add-static-dataset

Agent Capability Analysis

The add-static-dataset MCP Server by FixMyBerlin is an open-source Categories.community integration for Claude and other AI agents, enabling seamless task automation and capability expansion. Optimized for how to use add-static-dataset, add-static-dataset setup guide, GeoJSON dataset integration.

Ideal Agent Persona

Perfect for Geographic Information System (GIS) Agents needing access to OpenStreetMap data for advanced spatial analysis and visualization.

Core Value

Empowers agents to integrate GeoJSON files into their workflows, providing seamless access to static datasets and enabling advanced data visualization capabilities using OpenStreetMap infrastructure data, with support for symlinked folders like `/geojson`.

Capabilities Granted for add-static-dataset MCP Server

Adding new GeoJSON datasets for region-specific analysis
Integrating user-provided GeoJSON files for custom data visualization
Uploading static datasets for bicycle and parking infrastructure planning

! Prerequisites & Limits

  • Requires access to OpenStreetMap data
  • Limited to GeoJSON file format
  • Needs specific group folder and sub-folder name information
Project
SKILL.md
5.7 KB
.cursorrules
1.2 KB
package.json
240 B
Ready
UTF-8

# Tags

[No tags]
SKILL.md
Readonly

Add Static Dataset

Adds a new static dataset folder to app/scripts/StaticDatasets/geojson. The /geojson folder is a symlink.

When to Use

  • User wants to add a new GeoJSON dataset
  • User mentions adding static data, geojson files, "uploads", or datasets
  • User provides a geojson file path and wants it integrated

Required Information

Extract from user prompt or ask if missing:

  1. Group folder (e.g., region-berlin, region-bb) - parent folder name
  2. Sub-folder name (e.g., berlin-bezirke) - dataset folder name (must be valid slug). Must include region/group prefix: for region-berlin use berlin-<name>, not just <name>
  3. GeoJSON file path - absolute path to source file on disk
  4. Regions - array of region slugs (e.g., ['infravelo'], ['berlin'])
  5. Optional: transformation needs, style preferences, category, attribution, license

Process

1. Create Folder Structure

bash
1app/scripts/StaticDatasets/geojson/<GROUP_FOLDER>/<SUB_FOLDER>/

Important: /geojson is a symlink. Create folders in app/scripts/StaticDatasets/geojson/ path.

Create directory if group folder doesn't exist. Ensure sub-folder name follows naming convention (see Required Information above).

2. Move GeoJSON File

  • Move source file to <SUB_FOLDER>/<FILENAME>.geojson
  • Run prettier from app/ directory (prettier config is in app/): cd app && bunx prettier --write scripts/StaticDatasets/geojson/<GROUP_FOLDER>/<SUB_FOLDER>/<FILENAME>.geojson

3. Create transform.ts (if needed)

Only if transformation required. Use helpers from app/scripts/StaticDatasets/geojson/_utils:

  • transformUtils.ts - property transformations
  • defaultLayerStyles.ts - default styling helpers
  • translateUtils.ts - translation helpers

Example:

typescript
1import { FeatureCollection } from "geojson"; 2 3export const transform = (data: FeatureCollection) => { 4 // Use helper functions from _utils when possible 5 return data; 6};

4. Create meta.ts

Critical: Research similar datasets in same group folder first.

Before writing meta.ts:

  1. List all datasets in <GROUP_FOLDER>/ directory
  2. Read 2-3 similar meta.ts files (similar geometry type, similar purpose)
  3. Infer patterns:
    • Category from similar datasets
    • Attribution patterns
    • License conventions
    • Style patterns
    • Inspector settings
  4. If unclear, ask user to confirm or provide missing data

Required fields (from app/scripts/StaticDatasets/types.ts):

  • regions: RegionSlug[] (required)
  • public: boolean (required)
  • dataSourceType: 'local' (required)
  • configs: Array with at least one config (required)

Config required fields:

  • name: string
  • attributionHtml: string
  • inspector: { enabled: boolean, ... } or { enabled: false }
  • layers: Layer[] (required)

Config optional fields:

  • category: StaticDatasetCategoryKey | null
  • updatedAt: string
  • description: string
  • dataSourceMarkdown: string
  • licence: License type (see types.ts)
  • licenceOsmCompatible: 'licence' | 'waiver' | 'no'
  • legends: Legend[]

Style/Legend: If not specified, make best guess:

  • Use defaultLayerStyles() from _utils/defaultLayerStyles.ts for simple cases
  • For polygons: fill + outline
  • For lines: colored line with width
  • For points: circle markers
  • Create appropriate legend entries

Example structure:

typescript
1import { MetaData } from "../../../types"; 2import { defaultLayerStyles } from "../../_utils/defaultLayerStyles"; 3 4export const data: MetaData = { 5 regions: ["infravelo"], // From user or infer from group folder 6 public: true, 7 dataSourceType: "local", 8 configs: [ 9 { 10 name: "Dataset Name", 11 category: "berlin/misc", // Infer from similar datasets 12 attributionHtml: "Source Name", // Ask if unclear 13 licence: "DL-DE/ZERO-2.0", // Infer from similar datasets 14 inspector: { enabled: false }, // Default unless specified 15 layers: defaultLayerStyles(), // Or custom layers 16 }, 17 ], 18};

5. Verify Command

Check app/scripts/StaticDatasets/updateStaticDatasets.ts for correct params:

  • --folder-filter=<SUB_FOLDER_NAME> (matches full path, so sub-folder name works)
  • --env=dev (or staging/production, required)

One-click command (replace <SUB_FOLDER_NAME> with actual folder name):

bash
1bun --env-file=.env ./scripts/StaticDatasets/updateStaticDatasets.ts --folder-filter=<SUB_FOLDER_NAME> --env=dev

Note: updateDownloadSources.ts is for WFS downloads (requires downloadConfig.ts). Use updateStaticDatasets.ts for local GeoJSON files.

6. Verify TypeScript Compilation

Always run this after creating or modifying TypeScript files (meta.ts, transform.ts, or any imports):

bash
1npm run type-check:deploy

This temporarily removes the geojson symlink, runs TypeScript type-checking, and restores the symlink. It simulates the Docker build environment where symlinks aren't available, ensuring your code will compile correctly during builds.

Validation

Before completing:

  1. ✅ Folder structure created
  2. ✅ GeoJSON file moved and prettier run
  3. ✅ transform.ts created only if needed
  4. ✅ meta.ts follows type structure (check with TypeScript)
  5. ✅ Similar datasets in group folder reviewed for patterns
  6. ✅ Command verified and provided as one-click action
  7. npm run type-check:deploy run successfully (see Step 6)

References

  • Types: app/scripts/StaticDatasets/types.ts
  • Examples: app/scripts/StaticDatasets/geojson/region-berlin/*/meta.ts
  • Utils: app/scripts/StaticDatasets/geojson/_utils/
  • Docs: docs/Features-Parameter-Deeplinks.md, docs/Regional-Masks.md
  • Update script: app/scripts/StaticDatasets/updateStaticDatasets.ts

Related Skills

Looking for an alternative to add-static-dataset or building a Categories.community AI Agent? Explore these related open-source MCP Servers.

View All

widget-generator

Logo of f
f

widget-generator is an open-source AI agent skill for creating widget plugins that are injected into prompt feeds on prompts.chat. It supports two rendering modes: standard prompt widgets using default PromptCard styling and custom render widgets built as full React components.

149.6k
0
Design

chat-sdk

Logo of lobehub
lobehub

chat-sdk is a unified TypeScript SDK for building chat bots across multiple platforms, providing a single interface for deploying bot logic.

73.0k
0
Communication

zustand

Logo of lobehub
lobehub

The ultimate space for work and life — to find, build, and collaborate with agent teammates that grow with you. We are taking agent harness to the next level — enabling multi-agent collaboration, effortless agent team design, and introducing agents as the unit of work interaction.

72.8k
0
Communication

data-fetching

Logo of lobehub
lobehub

The ultimate space for work and life — to find, build, and collaborate with agent teammates that grow with you. We are taking agent harness to the next level — enabling multi-agent collaboration, effortless agent team design, and introducing agents as the unit of work interaction.

72.8k
0
Communication