A visual flow diagram engine and validation toolkit for creating, editing, and checking logic flows, decision trees, and system diagrams with structural integrity and coherence validation.
Arcgram exposes 14 utility tools with mixed quality. Most tools have descriptions (13/14), but descriptions are often vague or domain-specific without clear LLM guidance. Naming is inconsistent: some tools use verb_noun (checkpoint, loadEngine), others use camelCase without clear verbs (popSummary, popTotal, fontSizeOf). Critical gap: NO input schemas are visible in the provided source. Tool definitions appear to be inferred from comments and file paths rather than explicit MCP registration. Error handling is absent, no guidance on recovery, retryability, or actionable error messages. Output schemas are undocumented. Tools like popSummary, popTotal, and popZeroKeys are utility functions that should be composed into higher-level tools, not exposed as separate MCP tools.
Calculates the advance width (in 10ths of a pixel) for text using a precomputed character width table. Used internally for text measurement.
A public, agent-neutral, tool-type validator that checks if an Arcgram diagram is a valid, coherent spec. Returns typed findings for structural integrity (Tier A) and justification coherence (Tier B). Reads only semantic field values of nodes/edges - id, f, t, kind, role, type, status, flag. Never reads coordinates, pixels, colors, sizes, spacing, or CSS quantities.
Declares a population of counted items in a structured format. Outputs a POPULATION line with key=value pairs where keys are lower-kebab format and values are non-negative integers. Used by gate scanners to report measurement populations.
Extracts the JavaScript engine source code from an Arcgram HTML file by parsing <script> blocks and removing BugMark overlay sections.
Extracts the font size in pixels from a font specification string.
Loads and executes the Arcgram engine from an HTML file in a sandboxed Node.js VM context. Returns exported globals like nodes, edges, and other specified exports.
NO input schemas visible in source code. All 14 tools lack formal JSON Schema definitions with type constraints.
Inconsistent naming conventions. Tools mix verb_noun (checkpoint, loadEngine) with camelCase utility names (popSummary, fontSizeOf, advance10). LLMs struggle to parse intent from inconsistent naming. Utility functions like popTotal, popZeroKeys should be composed into higher-level tools, not exposed separately.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 36 | 2026-07-28+ | v2 |
Creates a minimal DOM/window stub for running the Arcgram engine in Node.js without a browser. Returns mock document, window, and state objects.
Measures text metrics (width, ascent, descent) for a given text string and font specification. Returns an object with width, actualBoundingBoxAscent, and actualBoundingBoxDescent properties.
Measures the width of text in pixels for a given font specification.
Formats a population map as a comma-separated summary string in format 'key:value,key:value,...'
Sums all values in a population map and returns the total count.
Returns an array of keys from a population map that have a value of zero.
Parses a POPULATION line from output text and returns a map of key-value pairs. Extracts population declarations from gate scanner output.
Determines a verdict string based on a pass/fail result and population map. Returns 'FAIL' if pass is false, 'N/A' if total is zero, or 'PASS' otherwise.
No error handling or recovery guidance. Tools lack descriptions of failure modes, retryability, or actionable error messages. E.g., loadEngine may fail if file is invalid or exports are missing, but no guidance on what to do next.
Output schemas undocumented. Tools like checkpoint, loadEngine, and measureTextMetrics return complex objects, but no schema is provided for what fields the LLM should expect. Agents cannot plan downstream calls without knowing return structure.
Tool definitions appear inferred rather than explicitly registered. No visible MCP tool registration code in provided source.