Agent skill

Datapages Pages

by romshark in romshark/datapages

Add or change a Datapages page: route doc comments, GET return values, path and query parameters, custom error pages, the global head and sharing handlers across pages by embedding.

MITAuto-check passedAI & LLM Engineering

Install Datapages Pages

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

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

GitHub CLI
$ gh skill install romshark/datapages datapages-pages --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-pages .claude/skills/datapages-pages && 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-pages
GitHub stars
113
Token cost
~1.5k tokens
SKILL.md length
705 words
Files
1
Skills in repo
15
Repo updated
First seen
Licence
MIT

At a glance

Add or change a Datapages page: route doc comments, GET return values, path and query parameters, custom error pages, the global head and sharing handlers across pages by embedding.

  • Tasks that involve Embeddings
  • SKILL.md covers GET parameters, GET return values, Path variables and Query parameters, plus 3 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Datapages Pages is an agent skill from romshark/datapages. Add or change a Datapages page: route doc comments, GET return values, path and query parameters, custom error pages, the global head and sharing handlers across pages by embedding.

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

It sits in AI & LLM Engineering, covering Embeddings. The repository describes itself as: A Datastar Go web frontend framework. The licence is MIT.

When your agent uses it

  • Tasks that involve Embeddings

Example prompts

  • “/datapages-pages”

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

    No scripts in the folder and no shell commands in SKILL.md (its code samples are 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 Pages loads about 1.5k tokens when it runs. Until then it costs about 49 tokens; SKILL.md has 705 words of instructions outside code blocks.

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

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). 705 words, ~1,501 tokens.

