mit einem Klick
pages
Pages tools for Dataspheres AI
Mit Codex oder Claude installieren Kopieren Sie diesen Prompt, fügen Sie ihn in Codex, Claude oder einen anderen Assistant ein und lassen Sie die Skill-Seite prüfen und installieren.
Menü
Pages tools for Dataspheres AI
Mit Codex oder Claude installieren Kopieren Sie diesen Prompt, fügen Sie ihn in Codex, Claude oder einen anderen Assistant ein und lassen Sie die Skill-Seite prüfen und installieren.
Basierend auf der SOC-Berufsklassifikation
Local dev skill for the Dataspheres AI Content API. Wraps /api/v1/ REST endpoints for local-to-production content workflows. Use when the user wants to push pages, generate release notes from git log, list pages, or update content in a datasphere from their local machine.
Full newsletter lifecycle — create, configure all settings (frequency, personalization, AI model, web search, reply threading, plan mode wiring), manage subscribers, attach forms, draft and manage issues, preview personalized letters, enable private chat and email replies, and test in dev.
Drive the Dataspheres AI platform from Claude Code — read conversation history, post messages as the user (via API key), poll for ARI replies, read the Reality Engine debug log, update the plan and outcomes, and control orchestration flow. Use when you need Claude Code to interact with ARI or inspect/modify a running reality session.
Knowledge-graph tools for Dataspheres AI — build typed graphs, relate nodes with VISUAL or executable TASK edges, group into colored container bubbles, auto-detect article hero images, embed graphs in pages, run scheduled searches, and report.
Sequencers tools for Dataspheres AI
Manage Kanban tasks, plan modes, and project workflows in Dataspheres AI
| name | pages |
| description | Pages tools for Dataspheres AI |
Tool reference for this resource group, mirrored by hand from the platform live
/api/mcp/schemaschema.
create_page — New PageCreates a page (doc) in a datasphere. Guide the user through:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ DATA-CARD PRE-FLIGHT (CRITICAL — run BEFORE drafting content)
If the user is on a dataset editor (URL matches /app/{uri}/datasets/{datasetId}/edit) OR the request mentions "this dataset", "the charts I built", "the cards", or any dataset by name: you MUST call list_data_cards with the CURRENT datasphereUri (and the current datasetId if you're narrowing to one dataset) BEFORE drafting the page content.
Why: manually-built cards are a huge signal about what the user wants the page to be about. If you draft a page without them, you'll produce a generic essay and the user will have to ask you to "add my charts" as a follow-up. Avoid that round trip — discover the cards first, weave them into the narrative, embed them via the dataCard node in the HTML content.
How to embed a card in the HTML content field:
Skip the pre-flight only if: (a) the user explicitly says "no charts" / "text only", or (b) list_data_cards was already called earlier in this conversation for the same datasphereUri + datasetId and the results are fresh. ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ FOLDER PLACEMENT PROTOCOL (CRITICAL — run this BEFORE showing the preview card)
Every page belongs in a folder. Orphan pages buried at the datasphere root are hard to find later, and dumping everything into "General" defeats the whole point of having folders. ARI must actively find the RIGHT folder — or surface the choice to the user.
Step 1 — Discover what folders already exist.
Before finalizing folderName, call list_folders for the target datasphere (skip if list_folders results are already in conversation history from this session). You need to see the existing folder tree before you can make a smart choice.
Step 2 — Find the best semantic match. Score each existing folder against the page's title + content topic. A good match means the folder name clearly belongs to the same domain as the page (e.g. page titled "Week 4: Compound Interest" → "Curriculum" or "Lessons" folder; page about "Q3 Funding Report" → "Reports" or "Finance" folder).
folderName in the preview card with that value.folderName in the preview (the API auto-creates it).Step 3 — Never silently guess.
If you skip list_folders and make up a folderName, you WILL create duplicates ("Curriculum" vs "curriculum" vs "Course Content") and the user's tree becomes a mess. When in doubt, ASK. Asking one folder question is cheaper than cleaning up a messy tree later.
Step 4 — Edge cases.
Step 5 — Confirm in the preview card.
The folderName field MUST appear in the tool_confirmation block so the user sees where the page will land before approving. Never hide the folder choice.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
PUBLISHING — TWO LEVELS (educate the user):
INTENT MAPPING (READ CAREFULLY):
When in doubt about visibility, ASK THE USER instead of defaulting to private. Embedded data cards / datasets / images automatically inherit the page's public visibility, so making the page public also makes its embedded data public — tell the user this when confirming.
AFTER SUCCESSFUL CREATION — URLS TO SURFACE: Once the page is created, you'll be navigated to the advanced editor automatically. In your reply, ALWAYS include these URLs so the user knows where their content lives:
Example reply after a successful save:
Saved — "Week 12 Discussion Guide" is ready.
NOTE on embedded datasets/data cards: when a page has isPubliclyVisible=true and status=PUBLISHED, ALL embedded datasets and data cards in that page automatically become accessible on the public internet too (they inherit the page's visibility). Tell the user this explicitly if they've embedded live data.
PREVIEW CARD MUST INCLUDE ALL OF THESE FIELDS:
FIELD RULES:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ POST-SUCCESS PROTOCOL (what to do on your NEXT turn after this tool completes) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ The user is auto-navigated by the server to the correct destination based on what was published. Your job is to confirm + surface the right URLs. READ THE appLink in the tool result to figure out which path you took:
If appLink starts with /docs/{uri}/{slug} — PUBLISHED PUBLIC. Anyone on the internet can read it; Google will crawl it.
If appLink is /app/{uri}/docs/{slug} — PUBLISHED to datasphere members only.
If appLink is /app/{uri}/docs/{pageId}/edit — DRAFT only (visible to author).
NEVER re-list the full page content — the user can see it in the editor. NEVER call more tools unless the user asks. NEVER re-emit the create_page confirmation after approval.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
A great dataspheres page is a STORY backed by live data. When synthesizing search results, datasets, and data cards into a page, follow this structure:
Opening (1-2 paragraphs) — a strong
paragraphs that frame the question, stake, or insight. Lead with the most important takeaway — don't bury the lede.
Context section (optional) —
paragraphs of narrative, possibly with one
citing a source.
Data sections — one or more
introducing what the chart shows and why it matters
interpreting the result in plain English
Narrative pull-quotes — use
to embed quoted passages from linked URLs or search results. Always cite the source in an inside a.
Conclusion —
CTA / next steps —
or a
RULES:
above it explaining the "why".
+ attribution or a tiptap-link.
The page editor is TipTap. Generate HTML that uses EXACTLY these node patterns. The editor parses the HTML and hydrates each custom block into a live React component.
Section heading. Levels 1-3 only. Pattern:
A body-text block. Pattern:
{text, possibly with inline formatting}
Example:The data shows a significant upward trend since 2018.
When to use: The default block for prose. Use between headings, around embeds, and as transitions.Unordered list of items. Pattern:
...
First point
Second point
; Use the exact class "tiptap-bullet-list" on the
Numbered list. Pattern:
...
Step one
Step two
; Use the exact class "tiptap-ordered-list" on the
Quoted passage, typically with a citation. Pattern:
Example:{quote text}
— {source}
When to use: Embedding a narrative excerpt from a search result or linked URL. Always attribute the source in an tag inside a"Worldbuilding is the foundation of every great story."
— From a 2023 interview
.
Section divider. Pattern:
Preformatted code / data snippet. Pattern:
{code text}
Example: SELECT * FROM events WHERE year = 2024;
When to use: Showing SQL, JSON, or code verbatim.
Classic HTML table. Resizable in the editor. Pattern:
......... |
|---|
Name | Count |
|---|---|
Alpha | 42 |
; Use the exact classes: tiptap-table, tiptap-table-row, tiptap-table-cell, tiptap-table-header
Figure-wrapped image with caption + optional link. Pattern:
Monthly active users over five years
When to use: Photos, screenshots, uploaded images, hero visuals.
Audio player with title + description. Pattern:
External embed — YouTube, Twitter/X, Vimeo, CodePen, Spotify, etc. Renders as an iframe figure. Pattern:
Required attrs: data-url Example: When to use: Embedding an external video, tweet, or interactive widget via its canonical URL. The editor resolves the provider automatically.Row of 2-4 side-by-side images. Pattern:


Row of 2-4 side-by-side embeds (e.g. two YouTube videos). Pattern:
Mermaid diagram block — renders a diagram from mermaid.js source. Pattern:
Required attrs: data-source Example: When to use: Flowcharts, sequence diagrams, org charts, architecture diagrams. Mermaid syntax only — no images.Live dataset preview — renders an interactive table of the dataset rows. Always fresh, always the latest data. Pattern:
Live data card — renders an interactive chart (bar, line, pie, scatter, etc.) that re-executes its formula on every view. New rows in the source dataset automatically propagate to the rendered chart. Pattern:
explanation ABOVE each data card so the reader knows what the chart shows; Don't include more than 4 data cards in one page — readers get chart fatigue
Interactive scroll/slide experience block — advanced. Only use if explicitly requested. Pattern:
Example: (advanced — ask the user before using) When to use: Only when the user explicitly says "make this a presentation" or "slide experience".Inline source citation badge [N] — links a claim to a numbered reference in the appendix. Pattern: [{N}] Required attrs: data-type="citation", data-citation-n, data-citation-url Example:
The global AI market reached $207B in 2023[1].
When to use: After ANY factual claim from a web_search result — statistics, quotes, findings. Place immediately after the claim. Number sequentially from 1. This PREVENTS hallucination by requiring every fact to trace to a real URL. Rules: data-citation-n must be sequential integers from 1; data-citation-title and data-citation-excerpt must be URL-encoded; Always pair with a citationAppendix block; Use real URLs from web_search results — never invent URLsAuto-generated reference list block — appears at the bottom, lists all citations. Pattern:
@-mention of a datasphere (inline pill that links to the datasphere). Pattern: @{name} Example: @CLO When to use: Inline reference to a datasphere by name inside a
.
Inline bold text. Pattern: {text} Example:
This is important.
When to use: Emphasizing a key term, metric, or finding inline.Inline italic text. Pattern: {text} Example:
See the Communicating Design book.
When to use: Titles of works, foreign phrases, light emphasis.Inline hyperlink. Pattern: {text} Example:
Source: Example Research
When to use: Citing a source, linking to an external reference. Always include class="tiptap-link".dataCard, datasetEmbed, mermaid, embed, customImage, citationAppendix, etc.) is a data-type="...". Never omit the data-type.dataCard and datasetEmbed: the ids (data-datacard-id, data-dataset-id, data-datasphere-id) MUST be real. Get them from list_data_cards / search_data_cards / create_data_card tool results. Never invent ids.[Data Card: id]) is fine — the editor discards it on hydration. It just needs to be non-empty.<span data-type="citation"> after EVERY factual claim from web_search results. Add ONE <div data-type="citationAppendix"> at the very end. This is the primary anti-hallucination mechanism. URL-encode data-citation-title and data-citation-excerpt.| Field | Type | Required | Description |
|---|---|---|---|
datasphereUri | string | yes | Datasphere URI to create the page in |
title | string | yes | Page title |
content | string | no | Full page HTML. Write a comprehensive, research-grade article (aim for 800–2500+ words): use ALL research findings and data from the conversation, embed any data cards from create_data_card tool results using , cite every fact with inline badges + ONE at the end, use //
. NEVER write a stub — always draft the complete, fully-developed document. |
folderName | string | no | Top-level folder name to file under (auto-created if missing). Only resolves root folders — for a sub-folder use docFolderId. |
docFolderId | string | no | Exact folder ID to file under (from list_folders/get_folder). Required to target a sub-folder; wins over folderName. |
status | string | no | Page status — ALWAYS default to DRAFT unless user explicitly says publish |
isPubliclyVisible | boolean | no | If true, page is accessible on the public internet without login (SEO-indexed). Default false. |
get_page — Fetch PageFetches the full content of a single page by its slug. Use when the user asks to read, view, or discuss a specific page.
CRITICAL: datasphereUri is the short URI slug (e.g. "marcus-johnson"), NOT a full URL. slug is the page slug (e.g. "getting-started"), NOT a full path. If you can see the page in the current ARIA elements or page context, extract the slug from there instead of calling list_pages.
| Field | Type | Required | Description |
|---|---|---|---|
datasphereUri | string | yes | Datasphere URI |
slug | string | yes | Page slug |
list_pages — PagesLists pages (docs) in a datasphere.
CRITICAL: datasphereUri is the short URI slug (e.g. "marcus-johnson", "bitcoin"), NOT a full URL path. Never pass "/app/marcus-johnson/docs/..." — just pass "marcus-johnson". If you know which datasphere from conversation context, pass it directly. Don't call without datasphereUri.
| Field | Type | Required | Description |
|---|---|---|---|
datasphereUri | string | yes | URI of the datasphere |
folder | string | no | Filter by folder name |
update_page — Update PageUpdates an existing page. Guide:
URLS TO SURFACE AFTER SUCCESS: (same rules as create_page)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
A great dataspheres page is a STORY backed by live data. When synthesizing search results, datasets, and data cards into a page, follow this structure:
Opening (1-2 paragraphs) — a strong
paragraphs that frame the question, stake, or insight. Lead with the most important takeaway — don't bury the lede.
Context section (optional) —
paragraphs of narrative, possibly with one
citing a source.
Data sections — one or more
introducing what the chart shows and why it matters
interpreting the result in plain English
Narrative pull-quotes — use
to embed quoted passages from linked URLs or search results. Always cite the source in an inside a.
Conclusion —
CTA / next steps —
or a
RULES:
above it explaining the "why".
+ attribution or a tiptap-link.
The page editor is TipTap. Generate HTML that uses EXACTLY these node patterns. The editor parses the HTML and hydrates each custom block into a live React component.
Section heading. Levels 1-3 only. Pattern:
A body-text block. Pattern:
{text, possibly with inline formatting}
Example:The data shows a significant upward trend since 2018.
When to use: The default block for prose. Use between headings, around embeds, and as transitions.Unordered list of items. Pattern:
...
First point
Second point
; Use the exact class "tiptap-bullet-list" on the
Numbered list. Pattern:
...
Step one
Step two
; Use the exact class "tiptap-ordered-list" on the
Quoted passage, typically with a citation. Pattern:
Example:{quote text}
— {source}
When to use: Embedding a narrative excerpt from a search result or linked URL. Always attribute the source in an tag inside a"Worldbuilding is the foundation of every great story."
— From a 2023 interview
.
Section divider. Pattern:
Preformatted code / data snippet. Pattern:
{code text}
Example: SELECT * FROM events WHERE year = 2024;
When to use: Showing SQL, JSON, or code verbatim.
Classic HTML table. Resizable in the editor. Pattern:
......... |
|---|
Name | Count |
|---|---|
Alpha | 42 |
; Use the exact classes: tiptap-table, tiptap-table-row, tiptap-table-cell, tiptap-table-header
Figure-wrapped image with caption + optional link. Pattern:
Monthly active users over five years
When to use: Photos, screenshots, uploaded images, hero visuals.
Audio player with title + description. Pattern:
External embed — YouTube, Twitter/X, Vimeo, CodePen, Spotify, etc. Renders as an iframe figure. Pattern:
Required attrs: data-url Example: When to use: Embedding an external video, tweet, or interactive widget via its canonical URL. The editor resolves the provider automatically.Row of 2-4 side-by-side images. Pattern:


Row of 2-4 side-by-side embeds (e.g. two YouTube videos). Pattern:
Mermaid diagram block — renders a diagram from mermaid.js source. Pattern:
Required attrs: data-source Example: When to use: Flowcharts, sequence diagrams, org charts, architecture diagrams. Mermaid syntax only — no images.Live dataset preview — renders an interactive table of the dataset rows. Always fresh, always the latest data. Pattern:
Live data card — renders an interactive chart (bar, line, pie, scatter, etc.) that re-executes its formula on every view. New rows in the source dataset automatically propagate to the rendered chart. Pattern:
explanation ABOVE each data card so the reader knows what the chart shows; Don't include more than 4 data cards in one page — readers get chart fatigue
Interactive scroll/slide experience block — advanced. Only use if explicitly requested. Pattern:
Example: (advanced — ask the user before using) When to use: Only when the user explicitly says "make this a presentation" or "slide experience".Inline source citation badge [N] — links a claim to a numbered reference in the appendix. Pattern: [{N}] Required attrs: data-type="citation", data-citation-n, data-citation-url Example:
The global AI market reached $207B in 2023[1].
When to use: After ANY factual claim from a web_search result. Place immediately after the claim. Number sequentially from 1. Rules: data-citation-n must be sequential integers from 1; data-citation-title and data-citation-excerpt must be URL-encoded; Always pair with a citationAppendix block; Use real URLs from web_search results — never invent URLsAuto-generated reference list block — appears at the bottom, lists all citations. Pattern:
@-mention of a datasphere (inline pill that links to the datasphere). Pattern: @{name} Example: @CLO When to use: Inline reference to a datasphere by name inside a
.
Inline bold text. Pattern: {text} Example:
This is important.
When to use: Emphasizing a key term, metric, or finding inline.Inline italic text. Pattern: {text} Example:
See the Communicating Design book.
When to use: Titles of works, foreign phrases, light emphasis.Inline hyperlink. Pattern: {text} Example:
Source: Example Research
When to use: Citing a source, linking to an external reference. Always include class="tiptap-link".dataCard, datasetEmbed, mermaid, embed, customImage, citationAppendix, etc.) is a data-type="...". Never omit the data-type.dataCard and datasetEmbed: the ids (data-datacard-id, data-dataset-id, data-datasphere-id) MUST be real. Get them from list_data_cards / search_data_cards / create_data_card tool results. Never invent ids.[Data Card: id]) is fine — the editor discards it on hydration. It just needs to be non-empty.<span data-type="citation"> after EVERY factual claim from web_search results. Add ONE <div data-type="citationAppendix"> at the very end. This is the primary anti-hallucination mechanism. URL-encode data-citation-title and data-citation-excerpt.| Field | Type | Required | Description |
|---|---|---|---|
datasphereUri | string | yes | Datasphere URI |
slug | string | yes | Page slug to update |
title | string | no | New title |
content | string | no | Full updated HTML. Write comprehensive, research-grade content (800–2500+ words where appropriate). Preserve existing <div data-type="dataCard" ...> embeds; add new ones from create_data_card results in conversation if relevant. Use //
|
status | string | no | Status |
isPubliclyVisible | boolean | no | Public access? |
folderName | string | no | Move to a top-level folder by name (empty string = root). For a sub-folder use docFolderId. |
docFolderId | string | no | Move to this exact folder ID (from list_folders/get_folder). null = root; wins over folderName. |