Agent skill

Whatwg URL Specs

by the-moisrex in the-moisrex/webpp

Debug Web++ URL/URI behavior against the authoritative WHATWG URL Standard using the repo-local tools/whatwg-url-specs command.

MITAuto-check passed

Install Whatwg URL Specs

skills CLI
$ npx skills add the-moisrex/webpp --skill whatwg-url-specs -a claude-code

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

GitHub CLI
$ gh skill install the-moisrex/webpp whatwg-url-specs --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/the-moisrex/webpp.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/whatwg-url-specs .claude/skills/whatwg-url-specs && 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
whatwg-url-specs
GitHub stars
146
Token cost
~1.9k tokens
SKILL.md length
597 words
Files
1
Skills in repo
2
Repo updated
First seen
Licence
MIT

At a glance

Debug Web++ URL/URI behavior against the authoritative WHATWG URL Standard using the repo-local tools/whatwg-url-specs command.

  • Works in 5 steps: Reproduce: run the failing focused test… → Locate the spec part: find the… → Read the normative text: query the id of… → …
  • A URL test fails
  • SKILL.md covers Debugging workflow, Spec map (from list, depth <= 2), Queries that map to common bugs and Finding one specific step, plus 2 more sections
  • Reaches url.spec.whatwg.org

What it does

Whatwg URL Specs is an agent skill from the-moisrex/webpp. Debug Web++ URL/URI behavior against the authoritative WHATWG URL Standard using the repo-local tools/whatwg-url-specs command. Use when a URL test fails, parser/serializer/host/IDNA behavior looks wrong, or you need the exact spec section, algorithm steps, parser state, or definition behind a URI requirement.

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 C++. The repository describes itself as: C++ web framework | web development can be done with C++ as well. The licence is MIT.

When your agent uses it

  • A URL test fails
  • Parser/serializer/host/IDNA behavior looks wrong
  • You need the exact spec section
  • Algorithm steps

