{"id":19417,"plugin_id":"plugins_6a9925eea12c819192e02a982a390672","kind":"skill","collection_source":null,"comparison_source":null,"observed_at":"2026-09-30T23:15:33.535Z","digest":"7e92b00f0d8f3c1114a2c563360be709548314f0f5f6b8a5afece699bb817e18","against":null,"payload":{"description":"Use for scientific, research, quantitative, statistical, benchmark, and data-analysis charts, analytical figures, diagrams, and tables. Preserve evidence, select forms deterministically, apply restrained publication-grade design, and inspect final-size rendered outputs before delivery. Exclude explicit generative-image, illustration, artwork, and photorealistic-image requests unless the user explicitly combines the workflows.","included_files":[{"relative_path":"VERSION","size_in_bytes":6},{"relative_path":"agents/openai.yaml","size_in_bytes":301},{"relative_path":"examples/README.md","size_in_bytes":494},{"relative_path":"examples/example_openai_visuals.py","size_in_bytes":4187},{"relative_path":"references/direct_asset_manifest.txt","size_in_bytes":15756},{"relative_path":"references/form_selection.md","size_in_bytes":11733},{"relative_path":"references/gpt6_astra_north_star.md","size_in_bytes":3538},{"relative_path":"references/gpt6_astra_reference_index.json","size_in_bytes":1202},{"relative_path":"references/openai_visual_reference_library.jsonl","size_in_bytes":252401},{"relative_path":"references/provenance.md","size_in_bytes":2099},{"relative_path":"references/quality_gates.md","size_in_bytes":9040},{"relative_path":"references/reference_design_spec.md","size_in_bytes":8120},{"relative_path":"references/style_contract.md","size_in_bytes":21434},{"relative_path":"references/top_reference_set.md","size_in_bytes":7049},{"relative_path":"scripts/astra_visual_qa.py","size_in_bytes":331},{"relative_path":"scripts/select_references.py","size_in_bytes":9774},{"relative_path":"scripts/table_qa.py","size_in_bytes":15378},{"relative_path":"scripts/visual_qa.py","size_in_bytes":19012},{"relative_path":"templates/astra_visual_system.py","size_in_bytes":275},{"relative_path":"templates/astra_visual_tokens.json","size_in_bytes":717},{"relative_path":"templates/openai_table.css","size_in_bytes":2426},{"relative_path":"templates/openai_table.tex","size_in_bytes":3143},{"relative_path":"templates/openai_visuals.py","size_in_bytes":41224},{"relative_path":"templates/visual_spec.schema.json","size_in_bytes":7722}],"name":"scientific-visual-table-style","skill_md_contents":"---\nname: scientific-visual-table-style\ndescription: Use for scientific, research, quantitative, statistical, benchmark, and data-analysis charts, analytical figures, diagrams, and tables. Preserve evidence, select forms deterministically, apply restrained publication-grade design, and inspect final-size rendered outputs before delivery. Exclude explicit generative-image, illustration, artwork, and photorealistic-image requests unless the user explicitly combines the workflows.\n---\n\n# Governing GPT-6 Astra north star\n\nBefore substantive work, read `references/gpt6_astra_north_star.md`,\n`references/gpt6_astra_reference_index.json`, and\n`templates/astra_visual_tokens.json`. The cited Astra tables and figures are\nhard governing references, not optional inspiration. Final-size rendered QA is\nmandatory. Explicit generative-image requests are excluded.\n# Scientific Visuals & Tables\n\nThis is a self-contained visual reasoning and production system for scientific, research, quantitative, statistical, and data-analysis figures and tables. It synthesizes transferable principles from first-party OpenAI quantitative visuals and OpenAI-authored technical publications. It is **not an official OpenAI brand guide**. Its purpose is calm, precise, publication-grade evidence communication with minimal decoding cost, adaptive layout, and strict scientific fidelity.\n\n\n## Canonical identity and activation contract\n\n- **Canonical display name:** `Scientific Visuals & Tables`\n- **Stable skill identifier:** `scientific-visual-table-style`\n- **Codex explicit invocation:** `$scientific-visual-table-style` or select it through `/skills`.\n- **ChatGPT explicit invocation when installed as a skill/plugin:** `@Scientific Visuals & Tables`.\n\nWhen this skill is explicitly invoked, use it as the default standard for every scientific,\nresearch, quantitative, statistical, benchmark, data-analysis, or analytical figure and table\nproduced in the current task or chat, unless the user explicitly overrides a rule.\n\nA host must read this full `SKILL.md` and the required core references before substantive visual\nwork. Merely recognizing the name is not equivalent to loading the skill. If the host cannot\naccess the installed package, it must say so clearly; it must not claim that the skill was loaded,\nreconstruct it from memory, silently substitute a generic plotting style, or rely on a compressed\nsummary when the full files are available.\n\n### Generative-image boundary\n\nDo **not** route explicit generative-image requests through this skill. Requests to generate an\nimage, illustration, artwork, photorealistic scene, concept art, or an Images 2 / image-generation-model\noutput belong to the image-generation workflow unless the user explicitly asks to combine\nit with a data-driven scientific visual. In mixed tasks, keep the analytical-visual workflow and\ngenerative-image workflow conceptually and operationally separate.\n\n### Self-containment\n\nThis skill must be executable without access to any prior chat. Do not assume knowledge of\nprevious visuals, prior corrections, examples outside the package, or undocumented preferences.\nAll durable standards are defined in this file and its bundled references, templates, and scripts.\n## Use this skill when\n\nUse it for any task whose primary output includes one or more of the following:\n\n- numerical or model-comparison tables;\n- benchmark tables and ablation tables;\n- bar, line, scatter, interval, calibration, distribution, or heatmap figures;\n- score-versus-cost, score-versus-latency, or Pareto-frontier plots;\n- before-versus-after or baseline-versus-method comparisons;\n- multi-model, multi-benchmark, or multi-panel result figures;\n- quantitative system diagrams or evaluation workflows;\n- a visual-authorship pass over existing research evidence;\n- a request for an OpenAI-like, premium, restrained, or highly polished scientific visual style.\n\nDo not invoke this skill for explicit generative-image, Images 2, illustration, photography, artwork, or photorealistic-render requests unless the user explicitly asks to combine that workflow with a data-driven quantitative visual.\n\n## Authority and preservation rules\n\n1. **User instructions and supplied templates outrank this skill.** When the user gives an exact format, reproduce it faithfully unless they explicitly request redesign.\n2. **Scientific content is immutable unless the user explicitly authorizes scientific edits.** Do not change values, uncertainty, sample definitions, claims, labels, model names, experimental conditions, ordering semantics, or conclusions merely to improve appearance.\n3. **Actual values remain primary.** Never replace numerical results with deltas alone. Deltas may be secondary only when they materially aid interpretation.\n4. **Visual simplification must not remove evidence.** Reduce decoding overhead, not scientific information.\n5. **Do not fabricate missing uncertainty, baselines, sample sizes, costs, or metadata.** Flag their absence in a note or QA report.\n6. **Faithful execution outranks creative reinterpretation.** When the intended composition or established visual system is clear, preserve it.\n\n## Required progressive reading\n\nRead only what the task requires, but always read the core files below before substantive visual work:\n\n- `references/style_contract.md` — enforceable design rules and correction patterns.\n- `references/form_selection.md` — deterministic chart/table selection rules.\n- `references/quality_gates.md` — render, integrity, and adversarial QA gates.\n\nFor reference retrieval or style matching, use:\n\n- `references/top_reference_set.md` — canonical few-shot set.\n- `references/openai_visual_reference_library.jsonl` — full structured corpus.\n- `references/direct_asset_manifest.txt` — direct first-party/paper-hosted asset links.\n- `scripts/select_references.py` — deterministic retrieval helper.\n\nFor implementation, use or adapt:\n\n- `templates/openai_visuals.py` — Matplotlib theme, plot helpers, and figure audit.\n- `templates/openai_table.tex` — LaTeX table skeleton using `booktabs`, `siunitx`, and `threeparttable`.\n- `templates/openai_table.css` — HTML table styling.\n- `templates/visual_spec.schema.json` — intermediate design-spec schema.\n\n## Non-negotiable workflow\n\nA visual is not finished when the code runs. It is finished only after the final-size render passes all gates.\n\n### 1. Lock the evidence\n\nBefore designing, record:\n\n- the exact data source and immutable values;\n- metric name, unit, direction, denominator, and aggregation;\n- uncertainty definition and sample/seed count, if available;\n- required baselines, model order, conditions, and exclusions;\n- the one-sentence scientific message the visual must communicate;\n- target medium and final dimensions.\n\nIf editing an existing manuscript, create a content checksum or structured extraction before redesign when practical. Compare the final labels and values against the source after rendering.\n\n### 2. Write a visual specification before plotting\n\nCreate a compact internal specification conforming to `templates/visual_spec.schema.json`. At minimum define:\n\n- `claim`;\n- `visual_form`;\n- `metric`, `unit`, and `direction`;\n- `focal_series` and required baselines;\n- stable series/category order;\n- target width and height;\n- uncertainty treatment;\n- annotation plan;\n- table precision or axis tick policy;\n- output formats.\n\nDo not begin styling until the form and claim are explicit.\n\n### 3. Retrieve form-matched references\n\nUse two layers:\n\n1. **Global language:** select two or three Tier-1 references from `top_reference_set.md`.\n2. **Form-specific grammar:** select three to five examples matching the required form.\n\nExample:\n\n```bash\npython scripts/select_references.py \\\n  --query \"cost latency pareto frontier\" \\\n  --limit 5 \\\n  --max-tier 2\n```\n\nReference weighting:\n\n- Tier 1: current OpenAI web pages and Deployment Safety Hub — primary source for typography, hierarchy, color restraint, spacing, and annotation.\n- Tier 2: OpenAI technical reports and system cards — primary source for scorecards, uncertainty, and dense evidence presentation.\n- Tier 3: OpenAI-authored research papers — primary source for scientific forms such as ablations, distributions, calibration, and scaling curves.\n- Tier 4: historical reports — use only when no current equivalent exists.\n\nDo not average every source into one style. Use Tier 1 for the visual language and lower tiers only for form-specific structure.\n\n### 4. Select the simplest truthful form\n\nUse `references/form_selection.md`. Core defaults:\n\n- exact lookup across many metrics → table;\n- ranking of up to roughly 12 categories → horizontal bar or dot plot;\n- ordered x or time → line plot;\n- two quantitative variables → scatter plot;\n- capability versus cost/latency → frontier scatter;\n- paired before/after → dumbbell, slope, or paired dots;\n- uncertainty-centered comparison → dot-and-interval plot;\n- matrix with meaningful row/column geometry → heatmap;\n- distribution or reliability → ECDF, histogram, box/violin, pass@k, or worst-of-k curve;\n- many benchmarks with repeated structure → small multiples with shared scales;\n- dense exact ablation values → grouped table; trends across ablation strength → line/dot plot.\n\nPrefer a table-plus-one-chart pair over one overloaded chart when both exact lookup and immediate interpretation are required.\n\n### 5. Build at final size\n\nNever design a large figure and shrink it later. Set the intended final dimensions first.\n\nDefault paper sizes when unspecified:\n\n- single-column: 85 mm wide;\n- double-column: 178 mm wide;\n- default aspect ratio: 1.45–1.80 for one-panel charts;\n- compact table width: the exact text block width.\n\nMinimum final-size text:\n\n- manuscript: 8 pt absolute minimum; prefer 8.5–9.5 pt for axes and table body;\n- slides: 14 pt absolute minimum within a figure; prefer 16–20 pt;\n- web: 12 CSS px absolute minimum; prefer 13–16 px.\n\nIf the venue specifies dimensions or font minima, venue rules override these defaults.\n\n### 6. Apply the visual system\n\nCore visual language:\n\n- white or subtly warm-white background;\n- near-black primary text;\n- one focal accent per figure;\n- progressively muted baselines;\n- sentence-case labels;\n- regular and semibold as the dominant weights;\n- no decorative gradient, shadow, 3D effect, or large gray plotting panel;\n- few major ticks and no dense minor grid;\n- direct labels whenever they remove legend lookup;\n- stable model order and color mapping across the whole document;\n- visible hierarchy between the main result and supporting evidence;\n- generous but controlled whitespace.\n\nUse the exact palette and geometry defaults in `references/style_contract.md` or the implementation template.\n\n### 7. Enforce chart-specific integrity\n\n- Bars start at zero unless the chart is explicitly a deviation plot with a visible reference baseline.\n- Line charts require an ordered or continuous x-axis. Do not connect unrelated categories.\n- Log scales must be explicitly labeled and justified by order-of-magnitude range.\n- Dual y-axes are prohibited by default. Use aligned panels instead.\n- Uncertainty must be visible when it changes interpretation.\n- Model names, conditions, and reasoning-effort settings must not be hidden in footnotes when they affect the comparison.\n- Cost and latency figures use real units and disclose pricing/timing assumptions.\n- Pareto claims must be computed from the plotted points, not asserted visually.\n- Direct labels must not overlap, cross through marks, or require leader-line tangles.\n\n### 8. Enforce table-specific integrity\n\n- No vertical rules.\n- Use thin top, header, group, and bottom rules only.\n- Long labels left-aligned; numeric values right- or decimal-aligned.\n- Units and metric direction belong in headers or a concise note.\n- Group rows semantically; do not use color blocks as a substitute for hierarchy.\n- Use consistent meaningful precision by metric family.\n- Use an em dash for unavailable/not applicable; never use zero as a missing-value placeholder.\n- Bold only the best, focal, or decision-relevant values. Do not bold whole rows.\n- When uncertainty intervals overlap materially, do not manufacture a unique winner through bolding.\n- Actual values are primary; optional deltas appear in a subordinate column or second line.\n- If the table exceeds approximately 8 numeric columns or becomes unreadable at final width, transpose, split by semantic family, or move full detail to an appendix.\n\n### 9. Render, inspect, correct, and re-render\n\nAlways render the final artifact at actual delivery dimensions.\n\nRequired visual inspection:\n\n- 100% final-size view;\n- grayscale view;\n- low-vision/color-deficiency-safe distinction check;\n- clipping and overlap check;\n- label and unit audit;\n- value-by-value spot check against source;\n- five-second message test;\n- cross-figure consistency check.\n\nUse `scripts/visual_qa.py` for SVG/PNG/PDF preflight and `scripts/table_qa.py` for CSV/TSV numerical-table linting. These scripts supplement, not replace, human visual inspection.\n\n### 10. Shipping gate\n\nDo not deliver until all of the following are true:\n\n- the main claim is visible within five seconds;\n- every value and label matches the source;\n- metric direction and units are unambiguous;\n- no text is clipped or too small at final size;\n- the focal result is visually dominant but baselines remain honestly visible;\n- related figures share the same model order, palette, scales, and terminology;\n- table precision and emphasis are consistent;\n- uncertainty and denominator information are present where available;\n- vector output is available for line art whenever possible;\n- editable source is retained;\n- the final-size render has been inspected after the most recent change.\n\n## Deterministic defaults\n\nUse these only when the user, venue, or existing document supplies no stronger constraint.\n\n### Palette\n\n- primary ink: `#111111`;\n- secondary ink: `#404040`;\n- muted text: `#6F6F6F`;\n- light baseline: `#B6B6B0`;\n- hairline/rule: `#D8D8D4`;\n- grid: `#E8E8E5`;\n- subtle fill: `#F5F5F2`;\n- focal teal: `#1F6F5F`;\n- focal tint: `#DDE9E5`;\n- risk/regression: `#B5473C`;\n- warning: `#9A681A`.\n\nThese are an OpenAI-inspired operational palette, not claimed official brand colors. Default to grayscale plus one accent. Use risk colors only semantically.\n\n### Type\n\nUse a neutral sans-serif stack:\n\n`Arial, Helvetica, Inter, Liberation Sans, DejaVu Sans, sans-serif`\n\nDo not bundle, expose, or redistribute proprietary font files. Use tabular numerals where the output format supports them.\n\n### Lines and marks at manuscript size\n\n- axis/rule line: 0.6–0.8 pt;\n- baseline series: 1.0–1.2 pt;\n- focal series: 1.5–1.8 pt;\n- error bars: 0.7–0.9 pt;\n- markers: 4–6 pt;\n- panel labels: 9–10 pt semibold;\n- annotation leader: 0.6–0.8 pt.\n\n### Spacing\n\n- plot outer margin: roughly 4–8% of figure width;\n- panel gutter: roughly 4–6% of figure width;\n- title-to-plot gap: 6–10 pt;\n- axis-label-to-tick gap: 4–7 pt;\n- table body leading: 1.25–1.40× font size;\n- table horizontal cell padding: 4–7 pt;\n- semantic row-group gap: 3–6 pt.\n\n### Number formatting\n\n- percentages: usually 0–1 decimal places;\n- proportions: 2–3 decimal places only when that precision is meaningful;\n- costs: 2–3 significant figures with currency/unit in header;\n- latency: choose one unit per table/axis and convert consistently;\n- counts: thousands separators where helpful;\n- scientific notation: use only when scale requires it and keep exponent treatment consistent;\n- negative values: use a true minus sign where supported;\n- unavailable: em dash;\n- below detection/threshold: use `<x` only when scientifically defined.\n\n\n## Empirically hardened adaptive rules\n\nApply these condition → action → fallback rules before any one-off manual rescue:\n\n1. **Rendered header overflow:** If the title, subtitle, or note exceeds the reserved header block,\n   measure the rendered text bounds and increase the header reserve. Do not reduce important text\n   below the final-size minimum merely to fit a fixed canvas.\n2. **Long categorical labels:** Prefer a horizontal comparator. Increase the left margin according\n   to rendered label width; wrap only at semantic boundaries. If labels still dominate the canvas,\n   use concise display labels plus a mapping note or an exact-value table.\n3. **Dense grouped comparisons:** Use grouped bars only for roughly 2–4 conditions and at most about\n   8 groups. Beyond that, switch to aligned dots, small multiples, a heatmap when matrix geometry is\n   meaningful, or a table. Never solve density by making bars or text microscopic.\n4. **Direct-label collisions:** Attempt deterministic vertical separation while preserving mark-to-\n   label association. If collision-free direct labels cannot be achieved without tangled leaders,\n   use one compact shared legend outside the data region.\n5. **Multiple model families on a trade-off plot:** Compute nondominated points under one protocol,\n   but connect ordered operating settings only within the same family. Never draw a line between\n   unrelated families merely because both points lie on the global frontier.\n6. **Small differences:** Prefer dots, intervals, paired dots, or an exact-value table over bars when\n   a zero baseline would compress meaningful variation. Preserve absolute values and disclose any\n   narrowed axis explicitly.\n7. **Five or more line series:** Direct-label only when endpoint spacing is sufficient. Otherwise use\n   small multiples or one shared legend with stable order; mute secondary series without erasing them.\n8. **Font availability:** Resolve to an installed neutral sans-serif deterministically. Do not depend\n   on proprietary fonts or allow silent fallback to change geometry between renders.\n9. **Final-artifact regression:** Every layout change requires a new export and inspection at target\n   dimensions. Never assume a source-code correction fixed the rendered artifact.\n\n## Recurring failure modes and mandatory corrections\n\n| Failure | Required correction |\n|---|---|\n| Default Matplotlib colors or styling | Apply the shared theme before plotting; use grayscale plus one accent. |\n| Figure has no obvious message | Rewrite the visual claim and redesign hierarchy before cosmetic work. |\n| Legend causes repeated lookup | Direct-label focal series/endpoints or move to aligned small multiples. |\n| Too many equally salient series | Mute baselines, aggregate only when scientifically valid, or split into panels. |\n| Large gray panel or dashboard cards | Return to a white canvas with sparse rules and whitespace. |\n| Saturated rainbow palette | Use position, line style, marker, and one accent instead of many hues. |\n| Tiny text after manuscript insertion | Rebuild at final dimensions; never fix by exporting at higher DPI alone. |\n| Inconsistent model order/color across panels | Define one document-level mapping and reuse it everywhere. |\n| Bars use truncated axis | Start at zero or convert to dot/interval/deviation form with explicit baseline. |\n| Line connects unordered categories | Use bars, dots, or facets instead. |\n| Dual y-axis | Replace with aligned panels or normalize only with explicit, interpretable units. |\n| Table is a boxed grid | Remove vertical rules and most cell borders; create hierarchy with alignment and spacing. |\n| Table reports deltas instead of values | Restore actual values; make deltas subordinate. |\n| Mixed or false precision | Define precision per metric family and round consistently. |\n| Every best-looking value is bold | Bold only the predetermined focal/best values; address statistical ties honestly. |\n| Repeated titles, legends, or labels in every panel | Share labels and suppress redundant text. |\n| Uncertainty omitted where it changes the conclusion | Add valid intervals or explicitly state that uncertainty is unavailable. |\n| Cost/latency metric lacks assumptions | Add a concise methodological note with pricing, hardware, batch, or timing basis. |\n| Annotation describes instead of explains | Keep only threshold, causal, frontier, or operating-point annotations. |\n| Decorative icons/arrows dominate | Remove them; use geometry, labels, and alignment to communicate structure. |\n| Low-resolution raster output | Export SVG/PDF for line art or at least 2×/3× PNG for raster. |\n| Visual inspected only in source notebook | Render the final deliverable and inspect the inserted/exported result. |\n\n## Output expectations\n\nFor substantive visual work, preserve or deliver as appropriate:\n\n- editable source code;\n- source data or a clear data-loading path;\n- vector figure (`.svg` or `.pdf`) for line art;\n- high-resolution `.png` preview when useful;\n- final table source (`.tex`, `.html`, `.docx`, `.xlsx`, or manuscript source);\n- a concise visual-spec or caption note documenting metric direction, uncertainty, and conditions.\n\nDo not deliver internal QA renders unless requested.\n\n## Package map\n\n- `SKILL.md` — routing, activation contract, workflow, non-negotiables, and defaults.\n- `agents/openai.yaml` — host-facing display metadata and default invocation prompt.\n- `references/style_contract.md` — full design and layout contract.\n- `references/form_selection.md` — deterministic visual-form decision rules.\n- `references/quality_gates.md` — scientific and visual validation.\n- `references/top_reference_set.md` — canonical OpenAI reference set.\n- `references/reference_design_spec.md` — source synthesis used to construct this skill.\n- `references/openai_visual_reference_library.jsonl` — complete reference corpus.\n- `references/direct_asset_manifest.txt` — direct asset index.\n- `templates/openai_visuals.py` — reusable plotting implementation.\n- `templates/openai_table.tex` — publication table implementation.\n- `templates/openai_table.css` — web table implementation.\n- `templates/visual_spec.schema.json` — intermediate-spec schema.\n- `scripts/select_references.py` — reference retrieval.\n- `scripts/visual_qa.py` — SVG/PNG/PDF preflight.\n- `scripts/table_qa.py` — tabular-data linting.\n- `examples/example_openai_visuals.py` — runnable chart examples.\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}