factorialco/factorial-code-skills

fcode-json-schema

Author Factorial Code process input-parameter schemas (parametersSchema.json) — every supported input type and validation option, with a complete annotated sample.

查看源码

使用方法

  1. 复制安装命令,在自己的智能体环境安装前先检查源码包。
  2. 从原始文档核对所需工具、凭据和支持的宿主。
  3. 说明输入材料与期望交付物,并对照来源检查输出。
npx skills add https://github.com/factorialco/factorial-code-skills --skill fcode-json-schema

开始前需了解

  • 安装不包含模型订阅、API 额度或访问文件的权限。
  • 仓库星数和安装量反映活跃情况,不等于独立质量或安全测试。
仓库原始内容

按源仓库内容呈现,保留标题、案例、代码、表格、链接以及原文引用的演示图片。

Factorial Code — input parameter schemas

A process's input parameters are defined by a JSON Schema in parametersSchema.json. The same schema is what fcode-forms renders as a web form, so designing the schema is designing the form. Values arrive in code as fcode.context.parameters (see fcode-javascript / fcode-python).

Schemas render with react-jsonschema-form, so its ui: options apply.

How to author one

  1. Top level is "type": "object" with a properties map (one entry per field)

and an optional required array.

  1. Pick a type per field (string, integer, number, boolean, array,

object) and add validation (minimum/maximum, format, enum/oneOf, uniqueItems, nested properties).

  1. Control rendering with a per-field ui object (e.g.

"ui": { "ui:widget": "textarea" }).

  1. Open `assets/parametersSchema.sample.json` for a complete, copy-pasteable

schema exercising every supported type — adapt fields from it rather than guessing the shape.

Field types & widgets (in the sample)

  • Text — "type": "string"; format: "email"; ui:widget of textarea,

color, hidden, or file.

  • Secret — "isSensitive": true masks the input (e.g. passwords/tokens).
  • Numbers — integer / number with minimum / maximum.
  • Boolean — "type": "boolean".
  • Choices — enum (select), oneOf of { const, title } (labeled radio

with ui:widget: "radio"), or an array with ui:widget: "checkboxes" + uniqueItems.

  • Structured — nested object with its own properties/required; arrays

of strings or of objects (type: "array" + items); raw JSON via "ui": { "ui:field": "json" }.

  • Conditional fields — use top-level dependencies to show/hide fields based

on another field's value (see anotherBooleanField in the sample).

  • Content around a field — a per-field markdown object with before /

after strings renders block markdown (full GFM, incl. tables) above/below the field. Detail and a worked example in fcode-forms (references/advanced.md).

  • Long forms — split roughly ten or more fields into steps with a root-level

ui:steps node; see fcode-forms §Multi-step forms.

  • Connect an external account — a string or boolean with

"ui": { "ui:widget": "oauth", "ui:options": { "authorizationUrl": … } } renders a button that completes an OAuth flow in a popup ("ui:field": "oauth" for an object; see oneOauthConnectField in the sample). Contract and callback in fcode-forms §Connect an external account.

Gotchas

  • A file field ("ui:widget": "file") is auto-uploaded to Storage before

the process runs; the parameter arrives as an fcode.storage://… reference, not the file contents. Strip the prefix before fcode.storage.download(...).

  • `isSensitive: true` only affects display/masking — still read the value

from a secret variable, never hardcode it.

  • **An oauth field's authorizationUrl must be injected with

{ "$ref": "#/variables/x" }** from a preRenderProcess variable — never {{x}}, which Mustache HTML-escapes into a URL the widget refuses (the button renders disabled with a console warning).

  • The schema is the single source of the form's fields — to change fields, edit

the schema, not the form embed code.

  • The schema is data, not code — no executable JavaScript, and all form

text is markdown (raw HTML is never rendered). Client-side behaviour belongs in the embedding page — see fcode-forms.

  • Visible text can be translated: schema strings (titles, descriptions,

ui:placeholder) accept fcode.i18n("key") tokens, substituted server-side before the form is served — see fcode-i18n.

按任务相关推荐

来自同一仓库

更多 Skills

全部 Skills
factorialco
社区

fcode-code-validation

Pre-production review of a Factorial Code app — clone the workspace read-only, run the static check catalog, classify findings as Blocker/Warning/Suggestion, and write APPVALIDATIONREPORT.md with a ✅/❌ promotion verdict. Use when validating, reviewing, or auditing a Factorial Code (fcode) app or workspace before a release, or when asked whether an app is ready to ship.

安装量
1
GitHub Stars
1
最近更新
10月20日
factorialco
社区

fcode-cli

Use the Factorial Code CLI (fcode) for local development and cloud sync — the pull → add → run → push flow, the local webhook/forms server, workspace versions and aliases, and the workspace config files (metadata.json, settings.json, variables). Use when running fcode commands, testing a process locally, syncing to the cloud, cloning every App of a development team, inspecting or resolving differences between local and cloud, or configuring a process's webhook, Factorial Action (the factorial bl

安装量
1
GitHub Stars
1
最近更新
10月20日
factorialco
社区

fcode-core-concepts

Factorial Code platform architecture and core concepts — processes, modules, execution context, variables, inheritance from parent workspaces, datastore, file storage, workspace structure, and naming conventions. Use when building, editing, or reasoning about any Factorial Code (fcode) process, module, or workspace; start here before writing process or module code.

安装量
1
GitHub Stars
1
最近更新
10月20日
factorialco
社区

fcode-examples

Reference implementations for Factorial Code — a complete marketplace payroll integration, a custom app with full install/uninstall lifecycle, an OAuth account connection from a form, and utility processes. Use when building a Factorial Code (fcode) integration, custom app, or automation end to end and you want a proven, working pattern to adapt — read the matching reference before writing code.

安装量
1
GitHub Stars
1
最近更新
10月20日