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.
npx agentmods add skills/guillemroca/agent-skills-android/api-and-interface-designnpx skills add GuillemRoca/agent-skills-android --skill api-and-interface-designgit clone --depth 1 https://github.com/GuillemRoca/agent-skills-androidWrote 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.
[](https://agentmods.dev/skills/guillemroca/agent-skills-android/api-and-interface-design)<a href="https://agentmods.dev/skills/guillemroca/agent-skills-android/api-and-interface-design"><img src="https://agentmods.dev/badge/skills/guillemroca/agent-skills-android/api-and-interface-design.svg" alt="Measured on agentmods" height="20"></a>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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00041 | $0.01877 |
| Opus 5 | $0.00020 | $0.00938 |
| Sonnet 5 | $0.00008 | $0.00375 |
| Haiku 4.5 | $0.00004 | $0.00188 |
Grade A, and why
api-and-interface-design scanned grade A with 0 findings 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 5d 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.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 249 lines — stays where its author put it; the contents beside it link to each section on GitHub.
API and Interface Design
Overview
Hyrum's Law: "With a sufficient number of users of an API, all observable behaviors of your system will be depended on by somebody." Design interfaces — Repository contracts, UseCase signatures, Retrofit services, Room DAOs — as deliberate contracts. Everything observable becomes a dependency.
When to Use
- Defining a new Repository interface
- Creating Retrofit API service interfaces
- Designing Room DAOs
- Defining ViewModel ↔ UI contracts (UiState, Events)
- Changing any public interface in a shared module
- Designing inter-module contracts in multi-module projects
Skip when: Modifying internal (private) implementation details.
Core Process
Step 1: Contract-First Design
- Define the interface before implementing:
// Repository contract (in :core:domain)
interface TaskRepository {
fun getTasks(): Flow<List<Task>>
fun getTaskById(taskId: String): Flow<Task?>
suspend fun createTask(title: String, description: String?): Task
suspend fun updateTask(task: Task)
suspend fun deleteTask(taskId: String)
suspend fun syncWithRemote()
}
- Design principles:
- Return
Flowfor observable data (notsuspendfor single reads) - Use
suspendfor one-shot operations - Accept domain types, not framework types (no
Entityin interfaces) - Throw domain-specific exceptions, not framework exceptions
- Return
Step 2: Retrofit Interfaces
- Define clean API contracts:
interface TaskApi {
@GET("tasks")
suspend fun getTasks(
@Query("page") page: Int = 1,
@Query("per_page") perPage: Int = 20,
): TaskListResponse
@GET("tasks/{id}")
suspend fun getTask(@Path("id") taskId: String): TaskResponse
@POST("tasks")
suspend fun createTask(@Body request: CreateTaskRequest): TaskResponse
@PUT("tasks/{id}")
suspend fun updateTask(
@Path("id") taskId: String,
@Body request: UpdateTaskRequest,
): TaskResponse
@DELETE("tasks/{id}")
suspend fun deleteTask(@Path("id") taskId: String)
}
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.
- 5d ago First seen · 249 lines · 41 tokens per session scan A 7cfe54de61e5
api-and-interface-design is a skill published in the GitHub repository GuillemRoca/agent-skills-android (2 stars, last pushed 2mo ago), licensed MIT. It adds 41 tokens to every session and 1,877 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
spec-kitty-mission-system
Understand how Spec Kitty missions work: the 4 built-in mission types, how they define workflows via step contracts and action indices, how missions and work packages relate, how templates are resolved through the 6-tier chain, and how doctrine artifacts (procedures, tactics, directives) compose mission behavior.…
spec-kitty-git-workflow
Understand how Spec Kitty manages git: what git operations Python handles automatically, what agents must do manually, worktree lifecycle, auto-commit behavior, merge execution, and the safe-commit pattern. Triggers: "how does spec-kitty use git", "worktree management", "auto-commit", "who commits what", "git…
spec-kitty-spdd-reasons
Drive REASONS Canvas authoring and review for Spec Kitty missions that opted in to Structured-Prompt-Driven Development (SPDD) via charter selection. Triggers: "use SPDD", "use REASONS", "generate a REASONS canvas", "apply structured prompt driven development", "make this mission SPDD". Does NOT handle: enforcing SPDD…
spec-kitty-runtime-review
Review runtime-owned outputs using the Spec Kitty review workflow surface, then direct approval or rejection with structured feedback. Triggers: "review this work package", "check runtime output", "approve this step", "review WP", "is this WP ready to approve", "check this implementation". Does NOT handle: setup-only…
spk-doctrine-show-me
Explain Spec Kitty work with compact, checkable visuals. Use for specs, plans, architecture, control flow, diffs, status boards, or whenever prose obscures structure.
spk-admin-dashboard
Open or report the Spec Kitty dashboard. Use for dashboard URL, localhost daemon metadata in .kittify/.dashboard, --open, --kill, or status views.