بنقرة واحدة
بنقرة واحدة
Read a GitHub issue, summarize it, and create a branch for it
Commit, push, and open a pull request on GitHub
Create standardized git commits following Terrae's conventions
Generate or update documentation for Terrae components
Systematically fix issues found by /review or reported by the user
Run linting and type checking across the Terrae codebase
| name | check |
| description | Verify all outputs exist after creating a new component and fix any issues |
| argument-hint | ["component-name"] |
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.