Skip to content
Back to skills

league-api-engineering

ASecurity

Use when implementing, auditing, debugging, researching, or governing League of Legends data integrations across Riot, local-client, static-data, and third-party sources.

  • 2 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added October 15, 2026
ai-agentspythongotestingdebuggingapi

Works with

  • cli
  • api

Security analysis

A100/100

Pro scans all 20 files and shows the line behind each finding

Scanned October 15, 2026

npx -y skills add ZepiGit/league-api-engineering --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of league-api-engineering?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for league-api-engineering
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/zepigit-league-api-engineering/badge)](https://www.skillsdirectory.com/skills/zepigit-league-api-engineering)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: league-api-engineering
description: Use when implementing, auditing, debugging, researching, or governing League of Legends data integrations across Riot, local-client, static-data, and third-party sources.
license: MIT
metadata:
  version: "2.0.0"
---

# League API Engineering

Select exactly one primary mode. For a mixed request, state the dominant mode and the secondary deliverable before proceeding.

| Mode | Use for | Required result |
|---|---|---|
| `implement` | Adding or changing a data integration | Source decision → adapter contract → sanitized fixtures/tests → implementation plan or code → gates |
| `audit` | Assessing an existing integration | Inventory → evidence labels → risk matrix → prioritized, source-specific fixes |
| `debug` | A failing or misleading integration | Reproduction → failure class → transport/schema/cache/fallback inspection → fix proof |
| `research` | Choosing a source or checking current facts | Dated evidence map → source assessment → decision |
| `policy` | Whether data use or product behavior is allowed | Product/data review → policy gate → permitted, constrained, or blocked decision |

## Non-negotiable gates

Reject a design rather than work around a failed gate:

- **Secrets and privacy:** never embed, persist, or log Riot keys, LCU credentials, bearer tokens, cookies, PII, or real player histories.
- **Local-client safety:** no injection, hooks, process-memory access, memory scanning, anti-cheat bypass, hidden-state extraction, or claims of exclusive-fullscreen control. Loopback certificate relaxation is limited to a client explicitly bound to `127.0.0.1` or `localhost`; it is never reusable for remote HTTPS.
- **Authority and terms:** do not represent an undocumented endpoint or provider as officially supported. Verify applicable terms, attribution, redistribution, authentication, and rate-limit conditions before use.
- **Fallback truthfulness:** a fallback must preserve population, scope, freshness, patch, locale, queue, and provenance semantics. Materially different data is a separate result, not a silent substitute.
- **Unsupported requests:** do not invent MMR/ELO estimates, infer hidden state, or expose unavailable player information. Return `policy_blocked` or `unsupported_context` with the constraint.

## Source-decision workflow

1. Classify the requested data: local session, active match, static/versioned data, remote account/match/ranked data, aggregate trend data, or unsupported/hidden state.
2. Start with [`source-decision-tree.md`](references/source-decision-tree.md); choose candidates by authority, access, routing, freshness, stability, patch coverage, latency, terms, privacy, attribution, rate limits, and failure behavior.
3. Apply hard gates before scoring. A source needing an embedded production key, unsafe local access, prohibited data, unreviewed redistribution, or an incompatible fallback is rejected.
4. Record an evidence class for each material claim:
   - `verified-current`: directly supported by a dated authoritative source or current reproducible observation;
   - `observed-undocumented`: reproduced behavior not guaranteed by an authority;
   - `historical`: formerly documented or observed, not safe to assume current;
   - `inference`: a reasoned conclusion that needs validation before production.
5. Write or update an adapter contract using [`adapter-contract.md`](references/adapter-contract.md), then adopt cache/fallback, testing, and canary controls.

## Failure vocabulary

Use one primary error class and retain raw sanitized diagnostics separately: `offline`, `unauthorized`, `rate_limited`, `not_found`, `no_data`, `unsupported_context`, `transport`, `http_status`, `parse`, `schema_drift`, or `policy_blocked`.

Never blindly retry `unauthorized`, `policy_blocked`, `parse`, or `schema_drift`. See [`caching-and-fallbacks.md`](references/caching-and-fallbacks.md).

## Audit output contract

An audit emits a dated artifact with:

1. scope, data classes, and adapter inventory;
2. source/endpoint map with authority, stability, evidence class, and terms-review date;
3. credential, privacy, local-access, routing, versioning, and attribution findings;
4. cache, no-data, retry, drift, and fallback compatibility findings;
5. a risk matrix: severity, likelihood, affected behavior, evidence, and concrete remediation;
6. prioritized fixes, blocked items, and verification criteria.

Do not label an assumption as verified. Do not call a source safe merely because it works once.

## Progressive disclosure

- Official and local source choices: [`riot-web-apis.md`](references/riot-web-apis.md), [`lcu.md`](references/lcu.md), [`live-client-data.md`](references/live-client-data.md), [`data-dragon.md`](references/data-dragon.md), [`communitydragon.md`](references/communitydragon.md).
- External sources and product policy: [`third-party-providers.md`](references/third-party-providers.md), [`policy-and-product-gates.md`](references/policy-and-product-gates.md).
- Engineering controls: [`adapter-contract.md`](references/adapter-contract.md), [`caching-and-fallbacks.md`](references/caching-and-fallbacks.md), [`testing-and-canaries.md`](references/testing-and-canaries.md).
- Optional bounded example: [`case-study-lolcompanion.md`](references/case-study-lolcompanion.md).

Run `python scripts/validate.py .` from the package root before publishing when the validator is present.

Files in this skill

  • .claude-plugin/marketplace.json463 B
  • .claude-plugin/plugin.json286 B
  • AGENTS.md1.1 KB
  • SKILL.md5.3 KB
  • evals/adversarial.json12.7 KB
  • evals/adversarial.md2 KB
  • evals/debugging.json4.8 KB
  • evals/debugging.md853 B
  • evals/implementation.json5.1 KB
  • evals/implementation.md876 B
  • evals/policy.json4.7 KB
  • evals/policy.md780 B
  • evals/source-selection.json6.2 KB
  • evals/source-selection.md1.1 KB
  • exports/README.md897 B
  • references/adapter-contract.md4 KB
  • references/caching-and-fallbacks.md4.1 KB
  • references/communitydragon.md3.4 KB
  • references/data-dragon.md3.5 KB
  • references/lcu.md4 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.