Skip to content

Fix Apple bootstrap repository-skills runner discovery in versioned plugin caches #182

Description

@gaelic-ghost

Summary

bootstrap-swift-package and bootstrap-xcode-app-project fail their mutating path when both companion plugins are installed from Socket into the current versioned cache layout. They report that repository-skills is missing even though it is installed and exposed.

Reproduction

  1. Install or enable apple-dev-skills and repository-skills from the Socket marketplace.
  2. Run either Apple bootstrap workflow through its supported mutating path.
  3. The workflow reaches its maintain-project-repo installation step and fails.

Observed installed paths:

/Users/galew/.codex/plugins/cache/socket/apple-dev-skills/9.34.0/...
/Users/galew/.codex/plugins/cache/socket/repository-skills/9.34.0/skills/maintain-project-repo/scripts/run_workflow.py

Actual behavior

  • bootstrap-swift-package/scripts/bootstrap_swift_package.sh constructs:

    $script_dir/../../../../repository-skills/skills/maintain-project-repo/scripts/run_workflow.py
    

    From a versioned cache install, this resolves beneath apple-dev-skills/, not the sibling repository-skills/<version>/ directory.

  • bootstrap-xcode-app-project/scripts/bootstrap_xcode_app_project.py uses Path(__file__).resolve().parents[4] as the plugin root. In the source-tree layout that reaches plugins/, but in the versioned cache layout it reaches apple-dev-skills/, causing the same incorrect sibling lookup.

Both workflows then instruct the user to install a companion plugin that is already present.

Expected behavior

The Apple bootstrap workflows should discover the installed companion runner across both source-tree and versioned-cache layouts, then execute repository-skills:maintain-project-repo successfully.

Suggested direction

Reuse or factor the candidate-based discovery approach already present in the guidance-sync scripts: check source-tree siblings and versioned plugin-cache siblings, select a concrete maintain-project-repo/scripts/run_workflow.py, and keep the existing clear error only after those candidates are exhausted. Add regression coverage for the versioned-cache layout.

Impact

This blocks new Swift package and Xcode app bootstrap despite a valid companion-plugin installation.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions