Agent skill

Figma From Code Discovery Components

by bitovi in bitovi/ai-enablement-prompts

Subagent for figma-from-code Phase 0a. An agent skill from bitovi/ai-enablement-prompts.

MITAuto-check passedAgent Workflows

Install Figma From Code Discovery Components

skills CLI
$ npx skills add bitovi/ai-enablement-prompts --skill figma-from-code-discovery-components -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install bitovi/ai-enablement-prompts figma-from-code-discovery-components --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/bitovi/ai-enablement-prompts.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/figma-from-code/skills/figma-from-code/1-discovery-components .claude/skills/figma-from-code-discovery-components && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
figma-from-code-discovery-components
GitHub stars
121
Token cost
~5.3k tokens
SKILL.md length
1,894 words
Files
2
Skills in repo
40
Repo updated
First seen
Licence
MIT

At a glance

Subagent for figma-from-code Phase 0a. An agent skill from bitovi/ai-enablement-prompts.

  • Works in 10 steps: Ensure output directory exists → Verify dev server is running → Normalize component names → …
  • Tasks that involve Subagents
  • SKILL.md covers When to Use, Prerequisites, Required Inputs and Output Files, plus 4 more sections
  • Calls node and curl; reaches figma.com

What it does

Figma From Code Discovery Components is an agent skill from bitovi/ai-enablement-prompts. Subagent for figma-from-code Phase 0a. Discovers the complete component architecture of a web application via browser crawling and static code scanning. Produces a topologically-sorted build order and inspects the target Figma file for existing pages and components.

Its SKILL.md is about 5.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `README.md`).

It sits in Agent Workflows, covering Subagents. It works with Figma. The repository describes itself as: Prompts Bitovi uses for software development. The licence is MIT.

When your agent uses it

  • Tasks that involve Subagents

Example prompts

  • “/figma-from-code-discovery-components”

Workflow steps

10 steps, taken from the step headings in SKILL.md.

  1. Ensure output directory exists
  2. Verify dev server is running
  3. Normalize component names
  4. Discover frontend source directories
  5. Scan code for all components
  6. Read and summarize the output
  7. Inspect the Figma file and match components
  8. Write updated output
  9. Write discovery summary for the orchestrator
  10. Report

What it can do on your machine

Read from SKILL.md and the folder at commit df229b1. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • node
    • curl

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • figma.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Figma From Code Discovery Components loads about 5.3k tokens when it runs. Until then it costs about 76 tokens; SKILL.md has 1,894 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~76
When it runs · the whole SKILL.md, loaded when a task matches
~5.3k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from bitovi/ai-enablement-prompts at commit df229b1, republished under its MIT licence (© bitovi). 1,894 words, ~5,324 tokens.

Download SKILL.mdSave it as .claude/skills/figma-from-code-discovery-components/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
figma-from-code-discovery-components
description
Subagent for figma-from-code Phase 0a. Discovers the complete component architecture of a web application via browser crawling and static code scanning. Produces a topologically-sorted build order and inspects the target Figma file for existing pages and components.
model
claude-sonnet-4-5

Skill: Component Discovery

Discovers the complete component architecture of a web application by combining two methods: (1) browser crawling to find runtime components with routes and selectors, and (2) static code scanning to find all components including those not rendered during the crawl (modals, inline-edit variants, conditional renders, etc.). Produces a merged, topologically-sorted build order (leaves first, layouts last). Also inspects the target Figma file to report existing pages, variable collections, and components.

When to Use

  • Before running figma-from-code on a fresh Figma file
  • When the component hierarchy may have changed and you need an updated build order
  • Standalone audit of what components a site uses and how they nest
  • When resuming a build and component-map.json is missing

Prerequisites

  • Dev server running at {devServerUrl} (or custom URL)
  • Playwright installed (node_modules/playwright-core)

Placeholders like {devServerUrl} resolve from state.json → config.

