Skip to content

M-9: List Stories #21

@spuentesp

Description

@spuentesp

Category: manage | Epic: 6 | Priority: medium

Summary

Display all Stories with summary information. Supports filtering by
universe, status (active, completed, archived), and story type.
Shows scene count and last played date.

Acceptance Criteria

  • neo4j_list_stories returns stories with scene counts
  • Table displays title, universe, status, type, scene_count, last_played
  • Filter by universe_id works correctly
  • Filter by status (active, completed, archived) works
  • Filter by type (campaign, arc, episode, one-shot) works
  • Sorting options work correctly
  • Pagination supported (--limit, --offset)
  • Empty state shows appropriate message

Dependencies

This use case depends on:

  • DL-4

Blocks

This use case blocks:

  • M-10
  • M-11

Implementation

Layer: 3

Files to create:

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

NEO4J Operations:

  • neo4j_list_stories (authority: *)

MONGODB Operations:

  • Get scene counts per story (authority: *)

Notes:

  • Scene count requires MongoDB aggregation
  • Consider caching counts for performance

Testing Requirements

Minimum coverage: 80%

Unit tests:

  • test_list_stories_all: returns all non-retconned
  • test_list_stories_by_universe: filter works
  • test_list_stories_by_status: filter works
  • test_list_stories_by_type: filter works
  • test_list_stories_pagination: limit/offset work

Integration tests:

  • test_list_stories_cli: CLI output formatted correctly

References

Documentation:


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

Metadata

Metadata

Assignees

No one assigned

    Labels

    manageWorld administration (M-*)readyAll dependencies satisfied, ready to work

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions