web-archeologist
Trace any clause, element, algorithm, or GitHub issue/PR in Web Standards (WHATWG, W3C, WICG, IETF) back to its historical origins.
Best use case
web-archeologist is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Trace any clause, element, algorithm, or GitHub issue/PR in Web Standards (WHATWG, W3C, WICG, IETF) back to its historical origins.
Teams using web-archeologist should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
How web-archeologist Compares
| Feature / Agent | web-archeologist | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Trace any clause, element, algorithm, or GitHub issue/PR in Web Standards (WHATWG, W3C, WICG, IETF) back to its historical origins.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Agent Skill: Web Standards Archeologist (Paper Trail)
This skill enables the agent to trace any clause, element, algorithm, or GitHub issue/PR in Web Standards (WHATWG, W3C, WICG, IETF) back to its historical origins.
## 1. Cross-Spec Discovery (The "Map")
Before cloning repositories, use these tools to find the canonical definition and its impact across the web platform.
### A. Finding the Canonical Definition (ReSpec Xref)
If you only have a term (e.g., "fetch timing info") but no URL, use the ReSpec Xref API:
```bash
# Search for a term across all known specifications
curl -s -X POST "https://respec.org/xref" \
-H "Content-Type: application/json" \
-d '{"keys": [{"term": "fetch timing info"}]}' | jq '.result[][1][0].uri'
```
### B. Finding All References (WebDex)
To see which other specs depend on a definition, use WebDex (by @dontcallmedom). This helps identify the "Why" by seeing who *consumes* the logic:
- **Tool**: `http://dontcallmedom.github.io/webdex/`
- **Manual Search**: Search the term in WebDex to find "References" and "Definitions".
### C. Universal Search (WebSpec Index)
For a comprehensive search across all modern and historical web specifications:
- **CLI Repository**: [jnjaeschke/webspec-index](https://github.com/jnjaeschke/webspec-index)
- **Usage**: Install with `cargo binstall webspec-index`. This tool provides full-text search, cross-reference tracking, and graph traversal across HTML, DOM, URL, CSS, ECMAScript, and 70+ other specifications. Use this to find where terms are defined if ReSpec Xref fails or if you need to build a cross-reference graph.
### D. MDN Web Docs (The "Explainer")
If a term is ambiguous or the spec definition is too low-level to understand the intent:
- **Search API (Recommended)**:
`curl -s "https://developer.mozilla.org/api/v1/search?q=term" | jq '.documents[0].mdn_url'`
- **Usage**: MDN often bridges the gap between the "What" (spec) and the "How" (usage). Use it to identify which specification is the current "canonical" one for a feature, as it often links directly to the normative spec sections.
- **Disambiguation**: If Xref returns multiple results (e.g., for "Image"), MDN can help you identify if the user is likely referring to the `HTMLImageElement`, a CSS `<image>` type, or a Canvas 2D image source.
### E. The Explainer (The "Intent")
Before diving into spec prose, always look for the **Explainer**:
- **Source**: Search the "Initial Issue" or the "Landing PR" for links to `explainer.md` or a dedicated repository (often in `WICG/`).
- **Priority**: Treat the Explainer as the highest-signal source for "Why" a feature exists, its constraints, and the alternatives considered.
- **Search Tip**: `site:github.com "WICG" "term" "explainer"`
## 2. Repository Mapping & Caching
Always use `~/.gemini/cache/specs` for local clones.
### Mapping Table:
| Domain | GitHub Repository |
| :--- | :--- |
| `html.spec.whatwg.org` | `whatwg/html` (File: `source`) |
| `dom.spec.whatwg.org` | `whatwg/dom` (File: `dom.bs`) |
| `fetch.spec.whatwg.org` | `whatwg/fetch` (File: `fetch.bs`) |
| `*.spec.whatwg.org` | `whatwg/<name>` (File: `<name>.bs`) |
| `drafts.csswg.org` | `w3c/csswg-drafts` (Search `**/*.bs`) |
| `httpwg.org` | `httpwg/http-extensions` |
| `wicg.github.io` | `WICG/<name>` |
| `source.chromium.org` | `chromium/chromium` |
| `webkit.org` | `WebKit/WebKit` |
| `searchfox.org` | `mozilla/gecko-dev` |
| `krijnhoetmer.nl/irc-logs` | `KrijnHoetmer/irc-logs` |
**Action**: Clone with `--depth 1000`. Use `git fetch --unshallow` if history is cut off.
> **Warning**: A shallow clone (`--depth`) can lead to hallucinations where the oldest commit in the shallow history is incorrectly identified as the origin of a line. Always `git fetch --unshallow` before performing a deep history trace or `git log -L`.
## 3. Locating "The Definition" (Heuristics)
Given a fragment ID (e.g., `#main-fetch`), find the exact line. **The true definition is the `<dfn>` or structural block defining the term.**
### Step 1: Find the File
`grep -rlE "<dfn[^>]*.*fragment" . --include=*.bs --include=source --include=*.md`
### Step 2: Find the Line
Search for the fragment name using these patterns in order:
1. **Strict <dfn> Attribute Match**:
- Common prefixes: `(concept-|rel-|attr-|dom-)?`
- `grep -nE '<dfn[^>]* (id|data-x)=["'\'']prefix?fragment["'\'']' <file>`
2. **Multi-line <dfn> Handling**:
- If the fragment is inside a nested tag, use `grep -nE 'data-x="fragment"'` then scan back 5 lines with `sed` to find the opening `<dfn`.
3. **CSS Property**: `grep -nE "Name:\s*fragment" <file>` (Inside a `propdef` block).
### Step 3: Browser Engine Source Discovery
If given a link to `source.chromium.org`, WebKit's GitHub, or Mozilla Searchfox:
- **Chromium**: Remove the URL prefix (e.g., `source.chromium.org/chromium/chromium/src/+/main:`) to isolate the file path.
- **WebKit**: Remove the URL prefix (e.g., `github.com/WebKit/WebKit/blob/main/`) to isolate the file path.
- **Mozilla (Gecko)**: Remove the URL prefix (e.g., `searchfox.org/mozilla-central/source/`) to isolate the file path.
- **Function Search**: If searching for a symbol name (e.g., `FetchManager::Loader::Start`), use `grep -rn "SymbolName" .` to find the implementation.
## 4. History Tracing Strategies
... (Strategies omitted for brevity) ...
## 5. Tracing Informal Discussions (IRC/Matrix)
When GitHub issues or Bugzilla reports reference a "discussion on IRC" or when you need to find the real-time debate behind a 2006-2016 era change:
### A. WHATWG IRC Logs (Historical)
- **Local Search (Recommended)**: Clone `KrijnHoetmer/irc-logs` and use `grep` to search across channels and dates.
- `grep -rEi "createContextualFragment" ~/.gemini/cache/specs/irc-logs/whatwg`
- **Online Archive**: [krijnhoetmer.nl/irc-logs/](https://krijnhoetmer.nl/irc-logs/)
- **Search Tip**: If local search is unavailable, use Google with `site:krijnhoetmer.nl/irc-logs/whatwg "term"`.
### B. Modern WHATWG Logs (Matrix)
- **Archive**: [matrixlogs.bakkot.com/irc-whatwg/](https://matrixlogs.bakkot.com/irc-whatwg/)
- **Usage**: Use this for more recent discussions (post-2018) that happened in the #whatwg channel, now bridged to Matrix.
## 8. Spec Annotated Call Graph Construction
Use this protocol to build a tree of callers and callees for a specific algorithm or concept, annotating the relationships with spec links and rationale.
### A. Finding Callees (Internal Dependencies)
1. **Locate the Definition Block**: Use the heuristics in Section 3 to find the `<div algorithm>` or structural block.
2. **Scan for References**: Identify all `<a>` tags or terms in `[= ... =]` or `{{ ... }}` brackets within the block.
3. **Resolve Specs**: For each reference, determine if it is internal (same file) or external (use ReSpec Xref to find the source spec).
4. **Describe Relationship**: Note how the callee is used (e.g., "Invoked to validate the origin", "Passed as an argument to initialize the fetch params").
### B. Finding Callers (Incoming Dependencies)
1. **Internal Callers**: `grep` the current specification for the term's `id` or `lt` (link text).
2. **External Callers**: Use **WebDex** (`http://dontcallmedom.github.io/webdex/`) to find which other specifications reference this definition.
3. **Rationale**: Analyze the calling context to describe *why* this spec is invoking the algorithm.
### C. Output Format (The Tree)
Present the graph as a nested Markdown list with the following structure:
- `Algorithm Name` [Spec Link] - "Short description of the algorithm's purpose."
- **Callees**:
- `Child Algorithm` [Spec Link] - "Relationship: [How it's used]"
- **Callers**:
- `Parent Algorithm` [Spec Link] - "Relationship: [Why it calls this]"
**Example**:
- `Main Fetch` [fetch/#main-fetch] - "The entry point for all network requests."
- **Callees**:
- `HTTP-network-or-cache fetch` [fetch/#http-network-or-cache-fetch] - "Relationship: Invoked for HTTP(S) schemes."
- **Callers**:
- `HTML Navigation` [html/#navigate] - "Relationship: Used to fetch the document resource."Related Skills
swe-cli-skills
Senior engineer CLI expertise for AI agents — workflows, safety guardrails, gotchas, and anti-patterns across cloud, IaC, containers, databases, dev tools, and platforms
PicoClaw Fleet
Orchestrate a fleet of remote PicoClaw workers over SSH for fast, ephemeral one-shot tasks.
VibeCollab — Setup Instructions for AI Assistants
You are helping a user set up VibeCollab in their project.
raycast-extension-docs
Guidance for building, debugging, and publishing Raycast extensions using the Raycast documentation set. Use when Codex needs to create or modify Raycast extensions (React/TypeScript/Node), consult Raycast API reference or UI components, build AI extensions, handle manifest/lifecycle/preferences, troubleshoot issues, or prepare/publish extensions to the Raycast Store or Teams.
evomap
Connect to the EvoMap collaborative evolution marketplace. Publish Gene+Capsule bundles, fetch promoted assets, claim bounty tasks, register as a worker, create and express recipes, collaborate in sessions, bid on bounties, resolve disputes, and earn credits via the GEP-A2A protocol. Use when the user mentions EvoMap, evolution assets, A2A protocol, capsule publishing, agent marketplace, worker pool, recipe, organism, session collaboration, or service marketplace.
maestro
Intelligent skill knowledge gateway. Routes tasks to the right knowledge without loading all skills into context. MUST be consulted before any coding task — call the search_skills MCP tool to retrieve relevant expertise from 100+ indexed skills covering Swift, SwiftUI, concurrency, testing, architecture, performance, and security.
opentui
Comprehensive OpenTUI skill for building terminal user interfaces. Covers the core imperative API, React reconciler, and Solid reconciler. Use for any TUI development task including components, layout, keyboard handling, animations, and testing.
calm-ui
Apply a restrained, Swiss/Japanese/Scandinavian/German-influenced product design system when building or refining UI in React, Next.js, TypeScript, and shadcn/ui. Use when the user asks to build, refine, critique, redesign, or review a page, screen, component, form, table, dashboard, layout, or other frontend interface, especially in projects using shadcn/ui. Do not use for marketing sites, landing pages, non-UI work, or requests for bold, playful, maximalist, or otherwise expressive aesthetics.
solid
Apply SOLID principles to write flexible, maintainable, and testable code. Use when designing classes, interfaces, and module boundaries. Covers Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, and Dependency Inversion with practical TypeScript examples and detection heuristics.
netops-asset-manager
Manage IT infrastructure assets (routers, switches, servers, GPU clusters) through a Go + Vue 3 platform with real-time health probing, SSH remote control, configuration backup, bulk import, network topology visualization, and PM2 process management. Supports H3C, Huawei, Cisco, MikroTik, Ruijie, DCN, and Linux. Use when the user asks about IT asset management, network device operations, infrastructure monitoring, SSH device control, or development on this Go + Vue 3 platform.
Goal: Build an LLM-based RAG App
Here is the MVP Implementation Plan.
You are a professional Landing page designer who is very friendly and supportive.
Your task is to guide a beginner through planning and designing a landing page or personal portfolio.