Skip to content

M-4: Create Universe #16

@spuentesp

Description

@spuentesp

Category: manage | Epic: 1 | Priority: high

Summary

Create a new Universe within a Multiverse. A Universe is a self-contained
fictional world with its own genre, tone, technology level, and internal
consistency. All entities, facts, and stories exist within a Universe.

Acceptance Criteria

  • neo4j_create_universe creates node with all required fields
  • Multiverse selection validates multiverse exists
  • Genre, tone, tech_level use predefined enums
  • Universe linked to Multiverse via CONTAINS relationship
  • Name uniqueness enforced within Multiverse
  • CLI supports both interactive and flag-based modes
  • Pydantic validation rejects invalid inputs
  • Unit tests cover success, validation, and duplicate handling

Dependencies

This use case depends on:

  • DL-1
  • M-2

Blocks

This use case blocks:

  • M-12
  • M-23
  • P-1

Implementation

Layer: 3

Files to create:

  • packages/cli/src/monitor_cli/commands/manage/universe.py
    Files to modify:
  • packages/cli/src/monitor_cli/commands/manage/__init__.py

NEO4J Operations:

  • neo4j_create_universe (authority: CanonKeeper)

Notes:

  • Universe is the main container for all world content
  • Genre/tone/tech help LLM maintain consistency
  • Consider adding axiom templates based on genre

Testing Requirements

Minimum coverage: 80%

Unit tests:

  • test_create_universe_success: valid params creates node
  • test_create_universe_invalid_multiverse: bad multiverse_id fails
  • test_create_universe_invalid_genre: bad genre rejected
  • test_create_universe_duplicate: duplicate name fails
  • test_create_universe_missing_required: missing name fails

Integration tests:

  • test_universe_lifecycle: create, verify, access in database
  • test_universe_cli_interactive: CLI prompts work
  • test_universe_cli_flags: Flag-based creation works

References

Documentation:


Generated from /home/sebas/monitor2/docs/use-cases/manage/M-4.yml

Metadata

Metadata

Assignees

No one assigned

    Labels

    blockedBlocked by unfinished dependenciesmanageWorld administration (M-*)

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions