Agent skill

Datapages

by romshark in romshark/datapages

Apply the Datapages framework rules, build loop and naming conventions, and select the relevant task skill.

MITAuto-check passed

Install Datapages

skills CLI
$ npx skills add romshark/datapages --skill datapages -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install romshark/datapages datapages --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/romshark/datapages.git skills-src && mkdir -p .claude/skills && cp -r skills-src/internal/generator/agentdocs/data/skills/datapages .claude/skills/datapages && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
datapages
GitHub stars
113
Token cost
~1.9k tokens
SKILL.md length
988 words
Files
1
Skills in repo
15
Repo updated
First seen
Licence
MIT

At a glance

Apply the Datapages framework rules, build loop and naming conventions, and select the relevant task skill.

  • Work in a Datapages app package
  • SKILL.md covers Loop, Rules, Security and Naming, plus 2 more sections
  • Calls go
  • Server entry point

What it does

Datapages is an agent skill from romshark/datapages. Apply the Datapages framework rules, build loop and naming conventions, and select the relevant task skill. Use for work in a Datapages app package, template or server entry point. Read datapages-architecture first when starting an app or designing a feature.

Its SKILL.md is about 1.9k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It works with Go. The repository describes itself as: A Datastar Go web frontend framework. The licence is MIT.

When your agent uses it

  • Work in a Datapages app package
  • Server entry point

Example prompts

  • “/datapages”

What it can do on your machine

Read from SKILL.md and the folder at commit 87d5a44. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • go

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Datapages loads about 1.9k tokens when it runs. Until then it costs about 68 tokens; SKILL.md has 988 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~68
When it runs · the whole SKILL.md, loaded when a task matches
~1.9k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from romshark/datapages at commit 87d5a44, republished under its MIT licence (© romshark). 988 words, ~1,916 tokens.

