| title | Field Documentation SOP |
|---|---|
| description | Standard operating procedure for documenting SolidX field types across schema, rendering, and quality check artifacts. |
| sidebar_position | 2 |
This page defines the standard operating procedure for documenting each SolidX field type.
It is the working contract used when expanding field coverage across:
- Field Metadata
- View Metadata
- frontend quality checklists in
solid-core-ui - backend quality checklists in
solid-core-module
The goal is consistency. Each field type should be documented with the same structure, the same split of responsibility, and the same level of evidence.
For each field type, we update the following artifacts together:
- field-metadata.md
- view-metadata.md
- field-quality-check-fixes.md
- field-quality-check-fixes.md
- field-quality-check-fixes.md
The same field type appears in more than one place, but each page has a distinct job.
field-metadata.md is the schema and runtime contract for a field type.
It answers questions such as:
- What does this field type mean?
- Which attrs belong to the field definition itself?
- How is the field validated?
- How does it persist?
- How does it participate in filtering, querying, relation handling, or other backend behavior?
It does not own widget catalogs or layout behavior.
view-metadata.md is the rendering and layout contract for a field type.
It answers questions such as:
- How does this field render by default in a form?
- How does it render by default in a list?
- Which layout attrs and field-node attrs matter?
- Which alternative widgets are supported?
- Which widget-specific attrs are supported?
- What do real metadata examples look like?
The quality checklist files are the improvement backlog that sits next to the implementation.
solid-core-ui/src/components/core/form/field-quality-check-fixes.mdCovers form-layer concernssolid-core-ui/src/components/core/list/field-quality-check-fixes.mdCovers list and tree rendering concernssolid-core-module/src/helpers/field-crud-managers/field-quality-check-fixes.mdCovers backend validation, transformation, persistence, and correctness concerns
For each field type, follow this sequence:
- Review the backend field contract in
solid-core-module - Review the form implementation in
solid-core-ui - Review the list and tree implementation in
solid-core-ui - Search for real metadata examples in consuming projects
- Update
field-metadata.md - Update
view-metadata.md - Update the three quality checklist files
This keeps the docs and the implementation backlog aligned.
Every field-type pass should be grounded in the actual implementation.
Only document attributes that are currently supported by the platform. If an attribute exists in an entity or code path but is not supported in practice, do not mention it in the docs, examples, or per-field reference tables until support is real and reviewable.
Review the relevant backend behavior in:
solid-core-module/src/entities/field-metadata.entity.tssolid-core-module/src/services/crud.service.tssolid-core-module/src/services/crud-helper.service.tssolid-core-module/src/helpers/field-crud-managers/
Review the relevant frontend behavior in:
solid-core-ui/src/components/core/form/fields/solid-core-ui/src/components/core/list/columns/solid-core-ui/src/components/core/list/widgets/solid-core-ui/src/helpers/registry.ts
Search for real metadata usage across consuming projects under:
/Users/harishpatel/Code/javascript
Prefer examples from application metadata over invented snippets. Use full widget names, aliases, and likely field names when searching.
If no trustworthy example exists, explicitly use:
Example coming soon..
For each field type section in field-metadata.md, use this structure:
- Short overview
- Attribute reference table
- Runtime behavior
- Representative field metadata example
- Pointer to view metadata for rendering concerns
- semantic meaning of the field
- field-level attrs only
- validation behavior
- persistence behavior
- filtering and query behavior where relevant
- platform flags where relevant
- specialized semantics such as relation, media, selection, or computed behavior
- layout attrs
- widget-specific attrs
- widget catalogs
- list, form, or tree rendering documentation
- unsupported field attrs, even if they exist in the underlying entity shape
For each field type section in view-metadata.md, use this structure under the relevant view families.
For each field type under List View and Form View:
- Short rendering overview
- Main tab group:
Default renderingAlternative widgets
The Default rendering tab should contain:
- the default widget or widgets
- default behavior
- relevant layout attrs and field-node attrs
- one default example inside the standard collapsed accordion
The Alternative widgets tab should contain:
- a summary table of supported alternative widgets
- all widget-specific documentation for that field type
Each alternative widget should then have:
- A small subsection within the
Alternative widgetstab - A nested tab group:
Extra attrsExample
If a widget has no real consumer example yet, the example tab should say:
Example coming soon..
Tree View should document only tree-specific behavior.
If the tree renderer reuses list widgets, say that clearly and avoid duplicating the full widget catalog.
Card and Kanban should be documented at the card-composition level unless a field type has meaningful field-specific widget behavior there.
Use the following rules when choosing examples:
- Prefer real metadata from consuming projects
- Prefer examples that are clean and representative
- Prefer examples that demonstrate the actual behavior being documented
- Avoid examples that blur field-type boundaries or rely on unusual edge cases unless the edge case is the point
- If a widget is registered but no trustworthy real usage exists, do not invent one without calling that out
For each field type, update all three checklist files.
Add items for:
- validation gaps
- attr contract ambiguities
- transformation and normalization concerns
- persistence or query consistency issues
- logical enhancements that preserve the current architecture
Add items for:
- edit and view widget gaps
- input behavior issues
- accessibility and UX improvements
- attribute support gaps
- meaningful alternative widget opportunities
Add items for:
- list and tree rendering gaps
- truncation, scanability, and discoverability issues
- widget support gaps
- ambiguous rendering behavior
- meaningful alternative widget opportunities
All documentation should read like product documentation rather than internal notes.
Write in a style that is:
- clear
- direct
- implementation-aware
- user-facing
- consistent across field types
Avoid:
- internal shorthand
- notes to ourselves
- excessive service or class name references
- implementation narration when a stable behavioral explanation is enough
A field type is considered complete for a given pass when:
field-metadata.mdis updatedview-metadata.mdis updated- the three quality checklist files are updated
- real examples have been added where available
- placeholders remain only where evidence is not yet available
- the docs read cleanly without mixing backend and frontend concerns