> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vinmake.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Current MCP skills

> The 30 current GreatBook skill profiles, including purpose, canonical data, owner, role, input schema, artifacts, and failures.

# Current MCP skills

All 30 entries below are current in the registry, which means their declared skill execution contract may start when the authenticated principal holds every required role. Current does not override authorization, prove provider behavior, or make a slash name work in GreatBook web chat.

This catalogue is pinned to skills registry `1.0.0` and capability registry `1.14.1`.

## Accounting

<AccordionGroup>
  <Accordion title="/allocations — Read accounting desk allocations, costing, and adjustments [CURRENT]">
    **Status:** `current`. **Skill ID:** `greatbook.skill.accounting.allocations@1`. **Domain:** `accounting`

    **What it does:** Read accounting desk allocations, costing, and adjustments. Bounded exact-money reads of canonical allocations, costing, adjustment workpapers, and their established journal lineage.

    **Capability `greatbook.accounting-desk.read@1`**

    * Data: `allocation`, `costing-record`, `adjustment-workpaper`
    * Owner: `langgraph_chat/devcenter/accounting_service.py::list_allocations`
    * Mode: `read`
    * Writer: None (`writer: null`); no write authority is declared.

    **Access and execution:** Requires `accounting.read`. Call name `/allocations`. MCP tool `greatbook_accounting_desk_read`.

    **Parameter schema**

    ```json theme={null}
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "item_ref": {
          "type": "string",
          "maxLength": 128
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "maximum": 200,
          "default": 50
        },
        "offset": {
          "type": "integer",
          "minimum": 0,
          "default": 0
        }
      }
    }
    ```

    **Returns:** `result` (type `accounting-allocation-page`, not committable)

    **Completion and failure:** Completion state `complete`; canonical write implied `false`. Failures: `invalid_input`, `unauthorized`, `permission_denied`, `not_found`, `bound_exceeded`, `inconclusive_read`
  </Accordion>

  <Accordion title="/costing — Read accounting desk allocations, costing, and adjustments [CURRENT]">
    **Status:** `current`. **Skill ID:** `greatbook.skill.accounting.costing@1`. **Domain:** `accounting`

    **What it does:** Read accounting desk allocations, costing, and adjustments. Bounded exact-money reads of canonical allocations, costing, adjustment workpapers, and their established journal lineage.

    **Capability `greatbook.accounting-desk.read@1`**

    * Data: `allocation`, `costing-record`, `adjustment-workpaper`
    * Owner: `langgraph_chat/devcenter/accounting_service.py::list_allocations`
    * Mode: `read`
    * Writer: None (`writer: null`); no write authority is declared.

    **Access and execution:** Requires `accounting.read`. Call name `/costing`. MCP tool `greatbook_accounting_desk_read`.

    **Parameter schema**

    ```json theme={null}
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "item_ref": {
          "type": "string",
          "maxLength": 128
        },
        "family": {
          "type": "string",
          "maxLength": 80
        },
        "period": {
          "type": "string",
          "pattern": "^[0-9]{4}-[0-9]{2}$"
        }
      }
    }
    ```

    **Returns:** `result` (type `costing-page`, not committable)

    **Completion and failure:** Completion state `complete`; canonical write implied `false`. Failures: `invalid_input`, `unauthorized`, `permission_denied`, `not_found`, `bound_exceeded`, `inconclusive_read`
  </Accordion>

  <Accordion title="/adjustments — Read accounting desk allocations, costing, and adjustments [CURRENT]">
    **Status:** `current`. **Skill ID:** `greatbook.skill.accounting.adjustments@1`. **Domain:** `accounting`

    **What it does:** Read accounting desk allocations, costing, and adjustments. Bounded exact-money reads of canonical allocations, costing, adjustment workpapers, and their established journal lineage.

    **Capability `greatbook.accounting-desk.read@1`**

    * Data: `allocation`, `costing-record`, `adjustment-workpaper`
    * Owner: `langgraph_chat/devcenter/accounting_service.py::list_allocations`
    * Mode: `read`
    * Writer: None (`writer: null`); no write authority is declared.

    **Access and execution:** Requires `accounting.read`. Call name `/adjustments`. MCP tool `greatbook_accounting_desk_read`.

    **Parameter schema**

    ```json theme={null}
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "item_ref": {
          "type": "string",
          "maxLength": 128
        },
        "status": {
          "type": "string",
          "maxLength": 32
        },
        "source_type": {
          "type": "string",
          "enum": [
            "adjustment",
            "closing"
          ]
        }
      }
    }
    ```

    **Returns:** `result` (type `adjustment-page`, not committable)

    **Completion and failure:** Completion state `complete`; canonical write implied `false`. Failures: `invalid_input`, `unauthorized`, `permission_denied`, `not_found`, `bound_exceeded`, `inconclusive_read`
  </Accordion>

  <Accordion title="/workpaper — Read accounting desk allocations, costing, and adjustments [CURRENT]">
    **Status:** `current`. **Skill ID:** `greatbook.skill.accounting.workpaper@1`. **Domain:** `accounting`

    **What it does:** Read accounting desk allocations, costing, and adjustments. Bounded exact-money reads of canonical allocations, costing, adjustment workpapers, and their established journal lineage.

    **Capability `greatbook.accounting-desk.read@1`**

    * Data: `allocation`, `costing-record`, `adjustment-workpaper`
    * Owner: `langgraph_chat/devcenter/accounting_service.py::list_allocations`
    * Mode: `read`
    * Writer: None (`writer: null`); no write authority is declared.

    **Access and execution:** Requires `accounting.read`. Call name `/workpaper`. MCP tool `greatbook_accounting_desk_read`.

    **Parameter schema**

    ```json theme={null}
    {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "item_ref"
      ],
      "properties": {
        "item_ref": {
          "type": "string",
          "maxLength": 128
        }
      }
    }
    ```

    **Returns:** `result` (type `workpaper`, not committable)

    **Completion and failure:** Completion state `complete`; canonical write implied `false`. Failures: `invalid_input`, `unauthorized`, `permission_denied`, `not_found`, `inconclusive_read`
  </Accordion>

  <Accordion title="/approve-adjustment — Approve an exact adjustment workpaper [CURRENT]">
    **Status:** `current`. **Skill ID:** `greatbook.skill.adjustment.approve@1`. **Domain:** `accounting`, `workflow`

    **What it does:** Approve an exact adjustment workpaper. Release one hash-bound adjustment or closing workpaper through the canonical maker-checker posting gate and establish the result only from the immutable journal.

    **Capability `greatbook.adjustment.approve@1`**

    * Data: `close-adjustment`, `workpaper`, `journal-entry`
    * Owner: `langgraph_chat/devcenter/close_api.py::post_approve_adjustment`
    * Mode: `commit`
    * Writer: `langgraph_chat/devcenter/close_service.py::post_approve_adjustment`; audit record `journal-entry`.

    **Capability `greatbook.workspace.change.guarded@1`**

    * Data: `staged-workspace`, `staged-change`, `workspace-revision`, `workspace-confirmation`, `execution-receipt`, `workflow-run`, `bank-match`, `typewriter-document`, `close-adjustment`, `fiscal-period`, `reversal`
    * Owner: `langgraph_chat/greatbook_mcp/workspaces/service.py::StagedWorkspaceService`
    * Mode: `commit`
    * Writer: `langgraph_chat/greatbook_mcp/workspaces/service.py::StagedWorkspaceService`; audit record `staged-workspace-audit`.
    * Purpose: Review and commit a staged GreatBook change. Persist a session-bound checklist and typed cross-domain change set; commit only an exact revision and selection through the eleven closed workflow, W3, Typewriter, adjustment, fiscal-period, or business-reversal outcome adapters.

    **Access and execution:** Requires `accounting.adjustment.approve`. Call name `/approve-adjustment`. MCP tool `greatbook_workspace_create`.

    **Parameter schema**

    ```json theme={null}
    {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "workpaper_uuid",
        "content_hash"
      ],
      "properties": {
        "workpaper_uuid": {
          "type": "string",
          "format": "uuid"
        },
        "content_hash": {
          "type": "string",
          "pattern": "^[0-9a-f]{64}$"
        }
      }
    }
    ```

    **Returns:** `decision` (type `typed-action`, committable, adapter `greatbook.adjustment.approve@1`)

    **Completion and failure:** Completion state `ready_for_review`; canonical write implied `false`. Failures: `invalid_input`, `unauthorized`, `permission_denied`, `not_found`, `stale_revision`, `confirmation_mismatch`, `canonical_refusal`
  </Accordion>

  <Accordion title="/reject-adjustment — Reject an exact adjustment workpaper [CURRENT]">
    **Status:** `current`. **Skill ID:** `greatbook.skill.adjustment.reject@1`. **Domain:** `accounting`, `workflow`

    **What it does:** Reject an exact adjustment workpaper. Reject one hash-bound staged adjustment for a written reason without a journal write and retain the canonical close-run decision evidence.

    **Capability `greatbook.adjustment.reject@1`**

    * Data: `close-adjustment`, `workpaper`, `decision`
    * Owner: `langgraph_chat/devcenter/close_api.py::post_reject_adjustment`
    * Mode: `commit`
    * Writer: `langgraph_chat/devcenter/close_service.py::post_reject_adjustment`; audit record `close-run`.

    **Capability `greatbook.workspace.change.guarded@1`**

    * Data: `staged-workspace`, `staged-change`, `workspace-revision`, `workspace-confirmation`, `execution-receipt`, `workflow-run`, `bank-match`, `typewriter-document`, `close-adjustment`, `fiscal-period`, `reversal`
    * Owner: `langgraph_chat/greatbook_mcp/workspaces/service.py::StagedWorkspaceService`
    * Mode: `commit`
    * Writer: `langgraph_chat/greatbook_mcp/workspaces/service.py::StagedWorkspaceService`; audit record `staged-workspace-audit`.
    * Purpose: Review and commit a staged GreatBook change. Persist a session-bound checklist and typed cross-domain change set; commit only an exact revision and selection through the eleven closed workflow, W3, Typewriter, adjustment, fiscal-period, or business-reversal outcome adapters.

    **Access and execution:** Requires `accounting.adjustment.reject`. Call name `/reject-adjustment`. MCP tool `greatbook_workspace_create`.

    **Parameter schema**

    ```json theme={null}
    {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "workpaper_uuid",
        "content_hash",
        "reason"
      ],
      "properties": {
        "workpaper_uuid": {
          "type": "string",
          "format": "uuid"
        },
        "content_hash": {
          "type": "string",
          "pattern": "^[0-9a-f]{64}$"
        },
        "reason": {
          "type": "string",
          "minLength": 1,
          "maxLength": 500
        }
      }
    }
    ```

    **Returns:** `decision` (type `typed-action`, committable, adapter `greatbook.adjustment.reject@1`)

    **Completion and failure:** Completion state `ready_for_review`; canonical write implied `false`. Failures: `invalid_input`, `unauthorized`, `permission_denied`, `not_found`, `stale_revision`, `confirmation_mismatch`, `canonical_refusal`
  </Accordion>
