swapi.build CLAUDE.md

swapi.build CLAUDE.md is an instructions file for coding agents from eldermoraes/swapi.build. It costs 1,594 tokens per session, scanned A, original, Apache-2.0.

Project instructions for swapi.build, a Star Wars API with a Java backend, a Vite web interface, and an MCP server. They define the required development sequence and repository rules.

In plain words
What is it for?
Use them when changing swapi.build so work follows its required specification, testing, review, merge, and release process.
Why use it?
They make the project’s workflow explicit, including approval before implementation, test-driven development, full test runs, branching, merging, and release steps.

Instructions file

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add instructions/eldermoraes/swapi.build/claude-md
Clone the repo
git clone --depth 1 https://github.com/eldermoraes/swapi.build

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for swapi.build CLAUDE.md

README.md
[![agentmods](https://agentmods.dev/badge/instructions/eldermoraes/swapi.build/claude-md.svg)](https://agentmods.dev/instructions/eldermoraes/swapi.build/claude-md)
Your own site
<a href="https://agentmods.dev/instructions/eldermoraes/swapi.build/claude-md"><img src="https://agentmods.dev/badge/instructions/eldermoraes/swapi.build/claude-md.svg" alt="Measured on agentmods" height="20"></a>
Per session 1,594 This file is loaded in full into every session.
When invoked 1,594 The same file — it is already loaded in full.
Security scan A 1 finding. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.01594 $0.01594
Opus 5 $0.00797 $0.00797
Sonnet 5 $0.00319 $0.00319
Haiku 4.5 $0.00159 $0.00159

Measured 4d ago against content hash b4dc238b7e24, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

swapi.build CLAUDE.md scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Makes network callslowCapability

Not a fault in itself. Listed so you know the mod talks to something, and to what.

10. **Post-deploy verification** — the curl checks in `docs/DEPLOY.md`.
CLAUDE.md · 94 lines

How it starts

The opening of the file, as written. The whole thing — 94 lines — stays where its author put it; the contents beside it link to each section on GitHub.

CLAUDE.md

swapi.build — Star Wars API (Quarkus 3 / Java 25, native image) with a Quinoa/Vite frontend, deployed as a Vercel container function behind Cloudflare DNS. Also serves an MCP server (Streamable HTTP) at /mcp.

Development cycle (in this order — do not skip steps)

  1. Brainstorm / spec — explore, verify assumptions in code, write spec to docs/superpowers/specs/. This directory is local-only and gitignored on purpose (decided 2026-08-04): specs and plans are process artifacts that rot once the code moves on — the code and git history are the record of what shipped. Never remove docs/superpowers/ from .gitignore or commit files from it.
  2. User approval of the spec. No implementation before this.
  3. Implementation plandocs/superpowers/plans/ (local-only, same rule as the specs), then user approval.
  4. Branch — never implement directly on main.
  5. TDD — failing test first, then implementation. Run the full suite before every commit.
  6. Merge — ask the user (merge local / PR / keep branch). Run the suite again on the merged result.
  7. Release — only if the change carries a version bump: changelog entry → annotated tag → GitHub Release, per docs/RELEASE.md.
  8. Pushgit push publishes commits only. It does not deploy. Pushing a release tag (v*) is the exception: it triggers the deploy workflow (.github/workflows/deploy.yml).
  9. Deploy — the tag-triggered workflow runs docs/DEPLOY.md for you: preview → probes → manual approval in the Actions UI → production. Manual fallback: follow docs/DEPLOY.md exactly.
  10. Post-deploy verification — the curl checks in docs/DEPLOY.md.

Non-negotiable facts

  • Deploy always runs from swapi-app/, never from the repo root. From the root it fails with Expected VCR image registry vcr.vercel.com: <detect> (the container framework can't find the Dockerfile). See docs/DEPLOY.md.
  • There is no commit-push auto-deploy. Deploys run via the Vercel CLI — manually, or by .github/workflows/deploy.yml on a release-tag push (with a manual gate before production). Since 2026-08-03 the GitHub repo is linked to the Vercel project, so this now holds by explicit configuration rather than by absence of a connection: the root vercel.json carries git.deploymentEnabled: false. Never remove it without first setting rootDirectory to swapi-app — with rootDirectory: null a git-triggered build runs from the repo root and hits the failure above.
  • Web Analytics and Speed Insights are enabled on the project and injected by the SPA (@vercel/analytics / @vercel/speed-insights in src/main.ts). Their scripts live at /_vercel/insights/* and /_vercel/speed-insights/*, served by the Vercel edge. quarkus.quinoa.enable-spa-routing=true answers any unknown path with index.html and HTTP 200, so if the edge ever stops intercepting those paths the collection breaks silently. The curl check in docs/DEPLOY.md asserts the content type is JavaScript, not HTML.
  • Tests: cd swapi-app && ./mvnw test (backend) and cd swapi-app/src/main/webui && npm test (Vitest, frontend). CI runs both. Quinoa's vite build bundles the frontend during ./mvnw package but never tests it, so the separate Vitest step in .github/workflows/ci.yml is the only thing making the frontend guards a gate — without it they pass locally and block nothing. That step reads the Node version from application.properties; never pin a second copy in the workflow. Never run mvn clean while dev mode is running. Test HTTP port is 8081.
  • A version bump is a release. Bump → CHANGELOG.md entry → annotated tag → GitHub Release → deploy, per docs/RELEASE.md. ChangelogVersionTest fails the suite if the pom version has no changelog section, and OpenApiVersionTest fails if /openapi.json stops advertising the pom version. Tags point at the last commit of a version line, never at the bump commit.
  • Successful GETs return HTTP 200; nonexistent ids return 404 (the historic 202 quirk was retired on 2026-08-01 — no external clients depended on it).
  • Container tooling is podman (/opt/podman/bin), not docker. The podman machine needs 8 GB for local native builds.
  • MCP serves stateful and stateless clients on the same /mcp endpoint. Streamable HTTP only. quarkus.mcp.server.http.streamable.auto-init=true serves an unknown or missing Mcp-Session-Id with a throwaway session instead of 404ing — Vercel has no session affinity, and without this a stateful client fails intermittently. A genuine initialize still creates a real session that lives in one instance's heap until idle (default 30 min). GET /mcp answers 405 (no server→client stream) and DELETE answers 204. The legacy HTTP+SSE transport (/mcp/sse) is rejected on purpose. Never reintroduce session-affine state, and never depend on the legacy transport.
  • Public base URL is discovered per request (REST via UriInfo, MCP via HttpServerRequest, honoring X-Forwarded-*). swapi.public-base-url is an optional override only — never reintroduce a hardcoded domain default.
  • Frontend design system: tokens, components and the new-page checklist live in swapi-app/src/main/webui/DESIGN.md. New pages/features must follow it — tokens only, gold means action and cyan means data, and every action is a .sw-pill. "Tokens only" is enforced, not trusted: tokens.test.ts fails on any hex, rgb() or hsl() literal in a stylesheet other than tokens.css (the starfield's white alphas are the one documented exception), and it globs the stylesheets so a new file is policed the day it lands.

Read the full file on GitHub · 94 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 4d ago First seen · 94 lines · 1,594 tokens per session scan A b4dc238b7e24

Subscribe to this mod's changes

swapi.build CLAUDE.md is an instructions file published in the GitHub repository eldermoraes/swapi.build (3 stars, last pushed 19d ago), licensed Apache-2.0. It adds 1,594 tokens to every session, about $0.0080 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other instructions, from other repositories

vscode buildNext.instructions.md

Working notes and architecture documentation for the new esbuild-based build system in build/next. Use when making changes to the new build pipeline (transpile/bundle commands, NLS plugin, source-map handling, resource copying, or self-hosting watch tasks).

microsoft/vscode · 6,785 tokens

spec-kit AGENTS.md

AGENTS.md instructions for github/spec-kit, covering agents.md, about spec kit and specify, quickstart — add a new integration in 5 steps, integration architecture and integrationmanifest — file tracking.

github/spec-kit · 7,104 tokens

codex AGENTS.md

AGENTS.md instructions for openai/codex, covering rust/codex-rs, the codex-core crate, code review rules, crate api surface and model visible context.

openai/codex · 5,182 tokens

langchain AGENTS.md

AGENTS.md instructions for langchain-ai/langchain, covering global development guidelines for the langchain monorepo, corridor security analysis, project architecture and context, monorepo structure and development tools & commands.

langchain-ai/langchain · 4,345 tokens

vscode oss-third-party-notices.instructions.md

Instructions for microsoft/vscode, covering vs code oss third-party-notices pipeline, architecture, pipeline flow in ci, applying the notice (cutover) and fallback chain (never fail the build).

microsoft/vscode · 5,001 tokens

next.js AGENTS.md

Instructions for vercel/next.js, covering next.js development guide, codebase structure, monorepo overview, core package: packages/next and other important packages.

vercel/next.js · 7,296 tokens