Tools and resources

Six tools. Five read, one writes — and the one that writes only ever files a proposal for a human to approve.

  • get_canvasreadcanvas_id?

    The whole canvas as structured data — type stack, palette with usage rules, marks, references, personas and voice. Most agents call this once per session.

  • get_typographyreadcanvas_id?, format?

    Families, weights, the size scale and the pairing rules, with the CSS or @font-face the project should use.

  • get_palettereadcanvas_id?, space?

    Colours with roles attached — which is a surface, which is an accent, which one is only ever a button.

  • get_voicereadcanvas_id?

    Tone rules, who you are writing for, phrases to avoid, and required legal copy where a market needs it.

  • get_historyreadcanvas_id?, limit?

    The most recent changes to this canvas, with who made each and why — useful before proposing to change a rule.

  • propose_changewritezone, title, reason, card_id?, patch?

    Suggest an edit to a card. This is the only way an agent can change anything: the proposal enters the approval queue and nothing moves until an owner approves it.

Response shape

Every tool returns a written brief as its primary content — models follow prose better than they follow a nested object — with this structure alongside it asstructuredContentfor clients that can use it.

structuredContent
{
  "canvas": "brand soul",
  "version": 41,
  "typography": {
    "heading": { "family": "Archivo", "weight": 700, "tracking": "-0.03em" },
    "body":    { "family": "Newsreader", "size": 16, "leading": 1.65 }
  },
  "palette": [
    { "hex": "#101010", "role": "ink" },
    { "hex": "#E8511E", "role": "accent", "rule": "buttons and links only" }
  ],
  "voice": { "avoid": ["Oops", "Uh oh"], "person": "second" },
  "never": ["gradient heroes", "drop shadows on cards"]
}