MUST use for all coding related tasks - includes general coding best practices and software engineering principles to build robust, maintainable, and scalable software.
Intro in this page language first. The official description stays in its original wording; we do not rewrite SKILL.md.
What it does
MUST use for all coding related tasks - includes general coding best practices and software engineering principles to build robust, maintainable, and scalable software.
When to use it
The official description does not include a separate “Use when”. Per the spec, agents activate this skill when the task matches keywords in that description.
How agents load it
Per Agent Skills progressive disclosure: name and description load at startup (~100 tokens); the full SKILL.md body loads when the skill activates; scripts/, references/, and assets/ load only as needed. This file's sections: General Coding Best Practices; Overview; Core Principles; Implementation Guidelines; Automated Analysis & Quality Control; Verifying Code Changes.
File analysis
File analysis: instruction-only skill (SKILL.md). The agent loads the full body when activated.
General Coding Best PracticesOverviewCore PrinciplesImplementation GuidelinesAutomated Analysis & Quality ControlVerifying Code ChangesKey Principles
MUST use for all coding related tasks - includes general coding best practices and software engineering principles to build robust, maintainable, and scalable software.
DiscoverThe client exposes names and descriptions to the agent.
ActivateYour request or the task context selects the skill and loads its instructions.
Load resourcesReferenced scripts, documentation and assets are used when needed.
Choose the target agent and installation scope, keep referenced package files, then verify the skill appears in the client's catalog.
Ask your Agent to install
Copy these instructions to a compatible agent and confirm the target directory matches your client.
Install the agent skill "coding" into my project. The full SKILL.md and official description are at https://zicq.com/en/skills/skl-8b4ecdcc0c72e705-Coding.html
Save it as .cursor/skills/coding/SKILL.md or .claude/skills/coding/SKILL.md and keep the frontmatter name and description exactly as-is.
The CLI lets you choose the agent interactively. The default scope is the project; use -g for user scope. Confirm package availability with the discovery command, then use npx skills list to inspect installed skills.
Readable layout
name: coding
description: "MUST use for all coding related tasks - includes general coding best practices and software engineering principles to build robust, maintainable, and scalable software."
General Coding Best Practices
Overview
This skill provides a set of core principles and practices for software development. Use this when implementing new features, refactoring existing code, or reviewing code to ensure high quality and maintainability.
Core Principles
DRY (Don't Repeat Yourself): Avoid logic duplication. If you find yourself writing the same code twice, abstract it.
KISS (Keep It Simple, Stupid): Prefer simple, straightforward solutions over complex ones. Avoid over-engineering.
YAGNI (You Ain't Gonna Need It): Don't implement features or abstractions until they are actually needed.
SOLID Principles:
Single Responsibility: A class/function should have one reason to change.
Open/Closed: Software entities should be open for extension but closed for modification.
Liskov Substitution: Subtypes must be substitutable for their base types.
Interface Segregation: Many client-specific interfaces are better than one general-purpose interface.
Dependency Inversion: Depend on abstractions, not concretions.
Existing Guidelines: - Follow existing guidelines in the project (e.g. CLAUDE.md, AGENT.md, etc.)
Implementation Guidelines
Clean Code: Use descriptive names for variables, functions, and classes. Write code that is easy to read and understand.
Small Functions: Keep functions small and focused on a single task.
Error Handling: Use proactive error handling. Validate inputs and handle exceptions gracefully.
Documentation: Document the why, not the what. Use self-documenting code where possible.
Security: Sanitize inputs, avoid hardcoding secrets, and follow the principle of least privilege.
Performance: Be mindful of time and space complexity, but avoid premature optimization.
Automated Analysis & Quality Control
Static Analysis & Linting: Every project MUST have automated linting, formatting and static analysis (e.g., ESLint, Prettier, Ruff, Sonar).
Check: Identify if these tools are configured.
Propose: If missing, immediately propose adding them (e.g., npm install --save-dev eslint).
Automated Tests: Ensure there is a test runner configured (e.g., Jest, Pytest).
Check: Look for tests/ directory or test configurations in package.json/pyproject.toml.
Propose: If missing, propose a testing framework and initial setup.
Verifying Code Changes
Before completing any task, you MUST perform the following verification loop:
Simplification: Use the code-simplifier plugin to make the code cleaner and more maintainable.
Self-Code Review:
Review the changes against the task requirements.
Ensure compliance with this coding skill (DRY, KISS, SOLID).
Check for potential security vulnerabilities or performance regressions.
Static Analysis & Linting:
If project does not have linting/formatting configured, propose adding it.
Run the project's linting/format commands (e.g., npm run lint, prettier --check .).
Fix all reported issues.
Unit Testing:
If project does not have a test runner configured, propose adding one.
Add Missing Tests: If new logic was added, write concise unit tests covering the happy path and edge cases.
Run Tests: Execute the test suite (e.g., npm test, pytest).
Verification: Ensure all tests pass. If they fail, fix the implementation or the test.
Key Principles
Clarity over Cleverness: Write code for humans first, machines second.
Consistency: Follow the established patterns and style of the existing codebase.
Composition over Inheritance: Prefer combining simple objects to build complex ones rather than creating deep inheritance hierarchies.