</AccordionGroup>

## Audit

<AccordionGroup>
  <Accordion title="/audit-runs — Read assurance jobs and runs [CURRENT]">
    **Status:** `current`. **Skill ID:** `greatbook.skill.audit.runs@1`. **Domain:** `audit`

    **What it does:** Read assurance jobs and runs. Return scheduled job definitions and stored run evidence with evidence time and waiver counts.

    **Capability `greatbook.audit.jobs.read@1`**

    * Data: `audit-job`, `audit-run`
    * Owner: `langgraph_chat/devcenter/audit_api.py::run_detail`
    * Mode: `read`
    * Writer: None (`writer: null`); no write authority is declared.

    **Access and execution:** Requires `audit.read`. Call name `/audit-runs`. MCP tool `greatbook_audit_runs_get`.

    **Parameter schema**

    ```json theme={null}
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "run_ref": {
          "type": "string",
          "maxLength": 64
        },
        "job_key": {
          "type": "string",
          "maxLength": 120
        },
        "status": {
          "type": "string",
          "maxLength": 32
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "maximum": 200,
          "default": 50
        }
      }
    }
    ```

    **Returns:** `result` (type `audit-run-page`, not committable)

    **Completion and failure:** Completion state `complete`; canonical write implied `false`. Failures: `invalid_input`, `unauthorized`, `permission_denied`, `not_found`, `bound_exceeded`, `inconclusive_read`
  </Accordion>

  <Accordion title="/findings — Read assurance findings [CURRENT]">
    **Status:** `current`. **Skill ID:** `greatbook.skill.audit.findings@1`. **Domain:** `audit`

    **What it does:** Read assurance findings. Return durable findings with stable fingerprints, evidence time, status, and waiver context.

    **Capability `greatbook.audit.findings.read@1`**

    * Data: `audit-finding`
    * Owner: `langgraph_chat/devcenter/audit_api.py::findings`
    * Mode: `read`
    * Writer: None (`writer: null`); no write authority is declared.

    **Access and execution:** Requires `audit.read`. Call name `/findings`. MCP tool `greatbook_findings_search`.

    **Parameter schema**

    ```json theme={null}
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "finding_ref": {
          "type": "string",
          "maxLength": 64
        },
        "status": {
          "type": "string",
          "maxLength": 32,
          "default": "open"
        },
        "family": {
          "type": "string",
          "maxLength": 80
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "maximum": 200,
          "default": 100
        }
      }
    }
    ```

    **Returns:** `result` (type `audit-finding-page`, not committable)

    **Completion and failure:** Completion state `complete`; canonical write implied `false`. Failures: `invalid_input`, `unauthorized`, `permission_denied`, `not_found`, `bound_exceeded`, `inconclusive_read`
  </Accordion>
