AI action palette

The palette is the inline AI surface. Select text, hit a keyboard shortcut or click a palette button, see a diff, accept or reject. No chat round-trip; one-shot completions through Pendraic's AI Gateway with the full PENDRAIC context bundle attached.

Five built-in actions

  • Rewrite (Cmd+Shift+R), rephrase while keeping meaning, POV, and tense. Tightens where it helps.
  • Continue (Cmd+J; Cmd+Enter with no selection uses trailing prose), extend in the same voice and forward direction.
  • Describe (Cmd+Shift+D) , expand with sensory detail. Specific verbs and concrete nouns; never invents named entities.
  • Humanize (Cmd+Shift+H) , strip AI-tell patterns: em dashes used for drama, triplet parallelism, empty intensifiers, symmetrical sentence lengths.
  • Brainstorm (palette button), three distinct rewrites of the same idea, labeled Option 1 / 2 / 3.

What gets sent

Each call carries the PENDRAIC context bundle assembled at the right granularity for the action. Pendraic's intent-aware bundler decides which silos to fetch:

  • Voice Print fires on EVERY action.
  • Promises / Nexus / Engine framework fires only when the model needs to know what the BOOK is doing, Brainstorm and custom prompts.
  • Active Beat fires when the model needs to know WHERE we are on the spine, Continue and Brainstorm.
  • World rules / Story Index fires when the model could invent a proper noun, Describe, Continue, Brainstorm.
  • Humanize is the only built-in that runs on Voice Print alone, purely stylistic.

A typical Humanize call ships ~250 chars of context vs. ~1,500 for the full bundle, that's why Humanize is always cheap.

Diff modal

Every result lands in a side-by-side diff with the original on the left, the proposal on the right, and a unified word-level diff below. Plus:

  • Voice conformance score, how closely the proposal matches your Voice Print, with flag chips for specific violations (em dashes, taboos, etc.).
  • Cost line, input + output tokens, cached tokens, latency, model id, USD cost. Echoed from the AI Gateway's invocation row.
  • Accept / Reject / Retry, accept replaces the selection in the editor; retry re-runs the same action with the same selection; reject closes the modal untouched.

Custom prompts via the palette

Saved custom prompts ride the same palette infrastructure. Three ways to fire one:

  1. Click the prompt card in the right-rail AI dock's Prompt library.
  2. Type /prompt:<shortcut> on its own line and press Enter.
  3. Ask Penny chat to run the prompt by name.

All three paths converge on the same one-shot pipeline (no tools, no agent loop, ~$0.02 per call vs. ~$1 for a Penny chat turn).

Cost expectations

  • Humanize: bundle ~250 chars + selection. Typically $0.005-$0.02 on a Sonnet-tier model.
  • Rewrite / Continue: bundle ~600-1,200 chars. Typically $0.02-$0.05.
  • Describe / Brainstorm: bundle ~1,500 chars + scene. Typically $0.05-$0.10.
  • Custom prompt: depends on whether the body uses scope-light or scope-heavy variables ({{selection}} vs. {{synopsis_5p}}).