getBlueprint
Read a blueprint
A blueprint is the plan for a kind of brain (business, site): the full list of documents it should have. With no type, lists the blueprints. With a type, returns its documents (file, title, ring, spine domains, out-of-date rule, what it asks).
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
type | string | optional | Blueprint id, for example "business" or "site" (the latest version), or "site@1" for one version; omit to list the blueprints |
Scopes
knowledge:read
Annotations
- Read only: yes
- Destructive: no
When to use
Call getBlueprint to learn what a kind of brain should contain, for example before you draft a missing document that getBrain reported.
A blueprint is the plan for one kind of brain, such as a business or a website. It has a version (site@1) and the full list of documents that kind of brain should have. A brain's own brain.md names its blueprint and lists only its differences: documents it adds and documents it drops.
The tool needs the knowledge:read scope.
- Without
type, it lists the latest version of each blueprint:id,ref(id and version, the value a card puts inblueprint),version,versions(every version this release has),title,parent(the kind of brain this one sits under),description, the number ofdocumentsand theringsused. - With
type, it returns one blueprint:sitegives the latest version,site@1gives that version. Each document has itsfilename,title,ring,deepens(the Context Spine domains it covers, by number),outOfDateAfterDays(nullmeans never) andasks(one line on what it should contain).latestis the newest version of that kind, andtextis the wholeblueprint.md. - This release has two blueprints.
businessis the Context Spine: twenty documents in five named rings.sitedescribes one website and sits under a business brain. - Blueprints ship with Sasha and change only with a new release.
Example
{ "type": "site" }
The response below shows 2 of the 14 documents, and the text value is shortened.
{
"blueprint": {
"id": "site",
"ref": "site@1",
"version": 1,
"latest": "site@1",
"title": "Website",
"parent": "business",
"description": "The site blueprint describes one website. Each document takes a Context Spine domain deeper for this site, so a site brain sits under a business brain. Where the site has no document of its own, the parent business brain may cover the same domain.",
"rings": [
{ "ring": "Public Context", "stage": "Scope" },
{ "ring": "System Integration", "stage": "Embed" },
{ "ring": "Flow", "stage": "Flow" }
],
"documents": [
{
"id": "about", "file": "about.md", "title": "About", "ring": "Public Context", "deepens": [1, 4],
"outOfDateAfterDays": 365,
"asks": "Who is behind the site, what they do, and the story the site tells about them"
},
{
"id": "voice", "file": "voice.md", "title": "Voice", "ring": "Public Context", "deepens": [13],
"outOfDateAfterDays": 365,
"asks": "How the site sounds: tone, words to use, and words never to use"
}
],
"text": "---\nblueprint:\n id: site\n version: 1\n title: Website\n parent: business\ndocuments:\n - id: about\n..."
}
}
Refusals and what to do
Error in getBlueprint: Unknown blueprint. Call getBlueprint with no type for the list.: there is no blueprint with thattype, or not that version. Call it with no arguments and use areffrom the list.- If the connection does not hold
knowledge:read, the tool is not in your tool list, and a call to it returnsMCP error -32602: Tool getBlueprint not found. Read thepermissionssection ofgetDocs. A scope is never added to an existing connection: the person must reconnect, or mint a new token, withknowledge:read.
Related
listBrainsshows which blueprint each brain uses.getBrainshows the state of each document in one brain.getDocsexplains brains in itsbrainssection.