formio/formio-ai
Build applications on the Form.io platform. Bundles the Form.io MCP server with a skill library covering app orchestration, form building, resource planning, JSON schema authoring, actions, authentication, the @formio/js SDK, and the full Form.io REST surface.
Deep reference for configuring Form.io actions — the server-side behavior layer that powers email notifications, authentication, webhooks, role assignment, and form-to-form saves. Use this skill whenever the user wants to add, configure, or troubleshoot an action on a form, choose the right action type for a use case, understand the action execution lifecycle, set up conditions or handler/method combinations, or wire up authentication flows. Also use when the user mentions action settings, action priorities, action conditions, email actions, login actions, webhook actions, role actions, save actions, or reset password actions — even if they don't say "action" explicitly (e.g., "send an email when someone submits", "add login to this form", "assign a role after registration"). Not for: auth architecture — SSO (OIDC/OAuth/SAML/LDAP), Token Swap, Custom JWT, JWT/session mechanics, 2FA, or RBAC tuning (see formio-auth); REST endpoint lookups (see formio-api).
Angular framework implementor for the Form.io skill library — turns an approved template.json plus a target Form.io project into a working Angular application using @formio/angular, via a five-phase gated flow (setup, bootstrap, config, auth, resources). Invoked as the handoff from formio-application, or directly when the user explicitly names Angular. Claims ONLY Angular-explicit triggers. Use when the user says "build it in Angular", "Angular front-end for this Form.io project", "use Angular", "use @formio/angular", "the Angular skill", or "wire up FormioAppConfig". Not for: framework-agnostic app requests (see formio-application); extending a running Angular app — which loads the nested formio-angular-resources sub-skill at ./formio-angular-resources/SKILL.md (not a top-level skill); planning a data model (see formio-resource-planner); framework-agnostic embed/render-a-form requests (see formio-form); REST endpoint lookups (see formio-api).
Comprehensive Form.io API reference — every endpoint in the Form.io API Postman collection across platform admin, project admin, runtime/end-user, and PDF scopes. Use when the user asks to call, script, inspect, or document any Form.io REST endpoint: platform/project auth; projects, stages, tenants, teams; forms, resources, and revisions (create, list, update, import, export); actions; roles; end-user registration and login; submissions (submit, query, patch, delete); aggregation reports; PDF template uploads and submission downloads; health/status. Also for x-jwt-token auth questions and the base URL vs project URL distinction. Not for: building a whole application around Form.io (see formio-application); planning a data model (see formio-resource-planner); authoring Form.io JSON schemas (see formio-schema); calling the JavaScript SDK — Formio.* statics, new Formio(...) instances, Utils.* helpers (see formio-sdk).
Default "build me an app" orchestrator — builds a new application backed by a Form.io project from a plain-language idea, or extends an existing app with a new feature; the user never needs framework or Form.io terminology. Use whenever the user wants to build, create, spin up, or stand up an app, tool, portal, dashboard, or tracker around data — "build me an app", "create a CRM", bare archetypes ("task manager", "help desk") — or extend one: "also track X", "add a way to see Y". Not for: Angular-explicit builds (see formio-angular) or extensions (see formio-angular-resources); planning a data model without building an app (see formio-resource-planner); embedding or rendering an existing form in a page — "embed this form" (see formio-form); creating a standalone single form (no data model or app around it — see formio-form-builder); REST endpoint lookups (see formio-api).
Form.io authentication and authorization specialist — resource-backed login (Login plus Role Assignment Actions), role-based access control and group permissions, SSO via OIDC/OAuth/SAML/LDAP with provider role mapping, Token Swap, Custom JWT for Enterprise/on-prem (signed with JWT_SECRET), email-token (passwordless) auth, and JWT/session mechanics (the x-jwt-token header, jti Session ID, logout, 2FA, reCAPTCHA). Use when the user asks to configure how users authenticate — SSO, OIDC, OAuth, SAML, LDAP, Token Swap, Custom JWT, passwordless auth, JWT, sessions, roles, permissions, RBAC, group permissions, 2FA, or reCAPTCHA in Form.io. Not for: designing the resource map or data model (see formio-resource-planner); orchestrating an app build (see formio-application); adding a Login or Role Assignment Action to one form — per-form action settings, priorities, conditions (see formio-actions); REST endpoint lookups (see formio-api); wiring a login screen into Angular (see formio-angular).
Embed and render Form.io forms in any web application with the Vanilla JS renderer @formio/js — render by URL or JSON, pre-fill with submissions, JavaScript control, renderer options, conditional fields, calculated values, JSON Logic validation, cascading selects, and conditional wizard pages. The library's default "embed a form" entry point. Use when the user asks to "embed a form", "render a form", "add this form to my page/site/app", "pre-fill a form", "show or hide a field based on another field", "calculate a field value", or "add custom validation to a field" — field behavior inside ANY framework's rendered form stays here. Not for: scaffolding or configuring an Angular app with @formio/angular (see formio-angular); building an app around data (see formio-application); designing the data model (see formio-resource-planner); REST endpoints (see formio-api); the raw SDK/Utils API reference (see formio-sdk); creating a NEW form — embed-only skill (see formio-form-builder).
Default "build me a form" orchestrator — builds a single Form.io form end to end: determines the form type (webform, wizard, or PDF form), delegates schema authoring to formio-schema, saves the form via the MCP server, and optionally hands off to embedding. Use when the user asks to "build a form", "create a form", make a "multi-page form", or create a "survey", "contact form", "intake form", "registration form", "questionnaire", or "pdf form" — or to edit an existing form's fields: "add a phone field to my registration form". Boundary: "build a form to collect X" (a standalone form) belongs to this skill; "track X / manage X / build an app around X" (a data model, CRUD, resources) belongs to formio-application / formio-resource-planner. Not for: embedding an EXISTING form (see formio-form); building an app (see formio-application); designing resources or permissions (see formio-resource-planner); raw JSON schema lookups (see formio-schema); REST endpoint lookups (see formio-api).
Connects the Form.io MCP server (@formio/mcp) to whatever coding agent is running, so the Form.io skills have tools to call. Use when a Form.io skill's preflight finds the MCP tools missing, when Form.io tool calls fail because no Form.io tools are available, or when the user asks to install, connect, configure, or fix the Form.io MCP server. Also use when the user has installed the Form.io skills on their own but nothing has wired the server yet. Writes the MCP configuration for the client it is running in — Claude Code, Cursor, VS Code, or Codex — behind an approval gate, falling back to all four when the host cannot be established, then asks the server which Form.io project this directory resolves to and captures only whichever URL it reports missing, so the first tool call works, and tells the user how to reload. Not for: authenticating to Form.io (see formio-auth); building anything with Form.io — return to the skill that sent you here once the server is connected.
Plan the Resource structure, field configurations, and access/permission model for a Form.io application, then emit a ready-to-import project template.json (Phase A: a human-readable Resource Map for approval; Phase B: the full template with roles, resources, forms, and actions). Interview-driven — infers resources and asks about relationships, auth, and access before committing. Use when the user asks to design, architect, model, or plan the resources, schema, data model, or access model — "design the resources for...", "plan the schema for...", "model <domain> in Form.io". Not for: building or standing up the app itself — "build me a task manager / CRM" (see formio-application, which invokes this planner internally as its planning step); standalone single-form creation — one survey, contact form, or questionnaire with no data model (see formio-form-builder); SSO, Token Swap, Custom JWT, 2FA, or RBAC tuning beyond default roles (see formio-auth); endpoint lookups (see formio-api).
Form.io JSON schema reference covering the document shapes for projects, forms (and resources), and submissions. Use whenever constructing, editing, or interpreting Form.io JSON — form definitions returned by form_get / form_create / form_update; submission bodies (decoding data, row-level access, draft state, metadata); and project documents (settings, integrations, auth providers (OAuth/LDAP/SAML), stages, tenants, and template envelopes for project_import / project_export). Trigger for schema-level questions about form components, wizards, resources, submissions, project templates, conditional logic, validation rules, or any component type (textfield, select, datagrid, panel) when the work involves Form.io JSON. Not for: calling Form.io REST endpoints (see formio-api); configuring server-side actions on a form (see formio-actions); planning a new app's resource model from scratch (see formio-resource-planner); orchestrating an entire app build (see formio-application).
Source-derived reference for the Form.io JavaScript SDK (@formio/js), the Utilities (@formio/js/utils), and the @formio/core-only helpers — authored from the Form.io source code. Covers static methods (setBaseUrl, setProjectUrl, setToken, currentUser, logout), instance methods on new Formio(url) (forms, submissions, files), the VanillaJS rendering entry point (Formio.createForm), the plugin lifecycle, and the Utils surface (Evaluator, traversal, conditions, JSONLogic, mask/sanitize). Use when the user asks to call a Formio.* static method, work with a new Formio(...) instance, invoke a Utils.* helper, evaluate JSONLogic, register a plugin, traverse component trees, or decode the JWT. Not for: REST endpoint shapes (see formio-api); orchestrating an app build (see formio-application); planning Resource schemas (see formio-resource-planner); @formio/angular wrappers (see formio-angular); embed/render-a-form tasks (see formio-form — this stays the raw API reference).