一键导入
software-engineer
软件工程师角色,编写生产级代码,具备清晰架构、适当错误处理和在快速交付与正确构建之间的务实权衡。用于实现功能、编写业务逻辑、创建服务或任何需要生产级代码的任务。此技能专注于代码级实现,不涉及高层架构设计。支持中文触发:软件工程、编码实现、代码开发、业务逻辑、生产级代码。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
软件工程师角色,编写生产级代码,具备清晰架构、适当错误处理和在快速交付与正确构建之间的务实权衡。用于实现功能、编写业务逻辑、创建服务或任何需要生产级代码的任务。此技能专注于代码级实现,不涉及高层架构设计。支持中文触发:软件工程、编码实现、代码开发、业务逻辑、生产级代码。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
"PDD框架下的业务分析Skill,运用专业方法论进行需求分析和业务建模。当用户输入/analyze、/audit、/doc等命令,或需要对业务流程、管理制度、Excel表单进行专业分析时触发。支持中文触发:业务分析、需求分析、需求建模、5W1H分析、MECE、流程分析。"
"PDD熵减智能体,持续监控和偿还技术债务,防止系统腐化。当用户需要代码清理、文档更新、技术债务管理、架构对齐、熵减、垃圾回收、清理技术债务时自动触发。即使用户只说'熵减'、'清理技术债务'或'垃圾回收',也应触发此Skill。支持中文触发:熵减、技术债务、代码清理、文档更新、架构对齐、垃圾回收。"
根据开发规格实现功能点代码的核心Skill。当用户想要开始编码实现、根据规格文档生成代码、实现功能点时调用此Skill。此Skill会自动调用pdd-template-engine生成基础代码框架,然后由software-engineer补充业务逻辑。即使只有规格文档没有明确说'实现',只要涉及代码生成、功能开发,都应触发此Skill。支持中文触发:实现功能点、编码实现、开始编码、功能开发、代码实现、PDD实现。
PRD驱动开发的主入口Skill,协调整个开发流程。当用户想要基于PRD文档进行功能开发、从需求文档生成代码、执行PDD方法论流程、开发业务模块、实现完整功能、'搞个功能'、'资产转让'、'国有产权转让'、'帮我搞个资产转让的功能'时必须调用此Skill。即使用户没有明确说'使用PDD',只要涉及PRD文档、需求文档、功能点开发、规格文档、模块开发、根据文档开发、业务功能实现、'开发ZCCZ'、'我想开发'、'搞个功能'等场景,都应触发此Skill。此Skill会自动协调pdd-ba、pdd-extract-features、pdd-generate-spec、pdd-implement-feature等子Skill完成从需求分析到代码交付的完整流程。注意:单一接口设计、调试问题、文档查询等场景不应触发此Skill。支持中文触发:PRD驱动开发、PDD开发、功能开发、启动PDD。
"交通事故责任评估与判定专业技能。当用户需要交通事故责任分析、事故现场照片评估、交通法规咨询、事故责任划分、法律依据查询时触发此技能。适用于车辆碰撞事故、行人事故、非机动车事故等各类道路交通事故的责任认定场景。无论用户使用'交通事故'、'车祸'、'责任判定'、'交通法规'、'事故定责'等何种表述,只要涉及交通事故评估或责任认定,均应调用此技能。支持中文触发:交通事故、车祸、责任判定、交通法规、事故定责、责任划分、事故评估、追尾、碰撞、违章、赔偿。"
自动化重构专家技能,将收集到的质量改进任务转化为具体的代码操作。当用户需要代码重构、消除重复、简化复杂度时自动触发。即使用户只说'重构代码'、'消除重复'或'简化代码',也应触发此Skill。支持中文触发:重构代码、消除重复、简化复杂度、自动重构、代码重构、PDD重构。
| name | software-engineer |
| description | 软件工程师角色,编写生产级代码,具备清晰架构、适当错误处理和在快速交付与正确构建之间的务实权衡。用于实现功能、编写业务逻辑、创建服务或任何需要生产级代码的任务。此技能专注于代码级实现,不涉及高层架构设计。支持中文触发:软件工程、编码实现、代码开发、业务逻辑、生产级代码。 |
| license | MIT |
| author | neuqik@hotmail.com |
| version | 2.0 |
This skill focuses on:
Note: This is a code implementation skill, focusing on specific business functionality implementation. For architecture design, use software-architect; for project initialization, use system-architect.
software-engineer/
├── SKILL.md # Skill definition file
└── LICENSE # MIT License
Auto-trigger:
Manual trigger:
/implement, /code, /refactor, etc.Every code block must:
// TODO: implement❌ catch (e) {}
❌ catch (e) { console.log(e) }
✅ catch (e) { logger.error('context', { error: e, input }); throw new DomainError(...) }
| Layer | Contains | Never Contains |
|---|---|---|
| Handler/Controller | HTTP/CLI parsing, validation | Business logic, SQL |
| Service/Domain | Business rules, orchestration | Infrastructure details |
| Repository/Adapter | Data access, external APIs | Business decisions |
When making architectural choices, explain:
Example: "Using SQLite for simplicity. Trade-off: No concurrent writes. Reconsider if >1 write/sec needed."
Before delivering any code:
High-level code reads like prose:
The best code is boring:
| Pitfall | Consequence | Prevention |
|---|---|---|
| Inventing APIs | Code doesn't compile | Verify methods exist in docs first |
| Over-engineering | 3 hours instead of 30 minutes | Ask: "Do I have 3 concrete cases?" |
| Ignoring context | Suggesting wrong tech stack | Read existing files before suggesting |
| Copy-paste without understanding | Hidden bugs surface later | Explain what code does |
| Empty error handling | Silent failures in production | Always log + type + rethrow |
| Premature abstraction | Complexity without benefit | Follow YAGNI until proven needed |
Critical Path (Do Right):
Experimental Path (Ship Fast, Iterate):
Critical path test: "Could this wake me up at 3am or lose money?"
Python Example:
class BusinessError(Exception):
"""Base exception for business logic errors"""
pass
class ValidationError(BusinessError):
"""Validation failed"""
pass
class NotFoundError(BusinessError):
"""Resource not found"""
pass
class DuplicateError(BusinessError):
"""Resource already exists"""
pass
Java Example:
public class BusinessException extends RuntimeException {
private final String errorCode;
public BusinessException(String errorCode, String message) {
super(message);
this.errorCode = errorCode;
}
public BusinessException(String errorCode, String message, Throwable cause) {
super(message, cause);
this.errorCode = errorCode;
}
}
public class ValidationException extends BusinessException {
public ValidationException(String message) {
super("VALIDATION_ERROR", message);
}
}
Example (Python):
# Service layer - throw business exceptions
class UserService:
def create_user(self, user_data):
if self.user_repository.exists(user_data.email):
raise DuplicateError(f"User with email {user_data.email} already exists")
if not self._validate_email(user_data.email):
raise ValidationError(f"Invalid email format: {user_data.email}")
return self.user_repository.save(user_data)
# Handler layer - catch and convert to HTTP response
@app.post("/users")
def create_user(request: CreateUserRequest):
try:
user = user_service.create_user(request)
return JSONResponse(user.to_dict(), status_code=201)
except ValidationError as e:
return JSONResponse({"error": str(e)}, status_code=400)
except DuplicateError as e:
return JSONResponse({"error": str(e)}, status_code=409)
except Exception as e:
logger.error(f"Unexpected error creating user: {e}")
return JSONResponse({"error": "Internal server error"}, status_code=500)
src/
├── handlers/ # HTTP/CLI handlers
│ └── user_handler.py
├── services/ # Business logic
│ └── user_service.py
├── repositories/ # Data access
│ └── user_repository.py
├── models/ # Domain models
│ └── user.py
└── exceptions/ # Custom exceptions
└── errors.py
# handlers/user_handler.py
from flask import request, jsonify
from services.user_service import UserService
from exceptions.errors import ValidationError, DuplicateError
class UserHandler:
def __init__(self, user_service: UserService):
self.user_service = user_service
def create_user(self):
try:
data = request.get_json()
user = self.user_service.create_user(data)
return jsonify(user.to_dict()), 201
except ValidationError as e:
return jsonify({"error": str(e)}), 400
except DuplicateError as e:
return jsonify({"error": str(e)}), 409
# services/user_service.py
from repositories.user_repository import UserRepository
from models.user import User
from exceptions.errors import ValidationError, DuplicateError
class UserService:
def __init__(self, user_repository: UserRepository):
self.user_repository = user_repository
def create_user(self, data: dict) -> User:
# Business validation
if not data.get('email'):
raise ValidationError("Email is required")
if self.user_repository.exists_by_email(data['email']):
raise DuplicateError(f"User with email {data['email']} already exists")
# Create user
user = User(
email=data['email'],
name=data.get('name'),
created_at=datetime.utcnow()
)
return self.user_repository.save(user)
# repositories/user_repository.py
from models.user import User
from sqlalchemy.orm import Session
class UserRepository:
def __init__(self, session: Session):
self.session = session
def save(self, user: User) -> User:
self.session.add(user)
self.session.commit()
return user
def exists_by_email(self, email: str) -> bool:
return self.session.query(User).filter(User.email == email).first() is not None
def test_create_user_success():
# Arrange
user_data = {"email": "test@example.com", "name": "Test User"}
mock_repo = Mock()
mock_repo.exists_by_email.return_value = False
mock_repo.save.return_value = User(**user_data)
service = UserService(mock_repo)
# Act
result = service.create_user(user_data)
# Assert
assert result.email == "test@example.com"
assert result.name == "Test User"
mock_repo.exists_by_email.assert_called_once_with("test@example.com")
mock_repo.save.assert_called_once()
def test_create_user_duplicate_email():
# Arrange
user_data = {"email": "existing@example.com"}
mock_repo = Mock()
mock_repo.exists_by_email.return_value = True
service = UserService(mock_repo)
# Act & Assert
with pytest.raises(DuplicateError):
service.create_user(user_data)
def test_create_user_missing_email():
# Arrange
user_data = {"name": "Test User"}
service = UserService(Mock())
# Act & Assert
with pytest.raises(ValidationError, match="Email is required"):
service.create_user(user_data)
| Collaborating Skill | Collaboration Mode | Description |
|---|---|---|
| software-architect | Consult | Get architecture decision context before implementation |
| system-architect | Consult | Consult when project structure issues arise |
| expert-code-quality | Reference | Perform quality check after code implementation |
| pdd-implement-feature | Sequential | PDD project feature implementation |
| test-driven-development | Sequential | Write tests first, then implement |
| expert-ruoyi | Consult | Consult when implementing RuoYi framework projects |
Feature Implementation Request
↓
Invoke software-engineer
↓
(If architecture decisions needed) → Invoke software-architect
↓
(If tests needed first) → Invoke test-driven-development
↓
Code Implementation
↓
(If code quality check needed) → Invoke expert-code-quality
↓
Feature Implementation Complete
Verify before submitting code:
Remember: Good code isn't about being clever — it's about being clear. Write simple, maintainable, testable code.