## Created Created by tickets.sh create. --- ## Plan # Yoi rename survey Generated by read-only Pod `surveyor-yoi-rename-20260601` on 2026-06-01. ## Executive stance Move implementation/public identity to `Yoi` / `yoi` / `.yoi` / `YOI_*` everywhere that is product, runtime, config, CLI, package, prompt, profile, diagnostic, test, or public documentation surface. Do not bulk-rename historical records, generated personal memory, old work-item threads, or rationale docs except where they currently function as live project instructions or public docs. A small bounded migration path is appropriate for existing dogfood data directories, but old public aliases should not be preserved long-term unless explicitly reapproved. ## Major rename surfaces ### Cargo package, crate, binary, lockfile Files: - `Cargo.toml` - `crates/insomnia/Cargo.toml` - `crates/insomnia/src/main.rs` - `Cargo.lock` - `crates/pod/src/entrypoint.rs` - tests that expect `insomnia` / `insomnia pod` Recommendations: - `crates/insomnia/` -> `crates/yoi/` - package `insomnia` -> `yoi` - workspace dependency key `insomnia` -> `yoi` - installed binary `insomnia` -> `yoi` - regenerate `Cargo.lock` - update help/tests from `Usage: insomnia ...` to `Usage: yoi ...` - do not ship an `insomnia` binary unless a compatibility alias is explicitly approved ### Nix package/app/devshell Files: - `package.nix` - `flake.nix` - `devshell.nix` validation surface Recommendations: - `pname = "insomnia"` -> `pname = "yoi"` - flake description should say Yoi - flake app should point at `${package}/bin/yoi` - expose `yoi` package/app outputs - avoid long-term `insomnia` public output aliases ### CLI/runtime command surfaces Files: - `crates/insomnia/src/main.rs` - `crates/pod/src/entrypoint.rs` - `crates/client/src/runtime_command.rs` - `crates/client/src/spawn.rs` - `docs/environment.md` Recommendations: - `insomnia` -> `yoi` - `insomnia pod` -> `yoi pod` - `INSOMNIA_POD_RUNTIME_COMMAND` -> `YOI_POD_RUNTIME_COMMAND` - `INSOMNIA-READY` -> `YOI-READY` - runtime binary fallback `insomnia` -> `yoi` - update CLI help tests and command examples Mixed-version parent/child spawning need not be supported unless explicitly required. ### Data/config/runtime directories Central files/surfaces: - `crates/manifest/src/paths.rs` - `crates/pod/src/entrypoint.rs` - `crates/session-store/src/fs_store.rs` - `crates/pod-registry/src/table.rs` - `crates/tui/src/single_pod.rs` - `crates/memory/src/workspace.rs` - `.insomnia/manifest.toml` Recommendations: - `INSOMNIA_HOME` -> `YOI_HOME` - `INSOMNIA_CONFIG_DIR` -> `YOI_CONFIG_DIR` - `INSOMNIA_DATA_DIR` -> `YOI_DATA_DIR` - `INSOMNIA_RUNTIME_DIR` -> `YOI_RUNTIME_DIR` - `~/.insomnia` -> `~/.yoi` - `~/.config/insomnia` -> `~/.config/yoi` - `$XDG_RUNTIME_DIR/insomnia` -> `$XDG_RUNTIME_DIR/yoi` - `/tmp/insomnia-*` -> `/tmp/yoi-*` - `.insomnia/` -> `.yoi/` - `.insomnia/{manifest.toml,workflow,knowledge,memory,prompts}` -> `.yoi/...` Migration recommendation: - Provide an explicit migration command/documented manual move, or a one-time startup migration if new paths do not exist and old paths do. - Do not keep old and new roots as equal long-term search paths. - Do not bulk-read or rewrite ignored personal `.insomnia/memory` contents during repository cleanup. ### Environment variables Active variables to rename: - `INSOMNIA_HOME` -> `YOI_HOME` - `INSOMNIA_CONFIG_DIR` -> `YOI_CONFIG_DIR` - `INSOMNIA_DATA_DIR` -> `YOI_DATA_DIR` - `INSOMNIA_RUNTIME_DIR` -> `YOI_RUNTIME_DIR` - `INSOMNIA_POD_RUNTIME_COMMAND` -> `YOI_POD_RUNTIME_COMMAND` Historical/obsolete variables in old docs/work-items can remain if the file is historical. ### Prompt/profile namespace Files: - `resources/prompts/system/default.md` - `resources/prompts/system/normal.md` - `resources/prompts/system/pod-orchestration.md` - `resources/prompts/internal/*.md` - `resources/profiles/default.lua` - `crates/manifest/src/profile.rs` - `crates/pod/src/prompt/loader.rs` Recommendations: - `insomnia system` -> `Yoi system` or `yoi system` - `$insomnia/...` -> `$yoi/...` - `require("insomnia")` -> `require("yoi")` - `require("insomnia.scope")` -> `require("yoi.scope")` - `insomnia.profile` -> `yoi.profile` - `insomnia.lua-profile.v1` -> `yoi.lua-profile.v1` - `.insomnia/prompts` -> `.yoi/prompts` Compatibility aliases should be avoided for public release unless separately approved. ### Active project instructions and docs Rename active/live documentation and instructions: - `AGENTS.md` - `README.md` - `docs/environment.md` - `docs/manifest-profiles.md` - `docs/pod-factory.md` - active `docs/plan/*.md` and `docs/ref/*.md` as appropriate - active workflow instructions under `.insomnia/workflow/*.md` after path migration Do not bulk-rename historical records: - closed work items - historical reports in `docs/report/` - `docs/branding.md` old-name rationale - rename ticket title/content where it explicitly describes the transition ### Tests, snapshots, fixtures Likely test surfaces: - `crates/pod/src/entrypoint.rs` - `crates/client/src/runtime_command.rs` - `crates/client/src/spawn.rs` - `crates/manifest/src/paths.rs` - `crates/manifest/src/profile.rs` - `crates/memory/src/workspace.rs` - `crates/tools/src/web.rs` - `crates/pod/tests/*.rs` Recommendations: - expected CLI help: `insomnia` -> `yoi` - env tests: `INSOMNIA_*` -> `YOI_*` - path tests: `.insomnia` -> `.yoi` - Lua profile tests: `insomnia` module -> `yoi` - generic test sample strings should be renamed unless intentionally testing migration ### User-visible diagnostics/log messages Relevant surfaces: - `crates/pod/src/entrypoint.rs` - `crates/client/src/runtime_command.rs` - `crates/pod-registry/src/table.rs` - `crates/manifest/src/profile.rs` - `crates/pod/src/prompt/loader.rs` - `crates/insomnia/src/memory_lint.rs` - TUI status/action messages that show paths or commands Recommendations: - diagnostics should use `YOI_*`, `$yoi`, `require("yoi")`, `yoi pod`, and `.yoi` paths - old names should appear only in explicit migration diagnostics ### Repository/path names outside code Surfaces: - local checkout path `/home/hare/Projects/insomnia` - repository name - worktree names - current runtime output paths under `/run/user/1000/insomnia/...` Recommendations: - Public repository name should eventually become `yoi`. - Local checkout/runtime output paths are not first-pass code-edit targets. - Current session/tool output paths are generated/historical. ## Intentionally retained old-name references Do not bulk-rename by default: - `docs/branding.md` rationale explaining the collision and rename - this rename work item where it states old-to-new transition - closed work items under `work-items/closed/` - historical `docs/report/` files - generated/personal `.insomnia/memory` content - external session logs under old runtime paths - migration tests/docs that explicitly refer to legacy `insomnia` names ## Proposed implementation order 1. Decide canonical spellings: - Product: `Yoi` - command/package/crate: `yoi` - dotdir: `.yoi` - env prefix: `YOI_` - builtin prompt prefix: `$yoi` - Lua module namespace: `yoi` 2. Rename Cargo/product package: - move `crates/insomnia` -> `crates/yoi` - update workspace manifest, package names, dependency keys, tests - confirm `cargo metadata` 3. Rename Nix packaging: - update `package.nix`, `flake.nix`, app program, install check 4. Rename CLI/runtime command surfaces: - command/help/examples/tests - runtime override env var - ready marker - binary fallback 5. Rename path/env authority: - centralize in `crates/manifest/src/paths.rs` - decide legacy path migration behavior 6. Rename workspace conventions: - `.insomnia` -> `.yoi` - move tracked workflow/knowledge/manifest assets - avoid rewriting generated personal memory 7. Rename profile/prompt namespace: - `$yoi` - `require("yoi")` - builtin profile/schema/source strings 8. Update active docs and project instructions. 9. Update tests/fixtures and add migration tests if migration is implemented. 10. Final grep/audit pass and classify remaining hits. ## Validation checklist Minimum validation after implementation: - `cargo check --workspace` - `cargo test --workspace` or standard targeted test set - `cargo metadata --format-version 1` - `cargo run -p yoi -- --help` shows `yoi` - `cargo run -p yoi -- pod --help` shows `Usage: yoi pod` - spawn path test verifies parent expects `YOI-READY` - env/path tests verify `YOI_HOME`, `YOI_CONFIG_DIR`, `YOI_DATA_DIR`, `YOI_RUNTIME_DIR`, `YOI_POD_RUNTIME_COMMAND` - runtime path tests verify `~/.yoi`, `~/.config/yoi`, `$XDG_RUNTIME_DIR/yoi`, `.yoi/memory`, `.yoi/workflow`, `.yoi/knowledge` - Lua profile tests verify `require("yoi")` and no required `require("insomnia")` - prompt loader tests verify `$yoi/...` and `.yoi/prompts` - Nix validation verifies `$out/bin/yoi` and flake app launch - final residual search: ```bash git grep -n -I -E 'insomnia|Insomnia|INSOMNIA|\.insomnia' ``` Every remaining hit must be branding rationale, migration code/test/doc, closed historical record, generated/personal ignored state, or an explicitly preserved external reference. --- ## Decision Decision: adopt Yoi with no compatibility aliases. The rename should be implemented as a clean public identity change: `Yoi` / `yoi` / `.yoi` / `YOI_*`. Do not ship old `insomnia` binaries, command aliases, prompt/profile aliases, or environment-variable aliases. For existing dogfood/user state, implement only a bounded one-shot migration path from old local paths to the new Yoi paths. Old and new roots must not remain equal long-term search roots. --- ## Implementation report # Implementation report: Yoi rename Implemented a clean public rename from Insomnia to Yoi. ## Scope completed - Renamed the main Cargo package/crate/binary from `insomnia` to `yoi`: - `crates/insomnia/` -> `crates/yoi/` - workspace package/dependency metadata updated - CLI help and tests now use `yoi` - Updated Nix packaging: - package `pname` is `yoi` - flake package/app output points at `bin/yoi` - `cargoHash` refreshed after the lock/vendor input changed - Updated CLI/runtime command surfaces: - `insomnia pod` -> `yoi pod` - `INSOMNIA_POD_RUNTIME_COMMAND` -> `YOI_POD_RUNTIME_COMMAND` - `INSOMNIA-READY` -> `YOI-READY` - runtime fallback command now targets `yoi` - Updated path/env authority: - `.insomnia` -> `.yoi` - `~/.insomnia` -> `~/.yoi` - config/runtime/data env prefixes use `YOI_*` - Implemented a bounded one-shot migration for persistent local roots: - `$HOME/.insomnia` -> `$HOME/.yoi` - `$XDG_CONFIG_HOME/insomnia` or `$HOME/.config/insomnia` -> Yoi equivalents - only when the corresponding new `YOI_*` override is not set and the new target does not already exist - no old env aliases, command aliases, prompt/profile aliases, or long-term old root search paths are supported - runtime directories are not migrated because they are transient and may contain live sockets - Updated prompt/profile namespace: - `$insomnia` -> `$yoi` - `require("insomnia")` -> `require("yoi")` - Lua profile API/version strings updated to Yoi naming - Updated active docs, prompt resources, tests, diagnostics, examples, and help strings. - Kept old-name references only where they are intentional migration/rationale references, such as `docs/branding.md`, `docs/environment.md`, path migration code/tests, and historical work items/reports. ## Residual old-name references in active surfaces The active non-historical residual grep is intentional: - `crates/manifest/src/paths.rs`: one-shot migration source paths and tests - `docs/environment.md`: migration documentation and explicit no-alias policy - `package.nix`: excludes legacy `.insomnia` local state from package sources Historical/rationale records under `docs/report/`, `docs/branding.md`, and work-item history were not bulk-renamed. ## Validation Passed: - `cargo fmt --check` - `cargo check --workspace` - `cargo test -p manifest` - `cargo test -p yoi` - `cargo test -p client runtime_command` - `cargo test -p pod entrypoint` - `cargo test -p pod prompt::loader` - `cargo test -p manifest profile` - `target/debug/yoi --help` - `target/debug/yoi pod --help` - `nix eval .#packages.x86_64-linux.default.pname --raw` - `nix eval .#apps.x86_64-linux.default.program --raw` - `nix build .#yoi --no-link` - `git diff --check` Observed warnings are pre-existing unused-code warnings in `llm-worker` and `tui`. --- ## Decision Decision correction: keep the Yoi rename clean. Do not implement old-name command aliases, old environment variable aliases, prompt/profile aliases, old search roots, or old path handling in the codebase. Existing local dogfood state is handled manually outside the implementation. --- ## Decision Naming decision: the formal product name is `Yoi`, or `Yoi agent` where a fuller phrase is useful. Do not use all-caps `YOI` as the product name; reserve uppercase `YOI_*` / `YOI-READY` for environment variables and protocol literals only. --- ## Implementation report # Implementation report: Yoi rename Implemented a clean public rename from Insomnia to Yoi. ## Scope completed - Renamed the main Cargo package/crate/binary from `insomnia` to `yoi`: - `crates/insomnia/` -> `crates/yoi/` - workspace package/dependency metadata updated - CLI help and tests now use `yoi` - Updated Nix packaging: - package `pname` is `yoi` - flake package/app output points at `bin/yoi` - `cargoHash` refreshed after the lock/vendor input changed - Updated CLI/runtime command surfaces: - `insomnia pod` -> `yoi pod` - `INSOMNIA_POD_RUNTIME_COMMAND` -> `YOI_POD_RUNTIME_COMMAND` - `INSOMNIA-READY` -> `YOI-READY` - runtime fallback command now targets `yoi` - Updated path/env authority: - `.insomnia` -> `.yoi` - `~/.insomnia` -> `~/.yoi` - config/runtime/data env prefixes use `YOI_*` - Updated prompt/profile namespace: - `$insomnia` -> `$yoi` - `require("insomnia")` -> `require("yoi")` - Lua profile API/version strings updated to Yoi naming - Updated active docs, prompt resources, tests, diagnostics, examples, and help strings. - Kept old-name references only where they are rationale or historical records, such as `docs/branding.md`, historical reports, and work-item history. ## Compatibility decision No old command aliases, old environment-variable aliases, old prompt/profile aliases, or old search roots are implemented. Yoi paths are the active paths. ## Residual old-name references in active surfaces The active non-historical residual grep should not include old product/runtime identifiers. Remaining old-name references are expected only in rationale/historical records. ## Validation Passed before the correction to remove compatibility remnants: - `cargo fmt --check` - `cargo check --workspace` - `cargo test -p manifest` - `cargo test -p yoi` - `cargo test -p client runtime_command` - `cargo test -p pod entrypoint` - `cargo test -p pod prompt::loader` - `cargo test -p manifest profile` - `target/debug/yoi --help` - `target/debug/yoi pod --help` - `nix eval .#packages.x86_64-linux.default.pname --raw` - `nix eval .#apps.x86_64-linux.default.program --raw` - `nix build .#yoi --no-link` - `git diff --check` Additional validation after removing compatibility remnants: - `cargo fmt --check` - `cargo test -p manifest paths` - `cargo test -p pod spawn_profile_selector_accepts_default_inherit_and_registry` Run the final full validation set again before closing this work item. --- ## Closed Completed the clean Yoi rename implementation. The public identity is now `Yoi` / `Yoi agent` for prose, `yoi` for package/CLI names, `.yoi` for local project/data paths, and `YOI_*` / `YOI-READY` only for environment variables and protocol literals. No old `insomnia` command aliases, env aliases, prompt/profile aliases, old search roots, or old-path handling are implemented. Existing dogfood state was moved manually outside the codebase. Validation recorded in `artifacts/implementation-report.md`; final focused checks after correction passed: - `cargo fmt --check` - `cargo test -p manifest paths` - `cargo test -p pod spawn_profile_selector_accepts_default_inherit_and_registry` - `git diff --check` ---