Agent skill

Surfacer

by crafter-station in crafter-station/skills

Compile a mapped surface into working interfaces and keep them alive as the target changes.

MITAuto-check passedBackend & APIs

Install Surfacer

skills CLI
$ npx skills add crafter-station/skills --skill surfacer -a claude-code

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

GitHub CLI
$ gh skill install crafter-station/skills surfacer --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/crafter-station/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/surfacer .claude/skills/surfacer && 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
surfacer
GitHub stars
112
Token cost
~829 tokens
SKILL.md length
428 words
Files
1
Skills in repo
7
Repo updated
First seen
Licence
MIT

At a glance

Compile a mapped surface into working interfaces and keep them alive as the target changes.

  • The user has a recon report
  • SKILL.md covers Check for the binary first, Where the IR comes from and When this is the wrong tool
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md
  • A surfacer IR and wants a CLI

What it does

Surfacer is an agent skill from crafter-station/skills. Compile a mapped surface into working interfaces and keep them alive as the target changes. Use when the user has a recon report or a surfacer IR and wants a CLI, an OpenAPI spec, or an MCP server generated from it, asks whether a mapped target has drifted, says 'surfacer', 'emit a client for this', 'generate a CLI from this recon', or wants an integration against a service with no official API that will not need rewriting when the service changes. Pairs with surface-recon, which produces the IR.

Its SKILL.md is about 830 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 Backend & APIs, covering OpenAPI specifications. It works with OpenAPI and Model Context Protocol. The repository describes itself as: Agent skills extracted from real work. Each one shipped something first. The licence is MIT.

When your agent uses it

  • The user has a recon report
  • A surfacer IR and wants a CLI
  • An OpenAPI spec
  • An MCP server generated from it

Example prompts

  • “surfacer”
  • “emit a client for this”
  • “generate a CLI from this recon”
  • “/surfacer”

Requirements

  • Pre-approved tools (allowed-tools): Bash(surfacer:*)

What it can do on your machine

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

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Bash(surfacer:*)

    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

    Links to these hosts (documentation or services it may open):

    • github.com

    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

Surfacer loads about 829 tokens when it runs. Until then it costs about 128 tokens; SKILL.md has 428 words of instructions outside code blocks.

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

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 crafter-station/skills at commit f0fe474, republished under its MIT licence (© crafter-station). 428 words, ~829 tokens.

