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.

First seen Jun 23, 2026

Installation

$ npx skills add factorialco/factorial-code-skills --skill fcode-json-schema

Summary

  • Author Factorial Code process input-parameter schemas (parametersSchema.json) — every supported input type and validation option, with a complete annotated sample.
  • Use when creating or editing a parametersSchema.json, or defining a Factorial Code (fcode) process's input parameters or form fields.

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from factorialco/factorial-code-skills · top by installs.

npx skills add factorialco/factorial-code-skills

Browse all from factorialco/factorial-code-skills

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

License LICENSE
Default branch main
Open issues 0
Status Active

Skill metadata

Parsed from SKILL.md frontmatter.

LicenseMIT
More metadata
category
factorial-code

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 3,624 B
  • docs SUMMARY.md 324 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 222 installs

SKILL.md

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).
  • Numbersinteger / number with minimum / maximum.
  • Boolean"type": "boolean".
  • Choicesenum (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.

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.

  • 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.