MCP skills
GreatBook’s skill registry turns reviewed capabilities into bounded, role-gated calls for MCP clients. Each profile names an outcome, the canonical data and code authority behind it, its read or write posture, caller role, parameter schema, execution target, artifacts, completion meaning, and explicit failures.Availability at this cut
Fifty-two of the 54 blocked profiles inherit one YAML anchor,
blocked_read, first defined by greatbook.skill.transaction.reverse.
That is one deliberate catalogue-wide release posture applied to adapterless, unsafe, or unfinished entries, not evidence of 52 independent runtime failures.
Each inheriting profile still declares its own skill ID, slash name, required capability, role, and reason.
Current skills
Inspect all 30 current profiles, including exact parameters, canonical records, owners, artifacts, and failure outcomes.
Queued and blocked
Inspect all 58 unavailable profiles without mistaking a planned slash name for a callable skill.
Workflow map
See how skill domains sit around the Clerk, Bookkeeper, Auditor, Accountant, and Typewriter graphs.
Deliberate refusals
Read the 12 capability boundaries GreatBook will never turn into skills.
How skills are reached
Skills are reachable only through an MCP client today.greatbook_skills_list searches profiles and greatbook_skill_get returns one exact profile; the current business profiles then bind to their declared MCP tool.
The registry’s slash field is a stable prompt or command name, not proof that every host implements slash-command UX.
GreatBook web chat has no handler for these names, so typing /skills or /book there does not invoke the registry.
The production Q&A desk is currently returning 401, so these pages do not present web chat as a working path to skills.
No provider has exercised a skill end to end through the connector.
The current catalogue and live MCP ingress do not prove ChatGPT or Claude discovery, authorization, rendering, confirmation, or execution behavior.
Roles decide what a current profile can do
Every profile declares its required role, and the server derives roles and organization from the authenticated identity rather than accepting them as parameters. The currently observed production identity has four read roles and does not hold most action roles. Consequently, a current action profile can still returnpermission_denied; catalogue status never expands the caller’s grant.
/reverse-transaction shows both layers agreeing.
The skill is blocked, and its required ledger.reverse role is granted to nobody in production.
Its underlying capability owns a typed reversal, but no caller may reach it by supplying a role, writer, checksum, journal lines, or organization.
How to read an entry
inconclusive_read is a documented outcome, not an error to hide.
For example, /book reads native-books-family-summary through backend/app/logics/finance/books.py::family_summary, has no writer, and may answer inconclusively when the canonical read cannot establish a result.