heal-skill
Repair skill hygiene.
What this skill does
# /heal-skill — Automated Skill Maintenance > **Purpose:** Detect and auto-fix common skill hygiene issues across the skills/ directory. **YOU MUST EXECUTE THIS WORKFLOW. Do not just describe it.** --- ## Quick Start ```bash /heal-skill # Check all skills (report only) /heal-skill --fix # Auto-repair all fixable issues /heal-skill --strict # Check all skills, exit 1 on findings (CI mode) /heal-skill skills/council # Check a specific skill /heal-skill --fix skills/vibe # Fix a specific skill ``` --- ## What It Detects Ten checks, run in order: | Code | Issue | Auto-fixable? | |------|-------|---------------| | `MISSING_NAME` | No `name:` field in SKILL.md frontmatter | Yes -- adds name from directory | | `MISSING_DESC` | No `description:` field in SKILL.md frontmatter | Yes -- adds placeholder | | `NAME_MISMATCH` | Frontmatter `name` differs from directory name | Yes -- updates to match directory | | `UNLINKED_REF` | File in references/ not linked in SKILL.md | Yes -- converts bare backtick refs to markdown links | | `EMPTY_DIR` | Skill directory exists but has no SKILL.md | Yes -- removes empty directory | | `DEAD_REF` | SKILL.md references a non-existent references/ file | No -- warn only | | `SCRIPT_REF_MISSING` | SKILL.md references a scripts/ file that does not exist | No -- warn only | | `INVALID_AO_CMD` | SKILL.md references an `ao` subcommand that does not exist (only runs if `ao` is on PATH) | No -- warn only | | `DEAD_XREF` | SKILL.md references a `/skill-name` that has no matching skill directory | No -- warn only | | `CATALOG_MISSING` | A user-invocable skill is missing from the using-agentops catalog | No -- warn only | --- ## Execution Steps ### Step 1: Run the heal script ```bash # Check mode (default) -- report only, no changes bash skills/heal-skill/scripts/heal.sh --check # Fix mode -- auto-repair what it can bash skills/heal-skill/scripts/heal.sh --fix # Target a specific skill bash skills/heal-skill/scripts/heal.sh --check skills/council bash skills/heal-skill/scripts/heal.sh --fix skills/council ``` ### Step 1A: Audit Codex Parity Drift When The Codex Bundle Looks Wrong When the problem is not source-skill hygiene but `skills-codex/` drift, run the Codex parity audit first: ```bash bash scripts/audit-codex-parity.sh bash scripts/audit-codex-parity.sh --skill swarm ``` Use this when a checked-in Codex skill still contains Claude-era primitives (`TaskCreate`, `TaskList`, `Tool: Task`), Claude backend references, or obviously broken runtime rewrites. **Repair rule:** keep canonical shared behavior in `skills/<name>/SKILL.md`. Update `skills-codex/<name>/SKILL.md` when the shipped Codex artifact is wrong, and keep durable Codex-only tailoring in `skills-codex-overrides/<name>/SKILL.md`. After repair: ```bash bash scripts/audit-codex-parity.sh bash scripts/validate-codex-override-coverage.sh bash scripts/validate-codex-generated-artifacts.sh --scope worktree ``` ### Step 2: Interpret results - **Exit 0:** All clean, no findings. Also exit 0 for `--check` mode with findings (report-only). - **Exit 1:** Findings reported with `--strict` or `--fix` flag. In `--fix` mode, fixable issues were repaired; re-run `--check` to confirm. ### Step 3: Report to user Show the output. If `--fix` was used, summarize what changed. If `DEAD_REF` findings remain, advise the user to remove or update the broken references manually. --- ## Output Format One line per finding: ``` [MISSING_NAME] skills/foo: No name field in frontmatter [MISSING_DESC] skills/foo: No description field in frontmatter [NAME_MISMATCH] skills/foo: Frontmatter name 'bar' != directory 'foo' [UNLINKED_REF] skills/foo: refs/bar.md not linked in SKILL.md [EMPTY_DIR] skills/foo: Directory exists but no SKILL.md [DEAD_REF] skills/foo: SKILL.md links to non-existent refs/bar.md [SCRIPT_REF_MISSING] skills/foo: references scripts/bar.sh but file not found [INVALID_AO_CMD] skills/foo: references 'ao badcmd' which is not a valid subcommand [DEAD_XREF] skills/foo: references /nonexistent but skill directory not found [CATALOG_MISSING] using-agentops: bar is user-invocable but missing from catalog ``` --- ## Notes - The script is **idempotent** -- running `--fix` twice produces the same result. - `DEAD_REF`, `SCRIPT_REF_MISSING`, `INVALID_AO_CMD`, `DEAD_XREF`, and `CATALOG_MISSING` are warn-only because the correct resolution requires human judgment. - `INVALID_AO_CMD` only runs if the `ao` CLI is available on PATH. Skipped silently otherwise. - `CATALOG_MISSING` is a global check (not per-skill) and only runs when `using-agentops/SKILL.md` exists. - When run without a path argument, scans all directories under `skills/`. - Use `--strict` for CI gates: exits 1 on any finding. Without `--strict`, check mode exits 0 even with findings. - For Codex parity drift, use the audit script plus override-layer repair workflow in [references/codex-parity.md](references/codex-parity.md). The shell fixer is intentionally not allowed to rewrite generated Codex bodies directly. ## Examples ### Running a health check across all skills **User says:** `/heal-skill` **What happens:** 1. The heal script scans every directory under `skills/`, checking each for the ten issue types (missing name, missing description, name mismatch, unlinked references, empty directories, dead references, script reference integrity, CLI command validation, cross-reference validation, catalog completeness). 2. Findings are printed one per line with issue codes (e.g., `[NAME_MISMATCH] skills/foo: Frontmatter name 'bar' != directory 'foo'`). 3. The script exits with code 0 in check mode (even with findings), or code 1 with `--strict` or `--fix` flags. **Result:** A diagnostic report showing all skill hygiene issues across the repository, with no files modified. ### Auto-fixing a specific skill **User says:** `/heal-skill --fix skills/vibe` **What happens:** 1. The heal script inspects only `skills/vibe/`, running all per-skill checks against that skill. 2. For each fixable issue found (e.g., `MISSING_NAME`, `UNLINKED_REF`), the script applies the repair automatically -- adding the name from the directory, converting bare backtick references to markdown links, etc. 3. Any `DEAD_REF` findings are reported as warnings since they require human judgment to resolve. **Result:** The `skills/vibe/SKILL.md` is repaired in place, with a summary of changes applied and any remaining warnings. ## Troubleshooting | Problem | Cause | Solution | |---------|-------|----------| | `DEAD_REF` findings persist after `--fix` | Dead references are warn-only because the correct fix (delete, create, or update) requires human judgment | Manually inspect each dead reference and either create the missing file, remove the link from SKILL.md, or update the path | | Script reports `EMPTY_DIR` for a skill in progress | The skill directory was created but SKILL.md has not been written yet | Either add a SKILL.md to the directory or remove the empty directory. Running `--fix` will remove it automatically | | `NAME_MISMATCH` fix changed the wrong name | The script always updates the frontmatter `name` to match the directory name, not the other way around | If the directory name is wrong, rename the directory first, then re-run `--fix` | | Script exits 0 but a skill still has issues | The issue type is not one of the ten checks the heal script detects | The heal script covers structural hygiene only. Content quality issues require manual review or `/council` validation | | Running `--fix` twice produces different output | This should not happen -- the script is idempotent | File a bug. Check if another process modified the skill files between runs | | `skills-codex/` keeps regressing after sync | Mechanical conversion is preserving the wrong semantics | Run `bash scripts/audit-codex-parity.sh`, then move the durable Codex body rewrite into `skills-codex-overrides/<name>/SKILL.md` ins
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.