Skip to content

Hawken

Hawken is the assistant who reads your writing and tells you what he sees. He does not write for you. He does not sketch prose, run a chat, rewrite selections, or call a model. Every output comes from deterministic analysis over your scene, your Legendry, and the rule-based inference layer underneath him. The same scene produces the same report every time. No API key required, no runtime cost, no wait on a network round-trip.

His two surfaces are Analyse and Plan. Analyse runs a full scan of the active scene and hands you back metrics, findings, and a read on the prose. Plan classifies what you’re working on — task type, audience, style policy — and retrieves the research context you might want before you start writing. The prose, when it gets written, is yours and stays yours.

Open a scene, click Read this draft, and Hawken runs a composed analysis over the current scene’s prose. The scan fires eight deterministic sub-reports in parallel and hands you back a unified report:

  • ProseGuard — stylistic rule checks (filter words, hedging, weak verbs, AI-isms, passive overuse).
  • Worldspell — name and invented-word consistency against your Legendry.
  • Insights — a four-pass narrative-health check (pacing flatlines, repeated beats, structural gaps).
  • Craft Plot — plot-point linkage analysis, filtered to the scene’s linked plot points.
  • Scene Contradictions — POV / knowledge / presence / dead-character / timeline queries against your scene metadata.
  • Sentiment — VADER-based positive / negative / neutral densities plus a per-sentence curve.
  • Register — formal / casual / archaic word-density classification with a dominant-register call.
  • Scene Metrics — word count, sentence count, average sentence length, Flesch-Kincaid grade, adverb density, filter-word density.

Every sub-report is deterministic. The same scene, the same project state, produces the same numbers. The scan completes in under three seconds on a cold start and under one second once caches are warm.

The scan aggregates findings from the finding-producing sub-reports into a single list, tagged by source. ProseGuard flags sit next to Worldspell flags sit next to Scene-Contradiction flags, so you can see the full picture of what’s worth looking at in one place. Each finding carries a rule ID, severity, and a short message. Filter by source to narrow in on a single scanner’s output.

The findings are not AI opinions. They are measurements. A ProseGuard finding says “this paragraph contains three filter words” with the offsets. A contradiction finding says “the dead-character query flagged this scene” with the citation to the scene the character died in. A craft-plot finding says “this plot point has no resolution anywhere in the outline.” You read, you decide.

Above the findings list, the metric grid shows the quantitative readout:

  • Word count / sentence count / average sentence length — pure counts.
  • Flesch-Kincaid grade — the standard readability score; low numbers are approachable, high numbers dense.
  • Adverb density — percentage of words ending in -ly that aren’t on the false-positive whitelist (only, reply, family, etc.).
  • Filter-word density — percentage of words ProseGuard flagged as filter words.
  • Sentiment compound — a VADER compound score between -1 (most negative) and +1 (most positive).
  • Register dominant — formal / casual / archaic / mixed / none, called by a lead-plus-threshold rule.

The metrics are useful without context — a 2 % adverb density is fine, a 10 % one is a red flag — and more useful once you’ve run the scan a few times on your own work and built an intuition for what a healthy range looks like for your voice.

Before you start writing, the plan surface helps you think about the shape of the task. Type what you’re working on into the prompt box and run any combination of three classifiers:

  • Task classifier — maps your description to one of ten creative task types (storytelling, world-building, character development, dialogue, exposition, and so on) with a confidence score and the signals that drove the classification.
  • Audience classifier — maps the description to one of ten audience types plus derived purpose, tone, and complexity signals.
  • Style policy — given the task and audience, looks up a primary style, secondary styles, and a short technique list from a static policy table.

All three classifiers are rule-based. A weighted keyword table, a fixed policy matrix, a handful of signal words per category. They respond in under fifty milliseconds. There is no API call, no model inference, no temperature to set.

They’re also opinionated. The policy table was authored by hand — which style pairs with which audience, which techniques show up at which complexity level. If the default doesn’t match what you want, override it. The classifiers give you a starting point, not a verdict.

