用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/tomevault-io/skills-registry --skill formio-application命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
| Use when this capability is needed.
> Use when this capability is needed.
Review architecture and API design for the vfs-s3 project. Use when the user mentions @architect, asks to review an issue's design, discuss module boundaries, API shape, or architectural decisions for vfs-s3. Also trigger when the user wants to create an ADR (Architecture Decision Record) or evaluate a technical approach for the project. Intended for dispatch from Codex automation or Claude routines; GitHub trigger phrase: @vfs-s3-bot please prepare design doc Use when this capability is needed.
基于 SOC 职业分类
正在显示 SKILL.md
| name | formio-application |
| description | >- Use when this capability is needed. |
You are the library's default "build me an app" skill. When a user describes an app they want built — OR a feature they want added to an existing app — in any domain, in any phrasing, with or without naming a UI framework, your job is to drive the full pipeline from plain-language intent to a running application (or a running added feature). The user should never have to know Form.io terminology, choose a framework when only one is installed, or manually invoke the planner, the MCP server, or any framework-specific skill. You do the routing; they describe what they want.
formio-resource-planner. Framework file generation lives in formio-angular (today) and in future framework skills. Your job is to orchestrate the handoffs, not to duplicate their logic.project_import (import is additive — adding new resources to the existing project is safe). What modify-existing skips is Deployment (URLs are already in the workspace) and MCP Config (.mcp.json already exists and targets the right project). Then route to the framework's extend sub-skill with the new resources in hand.AskUserQuestion per step. Do not pepper..mcp.json and halts the invocation — Claude Code only picks up new MCP env at session start, so the user restarts (or runs /mcp to reconnect) before Step 5 can run. Modify-existing has no restart boundary — its .mcp.json is already in place.Anything from a one-sentence domain description up to a fully-modeled workspace:
| What the user gives you | What you do |
|---|---|
| "I want to build a CRM" (no existing workspace, no plan, no URLs) | Run the full build-new pipeline — Intent → Plan (full) → Deployment → MCP Config (halts for restart) → Import → Framework routing. |
An approved planner template.md + template.json pair already in scope | Skip planner inference; start at Intent (confirm the user wants to proceed), then Deployment. |
| "Also track X in my event app" (existing workspace) | Run Intent → Plan (delta — only the new resources for X) → Import (additive merge) → Framework routing to the extend sub-skill. Skip Deployment and MCP Config. |
| Explicit framework naming ("build it in Angular", "add an Angular module for X") | Do not activate. The user has chosen the framework; formio-angular or formio-angular-resources will handle it directly. |
Determine whether this is a new app to build or an existing app to extend. See INTENT.md for the AskUserQuestion script and the downstream routing consequence of each answer.
Invoke formio-resource-planner with the user's plain-language description. The planner runs its own two-phase approval gate (Phase A: Resource Map for review; Phase B: the paired artifacts template.md + template.json on approval). Do not add a second gate on top.
template.md (architectural intent, Access Matrix, ER + Access Flow diagrams) and template.json (every resource, role, form, and action the new app needs).template.md + template.json that contain ONLY the new resources, fields, or actions for the requested feature. The planner is told (a) that the project already exists and has resources loaded, (b) to plan only what is new, and (c) that the template will be merged additively on top of the existing project.The planner writes both files to the working directory as a paired set (same basename; same collision timestamp if either name is taken). Stash BOTH paths — you will pass them both to Step 5 (Import — reads template.json) and Step 6 (Framework routing — hands both to the framework skill). On the modify-existing branch, additionally stash a list of the delta resource names for the framework's extend sub-skill in Step 6.
Plugin mode. Capture only the Form.io Project URL in one AskUserQuestion — the verify-project-url hook surfaces FORMIO_DEFAULT_PROJECT_URL as the default option. Call project_set({ cwd, projectUrl }) to persist per-cwd routing so future sessions skip the prompt. Do NOT ask for Base URL — FORMIO_BASE_URL is inherited from the plugin's MCP server env (set via the user's plugin configuration, not per-cwd).
No-plugin mode. Capture the Form.io deployment URLs in one batched question (Base URL + Project URL). No hook-provided default; no project_set call (the server is spawned from .mcp.json in Step 4, not routed via ~/.formio/projects.json).
See DEPLOYMENT.md for the question shape, plain-language descriptions of Base URL and Project URL, example values, and how the captured values are stashed under FORMIO_PROJECT_URL and FORMIO_BASE_URL for downstream phases.
Skipped on the modify-existing branch — the existing workspace's FormioAppConfig already has both URLs. Read FORMIO_PROJECT_URL and FORMIO_BASE_URL from src/app/config.ts (or equivalent per the detected framework) and stash them as if Deployment had just run. Also skipped when the cwd is already mapped in ~/.formio/projects.json.
Skipped in plugin mode — when the @formio/ai plugin provides the MCP server (detected via mcp__plugin_formio-ai_formio-mcp__* tools or the verify-project-url hook), project_set from Step 3 has already routed per-cwd via ~/.formio/projects.json. No .mcp.json to write, no restart; continue to Step 5.
Otherwise, write (or merge) ./.mcp.json in the workspace root so that Claude Code, on the next session start or MCP reconnect, spawns the formio-mcp server against the captured Project URL + Base URL. Without this step, the MCP server runs against whatever env it was spawned with (usually stale or empty) and Step 5 (Import) targets the wrong project.
See MCP_CONFIG.md for the file shape, merge semantics (preserve existing command/args, preserve unrelated env keys, preserve unrelated mcpServers entries), default-command selection (a single npm-based default, npx -y @formio/mcp, with an opt-in escape-hatch for local clones), approval gate, and skip rule (existing entry already matches captured URLs).
Halt after writing. Claude Code reads .mcp.json at session start, not at tool-call time. The skill halts the current invocation after the write and tells the user to restart Claude Code (or run /mcp to reconnect the formio-mcp server if supported). When the user resumes, Steps 5–6 run in the next invocation.
If the skip rule applied (file already matches), no restart is needed; the skill continues to Step 5 in the same invocation.
Skipped entirely on the modify-existing branch — the existing app already has its MCP routing configured (plugin or .mcp.json).
Offer to import the planner's template.json into the target Form.io project. Approval gate before the call, citing URLs + plain-language template summary + merge-overwrite warning. On approval, invoke the project_import MCP tool. Import is additive — existing resources, roles, and forms are preserved; same-machine-name items are overwritten in place.
Authentication is implicit — the first authenticated MCP tool call (typically this project_import) triggers the portal-login flow automatically if no cached JWT exists. The browser opens, the user signs in, the JWT is cached, and the import proceeds. See IMPORT.md for the full script including the three error-handling branches (auth failure, project not found, import validation failure).
Consult the registry in FRAMEWORK.md and route:
formio-angular.AskUserQuestion, let the user pick, then route.angular.json → Angular). If detection matches exactly one, route directly to the framework's extend sub-skill; if ambiguous, ask the user.The framework's entry skill (build-new) or extend sub-skill (modify-existing) receives a handoff context with the workspace root, URLs, BOTH planner artifact paths (template.md + template.json), and (for modify-existing) the list of newly-imported resource names so the sub-skill knows exactly what Angular / React / other files to scaffold for the delta.
When handing off to a framework's entry skill (build-new), pass:
FORMIO_PROJECT_URL and FORMIO_BASE_URL (captured during Deployment).template.md file path (architectural-intent seed).template.json file path (structured companion).When handing off to a framework's extend sub-skill (modify-existing), pass:
FORMIO_PROJECT_URL and FORMIO_BASE_URL (read from the workspace's FormioAppConfig during Step 3's skip path).template.md file path.template.json file path.Any failure surfaces a clear, short message to the user and offers a choice: retry, skip, or bail. The user is never left in an ambiguous half-done state. See the per-step docs for the specific error branches each step handles.
INTENT.md — Step 1 build-vs-modify scriptDEPLOYMENT.md — Step 3 URL interviewMCP_CONFIG.md — Step 4 .mcp.json merge + restart gateIMPORT.md — Step 5 import confirmation + error branchesFRAMEWORK.md — Step 6 registry + routing