Manage documentation in the docs/ git submodule with proper structure and synchronization...
Manage documentation stored in the docs/ git submodule with proper structure, syncing, and version control.
This skill automates the workflow for working with the docs/ submodule:
Check if the docs/ directory exists and is initialized:
# Check if docs directory is a git repository
if [ ! -d "docs/.git" ]; then
# Try npm run setup if it exists
if grep -q '"setup"' package.json 2>/dev/null; then
npm run setup
else
# Fallback to git submodule commands
git submodule update --init --recursive
fi
fi
Navigate to docs/<repo-name>/ where <repo-name> is the parent repository name.
Get repo name:
# Extract repo name from git remote URL
REPO_NAME=$(basename $(git rev-parse --show-toplevel))
Choose appropriate directory based on content type:
| Directory | Purpose | Examples |
|---|---|---|
solutions/<issue>/ |
Bug fixes, workarounds, issue documentation | android-build-failure/, navigation-crash/ |
specs/<feature>/ |
Technical specs, implementation plans, progress tracking | chat-refactor/, offline-sync/ |
feature/<feature-name>/ |
PRDs, product requirements, user stories | voice-messaging/, payment-integration/ |
For detailed guidance and examples, see structure-guide.md.
Standard files for specs/:
implementation-plan.md - Initial technical planprogress.md - Development tracking (use for features with 5+ todos)If content doesn't fit these categories, create a descriptive directory (e.g., research/, rfcs/, architecture/).
Create the necessary directory structure and files:
cd docs/$REPO_NAME
# Create directory if needed (example for specs)
mkdir -p specs/<feature-name>
# Create or edit the file
# Use Write or Edit tools to create/modify the documentation
Inside the docs submodule:
cd docs
# Sync from remote master first
git fetch origin
git pull origin master
# Stage and commit changes
git add .
git commit -m "doc: added spec for <feature-name>"
# OR
git commit -m "doc: update progress for <feature-name>"
# Push to remote
git push origin master
In the parent repository:
cd .. # Return to parent repo root
# Commit the submodule update
git add docs
git commit -m "doc: update docs submodule for <feature-name>"
Commit message format:
doc: added spec for <feature-name>doc: update progress for <feature-name>doc: added solution for <issue-name>doc: added PRD for <feature-name>If submodule pull fails due to conflicts:
If docs directory structure doesn't exist:
docs/<repo-name>/ if it doesn't existIf unable to determine appropriate directory:
Detailed documentation structure guide with: