Nicholai f71583fc66 Add algorithmic-art skill, assets, and many new skills to .claude
- Add algorithmic-art skill with license, template, and viewer.
- Add artifacts-builder skill with scripts and components.
- Add brand-guidelines skill with license.
- Add canvas-design skill with fonts and license.
- Add content-research-writer skill.
- Add doc-coauthoring skill.
- Add PDF, PPTX, XLSX skill assets.
- Update ecosystem manifest and assets.

Signed by Hubert The Eunuch
2026-01-18 08:26:05 -07:00

110 lines
2.5 KiB
Markdown

---
name: submodule
description: Add git submodules with proper registration, verification, and optional commit
---
# Git Submodule Workflow
Add git submodules correctly with full verification to prevent registration issues.
## Usage
- `/submodule <url> <path>` - Add submodule with specified URL and path
- `/submodule` - Interactive mode, will prompt for URL and path
## Workflow
### Step 1: Gather Information
If not provided, ask the user for:
- **Repository URL** (required) - The git repository to add as submodule
- **Target path** (required) - Where to place the submodule (relative to project root)
### Step 2: Pre-flight Checks
Before adding, verify:
```bash
# Check if path already exists
ls -la <path> 2>/dev/null && echo "WARNING: Path exists"
# Check if already in .gitmodules
grep -q "<path>" .gitmodules 2>/dev/null && echo "WARNING: Already in .gitmodules"
# Check current submodule status
git submodule status
```
If path exists but isn't a proper submodule, it may need cleanup first.
### Step 3: Add Submodule
```bash
git submodule add <url> <path>
```
### Step 4: Verify Registration (4-Point Check)
All four checks must pass:
```bash
# 1. Check .gitmodules has entry
grep -A2 "<path>" .gitmodules
# 2. Check git submodule status shows it
git submodule status | grep "<path>"
# 3. Check .git/modules/<path>/ exists
ls .git/modules/<path>/
# 4. Check submodule has proper .git file
cat <path>/.git
# Should show: gitdir: ../../.git/modules/<path>
```
### Step 5: Recovery (If Verification Fails)
If the submodule exists but isn't registered:
```bash
# Remove from index without deleting files
git rm --cached <path>
# Re-add properly
git submodule add <url> <path>
```
If .gitmodules entry exists but submodule isn't in index:
```bash
# Re-register existing directory
git submodule add <url> <path>
```
### Step 6: Stage and Review
```bash
# Check what's staged
git status
# Should show:
# new file: .gitmodules (if first submodule or modified)
# new file: <path>
```
### Step 7: Commit (Optional)
If user wants to commit:
```bash
git commit -m "chore: add <name> git submodule at <path>"
```
## Common Issues
| Issue | Cause | Fix |
|-------|-------|-----|
| "already exists in index" | Path was added but not as submodule | `git rm --cached <path>` then re-add |
| Shows as untracked directory | Submodule not in git index | Run `git submodule add` on existing dir |
| Warning about embedded repo | Directory has .git but not registered | Use `git submodule add` not `git clone` |