🔎 Existing issue check
🧭 Problem
For monorepos where implementation packages are git submodules, the correct Comet commit sequence is:
- Commit changes inside the submodule.
- Stage the parent repository submodule pointer.
- Commit parent OpenSpec/Superpowers/archive state.
This workflow was not encoded by Comet and had to be handled manually. If an agent commits the parent before the submodule, the parent can point to an uncommitted or unintended submodule state. If it stages all submodules, unrelated work can be captured accidentally.
✨ Proposed solution
Detect submodule pointer changes and guide the agent through the safe sequence:
- show dirty status inside changed submodules
- require or recommend committing relevant submodules first
- verify changed submodule worktrees are clean before parent commit
- stage only the relevant submodule pointer(s)
- leave unrelated dirty submodules untouched
🎯 Primary area
Classic workflow runtime (domains/comet-classic, assets/skills/comet/scripts/)
🪐 Workflow phase
Build
🔀 Alternatives considered
Document the convention only. Documentation helps, but a guard is safer because parent/submodule commits are easy to get wrong during long-running workflows.
🧰 Compatibility notes
- Comet package:
@rpamis/comet@0.4.0-beta.3
- Repo shape: Julia monorepo with implementation packages in git submodules
- The check could run in build/archive verification before final parent commit.
🧩 Additional context
Suggested guard: warn when the parent index contains a submodule pointer whose submodule worktree still has uncommitted changes.
🔎 Existing issue check
🧭 Problem
For monorepos where implementation packages are git submodules, the correct Comet commit sequence is:
This workflow was not encoded by Comet and had to be handled manually. If an agent commits the parent before the submodule, the parent can point to an uncommitted or unintended submodule state. If it stages all submodules, unrelated work can be captured accidentally.
✨ Proposed solution
Detect submodule pointer changes and guide the agent through the safe sequence:
🎯 Primary area
Classic workflow runtime (
domains/comet-classic,assets/skills/comet/scripts/)🪐 Workflow phase
Build
🔀 Alternatives considered
Document the convention only. Documentation helps, but a guard is safer because parent/submodule commits are easy to get wrong during long-running workflows.
🧰 Compatibility notes
@rpamis/comet@0.4.0-beta.3🧩 Additional context
Suggested guard: warn when the parent index contains a submodule pointer whose submodule worktree still has uncommitted changes.