| name | sync-xcode-workspace-guidance |
| description | Sync guidance for an Apple .xcworkspace with Apps and Packages. Use to audit root guidance, app projects, local package wiring, XcodeGen settings, and service boundaries; not for one standalone .xcodeproj or package. |
Sync Xcode Workspace Guidance
Purpose
Align the root guidance for a modular Apple workspace while preserving the
separate owners of each app project and Swift package. scripts/run_workflow.py
detects the shape, audits its composition, and adds the bounded workspace
guidance section when needed.
Workflow
- Use
explore-apple-swift-docs before changing workflow policy. Prefer Xcode
MCP, then Dash's usable XcodeGen : ProjectSpec archive.
- Run
scripts/run_workflow.py --repo-root <root> to inspect workspace,
projects, packages, and optional services.
- Confirm that the root contains one
.xcworkspace, Apps/, and Packages/.
Report missing or misplaced projects and packages; do not repair project
membership by editing workspace or .pbxproj data directly.
- Check each app's
project.yml for a local packages declaration before
claiming it consumes a Core package. Check the package's Package.swift for
its real target and product graph.
- For generated workspace projects, verify
schemePathPrefix: "../" where
workspace-relative scheme paths are used. Keep XcodeGen per-project: it does
not become the workspace source of truth.
- Route app-specific guidance to
sync-xcode-project-guidance, package-specific
guidance to sync-swift-package-guidance, and active execution to
xcode-build-run-workflow or xcode-testing-workflow.
- Keep optional services under
Services/ as their own deployment and runtime
boundary. Use the selected server skill for service-local policy.
Audit Contract
The runtime reports:
- workspace and app-project paths;
- package paths containing
Package.swift;
project.yml paths;
- optional service roots;
- missing workspace, app-project, package, or marker-directory findings;
- the root
AGENTS.md action taken or planned.
It does not parse XcodeGen package declarations, classify topology, or change
workspace membership, app target dependencies, package manifests, generated
projects, or service code.
Guards And Handoffs
- Stop when the root has no
.xcworkspace, Apps/, or Packages/ marker.
- Stop when the root is a single app project or package; use the narrower sync
skill instead.
- Do not mistake a navigator group, folder reference, or directory for a Swift
package target.
- Do not use cross-project references to replace local package products.
- Do not hand-edit
.pbxproj or workspace data. Make Xcode/XcodeGen-aware
changes through the owner skill.
References
references/workspace-shape.md
assets/append-section.md