Skip to content

Concept Editor QA: Names section validations with QA cards and save blocking #2405

@filiperochalopes

Description

@filiperochalopes

User story

As a user, I want the Concept Editor to run QA checks for the Names section and show clear validation results as cards so I can fix issues before saving.

Use case

Edit concept names, review QA findings in the Names section, and save only when validation passes.

Requirements

  • Run concept-level QA for the Names section (independent from field-level form errors).
  • Render QA results inside the Names section as collapsible cards.
  • Block Save while validation is running.
  • Block Save when any Names QA result has severity error.
  • Implement Name QA rules:
    • FR-01: Only one Preferred name per locale (error)
    • FR-02: No duplicate names within same locale, excluding SHORT (case-sensitive) (error)
    • FR-03: Only one SHORT name per locale (error)
    • FR-04: SHORT must never be Preferred (error)
    • FR-05: Only one FULLY_SPECIFIED name per locale (error)
    • FR-18: Capitalization warning (sentence case; preserve exceptions) (warning)
  • Reuse existing capitalization-checking behavior in the codebase for FR-18 (if available).
  • Save button behavior:
    • While validating: disable Save and show [spinning loading] Validating...
    • If user attempts to save while validating: show toast "Validation in progress" + message to wait
    • If user attempts to save with blocking QA errors: show toast "Save blocked by QA errors" + message to review cards

Acceptance criteria

  • Given a concept is being edited, QA results for Names are displayed as collapsible cards with severity, title, and description.
  • Given validation is running, Save is disabled and shows [spinning loading] Validating..., and attempting to save shows the validation-in-progress toast.
  • Given any Names QA result has severity error, Save remains blocked and attempting to save shows the blocked-by-errors toast.
  • Given there are no Names QA errors and validation is not running, Save is enabled.

More details (collapsible)

Included QA rules (Names section)
  • FR-01 (error): at most 1 Preferred per locale
  • FR-02 (error): no duplicate non-SHORT names within same locale (case-sensitive)
  • FR-03 (error): at most 1 SHORT per locale
  • FR-04 (error): SHORT cannot be Preferred
  • FR-05 (error): at most 1 FULLY_SPECIFIED per locale
  • FR-18 (warning): capitalization guidance; reuse existing codebase logic if available

Metadata

Metadata

Labels

No labels
No labels

Projects

Status

UAT

Relationships

None yet

Development

No branches or pull requests

Issue actions