Skip to content
GitHub
Operations

Worlds Crud

Generated

This page is generated from qa/operations/specs/worlds-crud.md — the source of truth. Edit the spec, not this page.

Last run: not yet recorded (run the replay suite to populate status).

Overview

Rulesets are the top-level container an operator authors against (the UI says “ruleset”; the route + wire stay /worlds / world_id). The worlds list supports creating a ruleset (name + optional scope metadata), opening its detail page, retiring it (with an explicit confirmation), and toggling visibility of retired worlds. These are the entry actions to the whole authoring flow.

Preconditions

  • Signed in as the seeded operator.
  • On the worlds list (/worlds).

Scenarios

1. Create a ruleset

  • Open the create-world form on the worlds list
  • Enter the name “qa-filing-status”
  • Enter scope metadata “year=2026, jurisdiction=federal”
  • Submit the create form
  • Expected: A success state confirms the created world (id + name); the new world appears in the worlds table.

2. Create is disabled without a name

  • Clear the name field in the create form
  • Expected: The submit control is disabled; no world is created.

3. Scope metadata is parsed from key=value pairs

  • Create a world with scope metadata “a=1, b=2”
  • Expected: The new world’s row in the worlds table shows the parsed scope as JSON ({"a":"1","b":"2"}).

4. Open a ruleset’s Rules tab

  • Activate a ruleset’s name link in the rulesets table
  • Expected: Ruleset’s Rules tab renders for that ruleset (its masked id shown), with an “Author a rule” control and the rules table (or its empty state when the ruleset has no rules yet).

8. Author a rule from the Rules tab

  • On a ruleset’s Rules tab, activate “Author a rule”
  • Expected: The rule-authoring form appears (rule text, source tier, source origin); activating the control again hides it.

9. Inspect a rule in the split detail panel

  • On a ruleset that has at least one rule, select a row in the rules table
  • Expected: The split detail panel opens for that rule, showing the rule statement, where it came from (source), and a “Deterministic logic” block carrying a “no LLM in path” badge; each rule row shows its lifecycle state via the four-state marker (Live / Under review / Inactive), an importance label, and a per-rule tests-pass cell (the generated-test results, or an em-dash when no suite has been generated). The detail panel’s Verification card shows the same tests-pass read. Closing the panel returns to the list-only view.

5. Retire a world with confirmation

  • For an active world, activate its Retire control
  • Confirm the retirement in the confirmation dialog
  • Expected: A retired confirmation is shown; the world is marked retired.

6. Cancel a retire

  • Open the retire confirmation for a world, then cancel
  • Expected: The dialog closes and the world remains active.

7. Show / hide retired worlds

  • Toggle “Show retired” on the worlds list
  • Expected: Retired worlds appear when enabled and are hidden when disabled; a retired world shows a non-actionable “Retired” marker (no Retire button).

Test Data

LabelValueNotes
World nameqa-filing-statusHappy-path create
Scope metadatayear=2026, jurisdiction=federalComma-separated key=value