</AccordionGroup>

## Bank

<AccordionGroup>
  <Accordion title="/bank-statement-schema — Read the deterministic bank statement schema [CURRENT]">
    **Status:** `current`. **Skill ID:** `greatbook.skill.bank.statement-schema@1`. **Domain:** `bank`

    **What it does:** Read the deterministic bank statement schema. Read the canonical bounded bank-statement schema, the shared exact CurrencyCode values used by every currency-bearing document, and the evidence-only W6 handoff boundary.

    **Capability `greatbook.bank.statement-schema.read@1`**

    * Data: `typewriter-schema`
    * Owner: `langgraph_chat/devcenter/bank_statement_adapter.py::adapt`
    * Mode: `read`
    * Writer: None (`writer: null`); no write authority is declared.

    **Access and execution:** Requires `books.read`. Call name `/bank-statement-schema`. MCP tool `greatbook_bank_statement_schema_read`.

    **Parameter schema**

    ```json theme={null}
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {}
    }
    ```

    **Returns:** `result` (type `bank-statement-schema`, not committable)

    **Completion and failure:** Completion state `complete`; canonical write implied `false`. Failures: `unauthorized`, `permission_denied`
  </Accordion>

  <Accordion title="/bank-evidence — Read bank evidence, settlements, and chain state [CURRENT]">
    **Status:** `current`. **Skill ID:** `greatbook.skill.bank.evidence@1`. **Domain:** `bank`

    **What it does:** Read bank evidence, settlements, and chain state. Read W2 summary, lines, settlements, and lineage with partial and stale states preserved.

    **Capability `greatbook.bank.evidence.read@1`**

    * Data: `bank-evidence`, `settlement`, `recon-node`, `recon-edge`
    * Owner: `langgraph_chat/devcenter/bankrec_api.py::read_chain`
    * Mode: `read`
    * Writer: None (`writer: null`); no write authority is declared.

    **Access and execution:** Requires `bank.read`. Call name `/bank-evidence`. MCP tool `greatbook_bank_evidence_read`.

    **Parameter schema**

    ```json theme={null}
    {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "view"
      ],
      "properties": {
        "view": {
          "type": "string",
          "enum": [
            "summary",
            "evidence",
            "settlements",
            "chain",
            "candidates",
            "candidate"
          ]
        },
        "evidence_ref": {
          "type": "string",
          "format": "uuid"
        },
        "settlement_ref": {
          "type": "string",
          "format": "uuid"
        },
        "status": {
          "type": "string",
          "maxLength": 32
        },
        "query": {
          "type": "string",
          "maxLength": 240
        },
        "cursor": {
          "type": "string",
          "maxLength": 512
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "maximum": 100,
          "default": 50
        }
      }
    }
    ```

    **Returns:** `result` (type `bank-evidence-page`, not committable)

    **Completion and failure:** Completion state `complete`; canonical write implied `false`. Failures: `invalid_input`, `unauthorized`, `permission_denied`, `not_found`, `bound_exceeded`, `inconclusive_read`
  </Accordion>

  <Accordion title="/bank-facets — Read enhanced bank reconciliation facets [CURRENT]">
    **Status:** `current`. **Skill ID:** `greatbook.skill.bank.facets@1`. **Domain:** `bank`

    **What it does:** Read enhanced bank reconciliation facets. Read the bounded canonical W7 document-chain facets and preserve stale, partial, and inconclusive states.

    **Capability `greatbook.bank.facets.read@1`**

    * Data: `document-chain-facet`, `accounting-event`, `journal-entry`
    * Owner: `langgraph_chat/devcenter/matching_read_service.py::list_document_chains`
    * Mode: `read`
    * Writer: None (`writer: null`); no write authority is declared.

    **Access and execution:** Requires `books.read`. Call name `/bank-facets`. MCP tool `greatbook_bank_facets_read`.

    **Parameter schema**

    ```json theme={null}
    {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "facet"
      ],
      "properties": {
        "facet": {
          "type": "string",
          "enum": [
            "procure_to_pay",
            "order_to_cash",
            "float"
          ]
        },
        "status": {
          "type": "string",
          "maxLength": 32,
          "default": "unresolved"
        },
        "node_id": {
          "type": "string",
          "format": "uuid"
        },
        "cursor": {
          "type": "string",
          "maxLength": 512
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "maximum": 100,
          "default": 25
        }
      }
    }
    ```

    **Returns:** `result` (type `bank-facet-page`, not committable)

    **Completion and failure:** Completion state `complete`; canonical write implied `false`. Failures: `invalid_input`, `unauthorized`, `permission_denied`, `not_found`, `bound_exceeded`, `inconclusive_read`
  </Accordion>

  <Accordion title="/decide-bank-match — Decide a bank reconciliation match [CURRENT]">
    **Status:** `current`. **Skill ID:** `greatbook.skill.bank.match-decide@1`. **Domain:** `bank`, `workflow`

    **What it does:** Decide a bank reconciliation match. Review and commit an exact W3 proposal accept, reject, or undo through one outcome-specific staged adapter; manual matching and purpose stamping remain outside this boundary.

    **Capability `greatbook.bank.match.decide@1`**

    * Data: `bank-match`, `bank-evidence`, `recon-edge`
    * Owner: `langgraph_chat/devcenter/bankrec_write_service.py::accept`
    * Mode: `commit`
    * Writer: `langgraph_chat/devcenter/bankrec_write_service.py::accept`; audit record `recon-match-audit`.

    **Capability `greatbook.workspace.change.guarded@1`**

    * Data: `staged-workspace`, `staged-change`, `workspace-revision`, `workspace-confirmation`, `execution-receipt`, `workflow-run`, `bank-match`, `typewriter-document`, `close-adjustment`, `fiscal-period`, `reversal`
    * Owner: `langgraph_chat/greatbook_mcp/workspaces/service.py::StagedWorkspaceService`
    * Mode: `commit`
    * Writer: `langgraph_chat/greatbook_mcp/workspaces/service.py::StagedWorkspaceService`; audit record `staged-workspace-audit`.
    * Purpose: Review and commit a staged GreatBook change. Persist a session-bound checklist and typed cross-domain change set; commit only an exact revision and selection through the eleven closed workflow, W3, Typewriter, adjustment, fiscal-period, or business-reversal outcome adapters.

    **Access and execution:** Requires `matching.write`. Call name `/decide-bank-match`. MCP tool `greatbook_workspace_create`.

    **Parameter schema**

    ```json theme={null}
    {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "action",
        "proposal_ref",
        "candidate_sha256",
        "amount",
        "currency"
      ],
      "properties": {
        "action": {
          "type": "string",
          "enum": [
            "accept",
            "reject",
            "undo"
          ]
        },
        "proposal_ref": {
          "type": "string",
          "format": "uuid"
        },
        "candidate_sha256": {
          "type": "string",
          "pattern": "^[0-9a-f]{64}$"
        },
        "amount": {
          "type": "string",
          "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$"
        },
        "currency": {
          "type": "string",
          "pattern": "^[A-Z]{3}$"
        }
      }
    }
    ```

    **Returns:** `decision` (type `typed-action`, committable, adapter family `greatbook.matching.proposal.*@1`)

    **Completion and failure:** Completion state `ready_for_review`; canonical write implied `false`. Failures: `invalid_input`, `unauthorized`, `permission_denied`, `not_found`, `stale_revision`, `confirmation_mismatch`, `canonical_refusal`
  </Accordion>
