extract-api
Extract API Data
Interpretation-only companion to create-api. This skill does not extract data from Figma. It reads {cachePath}/{componentSlug}-_base.json (produced by the uSpec Extract Figma plugin), applies the same reasoning layer as create-api, and writes the normalized ApiOverviewData JSON to disk for the create-component-md orchestrator to consume.
Quality contract: every reasoning step (context gathering from _base.json, override promotion pass, audit) mirrors create-api/SKILL.md. Any improvement to API-extraction quality must be made in both places.
Batch-mode contract. This skill MUST NOT call AskQuestion, prompt for confirmation, or pause for user input. On ambiguous evidence, emit the best-effort structured output (with _deltaExtractions[] logged if a delta fired). On missing evidence that cannot be resolved, abort with a single-line diagnostic pointing at the missing _base.json field. No mid-interpretation clarifications.
Invocation Contract
The orchestrator calls this skill with these inputs (already resolved — do NOT re-parse URLs or re-read uspecs.config.json):
componentSlug— filename-safe slugcachePath— cache directory, typically.uspec-cache/{componentSlug}/optionalContext— free-form string from the user (may be"none")mcpProvider—figma-consoleorfigma-mcp(only needed if a Step 3-delta escape hatch fires AND a live Figma link was provided to the orchestrator)deltaAvailable— boolean. When the orchestrator received only abaseJsonPath(nofigmaLink), this isfalseand the Step 3-delta escape hatch must not fire; log the gap indata._deltaExtractions[]withunavailable: "no-figma-link"and continue with best-effort output.
fileKey and nodeId are not pass-through parameters. Read them from {cachePath}/{componentSlug}-_base.json._meta.fileKey and _meta.nodeId at the start of Step 1 — _base.json is the single source of truth for them.