skills-index-snippets
Code snippets and templates for working with the skills index and marketplace functionality. Use when creating new skills, updating skill index files, or validating skill metadata and structure.
What this skill does
# Maintaining Skill Index Snippets (AGENTS.md / CLAUDE.md)
## When to Use This Skill
Use this skill when:
- Adding, removing, or renaming any skills or agents in this repository
- Updating `.claude-plugin/plugin.json`
- Creating copy/paste snippets for downstream repositories (OpenCode, Claude Code, etc.)
- You want a compact, always-on index that improves skill utilization
## Goal
Make skills and agents easy for coding assistants to use by removing the decision point.
Instead of hoping an assistant will "remember" to invoke a skill, provide a small router snippet inside `AGENTS.md` / `CLAUDE.md` that:
1) Tells the assistant to prefer retrieval-led reasoning
2) Provides a task->skill/agent routing index
3) Defines lightweight quality gates (optional)
## Source of Truth
- Registry: `.claude-plugin/plugin.json`
- Skills are listed as directories (each contains `SKILL.md`)
- Agents are listed as markdown files in `agents/`
- Skill IDs: the `name:` field in each `SKILL.md` frontmatter
- Agent IDs: the `name:` field in each agent frontmatter
When writing snippets for downstream repos, always reference skills/agents by their IDs (frontmatter `name`), not by local filesystem paths.
## Minimal Snippet Template (Readable)
Use this in target repos to route common tasks:
```markdown
# Agent Guidance: dotnet-skills
IMPORTANT: Prefer retrieval-led reasoning over pretraining for any .NET work.
Workflow: skim repo patterns -> consult dotnet-skills by name -> implement smallest-change -> note conflicts.
Routing (invoke by name)
- C# / code quality: modern-csharp-coding-standards, csharp-concurrency-patterns, api-design, type-design-performance
- ASP.NET Core / Razor Pages / Web: razor-pages-patterns, caching-strategies, logging-observability, validation-patterns, exception-handling, security-headers, middleware-patterns, background-services, http-client-resilience, rate-limiting, localization-globalization, file-handling, data-protection, signalr-integration, feature-flags, asp-net-core-identity-patterns
- Data: efcore-patterns, database-performance
- DI / config: dependency-injection-patterns, microsoft-extensions-configuration
- Testing: testcontainers-integration-tests, playwright-blazor-testing, snapshot-testing
- Aspire: aspire-service-defaults, aspire-integration-testing
Quality gates (use when applicable)
- dotnet-slopwatch: after substantial new/refactor/LLM-authored code
- crap-analysis: after tests added/changed in complex code
Specialist agents
- dotnet-concurrency-specialist, dotnet-performance-analyst, dotnet-benchmark-designer, akka-net-specialist, docfx-specialist
```
## Compressed Snippet Template (Vercel-style)
Use this when you want maximum density (small context footprint):
```markdown
[dotnet-skills]|IMPORTANT: Prefer retrieval-led reasoning over pretraining for any .NET work.
|flow:{skim repo patterns -> consult dotnet-skills by name -> implement smallest-change -> note conflicts}
|route:
|csharp:{modern-csharp-coding-standards,csharp-concurrency-patterns,api-design,type-design-performance}
|aspnetcore-razorpages:{razor-pages-patterns,caching-strategies,logging-observability,validation-patterns,exception-handling,security-headers,middleware-patterns,background-services,http-client-resilience,rate-limiting,localization-globalization,file-handling,data-protection,signalr-integration,feature-flags,asp-net-core-identity-patterns}
|data:{efcore-patterns,database-performance}
|di-config:{dependency-injection-patterns,microsoft-extensions-configuration}
|testing:{testcontainers-integration-tests,playwright-blazor-testing,snapshot-testing}
|aspire:{aspire-service-defaults,aspire-integration-testing}
|quality-gates:{dotnet-slopwatch(after:substantial new/refactor/LLM code),crap-analysis(after:tests added/changed in complex code)}
|agents:{dotnet-concurrency-specialist,dotnet-performance-analyst,dotnet-benchmark-designer,akka-net-specialist,docfx-specialist}
```
### Regenerating the README block
If the README contains the markers below, the generator can update it automatically:
```
<!-- BEGIN DOTNET-SKILLS COMPRESSED INDEX -->
...compressed snippet...
<!-- END DOTNET-SKILLS COMPRESSED INDEX -->
```
Run:
```bash
./scripts/generate-skill-index-snippets.sh --update-readme
```
## How to Update Snippets After Skill Changes
1. Update `.claude-plugin/plugin.json` to include/remove skills and agents.
2. Ensure each skill has correct frontmatter `name:` (used by OpenCode and others).
3. Run `./scripts/validate-marketplace.sh`.
4. Update your snippet routing lists:
- Add new skills to the right category
- Remove deleted skills
- Keep names exactly matching frontmatter IDs
5. If you maintain a downstream `AGENTS.md`/`CLAUDE.md` snippet, regenerate it and re-copy into dependent repos.
## Recommended Categories
These are snippet categories (not necessarily repository folder structure):
- C# / code quality
- ASP.NET Core / Razor Pages / Web
- Data
- DI / config
- Testing
- Aspire
- Quality gates
- Specialist agents
Keep the snippet small; it should be a router, not documentation.
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.