# Requirements ## Plugin loading and tools - OpenCode V2 must load the plugin from the consuming project's installed local package directory without trying to download the provisional package name from npm. - The package root must expose an OpenCode-loadable JavaScript entrypoint. - Register `toolkit_project_status` in the `toolkit` Code Mode namespace. The tool must report the current project and VCS status through OpenCode's V2 API without mutating project state. ## Installation safety - Register the plugin with a config-relative path that works with either `opencode.json` or `.opencode/opencode.json`. - Migrate an installer-owned legacy npm-name entry on update, and remove only the installer-owned local path on uninstall. - Preserve JSONC comments and unrelated plugin entries; do not overwrite unmanaged project files. ## Verification - Keep unit and installer tests deterministic and independent of external model providers. - Verify plugin activation and tool execution on OpenCode 2.0.24 using a local mock OpenAI-compatible endpoint; do not make a paid or remote provider call as part of deterministic validation. ## Optional memory - Memory tools must not register unless explicitly enabled in plugin options. - Session memory is scoped to the current OpenCode project and session; project memory is separately opt-in and shared only within the same canonical project. - Memory must be written, listed, retrieved, and deleted only through explicit tool calls; prompts, tool outputs, and summaries are not captured automatically. - Apply a configurable expiration (default 30 days); expired entries must never be returned, and memory content must not be automatically injected into future model context or uploaded by the plugin. - Reject memory operations for sessions belonging to another project. Provider- backed learning and live-profile persistence require separate verification.