К основному содержанию
скилл CX Codex GP ChatGPT официальный · OpenAI

view-refactor — скилл для Codex: что делает и как установить

Скилл помогает разложить macOS SwiftUI views и scenes по устойчивой структуре. Нужен при разделении больших view и сужении AppKit-границ.

Установить в Codex · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add openai/plugins --skill view-refactor -a codex
Открыть на GitHub

Что делает view-refactor

view-refactor разбирает крупные macOS SwiftUI views на отдельные scene roots и subview types. Он помогает отделить layout, selection, commands, settings, модели, stores и сервисы по смыслу и файлам. Корневой layout сохраняется стабильным, а содержимое меняется через состояние выбора.

Скилл задаёт порядок элементов в Swift-файле, советует передавать дочерним view явные данные, bindings и actions, а логику кнопок, toolbar и команд выносить в именованные helpers или отдельные типы. AppDelegate и @main остаются компактными, а Process, URLSession и AppKit-мосты уходят из SwiftUI view в отдельные слои.

Для современных целей macOS @Observable хранится в @State, а для старых deployment targets используются @StateObject и @ObservedObject. Это повод проверить целевую версию macOS до рефакторинга.

Какие задачи решает

  • разделить крупный SwiftUI view на scene roots и subviews
  • разнести модели, stores и сервисы по Swift-файлам
  • стабилизировать layout при смене selection
  • вынести команды, toolbar и действия из body
  • ограничить AppKit-мост узкой обёрткой

Примеры запросов агенту

  • Раздели крупный macOS SwiftUI view на scene roots и отдельные subview types, сохрани поведение.
  • Проверь структуру проекта и вынеси модели в `Models/`, stores в `Stores/`, а `Process` и `URLSession` в `Services/`.
  • Перестрой `body`, toolbar и command routing по правилам `view-refactor`, не меняя поведение приложения.

Как установить view-refactor

1Через Skills CLI (Vercel)

npx skills add openai/plugins --skill view-refactor -a codex

2Вручную: положить файлы

.agents/skills/view-refactor/SKILL.md

Для всех проектов — ~/.agents/skills/

Из того же набора201

Весь набор →
supabase официальный supabase Скилл помогает настраивать базу данных, аутентификацию и RLS в Supabase без скрытых дыр в безопасности. CX Codex GP ChatGPT 8установок remotion-render официальный Remotion Экспортирует видео и отдельные кадры из проектов Remotion через консольные команды. CX Codex GP ChatGPT 3установок figma-create-new-file официальный Figma Создаёт пустые файлы Figma, FigJam или Slides в черновиках нужной команды. Скилл готовит параметры и planKey перед запуском MCP-инструментов. CX Codex GP ChatGPT 6установок swiftui-performance-audit официальный OpenAI Находит причины просадок кадров, долгого рендеринга и утечек памяти в SwiftUI. Помогает разобрать код вьюшек или подготовить замеры для профилирования. CX Codex GP ChatGPT 109установок swiftui-liquid-glass официальный OpenAI Скилл помогает создавать и проверять интерфейсы SwiftUI с Liquid Glass для iOS 26+. Он нужен при внедрении эффекта, ревью и проверке fallback-сценариев. CX Codex GP ChatGPT 121установок swiftui-ui-patterns официальный OpenAI Скилл помогает собирать и рефакторить SwiftUI-интерфейсы: навигацию, состояние, компоновку и контролы. Подойдёт для новых экранов и правок существующего проекта. CX Codex GP ChatGPT 114установок swiftui-view-refactor официальный OpenAI Скилл наводит порядок в коде SwiftUI: делит разросшиеся экраны на отдельные структуры View и выносит побочные эффекты из body. CX Codex GP ChatGPT 113установок ios-memgraph-leaks официальный OpenAI Скилл захватывает и разбирает утечки памяти iOS из симулятора или .memgraph. Нужен для поиска удерживающих связей и проверки исправлений. CX Codex GP ChatGPT 1 054установок

Похожие

zero-hallucination-coder Alireza Rezvani Внедряет пятишаговый цикл разработки без выдуманных API и лишнего кода. Пригодится при сложных миграциях, переработке авторизации и правках в нескольких файлах. Claude Code 69установок lean-comments официальный github Скилл очищает код от лишних комментариев и оставляет только неочевидные детали. Пригодится при ревью или рефакторинге кодовой базы. GitHub Copilot 17установок frontend-design-review microsoft Скилл проверяет и создаёт интерфейсы с учётом дизайна, доступности и дизайн-системы. Подходит для ревью UI, PR и адаптивной вёрстки. Claude Code GitHub Copilot 237установок weekly-review Alireza Rezvani Проводит еженедельный обзор задач, обязательств и проектов по циклу GTD. Пригодится, когда нужно закрыть открытые петли и вернуть системе доверие. Claude Code 47установок md-review Alireza Rezvani Скилл превращает markdown-код-ревью с diff-блоками и замечаниями по severity в HTML-страницу с двумя колонками. Подойдёт для снимка ревью с именем проверяющего. Claude Code 46установок improve-codebase-architecture Matt Pocock Скилл ищет архитектурные узкие места в кодовой базе и показывает варианты углубления модулей в HTML-отчёте. Подойдёт для ревью перед рефакторингом. Claude Code 1 163 035установок tdd Matt Pocock Скилл управляет циклом красный-зелёный в TDD: проверяет, что тесты пишутся до кода, держит их на уровне публичных интерфейсов и не завязывает на внутреннюю структуру. Claude Code 1 141 062установок triage Matt Pocock Скилл проводит issue и внешние PR через роли триажа, проверку и подготовку брифа для агента. Подойдёт мейнтейнеру, который разбирает очередь задач. Claude Code 990 453установок

Вопросы о view-refactor

Как установить view-refactor в Codex?

Выполните npx skills add openai/plugins --skill view-refactor, затем npx skills add openai/plugins --skill view-refactor -a codex. Файл скилла находится по пути .agents/skills/view-refactor/SKILL.md.

Что делает view-refactor?

Скилл помогает разделить macOS SwiftUI views и scenes, удержать стабильный layout и вынести команды, состояние, сервисы и AppKit-границы в понятные отдельные типы.

Как view-refactor работает с разными версиями macOS?

Для современных deployment targets он предлагает хранить @Observable reference types в @State. Для старых целей используются @StateObject и @ObservedObject.

Исходный текст

SKILL.md · MIT
---
name: view-refactor
description: Refactor macOS SwiftUI views and scenes into stable structure. Use when splitting large views, tightening scene state, or narrowing AppKit escapes.
---

# View Refactor

## Overview

Refactor macOS views toward small, explicit, stable scene and view types. Default
to native SwiftUI for layout, selection, commands, and settings. Reach for AppKit
only at the narrow edges where desktop behavior truly requires it.

## Core Guidelines

### 1) Model scenes explicitly

- Break the app into meaningful scene roots: main window, settings, utility windows, inspectors, or menu bar extras.
- Do not let one giant root view silently own every desktop surface.

### 2) Keep a predictable file shape

- Follow this ordering unless the file already has a stronger local convention:
- Environment
- `private`/`public` `let`
- `@State` / other stored properties
- computed `var` (non-view)
- `init`
- `body`
- computed view builders / other view helpers
- helper / async functions

### 2b) Split files by responsibility

- For non-trivial apps, do not keep the full app, all views, models, stores, networking clients, process clients, and helpers in one Swift file.
- Accept a single Swift file only for tiny throwaway examples or snippets: roughly under 50 lines, one screen, no persistence, no networking/process client, and no reusable models.
- Use `App/<AppName>App.swift` for the `@main` app and `AppDelegate` only.
- Keep `Views/ContentView.swift` focused on root layout and composition; move feature UI into files such as `Views/SidebarView.swift`, `Views/DetailView.swift`, and `Views/ComposerView.swift`.
- Move value types and selection enums into `Models/*.swift`, stores into `Stores/*.swift`, app-server/network/process clients into `Services/*.swift`, and small formatters/resolvers/extensions into `Support/*.swift`.
- Keep files small and named after the primary type they contain.

### 3) Prefer dedicated subview types over many computed `some View` fragments

- Extract meaningful desktop sections like sidebar rows, detail panels, inspectors, or toolbar content into focused subviews.
- Keep computed `some View` helpers small and rare.
- Pass explicit data, bindings, and actions into subviews instead of handing down the whole scene model.

### 4) Keep selection and layout stable

- Prefer one stable split or window layout with local conditionals inside it.
- Avoid top-level branch swapping between radically different roots when selection changes.
- Let the layout be constant; let state drive the content inside it.

### 5) Extract commands, toolbars, and actions out of `body`

- Do not bury non-trivial button logic inline.
- Do not mix command routing, menu state, and layout in the same block if they can be named clearly.
- Keep `body` readable as UI, not as a desktop view controller.

### 6) Use scene and app storage intentionally

- Use `@SceneStorage` for per-window ephemeral state when it truly helps restore the scene.
- Use `@AppStorage` for durable preferences, not transient UI toggles that only matter in one window.
- Keep scene-owned state close to the scene root.

### 7) Keep AppKit escape hatches narrow

- If a representable or `NSWindow` bridge exists, isolate it behind a small wrapper or helper.
- Do not let AppKit references spread through unrelated SwiftUI views.
- If the bridge starts owning the feature, re-evaluate the architecture.

### 8) Observation usage

- For `@Observable` reference types on modern macOS targets, store them as `@State` in the owning view.
- Pass observables explicitly to children.
- On older deployment targets, fall back to `@StateObject` and `@ObservedObject` where needed.

## Workflow

1. Identify the current scene boundary and whether the file is trying to do too much.
2. Reorder the file into a predictable top-to-bottom structure.
3. Extract desktop-specific sections into dedicated subview types.
4. Stabilize the root layout around selection, scenes, and commands rather than top-level branching.
5. Move action logic, command routing, and toolbar behavior into named helpers or separate types.
6. Tighten any AppKit bridge so the imperative edge is small and explicit.
7. Keep behavior intact unless the request explicitly asks for structural and behavioral changes together.

## Refactor Checklist

- Split oversized view files before adding more UI.
- Move pure models, identifiers, and selection enums out of view files.
- Move `Process`, `URLSession`, app-server, and platform client code out of SwiftUI views into `Services/`.
- Keep `AppDelegate` and the `@main` app entrypoint minimal.
- Build after each major split so compile errors stay local.

## Common Smells

- A root view that mixes window scaffolding, settings, toolbar code, command handling, and detail layout.
- A single app file that mixes app entrypoint, root layout, feature views, models, stores, service clients, and support extensions.
- iOS-style push navigation forced into a Mac sidebar-detail problem.
- Several booleans for mutually exclusive inspectors, sheets, or utility windows.
- AppKit objects passed through many SwiftUI layers without a clear ownership reason.
- Large computed view fragments standing in for real subviews.

## Notes

- A good macOS refactor should make scene structure, selection flow, and command ownership obvious.
- When the problem is fundamentally a missing desktop pattern, use `swiftui-patterns`.
- When the problem is fundamentally a boundary with AppKit, use `appkit-interop`.

© OpenAI · MIT · openai/plugins

Смотрите также

Спонсоры проекта

Компании, которые помогают держать аналитику открытой