Reference

Tools for insight and action. Configured around your work.

Read business data, save approved changes and follow up on outstanding work. The catalogue below describes the core discovery and analysis tools. Source updates, uploads and proactive workflows are enabled separately for your systems and permissions; your deployment's tool list reflects that configured scope.

Understand the data. Act on it. Keep the next step moving.

Source updates and follow-ups are part of the workflow, with their own controls.

The core read profiles below do not grant source updates. An enabled action can validate an upload, preview proposed changes and save approved values to the target system. Configured follow-up workflows can create tasks, send reminders or nudges and check status. Availability depends on the integration; targets, approvals, recipients and timing are agreed before use.

The handbook tools read nothing of yours except your own writing. They answer from your approved process rather than from a connected system, which is why a client who has connected nothing at all is still a client with four working tools.

The tools

The core catalogue. With the access each tool needs.

Tool names are per category rather than per product, so the day a Salesforce adapter exists it answers crm_read and nothing downstream changes. The last column is the governance fact: which of the seven profiles expands to include this tool.

Tool Reads Granted by
describe_modelDescribe the planning modelplanning model4 of 7 profiles
list_membersList dimension membersplanning model4 of 7 profiles
read_sliceRead cube sliceplanning model4 of 7 profiles
validate_modelValidate model integrityplanning model4 of 7 profiles
variance_autopsyVariance autopsyplanning model3 of 7 profiles
anomaly_detectorAnomaly detectorplanning model3 of 7 profiles
environment_statusPlanning environment statusplanning model2 of 7 profiles
crm_describeDescribe the CRM connectionyour CRM3 of 7 profiles
crm_readRead my CRM recordsyour CRM3 of 7 profiles
crm_read_allRead all CRM recordsyour CRMclient-admin only
docs_describeDescribe the document connectionyour documents3 of 7 profiles
docs_searchSearch documentsyour documents3 of 7 profiles
docs_readRead a documentyour documents3 of 7 profiles
tasks_describeDescribe the task-tracker connectionyour task tracker3 of 7 profiles
tasks_listsList task listsyour task tracker3 of 7 profiles
tasks_readRead tasksyour task tracker3 of 7 profiles
handbook_searchSearch the client's process handbookyour own handbook4 of 7 profiles
handbook_readRead a handbook entryyour own handbook4 of 7 profiles
handbook_assessRecord a check against an entryyour own handbook2 of 7 profiles
handbook_confirmConfirm an assessmentyour own handbookclient-admin only
list_projectsList my projectsthis platform onlyclient-admin only

Three tools sit behind the client-admin profile alone, and each for its own reason. crm_read_all reads past the record-ownership filter that crm_read applies, so reaching the whole pipeline has to be asked for rather than inherited when a profile grows a member. handbook_confirm is the step that turns a model's reading into evidence a named person stands behind, which belongs to whoever owns the process. list_projects is the only tool that needs no project at all, because it answers the question of which projects you have.

The profiles

Seven named sets. And an unknown one expands to nothing.

A grant names a person, a project and a profile. The profile is expanded once, at the moment the grant is written, which is why widening a profile does not retroactively widen anybody who already holds it. An unrecognised profile name expands to an empty list rather than to everything, which is deny-by-default written as code rather than promised as a policy.

Profile Tools What it is for
finance-readthe narrowest useful grant6The four schema-agnostic planning reads plus the handbook. Somebody who asks the plan questions and reads nothing else.
finance-analyst8The same, plus variance and anomaly analysis. Still read-only, still planning only.
crm-read2The CRM, narrowed to records that person owns. Deliberately not folded into the finance profiles, because reaching commercial pipeline should be asked for.
docs-read3Documents, read as the signed-in person, so the source system enforces its own item permissions.
tasks-read3The task tracker, through that person's own token.
deliverythe working profile18Everything read-only across planning, CRM, documents and tasks, plus recording a check against the handbook. It cannot confirm its own assessments and cannot read the whole CRM.
client-admincore catalogue21The profile that reaches every tool in this core catalogue, including the three above. Action workflows have their own scope.

Documents and tasks are folded into delivery and the CRM is not, and the difference is not arbitrary. Those two read as the person asking and the source system enforces its own permissions, so including them widens nobody's reach beyond what they already have. Our CRM adapter has no such ceiling behind it, which is exactly why it stays out. That reasoning is the same one on whose permissions apply.

The refusal codes

Twenty names, frozen by a test.

A refusal carries a stable code rather than a sentence somebody will reword. That matters because these are persisted: a row written last month still carries its code, and a detector built on prose silently stops working the day the prose improves. Renaming or removing one is a deliberate edit to a test that exists to make it deliberate.

Code Stage What it means
no_identityidentityNo verified email on the request. Answered with a sign-in invitation rather than a refusal.
token_rejectedidentityBad signature, expired, or an audience belonging to another client's connector.
token_host_project_mismatchidentityA token pinned to one project, presented to a different connector.
entra_tenant_mismatchidentityThe sign-in did not come from the directory registered for that organization.
identity_tenant_absentidentityThe organization is bound to a directory and the sign-in carried none. Usually a configuration conflict, never reported as a possible breach.
identity_tenant_ambiguousidentityThe sign-in carried the directory claim twice, with different values. Refused rather than resolved.
not_provisionedidentityAuthenticated, but nobody by that email exists here. Also what a probe looks like.
person_inactiveidentityThe person exists and has been switched off.
no_live_grantgrantA known person holding no live grant on anything.
project_not_grantedgrantThe project was named and this person holds no grant on it.
project_ambiguousgrantSeveral projects were possible and none was default. Refused with the list rather than guessed.
project_vanishedgrantThe project was resolved and then was not there. Fails closed.
skill_not_enabledtoolThe tool is real and this person's profile does not include it.
skill_not_enabled_projectlesstoolThe same, for a tool that needs no project.
pack_not_ownedtoolThe tool belongs to another client's pack. Never says whose.
tool_not_available_on_projecttoolYour administrator has not switched this capability on for this project.
tool_has_no_connectiontoolNothing of that kind is connected, so there is no system to read.
dispatch_tool_not_visibledispatchCalled anyway, having never been offered. Refused a second time at the moment of the call.
dispatch_no_project_bounddispatchA project-bound tool reached dispatch with no project scope. Structurally should not happen, and refuses if it does.
control_plane_unavailabledispatchOurs, not yours: the control plane was unreachable, so the request failed closed.

Only three of these twenty may ever be described to you as a possible breach, and that mapping is fixed in code rather than decided during an incident. The rest are refusals working correctly. A configuration conflict reported as a breach gets escalated to a CISO who then owns an incident that never happened, which is why the distinction is a data structure rather than a judgement call. The record itself is on the audit trail.

Ready?

This is the page to hand your engineers. Let's put it to work.

Bring the systems and workflow you need. We will identify the core tools, available actions and any integration work needed for your deployment.

Why this exists: useful assistants connect an answer to an action, and an action to a completed job.