← JinkōCONTENT HISTORYWHAT CHANGED · RULE-BASED ANALYSIS
Update to Jinkō
Snapshot Sep 30, 2026 · 23:13 UTC · version 1.8.0
Collection source: not recorded for this historical snapshot.
First saved snapshot
No earlier snapshot is available to establish a change.
Compare saved observations
Download comparison JSONFull technical diff · 0 changed fields
Full snapshot data
{
"name": "jinko-trial-viz",
"description": "Create, update, inspect, sanity-check, and retrieve Jinkō TrialVisualization project items for completed or running trials. Use this skill whenever the user wants a trial visualization, trial viz, time-series plot setup, scalar result plots, scatter plots, contribution analysis, survival analysis, data overlays, or to fetch the current visualization JSON. The SDK exposes a typed TrialVisualization API: creation helpers plus a per-section subservice for every plot type.",
"included_files": [
{
"relative_path": "agents/openai.yaml",
"size_in_bytes": 269
},
{
"relative_path": "evals/evals.json",
"size_in_bytes": 3067
},
{
"relative_path": "references/trial-viz-typed-api.md",
"size_in_bytes": 3577
},
{
"relative_path": "scripts/trial_viz.py",
"size_in_bytes": 14579
}
],
"skill_md_contents": "---\nname: jinko-trial-viz\ndescription: >-\n Create, update, inspect, sanity-check, and retrieve Jinkō TrialVisualization project items for completed or running trials. Use this skill whenever the user wants a trial visualization, trial viz, time-series plot setup, scalar result plots, scatter plots, contribution analysis, survival analysis, data overlays, or to fetch the current visualization JSON. The SDK exposes a typed TrialVisualization API: creation helpers plus a per-section subservice for every plot type.\ncompatibility: >-\n Check set-up with the `jinko-sdk-setup` skill. Creating or patching trial visualizations requires write access to the Jinkō project.\nmetadata:\n author: Nova In Silico\n requires_sdk: \">=1.8,<2.0\"\nlicense: MIT\n---\n\n# Jinkō Trial Visualization Workflows\n\nUse this skill for TrialVisualization project items: creating a visualization for a trial, configuring plot sections, retrieving the stored visualization payload, and running visualization sanity checks.\n\nKeep trial execution and result downloads in `jinko-trial`. Use this skill after a trial exists and the user wants the Jinkō visualization artifact or its plot configuration.\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## Core Workflow\n\n1. Resolve the trial: `trial = client.get_trial(trial_sid)`.\n2. After explicit user confirmation, create an empty visualization bound to the trial: `viz = trial.create_empty_trial_visualization(folder=..., name=..., description=...)`.\n3. Decide the plot sections needed and configure each through its typed subservice:\n - `viz.timeseries` for time-course outputs.\n - `viz.scalars` for scalar result distributions and central-location plots.\n - `viz.scatter_plots` for X-vs-X arms or X-vs-Y variables.\n - `viz.survival_analysis` for time-to-event visualizations.\n - `viz.contribution_analysis` for tornado-style sensitivity/contribution views.\n - `viz.data_overlay` / `viz.patients_overlay` when observed data or patient-level data should appear.\n - `viz.filters` / `viz.groups` for scoping and grouping.\n - `viz.set_selected_arms(...)`, `viz.set_equate_baseline(...)`, `viz.set_time_unit(...)` for top-level options.\n4. Run and print `viz.sanity` after every create or update. Return failure and fix the visualization when it reports errors.\n5. Reconfigure a section at any time by calling its setter again (e.g. `viz.timeseries.set_selectors([...])`) — each call patches only that section.\n\n## SDK Surface\n\n- `trial.create_empty_trial_visualization(folder=, name=, description=, version=)` and `trial.create_trial_visualization_from_json(data, ...)` — creation, bound to a trial.\n- `client.list_trial_visualizations(...)`, `client.iter_trial_visualizations(...)`, `client.get_trial_visualization(sid)` — metadata lookup.\n- `viz.content(revision=...)` — full typed content; `viz.sanity` / `viz.sanity_at(revision, only=[...])` — diagnostics (`.errors()`, `.warnings()`, `.has_errors()`, `.for_field(...)`, `.by_field()`).\n- Section subservices, each with `get()`/`clear()` plus section-specific setters: `viz.timeseries.set_selectors(...)`/`add_selectors(...)`, `viz.scalars.set_selectors(...)`/`add_selectors(...)`, `viz.survival_analysis.set_selectors(...)`/`set_observation_window_from_start_until_end(...)`/`set_observation_window_from_start_until_time(...)`/`set_confidence_interval(...)`, `viz.contribution_analysis.set_selectors(...)`/`set_quantile(...)`/`set_input_baseline_only(...)`/`set_all_baseline(...)`/`set_custom_baseline(...)`, `viz.scatter_plots.add_x_vs_x_plot(...)`/`add_x_vs_y_plot(...)`/`set_config(...)`/`set_regression(...)`, `viz.data_overlay.add_table(...)`/`set_tables(...)`/`set_ranges_enabled(...)`, `viz.filters.add_numeric(...)`/`add_categorical(...)`/`add_patient_list(...)`, `viz.groups.set_group_by_arm(...)`/`add_scalar_*_grouping(...)`/`add_categorical_grouping(...)`.\n\nRead `references/trial-viz-typed-api.md` for full examples of each subservice.\n\n## Bundled Script\n\nUse the script for repeatable create, update, get, list, and sanity operations through the typed API.\n\n```bash\npython skills/jinko-trial-viz/scripts/trial_viz.py list --limit 20\npython skills/jinko-trial-viz/scripts/trial_viz.py create --trial-sid tr-... --name \"My trial viz\" --timeseries Drug --scalar AUC\npython skills/jinko-trial-viz/scripts/trial_viz.py create --trial-sid tr-... --name \"My trial viz\" --timeseries Drug --scalar AUC --apply\npython skills/jinko-trial-viz/scripts/trial_viz.py get --trial-viz-sid tv-... --output-file viz.content.json\npython skills/jinko-trial-viz/scripts/trial_viz.py update --trial-viz-sid tv-... --scatter-xvsy \"AUC,Cmax,control,treated\" --apply\npython skills/jinko-trial-viz/scripts/trial_viz.py sanity --trial-viz-sid tv-... --only timeseries --only scatterPlots\n```\n\nFor scatter, overlay, filter, or grouping configuration beyond the script's flags, use the typed subservices directly in Python (see `references/trial-viz-typed-api.md`).\n\n## Project Folder Hygiene\n\n- Prefer creating trial visualizations in the same folder as the trial or in a dedicated analysis folder.\n- Pass a folder id or exact folder name through the bundled script's `--folder`, or `folder=folder` on `create_empty_trial_visualization(...)` directly.\n- Treat an explicit folder that cannot be resolved as an error; never silently create the visualization in the project root.\n- Reuse existing trial visualizations when the user wants an additional plot on the same analysis; call the relevant section's setter instead of creating duplicates.\n\n## Reference Routing\n\n- Read `references/trial-viz-typed-api.md` for the typed subservice API.\n\n## Output Expectations\n\nWhen creating or modifying a visualization, report:\n\n- TrialVisualization SID, core item id, snapshot id, revision when available, and URL when available.\n- Plot sections created or patched.\n- Any sanity errors or warnings, preserving the backend field names so the next fix is direct.\n\nWhen retrieving a visualization, return or save the full JSON content if the user needs to inspect, diff, or reuse plot settings.\n"
}SHA-256: e8d381444474b626eeed66638ae4f4109e6bed9bcce3e76a38ea9d9d07202092