.claude/skills/check/SKILL.md
Verify all outputs exist after creating a new component and fix any issues
npx skillsauth add alamenai/terrae checkInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Verify that all 8 required outputs exist and are wired correctly after creating a new component.
Given a component name (e.g., cyclone, MapCyclone), normalize it to its kebab-case slug (e.g., cyclone) and run through every check below.
src/registry/map/{slug}.tsx"use client" directive (if it uses hooks, event handlers, or browser APIs)MapCyclone)type not interface for type definitionsSCREAMING_SNAKE_CASE constants above the componentsrc/registry/map/index.tsx has an export line for the componentuseCycloneControl)registry.json has an entry in items with:
name in kebab-case (e.g., cyclone)registryDependencies includes "https://www.terrae.dev/map.json"files[0].path matches the source file pathfiles[0].target follows components/ui/map/{slug}.tsxsrc/app/docs/_components/examples/{slug}-example.tsx@/registry/map<div className="h-full w-full">process.env.NEXT_PUBLIC_MAPBOX_ACCESS_TOKEN || "" as access token"use client"src/app/docs/{slug}/page.tsxmetadata with a titleDocsLayout with title, description, prev, and nextCodeBlocks (base map + component)ComponentPreview appears directly after InstallationgetExampleSource callTable section existssrc/app/docs/_components/docs-sidebar.tsx has a NavItem for the componenthref matches /docs/{slug}badge: "new""Core" or "Features")src/app/docs/components/page.tsx has a ComponentItem entryhref matches /docs/{slug}isNew: truecategory matches the sidebar sectioninstallCommand URL matches https://www.terrae.dev/{registry-name}.jsonsrc/app/docs/changelog/page.tsx has an entry in the most recent ChangelogEntrytitle, description (with <code> tag for component name), and hrefhref matches /docs/{slug}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 | |
After the table, list specific issues with file paths and line numbers.
If any checks have fail or warn status, fix them automatically:
If a fix requires a decision (e.g., which sidebar section to place the component in), ask the user before proceeding.
testing
Run tests for Terrae components
development
Review code changes implemented in the current session before committing
development
Prepare a Terrae component for release by running all checks and builds
tools
Commit, push, and open a pull request on GitHub