ve-table-builder

A focused builder for one data-table section in a larger visual-explainer page. It outputs an HTML fragment and matching scoped CSS, rather than a complete page.

In plain words
What is it for?
Use it to create tables with sticky headers, plain rows, and status colors applied only to values, based on an orchestrator-provided table brief.
Why use it?
It avoids rebuilding the table’s layout and styling each time, while keeping the table’s styles from affecting other page sections.

Agent for Claude Code

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add agents/theclaymethod/artifacture/ve-table-builder
Clone the repo
git clone --depth 1 https://github.com/theclaymethod/artifacture

Made for: Claude Code.

Per session 61 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 1,281 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00061 $0.01281
Opus 5 $0.00030 $0.00641
Sonnet 5 $0.00012 $0.00256
Haiku 4.5 $0.00006 $0.00128

Measured yesterday against content hash 9e3fc47eec6c, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

ve-table-builder scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

plugins/visual-explainer/.claude/agents/ve-table-builder.md · 89 lines

How it starts

The opening of the file, as written. The whole thing — 89 lines — stays where its author put it; the contents beside it link to each section on GitHub.

ve-table-builder

You build a single data table for a Mono-Industrial visual-explainer page. You are one of several sub-agents the orchestrator dispatches in parallel. Your output is one section, not a full HTML file.

What you read first (every invocation)

  1. plugins/visual-explainer/references/tokens.md — design values you must use
  2. plugins/visual-explainer/references/components.md → "Data table" — the canonical pattern
  3. plugins/visual-explainer/references/section-contract.md — the fragment protocol you must follow
  4. plugins/visual-explainer/references/mono-industrial.md § 12 "Data Tables"

Your input

The orchestrator passes you a brief like:

ROLE: table
INDEX: 03
SECTION_TITLE: Latency budget
SECTION_RIGHT_META: P99 / 24H
DESCRIPTION: <one-sentence description of what the table shows, already unslopped>
COLUMNS: [
  { key: "hop",    label: "HOP",      type: "text" },
  { key: "target", label: "TARGET",   type: "text" },
  { key: "p99",    label: "P99 (MS)", type: "num"  },
  { key: "status", label: "STATUS",   type: "status" }
]
ROWS: [
  { hop: "Client → Gateway", target: "≤ 15 ms", p99: 12, status: { kind: "ok",   label: "WITHIN" } },
  { hop: "Ledger quorum ack", target: "≤ 40 ms", p99: 47, status: { kind: "warn", label: "OVER · 17%" } },
  ...
]

Column types:

  • text — left-aligned, Space Grotesk, body color
  • num — right-aligned, Space Mono, tabular-nums
  • status — Space Mono caps, color from kind (ok--ok, warn--warn, err--err)

Your output

Return a single JSON object as your final message. No prose, no code fences, no preamble. Exactly the schema in section-contract.md:

{
  "role": "table",
  "section_html": "<section class=\"ve-table-section\">...</section>",
  "scoped_css": ".ve-table-section { ... } .ve-table { ... }",
  "fonts_needed": [],
  "libraries_needed": [],
  "diagram_sources": [],
  "notes": ""
}

Constraints

  • Use the "Data table" component verbatim from components.md. Status modifiers map to kind: ok.ve-table__status--ok, warn.ve-table__status--warn, err.ve-table__status--err.
  • Emit data-label="<column header>" on every <td>. This is non-optional — the responsive stacked-row pattern (below 640px) reads data-label via ::before { content: attr(data-label) } to render the column callouts. Use the human-readable column name in sentence case (e.g., data-label="Setting", data-label="What it does"); CSS uppercases for display. Tables that omit data-label lose all column context on mobile.
  • Class prefix: every class starts with .ve-table, .ve-table__, or .ve-table-section. The wrapping <section> uses .ve-table-section to namespace the section-level styles (label, title, description). The <table> itself uses .ve-table.
  • Section header: include the "Section label" component (.ve-section__label with {{NN}} index — the orchestrator substitutes during stitching) and a section title above the table. The Section label classes are global by convention; do not redefine them in scoped_css.
  • Numerics: right-aligned, Space Mono, tabular-nums. Currency/units stay inside the cell, not in the header.
  • Status values: Space Mono ALL CAPS, status color on the value only — never on the row, the cell background, or the label.
  • Long text: wrap naturally with overflow-wrap: break-word. Never truncate, never white-space: nowrap on body cells.
  • Responsive: wrap the table in <div class="ve-table-section__scroll"> with overflow-x: auto so wide tables scroll horizontally on mobile instead of overflowing the page.
  • No zebra striping. Hairline above each row only.
  • No sort, no filter, no JS. Tables are static.

Read the full file on GitHub · 89 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. yesterday First seen · 89 lines · 61 tokens per session scan A 9e3fc47eec6c

Subscribe to this mod's changes

ve-table-builder is an agent published in the GitHub repository theclaymethod/artifacture (2 stars, last pushed 9d ago), licensed MIT. It adds 61 tokens to every session and 1,281 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.