</AccordionGroup>

## Books

<AccordionGroup>
  <Accordion title="/books — Read the native Books catalogue [CURRENT]">
    **Status:** `current`. **Skill ID:** `greatbook.skill.books.catalog@1`. **Domain:** `books`

    **What it does:** Read the native Books catalogue. Return the canonical seven-family and structure catalogue without copying its authority.

    **Capability `greatbook.books.catalog.read@1`**

    * Data: `books-family`, `books-structure`
    * Owner: `backend/app/logics/finance/books.py::family_catalog`
    * Mode: `read`
    * Writer: None (`writer: null`); no write authority is declared.

    **Access and execution:** Requires `books.read`. Call name `/books`. MCP tool `greatbook_books_catalog`.

    **Parameter schema**

    ```json theme={null}
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {}
    }
    ```

    **Returns:** `result` (type `books-catalog`, not committable)

    **Completion and failure:** Completion state `complete`; canonical write implied `false`. Failures: `unauthorized`, `permission_denied`, `inconclusive_read`
  </Accordion>

  <Accordion title="/book — Read a native Books family summary [CURRENT]">
    **Status:** `current`. **Skill ID:** `greatbook.skill.books.family@1`. **Domain:** `books`

    **What it does:** Read a native Books family summary. Return one family summary with explicit native-read and tie-out states.

    **Capability `greatbook.books.family-summary.read@1`**

    * Data: `native-books-family-summary`
    * Owner: `backend/app/logics/finance/books.py::family_summary`
    * Mode: `read`
    * Writer: None (`writer: null`); no write authority is declared.

    **Access and execution:** Requires `books.read`. Call name `/book`. MCP tool `greatbook_books_family_summary`.

    **Parameter schema**

    ```json theme={null}
    {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "family"
      ],
      "properties": {
        "family": {
          "type": "string",
          "pattern": "^[a-z][a-z0-9_]{0,63}$"
        }
      }
    }
    ```

    **Returns:** `result` (type `books-family`, not committable)

    **Completion and failure:** Completion state `complete`; canonical write implied `false`. Failures: `invalid_input`, `unauthorized`, `permission_denied`, `not_found`, `inconclusive_read`
  </Accordion>

  <Accordion title="/book-tieouts — Read native Books tie-outs [CURRENT]">
    **Status:** `current`. **Skill ID:** `greatbook.skill.books.tieouts@1`. **Domain:** `books`

    **What it does:** Read native Books tie-outs. Return native-to-GL controls without collapsing partial, inconclusive, or error states.

    **Capability `greatbook.books.tie-outs.read@1`**

    * Data: `native-books-tie-out`
    * Owner: `backend/app/logics/finance/books.py::family_tie_outs`
    * Mode: `read`
    * Writer: None (`writer: null`); no write authority is declared.

    **Access and execution:** Requires `books.read`. Call name `/book-tieouts`. MCP tool `greatbook_books_tieouts`.

    **Parameter schema**

    ```json theme={null}
    {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "family"
      ],
      "properties": {
        "family": {
          "type": "string",
          "pattern": "^[a-z][a-z0-9_]{0,63}$"
        }
      }
    }
    ```

    **Returns:** `result` (type `books-tieout`, not committable)

    **Completion and failure:** Completion state `complete`; canonical write implied `false`. Failures: `invalid_input`, `unauthorized`, `permission_denied`, `not_found`, `inconclusive_read`
  </Accordion>

  <Accordion title="/book-register — Read a native GreatBook register [CURRENT]">
    **Status:** `current`. **Skill ID:** `greatbook.skill.books.register@1`. **Domain:** `books`

    **What it does:** Read a native GreatBook register. Return a deterministic page of canonical native rows with stable native IDs and accounting links.

    **Capability `greatbook.books.register.read@1`**

    * Data: `native-books-record`
    * Owner: `backend/app/logics/finance/books.py::family_register`
    * Mode: `read`
    * Writer: None (`writer: null`); no write authority is declared.

    **Access and execution:** Requires `books.read`. Call name `/book-register`. MCP tool `greatbook_books_register_read`.

    **Parameter schema**

    ```json theme={null}
    {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "family",
        "structure"
      ],
      "properties": {
        "family": {
          "type": "string",
          "pattern": "^[a-z][a-z0-9_]{0,63}$"
        },
        "structure": {
          "type": "string",
          "pattern": "^[a-z][a-z0-9_]{0,63}$"
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "maximum": 200,
          "default": 50
        },
        "offset": {
          "type": "integer",
          "minimum": 0,
          "default": 0
        }
      }
    }
    ```

    **Returns:** `result` (type `books-register-page`, not committable)

    **Completion and failure:** Completion state `complete`; canonical write implied `false`. Failures: `invalid_input`, `unauthorized`, `permission_denied`, `not_found`, `bound_exceeded`, `inconclusive_read`
  </Accordion>
