Files
holocron/plugins/git/skills/git-submodules
Defame1297 38efd2be67 fix(skills): collapse verb-enumerated descriptions to one capability clause
An independent audit of the ADR-0020 retrofit (issue #99) found that
git-submodules, git-worktrees, and gitea-files each collapsed their
description length correctly during retrofit but left the capability
clause as a verb enumeration (e.g. "Create, list, lock, move, remove,
prune, or repair") instead of ADR-0020's required single clause. The
deterministic char-count gate can't catch this — it's a qualitative
rubric violation the retrofit commits' own messages never claimed to
address, only measurable length/word-count fixes.

Validated clean via skill-audit and skill-size-check after the fix;
boundary clauses and routing targets left untouched.

Refs #99
2026-08-30 17:45:50 +00:00
..

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