Agent skill

Add SDK Endpoint

by macro-inc in macro-inc/macro

Wrap a new backend endpoint in the TypeScript SDK (packages/sdk), or record it as skipped.

AGPL-3.0Auto-check: notes

Install Add SDK Endpoint

skills CLI
$ npx skills add macro-inc/macro --skill add-sdk-endpoint -a claude-code

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

GitHub CLI
$ gh skill install macro-inc/macro add-sdk-endpoint --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/macro-inc/macro.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/add-sdk-endpoint .claude/skills/add-sdk-endpoint && 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
add-sdk-endpoint
GitHub stars
4.6k
Token cost
~1k tokens
SKILL.md length
522 words
Files
1
Skills in repo
19
Repo updated
First seen
Licence
AGPL-3.0

At a glance

Wrap a new backend endpoint in the TypeScript SDK (packages/sdk), or record it as skipped.

  • Works in 2 steps: Find it → Skip or wrap?
  • Just coverage fails
  • SKILL.md covers 0. Find it, 1. Skip or wrap?, To wrap it and Never
  • Calls just and bun

What it does

Add SDK Endpoint is an agent skill from macro-inc/macro. Wrap a new backend endpoint in the TypeScript SDK (packages/sdk), or record it as skipped. Use when just coverage fails, or after adding an endpoint to a Rust service.

Its SKILL.md is about 1k 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 Rust and TypeScript. The repository describes itself as: Macro is a unified workspace for teams: email, chat, docs, tasks, agents, calls, and CRM — @-linked together with shared AI memory. The licence is AGPL-3.0.

When your agent uses it

  • Just coverage fails
  • After adding an endpoint to a Rust service

Example prompts

  • “/add-sdk-endpoint”

Requirements

  • Pre-approved tools (allowed-tools): Bash, Read, Edit, Write, Grep, Glob

Workflow steps

2 steps, taken from the step headings in SKILL.md.

  1. Find it
  2. Skip or wrap?

What it can do on your machine

Read from SKILL.md and the folder at commit 73b0244. 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
    • Read
    • Edit
    • Write
    • Grep
    • Glob

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • just
    • bun

    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

Add SDK Endpoint loads about 1k tokens when it runs. Until then it costs about 47 tokens; SKILL.md has 522 words of instructions outside code blocks.

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

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: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NotePre-approves every shell command (allowed-tools: Bash)SKILL.md
    allowed-tools: Bash, Read, Edit, Write, Grep, Glob

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 macro-inc/macro at commit 73b0244, republished under its AGPL-3.0 licence (© macro-inc). 522 words, ~1,021 tokens.