Download SKILL.mdSave it as .claude/skills/datapages/SKILL.md (or your agent's skills folder).
name
datapages
description
Apply the Datapages framework rules, build loop and naming conventions, and select the relevant task skill. Use for work in a Datapages app package, template or server entry point. Read `datapages-architecture` first when starting an app or designing a feature.

Datapages

Write Go handlers and Templ templates. datapages gen generates routing, handler registration, SSE and session code. It also generates the type-safe href and action packages.

Read datapages-architecture first when starting an app or designing a new feature. It explains how to select the required Datapages constructs. Then read the task-specific skills below.

Loop

Write the app model first, then generate its helpers before templates call them:

sh
datapages gen
templ generate # after any .templ change, and never while datapages watch runs
datapages lint
go build ./...

datapages gen reports parse errors and suggested fixes on stderr. Fix the app package and run it again. It also runs go mod tidy. A tidy failure makes the command fail even when code generation succeeded. datapages lint performs the checks without generating files.

An earlier templ generate can produce references to helpers that do not exist yet. Remove those references, run templ generate, then run datapages gen. Restore the references and run templ generate again. After an initial parse failure, the generator may write empty stub helper packages.

Use Templ v0.3.1070, which the generated CI workflow pins. Use datapages watch as the local development server.

Never run templ generate while datapages watch runs

Running templ generate interrupts the development server. datapages watch runs templ in watch mode, which reads application template strings from files in the temporary directory. A separate templ generate deletes those files when it exits. The server cannot render again until the next .templ change recreates them.

Check before generating. datapages watch keeps one lock file per module fresh in the datapages-watch directory under the system temporary directory ($TMPDIR on macOS, /tmp on Linux, %TEMP% on Windows). A .lock file written less than 10 seconds ago means a watch is running. The file contains its PID, module directory, and development server host:

sh
ls -lt "${TMPDIR:-/tmp}/datapages-watch" # inspect lock modification times
pgrep -f "datapages watch"               # POSIX process check

The watcher regenerates changed files. Wait for it. To generate manually, stop the watcher first and restart it afterward.

The restriction also applies to commands that invoke templ generate, including wrapper targets in make or Mage.

To restore rendering, save a .templ file or restart the watcher.

Rules

  • Never edit a _gen.go file, anything under datapagesgen/, or a file with a DO NOT EDIT header. Change the source and regenerate.
  • Never hardcode an app-internal URL. href.PageX() for links, action.PageX.Y.POST() for page actions and action.App.Y.POST() for app actions.
  • Never write JavaScript for application logic. Logic is Go on the server, the client is Datastar attributes. JS only for browser APIs Datastar cannot reach, such as the clipboard.
  • Never open an SSE stream, set a CSRF header, add the Datastar script or register a service worker by hand. Datapages does all four.
  • Submit <form> elements through Datastar actions. Browser form submissions do not carry the CSRF token; see datapages-templates.
  • Do not put build-constrained files in the app package. The generator reads its pages, actions and events for the host platform, so a platform-specific declaration can disappear from generated code elsewhere.
  • Prefer one HTML fragment that carries its own context over many small patches or over signal updates. The server is the source of truth, signals hold transient client state.

Security

Datapages routes the request, hands the handler its session and escapes what Templ and the href, action and subject helpers write. The rest is on the application code:

  • Authorization. The session says who the visitor is, never what they may see or do. Return datapages.ErrForbidden for authorization errors, wrapped or bare. The error message is logged.
  • Values in Datastar attributes. The browser decodes the HTML escaping before the expression is parsed. Encode with json.Marshal, never with fmt.Sprintf("'%s'", v). See datapages-templates.
  • templ.Raw. Writes markup verbatim. Pass only markup the server built.
  • Hand-built URLs and subjects. href.PageX() and a datapages.Subject field escape their values. A string you concatenate does not.
  • Offline snapshots. pageCache.Set stores a page body in the browser's cache. It survives a sign-out until a handler clears it. Call ClearAll() on sign-in and sign-out. See datapages-offline.

A value Templ interpolates into text or into an attribute is already escaped. Escaping it again shows the escape sequence to the visitor.

SECURITY.md in the Datapages repository carries the full list, including what belongs to the deployment.

Show full SKILL.md (313 more words)Show less

Naming

The parser reads names and doc comments. Both decide behaviour.

kindnamedoc comment
pagePage + uppercase + alnum// PageX is /route
actionPOST/PUT/PATCH/DELETE/QUERY + uppercase + alnum// POSTX is /route
eventEvent + uppercase + alnum// EventX is "subject.name"
event handlerOn + the event name after Event: OnFoo for EventFoonone
stream hookStreamOpen, StreamClosenone
assetsany embed.FS variable// StaticFS is /static/

Do not use underscores or a lowercase letter after the prefix. The word is is required. Quote event subjects but not routes. If a route comment has more text, add a blank // line after its first line.

PageIndex, the page for /, is required. No other page may use /. A page struct declares App *App and no other named field. It may also embed types. Page methods use value receivers. App methods such as Head, RecoverError and app actions use *App.

The generator matches handler parameters and return values by type, not by position. Parameter names are unrestricted except for stateID. Declare only the values that the handler needs.

Testing

The generated server implements http.Handler. Test it by sending requests with httptest. Set Datastar-Request: true for a Datastar action. For a stateful tab, copy the Datapages-Instance value from the page response to its action and stream requests. Assert the HTTP status and returned HTML or SSE events. A successful go build ./... alone does not test request behavior.

Task skills

skillread it when
datapages-architecturea new app, or a feature whose constructs are not decided
datapages-pagespages, routes, path and query parameters, error pages, <head>
datapages-actionsPOST/PUT/PATCH/DELETE/QUERY handlers, signals, SSE, errors
datapages-eventsevents, subjects, dispatchers, On handlers, stream hooks
datapages-stateper-tab state, state IDs and state-scoped events
datapages-sessionsauthentication, session data, CSRF
datapages-offlineoffline pages, cached shims, the service worker
datapages-serverthe server entry point, options, broker, static assets
datapages-templates.templ files, href and action helpers, Templ pitfalls
datastardata-* attributes and @get/@post actions

© romshark, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in internal/generator/agentdocs/data/skills/datapages of romshark/datapages.

Open the folder on GitHubat commit 87d5a44

Compare with similar skills

Datapages next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Datapages compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Datapages this skillromshark/datapages113—~1.9kAutomated safety check: PassMIT
Add Redis Command to go-redisredis/go-redis22k—~1.4kAutomated safety check: PassBSD-2-Clause
Go Pedantrychromedp/chromedp13k—~3.7kAutomated safety check: PassMIT
Fory Releaseapache/fory4.6k—~2.9kAutomated safety check: PassApache-2.0
AO Desktop App LauncherOrchestratorInc/agent-orchestrator13k—~2.4kAutomated safety check: PassApache-2.0
Go-Redis Release Preparationredis/go-redis22k—~1.1kAutomated safety check: PassBSD-2-Clause

Similar skills

  • Official

    Walks through adding a new Redis or Redis module command to the go-redis client, from fetching the spec and docs to the type, interface wiring, parsing and tests.

    22k GitHub stars~1.4k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Go Pedantry

    chromedp/chromedp

    This skill should be used when the user is writing Go code and needs guidance on Go-specific pedantry: error wrapping with fmt.Errorf and %w, interface design (accept interfaces return structs)…

    13k GitHub stars~3.7k tokensUpdated 2 days ago
    DevelopmentAuto-check passed
  • Fory Release

    apache/fory

    Prepare an Apache Fory release candidate from a clean release branch, including the version bump, RC tag, JVM staging, ASF source artifacts, SVN upload, and vote email.

    4.6k GitHub stars~2.9k tokensUpdated yesterday
    Auto-check passed
  • AO Desktop App Launcher

    OrchestratorInc/agent-orchestrator

    Launches, restarts and troubleshoots the real AO Electron desktop app from a checkout, with isolated or real local data and checks for stale processes.

    13k GitHub stars~2.4k tokensUpdated today
    DevelopmentAuto-check passed
  • Official

    Prepares a go-redis release locally: picks the next semver, gathers merged PRs, writes the RELEASE-NOTES entry and bumps versions, without publishing.

    22k GitHub stars~1.1k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Starts a Dozzle dev server on a port derived from the current worktree so you can test by hand in a browser, without disturbing instances started elsewhere.

    15k GitHub stars~747 tokensUpdated today
    DevelopmentAuto-check passed

More from romshark/datapages

All 15 skills in this repo
  • Datapages Events

    romshark/datapages

    Datapages real-time events: event types and subjects, dispatchers, On handlers, per-user and signal-bound subject fields, and the StreamOpen and StreamClose hooks.

    113 GitHub stars~1.4k tokensUpdated today
    Auto-check passed
  • Datapages Sessions

    romshark/datapages

    Add Datapages authentication: define and read the Session type, open and close sessions, configure CSRF protection and choose a session manager.

    113 GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Datapages State

    romshark/datapages

    Add per-tab Datapages State[T], initialize and use it in handlers, dispatch state-scoped events, and configure the live instance limit.

    113 GitHub stars~806 tokensUpdated today
    Auto-check passed
  • Review Criteria

    romshark/datapages

    Classify Datapages findings by reach and severity and write review-.md reports.

    113 GitHub stars~1.2k tokensUpdated today
    Auto-check passed
  • Git Commits

    romshark/datapages

    Write Datapages commit messages, including the breaking-change marker and the BREAKING block.

    113 GitHub stars~960 tokensUpdated today
    Auto-check passed
  • Datapages Actions

    romshark/datapages

    Write Datapages action handlers (POST, PUT, PATCH, DELETE, QUERY): parameters, return values, Datastar signals, SSE patching, HTTP error status codes and the RecoverError hook.

    113 GitHub stars~1.5k tokensUpdated today
    Auto-check passed

Works with

Questions about Datapages

What does Datapages do?

Apply the Datapages framework rules, build loop and naming conventions, and select the relevant task skill. Datapages is an agent skill from romshark/datapages. Apply the Datapages framework rules, build loop and naming conventions, and select the relevant task skill.

When should I use Datapages?

Datapages fits situations like: work in a Datapages app package; server entry point.

How do I install Datapages in Claude Code?

Run `npx skills add romshark/datapages --skill datapages -a claude-code`. Or copy the skill folder (internal/generator/agentdocs/data/skills/datapages in romshark/datapages) into .claude/skills/datapages in your project. Claude Code loads it when a task matches its description.

How do I install Datapages in Codex?

Run `npx skills add romshark/datapages --skill datapages -a codex`. Or copy the skill folder (internal/generator/agentdocs/data/skills/datapages in romshark/datapages) into .agents/skills/datapages in your project. Codex loads it when a task matches its description.

Can I use Datapages in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add romshark/datapages --skill datapages -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/datapages, .gemini/skills/datapages, .github/skills/datapages and .opencode/skills/datapages in your project.

What does Datapages need to run?

Going by SKILL.md and its folder, Datapages needs the command-line tools its instructions call (go).

Does Datapages access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Datapages safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Datapages use?

Datapages is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Datapages use?

About 1.9k tokens (SKILL.md is roughly 7.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Datapages?

Skills that share tags, products or a category with Datapages: Add Redis Command to go-redis (redis/go-redis, 22k stars), Go Pedantry (chromedp/chromedp, 13k stars), Fory Release (apache/fory, 4.6k stars) and AO Desktop App Launcher (OrchestratorInc/agent-orchestrator, 13k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Datapages?

romshark (a GitHub user) maintains it in romshark/datapages, which has 113 GitHub stars. The repository holds 15 skills in this directory. The repository was last updated on October 7, 2026.

Source: romshark/datapages on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.