{"id":16852,"plugin_id":"plugins_6a6a29948a7c8191ace6787d5ae074bb","kind":"skill","collection_source":null,"comparison_source":null,"observed_at":"2026-09-30T23:13:50.163Z","digest":"bb04e97b1a72e47bdc3c3e9cd8546c387b7179bb550d603709cb897b4fec59db","against":null,"payload":{"name":"jinko-data-table","description":"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.","included_files":[{"relative_path":"agents/openai.yaml","size_in_bytes":262},{"relative_path":"assets/data-table.json","size_in_bytes":1719},{"relative_path":"assets/toy_data_table_ranges.csv","size_in_bytes":239},{"relative_path":"assets/toy_data_table_values.csv","size_in_bytes":197},{"relative_path":"evals/evals.json","size_in_bytes":1226},{"relative_path":"references/data-table-schema.md","size_in_bytes":1388},{"relative_path":"scripts/create_data_table.py","size_in_bytes":12493},{"relative_path":"scripts/inspect_data_table.py","size_in_bytes":3606}],"skill_md_contents":"---\nname: jinko-data-table\ndescription: >-\n  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.\ncompatibility: >-\n  Check set-up with the `jinko-sdk-setup` skill. Creating data tables requires write access to the Jinkō project. DataFrame creation requires pandas.\nmetadata:\n  author: Nova In Silico\n  requires_sdk: \">=1.8,<2.0\"\nlicense: MIT\n---\n\n# Jinkō Data Table SDK Workflows\n\nUse 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.\n\n> **PREREQUISITE:** This skill needs an initialized `jinko-sdk` connection and an\n> SDK satisfying its `metadata.requires_sdk` range. Run the `jinko-sdk-setup` skill\n> (`../jinko-sdk-setup/SKILL.md`) and proceed only once its check passes. If that\n> skill is not found, install it from `novainsilico/jinko-skills`.\n\n## Scope\n\n- Use `client.create_data_table_from_csv()` for CSV files or bytes.\n- Use `client.create_data_table_from_sqlite()` for SQLite files or bytes.\n- Use `client.create_data_table_from_dataframe()` for pandas DataFrames.\n- Inspect existing data tables with `get_data_table()`, `content()`, `summary()`, `validate()`, and `export()`.\n- Check `metadata.public.validForFitnessFunction` after creation or inspection when available if the data table needs to be attached through trial/calibration `dataTableDesigns`.\n- 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.\n\n## Project Folder Hygiene\n\n- 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>`.\n- Reuse an existing exact-match folder when possible: `client.get_folder_by_name(name, exact_match_only=True)`.\n- If the folder does not exist, create it only after user confirmation or when a script is run with `--apply`.\n- Resolve one folder object or folder id, then pass `folder=folder` to SDK creation calls that support it.\n\n## Row Schema\n\nRead `assets/data-table.json` before changing CSV structure.\n\nSupported row shapes:\n\n- Point-value row: `obsId`, `time`, `value`, plus optional `unit`, `armScope`, ranges, weight, and reference.\n- Range row: `obsId`, `time`, `narrowRangeLowBound`, `narrowRangeHighBound`, plus optional `unit`, `armScope`, wide ranges, weight, and reference.\n\nUse ISO-8601 duration strings for `time`, for example `PT0S`, `PT6H`, or `P1D`.\n\n## Bundled Assets\n\n- `assets/toy_data_table_values.csv`: point-value observations for trial overlays.\n- `assets/toy_data_table_ranges.csv`: range observations suitable for calibration objective workflows.\n- `assets/data-table.json`: schema subset for supported data-table rows.\n\n## Bundled Scripts\n\n- `scripts/create_data_table.py`: dry-run-validates every CSV row and creates a\n  data table with `--apply`; use `--allowed-obs-id`, `--require-unit`,\n  `--require-experiment-ref`, and `--require-fitness` for calibration inputs.\n- `scripts/inspect_data_table.py`: inspects existing data tables and can enforce\n  fitness compatibility with `--require-fitness`.\n\nExamples:\n\n```bash\npython skills/jinko-data-table/scripts/create_data_table.py --source skills/jinko-data-table/assets/toy_data_table_ranges.csv --method csv\npython skills/jinko-data-table/scripts/create_data_table.py --source extracted.csv --allowed-obs-id Drug --require-unit --require-experiment-ref --require-fitness --apply\npython skills/jinko-data-table/scripts/create_data_table.py --source skills/jinko-data-table/assets/toy_data_table_ranges.csv --method csv --apply\npython skills/jinko-data-table/scripts/create_data_table.py --source skills/jinko-data-table/assets/toy_data_table_ranges.csv --method csv --folder 2026-06-15-fit-data --create-folder --apply\npython skills/jinko-data-table/scripts/create_data_table.py --source skills/jinko-data-table/assets/toy_data_table_values.csv --method dataframe --apply\npython skills/jinko-data-table/scripts/inspect_data_table.py --data-table-sid dt-... --fitness --validate\n```\n\n## Reference Routing\n\n- Read `references/data-table-schema.md` for row shape and fitness-function notes.\n- Read `assets/data-table.json` when checking required columns.\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}