# Metadata and extension editing

Write tools for EDT/Designer export file model (dev/test only).

## Safety

- Allowed environments: `dev`, `test` only
- Requires `confirmed=true`, `businessReason`, `approvalId`, `idempotencyKey` for apply
- Production profiles are blocked by Policy Engine

## Metadata refactor

| Tool | Action |
|------|--------|
| `preview_metadata_refactor_impact` | Read-only impact preview |
| `propose_metadata_create` | New metadata XML scaffold (no disk write until apply) |
| `propose_metadata_rename` | Rename XML + folder move + BSL/form cascade |
| `propose_metadata_adopt_extension` | Adopt object XML in extension |

### Example: metadata rename

```json
{
  "name": "preview_metadata_refactor_impact",
  "arguments": {
    "profileId": "...",
    "operation": "rename",
    "objectName": "Items",
    "newName": "ItemsRenamed"
  }
}
```

```json
{
  "name": "propose_metadata_rename",
  "arguments": {
    "profileId": "...",
    "objectName": "Items",
    "newName": "ItemsRenamed",
    "businessReason": "Rename catalog for integration",
    "confirmed": true,
    "approvalId": "...",
    "idempotencyKey": "rename-items-1"
  }
}
```

Proposal includes `operationKind: move` for files under `Catalogs/Items/`.

## Extension editing

| Tool | Action |
|------|--------|
| `create_extension_scaffold` | `Configuration.xml` + `ConfigDumpInfo.xml` |
| `preview_extension_refactor_cascade` | Conflicts, overrides, BSL refs |
| `propose_extension_object_add` | Native extended object XML |
| `create_extension_patch` | Generic multi-file extension patch |
| `create_symbol_patch` | Replace procedure/function body by `symbolId` |

### Symbol patch + diagnostics

`create_symbol_patch` returns proposal plus `suggestedNextSteps`:

- `run_bsl_checks` on affected module path
- `bsl_run_diagnostics` on the same file

## Recommended flow

1. `preview_metadata_refactor_impact` or `preview_extension_refactor_cascade`
2. `propose_*` / `create_*` patch tool
3. `create_agent_result_loop` with `reindexAfterPatch: true` when metadata/extension files change
4. `run_agent_result_loop` → `apply-patch` → `reindex-context` → `bsl-checks`
5. Optional: `build_1c_extension` / `load_extension_to_test_base`

## Agent Result Loop integration

For metadata rename proposals, pass to loop:

```json
{
  "reindexAfterPatch": true,
  "metadataImpactObjectName": "Items",
  "metadataImpactOperation": "rename",
  "metadataImpactNewName": "ItemsRenamed"
}
```

## Related

- [AGENT_RESULT_LOOP.md](./AGENT_RESULT_LOOP.md)
- [SEMANTIC_CONTEXT.md](./SEMANTIC_CONTEXT.md)
- [MCP_COMPARISON.md](./MCP_COMPARISON.md)
