Skip to content

apple-dev: adopt prefixed Swift naming#116

Merged
gaelic-ghost merged 3 commits into
mainfrom
apple-dev/swift-file-naming
Jul 10, 2026
Merged

apple-dev: adopt prefixed Swift naming#116
gaelic-ghost merged 3 commits into
mainfrom
apple-dev/swift-file-naming

Conversation

@gaelic-ghost

@gaelic-ghost gaelic-ghost commented Jul 10, 2026

Copy link
Copy Markdown
Owner

Summary

  • require explicit three-letter prefixes and retire + Swift filenames
  • contain SwiftUI composition guidance and add a dedicated SwiftData workflow
  • update Xcode app scaffolding, guidance sync audits, shared snippets, and tests
  • bump Socket to 8.7.0

Verification

  • uv run pytest in plugins/apple-dev-skills: 192 passed
  • bash .github/scripts/validate_repo_docs.sh
  • uv run scripts/validate_socket_metadata.py
  • no subtree action: Apple Dev Skills is monorepo-owned

Summary by CodeRabbit

  • New Features

    • Added a dedicated SwiftData workflow covering persistence design, SwiftUI integration, migrations, testing, and customization.
    • Xcode app scaffolding now supports an explicit three-letter Swift prefix and generates consistent, Xcode-friendly filenames.
    • Added clearer guidance for SwiftUI components, view models, services, persistence models, records, and DTOs.
  • Documentation

    • Updated Apple development guidance and examples to reflect the new naming and workflow conventions.
  • Chores

    • Updated project and plugin release versions to 8.7.0.

Why:
Replace legacy plus-suffixed files with a deterministic Xcode-friendly naming grammar and give SwiftData a focused workflow owner.

Breaking:
New app scaffolds require --file-prefix and generate prefixed source, view-model, service, domain, and test filenames.

Verification:
Apple Dev docs validation passed; targeted workflow and customization tests passed.
Why:
Publish the Swift naming and SwiftData workflow changes as a backward-compatible feature release.

Verification:
Shared version inventory is aligned and Socket marketplace metadata validation passes.
@gaelic-ghost gaelic-ghost added the enhancement New feature or request label Jul 10, 2026
@gaelic-ghost gaelic-ghost merged commit a4c450d into main Jul 10, 2026
1 check passed
@gaelic-ghost gaelic-ghost deleted the apple-dev/swift-file-naming branch July 10, 2026 22:23
@coderabbitai

coderabbitai Bot commented Jul 10, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: abe6f0fc-cb1d-4e5c-a2d7-6c745b177109

📥 Commits

Reviewing files that changed from the base of the PR and between 7be174e and cda2e8d.

⛔ Files ignored due to path filters (8)
  • plugins/agent-portability-skills/uv.lock is excluded by !**/*.lock
  • plugins/apple-dev-skills/uv.lock is excluded by !**/*.lock
  • plugins/cardhop-app/mcp/uv.lock is excluded by !**/*.lock
  • plugins/productivity-skills/uv.lock is excluded by !**/*.lock
  • plugins/python-skills/uv.lock is excluded by !**/*.lock
  • plugins/things-app/mcp/uv.lock is excluded by !**/*.lock
  • plugins/things-app/uv.lock is excluded by !**/*.lock
  • uv.lock is excluded by !**/*.lock
