# write — Project Plan
`write` is an opinionated, writing-centric word processor whose entire purpose is to **silence
the writer's inner editor** by hiding text shortly after it is typed. The user is referred to as
**"the writer."** Output is plain Markdown. There is no editing, no deletion, no cursor movement —
once a character is typed it is permanent in the file and soon invisible on screen.
---
## Next Up
v1 is delivered in three sequenced, independently-committable tasks: **1a** (window + raw input +
Markdown file append — done), **1b** (the fading 30-second view — done), **1c** (explicit
visible-buffer clears + Esc menu — done). All v1 tasks are complete.
#### Shared stack / dependencies (established in 1a, used by all three)
- **egui + eframe `0.34.x`** (latest is `0.34.3`). `eframe` re-exports `egui` as `eframe::egui` —
do **not** add `egui` separately.
- **`dirs` `6.0.0`** for `~/Documents`.
- Use `cargo add` (per repo convention): `cargo add eframe` and `cargo add dirs`. A timestamp crate
is optional; epoch seconds from `std::time::SystemTime` is acceptable for filenames.
- Rust edition 2024 (already set). Use the `module.rs` + `module/submodule.rs` layout (no `mod.rs`).
- **eframe 0.34 API:** implement `eframe::App` via the **new `fn ui(&mut self, ui: &mut egui::Ui,
frame: &mut eframe::Frame)`** signature (`App::update` is deprecated in 0.34). `Ui` derefs to
`Context`, so `ui.ctx()`, `ui.input(...)`, `ui.painter()` are available.
- `cargo fmt` clean at the end of every task. No deletion / strikethrough / period-hide logic
anywhere, ever.
#### Project-wide OUT of scope for v1 (deferred to later tasks)
- Headings and lists (writer-triggered Markdown structure).
- Any read/review/reveal/export mode — **the app is write-only**; finished Markdown is read/edited
elsewhere (Neovim, etc.).
- Deletion, strikethrough, editing, cursor movement, selection, copy/paste, undo.
- Non-Latin / IME composition (CJK etc.).
- Linux/Windows polish: egui/eframe is genuinely cross-platform, but **v1 targets macOS first** (the
dev platform); other platforms track upstream egui maturity.
- Cursor-wiggle / visual feedback on backspace-clear.