Skip to content

M-7: Edit Universe #19

@spuentesp

Description

@spuentesp

Category: manage | Epic: 1 | Priority: medium

Summary

Modify an existing Universe's metadata including name, genre, tone,
tech level, and description. Validates changes and maintains edit history.

Acceptance Criteria

  • neo4j_update_universe updates specified fields only
  • Unchanged fields retain original values
  • Name uniqueness still enforced within Multiverse
  • Genre, tone, tech_level validated against enums
  • updated_at timestamp set on modification
  • CLI supports interactive and flag-based editing
  • CanonKeeper authority required for write

Dependencies

This use case depends on:

  • DL-1
  • M-6

Implementation

Layer: 3

Files to modify:

  • packages/cli/src/monitor_cli/commands/manage/universe.py

NEO4J Operations:

  • neo4j_get_universe (authority: *)
  • neo4j_update_universe (authority: CanonKeeper)

Notes:

  • Consider adding edit history/audit log
  • May want to warn if universe has active stories

Testing Requirements

Minimum coverage: 80%

Unit tests:

  • test_edit_universe_single_field: one field updates
  • test_edit_universe_multiple_fields: multiple fields update
  • test_edit_universe_no_change: unchanged fields preserved
  • test_edit_universe_not_found: 404 handled gracefully
  • test_edit_universe_invalid_genre: bad genre rejected

Integration tests:

  • test_edit_universe_cli: CLI edit flow works

References

Documentation:


Generated from /home/sebas/monitor2/docs/use-cases/manage/M-7.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