📒 Files selected for processing (114)
  • ROADMAP.md
  • plugins/agent-portability-skills/.codex-plugin/plugin.json
  • plugins/agent-portability-skills/pyproject.toml
  • plugins/agentdeck/.codex-plugin/plugin.json
  • plugins/android-dev-skills/.codex-plugin/plugin.json
  • plugins/apple-dev-skills/.codex-plugin/plugin.json
  • plugins/apple-dev-skills/.github/scripts/validate_repo_docs.sh
  • plugins/apple-dev-skills/README.md
  • plugins/apple-dev-skills/ROADMAP.md
  • plugins/apple-dev-skills/docs/maintainers/customization-consolidation-review.md
  • plugins/apple-dev-skills/pyproject.toml
  • plugins/apple-dev-skills/shared/agents-snippets/apple-swift-package-core.md
  • plugins/apple-dev-skills/shared/agents-snippets/apple-xcode-project-core.md
  • plugins/apple-dev-skills/skills/appkit-app-architecture-workflow/SKILL.md
  • plugins/apple-dev-skills/skills/appkit-app-architecture-workflow/references/snippets/apple-xcode-project-core.md
  • plugins/apple-dev-skills/skills/apple-typography-workflow/SKILL.md
  • plugins/apple-dev-skills/skills/apple-typography-workflow/references/snippets/apple-xcode-project-core.md
  • plugins/apple-dev-skills/skills/apple-ui-accessibility-workflow/SKILL.md
  • plugins/apple-dev-skills/skills/apple-ui-accessibility-workflow/references/snippets/apple-xcode-project-core.md
  • plugins/apple-dev-skills/skills/avaudio-engine-workflow/references/snippets/apple-xcode-project-core.md
  • plugins/apple-dev-skills/skills/avfaudio-session-workflow/references/snippets/apple-xcode-project-core.md
  • plugins/apple-dev-skills/skills/avfoundation-media-pipeline-workflow/references/snippets/apple-xcode-project-core.md
  • plugins/apple-dev-skills/skills/bootstrap-swift-package/assets/AGENTS.md
  • plugins/apple-dev-skills/skills/bootstrap-swift-package/references/snippets/apple-swift-core.md
  • plugins/apple-dev-skills/skills/bootstrap-swift-package/references/snippets/apple-swift-package-core.md
  • plugins/apple-dev-skills/skills/bootstrap-xcode-app-project/SKILL.md
  • plugins/apple-dev-skills/skills/bootstrap-xcode-app-project/assets/AGENTS.md
  • plugins/apple-dev-skills/skills/bootstrap-xcode-app-project/references/snippets/apple-swift-core.md
  • plugins/apple-dev-skills/skills/bootstrap-xcode-app-project/references/snippets/apple-xcode-project-core.md
  • plugins/apple-dev-skills/skills/bootstrap-xcode-app-project/scripts/bootstrap_xcode_app_project.py
  • plugins/apple-dev-skills/skills/bootstrap-xcode-app-project/scripts/run_workflow.py
  • plugins/apple-dev-skills/skills/core-animation-layer-workflow/SKILL.md
  • plugins/apple-dev-skills/skills/core-animation-layer-workflow/references/snippets/apple-xcode-project-core.md
  • plugins/apple-dev-skills/skills/coreaudio-modernization-repair-workflow/references/snippets/apple-xcode-project-core.md
  • plugins/apple-dev-skills/skills/coremedia-timing-samplebuffer-workflow/references/snippets/apple-xcode-project-core.md
  • plugins/apple-dev-skills/skills/devicecheck-app-attest-workflow/references/snippets/apple-xcode-project-core.md
  • plugins/apple-dev-skills/skills/explore-apple-swift-docs/references/snippets/apple-swift-core.md
  • plugins/apple-dev-skills/skills/explore-apple-swift-docs/references/snippets/apple-xcode-project-core.md
  • plugins/apple-dev-skills/skills/format-swift-sources/references/snippets/apple-xcode-project-core.md
  • plugins/apple-dev-skills/skills/migrate-xcode-project-to-xcodegen/references/snippets/apple-xcode-project-core.md
  • plugins/apple-dev-skills/skills/safari-extension-control-workflow/SKILL.md
  • plugins/apple-dev-skills/skills/safari-extension-control-workflow/references/snippets/apple-xcode-project-core.md
  • plugins/apple-dev-skills/skills/sf-symbols-workflow/SKILL.md
  • plugins/apple-dev-skills/skills/sf-symbols-workflow/references/snippets/apple-xcode-project-core.md
  • plugins/apple-dev-skills/skills/structure-swift-sources/SKILL.md
  • plugins/apple-dev-skills/skills/structure-swift-sources/references/file-header-inventory.template.yaml
  • plugins/apple-dev-skills/skills/structure-swift-sources/references/file-headers.md
  • plugins/apple-dev-skills/skills/structure-swift-sources/references/layout-rules.md
  • plugins/apple-dev-skills/skills/structure-swift-sources/references/source-organization-rules.md
  • plugins/apple-dev-skills/skills/swift-openapi-client-workflow/SKILL.md
  • plugins/apple-dev-skills/skills/swift-package-build-run-workflow/references/snippets/apple-swift-package-core.md
  • plugins/apple-dev-skills/skills/swift-package-testing-workflow/references/snippets/apple-swift-package-core.md
  • plugins/apple-dev-skills/skills/swift-package-workflow/references/snippets/apple-swift-package-core.md
  • plugins/apple-dev-skills/skills/swiftdata-workflow/SKILL.md
  • plugins/apple-dev-skills/skills/swiftdata-workflow/agents/openai.yaml
  • plugins/apple-dev-skills/skills/swiftdata-workflow/references/customization-flow.md
  • plugins/apple-dev-skills/skills/swiftdata-workflow/references/customization.template.yaml
  • plugins/apple-dev-skills/skills/swiftdata-workflow/references/migrations-testing-and-boundaries.md
  • plugins/apple-dev-skills/skills/swiftdata-workflow/references/models-containers-and-contexts.md
  • plugins/apple-dev-skills/skills/swiftdata-workflow/references/snippets/apple-xcode-project-core.md
  • plugins/apple-dev-skills/skills/swiftdata-workflow/references/swiftui-integration.md
  • plugins/apple-dev-skills/skills/swiftdata-workflow/scripts/customization_config.py
  • plugins/apple-dev-skills/skills/swiftui-animation-workflow/SKILL.md
  • plugins/apple-dev-skills/skills/swiftui-animation-workflow/references/snippets/apple-xcode-project-core.md
  • plugins/apple-dev-skills/skills/swiftui-app-architecture-workflow/SKILL.md
  • plugins/apple-dev-skills/skills/swiftui-app-architecture-workflow/references/anti-patterns-and-corrections.md
  • plugins/apple-dev-skills/skills/swiftui-app-architecture-workflow/references/snippets/apple-xcode-project-core.md
  • plugins/apple-dev-skills/skills/sync-swift-package-guidance/references/snippets/apple-swift-package-core.md
  • plugins/apple-dev-skills/skills/sync-xcode-project-guidance/SKILL.md
  • plugins/apple-dev-skills/skills/sync-xcode-project-guidance/assets/AGENTS.md
  • plugins/apple-dev-skills/skills/sync-xcode-project-guidance/assets/append-section.md
  • plugins/apple-dev-skills/skills/sync-xcode-project-guidance/references/snippets/apple-xcode-project-core.md
  • plugins/apple-dev-skills/skills/sync-xcode-project-guidance/scripts/run_workflow.py
  • plugins/apple-dev-skills/skills/sync-xcode-project-guidance/scripts/sync_xcode_project_guidance.py
  • plugins/apple-dev-skills/skills/xcode-app-project-workflow/SKILL.md
  • plugins/apple-dev-skills/skills/xcode-app-project-workflow/references/snippets/apple-swift-core.md
  • plugins/apple-dev-skills/skills/xcode-app-project-workflow/references/snippets/apple-xcode-project-core.md
  • plugins/apple-dev-skills/skills/xcode-build-run-workflow/SKILL.md
  • plugins/apple-dev-skills/skills/xcode-build-run-workflow/references/snippets/apple-swift-core.md
  • plugins/apple-dev-skills/skills/xcode-build-run-workflow/references/snippets/apple-xcode-project-core.md
  • plugins/apple-dev-skills/skills/xcode-coding-intelligence-workflow/references/snippets/apple-xcode-project-core.md
  • plugins/apple-dev-skills/skills/xcode-testing-workflow/SKILL.md
  • plugins/apple-dev-skills/skills/xcode-testing-workflow/references/snippets/apple-swift-core.md
  • plugins/apple-dev-skills/skills/xcode-testing-workflow/references/snippets/apple-xcode-project-core.md
  • plugins/apple-dev-skills/tests/test_customization_consolidation_review.py
  • plugins/apple-dev-skills/tests/test_devicecheck_app_attest_workflow.py
  • plugins/apple-dev-skills/tests/test_structure_swift_sources_file_headers.py
  • plugins/apple-dev-skills/tests/test_structure_swift_sources_workflow.py
  • plugins/apple-dev-skills/tests/test_swiftui_app_architecture_workflow.py
  • plugins/apple-dev-skills/tests/test_xcode_app_bootstrap_workflow.py
  • plugins/apple-dev-skills/tests/test_xcode_guidance_sync_workflow.py
  • plugins/cardhop-app/.codex-plugin/plugin.json
  • plugins/cardhop-app/mcp/pyproject.toml
  • plugins/cloud-deployment-skills/.codex-plugin/plugin.json
  • plugins/cloud-inference-skills/.codex-plugin/plugin.json
  • plugins/dotnet-skills/.codex-plugin/plugin.json
  • plugins/game-dev-skills/.codex-plugin/plugin.json
  • plugins/network-protocol-skills/.codex-plugin/plugin.json
  • plugins/productivity-skills/.codex-plugin/plugin.json
  • plugins/productivity-skills/pyproject.toml
  • plugins/python-skills/.codex-plugin/plugin.json
  • plugins/python-skills/pyproject.toml
  • plugins/reverse-engineering-skills/.codex-plugin/plugin.json
  • plugins/rust-skills/.codex-plugin/plugin.json
  • plugins/server-side-jvm/.codex-plugin/plugin.json
  • plugins/server-side-swift/.codex-plugin/plugin.json
  • plugins/spotify/.codex-plugin/plugin.json
  • plugins/swift-lang/.codex-plugin/plugin.json
  • plugins/swiftasb-skills/.codex-plugin/plugin.json
  • plugins/things-app/.codex-plugin/plugin.json
  • plugins/things-app/mcp/pyproject.toml
  • plugins/things-app/pyproject.toml
  • plugins/web-dev-skills/.codex-plugin/plugin.json
  • pyproject.toml

📝 Walkthrough

Walkthrough

Introduces a dedicated SwiftData workflow with documentation, customization tooling, and plugin registration; standardizes prefixed concatenated Swift filenames; updates Xcode scaffolding, structure audits, tests, and guidance; and bumps repository package and plugin versions to 8.7.0.

Changes

SwiftData workflow and Apple guidance

Layer / File(s) Summary
Dedicated SwiftData workflow
plugins/apple-dev-skills/skills/swiftdata-workflow/*
Adds SwiftData workflow guidance, integration rules, migration/testing boundaries, customization configuration, and Xcode project standards.
Guidance ownership and naming
plugins/apple-dev-skills/skills/*, plugins/apple-dev-skills/shared/*, plugins/apple-dev-skills/ROADMAP.md
Moves SwiftData-specific decisions to swiftdata-workflow, updates SwiftUI composition ownership, and replaces + filename examples with three-letter prefixed concatenated names.
Xcode scaffold and auditing
plugins/apple-dev-skills/skills/bootstrap-xcode-app-project/*, plugins/apple-dev-skills/skills/sync-xcode-project-guidance/*
Adds required --file-prefix validation and prefix-based generated files, and audits project-owned Swift filenames, view models, controllers, and app/domain pairings.
Validation and fixtures
plugins/apple-dev-skills/tests/*, plugins/apple-dev-skills/skills/structure-swift-sources/references/*
Updates tests and inventory examples for the new active skill, filename grammar, scaffold output, and generated guidance.
Release metadata
plugins/*/.codex-plugin/plugin.json, plugins/**/pyproject.toml, pyproject.toml
Bumps affected plugin and package versions from 8.6.0 to 8.7.0.

