Skip to main content
Glama

design_page

Copy page mockups into real Noteful ink pages by specifying each block, text, colour, and drawing; draw items at matching positions and sizes for accurate recreations.

Instructions

Write pages that copy page designs (mockups) in real ink. pages: one spec per page. Either title (a new notebook) or path (add to that notebook after after_page, 1-based; live notebooks too). Copy a page design into real ink. Workflow: design_mockup (or any picture of a page the user gives) -> mockup_grid to read coordinates -> design_page with one spec per page -> render_page to compare with the mockup and fix what is off. In the spec list every block of the mockup in its own pixels: text lines with the CORRECT words (image models garble body text; the layout, sizes and colours are what you copy), cards, bands, highlighter, sticky notes, arrows, circled numbers; trace the drawings straight from the mockup (erase their labels and write the labels as text). Match each text's 'h' (cap height) and 'w' (line length) to the mockup. Spec format: Copy a page design (an image model's mockup) into real Noteful ink.

The agent looks at the mockup and lists what is on it, in the mockup's own pixels; this module draws each item at the same place and size: text as handwriting (the agent supplies the correct words, so the mockup's typos never reach the page), cards, colour bands, highlighter, sticky notes, arrows and circled numbers as pen and highlighter strokes, and drawings traced straight out of the mockup (trace.py) so they keep its quality.

Spec (JSON): {"size": [896, 1200], "theme": "light", "mockup": "", "items": [ {...}, ... ]} items are drawn in order; colours are "#rrggbb" or "auto" (sampled from the mockup at that spot) text {"t": "text", "x", "y" (baseline), "h" (cap height), "text", "color", "pen" (line weight, default 1.15), "w" (fit width), "align": left|center|right, "lh" (line spacing, for several lines split by \n), "wmax" (shrink only if wider)} inline: {#e9573f:PHOT} colours a run, ==ATP== highlights it ({hl:#ffd27a} first to pick the colour), CO_2 and C_6H_{12} are subscripts, T^4 superscripts rect {"t": "rect", "x", "y", "w", "h", "fill", "stroke", "r" (corner radius), "pen", "dots" (dotted inner border colour), "angle" (degrees)} band {"t": "band", "y", "h", "fill"} full-width colour zone hl {"t": "hl", "x", "y", "w", "h", "color"} highlighter swipe sticky {"t": "sticky", "x", "y", "w", "h", "fill", "angle", "tape": "#c9b9a0", "text": [text items, placed relative to the page as usual]} line {"t": "line", "pts": [[x, y], ...], "color", "pen", "head": none|open|hollow|block, "size" (head length), "width" (block arrow)} circle {"t": "circle", "cx", "cy", "r", "color", "pen", "fill", "text", "h"}; "rx"/"ry" make it an ellipse (around a chosen answer) any item may carry "g": the group its strokes belong to (design_groups) lines {"t": "lines", "x", "y" (first baseline), "h", "lh" (baseline step), "lines": [...], plus any text keys} a paragraph or list, one text item per line trace {"t": "trace", "box": [x, y, w, h], "erase": [[x, y, w, h], ...] (labels to drop, in mockup pixels), "colors": 8}

Input Schema

NameRequiredDescriptionDefault
pathNo
pagesYes
titleNo
after_pageNo
open_in_notefulNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does most of it: items are drawn in order, 'auto' colours are sampled from the mockup at that spot, image-model body text is garbled so the agent must supply correct words, and trace/erase lets labels be dropped from traced drawings. It does not state overwrite/reversibility semantics for target pages, nor what open_in_noteful does, which keeps it from a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The workflow and spec format are front-loaded and useful, but the opening intent is restated three times ('Write pages that copy page designs…', 'Copy a page design into real ink.', 'Copy a page design (an image model's mockup) into real Noteful ink.'), and the spec block is long and dense. Much of the length is justified by the 0% schema coverage, but the redundant framing sentences do not earn their place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a parameterless-output write tool with a complex free-form nested 'pages' array and no annotations, the description supplies the item-type vocabulary, coordinate conventions, inline markup syntax, and workflow needed to actually construct a call. The remaining holes are the undocumented open_in_noteful flag and the return value, which there is no output schema to cover.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% and has no nested descriptions, so the description must compensate: it explains pages (one spec per page), title (new notebook), path (append to existing/live notebook), and after_page (1-based insertion point). It also documents the entire nested spec object in detail. The one clear gap is open_in_noteful, which is never mentioned.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence states a specific verb (write/copy) and resource (pages of ink reproducing a mockup), and the workflow line names the sibling tools it depends on (design_mockup, mockup_grid, render_page). An agent can distinguish this from design_mockup (which produces the mockup) and write_on_page without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives an explicit ordered workflow: design_mockup (or a user-supplied picture) -> mockup_grid to read coordinates -> design_page -> render_page to compare and fix. It also states the branch condition for output target: 'Either title (a new notebook) or path (add to that notebook after after_page, 1-based; live notebooks too)'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.