</AccordionGroup>

## Close

<AccordionGroup>
  <Accordion title="/close-checklist — Read the close-check inventory [CURRENT]">
    **Status:** `current`. **Skill ID:** `greatbook.skill.close.checklist@1`. **Domain:** `close`

    **What it does:** Read the close-check inventory. Return check definitions, families, routes, and meanings without running a close.

    **Capability `greatbook.close.inventory.read@1`**

    * Data: `close-check-inventory`
    * Owner: `langgraph_chat/devcenter/close_api.py::inventory`
    * Mode: `read`
    * Writer: None (`writer: null`); no write authority is declared.

    **Access and execution:** Requires `close.read`. Call name `/close-checklist`. MCP tool `greatbook_close_inventory`.

    **Parameter schema**

    ```json theme={null}
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "family": {
          "type": "string",
          "maxLength": 80
        }
      }
    }
    ```

    **Returns:** `result` (type `close-checklist`, not committable)

    **Completion and failure:** Completion state `complete`; canonical write implied `false`. Failures: `invalid_input`, `unauthorized`, `permission_denied`, `inconclusive_read`
  </Accordion>

  <Accordion title="/close-readiness — Read live close readiness [CURRENT]">
    **Status:** `current`. **Skill ID:** `greatbook.skill.close.readiness@1`. **Domain:** `close`

    **What it does:** Read live close readiness. Evaluate a period while preserving blockers, remedies, freshness, and inconclusive states.

    **Capability `greatbook.close.readiness.read@1`**

    * Data: `close-report`, `fiscal-period`
    * Owner: `langgraph_chat/devcenter/close_api.py::close`
    * Mode: `read`
    * Writer: None (`writer: null`); no write authority is declared.

    **Access and execution:** Requires `close.read`. Call name `/close-readiness`. MCP tool `greatbook_close_readiness_get`.

    **Parameter schema**

    ```json theme={null}
    {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "period"
      ],
      "properties": {
        "period": {
          "type": "string",
          "pattern": "^[0-9]{4}-[0-9]{2}$"
        },
        "steps": {
          "type": "string",
          "maxLength": 240
        }
      }
    }
    ```

    **Returns:** `result` (type `close-readiness`, not committable)

    **Completion and failure:** Completion state `complete`; canonical write implied `false`. Failures: `invalid_input`, `unauthorized`, `permission_denied`, `not_found`, `inconclusive_read`
  </Accordion>

  <Accordion title="/close-runs — Read stored close runs [CURRENT]">
    **Status:** `current`. **Skill ID:** `greatbook.skill.close.runs@1`. **Domain:** `close`

    **What it does:** Read stored close runs. Return point-in-time close evidence without silently rerunning the close.

    **Capability `greatbook.close.runs.read@1`**

    * Data: `close-run`
    * Owner: `langgraph_chat/devcenter/close_api.py::run_detail`
    * Mode: `read`
    * Writer: None (`writer: null`); no write authority is declared.

    **Access and execution:** Requires `close.read`. Call name `/close-runs`. MCP tool `greatbook_close_runs_get`.

    **Parameter schema**

    ```json theme={null}
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "run_ref": {
          "type": "string",
          "maxLength": 64
        },
        "period": {
          "type": "string",
          "pattern": "^[0-9]{4}-[0-9]{2}$"
        }
      }
    }
    ```

    **Returns:** `result` (type `close-run-page`, not committable)

    **Completion and failure:** Completion state `complete`; canonical write implied `false`. Failures: `invalid_input`, `unauthorized`, `permission_denied`, `not_found`, `inconclusive_read`
  </Accordion>

  <Accordion title="/fiscal-periods — Read fiscal periods and events [CURRENT]">
    **Status:** `current`. **Skill ID:** `greatbook.skill.fiscal-periods.list@1`. **Domain:** `close`

    **What it does:** Read fiscal periods and events. Return org-bound fiscal period state and immutable close/reopen events.

    **Capability `greatbook.fiscal-periods.read@1`**

    * Data: `fiscal-period`, `close-event`
    * Owner: `langgraph_chat/devcenter/close_api.py::periods`
    * Mode: `read`
    * Writer: None (`writer: null`); no write authority is declared.

    **Access and execution:** Requires `close.read`. Call name `/fiscal-periods`. MCP tool `greatbook_fiscal_periods_list`.

    **Parameter schema**

    ```json theme={null}
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "period_code": {
          "type": "string",
          "pattern": "^[0-9]{4}-[0-9]{2}$"
        }
      }
    }
    ```

    **Returns:** `result` (type `fiscal-period-page`, not committable)

    **Completion and failure:** Completion state `complete`; canonical write implied `false`. Failures: `invalid_input`, `unauthorized`, `permission_denied`, `not_found`
  </Accordion>

  <Accordion title="/close-period — Close a ready fiscal period [CURRENT]">
    **Status:** `current`. **Skill ID:** `greatbook.skill.period.close@1`. **Domain:** `close`, `workflow`

    **What it does:** Close a ready fiscal period. Revalidate readiness under the canonical period service and record the attributed state transition.

    **Capability `greatbook.period.close@1`**

    * Data: `fiscal-period`, `close-event`, `close-report`
    * Owner: `langgraph_chat/devcenter/close_api.py::close_period`
    * Mode: `commit`
    * Writer: `langgraph_chat/devcenter/close_service.py::close_period`; audit record `close-event`.

    **Capability `greatbook.workspace.change.guarded@1`**

    * Data: `staged-workspace`, `staged-change`, `workspace-revision`, `workspace-confirmation`, `execution-receipt`, `workflow-run`, `bank-match`, `typewriter-document`, `close-adjustment`, `fiscal-period`, `reversal`
    * Owner: `langgraph_chat/greatbook_mcp/workspaces/service.py::StagedWorkspaceService`
    * Mode: `commit`
    * Writer: `langgraph_chat/greatbook_mcp/workspaces/service.py::StagedWorkspaceService`; audit record `staged-workspace-audit`.
    * Purpose: Review and commit a staged GreatBook change. Persist a session-bound checklist and typed cross-domain change set; commit only an exact revision and selection through the eleven closed workflow, W3, Typewriter, adjustment, fiscal-period, or business-reversal outcome adapters.

    **Access and execution:** Requires `period.close`. Call name `/close-period`. MCP tool `greatbook_workspace_create`.

    **Parameter schema**

    ```json theme={null}
    {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "period",
        "transition_version"
      ],
      "properties": {
        "period": {
          "type": "string",
          "pattern": "^[0-9]{4}-[0-9]{2}$"
        },
        "transition_version": {
          "type": "string",
          "pattern": "^[0-9a-f]{64}$"
        }
      }
    }
    ```

    **Returns:** `transition` (type `typed-action`, committable, adapter `greatbook.fiscal-period.close@1`)

    **Completion and failure:** Completion state `ready_for_review`; canonical write implied `false`. Failures: `invalid_input`, `unauthorized`, `permission_denied`, `not_found`, `stale_revision`, `confirmation_mismatch`, `canonical_refusal`
  </Accordion>

  <Accordion title="/reopen-period — Reopen an exact closed fiscal period [CURRENT]">
    **Status:** `current`. **Skill ID:** `greatbook.skill.period.reopen@1`. **Domain:** `close`, `workflow`

    **What it does:** Reopen an exact closed fiscal period. Reopen a version-bound closed period for a written reason while retaining the immutable close and reopen event trail.

    **Capability `greatbook.period.reopen@1`**

    * Data: `fiscal-period`, `close-event`
    * Owner: `langgraph_chat/devcenter/close_api.py::reopen_period`
    * Mode: `reverse`
    * Writer: `langgraph_chat/devcenter/close_service.py::reopen_period`; audit record `close-event`.

    **Capability `greatbook.workspace.change.guarded@1`**

    * Data: `staged-workspace`, `staged-change`, `workspace-revision`, `workspace-confirmation`, `execution-receipt`, `workflow-run`, `bank-match`, `typewriter-document`, `close-adjustment`, `fiscal-period`, `reversal`
    * Owner: `langgraph_chat/greatbook_mcp/workspaces/service.py::StagedWorkspaceService`
    * Mode: `commit`
    * Writer: `langgraph_chat/greatbook_mcp/workspaces/service.py::StagedWorkspaceService`; audit record `staged-workspace-audit`.
    * Purpose: Review and commit a staged GreatBook change. Persist a session-bound checklist and typed cross-domain change set; commit only an exact revision and selection through the eleven closed workflow, W3, Typewriter, adjustment, fiscal-period, or business-reversal outcome adapters.

    **Access and execution:** Requires `period.reopen`. Call name `/reopen-period`. MCP tool `greatbook_workspace_create`.

    **Parameter schema**

    ```json theme={null}
    {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "period",
        "transition_version",
        "reason"
      ],
      "properties": {
        "period": {
          "type": "string",
          "pattern": "^[0-9]{4}-[0-9]{2}$"
        },
        "transition_version": {
          "type": "string",
          "pattern": "^[0-9a-f]{64}$"
        },
        "reason": {
          "type": "string",
          "minLength": 1,
          "maxLength": 500
        }
      }
    }
    ```

    **Returns:** `transition` (type `typed-action`, committable, adapter `greatbook.fiscal-period.reopen@1`)

    **Completion and failure:** Completion state `ready_for_review`; canonical write implied `false`. Failures: `invalid_input`, `unauthorized`, `permission_denied`, `not_found`, `stale_revision`, `confirmation_mismatch`, `canonical_refusal`
  </Accordion>
