mark_character_dead
Records a character as deceased in a given chapter with a specified cause, ensuring narrative continuity across the multi-agent book writing pipeline.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| character_name | Yes | ||
| chapter | Yes | ||
| cause | Yes |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |
Implementation Reference
- src/storywright_mcp/workflow.py:552-556 (handler)Core handler function that marks a character as dead by updating the continuity log and saving the project.
def mark_character_dead(character_name: str, chapter: int, cause: str) -> str: _, cont = require_project() cont.mark_dead(character_name, chapter, cause) save_project_and_continuity() return f"{character_name} marked dead." - src/storywright_mcp/app.py:259-264 (registration)FastMCP tool registration for mark_character_dead, exposing it as an MCP tool and delegating to the workflow handler.
@mcp.tool() async def mark_character_dead(character_name: str, chapter: int, cause: str) -> str: try: return workflow.mark_character_dead(character_name, chapter, cause) except ValueError as e: return str(e) - Model method on ContinuityLog that sets the character's status to DEAD and records death chapter and cause.
def mark_dead(self, name: str, chapter: int, cause: str) -> None: char = self.get_character(name) if char: char.status = CharacterStatus.DEAD char.death_chapter = chapter char.death_cause = cause - CharacterState dataclass with fields for death_chapter and death_cause used by mark_dead.
class CharacterState: name: str status: CharacterStatus = CharacterStatus.ALIVE death_chapter: int | None = None death_cause: str = "" items: list[str] = field(default_factory=list) - Enum defining CharacterStatus with DEAD value used when marking a character as dead.
class CharacterStatus(str, Enum): ALIVE = "alive" DEAD = "dead"