Scene scan scaled up. The same composition that runs on a scene fans out across a chapter’s scenes — then across the manuscript’s chapters — and layers chapter- and manuscript-level aggregates on top of the per-scene results.

Chapter scan adds:

  • Pacing profile — scene word-count variance, max-min spread, chapter tension curve drawn from the tension beat detector, and flatline-segment flags when three or more consecutive scenes hold at the same tempo.
  • Character screen time — per-character mention counts + share across the chapter, with flags when a declared protagonist gets crowded out or a declared antagonist never surfaces in the prose.
  • Plot progression — plot-points hit per scene drawn from the plot_point_nodes junction, with stalled-sequence flags when three or more scenes in a row advance no real plot point.
  • Tension beats — hybrid anchor (from your tagged plot points) plus prose-marker detection (short-sentence bursts, exclamation clusters, imperative-verb density).

Manuscript scan adds:

  • Beat-sheet coverage — per-plotline, against whichever beat-sheet template that plotline uses. Tells you which beats are still orphaned.
  • Arc progression — per character, bucketed per chapter. Flags stalled runs where a declared protagonist’s arc holds the same stage across multiple chapters.
  • Voice drift — per chapter, against the manuscript-median register. Flags chapters that diverge enough to read different from the rest of the book.
  • Health scores — 0-100 composites for structure, character, pace, voice, and lore that give you the thirty-second read on the book’s shape.
  • Lore ML pass — validation, anomaly, and contradiction findings from the Lore ML pipeline get folded into the manuscript scan so the report can surface them alongside the structural signals.

The Generate Editorial Report button on the edit surface runs a full manuscript scan and composes a structured report with six sections:

  1. Overall Assessment — manuscript stats, health scores, top-severity findings.
  2. Structure Analysis — beat-coverage table, plot progression, structural findings.
  3. Character Analysis — per-character screen time, arc trajectory, voice alignment.
  4. Pace and Tension — chapter-level tension curve, pacing profiles, pacing findings.
  5. Theme and Voice — register drift signals, chapter-level voice consistency.
  6. Top Priorities — a ranked short-list of the highest-severity findings across every scanner.

The report renders to Markdown in-app and exports to PDF via the bundled Typst template. There is no LLM in the pipeline — every sentence in every intro is rendered through the Authored Library, every table is structured data, every finding is citable.

This is the replacement for the old LLM dev-edit letter. The ceremony is the same — a report appears after a scan — but the mechanism is deterministic and the findings are measurements instead of prose opinions.

The plan surface also runs Hawken’s retrieval pipeline. Type a prompt, click Gather research, and Hawken surfaces two things:

  • Semantic matches — ranked ChromaDB hits from your project’s document collection.
  • Lore matches — Legendry entries whose titles match tokens in your prompt, with a short excerpt for each.

That’s it. There is no “Hawken’s answer” box. There is no synthesized summary of what the results mean. The retrieval is a ranked pile of source material for you to read. Hawken does not interpret it. That part is yours.

This is the biggest post-migration behaviour change. The old research pipeline composed an LLM-written paragraph over the hits. The new pipeline hands you the hits. The synthesis is better when you do it — you know your book, the LLM didn’t.

If you used the earlier version of Hawken, a lot of the machinery is gone:

  • No prose generation. Sketch mode, full mode, quick mode, generation sessions, the workbench modal — removed.
  • No inline transforms. Rewrite, extend, shorten, continue, fix-grammar, simplify, adjust-tone, custom — the selection bubble-menu entries are gone. The in-editor composable is a stub.
  • No chat. The dedicated Hawken chat route and surface is gone. Ishvana does not delegate writing tasks to Hawken anymore.
  • No outline generation, no content formatting, no conlang generation. Those routes and their UI entries are removed.
  • No specialist consultation. The LLM-backed “ask a specialist” path in the research pipeline is removed. The retrieval surface that remains is purely the deterministic RAG + lore lookup.

The removal is deliberate. Hawken’s job description moved from “creative AI that generates and chats” to “writing assistant that reads and reports.” The parts of the old surface that fit the new job (scene scan, classifiers, retrieval) kept their routes. The parts that didn’t (generation, chat, transforms) were cut.