</AccordionGroup>

## Discovery

<AccordionGroup>
  <Accordion title="/skills — Discover GreatBook outcomes [CURRENT]">
    **Status:** `current`. **Skill ID:** `greatbook.skill.skills.list@1`. **Domain:** `discovery`

    **What it does:** Discover GreatBook outcomes. Search the reviewed outcome registry with lifecycle, role, prerequisite, blocker, and executable-surface truth.

    **Capability `greatbook.capabilities.discover@1`**

    * Data: `capability-record`, `capability-gap`
    * Owner: `langgraph_chat/greatbook_mcp/discovery/service.py::DiscoveryService.list`
    * Mode: `read`
    * Writer: None (`writer: null`); no write authority is declared.

    **Access and execution:** Requires `authenticated`. Call name `/skills`. MCP tool `greatbook_skills_list`.

    **Parameter schema**

    ```json theme={null}
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "query": {
          "type": "string",
          "maxLength": 160
        },
        "domain": {
          "type": "string",
          "pattern": "^[a-z][a-z0-9_-]{0,79}$"
        },
        "lifecycle": {
          "type": "string",
          "enum": [
            "current",
            "blocked",
            "queued"
          ]
        }
      }
    }
    ```

    **Returns:** `result` (type `skill-profile-page`, not committable)

    **Completion and failure:** Completion state `complete`; canonical write implied `false`. Failures: `invalid_input`, `unauthorized`, `permission_denied`, `bound_exceeded`
  </Accordion>

  <Accordion title="/skill — Explain one GreatBook outcome [CURRENT]">
    **Status:** `current`. **Skill ID:** `greatbook.skill.skill.get@1`. **Domain:** `discovery`

    **What it does:** Explain one GreatBook outcome. Explain one stable capability including lifecycle, availability, prerequisites, limitations, related outcomes, and next safe steps.

    **Capability `greatbook.capability.explain@1`**

    * Data: `capability-record`, `capability-gap`
    * Owner: `langgraph_chat/greatbook_mcp/discovery/service.py::DiscoveryService.get`
    * Mode: `read`
    * Writer: None (`writer: null`); no write authority is declared.

    **Access and execution:** Requires `authenticated`. Call name `/skill`. MCP tool `greatbook_skill_get`.

    **Parameter schema**

    ```json theme={null}
    {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "skill_id"
      ],
      "properties": {
        "skill_id": {
          "type": "string",
          "pattern": "^greatbook\\.skill\\.[a-z0-9]+(?:[.-][a-z0-9]+)*$",
          "maxLength": 128
        }
      }
    }
    ```

    **Returns:** `result` (type `skill-profile`, not committable)

    **Completion and failure:** Completion state `complete`; canonical write implied `false`. Failures: `invalid_input`, `unauthorized`, `not_found`
  </Accordion>
