swift-package-agents-maintainer
npx machina-cli add skill gaelic-ghost/apple-dev-skills/swift-package-agents-maintainer --openclawSwift Package AGENTS Maintainer
Maintain one canonical AGENTS.md across Swift Package repositories.
Prefer the bundled script for deterministic automation runs.
Workflow
- Confirm scope and mode.
- Use
--repo <path>for a single repository. - Use
--root <path>to scan recursively for repos containingPackage.swift. - If neither
--reponor--rootis provided, scan~/Workspaceby default. - Use
--checkfor read-only drift detection in recurring automation. - Omit
--checkto apply updates.
- Resolve the canonical file.
- Default canonical file:
assets/AGENTS.mdin this skill. - If the user provides another canonical source, pass it with
--canonical <path>.
- Run synchronization.
- Command:
scripts/sync_agents_md.sh [--canonical <path>] (--repo <path> | --root <path>) [--check] [--verbose] - In apply mode, the script creates or updates
AGENTS.mdin each discovered Swift package repo. - In check mode, the script reports drift and exits non-zero if any repo differs.
- Validate and report.
- Summarize: scanned repos, unchanged repos, updated repos, and drift count.
- For automation runs, include whether exit status indicates drift.
Defaults
- Prefer
--checkfor scheduled automation runs that only detect drift. - Prefer apply mode for user-invoked maintenance runs.
- Treat a directory as a Swift package repo only when
Package.swiftis present. - Use
~/Workspaceas the default discovery root on machines where Swift packages are stored there. - Use
--rootwhen your repositories live outside~/Workspace. - Skip hidden/build dependency directories during scans (for example
.git, any.*directory,.build,.swiftpm,node_modules). - Skip Xcode-protected/generated directories during scans (for example
*.xcworkspace,*.xcodeproj,DerivedData).
Automation Prompting
- Codex App automation fit: Strong. Use for recurring drift detection or scheduled apply runs.
- Codex CLI automation fit: Strong. Use deterministic prompts that map directly to
--checkor apply mode. - Use
references/automation-prompts.mdfor Codex App and Codex CLI templates with placeholders. - Keep mode, schedule, and workspace routing explicit to avoid accidental apply runs.
Troubleshooting
- If the canonical file path is missing, stop and request or restore a valid canonical
AGENTS.md. - If no repositories are discovered under
--root, report that noPackage.swiftfiles were found. - If permissions block writes, rerun with an authorized workspace path or approved elevation.
Resources
scripts/
scripts/sync_agents_md.sh: Detect and apply canonicalAGENTS.mdchanges across Swift package repos.
assets/
assets/AGENTS.md: Canonical baseline template for Swift package repositories.
references/
references/automation-usage.md: Suggested recurring automation modes and output expectations.references/automation-prompts.md: Codex App and Codex CLI automation templates with placeholders and guardrails.
Interactive Customization Flow
- Load current effective customization settings first:
uv run python scripts/customization_config.py effective
- Ask targeted customization questions:
- Use
references/customization-flow.mdto drive knob-by-knob questions. - Confirm desired behavior changes and safety constraints.
- Map requested changes to implementation files:
- Update
SKILL.md,references/*, and any runtime script files listed inreferences/customization-flow.md.
- Persist durable customization state:
- Start from
customization.template.yamldefaults. - Apply approved overrides with
uv run python scripts/customization_config.py apply --input <yaml-file>. - Durable path:
~/.config/gaelic-ghost/apple-dev-skills/<skill-name>/customization.yaml. - Optional override root:
APPLE_DEV_SKILLS_CONFIG_HOME.
- Report resulting effective configuration:
- Re-run
uv run python scripts/customization_config.py effectiveand summarize final active settings. - If the user asks to remove customization state, run
uv run python scripts/customization_config.py reset.
Use references/customization-flow.md for skill-specific knobs, file mapping, guardrails, validation checks, and example requests.
Source
git clone https://github.com/gaelic-ghost/apple-dev-skills/blob/main/apple-swift-repo-tools/swift-package-agents-maintainer/SKILL.mdView on GitHub Overview
Maintains a single AGENTS.md baseline across Swift Package repositories and applies deterministic updates with a bundled script. It supports single-repo and recursive discovery, offers a read-only drift mode (--check), and updates repositories to enforce a shared policy baseline.
How This Skill Works
Use the bundled script scripts/sync_agents_md.sh to locate targets via --repo or --root (defaulting to ~/Workspace). The workflow updates AGENTS.md to a canonical assets/AGENTS.md or a user-specified file with --canonical; in check mode it reports drift and exits non-zero.
When to Use It
- When you need to sync AGENTS.md across multiple Swift Package repos
- When enforcing a shared policy baseline across Swift repos
- When detecting drift in automation and validating changes
- When applying canonical templates or customizing the sync policy per project
- When performing scheduled automation or CI runs that manage AGENTS.md
Quick Start
- Step 1: Decide the scope with --repo <path> or --root <path> (default ~/Workspace).
- Step 2: Run the sync command: scripts/sync_agents_md.sh [--canonical <path>] (--repo <path> | --root <path>) [--check] [--verbose].
- Step 3: Review the summary and, if in apply mode, commit the updated AGENTS.md files.
Best Practices
- Prefer running with --check for drift detection in automation runs
- Keep the canonical source at assets/AGENTS.md and use --canonical to override
- Exclude hidden, build, and Xcode-protected directories during scans
- Validate outcomes by reviewing the summary of scanned, updated, and drifted repos
- Run from a known workspace root, e.g., --root or default ~/Workspace, to ensure discoverability
Example Use Cases
- CI drift-detection of AGENTS.md across Swift packages
- Batch-synchronize AGENTS.md in a multi-repo Swift project
- Override canonical file with a custom path for a specific repo
- Scan from a root path to discover all Package.swift repositories under ~/Workspace
- Gracefully handle missing AGENTS.md by prompting for a valid canonical file