Shapediver platform geometry workflows
Skill shapediver/agent-skills/skills/shapediver-platform-geometry-workflows
Agent skills for ShapeDiver
npx -y skills add shapediver/agent-skills --skill shapediver-platform-geometry-workflowsAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Use this skill when a ShapeDiver task spans both the Platform Backend and the Geometry Backend in one workflow: starting from a model slug/id/guid or Platform credentials and ending with runtime metadata lookup, session creation, output/export computation, file upload, sdTF processing, model upload/publish, or GB analytics. This is the orchestration layer between the shapediver-platform-backend and shapediver-geometry-backend skills.
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
8.7 KB, as published. Nobody here has run it
ShapeDiver Platform + Geometry Workflow Orchestration
Prerequisite: This skill assumes you have already read and followed the
shapediver-routerskill. If you arrived here directly, stop — readshapediver-routerfirst. It selects the correct integration strategy and gathers required credentials before any implementation skill is read.
This skill is the orchestration layer for cross-system ShapeDiver work. Use it when the answer must cross the PB -> GB boundary and the main risk is choosing the wrong identifier, ticket, JWT scope, or host.
Scope And Non-Goals
Use this skill to:
- classify the task as PB-only, GB-only, or combined,
- decide the exact PB -> GB order,
- normalize identifiers and credentials once,
- choose the minimum GB scopes,
- hand off to the Platform or Geometry implementation skill with the right prerequisites.
Do not use this skill as:
- a second full PB SDK manual,
- a second full GB SDK manual,
- a browser Viewer/App Builder implementation skill.
Canonical Decision Order
Always follow this order:
- Classify the task: PB-only, GB-only, or PB+GB combined.
- If PB-only, route to
shapediver-platform-backend. - If GB-only and the user already has
modelViewUrlplus backend ticket/JWT, route toshapediver-geometry-backend. - If combined, continue here and finish PB-side resolution before generating GB runtime code.
- Normalize identifiers: keep the user-facing slug/id/guid, resolve the canonical PB
model
id, and resolve the canonical GB modelguid. - Choose the runtime credential: embedding ticket for browser embedding, backend ticket for server/CLI/headless runtime, PB-issued JWT/model token when strong auth or scoped GB access is required.
- Choose the minimum JWT scopes.
- Build one normalized PB -> GB handoff object.
- Only then load the specialist PB/GB references for exact SDK syntax.
Do not reopen the model-resolution problem later in the answer after this handoff is built.
Canonical PB -> GB Handoff Object
Normalize the bridge values into one explicit object and carry that object forward:
interface IGeometryBackendAccessData {
access_token: string;
model_view_url: string;
ticket?: string;
guid?: string;
guids?: string[];
scopes: string[];
}
Populate it with:
access_token: PB-issued GB JWT/model token when using the repo-default strong-auth pattern,model_view_url: the real GB host returned by PB,ticket: embedding ticket or backend ticket when the session flow is ticket-based,guidorguids: the canonical GB model identity,scopes: the exact scopes requested from PB.
Rules:
- Prefer the real
model_view_urlfrom the PB token response. - Fall back to
backend_system.model_view_urlonly when that is the actual source you have. - Keep PB bearer tokens out of this object. They are not GB runtime credentials.
- Do not mix values from different models.
Credential And Scope Selection
Ticket choice:
- embedding ticket: browser embedding only,
- backend ticket: backend runtime, CLI, automation, file upload, compute/export flows,
- author ticket: avoid by default; use it only when the workflow explicitly requires elevated authoring access.
Ticket lifecycle rule:
- new GB sessions normally start from a PB-generated ticket,
- that ticket is only usable after the Platform-side model exists and the Grasshopper file upload/check lifecycle has completed successfully.
Scope choice:
GroupView: metadata inspection and output computation,GroupExport: export computation,GroupOwner: GB model upload or owner-level GB management,GroupAnalytics: GB runtime analytics.
Request the smallest scope set that satisfies the task. Do not default to broader scopes.
Token usage rules:
- Use a GB token/JWT when the workflow needs authorization before any session exists, for example model creation, upload, or other pre-session model-management flows.
- Use a GB token/JWT together with the session flow when the model's
require_tokenproperty is enabled.
Canonical Combined Patterns
Slug/id/guid -> runtime metadata or compute:
- PB authenticate.
- PB resolve the model and capture canonical PB
idand GBguid. - PB retrieve the backend ticket and, when appropriate, request a model token/JWT plus
model_view_url. - Build
IGeometryBackendAccessData. - Load
shapediver-geometry-backendfor the actual session/output/export/file code.
Browser embedding setup:
- PB ensure domains and embedding settings are correct.
- PB retrieve embedding ticket and
model_view_url. - PB request a JWT too when strong authorization is enabled.
- Route onward to
shapediver-viewerorshapediver-appbuilder*.
Upload / check / publish:
- PB
models.create(...). - PB request a model-management token with
GroupOwnerandGroupView, plus the realmodel_view_urlandguid. - GB fetch the model upload target by
guid, upload the.ghor.ghx, and poll GB model status. - PB patch/sync the PB model status, then publish only if the GB result is confirmed.
Analytics:
- PB resolve the model or model set.
- PB request
GroupAnalytics. - GB query analytics with
guidorguids. - Merge the result back into PB-side reporting.
Routing Rules
- Read references/workflow-orchestration.md first and treat it as the orchestration source of truth for PB -> GB workflows.
- Read references/model-upload-check-publish.md for the canonical TypeScript workflow that creates the PB model, requests a model-management token, uploads the Grasshopper file to GB, polls checks, and publishes.
- Read ../shapediver-platform-backend/SKILL.md when you need the exact Platform-side rules and references.
- Read ../shapediver-geometry-backend/SKILL.md when you need the exact Geometry-side SDK rules and references.
- Route browser rendering/configurator work to
shapediver-vieweror theshapediver-appbuilder*skills after credentials and model metadata are settled.
Route To Platform Backend
Route to shapediver-platform-backend when the task ends at:
- auth,
- model lookup,
- domains,
- saved states,
- sharing,
- API tokens / clients,
- PB-only analytics / logs,
- ticket or JWT retrieval with no runtime step.
Route To Geometry Backend
Route to shapediver-geometry-backend when the user already has:
modelViewUrl,- backend ticket or JWT,
- current parameter/output/export metadata or clear placeholders,
and the task is only:
- session creation,
- output/export computation,
- file parameter upload,
- sdTF runtime processing,
- asset download,
- runtime troubleshooting.
Stay In This Skill
Stay in this skill when the task crosses the PB/GB boundary, especially:
- slug -> runtime metadata,
- slug -> export,
- upload/publish,
- analytics via GB,
- PB credential resolution before headless runtime code,
- any request where the main risk is choosing the wrong credential type, scope, or host.
Cross-System Anti-Patterns
- Do not send PB bearer tokens to GB endpoints.
- Do not use embedding tickets for backend automation.
- Do not use backend tickets for browser embedding flows.
- Do not guess
modelViewUrl; take it from PB data. - Do not confuse PB model
idwith GBguid. - Do not request broader scopes than needed.
- Do not re-resolve slug/id/guid repeatedly after the handoff object is built.
- Do not mix a ticket from one model with a JWT or
model_view_urlfrom another. - Do not open a GB session until PB-side resolution is finished.
Exit Criteria
A PB+GB answer is correct only if all of these are true:
- it classifies the task as PB-only, GB-only, or combined,
- it states which system is used first and why,
- it distinguishes PB
idfrom GBguid, - it chooses the correct ticket type and minimum JWT scopes,
- it builds or describes one normalized PB -> GB handoff object,
- it uses the real
modelViewUrlreturned by PB, - it delegates exact SDK syntax to the PB or GB specialist skill instead of improvising it here,
- it states when to route onward to Viewer/App Builder,
- it states when the downstream GB session must be closed or recreated.