</AccordionGroup>

## Ledger

<AccordionGroup>
  <Accordion title="/transactions — List unified accounting events [CURRENT]">
    **Status:** `current`. **Skill ID:** `greatbook.skill.transactions.list@1`. **Domain:** `ledger`

    **What it does:** List unified accounting events. Search a bounded, org-scoped page of posted accounting events and navigate using stable event references.

    **Capability `greatbook.accounting.events.list@1`**

    * Data: `accounting-event`, `journal-entry`
    * Owner: `backend/app/logics/finance/gl_lineage.py::bulk_lineage`
    * Mode: `read`
    * Writer: None (`writer: null`); no write authority is declared.

    **Access and execution:** Requires `ledger.read`. Call name `/transactions`. MCP tool `greatbook_accounting_events_list`.

    **Parameter schema**

    ```json theme={null}
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "query": {
          "type": "string",
          "maxLength": 160
        },
        "source_type": {
          "type": "string",
          "pattern": "^[a-z][a-z0-9_]{0,63}$"
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "maximum": 100,
          "default": 25
        },
        "offset": {
          "type": "integer",
          "minimum": 0,
          "maximum": 10000,
          "default": 0
        }
      }
    }
    ```

    **Returns:** `result` (type `accounting-event-page`, not committable)

    **Completion and failure:** Completion state `complete`; canonical write implied `false`. Failures: `invalid_input`, `unauthorized`, `permission_denied`, `inconclusive_read`
  </Accordion>

  <Accordion title="/transaction — Read unified accounting events [CURRENT]">
    **Status:** `current`. **Skill ID:** `greatbook.skill.transaction.get@1`. **Domain:** `ledger`

    **What it does:** Read unified accounting events. Resolve source, workpaper, journal, and lineage through the shared event authority.

    **Capability `greatbook.accounting.events.read@1`**

    * Data: `accounting-event`, `journal-entry`, `journal-workpaper`
    * Owner: `backend/app/logics/finance/gl_lineage.py::resolve_detail`
    * Mode: `read`
    * Writer: None (`writer: null`); no write authority is declared.

    **Access and execution:** Requires `ledger.read`. Call name `/transaction`. MCP tool `greatbook_accounting_event_get`.

    **Parameter schema**

    ```json theme={null}
    {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "event_ref"
      ],
      "properties": {
        "event_ref": {
          "type": "string",
          "minLength": 1,
          "maxLength": 240
        }
      }
    }
    ```

    **Returns:** `result` (type `accounting-event`, not committable)

    **Completion and failure:** Completion state `complete`; canonical write implied `false`. Failures: `invalid_input`, `unauthorized`, `permission_denied`, `not_found`, `inconclusive_read`
  </Accordion>
</AccordionGroup>

## Typewriter

