kitaru-importer-development

A guide to building separately packaged Kitaru importers that turn exports from external providers into imported sessions.

In plain words
What is it for?
Use it to parse provider exports, define session boundaries, produce stable external IDs, register importer metadata, and populate supported session details.
Why use it?
It clarifies when a reusable importer package is appropriate and how to preserve source data, identify duplicates, and report bad records without stopping the whole import.

Skill for Claude CodeCodex

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/zenml-io/kitaru/kitaru-importer-development
Any agent
npx skills add zenml-io/kitaru --skill kitaru-importer-development
Clone the repo
git clone --depth 1 https://github.com/zenml-io/kitaru

Made for: Claude Code, Codex.

Per session 48 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,074 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00048 $0.01074
Opus 5 $0.00024 $0.00537
Sonnet 5 $0.00010 $0.00215
Haiku 4.5 $0.00005 $0.00107

Measured yesterday against content hash 5d375b7e9ad6, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

kitaru-importer-development scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.agents/skills/kitaru-importer-development/SKILL.md · 59 lines

How it starts

The opening of the file, as written. The whole thing — 59 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Kitaru Importer Development

Read AGENTS.md, plugins/AGENTS.md, plugins/DEVELOPMENT.md, and src/kitaru/task/importer.py. Treat the task module as the executable importer contract. Read the JSONL importer first for the smallest example, then the closest provider importer and its fixtures. Load the same-name kitaru-dev repo skill for the current host for the general command and PR workflow.

First decide whether the request needs a reusable package. A one-off conversion to Kitaru JSONL or a self-contained registered script may be smaller. Registration stores source metadata; it does not upload or vendor a package.

Implement the parser contract

Implement parse(payload: bytes, params: dict[str, Any]) as an iterator of ImportedSession or ImportFailure.

  • Choose and document the source-to-session boundary.
  • Derive a stable source external_id; Kitaru deduplicates using the importer provider and this ID.
  • Preserve source inputs and outputs. Populate selectors, models, tokens, costs, reasoning, framework, attributes, and metadata only when the export supports them without guessing.
  • Yield ImportFailure for an isolated bad record. An exception raised while starting or advancing the parser ends the import task.
  • Preserve valid node ordering and graph relationships. Use either nested nodes or the flat indexed form accepted by flatten_nodes; follow that function's validation rules.
  • Validate provider parameters and keep normalization or grouping provenance in metadata when it changes how the source is interpreted.

Use representative provider exports as fixtures. Cover malformed records, missing or duplicate IDs, grouping, ordering, parent links, model and tool normalization, reasoning visibility, selector escaping, and stable re-import behavior as applicable.

Package, register, and version

An importer distribution lives under plugins/packages/<slug>-importer/, with its source, pyproject.toml, changelog, and focused tests under plugins/tests/importers/. Export parse through the package __all__. Add the package to plugins/README.md, release/release-units.toml, the exact inventory in tests/scripts/test_release_units.py, and plugins/uv.lock. A non-default package also declares tool.kitaru.artifact.import-module so artifact smoke can import it without a default-catalog entry.

Read the full file on GitHub · 59 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. yesterday First seen · 59 lines · 48 tokens per session scan A 5d375b7e9ad6

Subscribe to this mod's changes

kitaru-importer-development is a skill published in the GitHub repository zenml-io/kitaru (270 stars, last pushed 4d ago), licensed Apache-2.0. It adds 48 tokens to every session and 1,074 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

migrating-world-v4-to-v5

Upgrades a custom Workflow SDK World implementation from the v4 spec to v5. Use when a package implements the World interface from @workflow/world and is moving to 5.x — event IDs that are ULIDs rather than slot positions, Event id is not slot-numbered at replay time, a specVersion the runtime refuses, writeToStream /…

vercel/workflow · 166 tokens

field-descriptions

Write or review Pydantic Field(description=...) text for ZenML stack component configs. Use when adding, editing, or reviewing config fields in src/zenml/integrations//flavors/ or any StackComponentConfig subclass, or when scripts/validatedescriptions.py fails.

zenml-io/zenml · 70 tokens

workflow-init

Install and configure Vercel Workflow SDK before it exists in nodemodules. Use when the user asks to "install workflow", "set up workflow", "add durable workflows", "configure workflow sdk", or "init workflow" for Next.js, Express, Hono, Fastify, NestJS, Nitro, Nuxt, Astro, SvelteKit, or Vite.

vercel/workflow · 78 tokens

experiment-tracking-swanlab

Provides guidance for experiment tracking with SwanLab. Use when you need open-source run tracking, local or self-hosted dashboards, and lightweight media logging for ML workflows.

Orchestra-Research/AI-Research-SKILLs · 40 tokens

gsd-executor

Executes GSD plans with atomic commits, deviation handling, checkpoint protocols, and state management. Spawned by execute-phase orchestrator or execute-plan command.

allgpt-co/QuickVoice · 36 tokens

mlflow

Track ML experiments, manage model registry with versioning, deploy models to production, and reproduce experiments with MLflow - framework-agnostic ML lifecycle platform.

Orchestra-Research/AI-Research-SKILLs · 33 tokens