# Extension ownership matrix

Эта матрица фиксирует текущий reduced default surface после OMP review. `Current status` — это product-visible состояние: `active`, `compat-wrapper`, `disabled` или `deleted`. Важно: формулировка `OMP-owned-to-import` в `Target ownership` означает, что мы забираем рабочую OMP functionality и оформляем ее здесь как `miloc-pi` plugin/API surface. Это не означает внешнюю runtime-делегацию в OMP.

| Extension | Current status | Target ownership | Next action |
|---|---|---|---|
| devext-doctor | active | Miloc-specific doctor | Показывать reduced default surface, OMP-port backlog и verification hints. |
| hello-tool | disabled | Miloc-specific fixture | Оставить только как isolated registration/TypeBox smoke fixture, не default product surface. |
| ask-user-question | active | OMP-owned-to-import | OMP-compatible `ask` contract is active by default; `askUserQuestion` remains a legacy alias; full OMP TUI parity still tracks checkbox/navigation gaps. |
| ast-structural-edit | active | OMP-owned-to-import | Единый canonical plugin registers `ast_grep`, `ast_edit`, `resolve` and legacy `ast_apply`; active as a bounded OMP-shaped compatibility wrapper with explicit `resolve` finalization. |
| model-roles | active | OMP-owned-to-import | `/models` opens temporary interactive selection by default; `/models status`, `/models assign <role> [query]`, and `/models use <role>` use OMP-native `modelRoles`; legacy JSON remains read-only fallback. |
| todo-context | active | OMP-owned-to-import | OMP-style `todo_write`, session-entry restore, and a basic `/todo` command subset are active by default as a session-backed compatibility wrapper. |
| goal | disabled | OMP-owned-to-import | Hidden-context local goal removed; port/wrap OMP `GoalRuntime` before enabling `goal`/`goalSet`. |
| plan | disabled | OMP-owned-to-import | Local write-blocking mode removed; port/wrap OMP plan mode before enabling `/plan`/`planMode`. |
| loop | disabled | redesign-later | Local auto-follow-up engine удален; port OMP loop mode before enabling continuation. |
| tools-ast-grep | disabled | OMP-owned-to-import | Port OMP `ast_grep` как search часть AST plugin. |
| tools-ast-edit | disabled | OMP-owned-to-import | Port OMP `ast_edit` preview protocol и ясно описать preview-first contract. |
| tools-ast-apply | compat-wrapper | OMP-owned-to-import | OMP-compatible `resolve` now finalizes AST previews locally; `ast_apply` remains legacy alias until callers migrate. |
| tools-lsp | disabled | OMP-owned-to-import | Regex/file-scan helper removed; port real OMP LSP stack before enabling code intelligence. |
| agents | disabled | OMP-owned-to-import | Synthetic execution removed; port/wrap OMP `TaskTool` before enabling `task`/`runAgent`. |
| tool-router | compat-wrapper | OMP-owned-to-import | `/tools` aligned to inspect-first OMP behavior; explicit local preset switch remains disabled until runtime proof. |
| security-gate | disabled | OMP-owned-to-import | Local blocking hook removed; port/wrap OMP approval policy before enforcing tool calls. |
| dynamic-loader | disabled | OMP-owned-to-import | Fake apply removed; port OMP plugin manager/marketplace before enabling install or rollback. |
| browser | disabled | OMP-owned-to-import | Mock driver removed; port OMP `BrowserTool` before enabling `open`/`run`/`close`. |
| live-terminal | disabled | redesign-later | Lifecycle observer removed; port OMP bash/job/PTY streaming before exposing process logs. |
| tools-debug | disabled | OMP-owned-to-import | Local Node subprocess wrapper удален; port OMP DAP debug before enabling debugger workflows. |
| tools-dev-context | disabled | split-required | Mixed shell/eval/job/checkpoint bundle fail-closed; split into specific OMP-backed plugins before enabling. |
| hello | deleted | deleted | Удален как command-only SDK smoke. |
| hello-command | deleted | deleted | Удален как учебный slash-command example. |
| lifecycle-trace | deleted | deleted | Удален, потому что не доказывает desired live process log behavior. |
| session-state-demo | deleted | deleted | Удален как demo append/get entries behavior. |

## Current default package

`package.json#pi.extensions` intentionally includes:

- `./extensions/ask-user-question/index.ts`
- `./extensions/ast-structural-edit/index.ts`
- `./extensions/devext-doctor/index.ts`
- `./extensions/model-roles/index.ts`
- `./extensions/todo-context/index.ts`

All other retained extension directories are legacy/local source material for OMP-port subtasks or isolated test fixtures, not active default package behavior.
