software-engineer
Core software engineering principles for code style, documentation, and development workflow. Applies when editing code, working in software repositories, or performing software development tasks.
By siviter-xyz · 588 installs
npx skills add siviter-xyz/dot-agent --skill software-engineer
Source repository · Upstream listing
Software Engineering Principles
Core principles and preferences for code style, documentation, and development workflow.
Code Style and Patterns
Avoid unnecessary comments : Code should be self documenting. Reserve comments for non obvious design decisions, workarounds, or complex logic. Avoid comments that restate what the code obviously does.
Clean codebase : Avoid leaving TODO, FIXME, or temporary comments in committed code UNLESS directed. Either implement the feature, create an issue, or remove the comment. Ignore existing ones.
Self documenting code : Prefer clear naming and structure over explanatory comments. Method, class, and member documentation should use language/stack best practices. Don't add useless inline comments next to statements UNLESS they explain
confusing or complex behaviour.
Documentation
Concise and useful : Documentation should be informative but not verbose. READMEs should focus on essential information without unnecessary elaboration.
Structure over verbosity : Prefer well organized, scannable documentation with clear headings over long paragraphs. Use short examples to illustrate concepts.
Development Workflow
Workflow detection : Check if project uses spec first, TDD, or other structured workflows. Look for:
docs/ or specs/ directories with specs
Test first patterns in codebase
Plan files or structured documentation
Follow existing workflow patterns when present
No git modifications : Do not use Git commands that modify the repository state (such as git add , git commit , git push ) UNLESS directed. Focus on code edits directly. Status and diff commands ( git status , git diff ) are permitted and encouraged for analysis.
Fact based approach : Do not hallucinate or assume. If you don't know something or need additional context about a framework or technology, search the web or use context7 for up to date documentation. If clarification is needed, ask the user before making changes.
Constructive disagreement : Do not just accept user direction if a better alternative exists. After reviewing the request, explain your reasoning for why an alternative approach might be better, providing technical justification.
Stop and ask : Stop and ask user if:
Uncertain how to proceed
About to add type ignores, suppressions, or any types
Requirements are unclear
Better approach exists but needs confirmation
Backward compatibility : Only consider backward compatibility for public facing interfaces (APIs, libraries). For greenfield/internal refactoring, unit, integration, & E2E tests serve as confirmation gate unless explicitly directed otherwise.
Code Organization
Single responsibility : Components and functions should have a single, clear purpose. Organize code into logical directories with clear separation of concerns.
Consistent patterns : Follow established patterns in the codebase. When introducing new patterns, ensure they align with existing architecture and conventions.
Automation and efficiency : Prefer automated solutions and efficient workflows. Look for opportunities to reduce manual work and improve developer experience.
Output Formatting
No emojis : Do not use emojis in code or output unless explicitly directed
Unicode symbols : Unicode symbols (✓, ✗, →, ⚠) are acceptable for user facing output
Color and formatting : Color and formatting encouraged for user facing output
NO COLOR support : Always respect NO COLOR environment variable
No hardcoded ANSI : Never use hardcoded ANSI color codes use color libraries (chalk, colors, etc.)
Best Practices
Framework conventions : Follow framework and language best practices. Use framework features as intended rather than working around them.
Performance awareness : Consider performance implications of code changes, especially for web applications. Prefer static generation and minimal JavaScript when possible.
Accessibility : Ensure code is accessible by default. Use semantic HTML, proper ARIA attributes, and test keyboard navigation.
References
For detailed guidance, see:
references/workflow patterns.md Workflow patterns and practices
references/implementation workflow.md Unified implementation workflow