software-engineering

Applies core engineering principles for writing quality, maintainable code.

Updated Jul 29, 2026
One-click install
npx skills add https://github.com/MaiconGambini/opencode-harness-guide --skill software-engineering-maicongambini
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: software-engineering
Source: https://github.com/MaiconGambini/opencode-harness-guide/tree/main/skills/software-engineering
Command: npx skills add https://github.com/MaiconGambini/opencode-harness-guide --skill software-engineering-maicongambini

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Inconsistent coding habits lead to unmaintainable codebases, vague naming, missing tests, and security gaps. This Skill enforces a consistent set of engineering standards across all code you write or review. ## Core Features & Use Cases - Code Quality Standards: Enforces type-safety, simplicity (KISS, YAGNI), functional programming patterns, and clear naming conventions. - Testing & Error Handling Guidance: Promotes behavior-focused tests, regression tests for fixed bugs, structured error logging, and user feedback on failures. - Security & Accessibility Checks: Applies OWASP best practices, WCAG 2.0 guidelines, and query-builder usage to prevent SQL injection. - Use Case: When writing a new API endpoint, the Skill guides you to use concrete names like retryAfterMs, keep code near its usage, add observability, and write behavior-driven tests. ## Quick Start Review this pull request and apply the software engineering standards to flag naming, testing, and security issues.

Frequently Asked Questions about software-engineering

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I enforce coding standards in a project?

Apply a defined set of engineering principles covering naming, organization, testing, and security to every change. This Skill provides rules like concrete naming (retryAfterMs over timeout), behavior-focused tests, and OWASP compliance that can be applied during writing or review.

What are good naming conventions for variables and functions?

Use concrete, specific names such as retryAfterMs instead of timeout or emailValidator instead of validator. Avoid vague terms like data, item, list, or info, and use nested objects like config.public.ENV_NAME to provide context.

How should I write tests for fixed bugs?

Write a test for every bug you fix to prevent re-occurrence. Test behavior rather than implementation, use third-person verbs instead of "should", and organize cases with describe blocks.

When should I avoid creating abstractions in code?

Avoid abstractions when a function mainly calls one other function or a helper is used only once. Keep code close to where it is used unless it is needed in three or more places, following KISS and YAGNI principles.

How do I prevent SQL injection in application code?

Use query-builders instead of writing pure SQL strings, which protects against injection attacks. Combine this with OWASP best practices and WCAG 2.0 accessibility guidelines for secure, accessible applications.