← DataCONTENT HISTORYWHAT CHANGED · RULE-BASED ANALYSIS
changed
Update to Data
Snapshot Sep 30, 2026 · 23:19 UTC · version 1.0.11
Collection source: not recorded for this historical snapshot. These snapshots do not have a confirmed matching collection source. Differences in file lists alone do not establish changes to the package.
Supporting file metadata differs
Newly listed paths: agents/openai.yaml. This compares saved file lists, not package contents; a different collection source can change the list.
Observed in package metadata. These changes alone do not establish a new customer-facing feature.
Supporting files
Before
[]
After
[{"relative_path":"agents/openai.yaml","size_in_bytes":206}]
Compare saved observations
Download comparison JSONFull technical diff · 1 changed fields
changed /included_files
BEFORE
[]
AFTER
[
{
"relative_path": "agents/openai.yaml",
"size_in_bytes": 206
}
]Full snapshot data
{
"name": "report-to-pdf",
"description": "Create a polished PDF from an existing Data dashboard or report.",
"included_files": [
{
"relative_path": "agents/openai.yaml",
"size_in_bytes": 206
}
],
"skill_md_contents": "---\nname: report-to-pdf\ndescription: \"Create a polished PDF from an existing Data dashboard or report.\"\n---\n\n# Report To PDF\n\nCreate a polished PDF from an existing Data dashboard or report.\n\n## Overall Instructions\n\n- Follow the [shared Data instructions](../../shared/shared-skill-instructions.md) throughout this workflow.\n- When converting a Data report or dashboard to PDF, follow the [Data App Contract](../../shared/data-app.md) for source preservation and export.\n\n## Dependencies\n\nApply the shared [dependency resolution policy](../../shared/shared-skill-instructions.md#dependency-resolution) to the categories below.\n\n- Knowledge & Files: Source dashboards or reports, supporting artifacts, and requested styling references.\n\n## Workflow guidance\n\nUse this skill only when the user explicitly asks for a PDF. Author through the canonical [@pdf](plugin://pdf@openai-primary-runtime) plugin.\n\n## Route\n\n- For an existing dashboard or report, use its verified local `dist/index.html` and reviewed `src/data.json`, or its exact published HTTPS `.chatgpt.site` or `.chatgpt-team.site` URL with reviewed snapshot and presentation state. Follow [Reading a linked dashboard or report](../../shared/data-app.md#reading-a-linked-dashboard-or-report) to preserve the linked view and requested scope, including all reader-visible tabs and sections for an entire-dashboard export.\n- Convert the existing app directly without creating an intermediate report or rebuilding it. If the user requested a new report and no source app exists yet, use `$build-report` once and reuse its verified HTML and evidence for every requested conversion.\n- Do not print an app shell, create a PDF-specific app runtime, or author from an unstructured chat summary.\n\n## Workflow\n\n1. **Preflight capabilities.** Confirm that the canonical PDF skill is available before conversion. If it is unavailable, explain the blocker and retain any verified source HTML.\n2. **Resolve the existing app.** For a local app, verify `dist/index.html` and use `src/data.json`. For a published app, verify the exact HTTPS `.chatgpt.site` or `.chatgpt-team.site` source URL, load the compiled app, and fetch its reviewed snapshot and saved presentation from the source origin's `/api/snapshot` and `/api/presentation` endpoints. Follow [Published Site authentication](../../shared/data-app.md#published-site-authentication) before declaring a `401` blocked. Reject unreadable or unverified sources. Preserve the reviewed evidence, requested dashboard/report scope, and current filters, selections, and presentation. For local apps, if browser access or page tools are unavailable or fail, continue from the verified compiled HTML and reviewed data. Apply supported link parameters and any supplied or saved presentation, otherwise use the authored presentation. Include all reader-visible tabs and sections for an entire-dashboard export. Briefly note after export that browser-only edits may not be included.\n3. **Author with the PDF plugin.** Read and follow the canonical PDF skill completely. Preserve the title, narrative, charts, tables, metric definitions, caveats, freshness, source labels, and links. For chart figures from an open Data app, prefer `list_data_app_cards({})` followed by `get_data_app_card_image({ cardId, scale: 3 })` or `get_data_app_card_images({ cardIds, scale: 3 })`; follow [Card images for slides and documents](../../shared/data-app.md#card-images-for-slides-and-documents) to discover tools, verify scope, and decode local PNGs without printing base64. If capture is unavailable or unsuitable, use the chart's vector output or reviewed-data rendering. Keep surrounding report text selectable and avoid duplicating titles already captured in a card. Omit interactive controls and internal runtime or local-path metadata.\n4. **Render, inspect, and repair.** Confirm page count and metadata, extract text when selectable text is expected, and inspect every page. Fix blank pages, clipping, overlap, broken tables, missing chart marks, unreadable glyphs, unresolved placeholders, and leaked app controls.\n5. **Validate and deliver.** Confirm the PDF is non-empty, opens cleanly, and contains the required claims, definitions, caveats, freshness, and provenance. Return the verified PDF and, when useful, the source report HTML.\n\n## Hard gates\n\n- The canonical PDF plugin was selected and available before conversion.\n- The existing app's verified local HTML and reviewed data, or its verified published app, snapshot, and presentation endpoints, were used directly as the conversion source.\n- Every page passes full-page visual inspection.\n- Required claims, definitions, caveats, freshness, and provenance survive conversion.\n- App-only controls and internal conversion metadata are absent.\n\nIf a hard gate fails, stop and report the failure.\n"
}SHA-256: f8810c391bc3ec42f63f08fec9b5534ec5ca47d3823d62ef418aaa1c6a7a5483