Role Builder logo

Role Builder

OrganizationPopular
Prismer-AI
role-builder

Create or update a Prismer SS-02 role template from a persona, SOP, job description, or operating brief; instantiate an existing role as a new working agent and run its first task through the bundled one-command harness. Use for "create a role template", "make this role into an agent", "create an agent from this role", or "let this role handle a task". Route standardized instantiate-and-run requests to the script instead of discovering and composing low-level CLI commands.

Overview

PublisherPrismer-AI
RepositoryPrismerCloud
Skill namerole-builder
Stars
1.6K
Forks
17
Bundled files
4
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 4 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by Prismer-AI on GitHub. Read the source before you install it.

Installation

Install the Role Builder AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/Prismer-AI/PrismerCloud/tree/main/sdk/cloud/catalog/skills/role-builder
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/Prismer-AI/PrismerCloud.git /tmp/PrismerCloud
mkdir -p .claude/skills
cp -r /tmp/PrismerCloud/sdk/cloud/catalog/skills/role-builder .claude/skills/role-builder
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Role Builder in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Role Builder on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Role Builder is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Role Builder

Choose exactly one path from the requested outcome. Do not inspect cloud --help, create probe assets, or compose low-level commands first.

A. Existing role → new working agent → first task

Run the bundled harness directly:

bash
node scripts/instantiate-and-run.mjs --json

Required environment:

  • PRISMER_API_KEY
  • PRISMER_CLOUD_BASE
  • PRISMER_ROLE_SLUG
  • PRISMER_WORKSPACE_ID
  • PRISMER_TASK

Optional environment:

  • PRISMER_AGENT_HANDLE, PRISMER_AGENT_DISPLAY_NAME, PRISMER_AGENT_ADAPTER, PRISMER_TARGET_DAEMON_ID
  • PRISMER_REQUEST_ID, PRISMER_OPERATION_LEDGER
  • PRISMER_WORKFLOW_TIMEOUT_MS, PRISMER_WORKFLOW_POLL_MS
  • PRISMER_ALLOW_REMOTE_WRITE=1 for an explicitly confirmed non-local target

The runtime must inject these variables before the turn. Never ask the user to paste a credential into chat and never pass one as a command-line flag.

The harness validates locally, performs server preflight, creates/resumes the role-backed agent, waits for its exact daemon binding, creates one idempotent task, and waits for the canonical result. --no-wait skips only the final task result wait. --preflight-only performs no mutation.

If it returns ROLE_CONFIG_REQUIRED, report the missing level, target, and key names exactly. Do not guess values:

  • level=skill or level=role, user-owned key: the owner supplies it through Studio or POST /api/im/user-skill-config; values are sealed and never enter the model prompt.
  • role default: edit the role's parameters[] declaration/default.
  • global-only Skill key: inject it into the daemon/deployment environment.
  • workspace/runtime issue: repair the named workspace or daemon; do not create a different workspace as a workaround.

B. Material → role template

Create a directory with exactly the role definition and persona:

text
<role-slug>/
├── role.json
└── SOUL.md

role.json is the SS-02 governance manifest. SOUL.md is persona only; do not put credentials, per-run instructions, or an AGENTS.md in the role bundle.

Minimum useful role.json:

json
{
  "slug": "legal-expert",
  "version": "1.0.0",
  "name": { "en": "Legal Expert", "zh": "法学专家" },
  "description": { "en": "Analyzes legal matters.", "zh": "分析法律事项。" },
  "agentType": "specialist",
  "requiredSkills": [{ "skillSlug": "legal-article-retrieval", "required": true }],
  "taskAuthority": "executor",
  "approvalPolicy": "auto-low-risk",
  "parameters": [],
  "adapters": { "hermes": {} },
  "source": "community",
  "curatedQuality": "review"
}

Use catalog slugs returned by the Skill create/import result. Never derive a slug from a directory name, case-normalize it after creation, or invent one. Build missing skills with skill-creator first.

Declare only role-specific business skills in requiredSkills. The active Admin Built-in Skill baseline is injected automatically at template creation and re-resolved when an Agent is instantiated. Do not copy system skills into the role manifest and do not attempt to remove an injected skill. Readback separates requiredSkills, injectedSkills, and effectiveSkills, plus the baselinePolicyVersion used for the snapshot.

Put the bundle path in PRISMER_ROLE_BUNDLE, then run the fixed authoring closure as one command:

bash
node scripts/author-role.mjs --json

