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.

View source

How to use

  1. Copy the installation command and review the source package before installing it in your own agent environment.
  2. Check the source document for required tools, credentials and supported hosts.
  3. Describe your input and desired deliverable; review the output against the source material.
npx skills add https://github.com/factorialco/factorial-code-skills --skill fcode-json-schema

Before you start

  • Installation does not include a model subscription, API allowance or permission to access your files.
  • Repository stars and installation counts describe activity, not an independent quality or security test.
Original skill document

Rendered from the source repository. Headings, examples, code, tables, links, and referenced images are preserved.

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.

Related by task

from this repository

More skills

All skills
factorialco
Community

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.

installs
1
GitHub stars
1
Updated
Oct 20
factorialco
Community

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

installs
1
GitHub stars
1
Updated
Oct 20
factorialco
Community

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.

installs
1
GitHub stars
1
Updated
Oct 20
factorialco
Community

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.

installs
1
GitHub stars
1
Updated
Oct 20