Automated summary
Forces the agent to look for a built-in framework feature, a maintained package, or an official pattern before writing custom implementation code.
Strengths
- Reads dependency and config manifests (*.csproj, package.json, go.mod, pyproject.toml, lockfiles…) to pin the exact framework version and avoid advice written for a different release.
- Gives concrete standard-over-custom replacements: Polly for retries, Serilog.Enrichers.Sensitive for log masking, IOptions<T> for typed config, built-in ASP.NET Core health checks.
- Prefers an existing stack-specific skill in the session, then find-docs / the ctx7 CLI, so the documentation consulted is curated and versioned.
Limitations
- Inserts a mandatory research phase (steps 1-3) before any code is written, which slows down small or trivial tasks.
- Relies on web access (WebSearch/WebFetch or ctx7); without network or those tools the workflow cannot complete.
- Its 'well-maintained package' heuristic is coarse — recent updates, download counts, clear docs — and does not assess licensing or dependency security.
Use it whenever a feature sounds like something the framework or a package registry already solves, such as auth, retries, serialization, logging enrichment, health checks, or migrations.
Skip it for genuinely novel domain logic or throwaway scripts where no standard solution exists and the search adds cost without benefit.
Security analysis
CautionThe skill is advisory and benign in intent: it tells the agent to read manifests, search for existing packages, and follow official docs. No destructive commands, secret exfiltration, obfuscation, or safety-disabling behavior is present. The only real concerns are operational: it instructs executing an unpinned npm package (`npx ctx7@latest`) and carries Bash/Write permissions for a research task, both of which are legitimate but warrant a caution rating rather than a clean 'safe'.
- •Instructs running `npx ctx7@latest ...`, which downloads and executes a third-party npm package at latest version on every invocation (supply-chain / unpinned-version risk)
- •Grants Write and Bash in allowed-tools for what is primarily a research/guidance workflow, so the blast radius is broader than the skill's stated purpose
- •Directs fetching arbitrary external documentation pages via WebFetch based on WebSearch results, with no allowlist of domains beyond informal guidance
Examples
We need retries with backoff on our outbound HTTP calls in this .NET 8 API. Add retry handling.Our Serilog logs are leaking emails and card numbers — write a custom IDestructuringPolicy to mask those fields.Set up a new Node.js service with config validation and a health check endpoint.name: standard-first description: > Guides technical implementation to always prefer the standard, officially-documented solution over custom or AI-generated code. Use when you are about to write new code for a feature, suggest or add a library or package, scaffold a new project, or configure a framework, in any language, including .NET and C#, Node.js and npm, Python, Go, Java, and the rest. Use it above all when the problem sounds like something that a built-in framework feature or a package registry already solves, such as logging enrichment, auth, serialization, retries, health checks, or migrations. Do not skip this skill because the answer feels obvious from training data. argument-hint: "[task description]" allowed-tools: [WebSearch, WebFetch, Read, Glob, Write, Bash]
Standard-First
Before you implement anything, find what already exists: a built-in framework feature, a well-maintained package, or an official pattern. Steps 1 to 3 find the candidates, and Step 4 ranks them.
Step 1: Understand the stack
Use Glob and then Read on the dependency and configuration manifests of the project. Those are *.csproj, *.sln, and global.json, plus package.json, go.mod, requirements.txt, pyproject.toml, pom.xml, build.gradle, Cargo.toml, and their lockfiles. Pin the exact framework version and what is already installed. That is what stops you from reading ASP.NET Core 9 docs for a project that targets .NET 6. It also stops you from proposing a package that the project already has under a different name.
When you find no project files, ask the user for the tech stack before you proceed.
Step 2: Check for a technology-specific skill
Before you go to the web, scan the skills available in this session for one that covers the stack from Step 1. An ecosystem skill carries curated and current knowledge for that stack, and it beats a web search. When one matches, invoke it and follow its guidance, and skip Step 3 wherever that skill covers the task. Otherwise continue to Step 3.
Step 3: Search before you implement
For every implementation task, search the official sources before you write any code.
3a. Find out whether a package already solves it
The first question is always this: does the solution already exist? Search the package registry of the stack with WebSearch. Naming the registry in the query is what surfaces its listing, as in serilog log masking nuget or [problem description] npm.
A well-maintained package is almost always better than custom code. Well-maintained means actively updated, with thousands of downloads and clear docs. Such a package gets security patches, bug fixes, and compatibility updates automatically.
Here are examples of packages that replace custom code:
- To mask sensitive values in Serilog logs, use
Serilog.Enrichers.Sensitive, and not a customIDestructuringPolicy. - For retry logic in HTTP calls, use
Polly, and not a hand-rolled retry loop. - For strongly-typed configuration in ASP.NET Core, use the built-in
IOptions<T>, and not manual configuration reads. - For health checks, use the built-in
Microsoft.AspNetCore.Diagnostics.HealthChecks, and not a custom endpoint.
3b. Fetch and read the official documentation
Once you identify a candidate package or framework feature, fetch its current documentation. Never rely on training data alone, because official docs change and package APIs evolve.
Preferred path, the find-docs skill or the ctx7 CLI: when a find-docs skill is available, invoke it. Otherwise fetch the current docs with the ctx7 CLI. Run npx ctx7@latest library "<name>" to resolve the library, then npx ctx7@latest docs <id> "<focused question matching the task>". Both return curated and versioned docs directly.
Fallback, WebFetch: when neither is available, use WebFetch to retrieve the official documentation page directly.
Take the documentation from the domain of the vendor, and not from a blog or an aggregator. Use learn.microsoft.com for .NET and ASP.NET Core, nodejs.org, docs.python.org, pkg.go.dev, docs.docker.com, and kubernetes.io. For a package, start at its registry listing, and follow the docs site that it links to.
Whatever the source, read the section that is relevant to the task. Also look for sections titled "Best practices", "Recommendations", "Security considerations", "Performance", or "Production". Those sections differ from the getting-started example. They often carry configuration options, ordering constraints, and caveats that the minimal snippet omits and that matter in a real application.
The docs sometimes recommend a specific registration order, configuration pattern, or combination of options for the case at hand. Follow that recommendation, and do not stop at the minimal snippet.
3c. For new project scaffolding
When you create a project from scratch, find and follow the official "Getting Started" guide for the chosen framework. Do not generate boilerplate from memory. Fetch the current guide.
Search for [framework name] getting started official documentation site:[official-domain].
Follow the structure, the naming conventions, and the project layout of the guide exactly as it shows them. The official guide reflects the current recommended approach, and it avoids patterns that something newer has superseded.
Step 4: Choose the simplest solution
After you finish searching, apply Occam's Razor. Prefer the solution with the fewest moving parts that fully solves the stated problem.
Decision hierarchy:
- A built-in framework feature, which adds no dependency. Always prefer it when it covers the need.
- An official or well-maintained package, which beats custom code when it solves the problem cleanly.
- Custom code, only when no package and no built-in feature handles the problem adequately.
Step 5: Implement
Implement from the official docs, and not from training-data patterns. "Simplest" means the fewest invented parts, and it does not mean ignoring official guidance. Following official best practices is simpler over time, because it prevents you from rediscovering the pitfalls that the docs already record.
Every solution must include three things:
- The installation command, such as
dotnet add package,npm install, orpip install. - Working code that follows the official recommendations. That is the minimal code needed, structured according to the official best-practice pattern rather than copied from the getting-started snippet.
- A note on any deviation from a best practice. When the existing code of the project diverges from an official recommendation, call that out instead of matching the deviation in silence.
Keep the implementation concise. Show the minimum that solves the problem correctly, and do not write a comprehensive tutorial.
From the file to a first result
The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.
View the source and supporting filesThis download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.
1. Download the file
Download SKILL.mdFrom the root of a test project, save the file as .skill-downloads/prefer-standard-solutions-mttmx6xl/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.
Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.
mkdir -p '.skill-downloads/prefer-standard-solutions-mttmx6xl' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/prefer-standard-solutions-mttmx6xl/download' --output '.skill-downloads/prefer-standard-solutions-mttmx6xl/SKILL.md.part' && mv '.skill-downloads/prefer-standard-solutions-mttmx6xl/SKILL.md.part' '.skill-downloads/prefer-standard-solutions-mttmx6xl/SKILL.md'2. Check prerequisites
Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.
No recognized prerequisites section in this file. This does not mean it is self-contained: libraries, tools and access requirements may be mentioned elsewhere in the content or source repository.
The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.
3. Load the skill
After inspection, copy the complete folder into your project using one of the commands below, then open a new tool session. The command stops if a folder with the same name already exists: compare the files before replacing it.
Claude Code
test -f '.skill-downloads/prefer-standard-solutions-mttmx6xl/SKILL.md' && test -s '.skill-downloads/prefer-standard-solutions-mttmx6xl/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/standard-first' && cp -R '.skill-downloads/prefer-standard-solutions-mttmx6xl' '.claude/skills/standard-first'Cursor
test -f '.skill-downloads/prefer-standard-solutions-mttmx6xl/SKILL.md' && test -s '.skill-downloads/prefer-standard-solutions-mttmx6xl/SKILL.md' && mkdir -p '.cursor/skills' && test ! -e '.cursor/skills/standard-first' && cp -R '.skill-downloads/prefer-standard-solutions-mttmx6xl' '.cursor/skills/standard-first'Codex
test -f '.skill-downloads/prefer-standard-solutions-mttmx6xl/SKILL.md' && test -s '.skill-downloads/prefer-standard-solutions-mttmx6xl/SKILL.md' && mkdir -p '.agents/skills' && test ! -e '.agents/skills/standard-first' && cp -R '.skill-downloads/prefer-standard-solutions-mttmx6xl' '.agents/skills/standard-first'OpenSkills
OpenSkills must already be installed. The local install/read procedure is checked with OpenSkills 1.5.0, which requires Node.js ≥ 20.6.0. Catalog slugs are not resolved automatically.
Official OpenSkills installationopenskills install './.skill-downloads/prefer-standard-solutions-mttmx6xl'openskills read 'prefer-standard-solutions-mttmx6xl'Reading should display the installed file content and its base directory. It does not run the skill or install its dependencies.
For an agent that reads AGENTS.md, then sync the index. This command changes AGENTS.md: review the diff before using it.
openskills syncManual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.
4. Try a first task
Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:
Read .skill-downloads/prefer-standard-solutions-mttmx6xl/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.
React Hook Form Best Practices
Development
Master React Hook Form: avoid anti-patterns, manage subscriptions, and handle reset, dirty state, and controlled inputs correctly.
Emotion to Mantine Migration
Development
Migrate Emotion styled-components to Mantine components with style props and CSS modules. Use when converting .styled.tsx files or removing @emotion imports.
Scope Creep Detector
Development
Analyzes git diffs against a stated intent to detect scope creep, unrelated files, broad PRs, and oversized changes, then suggests keep, split, or justify actions.