Optional environment: PRISMER_ROLE_PUBLISH=1 for an explicitly requested Marketplace publish, PRISMER_ROLE_AUTHORING_LEDGER, PRISMER_CLOUD_BIN, PRISMER_CLOUD_BASE, and PRISMER_ALLOW_REMOTE_WRITE=1 for a confirmed non-local target. The harness performs local validation, read-only required Skill preflight, private create/owner-update, and owner readback. It resumes a completed same-revision ledger without pushing another role version. Report the returned slug/version; do not use role apply as a test.

The clean lower-level primitives remain available for diagnosis:

bash
cloud role validate ./<role-slug> --json
cloud role test ./<role-slug> --json
cloud role create ./<role-slug> --mine --json
cloud role show <returned-slug-or-id> --json

For the retained legacy entrypoint (requires the current Cloud CLI; no raw HTTP fallback):

bash
node scripts/ingest-role.mjs ./<role-slug> --mine

It reads PRISMER_API_KEY and PRISMER_CLOUD_BASE from the already-injected environment. Do not write literal secrets in the command, bundle, or ledger. The adapter delegates validation and Skill preflight to Cloud before creation. Ledger-based workflows require an injected API key even if Cloud has saved credentials: the target origin and that executing key's hash bind every receipt. Changing either requires a separate ledger. Completed receipts are read back, not blindly trusted. A lock is never stolen on timeout; after a crash, verify the old process has stopped and reconcile remote writes before explicit recovery.

C. Change an existing agent's role

Only when the user explicitly identifies an existing target:

bash
cloud role apply <role-slug> --agent <imUserId> --workspace-id <workspaceId>

Never apply a role to the currently executing agent as a probe. Template creation is complete after validation, dependency test, ingest, and readback; it does not require mutating a live agent.

Configuration ownership

Declare each value once at the level that owns it:

NeedOwner/declarationDelivery
reusable Skill configSkill frontmatter config:Skill subprocess env
role behavior/defaultrole parameters[], kind:"default"structured roleParams
per-account role secretrole parameters[], kind:"user", type:"secret"environment-only roleParamsEnv
role default for a required Skillrole skillConfig[skillSlug]resolved Skill env
workspace identity/policyworkspace fields and policy APIsserver/runtime bootstrap
workspace runtime secretdaemon/deployment envchild process env only
invocation target/recoveryPRISMER_WORKSPACE_ID, daemon/request/ledger envharness request only

Do not duplicate values across Skill prose, role persona, workspace metadata, and workflow flags. Workspace metadata is not a secret store.

Harness negative-control contract

The bundled mutation harness must keep these guarantees:

  1. Secret-bearing flags, missing/invalid local input, and unconfirmed remote writes fail locally before any fetch.
  2. Server preflight rejects inaccessible/non-deployable roles, missing config, handle collisions, and absent runtime before creating an operation or agent.
  3. Instance and task writes carry durable idempotency keys. Instance retries return the same operation and reject changed instance input with 409; task retries return the first committed task and reject changed task input with 409. Derived task keys are fixed-length hashes, so a 191-character instance request ID cannot overflow the task contract. A new invocation gets a fresh request ID; set PRISMER_REQUEST_ID only to resume that same invocation.
  4. A secret-free ledger is written atomically before mutation. Output contains stage, code, retryability, and recovery path—never credentials. Reusing the ledger path with a different invocation hash is rejected before fetch.
  5. Provisioning failure compensates the newly created agent. Incomplete cleanup remains cleanupStatus=pending with the Agent pointer retained and retryable; it must never be reported as cleaned. Task failure keeps a valid agent for diagnosis/retry.
  6. ready means the Agent is bound to the exact requested daemon. A wrong_daemon binding fails explicitly and cannot advance to task creation.

Sources of truth

  • Role standard: public/docs/Standardization/02-role-template-standard.md
  • Harness standard: public/docs/Standardization/16-automation-harness-standard.md
  • Complete catalog example: sdk/cloud/catalog/roles/team-manager.json
  • Skill authoring/import: sdk/cloud/catalog/skills/skill-creator/SKILL.md

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Role Builder AI skill do?

Create or update a Prismer SS-02 role template from a persona, SOP, job description, or operating brief; instantiate an existing role as a new working agent and run its first task through the bundled one-command harness. Use for "create a role template", "make this role into an agent", "create an agent from this role", or "let this role handle a task". Route standardized instantiate-and-run requests to the script instead of discovering and composing low-level CLI commands.

Why use Role Builder on TypingMind?

Because you install it once and use it with any model. Role Builder is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Role Builder in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/Prismer-AI/PrismerCloud/tree/main/sdk/cloud/catalog/skills/role-builder. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Role Builder?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Role Builder?

As many as you like. As long as a model supports skills, you can use Role Builder with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Role Builder AI skill free?

Yes. It is published on GitHub by Prismer-AI under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