Check Component Skill
SkillDev toolsVerify all outputs exist after creating a new component and fix any issues
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Check Component Skill skill
What this skill tells your AI
The instructions your AI receives, as published by alamenai/terrae in .claude/skills/check/SKILL.md and read by ahel’s review.
Verify that all 8 required outputs exist and are wired correctly after creating a new component.
Instructions
Given a component name (e.g., cyclone, MapCyclone), normalize it to its kebab-case slug (e.g., cyclone) and run through every check below.
Check 1: Component Source File
- File exists:
src/registry/map/{slug}.tsx - Has
"use client"directive (if it uses hooks, event handlers, or browser APIs) - Exports a named component (e.g.,
MapCyclone) - Uses
typenotinterfacefor type definitions - Uses arrow functions with explicit returns
- Default values use
SCREAMING_SNAKE_CASEconstants above the component - Required props come before optional props in the type definition
- Cleanup in useEffect return functions (removes layers, sources, markers, event listeners)
Check 2: Barrel Export
src/registry/map/index.tsxhas an export line for the component- If the component exposes a control hook, it is also exported (e.g.,
useCycloneControl)
Check 3: Registry Entry
registry.jsonhas an entry initemswith:namein kebab-case (e.g.,cyclone)registryDependenciesincludes"https://www.terrae.dev/map.json"files[0].pathmatches the source file pathfiles[0].targetfollowscomponents/ui/map/{slug}.tsx
Check 4: Example Files
- At least one example exists:
src/app/docs/_components/examples/{slug}-example.tsx - Examples import from
@/registry/map - Examples wrap the map in
<div className="h-full w-full"> - Examples use
process.env.NEXT_PUBLIC_MAPBOX_ACCESS_TOKEN || ""as access token - Examples that use hooks or event handlers have
"use client"
Check 5: Documentation Page
- File exists:
src/app/docs/{slug}/page.tsx - Exports
metadatawith atitle - Uses
DocsLayoutwithtitle,description,prev, andnext - First section is "Installation" with two
CodeBlocks (base map + component) - Basic
ComponentPreviewappears directly after Installation - Every example rendered on the page has a matching
getExampleSourcecall - If the component has configurable props, a properties
Tablesection exists - All documented props match the actual component props (no missing, no extra)
Check 6: Sidebar Navigation
src/app/docs/_components/docs-sidebar.tsxhas aNavItemfor the component- The
hrefmatches/docs/{slug} - Has
badge: "new" - Placed in the correct section (
"Core"or"Features") - The Lucide icon is imported
Check 7: Components Page
src/app/docs/components/page.tsxhas aComponentItementry- The
hrefmatches/docs/{slug} - Has
isNew: true categorymatches the sidebar sectioninstallCommandURL matcheshttps://www.terrae.dev/{registry-name}.json- The Lucide icon is imported
Check 8: Changelog
src/app/docs/changelog/page.tsxhas an entry in the most recentChangelogEntry- Entry has
title,description(with<code>tag for component name), andhref hrefmatches/docs/{slug}
Output Format
Present results as a checklist table:
| # | Output | Status | Notes |
| --- | ------------------ | ------ | ----------------------- |
| 1 | Component source | pass | |
| 2 | Barrel export | pass | |
| 3 | Registry entry | fail | Missing target path |
| 4 | Examples | pass | 3 examples found |
| 5 | Documentation page | warn | Missing props: `scale` |
| 6 | Sidebar navigation | pass | |
| 7 | Components page | pass | |
| 8 | Changelog | pass | |
- pass: Everything correct
- warn: Works but has minor issues (e.g., missing optional prop in docs table)
- fail: Missing or broken, needs fixing
After the table, list specific issues with file paths and line numbers.
Fix Phase
If any checks have fail or warn status, fix them automatically:
- Work through issues in check order (1–8)
- Apply the minimal change needed for each issue
- After all fixes, re-run the checks to confirm everything passes
- Present the updated checklist table showing all checks as pass
If a fix requires a decision (e.g., which sidebar section to place the component in), ask the user before proceeding.
Signals
- GitHub stars
- 244
- Forks
- 5
- Last commit
- Apr 2026
Advanced
- Catalog kind
- skill
- Gateway key
check-alamenai- Source
- github.com/alamenai/terrae