Planning surface
The planning surface holds the locked decisions every chapter prompt and outline pass honors — theme statement, reader promise, comp authors, beat sheet, POV / tense, the character roster (with want / fear / lie), the conflict matrix, mood references, and the outline grader / variants.
Read the plan
GET /v1/books/{bookId}/plan
authorization: Bearer ant_live_…
→ 200 {
"data": {
"themeStatement": "Love is what survives when control fails.",
"readerPromise": "A literary novella about regret and tide.",
"compAuthors": "Marilynne Robinson meets Anne Carson",
"beatSheet": { "id": "freytag", "name": "Freytag's Pyramid" },
"povLock": "third-limited",
"tenseLock": "past",
"povDepth": 70,
"genre": "literary",
"audience": "adult",
"genreConfidence": 88,
"audienceConfidence": 92,
"autoDetectedGenre": true,
"researchCitations": [
{ "title": "Tidal patterns of the Bay of Fundy", "url": "…" }
]
}
}Write any subset
Omit a field to leave it untouched. Pass null to clear it. The chapter writer and the outliner pick up the new values on the next generation call.
PATCH /v1/books/{bookId}/plan
content-type: application/json
authorization: Bearer ant_live_…
{
"themeStatement": "A grandmother teaches the village a quieter way to grieve.",
"compAuthors": "Marilynne Robinson meets Anne Carson",
"beatSheetTemplate": "kishotenketsu",
"tenseLock": "past",
"povDepth": 80
}Valid beat-sheet ids
save-the-catthree-actheros-journeyfreytagkishotenketsutell-promise-mean
Fetch the full template definitions (beats, intents, positions) from GET /v1/books/{bookId}/beat-sheets.
From the MCP
Claude Desktop / Claude Code with the Anthra MCP token can call get_plan and set_plan directly — same input shape, same validation, same per-token rate limit bucket.