Download SKILL.mdSave it as .claude/skills/datapages-pages/SKILL.md (or your agent's skills folder).
name
datapages-pages
description
Add or change a Datapages page: route doc comments, GET return values, path and query parameters, custom error pages, the global head and sharing handlers across pages by embedding.

Pages

Read datapages first for the build loop, hard rules and naming conventions.

Define one struct, one route doc comment and one GET method for each page. PageIndex for / is required. App *App is the only named field a page may declare. Put dependencies on App.

go
// PageIndex is /
type PageIndex struct{ App *App }

func (PageIndex) GET(r *http.Request) (body datapages.Component, err error) {
	return indexPage(), nil
}

Routes use net/http.ServeMux patterns. /item/{id} captures one segment. /{path...} captures the remaining path. /{$} matches only that path. Datapages serves a page's SSE stream below _$. Do not define a route that claims that path. A page whose route ends in {$} or {name...} serves only GET: it cannot have actions or an SSE stream. Leave out {$} to give a page actions or a stream: the page keeps its URL.

If a route comment has a description, separate it from the route with a blank // line:

go
// PageItem is /item/{id}
//
// Shows one item.

GET parameters

r *http.Request is required. A GET may also take Session, Path, Query, Signals, datapages.PageCacheWriter and dispatchers. It cannot take datapages.SSE, datapages.State[T] or stateID. See datapages-actions for the parameter types and datapages-offline for pageCache.

GET return values

(body datapages.Component, err error) is the minimum. Add what you need, matched by type:

typeeffect
datapages.Componentthe body
datapages.Headextra <head> content for this page
datapages.Redirect{URL, Status}, sent instead of the body
datapages.NewSession[Data]opens a session
datapages.CloseSessionends the session
datapages.EnableBackgroundStreamingkeep the stream open while the tab is hidden; only a page with a stream may return it
datapages.DisableRefreshAfterHiddenno refresh when the tab is shown again; only a page with a stream may return it
errorreports an error

Path variables

go
// PageItem is /item/{id}
func (PageItem) GET(
	r *http.Request,
	path datapages.Path[struct {
		ID string `path:"id"`
	}],
) (body datapages.Component, err error) {
	return itemPage(path.Values.ID), nil
}

The path tag must match the {...} name in the route exactly.

Query parameters

go
query datapages.Query[struct {
	Term  string `query:"t"`
	Limit int    `query:"l"`
}]

Read values from query.Values. A reflectsignal:"term" tag binds a query field to a Datastar signal. The query parameter sets the initial signal value. Changing the signal rewrites the browser URL. Each segment of the period-separated path must start with a lowercase letter or underscore. Later characters may be letters, digits or underscores. A double underscore is invalid.

A signal change rewrites or removes only its own query parameter. All other parameters remain, including query fields without reflectsignal.

datapages gen rejects duplicate reflectsignal values. Both fields would emit the same data-signals:term attribute, and an HTML parser keeps only the first attribute.

A reflected field must be a basic type or implement encoding.TextMarshaler. A type that only implements encoding.TextUnmarshaler is rejected: it has no text form to seed the signal with.

It also rejects a JSON type mismatch between a query field and its signal. The checked types are number, boolean and string. For example, reflecting a string query field into a bool signal sets $flag to "true". The next action sends {"flag":"true"}, which signal decoding rejects with 400.

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

Special pages

PageError404, PageError500 and PageOffline are reserved page names. All three are optional. Datapages serves defaults when they are absent.

PageError404 renders with status 404 for a URL that no route matches and for a page load whose handler returns datapages.ErrNotFound. PageError500 renders with status 500 for a page load whose handler panics or returns an error without a sentinel.

go
// PageError404 is /not-found
type PageError404 struct{ App *App }

func (PageError404) GET(r *http.Request) (datapages.Component, error) {
	return notFoundPage(), nil
}

PageError500 and PageOffline have the same form and each needs a GET method. Both render with a zero Session. PageOffline is the service worker fallback; see datapages-offline.

Neither may return newSession or closeSession because the same GET serves the page route and its error path. Both may accept a session parameter, which an error page can use to render the document.

Global head

go
func (*App) Head(r *http.Request, session Session) datapages.Head {
	return globalHead()
}

session is optional. It applies to every page, so a per-page head return value only adds to it.

Sharing handlers

To share a GET, stream hook or event handler, define it on a type without the Page prefix and embed that type in each page. The embedded type is not a page and has no route. It needs the same App *App field. Its handlers use the route of each page that embeds it.

Do not share an action by embedding it. Its doc comment defines one absolute route, so embedding it in a second page causes a route conflict. Put a shared action on *App, or define a separate action for each page.

go
type Base struct{ App *App }

func (Base) OnMessageSent(event EventMessageSent, sse datapages.SSE) error {
	return sse.PatchElement(notification())
}

// PageChat is /chat
type PageChat struct {
	App *App
	Base
}

A method declared on a page replaces the embedded method only for that page. The replacement can call p.Base.OnMessageSent(event, sse) to wrap the embedded method.

© 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-pages of romshark/datapages.

Open the folder on GitHubat commit 87d5a44

Compare with similar skills

Datapages Pages 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 Pages compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Datapages Pages this skillromshark/datapages113—~1.5kAutomated safety check: PassMIT
Chroma Vector DatabaseOrchestra-Research/AI-Research-SKILLs13k7 repos~2.3kAutomated safety check: PassMIT
SageMaker Serving Image Selectionhuggingface/skills11k1 repos~4.6kAutomated safety check: PassApache-2.0
Codebase Managementgiancarloerra/SocratiCode3.3k1 repos~1.8kAutomated safety check: PassAGPL-3.0
CLIP Image-Text MatchingOrchestra-Research/AI-Research-SKILLs13k7 repos~1.7kAutomated safety check: PassMIT
Sentence-Transformers Training Routerhuggingface/skills11k1 repos~2.6kAutomated safety check: PassApache-2.0

Similar skills

  • Chroma Vector Database

    Orchestra-Research/AI-Research-SKILLs

    Shows how to store documents and embeddings in Chroma, query them by similarity with metadata filters, and persist them to disk for RAG and semantic search projects.

    13k GitHub starsUsed in 7 repos~2.3k tokens
    AI & LLM EngineeringAuto-check passed
  • Official

    Chooses the right serving container and current image URI for deploying a Hugging Face model to a SageMaker endpoint, preferring Hugging Face images over generic ones.

    11k GitHub starsUsed in 1 repo~4.6k tokens
    AI & LLM EngineeringAuto-check passed
  • Codebase Management

    giancarloerra/SocratiCode

    Set up, index, and manage SocratiCode codebase indexing. An agent skill from giancarloerra/SocratiCode.

    3.3k GitHub starsUsed in 1 repo~1.8k tokens
    AI & LLM EngineeringAuto-check passed
  • CLIP Image-Text Matching

    Orchestra-Research/AI-Research-SKILLs

    Explains OpenAI's CLIP model for zero-shot image classification, image-text similarity, semantic image search and content moderation, with install steps and code patterns.

    13k GitHub starsUsed in 7 repos~1.7k tokens
    AI & LLM EngineeringAuto-check passed
  • Official

    Routes a sentence-transformers training task to the right model type and required reference docs and example scripts, covering bi-encoders, rerankers, sparse and multi-vector models.

    11k GitHub starsUsed in 1 repo~2.6k tokens
    AI & LLM EngineeringAuto-check passed
  • Mashup Mods

    rehan-remade/universal-modder

    Build cross-game mashups and total conversions, the "Minecraft inside Elden Ring" or "skateboarding in MW2" kind.

    5.8k GitHub stars~3.3k tokensUpdated today
    AI & LLM EngineeringAuto-check passed

More from romshark/datapages

All 15 skills in this repo
  • Datapages

    romshark/datapages

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

    113 GitHub stars~1.9k tokensUpdated 2 days ago
    Auto-check passed
  • 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 2 days ago
    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 2 days ago
    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 2 days ago
    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 2 days ago
    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 2 days ago
    Auto-check passed

Questions about Datapages Pages

What does Datapages Pages do?

Add or change a Datapages page: route doc comments, GET return values, path and query parameters, custom error pages, the global head and sharing handlers across pages by embedding. Datapages Pages is an agent skill from romshark/datapages. Add or change a Datapages page: route doc comments, GET return values, path and query parameters, custom error pages, the global head and sharing handlers across pages by embedding.

When should I use Datapages Pages?

Datapages Pages fits situations like: tasks that involve Embeddings.

How do I install Datapages Pages in Claude Code?

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

How do I install Datapages Pages in Codex?

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

Can I use Datapages Pages 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-pages -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-pages, .gemini/skills/datapages-pages, .github/skills/datapages-pages and .opencode/skills/datapages-pages in your project.

What does Datapages Pages need to run?

SKILL.md names no scripts, command-line tools or credentials: Datapages Pages is instructions for the agent only.

Does Datapages Pages 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 Pages 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 Pages use?

Datapages Pages 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 Pages use?

About 1.5k tokens (SKILL.md is roughly 6k 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 Pages?

Skills that share tags, products or a category with Datapages Pages: Chroma Vector Database (Orchestra-Research/AI-Research-SKILLs, 13k stars), SageMaker Serving Image Selection (huggingface/skills, 11k stars), Codebase Management (giancarloerra/SocratiCode, 3.3k stars) and CLIP Image-Text Matching (Orchestra-Research/AI-Research-SKILLs, 13k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Datapages Pages?

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.