Specialists

Specialists you define once and share.

A specialist is a role with instructions, tools and access. You define it once; people talk to it, and triggers start it from the systems you already use. It holds no credentials of its own and does a job, not a reporting line: no agent manages agents.

Analyst@analystShared with Product
Description
Prepares stories for refinement: acceptance criteria, edge cases and the questions only the product owner can answer.
Instructions
Read the story and the issues it links. Write acceptance criteria as testable statements. Ask the product owner before you decide anything the story leaves open…
Runtimes
Claude CodeCodex
Tools
jira_getReadAllowjira_searchReadAllowjira_commentWriteAskjira_transitionWriteAsk
Repositories
shop-web read only
Skills
acceptance-criteria one version, pinned
Each turn
Up to 60 minutes
Made of

Everything it may do is written on it.

A specialist is a definition, not an identity. Nothing it doesn't list is available to it, and whoever uses it brings the accounts.

A name, a handle, instructions

People mention it by its handle in a chat or on an issue. Its instructions say how it works; the trigger or the person says what to do this time.

Only the tools it lists

Each tool reads or writes, and runs either straight away or after a person approves the call. A tool the specialist doesn't list isn't there for it.

Repositories and hosts, named

Each repository is read only or writable, and the specialist lists the network hosts it needs. During a run it can ask for another; a person decides.

A limit on every turn

Between 5 minutes and a day. A turn that reaches it stops with that cause, and a retry continues from where it stopped.

Shared

Defined once, used by many.

Any member can define a specialist. It stays private until its creator shares it with groups or with people, and each person who uses it brings their own accounts, budget and settings.

  • Your own settings: runtime and model, effort, budget or subscription, added instructions, tools or skills switched off, default repositories, your own MCP servers, memory and automatic retries.
  • Settings only narrow. They can switch a tool off or make it ask first, never let it do more than the specialist allows.
  • Wider access waits for a yes. When a shared specialist gains a tool, a system, a repository or a host, your conversations keep the version you accepted until you accept the change.
  • Narrower access applies at once, at everyone's next turn. Pause a specialist and its conversations wait and its triggers stop.
ANAnalyst@analystShared with Product
LELena
Claude CodeHigh effortMemory on
BEBen
Codexjira_transition offRetries on
Refine stories
svc-analystClaude CodeReview first
Tools

Tools in three layers.

Every call a specialist makes passes three checks, each narrowing the one before. Tinfirm's server runs the call itself, with the conversation's account, and hands back only the result.

  • 1Effect: whether a tool reads or writes. Built-in tools are known; an admin confirms each MCP tool, and one nobody has confirmed counts as a write.
  • 2Mode: whoever edits the specialist decides whether a tool runs at once or asks a person. Reads run and writes ask by default.
  • 3Settings and account: a person or a trigger can switch a tool off or make it ask; the account allows only what the system allows it.

Built in: Jira (read, search, comment, transition), GitHub and GitLab (read, search, comment, label, a pull or merge request from its own branch) and Slack (a channel's history). Every specialist can also ask a question, request a repository or host, save a document and finish with a summary.

Ben's use of Analysteach call, checked
ToolEffectModeBenThen
jira_searchReadAllow·Runs
jira_commentWriteAsk·Asks you
jira_transitionWriteAskOffNot available
accounting_exportUnconfirmedAsk·Asks you
Skills

A library of skills.

A skill is a procedure written once: a folder with its instructions and any scripts, references or templates, in the Agent Skills format. Members write them in Tinfirm or upload them, and share them as they share specialists.

  • Versions that don't move by themselves. Every version is kept as it was; a specialist pins one, so editing a skill changes no specialist until its editors move the pin.
  • Files, not plugins. A run gets its skills as read-only files where its runtime looks for them. Nothing is fetched while it runs.
  • Checked before use. Each version is scanned for credentials, and a skill adds no system, tool, repository or host.
acceptance-criteriaskillShared with Product
  • SKILL.mdname, description and the procedure
  • templates/criteria.md
  • scripts/check_criteria.py
Versions
e41b09cnewest, edited today
a1c4e9fPinned by Analyst
Memory

Memory, when you want it.

A specialist can keep short notes for next time: how you like a report laid out, which repository holds the checkout code. Memory is off until you turn it on.

  • Yours alone. Notes belong to one person's use of one specialist, or to one trigger, and never reach anyone else's conversations.
  • Checked as they're written. Every note is scanned for credentials and refused if it holds one.
  • Reviewed for shared work. A trigger's notes are proposals until its team accepts them. Unused notes go after two years by default.
Analyst's notes for LenaMemory on
  • Lena wants criteria as Given / When / Then.Remembered 2 days ago
  • Checkout code lives in shop-web/src/checkout.Recalled in SHOP-241
  • A note was refusedIt held a credential, so it was never stored.
Read and delete these here, or from your own AI client.
Runtimes and models

Any runtime, any model.

Specialists run on Claude Code, Codex, pi or OpenCode, and reach models through your LiteLLM gateway. A specialist lists the runtimes its instructions are tested on; each person picks among them.

  • Models your gateway serves, as each person's key allows. Change provider at the gateway, not in every specialist.
  • Subscriptions people already have: a member's own Claude or ChatGPT subscription can run their own work on their own runner host.
  • The same sandbox for each. Model calls leave through the runner host's model proxy, with no key inside.
Your settings for AnalystLena
Runtime
Claude CodeCodex
Model
As your key on the gateway allows
Effort
DefaultLowMediumHighMax
Paid by
Your budget · $38 of $100
Retries
When the provider is limiting
Memory
On, for you alone
Examples

Examples, not a fixed cast.

People name their own specialists and decide what they do. These four show the range: product, testing, development and finance, all built the same way.

BA

Business analyst

For product owners

Turns a rough story into a ready ticket: acceptance criteria, edge cases and the questions only the product owner can answer, posted on the issue.

When a story is created in PROD, Business analyst does write acceptance criteria and ask what's missing.

TE

Tester

For test leads

Writes test scenarios from the acceptance criteria as soon as a story moves to test, and attaches them to the story for the test lead to review.

When a story in PROD enters In test, Tester does write scenarios from the acceptance criteria.

DV

Developer

For team leads

Implements labelled issues on its own branch, runs the tests and opens a pull request for your review.

When an issue in SHOP is labelled agent:dev, Developer does implement it and open a pull request.

FA

Finance analyst

For finance leads

Evaluates every project against plan on a schedule, and holds the report for review before anyone else sees it. Estimates are labelled as estimates.

On the first working day of each month, Finance analyst does evaluate each project against plan, with a review before results go out.

Talk to one

Wherever people already are.

The same specialist answers wherever it is reached. Who it acts as depends on whom it is working for.

In the Tinfirm app

Start a conversation with any specialist shared with you and watch it work. It acts with your own accounts and spends your own budget.

From your own AI client

Tinfirm is an MCP server for the AI client you already use, with OAuth sign-in or a personal access token. Start conversations and decide your questions and approvals there.

In Slack or Teams

A direct message to the Tinfirm bot is a personal conversation, with your own accounts. In a channel, a trigger decides which specialist answers.

From your systems

Triggers start specialists from Jira, GitHub, GitLab, a schedule or a webhook, with the accounts their authors chose. How a trigger works

A company's Owners can read personal conversations in full, for support and audit. Tinfirm says so in the app, records each read and shows it to the person.

NextSecurityFollow one job through Tinfirm and see the guard at each step, from the trigger to the audit log.

Run it on your own infrastructure.

Request early access