grill-me
Interview the user relentlessly about a plan or design until reaching shared understanding,…
admin/form — 26 abstractions.
$ npx -y skills add webiny/webiny-js --skill form --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/formContext preview
The summary Claude sees to decide when to auto-load this skill.
admin/form — 26 abstractions.
name: webiny-admin-form-catalog description: > admin/form — 26 abstractions.
1. Find the abstraction you need below 2. You MUST read the source file to get the exact interface and types! 3. Import: `import { Name } from "<importPath>";`
---
**Name:** `Bind` **Import:** `import { Bind } from "webiny/admin/form"` **Source:** `@webiny/form/index.ts`
---
**Name:** `createFieldRenderer` **Import:** `import { createFieldRenderer } from "webiny/admin/form"` **Source:** `@webiny/app-admin/features/formModel/createFieldRenderer.tsx`
---
**Name:** `createObjectFieldRenderer` **Import:** `import { createObjectFieldRenderer } from "webiny/admin/form"` **Source:** `@webiny/app-admin/features/formModel/createFieldRenderer.tsx`
---
**Name:** `FieldBuilder` **Import:** `import { FieldBuilder } from "webiny/admin/form"` **Source:** `@webiny/app-admin/features/formModel/FieldBuilder.ts` **Description:** Base FieldBuilder with fluent API. Each method mutates `this` and returns `this` for chaining.
---
**Name:** `FieldType` **Import:** `import { FieldType } from "webiny/admin/form"` **Source:** `@webiny/app-admin/features/formModel/abstractions.ts`
---
**Name:** `Form` **Import:** `import { Form } from "webiny/admin/form"` **Source:** `@webiny/form/index.ts`
---
**Name:** `FormAPI` **Kind:** type **Import:** `import type { FormAPI } from "webiny/admin/form"` **Source:** `@webiny/form/index.ts`
---
**Name:** `FormErrors` **Import:** `import { FormErrors } from "webiny/admin/form"` **Source:** `@webiny/app-admin/features/formModel/index.ts`
---
**Name:** `FormModel` **Kind:** type **Import:** `import type { FormModel } from "webiny/admin/form"` **Source:** `@webiny/app-admin/features/formModel/index.ts`
---
**Name:** `FormModelFactory` **Import:** `import { FormModelFactory } from "webiny/admin/form"` **Source:** `@webiny/app-admin/features/formModel/abstractions.ts`
---
**Name:** `FormOnSubmit` **Kind:** type **Import:** `import type { FormOnSubmit } from "webiny/admin/form"` **Source:** `@webiny/form/index.ts`
---
**Name:** `FormView` **Import:** `import { FormView } from "webiny/admin/form"` **Source:** `@webiny/app-admin/features/formModel/index.ts` **Description:** Generic form view that walks layout nodes and renders fields. This component is stateless — it reads from the FormVM and delegates to renderers.
---
**Name:** `GenericFormData` **Kind:** type **Import:** `import type { GenericFormData } from "webiny/admin/form"` **Source:** `@webiny/form/index.ts`
---
**Name:** `IFieldBuilderRegistry` **Kind:** type **Import:** `import type { IFieldBuilderRegistry } from "webiny/admin/form"` **Source:** `@webiny/app-admin/features/formModel/abstractions.ts`
---
**Name:** `IFieldRendererRegistry` **Kind:** type **Import:** `import type { IFieldRendererRegistry } from "webiny/admin/form"` **Source:** `@webiny/app-admin/features/formModel/abstractions.ts`
---
**Name:** `IFieldVM` **Kind:** type **Import:** `import type { IFieldVM } from "webiny/admin/form"` **Source:** `@webiny/app-admin/features/formModel/abstractions.ts`
---
**Name:** `IObjectFieldItemVM` **Kind:** type **Import:** `import type { IObjectFieldItemVM } from "webiny/admin/form"` **Source:** `@webiny/app-admin/features/formModel/abstractions.ts`
---
**Name:** `IObjectFieldVM` **Kind:** type **Import:** `import type { IObjectFieldVM } from "webiny/admin/form"` **Source:** `@webiny/app-admin/features/formModel/abstractions.ts`
---
**Name:** `UnsetOnUnmount` **Import:** `import { UnsetOnUnmount } from "webiny/admin/form"` **Source:** `@webiny/form/index.ts`
---
**Name:** `useBind` **Import:** `import { useBind } from "webiny/admin/form"` **Source:** `@webiny/form/index.ts`
---
**Name:** `useBindPrefix` **Import:** `import { useBindPrefix } from "webiny/admin/form"` **Source:** `@webiny/form/index.ts`
---
**Name:** `useForm` **Import:** `import { useForm } from "webiny/admin/form"` **Source:** `@webiny/form/index.ts`
---
**Name:** `useGenerateSlug` **Import:** `import { useGenerateSlug } from "webiny/admin/form"` **Source:** `@webiny/form/index.ts` **Description:** This hook is designed to be used with the `useForm` hook. When `generateSlug` is called, it will generate a slug using the `from` form field, and set it into the `to` form field.
---
**Name:** `validation` **Import:** `import { validation } from "webiny/admin/form"` **Source:** `@webiny/validation/index.ts`
---
**Name:** `Validation` **Import:** `import { Validation } from "webiny/admin/form"` **Source:** `@webiny/validation/index.ts`
---
**Name:** `ValidationError` **Import:** `import { ValidationError } from "webiny/admin/form"` **Source:** `@webiny/validation/index.ts`
---
Open-source content platform. Self-hosted on AWS serverless. Built as a TypeScript framework you extend with code, not a closed product you configure through a UI. Runs on Lambda, DynamoDB, S3, and CloudFront inside your own AWS account. Scales automatically.
Repo: webiny/webiny-js
Interview the user relentlessly about a plan or design until reaching shared understanding,…
Turn a PRD into a multi-phase implementation plan using tracer-bullet vertical slices, saved…
Webiny-only. Run all checks required before packages are ready for publish: deps, build,…
Use when running tests. Shows how to run tests for a single package, including OpenSearch…
Generate, refresh, and maintain Webiny MCP server skills from source documentation and…
Create a PRD through user interview, codebase exploration, and module design, then submit as…