versioning-skills
REQUIRED for all skill development. Automatically version control every skill file modification for rollback/comparison. Use after init_skill.sh, after every str_replace/create_file, and before packaging.
What this skill does
# Versioning Skills Use git to track changes during skill development. Initialize repos after creating skills, commit after each logical change, and use git commands to compare versions or revert mistakes. ## When Creating a New Skill After running init_skill.sh, immediately initialize git: ```bash cd /home/claude/skill-name git init git add . git commit -m "Initial commit: skill structure" ``` ## When Editing Skills After each logical change (adding a section, fixing an example, refactoring), commit: ```bash cd /home/claude/skill-name git add . git commit -m "Add: validation workflow pattern" ``` **Commit message patterns:** - `"Add [feature]: description"` - New functionality - `"Fix [issue]: description"` - Bug fixes - `"Update [section]: description"` - Content changes - `"Refactor [component]: description"` - Structural changes - `"Remove [feature]: description"` - Deletions ## When User Asks "What Changed?" **CRITICAL: Never display diffs inline - redirect to files and provide links.** **ALSO CRITICAL: Only create diffs/changelogs when user explicitly asks "what changed?" or "show differences"** **Don't preemptively create:** - CHANGELOG.md files - Change documentation - "Here's what I modified" summaries **Why:** The updated code/docs ARE the documentation. Creating separate changelogs wastes tokens and duplicates information. **When user asks, show commit history:** ```bash cd /home/claude/skill-name git log --oneline ``` Save diff to file (prevents token waste): ```bash cd /home/claude/skill-name git diff <commit-hash-1> <commit-hash-2> > /mnt/user-data/outputs/changes.diff ``` Then provide: `[View changes](computer:///mnt/user-data/outputs/changes.diff)` For multiple diffs: ```bash # Changed files list git diff --name-only <commit-1> <commit-2> > /mnt/user-data/outputs/changed-files.txt # Full diff git diff <commit-1> <commit-2> > /mnt/user-data/outputs/full-diff.diff # Summary stats git diff --stat <commit-1> <commit-2> > /mnt/user-data/outputs/diff-stats.txt ``` **Wrong:** `git diff <commit-1> <commit-2>` (displays in stdout, wastes tokens) **Right:** `git diff <commit-1> <commit-2> > /mnt/user-data/outputs/diff.txt` (file + link) ## Reverting Commits or Discarding Work **Undo last commit (keep uncommitted changes):** ```bash cd /home/claude/skill-name git reset --soft HEAD~1 ``` **Undo last commit (discard all changes):** ```bash git reset --hard HEAD~1 ``` **Revert specific commit (creates new commit, preserves history):** ```bash git revert <commit-hash> ``` **Discard uncommitted edits (restore to last commit):** ```bash git restore . ``` Prefer `git revert` over `git reset --hard` to preserve history. ## When Testing Experimental Changes Create a branch before risky modifications: ```bash cd /home/claude/skill-name # Create and switch to experiment branch git checkout -b experiment-new-approach # Make changes, test # ... edit files ... git add . git commit -m "Experiment: alternative validation" # If successful, merge back git checkout main git merge experiment-new-approach git branch -d experiment-new-approach # If failed, abandon and return to main git checkout main git branch -D experiment-new-approach ``` ## When Comparing Two Skill Versions If user uploads or provides two versions: ```bash cd /home/claude mkdir -p compare # Extract both versions unzip /mnt/user-data/uploads/skill-v1.zip -d compare/v1 unzip /mnt/user-data/uploads/skill-v2.zip -d compare/v2 # Initialize git in each cd compare/v1 && git init && git add . && git commit -m "Version 1" cd ../v2 && git init && git add . && git commit -m "Version 2" # Compare cd ../v1 git diff --no-index . ../v2 ``` Or use diff directly without git: ```bash diff -ur compare/v1 compare/v2 ``` ## When Packaging Skills Before zipping, verify clean state: ```bash cd /home/claude/skill-name git status # Should show no uncommitted changes git log --oneline # Review history # Package (excludes .git automatically with -x) cd /home/claude zip -r /mnt/user-data/outputs/skill-name.zip skill-name/ -x "*.git*" ``` ## Workflow Integration **During skill creation:** 1. Run init_skill.sh 2. Immediately: `git init && git add . && git commit -m "Initial structure"` 3. Edit SKILL.md 4. Commit: `git add . && git commit -m "Add: core documentation"` 5. Continue editing → commit after each major change **During skill editing:** 1. Make change with str_replace or bash 2. Test if needed 3. Commit: `git add <file> && git commit -m "Fix: corrected example"` 4. Repeat **Before delivery:** 1. Review history: `git log --oneline` 2. Verify clean: `git status` 3. Package with -x to exclude .git ## Configuration Set git identity once per session to avoid prompts: ```bash git config --global user.name "Claude" git config --global user.email "[email protected]" ``` ## Common Issues **"not a git repository"** → Run `git init` first **"nothing to commit"** → No changes made, or forgot `git add` **Commit message editor opens** → Always use `-m "message"` with commit ## Best Practices Commit after each logical change, not every keystroke. Use descriptive commit messages in present tense. Create branches for experimental changes. Use `git log --oneline` frequently to track progress. ## Limitations Git repos in /home/claude reset between sessions. Version control only persists within a single development session. Network restrictions prevent push/pull to remote repos.
Related in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.