Quick Reference: Embedded Prompts in Tasks

Prompt Structure

Every prompt needs:

#— layout: default title: Prompts Quick Reference - Scaffoldfy


Prompts Quick Reference

Input

{
  "id": "projectName",
  "type": "input",
  "message": "Project name?",
  "default": "my-project",
  "required": true
}

Password

{
  "id": "apiKey",
  "type": "password",
  "message": "Enter API key",
  "required": true
}

Number

{
  "id": "port",
  "type": "number",
  "message": "Port number?",
  "default": 3000,
  "min": 1024,
  "max": 65535
}

Select

{
  "id": "framework",
  "type": "select",
  "message": "Choose framework",
  "choices": [
    { "name": "React", "value": "react" },
    { "name": "Vue", "value": "vue" }
  ],
  "default": "react"
}

Confirm

{
  "id": "includeTests",
  "type": "confirm",
  "message": "Include tests?",
  "default": true
}

Using Prompt Values

Values are available via template interpolation:

{
  "config": {
    "file": "package.json",
    "updates": {
      "name": "",
      "version": "",
      "port": ""
    }
  }
}

Minimal Example

{
  "prompts": [
    {
      "id": "appName",
      "type": "input",
      "message": "App name?",
      "required": true
    }
  ],
  "tasks": [
    {
      "id": "setup",
      "name": "Setup",
      "description": "Configure project",
      "required": true,
      "enabled": true,
      "type": "update-json",
      "config": {
        "file": "package.json",
        "updates": {
          "name": ""
        }
      }
    }
  ]
}

Common Properties

Property Types Description
id all Unique identifier for the value
type all input, password, number, select, confirm
message all Question text
required all Force non-empty value
default input, number, select, confirm Default value
min number Minimum value
max number Maximum value
choices select Array of {name, value} objects

Root-Level Prompts

All prompts are defined at the root level and are available to all tasks:

{
  "prompts": [
    {
      "id": "projectName",
      "type": "input",
      "message": "Project name?"
    }
  ],
  "tasks": []
}

Validation Rules