Download SKILL.mdSave it as .claude/skills/add-sdk-endpoint/SKILL.md (or your agent's skills folder).
name
add-sdk-endpoint
description
Wrap a new backend endpoint in the TypeScript SDK (packages/sdk), or record it as skipped. Use when `just coverage` fails, or after adding an endpoint to a Rust service.
allowed-tools
Bash, Read, Edit, Write, Grep, Glob

Add an SDK endpoint

Arg skip: record the endpoint as skipped instead of wrapping it. Run everything from packages/sdk.

Every generated endpoint must either have a call site under src/ or be listed in src/coverage/skipped.ts. Being in both also fails.

0. Find it

Not in generated/ yet? bun run sync-specs && bun run generate (or ask the user to run just update-generated if the Rust spec changed locally — it rebuilds apps/web).

just coverage lists UNCOVERED <service>.<endpoint>.

1. Skip or wrap?

With the skip arg, skip. Otherwise ask the user, one line per endpoint, with a short recommendation — don't decide silently.

Skip-worthy: internal plumbing (auth/session, health, infra, web-app internals, MCP, batch previews) and features so narrow that no SDK user would reach for them. Everything a user could plausibly want belongs in the SDK.

To skip: add the method name, alphabetically, to <camelService>Excluded in src/coverage/skipped.ts, then just coverage && just check. Don't wrap.

To wrap it

  1. Read the method in generated/<service>/sdk.gen.ts and its types in types.gen.ts (note path / query / body).
  2. Pick a home, and read a sibling first — entities/tasks/ is the smallest complete example, entities/documents/document.ts the richest:
    • acts on one entity → method on that class
    • create/list/search/lookup → the namespace
    • new noun → new src/entities/<noun>/ pair, registered in src/macro.ts
    • cross-entity capability → a base in src/entities/entity.ts
  3. Never take or return a raw id. Wherever the generated endpoint takes an id, the SDK takes the entity handle and reads .id off it internally; wherever it returns an id, the SDK returns a handle. If the id refers to a noun that has no entity class yet, build that entity (and its namespace) as part of this change — do not fall back to a string parameter. The one exception is a static byId, which is how handles are minted in the first place.
  4. Match the conventions:
    • static byId(client, id); detail via Lazy + protected fetch(), exposed with this.field(...) / this.mappedField(...)
    • extend MacroEntity / FavoritableEntity / PropertiedEntity, setting entityType / propertyEntityType
    • writes touching this entity's detail → this.mutate(...); others → unwrap(...)
    • every generated call goes through unwrap()
    • cursor lists → paginate() → AsyncGenerator; search → entitySearch(...)
    • camelCase + undefined on the SDK side even when the wire is snake_case/nullable
    • TSDoc every public member. No any.
  5. New service? Only when the endpoint's service isn't reachable from MacroClient yet — per service, not per entity; a new entity needs none of this. Wire the Sdk into src/utils/client.ts, a host into src/config.ts, and an entry into ACCESSORS in src/coverage/check.ts. That last one is easy to miss: coverage decides "is this called?" by grepping src/ for the literal text .<accessor>.<endpoint>(, so a service absent from ACCESSORS reports every one of its endpoints as UNCOVERED no matter how well you wrapped them. If a whole service looks uncovered, check that map before believing it.
  6. Already listed as skipped? Remove it, or coverage fails with STALE SKIP.
  7. Verify: just check && just coverage && bun run lint && bun run format.
  8. Document: README only for genuinely new user-facing capability. New webhook events come from the storage spec via src/events/types.ts — regenerate, never hand-write.
Show full SKILL.md (23 more words)Show less

Never

  • Hand-edit generated/ or specs/ — build output.
  • Accept an id where an entity handle belongs.
  • Mark something skipped just to make coverage pass.

© macro-inc, AGPL-3.0. 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 .claude/skills/add-sdk-endpoint of macro-inc/macro.

Open the folder on GitHubat commit 73b0244

Compare with similar skills

Add SDK Endpoint 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.

Add SDK Endpoint compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Add SDK Endpoint this skillmacro-inc/macro4.6k—~1kAutomated safety check: NotesAGPL-3.0
Firecrawl Page Scrape Integrationfirecrawl/firecrawl190k1 repos~944Automated safety check: PassISC
Pnpm Engineteambit/bit18k—~1.9kAutomated safety check: PassCustom licence
Build Teaql Appteaql/teaql-agent-kit2.8k—~4.6kAutomated safety check: PassMIT
Testing Changespnpm/pnpm37k—~1.1kAutomated safety check: PassMIT
jscpd Code Migration Trackerkucherenko/jscpd6.4k—~5kAutomated safety check: PassMIT

Similar skills

  • Adds Firecrawl's /scrape endpoint to application code to pull markdown, HTML, links, screenshots or structured data from a single known URL.

    190k GitHub starsUsed in 1 repo~944 tokens
    Data & AnalyticsAuto-check passed
  • Pnpm Engine

    teambit/bit

    Work on the pnpm Rust engine (@pnpm/napi, the pacquet crates) that bit install runs through.

    18k GitHub stars~1.9k tokensUpdated today
    DevelopmentAuto-check passed
  • Build Teaql App

    teaql/teaql-agent-kit

    Build or change a TeaQL application in Java, Rust, Go, Swift, Python, C/.NET, or TypeScript, including Kotlin/JVM applications that consume Java-generated libraries.

    2.8k GitHub stars~4.6k tokensUpdated 12 days ago
    MobileAuto-check passed
  • Run the tests that cover a change in the pnpm repository, in the Rust workspace (pnpm/, pnpr/) or the TypeScript CLI (pnpm11/), and recognize the cases where a scoped run passes without testing…

    37k GitHub stars~1.1k tokensUpdated today
    DevelopmentAuto-check passed
  • Measures a code port between languages or frameworks with jscpd's function-level comparison, porting tests before code and tracking what is left unmatched.

    6.4k GitHub stars~5k tokensUpdated today
    DevelopmentAuto-check passed
  • Rgsm Gui Acceptance

    mcthesw/game-save-manager

    Prepare change-specific RGSM GUI acceptance environments and short manual scenarios when the user wants to try a change locally.

    1.1k GitHub stars~1.1k tokensUpdated yesterday
    Auto-check passed

More from macro-inc/macro

All 19 skills in this repo
  • Mintlify API

    macro-inc/macro

    Interact with the Mintlify REST API to manage deployments, trigger builds, and query documentation site metadata programmatically.

    4.6k GitHub starsUsed in 2 repos~333 tokens
    Auto-check passed
  • Add Tour

    macro-inc/macro

    Add or change an in-app feature tour (a view's guided flyover) in the web app.

    4.6k GitHub stars~1.8k tokensUpdated today
    Auto-check passed
  • Define Feature Flag

    macro-inc/macro

    Define a frontend feature flag with defineFlag and wire its readers.

    4.6k GitHub stars~780 tokensUpdated today
    Auto-check passed
  • Run App

    macro-inc/macro

    Run the Macro app on Cursor Cloud and pick up edits. An agent skill from macro-inc/macro.

    4.6k GitHub stars~712 tokensUpdated today
    Auto-check passed
  • Enforce hexagonal architecture in the Rust backend. An agent skill from macro-inc/macro.

    4.6k GitHub stars~3k tokensUpdated today
    Auto-check passed
  • Collab Surface Core

    macro-inc/macro

    A skill your agent uses when adding collaborative markdown, notes, or descriptions to a feature with collab surfaces.

    4.6k GitHub stars~639 tokensUpdated today
    Auto-check passed

Works with

Questions about Add SDK Endpoint

What does Add SDK Endpoint do?

Wrap a new backend endpoint in the TypeScript SDK (packages/sdk), or record it as skipped. Add SDK Endpoint is an agent skill from macro-inc/macro. Wrap a new backend endpoint in the TypeScript SDK (packages/sdk), or record it as skipped.

When should I use Add SDK Endpoint?

Add SDK Endpoint fits situations like: just coverage fails; after adding an endpoint to a Rust service.

How do I install Add SDK Endpoint in Claude Code?

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

How do I install Add SDK Endpoint in Codex?

Run `npx skills add macro-inc/macro --skill add-sdk-endpoint -a codex`. Or copy the skill folder (.claude/skills/add-sdk-endpoint in macro-inc/macro) into .agents/skills/add-sdk-endpoint in your project. Codex loads it when a task matches its description.

Can I use Add SDK Endpoint 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 macro-inc/macro --skill add-sdk-endpoint -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/add-sdk-endpoint, .gemini/skills/add-sdk-endpoint, .github/skills/add-sdk-endpoint and .opencode/skills/add-sdk-endpoint in your project.

What does Add SDK Endpoint need to run?

Going by SKILL.md and its folder, Add SDK Endpoint needs the command-line tools its instructions call (just and bun). Its frontmatter pre-approves these tools: Bash, Read, Edit, Write, Grep, Glob.

Does Add SDK Endpoint 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 Add SDK Endpoint safe to install?

Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Add SDK Endpoint use?

Add SDK Endpoint is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Add SDK Endpoint use?

About 1k tokens (SKILL.md is roughly 4.1k 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 Add SDK Endpoint?

Skills that share tags, products or a category with Add SDK Endpoint: Firecrawl Page Scrape Integration (firecrawl/firecrawl, 190k stars), Pnpm Engine (teambit/bit, 18k stars), Build Teaql App (teaql/teaql-agent-kit, 2.8k stars) and Testing Changes (pnpm/pnpm, 37k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Add SDK Endpoint?

macro-inc (a GitHub organization) maintains it in macro-inc/macro, which has 4,597 GitHub stars. The repository holds 19 skills in this directory. The repository was last updated on October 9, 2026.

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