# Extension docs

Отдельные страницы описывают назначение, пользовательскую поверхность, реальную механику по коду, ограничения и решение keep/delete/rewrite/disable.

## Active by default

| Extension | Decision | Risk | Commands | Tools | Hooks | Summary | Entrypoint |
|---|---|---|---|---|---|---|---|
| [ask-user-question](ask-user-question.md) | compat-wrapper | medium | none | `ask`, `askUserQuestion` | none | Активный OMP-compatible human-in-the-loop tool; legacy `askUserQuestion` сохранен как alias. | ./extensions/ask-user-question/index.ts |
| [ast-structural-edit](ast-structural-edit.md) | compat-wrapper | high | none | `ast_grep`, `ast_edit`, `resolve`, `ast_apply` | none | Активный OMP-shaped AST wrapper: `ast_grep` ищет, `ast_edit` строит preview, `resolve` применяет или отклоняет его. | ./extensions/ast-structural-edit/index.ts |
| [devext-doctor](devext-doctor.md) | keep | low | `devext` | none | none | Показывает reduced default surface, OMP-port backlog и базовый health/status установленного extension-пакета. | ./extensions/devext-doctor/index.ts |
| [model-roles](model-roles.md) | compat-wrapper | medium | `models`, `model-roles` | none | none | Активный OMP-style model selector wrapper: `/models` открывает temporary selection, `/models status` показывает список, `/models assign` пишет `modelRoles`. | ./extensions/model-roles/index.ts |
| [todo-context](todo-context.md) | compat-wrapper | medium | `todo` | `todo_write` | none | Активный OMP-style todo wrapper: `todo_write` меняет session-backed phases, `/todo` показывает и редактирует тот же список. | ./extensions/todo-context/index.ts |

## Disabled by default pending OMP-based rewrite

| Extension | Decision | Reason |
|---|---|---|
| [hello-tool](hello-tool.md) | fixture-only | Isolated registration/TypeBox smoke fixture; не входит в default package surface. |
| [goal](goal.md) | OMP-port-backlog | Регистрирует OMP-shaped `goal` и legacy `goalSet`, но оба fail-closed до порта OMP `GoalRuntime`. |
| [plan](plan.md) | OMP-port-backlog | Регистрирует legacy `planMode`, `/plan` и `/todos`, но все fail-closed до порта OMP plan mode. |
| [loop](loop.md) | disabled | Local auto-follow-up engine удален; `/loop`/`loopControl` report-only/fail-closed до порта OMP loop mode. |
| [tools-ast-grep](tools-ast-grep.md) | OMP-port-backlog | Должен стать частью OMP AST protocol. |
| [tools-ast-edit](tools-ast-edit.md) | OMP-port-backlog | Текущая preview-only версия больше не primary; нужен OMP-compatible boundary. |
| [tools-ast-apply](tools-ast-apply.md) | compat-wrapper | Регистрирует OMP-compatible `resolve` для AST preview finalization; `ast_apply` оставлен legacy alias. |
| [tools-lsp](tools-lsp.md) | OMP-port-backlog | Regex/file-scan helper удален; `lsp` fail-closed до порта OMP LSP stack. |
| [agents](agents.md) | OMP-port-backlog | Регистрирует OMP-shaped `task` и legacy `runAgent`, но оба fail-closed до порта OMP `TaskTool`. |
| [tool-router](tool-router.md) | compat-wrapper | `/tools` теперь inspect-first, explicit preset switch идет через `setActiveTools`; остается disabled до runtime proof. |
| [security-gate](security-gate.md) | disabled | Локальный blocking hook отключен; `/security-audit` report-only до порта OMP approval policy. |
| [tools-dev-context](tools-dev-context.md) | disabled | Mixed shell/eval/job/checkpoint bundle fail-closed; конкретные pieces надо портировать отдельно как OMP-backed plugins. |
| [dynamic-loader](dynamic-loader.md) | disabled | `apply`/`rollback` fail-closed; read-only catalog до порта OMP plugin manager/marketplace. |
| [browser](browser.md) | disabled | Mock driver удален; local tool fail-closed до порта OMP `BrowserTool`. |
| [live-terminal](live-terminal.md) | redesign-later | Lifecycle observer удален; `/live` report-only до порта OMP bash/job/PTY streaming. |
| [tools-debug](tools-debug.md) | disabled | Local Node subprocess wrapper удален; `debug` fail-closed до порта OMP DAP debug tool. |

`helloTool` оставлен только как isolated fixture, потому что он проверяет tool registration, TypeBox validation и JSON arguments без попадания в default package surface. Остальные страницы пока сохраняют историческое описание локальной реализации, но их статус теперь задается этой README, [docs/extension-index.md](../extension-index.md) и [docs/extension-ownership-matrix.md](../extension-ownership-matrix.md).
