git-workflow's description enumerated the six domains it exists to route away from, so it competed for selection with the very skills it should be handing off to. It now triggers on the case it actually serves: an interactive request whose domain is not yet clear. Also clears frontmatter drift across the plugin and removes duplicated guidance in pc-run that had diverged from its reference.
git-submodules
Add, initialize, update, pin, inspect, and remove git submodules in multi-repository projects.
What it does
This skill handles submodule operations within the git workflow suite: cloning a superproject with
its nested repositories, adding a dependency as a submodule, initializing and updating with
pinning or branch tracking, parallel and recursive traversal, rebinding URLs and tracked branches,
and the full removal sequence including the .git/modules/ cleanup git leaves behind. It returns
structured results suitable for agent composition.
It sits alongside the other git skills rather than duplicating them: git-worktrees covers
multiple checkouts of a single repository, and git-remotes covers the superproject's own remotes.
Usage
/git-submodules
Describe the submodule task. The skill applies the shared working rules, dispatches to the
reference for that task, and returns structured results (operation, status, per-submodule details,
conflicts, and a recovery next_step when applicable).
Files
| File | Purpose |
|---|---|
SKILL.md |
Skill instructions for agents — gotchas, shared working rules, and the task dispatch table |
references/README.md |
Describes contents of references/ |
references/setup-and-update.md |
Loaded when cloning a superproject, adding a submodule, or initializing, updating, or re-pinning one — includes the full add and update flag tables and the pinning workflows |
references/urls-and-config.md |
Loaded when changing where a submodule points or how it is configured — .gitmodules vs .git/config anatomy, both key tables, sync/set-url/set-branch, local mirror overrides, relative URLs, the custom-update security gate, and absorbgitdirs |
references/removal.md |
Loaded when removing or deinitializing a submodule — why deinit is not removal, and the four-step removal sequence |
references/sources.md |
Research sources and provenance |