Estimated code review effort: 4 (Complex) | ~60 minutes

Possibly related PRs

Suggested labels: documentation

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch apple-dev/swift-file-naming

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: cda2e8d933

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

- Never use `+` filenames. Name views `GEAWhateverView.swift`, paired view models `GEAWhateverViewModel.swift`, and extracted modifiers `GEAWhateverViewModifier.swift`.
- Give independently editable or previewable components their own files; small private helpers may remain while they do not clutter focused editing.
- Prefix child components with their complete composition owner, such as `GEASettingsSheetToggleCard.swift`.
- Use `GEAApp.swift` for the lifecycle entry, `GEA.swift` for the runtime/domain value, and `GEAAppService.swift` for its main service.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Template the recorded Swift prefix in generated guidance

When bootstrap-xcode-app-project is run with any --file-prefix other than GEA, the scaffold creates files such as ABCApp.swift but copies this AGENTS template unchanged, so the generated repo’s durable guidance tells future agents to use GEAApp.swift/GEAAppService.swift instead of the selected prefix. That can cause subsequent edits in non-GEA projects to introduce incorrectly named files; the template needs to use the chosen prefix or a neutral placeholder that is replaced during bootstrap.

Useful? React with 👍 / 👎.

sources_dir = repo_root / "Sources"
if sources_dir.is_dir():
for swift_path in sorted(sources_dir.rglob("*.swift")):
if len(swift_path.stem) < 3 or not swift_path.stem[:3].isalpha() or not swift_path.stem[:3].isupper():

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Compare Swift filenames against one selected prefix

For repos that have already selected a prefix, this audit only checks whether each filename starts with any three uppercase letters, so a mixed-prefix tree like ABCApp.swift plus XYZContentView.swift is reported as clean even though the workflow is supposed to flag files missing the selected prefix. This makes structure_audit miss the exact drift this change advertises; derive or require one prefix for the repo and compare every project-owned Swift file against that value.

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant