Skip to content
Agentmart
Submit a tool

alex-api

Design public API surfaces from the caller's side — one obvious entry point, names a user would guess, and the same object serving related workflows.

Skill by AlexBodner

IndexedMIT
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/alexbodner-alex-api

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Design public API surfaces from the caller's side — one obvious entry point, names a user would guess, and the same object serving related workflows. Use when adding or reviewing a class, function or module that library users will call.

Use cases: design, backend

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/alex-api

What's inside

Skill name
alex-api
Description
Design public API surfaces from the caller's side — one obvious entry point, names a user would guess, and the same object serving related workflows. Use when adding or reviewing a class, function or module that library users will call.
License
MIT
Instructions
43 lines in SKILL.md · view on GitHub

Files (1)

  • SKILL.md

SKILL.md (first lines)

# Alex API (design from the call site)

For anything a library user will import and call. These rules came out of PR review on the
reid/trackers packages; the quotes are the evidence.

## Write the call site first

Before designing the class, write the three lines a user would type. If those lines are
awkward, the design is wrong — no amount of internal tidiness fixes a bad call site.

> "i dont like that API: i would like to do: `# Load dataset once` `crops =
> ReIDCrops("/path/to/crops/train")` `# 71 ms scan, once`"

> "show me how it would be fully used for training and for evaluating, because it would be
> cool to just pass 1 set of things"

## One object for related workflows, not one per workflow

If training and evaluation need the same data with different access patterns, that is one
class with two accessors — not two classes that each rebuild the same scan.

> "i think for the user it would be more useful to load the dataset in just one class and
> have the option to train from it or just evaluate"

> "im still confused by why do we have a specific class for training reid set. Doesnt it
> need quite the same as the reid inference?"

## Name it what the user would guess

A name that describes today's input (`ReIDCrops`) locks the class to that input. Name it
after the role it plays, so the obvious extension does not require a rename.

> "is reidcrops the correct name for that class?"

> "I think that this should be ReidDataset or something like that. Because it can be crops
> (from the tracking case) or images"

## Related

Cross-cutting obligations live in L0 — `P-reuse` (don't duplicate across modules) and
`P-scope` (no unrequested options) both bear on API surface. This file is the design detail.

From AlexBodner/alexs-rig, MIT.

More from AlexBodner/alexs-rig

Signals

Stars
0
Forks
0
Open issues
0
Last commit (this folder)
Aug 28, 2026 (2 months ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from AlexBodner

Cite this page

alex-api skill. Agent Mart. https://agentmart.dev/skills/alexbodner-alex-api (last updated 2026-10-24)