Example prompts

  • “/whatwg-url-specs”

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Reproduce: run the failing focused test (see the webpp-build-test skill), note the exact input/output mismatch.
  2. Locate the spec part: find the section/algorithm/state in the map below, or run
  3. Read the normative text: query the id of that section/algorithm/state (e.g. tools/whatwg-url-specs host-state),
  4. Compare step-by-step with the implementation (webpp/uri/parser/*.hpp) and the tests
  5. Treat discrepancies per the pinned-standard rule below: tests + implementation win unless the task is to update

What it can do on your machine

Read from SKILL.md and the folder at commit 66a52aa. 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 bash).

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

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • url.spec.whatwg.org

    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

Whatwg URL Specs loads about 1.9k tokens when it runs. Until then it costs about 82 tokens; SKILL.md has 597 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~82
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 the-moisrex/webpp at commit 66a52aa, republished under its MIT licence (© the-moisrex). 597 words, ~1,865 tokens.

Download SKILL.mdSave it as .claude/skills/whatwg-url-specs/SKILL.md (or your agent's skills folder).
name
whatwg-url-specs
description
Debug Web++ URL/URI behavior against the authoritative WHATWG URL Standard using the repo-local tools/whatwg-url-specs command. Use when a URL test fails, parser/serializer/host/IDNA behavior looks wrong, or you need the exact spec section, algorithm steps, parser state, or definition behind a URI requirement.

Debugging URLs with the WHATWG URL Standard

When Web++ URI behavior disagrees with expectations (failing tests/uri*_test.cpp cases, routing/normalization bugs, serializer round-trip failures), the authority is the WHATWG URL Standard. tools/whatwg-url-specs fetches, caches, and queries it so you can read the exact normative steps instead of guessing.

Debugging workflow

  1. Reproduce: run the failing focused test (see the webpp-build-test skill), note the exact input/output mismatch.
  2. Locate the spec part: find the section/algorithm/state in the map below, or run tools/whatwg-url-specs list (full tree, ~345 lines) / tools/whatwg-url-specs --algorithm list (72 algorithms).
  3. Read the normative text: query the id of that section/algorithm/state (e.g. tools/whatwg-url-specs host-state), then grep the printed Markdown for the sentence you care about. Queries never match step text — see "Finding one specific step" below.
  4. Compare step-by-step with the implementation (webpp/uri/parser/*.hpp) and the tests (tests/uri_test.cpp, tests/uri_whatwg_test.cpp, tests/uri_host_authority_test.cpp, tests/structured_uri_test.cpp).
  5. Treat discrepancies per the pinned-standard rule below: tests + implementation win unless the task is to update the pinned snapshot.

Spec map (from list, depth <= 2)

text
▪ Abstract
▪ Table of Contents
▪ Goals
▪ 1.Infrastructure
  ▪ 1.1.Writing
  ▪ 1.2.Parsers
  ▪ 1.3.Percent-encoded bytes
▪ 2.Security considerations
▪ 3.Hosts (domains and IP addresses)
  ▪ 3.1.Host representation
  ▪ 3.2.Host miscellaneous
  ▪ 3.3.IDNA
  ▪ 3.4.Host writing
  ▪ 3.5.Host parsing
  ▪ 3.6.Host serializing
  ▪ 3.7.Host equivalence
▪ 4.URLs
  ▪ 4.1.URL representation
  ▪ 4.2.URL miscellaneous
  ▪ 4.3.URL writing
  ▪ 4.4.URL parsing
  ▪ 4.5.URL serializing
  ▪ 4.6.URL equivalence
  ▪ 4.7.Origin
  ▪ 4.8.URL rendering
    ▪ 4.8.1.Simplify non-human-readable or irrelevant components
    ▪ 4.8.2.Elision
    ▪ 4.8.3.Internationalization and special characters
▪ 5.application/x-www-form-urlencoded
  ▪ 5.1.application/x-www-form-urlencodedparsing
  ▪ 5.2.application/x-www-form-urlencodedserializing
  ▪ 5.3.Hooks
▪ 6.API
  ▪ 6.1.URL class
  ▪ 6.2.URLSearchParams class
  ▪ 6.3.URL APIs elsewhere
▪ Acknowledgments
▪ Intellectual property rights
▪ Index
  ▪ Terms defined by this specification
  ▪ Terms defined by reference
▪ References
  ▪ Normative References
  ▪ Non-Normative References
▪ IDL Index

Queries that map to common bugs

All verified against the cached spec (exit 0):

Symptom areaQuery
Whole-parser behaviorurl-parsing, basic URL parser, URL parser
Wrong scheme/relative handlingpath-state, cannot-be-a-base-url-path-state
Host/IDNA/domain issueshost parsing, IDNA, domain parser ToASCII, opaque-host parser
IP literal handlingIPv4 parser, IPv6 parser
Serialization/normalizationURL writing, origin
Percent-encodingpercent-encoded bytes
Form/query encodingapplication/x-www-form-urlencoded, urlencoded parser
Path shortening (.., dot segments)shorten a url

Parser machine states are indexed definitions too, e.g. scheme-start-state, authority-state, host-state, port-state, file-state, path-start-state, query-state, fragment-state — query any of them by id.

Useful flags
sh
tools/whatwg-url-specs list                # full section/definition/algorithm tree
tools/whatwg-url-specs --algorithm list    # algorithms only
tools/whatwg-url-specs --algorithm host parser   # restrict a query to algorithms
tools/whatwg-url-specs --html url-parsing # raw HTML instead of Markdown
tools/whatwg-url-specs --verbose ...       # cache/parse progress on stderr
tools/whatwg-url-specs --clean-cache       # drop cached spec (fresh download next run)

Finding one specific step

You cannot quote a normative sentence as a query — queries never match step text (see Matching rules). Recipes:

sh
# 1. phrase -> containing id (hyphenate/lowercase first; grep `list` when unsure)
tools/whatwg-url-specs list | grep -i "host-state"
tools/whatwg-url-specs host-state                 # dumps that state's steps

# 2. or grep a section dump (`url-parsing` contains nested state steps too);
#    strip backticks so a verbatim sentence matches the Markdown output
tools/whatwg-url-specs url-parsing | tr -d '\`' | grep -n "If url is special and buffer is the empty string"

# 3. if the sentence is not in the dumped section, grep the likely one instead
#    (here: the step lives in the serializer, not in `url-parsing`)
tools/whatwg-url-specs url-serializer | grep -n "fragment is non-null"

Grep caveats: the Markdown wraps spec concepts in backticks (`url`), so strip them with tr -d '\`' before grepping a verbatim sentence; and the spec uses a curly apostrophe (’), so grep a phrase without an apostrophe (or match ’ directly).

Don'tDo
tools/whatwg-url-specs url-parsing "If url is special and buffer is the empty string" (sentence silently ignored)tools/whatwg-url-specs url-parsing | tr -d '\`' | grep -n "If url is special and buffer is the empty string"
tools/whatwg-url-specs url-parsing "If url's fragment is non-null" (ignored, and the step is not in this section)tools/whatwg-url-specs url-serializer | grep -n "fragment is non-null"
tools/whatwg-url-specs "host state" (spaces don't map to hyphens; no match)tools/whatwg-url-specs host-state
Show full SKILL.md (214 more words)Show less

Matching rules (so queries return what you expect)

  • Queries match ids, titles, and algorithm names only — never step or sentence text. A quoted normative sentence ("If url is special and buffer is the empty string") matches nothing; use the recipes above instead.
  • Normalize phrases to ids yourself: lowercase and hyphens (host state → host-state); when unsure, tools/whatwg-url-specs list | grep -i <hyphenated-phrase> finds the id.
  • https://url.spec.whatwg.org/#some-id selects that exact id.
  • Plain queries match case-insensitively against ids first, then titles; exact beats fuzzy, so prefer exact ids from list (path-state, not path state).
  • Multiple queries in one run are merged and de-duplicated, order preserved. A query that matches nothing contributes nothing and the run still exits 0 — only an all-miss run errors. Confirm the output actually contains the step you wanted (or run one query at a time) instead of trusting the exit code.
  • No query defaults to the url-parsing section.
  • Exit 1 + ERROR: No sections found ... on stderr = refine the query; exit 0 = found (but see the silent-miss rule above).

Pinned-standard caveat

webpp/uri/README.md pins the URL Standard to a commit snapshot (10 September 2026); this tool reads the live cached spec (https://url.spec.whatwg.org/). If live text and the pinned snapshot disagree, the pinned snapshot plus the existing tests/implementation win unless the task explicitly updates the pinned standard.

© the-moisrex, 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 .agents/skills/whatwg-url-specs of the-moisrex/webpp.

Open the folder on GitHubat commit 66a52aa

Compare with similar skills

Whatwg URL Specs 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.

Whatwg URL Specs compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Whatwg URL Specs this skillthe-moisrex/webpp146—~1.9kAutomated safety check: PassMIT
Paddle BuildPaddlePaddle/Paddle24k—~1kAutomated safety check: PassApache-2.0
Fory Releaseapache/fory4.6k—~2.9kAutomated safety check: PassApache-2.0
ONNX Runtime Shape Inference Safety Auditmicrosoft/onnxruntime22k—~3.3kAutomated safety check: PassMIT
Code Audit3stoneBrother/code-audit8921 repos~2.7kAutomated safety check: PassNone
Leetcuda Tex To Readthedocsxlite-dev/LeetCUDA12k—~902Automated safety check: PassGPL-3.0

Similar skills

  • Paddle Build

    PaddlePaddle/Paddle

    A skill your agent uses when needing to compile, rebuild, or install Paddle from source after code changes.

    24k GitHub stars~1k tokensUpdated yesterday
    AI & LLM EngineeringAuto-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
  • Official

    Finds and fixes out-of-range output writes in ONNX Runtime operator shape-inference functions where a getNumOutputs guard admits too few outputs.

    22k GitHub stars~3.3k tokensUpdated today
    SecurityAuto-check passed
  • Code Audit

    3stoneBrother/code-audit

    Professional code security audit skill covering 55+ vulnerability types.

    892 GitHub starsUsed in 1 repo~2.7k tokens
    SecurityAuto-check passed
  • Leetcuda Tex To Readthedocs

    xlite-dev/LeetCUDA

    LeetCUDA 书稿 LaTeX 到 Read the Docs 站点的转换管线维护 skill(站点目录 LeetCUDA/docs/readthedocs/)。当任务涉及:改完书稿后让站点同步、改转换器 convert/、本地构建与预览 build.sh、内容核对 convert.verify、浏览器验收…

    12k GitHub stars~902 tokensUpdated yesterday
    Documents & OfficeAuto-check passed
  • Qt C++ Code Review

    x-tools-author/x-tools

    Read-only review of Qt6 C++ code that combines a deterministic lint script with six parallel analysis agents and reports only high-confidence issues.

    1.1k GitHub starsUsed in 2 repos~4.3k tokens
    DevelopmentAuto-check passed

More from the-moisrex/webpp

  • Webpp Build Test

    the-moisrex/webpp

    Configure, build, and run Web++ tests in this repo — derive test target names from tests/test.cpp, detect stale or missing focused CMake presets, build and run one test or the full suite without…

    146 GitHub stars~1.1k tokensUpdated 7 days ago
    Auto-check passed

Works with

Questions about Whatwg URL Specs

What does Whatwg URL Specs do?

Debug Web++ URL/URI behavior against the authoritative WHATWG URL Standard using the repo-local tools/whatwg-url-specs command. Whatwg URL Specs is an agent skill from the-moisrex/webpp. Debug Web++ URL/URI behavior against the authoritative WHATWG URL Standard using the repo-local tools/whatwg-url-specs command.

When should I use Whatwg URL Specs?

Whatwg URL Specs fits situations like: A URL test fails; parser/serializer/host/IDNA behavior looks wrong; you need the exact spec section; algorithm steps.

How do I install Whatwg URL Specs in Claude Code?

Run `npx skills add the-moisrex/webpp --skill whatwg-url-specs -a claude-code`. Or copy the skill folder (.agents/skills/whatwg-url-specs in the-moisrex/webpp) into .claude/skills/whatwg-url-specs in your project. Claude Code loads it when a task matches its description.

How do I install Whatwg URL Specs in Codex?

Run `npx skills add the-moisrex/webpp --skill whatwg-url-specs -a codex`. Or copy the skill folder (.agents/skills/whatwg-url-specs in the-moisrex/webpp) into .agents/skills/whatwg-url-specs in your project. Codex loads it when a task matches its description.

Can I use Whatwg URL Specs 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 the-moisrex/webpp --skill whatwg-url-specs -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/whatwg-url-specs, .gemini/skills/whatwg-url-specs, .github/skills/whatwg-url-specs and .opencode/skills/whatwg-url-specs in your project.

What does Whatwg URL Specs need to run?

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

Does Whatwg URL Specs access the network?

SKILL.md names 1 domain. In commands or code: url.spec.whatwg.org; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is Whatwg URL Specs 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 Whatwg URL Specs use?

Whatwg URL Specs 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 Whatwg URL Specs use?

About 1.9k tokens (SKILL.md is roughly 7.5k 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 Whatwg URL Specs?

Skills that share tags, products or a category with Whatwg URL Specs: Paddle Build (PaddlePaddle/Paddle, 24k stars), Fory Release (apache/fory, 4.6k stars), ONNX Runtime Shape Inference Safety Audit (microsoft/onnxruntime, 22k stars) and Code Audit (3stoneBrother/code-audit, 892 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Whatwg URL Specs?

the-moisrex (a GitHub user) maintains it in the-moisrex/webpp, which has 146 GitHub stars. The repository holds 2 skills in this directory. The repository was last updated on October 4, 2026.

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