<AccordionGroup>
  <Accordion title="/documents — Read Typewriter documents and versions [CURRENT]">
    **Status:** `current`. **Skill ID:** `greatbook.skill.documents.list@1`. **Domain:** `typewriter`

    **What it does:** Read Typewriter documents and versions. Return canonical document and version state with approval and submission status kept distinct.

    **Capability `greatbook.typewriter.documents.read@1`**

    * Data: `typewriter-document`, `typewriter-version`, `typewriter-approval`
    * Owner: `langgraph_chat/devcenter/typewriter_api.py::get_document`
    * Mode: `read`
    * Writer: None (`writer: null`); no write authority is declared.

    **Access and execution:** Requires `typewriter.read`. Call name `/documents`. MCP tool `greatbook_typewriter_documents_get`.

    **Parameter schema**

    ```json theme={null}
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "document_ref": {
          "type": "string",
          "format": "uuid"
        },
        "status": {
          "type": "string",
          "pattern": "^[A-Z_]{1,32}$"
        },
        "doc_type": {
          "type": "string",
          "pattern": "^[a-z][a-z0-9_]{0,63}$"
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "maximum": 100,
          "default": 25
        },
        "offset": {
          "type": "integer",
          "minimum": 0,
          "maximum": 10000,
          "default": 0
        }
      }
    }
    ```

    **Returns:** `result` (type `typewriter-document-page`, not committable)

    **Completion and failure:** Completion state `complete`; canonical write implied `false`. Failures: `invalid_input`, `unauthorized`, `permission_denied`, `not_found`, `bound_exceeded`
  </Accordion>

  <Accordion title="/approve-document — Approve an exact Typewriter document version [CURRENT]">
    **Status:** `current`. **Skill ID:** `greatbook.skill.typewriter.approve@1`. **Domain:** `typewriter`, `workflow`

    **What it does:** Approve an exact Typewriter document version. Approve a server-read document version without changing its payload or claiming submission or posting.

    **Capability `greatbook.typewriter.document.approve@1`**

    * Data: `typewriter-document`, `typewriter-version`, `typewriter-approval`
    * Owner: `langgraph_chat/devcenter/typewriter_api.py::approve`
    * Mode: `confirm`
    * Writer: `langgraph_chat/devcenter/typewriter_service.py::approve_document`; audit record `typewriter-approval`.

    **Capability `greatbook.workspace.change.guarded@1`**

    * Data: `staged-workspace`, `staged-change`, `workspace-revision`, `workspace-confirmation`, `execution-receipt`, `workflow-run`, `bank-match`, `typewriter-document`, `close-adjustment`, `fiscal-period`, `reversal`
    * Owner: `langgraph_chat/greatbook_mcp/workspaces/service.py::StagedWorkspaceService`
    * Mode: `commit`
    * Writer: `langgraph_chat/greatbook_mcp/workspaces/service.py::StagedWorkspaceService`; audit record `staged-workspace-audit`.
    * Purpose: Review and commit a staged GreatBook change. Persist a session-bound checklist and typed cross-domain change set; commit only an exact revision and selection through the eleven closed workflow, W3, Typewriter, adjustment, fiscal-period, or business-reversal outcome adapters.

    **Access and execution:** Requires `typewriter.approve`. Call name `/approve-document`. MCP tool `greatbook_workspace_create`.

    **Parameter schema**

    ```json theme={null}
    {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "document_ref",
        "version",
        "step_key",
        "pdf_sha256"
      ],
      "properties": {
        "document_ref": {
          "type": "string",
          "format": "uuid"
        },
        "version": {
          "type": "integer",
          "minimum": 1
        },
        "step_key": {
          "type": "string",
          "maxLength": 80
        },
        "pdf_sha256": {
          "type": "string",
          "pattern": "^[0-9a-f]{64}$"
        }
      }
    }
    ```

    **Returns:** `approval` (type `typed-action`, committable, adapter `greatbook.typewriter.document.approve@1`)

    **Completion and failure:** Completion state `ready_for_review`; canonical write implied `false`. Failures: `invalid_input`, `unauthorized`, `permission_denied`, `not_found`, `stale_revision`, `confirmation_mismatch`, `canonical_refusal`
  </Accordion>

  <Accordion title="/submit-document — Submit an approved Typewriter document to intake [CURRENT]">
    **Status:** `current`. **Skill ID:** `greatbook.skill.typewriter.submit@1`. **Domain:** `typewriter`, `workflow`

    **What it does:** Submit an approved Typewriter document to intake. Hand an approved version to canonical intake; submission is not ledger posting.

    **Capability `greatbook.typewriter.document.submit@1`**

    * Data: `typewriter-document`, `typewriter-version`, `intake-item`
    * Owner: `langgraph_chat/devcenter/typewriter_api.py::submit`
    * Mode: `commit`
    * Writer: `langgraph_chat/devcenter/typewriter_service.py::submit_to_clerk`; audit record `intake-event`.

    **Capability `greatbook.workspace.change.guarded@1`**

    * Data: `staged-workspace`, `staged-change`, `workspace-revision`, `workspace-confirmation`, `execution-receipt`, `workflow-run`, `bank-match`, `typewriter-document`, `close-adjustment`, `fiscal-period`, `reversal`
    * Owner: `langgraph_chat/greatbook_mcp/workspaces/service.py::StagedWorkspaceService`
    * Mode: `commit`
    * Writer: `langgraph_chat/greatbook_mcp/workspaces/service.py::StagedWorkspaceService`; audit record `staged-workspace-audit`.
    * Purpose: Review and commit a staged GreatBook change. Persist a session-bound checklist and typed cross-domain change set; commit only an exact revision and selection through the eleven closed workflow, W3, Typewriter, adjustment, fiscal-period, or business-reversal outcome adapters.

    **Access and execution:** Requires `typewriter.submit`. Call name `/submit-document`. MCP tool `greatbook_workspace_create`.

    **Parameter schema**

    ```json theme={null}
    {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "document_ref",
        "version",
        "pdf_sha256"
      ],
      "properties": {
        "document_ref": {
          "type": "string",
          "format": "uuid"
        },
        "version": {
          "type": "integer",
          "minimum": 1
        },
        "pdf_sha256": {
          "type": "string",
          "pattern": "^[0-9a-f]{64}$"
        }
      }
    }
    ```

    **Returns:** `submission` (type `typed-action`, committable, adapter `greatbook.typewriter.document.submit@1`)

    **Completion and failure:** Completion state `ready_for_review`; canonical write implied `false`. Failures: `invalid_input`, `unauthorized`, `permission_denied`, `not_found`, `stale_revision`, `confirmation_mismatch`, `canonical_refusal`
  </Accordion>
</AccordionGroup>

## Workflow

<AccordionGroup>
  <Accordion title="/resume-workflow — Execute a guarded workflow resume [CURRENT]">
    **Status:** `current`. **Skill ID:** `greatbook.skill.workflow.resume@1`. **Domain:** `workflow`

    **What it does:** Execute a guarded workflow resume. Create, read, confirm, and execute one exact workflow-resume proposal through the canonical service in the same transaction as its durable audit outcome.

    **Capability `greatbook.workflow.resume.guarded@1`**

    * Data: `workflow-run`, `guarded-action-proposal`, `guarded-action-confirmation`, `guarded-action-execution`
    * Owner: `langgraph_chat/greatbook_mcp/proposals/service.py::GuardedActionService`
    * Mode: `commit`
    * Writer: `langgraph_chat/greatbook_mcp/proposals/service.py::GuardedActionService`; audit record `guarded-action-audit`.

    **Capability `greatbook.workspace.change.guarded@1`**

    * Data: `staged-workspace`, `staged-change`, `workspace-revision`, `workspace-confirmation`, `execution-receipt`, `workflow-run`, `bank-match`, `typewriter-document`, `close-adjustment`, `fiscal-period`, `reversal`
    * Owner: `langgraph_chat/greatbook_mcp/workspaces/service.py::StagedWorkspaceService`
    * Mode: `commit`
    * Writer: `langgraph_chat/greatbook_mcp/workspaces/service.py::StagedWorkspaceService`; audit record `staged-workspace-audit`.
    * Purpose: Review and commit a staged GreatBook change. Persist a session-bound checklist and typed cross-domain change set; commit only an exact revision and selection through the eleven closed workflow, W3, Typewriter, adjustment, fiscal-period, or business-reversal outcome adapters.

    **Access and execution:** Requires `workflow.write`. Call name `/resume-workflow`. MCP tool `greatbook_workspace_create`.

    **Parameter schema**

    ```json theme={null}
    {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "workflow_ref",
        "expected_revision"
      ],
      "properties": {
        "workflow_ref": {
          "type": "string",
          "format": "uuid"
        },
        "expected_revision": {
          "type": "integer",
          "minimum": 0
        }
      }
    }
    ```

    **Returns:** `resume` (type `typed-action`, committable, adapter `greatbook.workflow.resume@1`)

    **Completion and failure:** Completion state `ready_for_review`; canonical write implied `false`. Failures: `invalid_input`, `unauthorized`, `permission_denied`, `not_found`, `stale_revision`, `confirmation_mismatch`, `graph_unavailable`, `canonical_refusal`
  </Accordion>
</AccordionGroup>
