Back to Skills

data-importer

majiayu000
Updated Today
4 views
58
9
58
View on GitHub
Testingtestingapidata

About

The data-importer skill converts Synnovator platform data from `.synnovator/*.md` files into a SQLite database using SQLAlchemy models. It's designed for populating test data, initializing databases from file-based sources, or migrating content to a relational format. Developers can use it to quickly seed databases for testing FastAPI endpoints with real imported data.

Quick Install

Claude Code

Recommended
Plugin CommandRecommended
/plugin add https://github.com/majiayu000/claude-skill-registry
Git CloneAlternative
git clone https://github.com/majiayu000/claude-skill-registry.git ~/.claude/skills/data-importer

Copy and paste this command in Claude Code to install this skill

Documentation

Data Importer

Import .synnovator/*.md files (YAML frontmatter + Markdown body) into SQLite database via SQLAlchemy models.

Quick Start

# Import all data
python cli.py import \
  --source .synnovator \
  --db data/synnovator.db \
  --models backend/models

# Import specific types only
python cli.py import \
  --source .synnovator \
  --db data/synnovator.db \
  --models backend/models \
  --types user,post

# Full import (clear and reimport)
python cli.py import \
  --source .synnovator \
  --db data/synnovator.db \
  --models backend/models \
  --mode full

Workflow

  1. Validate inputs - Check paths exist and models can be loaded
  2. Load models - Dynamically import SQLAlchemy models module
  3. Import in order - Follow dependency graph (see import-order.md)
  4. Parse files - Extract YAML frontmatter and Markdown body
  5. Convert types - Map values to database column types
  6. Insert records - Batch insert with error handling
  7. Report results - Show imported/skipped/failed counts

Import Order

Data must be imported following foreign key dependencies:

  1. Phase 1: user, category, rule (independent types)
  2. Phase 2: group, post, resource (depend on user)
  3. Phase 3: interaction (depends on user and targets)
  4. Phase 4: All relations (depend on content types)

See references/import-order.md for complete dependency graph.

Field Mapping

.md files use YAML frontmatter for structured fields and Markdown content for body text. The importer maps these to SQLAlchemy model columns with automatic type conversion:

  • datetime: ISO 8601 strings → datetime objects
  • JSON: Lists/dicts → JSON strings
  • enum: Validates against allowed values
  • integer/float: Strings → numbers
  • boolean: "true"/"false" → bool

See references/mapping.md for complete field mappings for all 7 content types and 7 relation types.

Error Handling

  • Duplicate IDs: Skips records that already exist (incremental mode)
  • Missing fields: Reports validation errors
  • Foreign key violations: Reports missing references
  • Type errors: Shows conversion failures
  • Partial success: Continues importing after individual failures

Testing

Run the test suite:

cd scripts/
python test_importer.py

Tests validate:

  • Parsing .md files with YAML frontmatter
  • Type conversion logic
  • Import order correctness

Requirements

  • Python 3.8+
  • SQLAlchemy
  • PyYAML
  • SQLite database with tables matching .synnovator schema

Limitations

  • Only supports SQLite databases
  • Requires SQLAlchemy models to be importable
  • Does not generate missing tables (use Alembic migrations first)
  • Incremental mode skips duplicates by ID only

GitHub Repository

majiayu000/claude-skill-registry
Path: skills/data-importer

Related Skills

content-collections

Meta

This skill provides a production-tested setup for Content Collections, a TypeScript-first tool that transforms Markdown/MDX files into type-safe data collections with Zod validation. Use it when building blogs, documentation sites, or content-heavy Vite + React applications to ensure type safety and automatic content validation. It covers everything from Vite plugin configuration and MDX compilation to deployment optimization and schema validation.

View skill

creating-opencode-plugins

Meta

This skill provides the structure and API specifications for creating OpenCode plugins that hook into 25+ event types like commands, files, and LSP operations. It offers implementation patterns for JavaScript/TypeScript modules that intercept and extend the AI assistant's lifecycle. Use it when you need to build event-driven plugins for monitoring, custom handling, or extending OpenCode's capabilities.

View skill

evaluating-llms-harness

Testing

This Claude Skill runs the lm-evaluation-harness to benchmark LLMs across 60+ standardized academic tasks like MMLU and GSM8K. It's designed for developers to compare model quality, track training progress, or report academic results. The tool supports various backends including HuggingFace and vLLM models.

View skill

langchain

Meta

LangChain is a framework for building LLM applications using agents, chains, and RAG pipelines. It supports multiple LLM providers, offers 500+ integrations, and includes features like tool calling and memory management. Use it for rapid prototyping and deploying production systems like chatbots, autonomous agents, and question-answering services.

View skill