# Jinko Data Table

> Create or inspect Jinkō data tables via the jinko-sdk. Use this skill whenever the user wants to upload observed data for trial overlays or calibration objectives from CSV, SQLite, or pandas DataFrame; check data-table schema columns; inspect existing data tables; or verify metadata.public.validForFitnessFunction. Do not use this skill for output sets; use jinko-output-set for that.

- Skill: `novainsilico/jinko-data-table` (Agent Skill, multi-file: 7 files)
- Install (CLI): `npx skillmds@latest add novainsilico/jinko-data-table`
- Raw SKILL.md: https://api.skillmd.com/api/skills/novainsilico/jinko-data-table/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Data & Analytics
- License: MIT
- Author: novainsilico (https://skillmd.com/u/novainsilico)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/novainsilico/jinko-data-table

---


# Jinkō Data Table SDK Workflows

Use this skill for data-table mechanics through the SDK. Data tables can support trial overlays and calibration objectives; the row schema is the same, and fitness-function compatibility is reported by metadata when available.

> **PREREQUISITE:** This skill needs an initialized `jinko-sdk` connection and an
> SDK satisfying its `metadata.requires_sdk` range. Run the `jinko-sdk-setup` skill
> (`../jinko-sdk-setup/SKILL.md`) and proceed only once its check passes. If that
> skill is not found, install it from `novainsilico/jinko-skills`.

## Scope

- Use `client.create_data_table_from_csv()` for CSV files or bytes.
- Use `client.create_data_table_from_sqlite()` for SQLite files or bytes.
- Use `client.create_data_table_from_dataframe()` for pandas DataFrames.
- Inspect existing data tables with `get_data_table()`, `content()`, `summary()`, `validate()`, and `export()`.
- Check `metadata.public.validForFitnessFunction` after creation or inspection when available if the data table needs to be attached through trial/calibration `dataTableDesigns`.
- For trial workflows that attach data tables through `jinko-trial`, use a data table with `validForFitnessFunction: True`; point-value overlay tables may upload successfully but fail trial launch sanity.

## Project Folder Hygiene

- Prefer creating data tables inside a dedicated Jinkō folder instead of the project root. At the start of a workflow, ask for or propose a folder name, for example `YYYY-MM-DD-<experiment-name>`.
- Reuse an existing exact-match folder when possible: `client.get_folder_by_name(name, exact_match_only=True)`.
- If the folder does not exist, create it only after user confirmation or when a script is run with `--apply`.
- Resolve one folder object or folder id, then pass `folder=folder` to SDK creation calls that support it.

## Row Schema

Read `assets/data-table.json` before changing CSV structure.

Supported row shapes:

- Point-value row: `obsId`, `time`, `value`, plus optional `unit`, `armScope`, ranges, weight, and reference.
- Range row: `obsId`, `time`, `narrowRangeLowBound`, `narrowRangeHighBound`, plus optional `unit`, `armScope`, wide ranges, weight, and reference.

Use ISO-8601 duration strings for `time`, for example `PT0S`, `PT6H`, or `P1D`.

## Bundled Assets

- `assets/toy_data_table_values.csv`: point-value observations for trial overlays.
- `assets/toy_data_table_ranges.csv`: range observations suitable for calibration objective workflows.
- `assets/data-table.json`: schema subset for supported data-table rows.

## SDK Scripts

These are on `PATH` as console scripts once the SDK is installed, and also
runnable via `python -m` as shown below.

- `jinko.cli.create_data_table`: dry-run-validates every CSV row and creates a
  data table with `--apply`; use `--allowed-obs-id`, `--require-unit`,
  `--require-experiment-ref`, and `--require-fitness` for calibration inputs.
- `jinko.cli.inspect_data_table`: inspects existing data tables and can enforce
  fitness compatibility with `--require-fitness`.

Examples:

```bash
python -m jinko.cli.create_data_table --source skills/jinko-data-table/assets/toy_data_table_ranges.csv --method csv
python -m jinko.cli.create_data_table --source extracted.csv --allowed-obs-id Drug --require-unit --require-experiment-ref --require-fitness --apply
python -m jinko.cli.create_data_table --source skills/jinko-data-table/assets/toy_data_table_ranges.csv --method csv --apply
python -m jinko.cli.create_data_table --source skills/jinko-data-table/assets/toy_data_table_ranges.csv --method csv --folder 2026-06-15-fit-data --create-folder --apply
python -m jinko.cli.create_data_table --source skills/jinko-data-table/assets/toy_data_table_values.csv --method dataframe --apply
python -m jinko.cli.inspect_data_table --data-table-sid dt-... --fitness --validate
```

## Reference Routing

- Read `references/data-table-schema.md` for row shape and fitness-function notes.
- Read `assets/data-table.json` when checking required columns.

