com um clique
wire
UI layer — page (mirror pattern), content, form, table columns, i18n
Instalar com Codex ou Claude Copie este prompt, cole no Codex, Claude ou outro assistente e deixe que ele revise a página da skill e instale para você.
Menu
UI layer — page (mirror pattern), content, form, table columns, i18n
Instalar com Codex ou Claude Copie este prompt, cole no Codex, Claude ou outro assistente e deixe que ele revise a página da skill e instale para você.
Baseado na classificação ocupacional SOC
Multi-slide bilingual brand carousels — Claude writes the deck, kun renders Anthropic-styled slides at exact platform sizes, a human approves, channels receive
Draft, stage, and publish brand social posts — Claude drafts, /higgs renders, a human approves, Hermes relays
Convert a file or URL to Markdown via MarkItDown (PDF, Office, images, audio, web)
Full pipeline — idea to production (chains every stage)
Autonomous block QA — detect, adversarially verify, fix safe tiers, hand the residual to a human
Technical spec — data model, file plan, refined acceptance criteria
| name | wire |
| description | UI layer — page (mirror pattern), content, form, table columns, i18n |
| when_to_use | Use when a feature's UI layer needs to be built after schema and code stages — creating the route page (thin wrapper, mirror pattern), the server content component, the client form, table columns, dictionary keys for both en + ar, and optional navigation entries, all verified by pnpm build. Triggers on: wire the UI, build the page/form/table for the feature, i18n wiring, pipeline UI stage. Distinct from /code (server actions/logic) and /check (quality gate) — this is specifically the visible pages/components/i18n layer of the pipeline. |
| argument-hint | <feature> [product] |
Wire everything together: pages, content components, forms, tables, and i18n. The layer users actually see.
/wire #42 — from issue spec/wire billing — from feature name/wire — from most recent feature issueRead the spec, schema output, and code output from the issue:
gh issue view <number> --repo <repo> --comments
Also read:
src/components/{scope}/{name}/actions.tssrc/components/{scope}/{name}/validation.tsCreate src/app/[lang]/{route-group}/{name}/page.tsx:
import { Content } from "@/components/{scope}/{name}/content";
export default function {Name}Page() {
return <Content />;
}
The page is a thin wrapper — all logic lives in the content component (mirror pattern).
Match the product's existing page patterns:
(school-dashboard), (saas-marketing))Create src/components/{scope}/{name}/content.tsx:
import { get{Name}List } from "./actions";
import { columns } from "./columns";
import { DataTable } from "@/components/atom/data-table";
import { {Name}Form } from "./form";
export async function Content() {
const data = await get{Name}List();
return (
<div>
<div className="flex items-center justify-between">
<h1>{/* Use dictionary key */}</h1>
<{Name}Form />
</div>
<DataTable columns={columns} data={data} />
</div>
);
}
Adapt to what the spec requires:
Create src/components/{scope}/{name}/form.tsx:
"use client";
import { useForm } from "react-hook-form";
import { zodResolver } from "@hookform/resolvers/zod";
import { create{Name}Schema, type Create{Name}Input } from "./validation";
import { create{Name} } from "./actions";
import { Button } from "@/components/ui/button";
import { Input } from "@/components/ui/input";
import {
Dialog, DialogContent, DialogHeader, DialogTitle, DialogTrigger
} from "@/components/ui/dialog";
import {
Form, FormControl, FormField, FormItem, FormLabel, FormMessage
} from "@/components/ui/form";
export function {Name}Form() {
const form = useForm<Create{Name}Input>({
resolver: zodResolver(create{Name}Schema),
});
async function onSubmit(data: Create{Name}Input) {
const formData = new FormData();
Object.entries(data).forEach(([key, value]) => {
formData.append(key, String(value));
});
await create{Name}(formData);
form.reset();
}
return (
<Dialog>
<DialogTrigger asChild>
<Button>{/* Use dictionary key */}</Button>
</DialogTrigger>
<DialogContent>
<DialogHeader>
<DialogTitle>{/* Use dictionary key */}</DialogTitle>
</DialogHeader>
<Form {...form}>
<form onSubmit={form.handleSubmit(onSubmit)} className="space-y-4">
{/* FormField for each field in the schema */}
<Button type="submit">{/* Use dictionary key */}</Button>
</form>
</Form>
</DialogContent>
</Dialog>
);
}
Use shadcn/ui form components. Match the product's existing form patterns.
Create src/components/{scope}/{name}/columns.tsx:
"use client";
import { type ColumnDef } from "@tanstack/react-table";
import { type {Name} } from "@prisma/client";
export const columns: ColumnDef<{Name}>[] = [
// Column for each visible field
// Actions column (edit, delete) at the end
];
Only create if the feature has a list view.
Add keys to both dictionaries:
src/dictionaries/en.json (or wherever the product keeps dictionaries):
{
"{name}": {
"title": "{Name}",
"create": "Create {Name}",
"edit": "Edit {Name}",
"delete": "Delete {Name}",
"empty": "No {name} found"
}
}
src/dictionaries/ar.json:
{
"{name}": {
"title": "{Arabic translation}",
"create": "{Arabic}",
"edit": "{Arabic}",
"delete": "{Arabic}",
"empty": "{Arabic}"
}
}
If the feature needs a navigation entry (sidebar, menu), find the product's navigation config and add an entry. Only if the spec calls for it.
pnpm build
Error recovery loop (max 5 attempts):
pnpm buildgh issue comment <number> --repo <repo> --body "## Wire Stage Complete
**Page**: \`src/app/[lang]/{route}/{name}/page.tsx\`
**Content**: \`src/components/{scope}/{name}/content.tsx\`
**Form**: \`src/components/{scope}/{name}/form.tsx\`
**Columns**: \`src/components/{scope}/{name}/columns.tsx\` (if created)
**I18n**: Dictionary keys added (en + ar)
**Build**: Passing"
| Error | Fix | Max Retries |
|---|---|---|
| Build failure | Parse error, apply targeted fix | 5 |
| Missing component | Check import path, verify component exists | 3 |
| Type mismatch in props | Align with action return types | 3 |
| i18n key not found | Add missing dictionary key | 2 |
| Server/client boundary | Move "use client" or restructure component | 3 |
pnpm build passes