# Content TODO — verify against final CLI The docs were written from the Phase 1 design contracts (`docs/TUI_DESIGN.md`, `docs/TOOL_PROTOCOL.md`, `docs/PERMISSION_MODEL.md`, `CLAUDE.md`) and the implemented `src/` where it exists. As of writing, **`src/cli/` does not exist yet** (package.json points `bin` at `dist/cli/main.js`), and several slash commands are registered as honest "not wired in this build" placeholders in `src/tui/app.ts`. Re-verify the following once the CLI lands. ## Verify against final CLI - [ ] **CLI flags** (`docs/getting-started.html#cli-flags`): `--model`, `--print`, `--debug`, `--version` are documented from README/CLAUDE.md. `src/cli/main.ts` does not exist yet — confirm exact flags and add any missing ones (e.g. `--benchmark-startup` is internal; keep it out). - [ ] **`khaelor --version` output format** — install.sh captures and prints it; confirm it prints a bare version (installer displays it verbatim). - [ ] **Slash commands not yet implemented** (placeholders in `src/tui/app.ts` as of 2026-08-09): `/model` (Phase 3), `/config` (Phase 3), `/sessions` (Phase 6), `/context` (Phase 6), `/compact` (Phase 6), `/processes` (Phase 5), `/permissions` (Phase 4). Docs describe the designed (final) behavior — confirm panels match the spec screenshots in `docs/commands.html` once wired. - [ ] **Slash commands documented but not yet registered at all** in `src/tui/app.ts`: `/resume`, `/new`, `/rename`, `/clear`, `/status`. They are in the TUI_DESIGN §4.1 V1 set — confirm they ship, and confirm `/status` output content (docs/commands.html#cmd-status is inferred). - [ ] **Implemented today and verified against code**: `/diff` (`d`), `/cost`, `/help`, `/quit` (`Ctrl+D`), `Ctrl+K` palette. - [ ] **Config keys** (`docs/configuration.html`): verified against `src/config/schema.ts` (`model`, `auxModel`, `thinking`, `maxOutputTokens`, `permissions`; defaults claude-sonnet-4-5 / claude-haiku-4-5 / adaptive / 16000). NOTE: the implemented `permissions` schema is currently the flat `capability → action` shorthand only — the nested/`rules` forms documented on docs/permissions.html come from PERMISSION_MODEL §4.1. Confirm the loader accepts them before launch, or trim the example. - [ ] **Theme key** — `/config` panel mock shows a `Theme` row (khaelor-dark); `theme` is not in `src/config/schema.ts` yet. Confirm or remove from the docs/configuration.html panel mock. - [ ] **Session storage path** — docs say `~/.khaelor/sessions/`; `src/session/store.ts` should confirm the exact location. - [ ] **Spill paths** — TOOL_PROTOCOL uses `~/.khaelor/tool-output/` but TUI_DESIGN §6.2 shows `~/.khaelor/tool-out/`. Docs standardized on `tool-output` — confirm in `src/tools/truncate.ts`. - [ ] **Default bash timeout / cap** (120 s / 300 s), grep 100-line cap, read 2000-line default — confirm constants in `src/tools/*` match. - [ ] **npm distribution**: docs and installer assume the tarball URL (`https://www.khaelor.sh/khaelor.tgz`). If/when `khaelor` is published to the npm registry, update index.html, getting-started.html, faq.html (`npm uninstall -g khaelor` already assumes the package name), and install.sh to prefer `npm install -g khaelor`. - [ ] **Keychain API key storage** — CLAUDE.md §6 mentions optional keychain storage; docs currently say "environment only" (matches implemented loader). Update if keychain support ships. ## Deploy-time - [ ] Build tarball from repo root (`npm run build && npm pack`) and drop as `website/artifacts/khaelor.tgz` on the serving node. - [ ] Smoke-test the full installer path end-to-end on a clean machine once the tarball is real: `curl -fsSL https://www.khaelor.sh/install.sh | sh`. --- *Author: Simon-Pierre Boucher · contact@spboucher.ai*