datapages

datapages is a skill for Claude Code, Codex from romshark/datapages. It costs 53 tokens per session (8,748 once invoked), scanned A, original, MIT.

A guide for building Datapages web applications in Go, using its command-line tool and source packages. Datapages generates the server, while Templ creates HTML and Datastar adds browser updates.

In plain words
What is it for?
Building or modifying a Datapages app, especially when the project has a datapages.yaml file or imports the datapages package.
Why use it?
It gives an AI coding agent the project rules and workflow needed to change a Datapages app correctly. It also clarifies which separate tools handle templates and browser behavior.

Skill for Claude CodeCodex

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 skills/romshark/datapages/datapages
Any agent
npx skills add romshark/datapages --skill datapages
Clone the repo
git clone --depth 1 https://github.com/romshark/datapages

Made for: Claude Code, Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for datapages

README.md
[![agentmods](https://agentmods.dev/badge/skills/romshark/datapages/datapages.svg)](https://agentmods.dev/skills/romshark/datapages/datapages)
Your own site
<a href="https://agentmods.dev/skills/romshark/datapages/datapages"><img src="https://agentmods.dev/badge/skills/romshark/datapages/datapages.svg" alt="Measured on agentmods" height="20"></a>
Per session 53 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 8,748 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.00053 $0.08748
Opus 5 $0.00026 $0.04374
Sonnet 5 $0.00011 $0.01750
Haiku 4.5 $0.00005 $0.00875

Measured 3d ago against content hash b3247df8029a, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

datapages 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 3d ago.

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.

.skills/datapages/SKILL.md · 1,013 lines

How it starts

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

Writing a Datapages Application

You write Go application logic and templates. Datapages generates the server. Follow these steps in order. Do not skip steps.

For the full specification of all parameters, return types, supported field types, and configuration options, see SPECIFICATION.md.

Datapages apps use two other technologies. This skill does not teach them. Learn them separately.

  • Templ (github.com/a-h/templ) - Go HTML templating. Handlers return datapages.Component. You write .templ files that compile to Go via templ generate. Datapages does not run this automatically — you must run templ generate yourself after creating or modifying .templ files. Docs: https://templ.guide/developer-tools/llm/
  • Datastar (github.com/starfederation/datastar-go/datastar) - Frontend reactivity via HTML attributes and SSE. Actions go into data-on:<event> attributes (data-on:click, data-on:submit). The hyphen form is reserved for plugins (data-on-intersect, data-on-interval, data-on-signal-patch). Docs: https://data-star.dev See also: datastar/SKILL.md

Architecture

  • Hypermedia-First (MPA): This is a multi-page application architecture. The backend drives the UI by sending HTML fragments, signal updates, and real-time events over SSE. There is no separate REST API layer - all interactions happen through Datastar SSE streams managed by Datapages.
  • Morphing & Patching: Datastar uses morphing to update the DOM - it compares the incoming HTML fragment with the existing DOM and applies minimal changes, preserving focus, scroll position, and CSS transitions. Prefer HTML fragment patches (morphs) over signal updates because morphs carry both structure and data, keeping the server as the single source of truth. Use signal updates only for lightweight, transient UI state (e.g. toggling a loading spinner, updating a counter) where re-rendering HTML would be wasteful. "Fat morphs" - sending a larger HTML fragment that includes surrounding context - are often simpler and more robust than trying to surgically update individual elements. Often a single template per page that renders the entire body is the best approach because it reduces complexity and avoids coordinating multiple partial updates.
  • Backend Reactivity: The server renders HTML and manages application state. The frontend is a thin reactive layer that responds to backend updates. The backend determines what the user can do by controlling DOM patches, maintaining a single source of truth.
  • Simplicity First: Keep Datastar expressions simple - complex logic belongs in backend handlers or external scripts. Use a "props down, events up" pattern: pass data into functions via arguments, return results or dispatch custom events. State that makes sense to keep on the client (e.g. UI toggles, form input) should be realized using client-side signals, state that should be persisted or shared should live on the server, and state necessary for actions should be communicated via signals.
  • No JavaScript: Avoid solving problems with JavaScript. All application logic belongs in Go on the server. Datastar's declarative attributes (data-on, data-bind, data-show, etc.) and signal expressions handle the frontend. Only reach for JavaScript when there is genuinely no other way — e.g. clipboard access, focus management, or interfacing with a third-party browser API that Datastar cannot express.

Read the full file on GitHub · 1,013 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. 3d ago First seen · 1,013 lines · 53 tokens per session scan A b3247df8029a

Subscribe to this mod's changes

datapages is a skill published in the GitHub repository romshark/datapages (87 stars, last pushed 4d ago), licensed MIT. It adds 53 tokens to every session and 8,748 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-30.

Related

Other skills, from other repositories

structpages

Guide for building Go web applications with the structpages framework (struct-based routing + templ + HTMX). Use when writing routes, pages, page groups, Props methods, handler methods (ServeHTTP), page components, partials, HTMX partial rendering and nested swap levels, URL generation (URLFor/ID/IDTarget)…

jackielii/structpages · 103 tokens

gen-test

Generate idiomatic tests for Go packages and handlers in the Meshery project.

meshery/meshery · 18 tokens

golang-testing

Production-ready Golang tests — table-driven tests, testify suites and mocks, parallel tests, fuzzing, fixtures, goroutine leak detection with goleak, snapshot testing, code coverage, integration tests, idiomatic test naming. Use when writing or reviewing Go tests, choosing a testing approach, setting up Go test CI…

samber/cc-skills-golang · 115 tokens

golang-code-style

Golang code style conventions — line length and breaking, variable declarations, control flow clarity, when comments help vs hurt. Use when writing or reviewing Go code, asking about style or clarity, or establishing project coding standards. Not for naming conventions (→ See samber/cc-skills-golang@golang-naming…

samber/cc-skills-golang · 116 tokens

golang-samber-oops

Structured error handling in Golang with samber/oops — error builders, stack traces, error codes, error context, error wrapping, error attributes, user-facing vs developer messages, panic recovery, and logger integration. Apply when using or adopting samber/oops, or when the codebase already imports…

samber/cc-skills-golang · 74 tokens

golang-uber-dig

Implements dependency injection in Golang using uber-go/dig — reflection-based container, Provide/Invoke, dig.In/dig.Out parameter and result objects, named values, value groups, optional dependencies, scopes, and Decorate. Apply when using or adopting uber-go/dig, when the codebase imports go.uber.org/dig, or when…

samber/cc-skills-golang · 111 tokens