Required Inputs

  • fileKey: The Figma file key (for the Figma inspection step)
  • devServerUrl (optional, default http://localhost:5173): The running dev server URL

Output Files

Written to .temp/figma-from-code/:

FileContents
component-map.jsonAuthoritative tiered build order (machine-readable), incl. capture data
component-map.mdHuman-readable report with Mermaid diagram
interactions.jsonInteraction scenarios that reveal gated components (authored in step 3c)

Workflow

1. Ensure output directory exists
bash
mkdir -p .temp/figma-from-code/
2. Verify dev server is running
bash
curl -s --max-time 3 {devServerUrl} > /dev/null || echo "Dev server not running"

If not running, halt and tell the user to start the dev server.

3a. Enumerate routes statically

The link-following crawler only finds routes reachable via <a href>. Routes reached programmatically (e.g. navigate('/cases/new')) are invisible to it, so enumerate routes from the source code first:

  1. Read the app's router configuration (e.g. <Route path=...> in React Router, file-based route folders) and list every declared path.
  2. Grep the source for programmatic navigation literals: navigate(, router.push(, history.push(, and to=/href= string literals.
  3. Watch for conditional renders behind a parameter value: a route like /cases/:id where the page renders a different component when id === 'new' means /cases/new is a distinct concrete route — include it explicitly.

Produce a comma-separated route list of concrete, parameterless paths (e.g. /,/cases/,/cases/new,/tasks/new). Leave :id-style dynamic routes to the crawler — it instantiates them from real links.

3b. Run the passive component discovery script
bash
node {skillRoot}/scripts/map-components.js \
  "{devServerUrl}" --routes {enumerated_routes} --crawl --max-crawl 30 \
  --markdown .temp/figma-from-code/component-map.md \
  --output .temp/figma-from-code/component-map.json

This produces the authoritative build order — a topologically-sorted list of tiers where leaves come first and layouts come last. All subsequent phases of figma-from-code use this output. Each component found at runtime gets a capture object recording the exact URL and CSS selector (plus ordered fallbackSelectors) where it was observed.

3c. Author interaction scenarios for gated components

After the passive pass, read component-map.json and list components with capture: null / instances: 0. Many of these only mount after a user interaction (dialogs, dropdown menus, tooltips, click-to-edit inputs). For each, read its source file and call sites to find the trigger element, then write a scenario to .temp/figma-from-code/interactions.json:

json
{
  "scenarios": [
    {
      "id": "case-more-options",
      "route": "/cases/:id",
      "steps": [{ "click": "button[aria-label=\"More options\"]" }],
      "expect": ["MoreOptionsMenu"]
    },
    {
      "id": "editable-title-edit",
      "route": "/cases/:id",
      "steps": [{ "click": "main h1" }],
      "expect": ["EditableTitle", "EditControls"]
    }
  ]
}
  • route may be a visited concrete route or a :param pattern — patterns resolve against a concretely visited URL.
  • steps run in order; verbs are click, hover, press (e.g. "Escape"), and fill ({"fill": {"selector": "...", "value": "..."}}). Each step accepts an optional settle (ms, default 400).
  • expect lists component names the scenario should reveal — used to report scenarios that need refinement.
  • Prefer click/hover steps: only those are replayed at screenshot time (Phase 2.5). press/fill steps run during discovery but are not part of the capture replay.

Safety rules (mandatory — copy into every scenario review):

  • Never click elements whose text or handler indicates destruction or persistence: Delete/Remove/Confirm inside an already-open confirmation dialog, Save, Submit, or any type="submit" button. Opening a confirmation dialog is allowed; confirming it is not.
  • Prefer aria-label or role+text based step selectors; never positional (nth-of-type) ones.
  • Each scenario must be independently replayable from a fresh page load — never depend on state left by a previous scenario.
3d. Run the interaction pass
bash
node {skillRoot}/scripts/map-components.js \
  "{devServerUrl}" \
  --augment .temp/figma-from-code/component-map.json \
  --interactions .temp/figma-from-code/interactions.json \
  --markdown .temp/figma-from-code/component-map.md \
  --output .temp/figma-from-code/component-map.json

--augment seeds from the existing map and skips the passive crawl, so this pass only runs the scenarios. Read interactionResults from the output:

  • status: "ok" — scenario ran; found lists revealed components (now carrying capture with the replay recipe).
  • status: "missing_expected" — scenario ran but some expected components were not revealed; missing lists them.
  • status: "failed" / "no_matching_route" — step selector or route problem; error has details.

For scenarios that did not reveal their expected components, refine the step selectors and re-run 3d (max 2 refinement iterations). Debug a single scenario interactively with:

bash
node {skillRoot}/scripts/discover-components.js "{devServerUrl}{route}" --click "{trigger}" --list

Components still without capture after refinement are genuinely non-renderable from the live app (loading/error states, hover-only primitives) — record each with its reason for the final report.

4. Normalize component names

The DOM scanner extracts React component names from the fiber tree, which may differ from the Figma naming convention for icons and assets:

  • Lucide icons: scanner reads the internal displayName (e.g. EllipsisVertical) rather than the import alias used in code (e.g. MoreVertical)
  • SVG asset wrappers: scanner sees the wrapper component name (e.g. CartonLogo) rather than the Figma asset name (e.g. Asset/CartonLogoSvg)

Run the normalization script to align names with Figma conventions. This requires icons.json from Phase 0b.

bash
node {skillRoot}/scripts/normalize-component-map.js \
  .temp/figma-from-code/component-map.json \
  .temp/figma-from-code/icons.json \
  --write

If icons.json does not yet exist (Phase 0b hasn't run), skip this step — the orchestrator will re-run normalization after Phase 0b completes.

The script resolves names via three strategies:

  1. Direct icon match: component name is a known icon import name → prefix with Icon/
  2. Lucide alias resolution: component name is a Lucide canonical name that differs from the import alias → resolve via lucide-react exports → prefix with Icon/
  3. Asset prefix match: component name is a prefix of a known asset name → prefix with Asset/
5. Discover frontend source directories

Run the code scanner in discovery mode to locate component directories:

bash
node {skillRoot}/scripts/discover-code-components.js \
  --discover --root .

Read the JSON output and automatically apply the following default exclusions (do not wait for user input — this is a subagent):

  • Any directory named ui/ that is a direct child of a components/ folder (shadcn primitives, not application components)
  • Any directory path containing __tests__, __stories__, .storybook, or node_modules
  • Any directory path containing /dist/ or /build/

For each excluded directory, record the directory path and the exclusion reason. Include the final componentDirectories list and the list of any excluded directories with their reasons in the discovery summary returned to the orchestrator. The orchestrator will surface these to the user at the next user-facing checkpoint so they can request adjustments if needed.

After running --discover and applying exclusions, write both componentDirectories and excludedDirectories into component-map.json as top-level fields so they are preserved through the --scan merge in Step 6 and available to the summary script in Step 10:

javascript
// Merge into component-map.json after --scan completes
const map = JSON.parse(fs.readFileSync('.temp/figma-from-code/component-map.json', 'utf-8'));
map.componentDirectories = componentDirectories; // [{ path, componentCount, subdirs }]
map.excludedDirectories = excludedDirectories;   // [{ path, reason }]
fs.writeFileSync('.temp/figma-from-code/component-map.json', JSON.stringify(map, null, 2));
6. Scan code for all components

Run the code scanner in scan mode with the confirmed directories:

bash
node {skillRoot}/scripts/discover-code-components.js \
  --scan {confirmed_dir_1} {confirmed_dir_2} \
  --browser-map .temp/figma-from-code/component-map.json \
  --output .temp/figma-from-code/component-map.json \
  [--exclude {excluded_dirs}]

This merges code-discovered components into the browser-discovered map. Each component gains a source field ("browser", "code", or "both") and a codeDependencies array. Tiers are recomputed from static import analysis to include all components. Browser data (routes, selector, instances) is preserved for components found by both methods.

Show full SKILL.md (776 more words)Show less
7. Read and summarize the output

Read .temp/figma-from-code/component-map.json and extract:

  • tiers[] — the tiered build order (number of tiers varies per project)
  • tree — the merged component hierarchy
  • componentCount — total components to build
  • Source breakdown:
    • {bothCount} found in browser + code
    • {codeOnlyCount} found in code only
    • {browserOnlyCount} found in browser only (no source file matched)
8. Inspect the Figma file and match components

Use get_metadata (fileKey) to retrieve all components and component sets from the Figma file. This returns every component with its name and nodeId.

Build a lookup map from the Figma metadata: { componentName → nodeId }.

After normalization (step 4), component names in component-map.json use Figma conventions (Icon/Bot, Asset/CartonLogoSvg, Button). Match each component by exact name against the Figma lookup map.

For each component in every tier of component-map.json, add a figmaNodeId field:

  • If a matching Figma component exists: set figmaNodeId to the node ID string (e.g. "918:50")
  • If no match: set figmaNodeId to null

Also use use_figma to do a read-only inspection for file-level state:

  • List all pages (names + IDs)
  • Check if variable collections already exist (Palette, Semantic, Spacing)
  • If a page named Screens already exists, list its top-level children. Each direct child frame is a pre-existing screen. Build preExistingScreens as { frameName: nodeId } (e.g. { "CasesPage": "123:456" }). If no Screens page exists, set preExistingScreens to {}.
8b. Ensure .figma/figma.json exists for every matched component

For each Figma component returned by get_metadata (regardless of whether it appears in the runtime component-map.json), ensure a tracking record exists next to its source file. The tracking file path is resolved as follows:

  1. Component has a sourcePath in component-map.json: write to path.dirname(sourcePath)/.figma/figma.json
  2. Component has no sourcePath (browser-only or synthetic): search each directory in config.componentsRoot (an array) for a matching component folder. Use namespace-aware path rules — Icon/Bot → {componentsRoot[i]}/Icon/Bot/.figma/figma.json. Try each componentsRoot entry in order; use the first match. If no match is found, use the first componentsRoot entry as the default.

Same schema as Step 6 of plugins/figma-from-code/skills/figma-from-code/7-build-component/SKILL.md:

json
{
  "fileKey": "{figmaFileKey}",
  "nodeId": "{nodeId}",
  "url": "https://figma.com/design/{fileKey}?node-id={nodeIdWithDashes}",
  "componentName": "Button",
  "createdAt": "2026-05-15T14:32:00Z",
  "updatedAt": "2026-05-15T14:32:00Z",
  "dependencies": []
}

Behavior:

  • File missing: create it. Set createdAt and updatedAt to the current ISO 8601 UTC timestamp. Create the .figma/ folder first if it does not exist.
  • File present: do not modify it. This phase only seeds tracking files for components that lack one — refreshing updatedAt is plugins/figma-from-code/skills/figma-from-code/7-build-component/SKILL.md's job.

Skip COMPONENT children of COMPONENT_SET nodes (variants) — only write tracking files for the top-level component or component set.

Failure handling: if a write fails (permission, missing parent path that can't be created), log the failure and continue with the rest. Surface the count of failures in the final report (Step 10).

9. Write updated output

Re-write .temp/figma-from-code/component-map.json with the figmaNodeId field added to every component entry across all tiers. Also add a top-level figma summary object.

Why this matters for later phases: the orchestrator uses every component with a non-null figmaNodeId as the immutable preExistingComponents snapshot in state.json. The orchestrator's "Pre-Existing Components Rule" requires explicit user authorization before modifying, replacing, or deleting any of those nodes in later phases (Phase 3 rebuilds, Phase 5 fix-loops, ad-hoc cleanup). Accuracy of figmaNodeId matters — a missed match silently degrades that protection.

json
{
  "figma": {
    "fileKey": "{fileKey}",
    "pages": [{ "name": "...", "id": "..." }],
    "variableCollections": ["Palette", "Semantic"] or [],
    "existingComponentCount": 12,
    "missingComponentCount": 5,
    "preExistingScreens": { "CasesPage": "123:456" }
  },
  "tiers": [
    {
      "tier": 1,
      "components": [
        { "name": "Button", "figmaNodeId": "918:50", ... },
        { "name": "NewThing", "figmaNodeId": null, ... }
      ]
    }
  ]
}
10. Write discovery summary for the orchestrator

Extract the data the orchestrator needs into a small summary file so it never has to read the full component-map.json (which can be 48KB+):

bash
node -e "
  const map = JSON.parse(require('fs').readFileSync('.temp/figma-from-code/component-map.json','utf-8'));
  const tiers = map.tiers.map(t => ({ tier: t.tier, label: t.label || 'Tier ' + t.tier, components: t.components.map(c => c.name) }));
  const builtComponents = {};
  const preExistingComponents = {};
  let bothCount = 0, codeOnlyCount = 0, browserOnlyCount = 0;
  for (const t of map.tiers) {
    for (const c of t.components) {
      if (c.figmaNodeId) {
        builtComponents[c.name] = c.figmaNodeId;
        preExistingComponents[c.name] = c.figmaNodeId;
      }
      if (c.source === 'both') bothCount++;
      else if (c.source === 'code') codeOnlyCount++;
      else if (c.source === 'browser') browserOnlyCount++;
    }
  }
  const componentCount = map.tiers.reduce((sum, t) => sum + t.components.length, 0);
  // Read componentDirectories and excludedDirectories from the --discover output
  // These are written by Step 5 and preserved in component-map.json
  const componentDirectories = map.componentDirectories || [];
  const excludedDirectories = map.excludedDirectories || [];
  const summary = {
    buildOrder: { tierCount: tiers.length, tiers },
    builtComponents,
    preExistingComponents,
    preExistingScreens: (map.figma && map.figma.preExistingScreens) || {},
    componentCount,
    componentDirectories,
    excludedDirectories,
    sourceBreakdown: { both: bothCount, codeOnly: codeOnlyCount, browserOnly: browserOnlyCount },
    figma: map.figma || null
  };
  require('fs').writeFileSync('.temp/figma-from-code/discovery-summary.json', JSON.stringify(summary, null, 2));
  console.log('Discovery summary written: ' + componentCount + ' components across ' + tiers.length + ' tiers');
"

Write to .temp/figma-from-code/discovery-summary.json. The orchestrator reads only this file (~3KB) instead of the full component-map.json. The componentDirectories and excludedDirectories fields are surfaced to the user at the Wave 1 pause for confirmation (see orchestrator § "Wave 1 Pause: Component Directory Confirmation").

11. Report

Report what exists in Figma vs what needs to be created, including the discovered build order and source breakdown:

Component Discovery complete:
- {componentCount} components across {tierCount} tiers
- Source breakdown: {bothCount} browser+code, {codeOnlyCount} code-only, {browserOnlyCount} browser-only
- Interaction scenarios: {scenarioCount} run, {recoveredCount} components recovered via interactions
- Components without capture (cannot be screenshotted from the live app): {list with reason each}
- Tier 1 (leaves): {component list}
- Tier 2: {component list}
- ...
- Tier {N} (top-level): {component list}

Figma file state:
- Pages: {existing page names}
- Variable collections: {existing or "none"}
- Already built: {count} components ({list})
- Not yet built: {count} components ({list})

Scripts Reference

ScriptLocationPurpose
map-components.js{skillRoot}/scripts/map-components.jsCrawls routes, detects framework, discovers components, computes build order. --interactions runs scenarios from interactions.json; --augment seeds from a previous output and skips the passive crawl
normalize-component-map.js{skillRoot}/scripts/normalize-component-map.jsAligns scanner names with Figma conventions using icons.json + Lucide alias table
discover-code-components.js{skillRoot}/scripts/discover-code-components.jsAuto-discovers frontend packages and scans source for all components. --discover mode finds directories; --scan mode parses imports, merges with browser map (preserving capture), recomputes tiers

Do NOT modify map-components.js — drive it via its flags (--routes, --interactions, --augment); app-specific knowledge belongs in interactions.json, never in the script.

Skip / Resume

If called with resume: true, check whether .temp/figma-from-code/component-map.json exists on disk. If it does, skip the discovery run and read the existing file. If it's missing, re-run.

Error Handling

ScenarioAction
Dev server not runningHalt, tell user to start the dev server
map-components.js failsCheck Playwright installation, verify URL is accessible
Figma use_figma read-only call failsReport error but do not block — component discovery output is still valid
Empty component-map.jsonCheck that dev server is serving the app (not an error page)

© bitovi, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file in plugins/figma-from-code/skills/figma-from-code/1-discovery-components of bitovi/ai-enablement-prompts.

  • SKILL.md
  • README.md

Open the folder on GitHubat commit df229b1

Compare with similar skills

Figma From Code Discovery Components next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Figma From Code Discovery Components compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Figma From Code Discovery Components this skillbitovi/ai-enablement-prompts121—~5.3kAutomated safety check: PassMIT
Claude Code Agent Developmentanthropics/claude-plugins-official38k8 repos~2.8kAutomated safety check: PassApache-2.0
Subagent Driven DevelopmentAsvarox/allkaraoke26138 repos~1.2kAutomated safety check: PassNone
Dispatching Parallel Agentsultralisp/ultralisp25841 repos~1.5kAutomated safety check: PassNone
Paseo Advisor Second Opiniongetpaseo/paseo20k1 repos~756Automated safety check: PassCustom licence
Task Observerrebelytics/one-skill-to-rule-them-all3.2k1 repos~12kAutomated safety check: PassCC-BY-4.0

Similar skills

  • Claude Code Agent Development

    anthropics/claude-plugins-official

    Official

    Explains how to write agents for Claude Code plugins: the markdown file with YAML frontmatter, trigger descriptions, model and color settings, and system prompt design.

    38k GitHub starsUsed in 8 repos~2.8k tokens
    Agent WorkflowsAuto-check passed
  • Subagent Driven Development

    Asvarox/allkaraoke

    A skill your agent uses when executing implementation plans with independent tasks in the current session

    261 GitHub starsUsed in 38 repos~1.2k tokens
    Agent WorkflowsAuto-check passed
  • Dispatching Parallel Agents

    ultralisp/ultralisp

    A skill your agent uses when facing 2+ independent tasks that can be worked on without shared state or sequential dependencies

    258 GitHub starsUsed in 41 repos~1.5k tokens
    Agent WorkflowsAuto-check passed
  • Launches one separate agent through Paseo to give a second opinion on the current task, with a self-contained briefing and no permission to edit files.

    20k GitHub starsUsed in 1 repo~756 tokens
    Agent WorkflowsAuto-check passed
  • Task Observer

    rebelytics/one-skill-to-rule-them-all

    Monitors task execution for skill improvement opportunities.

    3.2k GitHub starsUsed in 1 repo~12k tokens
    Agent WorkflowsAuto-check passed
  • O2 Review Loop

    openobserve/openobserve

    Splits a change into planner, coder and independent reviewer roles: you confirm a spec, a subagent implements it, and a separate reviewer checks each round's local WIP commit.

    22k GitHub stars~3.7k tokensUpdated today
    Agent WorkflowsAuto-check passed

More from bitovi/ai-enablement-prompts

All 40 skills in this repo
  • Component Registry

    bitovi/ai-enablement-prompts

    Track reusable UI components and unextracted patterns. An agent skill from bitovi/ai-enablement-prompts.

    121 GitHub stars~597 tokensUpdated 27 days ago
    Auto-check passed
  • Computed Styles

    bitovi/ai-enablement-prompts

    Extract and compare computed CSS styles between a baseline URL and a dev/Storybook URL using Playwright MCP evaluate calls.

    121 GitHub stars~2.4k tokensUpdated 27 days ago
    Auto-check passed
  • Create Plugin

    bitovi/ai-enablement-prompts

    A skill your agent uses when the user asks to "create a plugin", "add a plugin", "make a new plugin", "build a plugin", or wants to package skills into an installable plugin for this marketplace.

    121 GitHub stars~2k tokensUpdated 27 days ago
    Auto-check passed
  • Create React Modlet

    bitovi/ai-enablement-prompts

    Create React components, hooks, or utilities following the modlet pattern.

    121 GitHub stars~2.1k tokensUpdated 27 days ago
    Auto-check passed
  • Create Skill

    bitovi/ai-enablement-prompts

    A skill your agent uses when the user asks to "create a skill", "add a skill", "make a new skill", "build a skill", or wants to automate a repeated workflow into a reusable prompt.

    121 GitHub stars~1.6k tokensUpdated 27 days ago
    Auto-check passed
  • Create Skill

    bitovi/ai-enablement-prompts

    Create new Agent Skills for this project. An agent skill from bitovi/ai-enablement-prompts.

    121 GitHub stars~1.7k tokensUpdated 27 days ago
    Auto-check passed

Works with

Categories

Questions about Figma From Code Discovery Components

What does Figma From Code Discovery Components do?

Subagent for figma-from-code Phase 0a. An agent skill from bitovi/ai-enablement-prompts. Figma From Code Discovery Components is an agent skill from bitovi/ai-enablement-prompts. Subagent for figma-from-code Phase 0a.

When should I use Figma From Code Discovery Components?

Figma From Code Discovery Components fits situations like: tasks that involve Subagents.

How do I install Figma From Code Discovery Components in Claude Code?

Run `npx skills add bitovi/ai-enablement-prompts --skill figma-from-code-discovery-components -a claude-code`. Or copy the skill folder (plugins/figma-from-code/skills/figma-from-code/1-discovery-components in bitovi/ai-enablement-prompts) into .claude/skills/figma-from-code-discovery-components in your project. Claude Code loads it when a task matches its description.

How do I install Figma From Code Discovery Components in Codex?

Run `npx skills add bitovi/ai-enablement-prompts --skill figma-from-code-discovery-components -a codex`. Or copy the skill folder (plugins/figma-from-code/skills/figma-from-code/1-discovery-components in bitovi/ai-enablement-prompts) into .agents/skills/figma-from-code-discovery-components in your project. Codex loads it when a task matches its description.

Can I use Figma From Code Discovery Components in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add bitovi/ai-enablement-prompts --skill figma-from-code-discovery-components -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/figma-from-code-discovery-components, .gemini/skills/figma-from-code-discovery-components, .github/skills/figma-from-code-discovery-components and .opencode/skills/figma-from-code-discovery-components in your project.

What does Figma From Code Discovery Components need to run?

Going by SKILL.md and its folder, Figma From Code Discovery Components needs the command-line tools its instructions call (node and curl).

Does Figma From Code Discovery Components access the network?

SKILL.md names 1 domain. In commands or code: figma.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is Figma From Code Discovery Components safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Figma From Code Discovery Components use?

Figma From Code Discovery Components is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Figma From Code Discovery Components use?

About 5.3k tokens (SKILL.md is roughly 21k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Figma From Code Discovery Components?

Skills that share tags, products or a category with Figma From Code Discovery Components: Claude Code Agent Development (anthropics/claude-plugins-official, 38k stars), Subagent Driven Development (Asvarox/allkaraoke, 261 stars), Dispatching Parallel Agents (ultralisp/ultralisp, 258 stars) and Paseo Advisor Second Opinion (getpaseo/paseo, 20k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Figma From Code Discovery Components?

bitovi (a GitHub organization) maintains it in bitovi/ai-enablement-prompts, which has 121 GitHub stars. The repository holds 40 skills in this directory. The repository was last updated on September 11, 2026.

Source: bitovi/ai-enablement-prompts on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.