Atlas Forms
Naming Conventions
Consistent naming lets the AI generation pipeline scan a group and understand its patterns without human guidance. These conventions are enforced by validation rules in registerFormGroup() and by the AI pipeline's pattern matcher.
Group ID (formGroupId)
| Rule | Example — Correct | Example — Wrong |
|---|---|---|
| Kebab-case, all lowercase | guard-rails | GuardRails, guardRails |
| No underscores | node-policies | node_policies |
| Matches CategoryName (PascalCase) with hyphens replacing caps | work-desk ↔ WorkDesk | workdesk |
| Stable — never rename after first form is created | — | — |
FormCode
FormCode is the stable string identifier for a specific form. It is used in matrix dispatch, AI pattern matching, and NodeUsage lookup.
| Pattern | Examples |
|---|---|
{GroupName}_{FormPurpose} | GuardRail_List, WorkDesk_List |
{GroupName}_{SubType}_{Action} | GuardRail_RateLimit_Edit, WorkDesk_Task_View |
| PascalCase throughout | GuardRail_ContentFilter_Edit |
Action suffix: _List, _Edit, _View, _Audit, _Wizard | WorkDesk_Task_Edit |
SQL File Naming
Each form's data file follows this pattern:
Atlas_Forms_{FormID}_{FormCode}.data.sql
-- Examples:
Atlas_Forms_13000_GuardRail_List.data.sql
Atlas_Forms_13001_GuardRail_Edit.data.sql
Atlas_Forms_15000_WorkDesk_List.data.sql
Atlas_Forms_15001_WorkDesk_Task_Edit.data.sql
The category data file follows:
{GroupName}_Category.data.sql
-- Examples:
GuardRails_Category.data.sql
WorkDesk_Category.data.sql
PrimaryUsage Value
| Rule | Example |
|---|---|
| Kebab-case, all lowercase | guardrails, workdesk, node-policies |
| One value per group — all forms in a group share it | All GuardRails forms: guardrails |
| Maps directly to a router tab key | guardrails → GuardRailsTab component |
NodeUsage Value
| Rule | Example |
|---|---|
| Kebab-case, all lowercase | guardrail-edit, workdesk-task-edit |
| Null for list forms and dashboards | FormID 13000 (GuardRail_List) → NULL |
Pattern: {group-id}-{action} or {group-id}-{subtype}-{action} | guardrail-rate-limit |
| Must be unique across all groups | Validated at startup |
FormID Range Assignment
Within a group's 100-ID range, assign IDs in this order:
| Offset | Purpose | Example (GuardRails) |
|---|---|---|
| +0 | List form (required, first) | 13000 — GuardRail_List |
| +1 to +79 | Property and wizard forms | 13001–13079 |
| +80 to +89 | Dashboard forms | 13080–13089 |
| +90 to +99 | Reserved for future expansion | 13090–13099 |
FormCode Is the AI's Primary Pattern Key
The AI generation pipeline reads all existing
FormCode values in a group to learn its naming patterns before generating a new form. If your FormCodes are inconsistent, the AI will produce names that do not match the group's conventions. Always follow the {GroupName}_{SubType?}_{Action} pattern.