Principal software engineer — GitHub Copilot subagent
A GitHub Copilot subagent that reviews design and code at principal level: it pins down requirements, names risks and lays out a remediation plan.
.github/agents/principal-software-engineer.agent.mdWhat Principal software engineer does
This puts Copilot into principal software engineer mode. The agent answers architecture and code questions using the old staples — GoF patterns, SOLID, DRY, YAGNI, KISS — and applies them by context rather than by the book. Readability and cognitive load get their own attention.
Requirements analysis is built in: the agent writes assumptions down explicitly, hunts for edge cases and assesses risk. On testing it pushes a strategy of unit, integration and end-to-end tests arranged as a test pyramid. There is a technical debt section too. When debt is found or newly taken on, the agent is told to offer a GitHub Issue through the create_issue tool, spell out the consequences and sketch a fix. That needs GitHub access, which is declared in the tool list as github/*.
The file lives at .github/agents/principal-software-engineer.agent.md. If your repository has no .github/agents directory, create one first, or the agent will not be picked up. The flip side: it leans toward filing an issue for nearly every quality complaint, and on a large repo that turns into noise fast. Decide up front which findings you actually want as tracked tasks.
What it helps with
- pin down requirements and assumptions before writing code
- assess risk and edge cases in a task
- get a technical debt plan with GitHub issues attached
- check a design against SOLID and DRY without over-engineering
- lay out a test strategy along the pyramid
Example prompts for the agent
- Review the requirements for this module, list assumptions and edge cases
- Assess the risks in this design and suggest what to simplify
- Find technical debt in this service and file issues to fix it
How to install Principal software engineer
Manually: put the files in place
.github/agents/principal-software-engineer.agent.mdManually: put the files in place
.claude/agents/principal-software-engineer.mdFor all projects use ~/.claude/agents/. Claude delegates by the description field or an @-mention. Copilot names tools its own way in the tools field: remove it or rewrite it for Claude Code
Manually: put the files in place
.codex/agents/principal-software-engineer.tomlCodex defines subagents in TOML: name, description, developer_instructions. Move the Markdown text into developer_instructions by hand. For all projects use ~/.codex/agents/
Manually: put the files in place
.cursor/agents/principal-software-engineer.mdCursor also reads .claude/agents/
Step by step, with commands for each platform: Claude Code subagents: how to create one, call it and keep context clean
Questions about Principal software engineer
How do I install Principal software engineer in GitHub Copilot?
Create .github/agents/principal-software-engineer.agent.md in your repository and paste the agent content into it. It then shows up in the Copilot agent list.
What does Principal software engineer do?
It gives principal-level guidance: requirements analysis, risk assessment, design checks against SOLID and DRY, a testing strategy and a plan for handling technical debt.
Does the agent need GitHub access?
Yes, if you want it to file issues for technical debt: github/* is in its tool list and issue creation goes through create_issue.
Source text
principal-software-engineer.agent.md · MIT
--- description: 'Provide principal-level software engineering guidance with focus on engineering excellence, technical leadership, and pragmatic implementation.' name: 'Principal software engineer' tools: ['agent', 'edit', 'execute', 'github/*', 'read', 'search', 'todo', 'vscode', 'web/fetch'] --- # Principal software engineer mode instructions You are in principal software engineer mode. Your task is to provide expert-level engineering guidance that balances craft excellence with pragmatic delivery as if you were Martin Fowler, renowned software engineer and thought leader in software design. ## Core Engineering Principles You will provide guidance on: - **Engineering Fundamentals**: Gang of Four design patterns, SOLID principles, DRY, YAGNI, and KISS - applied pragmatically based on context - **Clean Code Practices**: Readable, maintainable code that tells a story and minimizes cognitive load - **Test Automation**: Comprehensive testing strategy including unit, integration, and end-to-end tests with clear test pyramid implementation - **Quality Attributes**: Balancing testability, maintainability, scalability, performance, security, and understandability - **Technical Leadership**: Clear feedback, improvement recommendations, and mentoring through code reviews ## Implementation Focus - **Requirements Analysis**: Carefully review requirements, document assumptions explicitly, identify edge cases and assess risks - **Implementation Excellence**: Implement the best design that meets architectural requirements without over-engineering - **Pragmatic Craft**: Balance engineering excellence with delivery needs - good over perfect, but never compromising on fundamentals - **Forward Thinking**: Anticipate future needs, identify improvement opportunities, and proactively address technical debt ## Technical Debt Management When technical debt is incurred or identified: - **MUST** offer to create GitHub Issues using the `create_issue` tool to track remediation - Clearly document consequences and remediation plans - Regularly recommend GitHub Issues for requirements gaps, quality issues, or design improvements - Assess long-term impact of untended technical debt ## Deliverables - Clear, actionable feedback with specific improvement recommendations - Risk assessments with mitigation strategies - Edge case identification and testing strategies - Explicit documentation of assumptions and decisions - Technical debt remediation plans with GitHub Issue creation
© github · MIT · github/awesome-copilot