changedInput schema / anyOf
Previous value: -[
- {
- "additionalProperties": false,
- "description": "action=\"create\": Add a document — a large multi-section markdown artifact (plan, audit, design spec, retrospective). Use over knowledge(action=\"create\") when content is long/narrative rather than a single short structured fact. Documents are surfaced by recall by title only; the body is never auto-injected, so an agent must call fetch DOC-N to read it. component_id is optional (omit to land at the project root; re-parent later via node(action=\"update\")). For the body pass exactly one of `body` (inline markdown) or `file_path` (repo-relative path the server reads, UTF-8 only, max 1 MB) — or neither for a title-only stub. file_path works only on a local connection; over a hosted connection pass the body inline.",
- "properties": {
- "action": {
- "const": "create",
- "type": "string"
- },
- "body": {
- "description": "The artifact body: for create, markdown (multi-section is fine — the whole point of a document is a long narrative; no upper bound; mutually exclusive with `file_path`). For create_diagram, d2 source. Write prose in plain style: one idea per sentence, active voice, lead with the condition, one term per concept, exact technical names.",
- "type": "string"
- },
- "component_id": {
- "anyOf": [
- {
- "description": "Shareable id: TASK-N (task), KNOW-N (knowledge), COMP-N (component), DOC-N (document), or NODE-N (any).",
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "description": "Optional parent component shareable id. Omit to land the doc at the project root."
- },
- "file_path": {
- "description": "(create only) Optional alternative to `body`. Path relative to the MCP server's cwd (the session working directory). The server reads the file and uses its content as the body — use this to import existing repo docs without burning agent context. UTF-8 text only, max 1 MB. Mutually exclusive with `body`. Stdio-only.",
- "minLength": 1,
- "type": "string"
- },
- "privacy_bypass": {
- "description": "true writes despite a privacy flag on a public project. Only meaningful after a flag; the user decides whether the content can be public.",
- "type": "boolean"
- },
- "privacy_false_positive": {
- "description": "With privacy_bypass: true reports the privacy flag as wrong.",
- "type": "boolean"
- },
- "privacy_judgement_id": {
- "description": "With privacy_bypass: the judgement_id the privacy flag returned.",
- "type": "string"
- },
- "privacy_note": {
- "description": "With privacy_bypass: an optional short reason, kept with the bypass.",
- "maxLength": 500,
- "type": "string"
- },
- "project_slug": {
- "description": "Project slug, e.g. \"acme-app\" — list(what=\"projects\") returns yours.",
- "minLength": 1,
- "type": "string"
- },
- "scope": {
- "description": "Workspace scope. Omit or 'auto' = scope to the workspace mapped to the current git branch, else trunk (shared truth). 'trunk' = force shared truth even on a branch. Or pass a workspace name/id to target it. Branch-scoped writes are invisible to collaborators off that workspace.",
- "type": "string"
- },
- "source": {
- "description": "Optional free-form provenance label, e.g. 'session:2026-05-04', 'pr:stele#117', 'meeting:planning-q2'. When `file_path` is used and `source` is omitted, defaults to 'file:<relative-path>'.",
- "maxLength": 500,
- "minLength": 1,
- "type": "string"
- },
- "source_url": {
- "description": "Optional canonical URL for the source — Notion page, Google doc, PR description, etc.",
- "format": "uri",
- "type": "string"
- },
- "title": {
- "description": "REQUIRED for create/create_diagram — one-line summary, e.g. \"v1.5 implementation plan\".",
- "maxLength": 300,
- "minLength": 1,
- "type": "string"
- },
- "topics": {
- "description": "Short tag list (\"plan\", \"audit\", \"v1.5\").",
- "items": {
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "action",
- "project_slug",
- "title"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "description": "action=\"create_diagram\": Add a diagram — a visual design artifact (architecture, workflow, sequence, or flow diagram) authored in d2 source and rendered to an SVG on its page. Use when a picture explains a design better than prose: the diagram lives in the graph as a durable, referenceable node the next agent and the human can open. The `body` is d2 source — it is rendered server-side (you never write the image). Diagram source is excluded from search and recall (it's structural), but the title + topics stay findable and any shareable ids you label in the diagram (e.g. TASK-123) still create mention links. To show the rendered diagram inline in another node's body, embed it with `{{DIAG-N:short description}}` — it renders as a live image there, not just a link. component_id is optional (omit to land at the project root).",
- "properties": {
- "action": {
- "const": "create_diagram",
- "type": "string"
- },
- "body": {
- "description": "The diagram source, written in d2 (the terrastruct.com/d2 language). It is rendered to an SVG (and ASCII) on the diagram's page — you author the source, not the image. Keep it valid d2; load the d2 authoring guidance if you're unsure of the syntax.",
- "type": "string"
- },
- "component_id": {
- "anyOf": [
- {
- "description": "Shareable id: TASK-N (task), KNOW-N (knowledge), COMP-N (component), DOC-N (document), or NODE-N (any).",
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "description": "Optional parent component shareable id. Omit to land the diagram at the project root."
- },
- "privacy_bypass": {
- "description": "true writes despite a privacy flag on a public project. Only meaningful after a flag; the user decides whether the content can be public.",
- "type": "boolean"
- },
- "privacy_false_positive": {
- "description": "With privacy_bypass: true reports the privacy flag as wrong.",
- "type": "boolean"
- },
- "privacy_judgement_id": {
- "description": "With privacy_bypass: the judgement_id the privacy flag returned.",
- "type": "string"
- },
- "privacy_note": {
- "description": "With privacy_bypass: an optional short reason, kept with the bypass.",
- "maxLength": 500,
- "type": "string"
- },
- "project_slug": {
- "description": "Project slug, e.g. \"acme-app\" — list(what=\"projects\") returns yours.",
- "minLength": 1,
- "type": "string"
- },
- "scope": {
- "description": "Workspace scope. Omit or 'auto' = scope to the workspace mapped to the current git branch, else trunk (shared truth). 'trunk' = force shared truth even on a branch. Or pass a workspace name/id to target it. Branch-scoped writes are invisible to collaborators off that workspace.",
- "type": "string"
- },
- "source": {
- "description": "Optional free-form provenance label, e.g. 'session:2026-05-04' or 'design:sign-in'.",
- "maxLength": 500,
- "minLength": 1,
- "type": "string"
- },
- "source_url": {
- "description": "Optional canonical URL for the source.",
- "format": "uri",
- "type": "string"
- },
- "title": {
- "description": "One-line summary, e.g. \"Sign-in sequence\" or \"Service topology\".",
- "maxLength": 300,
- "minLength": 1,
- "type": "string"
- },
- "topics": {
- "description": "Short tag list (\"architecture\", \"sequence\", \"auth\").",
- "items": {
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "action",
- "project_slug",
- "title"
- ],
- "type": "object"
- }
-]New value: +[
+ {
+ "additionalProperties": false,
+ "description": "action=\"create\": Add a document — a large multi-section markdown artifact (plan, audit, design spec, retrospective). Use over knowledge(action=\"create\") when content is long/narrative rather than a single short structured fact. Documents are surfaced by recall by title only; the body is never auto-injected, so an agent must call fetch DOC-N to read it. component_id is optional (omit to land at the project root; re-parent later via node(action=\"update\")). For the body pass exactly one of `body` (inline markdown) or `file_path` (repo-relative path the server reads, UTF-8 only, max 1 MB) — or neither for a title-only stub. file_path works only on a local connection; over a hosted connection pass the body inline.",
+ "properties": {
+ "action": {
+ "const": "create",
+ "type": "string"
+ },
+ "body": {
+ "description": "The artifact body: for create, markdown (multi-section is fine — the whole point of a document is a long narrative; no upper bound; mutually exclusive with `file_path`). For create_diagram, d2 source. Write prose in plain style: one idea per sentence, active voice, lead with the condition, one term per concept, exact technical names.",
+ "type": "string"
+ },
+ "component_id": {
+ "anyOf": [
+ {
+ "description": "Shareable id: TASK-N (task), KNOW-N (knowledge), COMP-N (component), DOC-N (document), or NODE-N (any).",
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Optional parent component shareable id. Omit to land the doc at the project root."
+ },
+ "file_path": {
+ "description": "(create only) Optional alternative to `body`. Path relative to the MCP server's cwd (the session working directory). The server reads the file and uses its content as the body — use this to import existing repo docs without burning agent context. UTF-8 text only, max 1 MB. Mutually exclusive with `body`. Stdio-only.",
+ "minLength": 1,
+ "type": "string"
+ },
+ "privacy_bypass": {
+ "description": "true writes despite a privacy flag. Only meaningful after a flag; the user decides whether the content can be written.",
+ "type": "boolean"
+ },
+ "privacy_false_positive": {
+ "description": "With privacy_bypass: true reports the privacy flag as wrong.",
+ "type": "boolean"
+ },
+ "privacy_judgement_id": {
+ "description": "With privacy_bypass: the judgement_id the privacy flag returned.",
+ "type": "string"
+ },
+ "privacy_note": {
+ "description": "With privacy_bypass: an optional short reason, kept with the bypass.",
+ "maxLength": 500,
+ "type": "string"
+ },
+ "project_slug": {
+ "description": "Project slug, e.g. \"acme-app\" — list(what=\"projects\") returns yours.",
+ "minLength": 1,
+ "type": "string"
+ },
+ "scope": {
+ "description": "Workspace scope. Omit or 'auto' = scope to the workspace mapped to the current git branch, else trunk (shared truth). 'trunk' = force shared truth even on a branch. Or pass a workspace name/id to target it. Branch-scoped writes are invisible to collaborators off that workspace.",
+ "type": "string"
+ },
+ "source": {
+ "description": "Optional free-form provenance label, e.g. 'session:2026-05-04', 'pr:stele#117', 'meeting:planning-q2'. When `file_path` is used and `source` is omitted, defaults to 'file:<relative-path>'.",
+ "maxLength": 500,
+ "minLength": 1,
+ "type": "string"
+ },
+ "source_url": {
+ "description": "Optional canonical URL for the source — Notion page, Google doc, PR description, etc.",
+ "format": "uri",
+ "type": "string"
+ },
+ "title": {
+ "description": "REQUIRED for create/create_diagram — one-line summary, e.g. \"v1.5 implementation plan\".",
+ "maxLength": 300,
+ "minLength": 1,
+ "type": "string"
+ },
+ "topics": {
+ "description": "Short tag list (\"plan\", \"audit\", \"v1.5\").",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "action",
+ "project_slug",
+ "title"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "description": "action=\"create_diagram\": Add a diagram — a visual design artifact (architecture, workflow, sequence, or flow diagram) authored in d2 source and rendered to an SVG on its page. Use when a picture explains a design better than prose: the diagram lives in the graph as a durable, referenceable node the next agent and the human can open. The `body` is d2 source — it is rendered server-side (you never write the image). Diagram source is excluded from search and recall (it's structural), but the title + topics stay findable and any shareable ids you label in the diagram (e.g. TASK-123) still create mention links. To show the rendered diagram inline in another node's body, embed it with `{{DIAG-N:short description}}` — it renders as a live image there, not just a link. component_id is optional (omit to land at the project root).",
+ "properties": {
+ "action": {
+ "const": "create_diagram",
+ "type": "string"
+ },
+ "body": {
+ "description": "The diagram source, written in d2 (the terrastruct.com/d2 language). It is rendered to an SVG (and ASCII) on the diagram's page — you author the source, not the image. Keep it valid d2; load the d2 authoring guidance if you're unsure of the syntax.",
+ "type": "string"
+ },
+ "component_id": {
+ "anyOf": [
+ {
+ "description": "Shareable id: TASK-N (task), KNOW-N (knowledge), COMP-N (component), DOC-N (document), or NODE-N (any).",
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Optional parent component shareable id. Omit to land the diagram at the project root."
+ },
+ "privacy_bypass": {
+ "description": "true writes despite a privacy flag. Only meaningful after a flag; the user decides whether the content can be written.",
+ "type": "boolean"
+ },
+ "privacy_false_positive": {
+ "description": "With privacy_bypass: true reports the privacy flag as wrong.",
+ "type": "boolean"
+ },
+ "privacy_judgement_id": {
+ "description": "With privacy_bypass: the judgement_id the privacy flag returned.",
+ "type": "string"
+ },
+ "privacy_note": {
+ "description": "With privacy_bypass: an optional short reason, kept with the bypass.",
+ "maxLength": 500,
+ "type": "string"
+ },
+ "project_slug": {
+ "description": "Project slug, e.g. \"acme-app\" — list(what=\"projects\") returns yours.",
+ "minLength": 1,
+ "type": "string"
+ },
+ "scope": {
+ "description": "Workspace scope. Omit or 'auto' = scope to the workspace mapped to the current git branch, else trunk (shared truth). 'trunk' = force shared truth even on a branch. Or pass a workspace name/id to target it. Branch-scoped writes are invisible to collaborators off that workspace.",
+ "type": "string"
+ },
+ "source": {
+ "description": "Optional free-form provenance label, e.g. 'session:2026-05-04' or 'design:sign-in'.",
+ "maxLength": 500,
+ "minLength": 1,
+ "type": "string"
+ },
+ "source_url": {
+ "description": "Optional canonical URL for the source.",
+ "format": "uri",
+ "type": "string"
+ },
+ "title": {
+ "description": "One-line summary, e.g. \"Sign-in sequence\" or \"Service topology\".",
+ "maxLength": 300,
+ "minLength": 1,
+ "type": "string"
+ },
+ "topics": {
+ "description": "Short tag list (\"architecture\", \"sequence\", \"auth\").",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "action",
+ "project_slug",
+ "title"
+ ],
+ "type": "object"
+ }
+]