You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Replace cosmetic em-dashes (an "AI tell" the humanizer itself strips) with
plain hyphens throughout comments, docstrings, display copy, prompts, and all
Markdown docs. Functional em-dashes are intentionally preserved: the humanizer's
detection regex and the test inputs that verify em-dash stripping.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Writing Agent is a self-correcting, autonomous writing system that takes a topic and produces a publication-ready manuscript — drafting, critiquing, humanising, and revising in a loop until the work meets quality standards.
37
+
Writing Agent is a self-correcting, autonomous writing system that takes a topic and produces a publication-ready manuscript - drafting, critiquing, humanising, and revising in a loop until the work meets quality standards.
38
38
39
-
-**Books**— multi-chapter narratives with memory, continuity audits, and front/back matter
40
-
-**Articles**— long-form editorial pieces with research, citations, and editorial angles
41
-
-**Self-correction**— write → critique → revise → humanise → commit, up to a cap, then escalate
42
-
-**Quality guardrails**— hard rules against AI slop baked into every prompt
43
-
-**Context compression**—[headroom-ai](https://github.com/chopratejas/headroom) runs by default; 60–95% fewer tokens, same output quality
39
+
-**Books**- multi-chapter narratives with memory, continuity audits, and front/back matter
40
+
-**Articles**- long-form editorial pieces with research, citations, and editorial angles
41
+
-**Self-correction**- write → critique → revise → humanise → commit, up to a cap, then escalate
42
+
-**Quality guardrails**- hard rules against AI slop baked into every prompt
43
+
-**Context compression**-[headroom-ai](https://github.com/chopratejas/headroom) runs by default; 60–95% fewer tokens, same output quality
44
44
45
45
---
46
46
47
47
## Setup
48
48
49
49
**Requirements:** Python 3.10+ · runs on **Linux · macOS · Windows** · an [OpenRouter API key](https://openrouter.ai/) (free tier works). No API key is needed to install, run the tests, or try the offline demo.
|**Windows**|`pip install -e ".[headroom]"` then `pip install --only-binary=:all: --no-deps "headroom-ai==0.10.17"`— current versions have no Windows wheel, so we use the last pure-Python release (skips the `litellm` dep, whose long paths break installs without long-path support) |
|**Windows**|`pip install -e ".[headroom]"` then `pip install --only-binary=:all: --no-deps "headroom-ai==0.10.17"`- current versions have no Windows wheel, so we use the last pure-Python release (skips the `litellm` dep, whose long paths break installs without long-path support) |
@@ -145,7 +145,7 @@ python book.py export --format pdf
145
145
146
146
The TUI shows a **live dashboard** while writing (progress, current stage, elapsed time, live token count), **tab-autocompletes** commands and arguments, and remembers history across sessions. Add `--plain` (or set `NO_COLOR`) for unstyled output.
147
147
148
-
### Try it offline first — no API key (fake mode)
148
+
### Try it offline first - no API key (fake mode)
149
149
150
150
Every node returns deterministic placeholder output, so you can verify the full pipeline, state machine, and exports without a key or any token spend.
export --format pdf # paginated A5 PDF (via xhtml2pdf)
272
272
export --format epub # EPUB with NCX/Nav TOC (via ebooklib)
273
-
export --format docx # Word document (via pandoc — must be on PATH)
273
+
export --format docx # Word document (via pandoc - must be on PATH)
274
274
export --format html # self-contained HTML with embedded CSS
275
275
export --format txt # clean plain text (Markdown stripped)
276
276
export --format md # raw Markdown with title header
@@ -285,7 +285,7 @@ Just type `export` for an interactive picker.
285
285
| Feature | Setting | Default |
286
286
|---|---|:---:|
287
287
| Web research per section (DuckDuckGo) |`use_researcher`| ✅ on |
288
-
| Humanizer — strips AI tells |`humanize`| ✅ on |
288
+
| Humanizer - strips AI tells |`humanize`| ✅ on |
289
289
| Headroom context compression |`use_headroom`| ✅ on |
290
290
| SVG diagram generation (per section) |`use_images`| ✅ on |
291
291
| Semantic skill retrieval (embeddings) |`use_embeddings`| off |
@@ -294,26 +294,26 @@ Just type `export` for an interactive picker.
294
294
295
295
Toggle any feature live in the TUI: `/set use_researcher false`
296
296
297
-
**Reliability:** every LLM call retries transient errors (429/5xx/timeouts) with exponential backoff and a request timeout, and fails fast on auth/bad-request. Run state is written atomically and is **resumable**— a crash mid-run never double-commits a chapter or corrupts the project. Token usage is reported at the end of each run.
297
+
**Reliability:** every LLM call retries transient errors (429/5xx/timeouts) with exponential backoff and a request timeout, and fails fast on auth/bad-request. Run state is written atomically and is **resumable**- a crash mid-run never double-commits a chapter or corrupts the project. Token usage is reported at the end of each run.
298
298
299
299
---
300
300
301
301
## Writing Quality Guardrails
302
302
303
-
Hard rules baked into **every** writer, humaniser, and critic prompt — not optional:
303
+
Hard rules baked into **every** writer, humaniser, and critic prompt - not optional:
| Console | Rich auto-detects the terminal and degrades; `--plain` / `NO_COLOR` for no styling; UTF-8 is forced on legacy Windows code pages |
426
426
| Export links | clickable `file://` URIs built with `Path.as_uri()` (valid on Windows too) |
427
-
| Compression |`headroom` is an optional extra with a platform marker — real wheels on Linux/macOS, the pure-Python fallback on Windows |
427
+
| Compression |`headroom` is an optional extra with a platform marker - real wheels on Linux/macOS, the pure-Python fallback on Windows |
428
428
| External tools |`pandoc` is only needed for **DOCX** export (install separately and put on `PATH`); a clear error is shown if it's missing. All other formats are pure-Python. |
429
429
430
430
Per-OS install, activation, and offline-demo commands are in [Setup](#setup) and [Quick Start](#quick-start) above.
@@ -444,7 +444,7 @@ Per-OS install, activation, and offline-demo commands are in [Setup](#setup) and
444
444
445
445
## Contributing
446
446
447
-
Contributions welcome — see **[CONTRIBUTING.md](CONTRIBUTING.md)** for the full guide.
447
+
Contributions welcome - see **[CONTRIBUTING.md](CONTRIBUTING.md)** for the full guide.
0 commit comments