Validation prompt

Use this prompt to ask an AI system to validate an extract of a component.

You are validating a JSON export of a process module component definition.

Apply the following standards:

1. Folder structure
   - Each folder contains all nodes for a single independent component.
   - Folder name uses lower_snake_case and matches the component reference if applicable.

2. Component structure
   - Type: ProcessSpecificationType.
   - Name: Title Case (e.g., "Create Folder").
   - Reference: UpperCamelCase with suffix "Component" (e.g., CreateFolderComponent).
   - If used as a process type, reference may be in lower_snake_case.
   - Includes at least one process via ProcessSpecificationElements.
   - Options are structured as one object per component (e.g., "myComponent": { ... }).
   - Option keys use lowerCamelCase.
   - PermitPlaceholderOverridesIndicator should be true if placeholder overrides are used.
   - system.NODE_DESCRIPTION is used for documentation. This is considered the lowest-level component.

3. Process definition
   - Type: ProcessType.
   - Each step has explicit name and script.
   - Scripts use string values starting with "stepType" (e.g., `"stepTypeForm"`), **not** placeholders like `"${stepTypeForm}"`, and **must** match binding values declared in `system.BINDINGS`.
   - No bindings other than step types are permitted in the process itself.
   - All forms/scripts and other dynamic values must be referenced via **definition placeholders** in the form `"${componentReference.propertyReference}"`.
   - next is always explicit.
   - Status rules are embedded in the process step, unless they have url properties which indicate calls to folders from tasks.
   - Placeholders (`${...}`) are used for options, `%{...}` for runtime.

4. Options and bindings
   - All step types used in scripts are listed in `system.BINDINGS`.
   - Non-step-type bindings must be private (if used).
   - No script or form references directly in process config — they must go through options.
   - Definition placeholders (`${componentReference.propertyReference}`) must be used for all configurable references in process definitions.
   - The component’s `library.core.NodeOptions` must contain default values in the structure:
     ```json
     {
       "componentReference": {
         "propertyReference": "..."
       }
     }
     ```
   - Placeholder names and object keys use lowerCamelCase.

5. Documentation
   - All variable options are documented in the component's system.NODE_DESCRIPTION.
   - Runtime configuration does not need to be documented unless used.
- Each documented option should correspond to a property in the component's `NodeOptions`.
6. Option usage consistency
   - Check for any placeholders used in the process of the form `${componentReference.property}`.
   - For each placeholder:
     - Confirm that the corresponding property is defined in `library.core.NodeOptions` under the correct component key.
     - Confirm that the property is described in `system.NODE_DESCRIPTION`.
 - Also check for any properties defined in `NodeOptions` or documented in `system.NODE_DESCRIPTION` that are not used in any process step. --- Return a validation report in the following format: ### Validation report **Summary** Brief one-line summary of what the definition does. **Folder and reference structure** - [✓/✗] Folder structure and naming - [✓/✗] Component and process references **Component** - [✓/✗] Name and reference format - [✓/✗] Type = ProcessSpecificationType - [✓/✗] Correct use of ProcessSpecificationElements - [✓/✗] Component options structured under correct key - [✓/✗] Option keys use lowerCamelCase - [✓/✗] Overrides permitted if needed - [✓/✗] system.NODE_DESCRIPTION present and appropriate **Process** - [✓/✗] Process type and name - [✓/✗] Step scripts via stepTypeXXXX bindings only - [✓/✗] No non-step-type bindings - [✓/✗] Placeholders used correctly for options - [✓/✗] next explicitly set for all steps - [✓/✗] Status rules embedded where needed **Bindings and placeholders** - [✓/✗] All step types declared in system.BINDINGS - [✓/✗] No forbidden bindings - [✓/✗] Options not mixed with bindings - [✓/✗] Placeholder names valid and structured **Documentation** - [✓/✗] Options documented in lowest-level component - [✓/✗] Runtime config documented if used **Option usage consistency** - [✓/✗] All used options are defined in NodeOptions - [✓/✗] All used options are documented in system.NODE_DESCRIPTION - [✓/✗] All defined options are used in the process - [✓/✗] All documented options are used in the process Breakdown: **Used but not defined**: ... **Used but not documented**: ... **Defined but not used**: ... **Documented but not used**: ... **Notes** List any recommendations, unusual design decisions, or things worth checking manually.

**Actions**
List actions per node, titling and ordering nodes by system.NODE_NAME property.