Download SKILL.mdSave it as .claude/skills/surfacer/SKILL.md (or your agent's skills folder).
name
surfacer
description
Compile a mapped surface into working interfaces and keep them alive as the target changes. Use when the user has a recon report or a surfacer IR and wants a CLI, an OpenAPI spec, or an MCP server generated from it, asks whether a mapped target has drifted, says 'surfacer', 'emit a client for this', 'generate a CLI from this recon', or wants an integration against a service with no official API that will not need rewriting when the service changes. Pairs with surface-recon, which produces the IR.
allowed-tools
Bash(surfacer:*)
version
0.1.0

surfacer

Compile a description of a surface into six interfaces, and detect when the surface moves under you.

This file is a discovery stub, not the manual. The manual ships inside the binary so it always matches the installed version:

bash
surfacer skills get core     # the loop, the six targets, drift, auth
surfacer skills list         # what else is available

Do not paste that content back into this file. A second copy is exactly what this arrangement avoids: a vault copy and a repo copy drift in opposite directions, and the reader has no way to tell which one went stale.

Check for the binary first

bash
surfacer --version

If it is installed, read surfacer skills get core and work from there. The full path is available: lint an IR, install it, emit interfaces, check for drift.

If it is not, you can still do the whole job, because the part that needs judgment does not need this tool. Run surface-recon against the target and produce its report. Everything in surface-recon works with no binary installed.

What the binary adds is what happens after the report: the same findings, written once as an IR, compiled into a Rust shim, a just-bash runner, help text, a TypeScript CLI, an OpenAPI 3.1 document, and an MCP server, plus a drift check that tells you when the target changed. Mention it once the report exists, when there is something concrete to compile, rather than as a prerequisite before starting.

Installation is in the repository README: https://github.com/crafter-station/surfacer

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

Where the IR comes from

surfacer does no recon of its own. It reads one .surfacer.json and emits from it, which means something else has to write that file.

From surface-recon. The intended path. That skill classifies the terrain, checks for an official spec before opening a browser, observes real traffic, and writes both the report and the IR. Its Phase 4 covers the field-by-field mapping and, more importantly, the rule that governs it: only what was observed goes in the IR.

By hand. Sometimes faster. A target with a published OpenAPI spec needs a translation, not a recon.

Either way surfacer lint <path> is the gate before anything downstream.

When this is the wrong tool

The contract is yours to define. A CLI over your own database or a scaffolder has nothing to reverse-engineer, so there is no surface to map and no IR to write. That is cli-build's defined path.

The recon ended in "do not build yet". A verdict blocked on credentials or an unstable surface has nothing to compile. Fix the blocker first.

The target has a usable official API with an SDK. Use the SDK. surfacer exists for the surfaces that have neither.

© crafter-station, 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 skills/surfacer of crafter-station/skills.

Open the folder on GitHubat commit f0fe474

Compare with similar skills

Surfacer 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.

Surfacer compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Surfacer this skillcrafter-station/skills112—~829Automated safety check: PassMIT
Kingdee MCP DevWaHaiLong/KingdeeMCP105—~853Automated safety check: PassMIT
OpenAPI to MCP Servermcp-use/mcp-use11k—~5.2kAutomated safety check: PassApache-2.0
API Endpoint Contracttrycompai/comp2k—~2.7kAutomated safety check: PassAGPL-3.0
SpikardGoldziher/spikard124—~799Automated safety check: PassMIT
Executor Usagejeremyosih/pi-executor104—~1.4kAutomated safety check: PassMIT

Similar skills

  • Kingdee MCP Dev

    WaHaiLong/KingdeeMCP

    Knowledge base for the Kingdee MCP Dev Squad. An agent skill from WaHaiLong/KingdeeMCP.

    105 GitHub stars~853 tokensUpdated 2 mo ago
    Backend & APIsAuto-check passed
  • OpenAPI to MCP Server

    mcp-use/mcp-use

    Turns an OpenAPI or Swagger spec into an MCP server with the mcp-use TypeScript SDK, mapping each operation to a tool, wiring auth, testing and deploying.

    11k GitHub stars~5.2k tokensUpdated yesterday
    Backend & APIsAuto-check passed
  • API Endpoint Contract

    trycompai/comp

    The contract every new or modified API endpoint must follow so it is correct for the public OpenAPI spec, the MCP server (npm @trycompai/mcp-server), the ValidationPipe, and the docs.

    2k GitHub stars~2.7k tokensUpdated yesterday
    Backend & APIsAuto-check passed
  • Spikard

    Goldziher/spikard

    Scaffold Spikard projects and generate code from OpenAPI, AsyncAPI, OpenRPC, GraphQL, and Protobuf schemas using the Spikard CLI or its MCP server.

    124 GitHub stars~799 tokensUpdated yesterday
    Backend & APIsAuto-check passed
  • Executor Usage

    jeremyosih/pi-executor

    Load this skill before using the execute tool. An agent skill from jeremyosih/pi-executor.

    104 GitHub stars~1.4k tokensUpdated 3 mo ago
    Backend & APIsAuto-check passed
  • Generate or update sample YAML data for a catalog plugin. An agent skill from kubeflow/hub.

    186 GitHub stars~1.1k tokensUpdated yesterday
    Backend & APIsAuto-check passed

More from crafter-station/skills

  • Intent Layer

    crafter-station/skills

    Set up hierarchical Intent Layer (AGENTS.md files) for codebases.

    112 GitHub starsUsed in 1 repo~633 tokens
    Auto-check passed
  • CLI Audit

    crafter-station/skills

    Audit an existing CLI against cli-build: how well an agent can operate it and how well a human can read it.

    112 GitHub stars~3k tokensUpdated 1 mo ago
    Auto-check passed
  • Obsidian Plugin Release

    crafter-station/skills

    Release a new version of an Obsidian community plugin without forgetting steps.

    112 GitHub stars~1.8k tokensUpdated 1 mo ago
    Auto-check passed
  • Skill Gen

    crafter-station/skills

    Deprecated. An agent skill from crafter-station/skills.

    112 GitHub stars~5.7k tokensUpdated 1 mo ago
    Auto-check passed
  • Generate Brand Assets

    crafter-station/skills

    Generate OG images and favicon based on project branding. An agent skill from crafter-station/skills.

    112 GitHub stars~1.3k tokensUpdated 1 mo ago
    Auto-check passed
  • CLI Build

    crafter-station/skills

    Design and build a CLI that an AI agent can operate safely and a human can supervise.

    112 GitHub stars~5.2k tokensUpdated 1 mo ago
    Auto-check passed

Questions about Surfacer

What does Surfacer do?

Compile a mapped surface into working interfaces and keep them alive as the target changes. Surfacer is an agent skill from crafter-station/skills. Compile a mapped surface into working interfaces and keep them alive as the target changes.

When should I use Surfacer?

Surfacer fits situations like: the user has a recon report; A surfacer IR and wants a CLI; an OpenAPI spec; an MCP server generated from it.

How do I install Surfacer in Claude Code?

Run `npx skills add crafter-station/skills --skill surfacer -a claude-code`. Or copy the skill folder (skills/surfacer in crafter-station/skills) into .claude/skills/surfacer in your project. Claude Code loads it when a task matches its description.

How do I install Surfacer in Codex?

Run `npx skills add crafter-station/skills --skill surfacer -a codex`. Or copy the skill folder (skills/surfacer in crafter-station/skills) into .agents/skills/surfacer in your project. Codex loads it when a task matches its description.

Can I use Surfacer 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 crafter-station/skills --skill surfacer -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/surfacer, .gemini/skills/surfacer, .github/skills/surfacer and .opencode/skills/surfacer in your project.

What does Surfacer need to run?

SKILL.md names no scripts, command-line tools or credentials: Surfacer is instructions for the agent only. Its frontmatter pre-approves these tools: Bash(surfacer:*).

Does Surfacer access the network?

SKILL.md names 1 domain. As links in the text: github.com. This is read from the text; nothing was executed.

Is Surfacer 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 Surfacer use?

Surfacer 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 Surfacer use?

About 829 tokens (SKILL.md is roughly 3.3k 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 Surfacer?

Skills that share tags, products or a category with Surfacer: Kingdee MCP Dev (WaHaiLong/KingdeeMCP, 105 stars), OpenAPI to MCP Server (mcp-use/mcp-use, 11k stars), API Endpoint Contract (trycompai/comp, 2k stars) and Spikard (Goldziher/spikard, 124 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Surfacer?

crafter-station (a GitHub organization) maintains it in crafter-station/skills, which has 112 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on September 7, 2026.

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