@pigcloud/skills 1.0.11 → 1.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +25 -20
- package/README.en.md +41 -75
- package/README.md +26 -39
- package/bin/cli.js +260 -151
- package/bin/rules-loader.js +271 -484
- package/codex-commands/README.md +25 -23
- package/codex-commands/commands/analyze.md +21 -22
- package/codex-commands/commands/build.md +22 -22
- package/codex-commands/commands/design.md +21 -22
- package/codex-commands/commands/distill.md +21 -21
- package/codex-commands/commands/doc.md +21 -22
- package/codex-commands/commands/infra.md +21 -21
- package/codex-commands/commands/init.md +20 -20
- package/codex-commands/commands/kb.md +21 -20
- package/codex-commands/commands/perf.md +21 -21
- package/codex-commands/commands/prd.md +21 -22
- package/codex-commands/commands/review.md +21 -22
- package/codex-commands/commands/security.md +21 -22
- package/codex-commands/commands/test.md +21 -21
- package/codex-commands/commands/workflow.md +21 -20
- package/package.json +5 -2
- package/rules/core/index.md +26 -41
- package/rules/delivery/index.md +25 -0
- package/rules/design/index.md +25 -0
- package/rules/discovery/index.md +25 -0
- package/rules/implementation/index.md +25 -0
- package/rules/index.md +24 -39
- package/rules/overlays/index.md +19 -19
- package/rules/overlays/pig-cloud.md +20 -45
- package/rules/shared/index.md +25 -0
- package/rules/skill-stage-map.json +26 -0
- package/rules/stages.json +48 -0
- package/rules/validation/index.md +25 -0
- package/scripts/add-skill-reference-nav.js +3 -0
- package/scripts/bootstrap-skill-specs.js +96 -0
- package/scripts/ci-validator.sh +51 -114
- package/scripts/generate-skill-prompt-library.js +3 -0
- package/scripts/golden-prompt-suite.current.js +211 -0
- package/scripts/migrate-skill-packages.js +309 -0
- package/scripts/run-golden-replays.js +110 -79
- package/scripts/validate-rules.js +128 -125
- package/scripts/validate-skill-replay-signals.js +45 -57
- package/scripts/validate-skill-shapes.js +153 -127
- package/scripts/validate-skill-stop-rules.js +54 -46
- package/skills/01-discovery/ambiguity-detection/SKILL.md +30 -0
- package/skills/01-discovery/ambiguity-detection/assets/golden-prompt-suite.current.js +22 -0
- package/skills/01-discovery/ambiguity-detection/references/README.md +17 -0
- package/skills/01-discovery/ambiguity-detection/references/cases.md +26 -0
- package/skills/01-discovery/ambiguity-detection/references/prompt-template.md +18 -0
- package/skills/01-discovery/ambiguity-detection/skill-spec.json +26 -0
- package/skills/01-discovery/business-analysis/SKILL.md +30 -0
- package/skills/01-discovery/business-analysis/assets/golden-prompt-suite.current.js +22 -0
- package/skills/01-discovery/business-analysis/references/README.md +17 -0
- package/skills/01-discovery/business-analysis/references/cases.md +26 -0
- package/skills/01-discovery/business-analysis/references/prompt-template.md +18 -0
- package/skills/01-discovery/business-analysis/skill-spec.json +26 -0
- package/skills/01-discovery/impact-analysis/SKILL.md +30 -0
- package/skills/01-discovery/impact-analysis/assets/golden-prompt-suite.current.js +22 -0
- package/skills/01-discovery/impact-analysis/references/README.md +17 -0
- package/skills/01-discovery/impact-analysis/references/cases.md +26 -0
- package/skills/01-discovery/impact-analysis/references/prompt-template.md +18 -0
- package/skills/01-discovery/impact-analysis/skill-spec.json +26 -0
- package/skills/01-discovery/requirement-discovery/SKILL.md +30 -0
- package/skills/01-discovery/requirement-discovery/assets/golden-prompt-suite.current.js +24 -0
- package/skills/01-discovery/requirement-discovery/references/README.md +17 -0
- package/skills/01-discovery/requirement-discovery/references/cases.md +28 -0
- package/skills/01-discovery/requirement-discovery/references/prompt-template.md +18 -0
- package/skills/01-discovery/requirement-discovery/skill-spec.json +26 -0
- package/skills/02-design/api-design/SKILL.md +29 -0
- package/skills/02-design/api-design/assets/golden-prompt-suite.current.js +22 -0
- package/skills/02-design/api-design/references/README.md +17 -0
- package/skills/02-design/api-design/references/cases.md +26 -0
- package/skills/02-design/api-design/references/prompt-template.md +18 -0
- package/skills/02-design/api-design/skill-spec.json +25 -0
- package/skills/02-design/architecture-design/SKILL.md +29 -0
- package/skills/02-design/architecture-design/assets/golden-prompt-suite.current.js +22 -0
- package/skills/02-design/architecture-design/references/README.md +17 -0
- package/skills/02-design/architecture-design/references/cases.md +26 -0
- package/skills/02-design/architecture-design/references/prompt-template.md +18 -0
- package/skills/02-design/architecture-design/skill-spec.json +25 -0
- package/skills/02-design/database-design/SKILL.md +29 -0
- package/skills/02-design/database-design/assets/golden-prompt-suite.current.js +22 -0
- package/skills/02-design/database-design/references/README.md +17 -0
- package/skills/02-design/database-design/references/cases.md +26 -0
- package/skills/02-design/database-design/references/prompt-template.md +18 -0
- package/skills/02-design/database-design/skill-spec.json +25 -0
- package/skills/02-design/task-breakdown/SKILL.md +29 -0
- package/skills/02-design/task-breakdown/assets/golden-prompt-suite.current.js +22 -0
- package/skills/02-design/task-breakdown/references/README.md +17 -0
- package/skills/02-design/task-breakdown/references/cases.md +26 -0
- package/skills/02-design/task-breakdown/references/prompt-template.md +18 -0
- package/skills/02-design/task-breakdown/skill-spec.json +25 -0
- package/skills/03-implementation/backend-development/SKILL.md +29 -0
- package/skills/03-implementation/backend-development/assets/golden-prompt-suite.current.js +22 -0
- package/skills/03-implementation/backend-development/references/README.md +17 -0
- package/skills/03-implementation/backend-development/references/cases.md +26 -0
- package/skills/03-implementation/backend-development/references/prompt-template.md +18 -0
- package/skills/03-implementation/backend-development/skill-spec.json +25 -0
- package/skills/03-implementation/bug-fix/SKILL.md +29 -0
- package/skills/03-implementation/bug-fix/assets/golden-prompt-suite.current.js +22 -0
- package/skills/03-implementation/bug-fix/references/README.md +17 -0
- package/skills/03-implementation/bug-fix/references/cases.md +26 -0
- package/skills/03-implementation/bug-fix/references/prompt-template.md +18 -0
- package/skills/03-implementation/bug-fix/skill-spec.json +25 -0
- package/skills/03-implementation/database-change/SKILL.md +29 -0
- package/skills/03-implementation/database-change/assets/golden-prompt-suite.current.js +22 -0
- package/skills/03-implementation/database-change/references/README.md +17 -0
- package/skills/03-implementation/database-change/references/cases.md +26 -0
- package/skills/03-implementation/database-change/references/prompt-template.md +18 -0
- package/skills/03-implementation/database-change/skill-spec.json +25 -0
- package/skills/03-implementation/frontend-development/SKILL.md +29 -0
- package/skills/03-implementation/frontend-development/assets/golden-prompt-suite.current.js +22 -0
- package/skills/03-implementation/frontend-development/references/README.md +17 -0
- package/skills/03-implementation/frontend-development/references/cases.md +26 -0
- package/skills/03-implementation/frontend-development/references/prompt-template.md +18 -0
- package/skills/03-implementation/frontend-development/skill-spec.json +25 -0
- package/skills/04-validation/code-review/SKILL.md +29 -0
- package/skills/04-validation/code-review/assets/golden-prompt-suite.current.js +22 -0
- package/skills/04-validation/code-review/references/README.md +17 -0
- package/skills/04-validation/code-review/references/cases.md +26 -0
- package/skills/04-validation/code-review/references/prompt-template.md +18 -0
- package/skills/04-validation/code-review/skill-spec.json +25 -0
- package/skills/04-validation/performance-review/SKILL.md +29 -0
- package/skills/04-validation/performance-review/assets/golden-prompt-suite.current.js +22 -0
- package/skills/04-validation/performance-review/references/README.md +17 -0
- package/skills/04-validation/performance-review/references/cases.md +26 -0
- package/skills/04-validation/performance-review/references/prompt-template.md +18 -0
- package/skills/04-validation/performance-review/skill-spec.json +25 -0
- package/skills/04-validation/regression-check/SKILL.md +29 -0
- package/skills/04-validation/regression-check/assets/golden-prompt-suite.current.js +22 -0
- package/skills/04-validation/regression-check/references/README.md +17 -0
- package/skills/04-validation/regression-check/references/cases.md +26 -0
- package/skills/04-validation/regression-check/references/prompt-template.md +18 -0
- package/skills/04-validation/regression-check/skill-spec.json +25 -0
- package/skills/04-validation/security-review/SKILL.md +29 -0
- package/skills/04-validation/security-review/assets/golden-prompt-suite.current.js +22 -0
- package/skills/04-validation/security-review/references/README.md +17 -0
- package/skills/04-validation/security-review/references/cases.md +26 -0
- package/skills/04-validation/security-review/references/prompt-template.md +18 -0
- package/skills/04-validation/security-review/skill-spec.json +25 -0
- package/skills/04-validation/unit-test/SKILL.md +29 -0
- package/skills/04-validation/unit-test/assets/golden-prompt-suite.current.js +22 -0
- package/skills/04-validation/unit-test/references/README.md +17 -0
- package/skills/04-validation/unit-test/references/cases.md +26 -0
- package/skills/04-validation/unit-test/references/prompt-template.md +18 -0
- package/skills/04-validation/unit-test/skill-spec.json +25 -0
- package/skills/05-delivery/change-log/SKILL.md +29 -0
- package/skills/05-delivery/change-log/assets/golden-prompt-suite.current.js +22 -0
- package/skills/05-delivery/change-log/references/README.md +17 -0
- package/skills/05-delivery/change-log/references/cases.md +26 -0
- package/skills/05-delivery/change-log/references/prompt-template.md +18 -0
- package/skills/05-delivery/change-log/skill-spec.json +25 -0
- package/skills/05-delivery/deployment-guide/SKILL.md +29 -0
- package/skills/05-delivery/deployment-guide/assets/golden-prompt-suite.current.js +22 -0
- package/skills/05-delivery/deployment-guide/references/README.md +17 -0
- package/skills/05-delivery/deployment-guide/references/cases.md +26 -0
- package/skills/05-delivery/deployment-guide/references/prompt-template.md +18 -0
- package/skills/05-delivery/deployment-guide/skill-spec.json +25 -0
- package/skills/05-delivery/release-check/SKILL.md +29 -0
- package/skills/05-delivery/release-check/assets/golden-prompt-suite.current.js +22 -0
- package/skills/05-delivery/release-check/references/README.md +17 -0
- package/skills/05-delivery/release-check/references/cases.md +26 -0
- package/skills/05-delivery/release-check/references/prompt-template.md +18 -0
- package/skills/05-delivery/release-check/skill-spec.json +25 -0
- package/skills/05-delivery/release-validation/SKILL.md +29 -0
- package/skills/05-delivery/release-validation/assets/golden-prompt-suite.current.js +22 -0
- package/skills/05-delivery/release-validation/references/README.md +17 -0
- package/skills/05-delivery/release-validation/references/cases.md +26 -0
- package/skills/05-delivery/release-validation/references/prompt-template.md +18 -0
- package/skills/05-delivery/release-validation/skill-spec.json +25 -0
- package/skills/shared/codebase-learning/SKILL.md +29 -0
- package/skills/shared/codebase-learning/assets/golden-prompt-suite.current.js +22 -0
- package/skills/shared/codebase-learning/references/README.md +17 -0
- package/skills/shared/codebase-learning/references/cases.md +26 -0
- package/skills/shared/codebase-learning/references/prompt-template.md +18 -0
- package/skills/shared/codebase-learning/skill-spec.json +25 -0
- package/skills/shared/evidence-collector/SKILL.md +29 -0
- package/skills/shared/evidence-collector/assets/golden-prompt-suite.current.js +22 -0
- package/skills/shared/evidence-collector/references/README.md +17 -0
- package/skills/shared/evidence-collector/references/cases.md +26 -0
- package/skills/shared/evidence-collector/references/prompt-template.md +18 -0
- package/skills/shared/evidence-collector/skill-spec.json +25 -0
- package/skills/shared/framework-guide/SKILL.md +28 -0
- package/skills/shared/framework-guide/assets/golden-prompt-suite.current.js +22 -0
- package/skills/shared/framework-guide/references/README.md +17 -0
- package/skills/shared/framework-guide/references/cases.md +26 -0
- package/skills/shared/framework-guide/references/prompt-template.md +18 -0
- package/skills/shared/framework-guide/skill-spec.json +24 -0
- package/rules/bundles.json +0 -358
- package/rules/coding/analysis.md +0 -27
- package/rules/coding/backend/cache-invalidation.md +0 -30
- package/rules/coding/backend/cache-keying.md +0 -30
- package/rules/coding/backend/cache.md +0 -37
- package/rules/coding/backend/database.md +0 -32
- package/rules/coding/backend/feign.md +0 -30
- package/rules/coding/backend/index.md +0 -42
- package/rules/coding/backend/query.md +0 -32
- package/rules/coding/backend/remote.md +0 -33
- package/rules/coding/backend/transaction-boundary.md +0 -30
- package/rules/coding/backend/transaction-rollback.md +0 -30
- package/rules/coding/backend/transaction.md +0 -38
- package/rules/coding/boundary.md +0 -25
- package/rules/coding/implementation.md +0 -26
- package/rules/coding/index.md +0 -38
- package/rules/coding/scaffold.md +0 -28
- package/rules/coding/testing.md +0 -29
- package/rules/coding/validation.md +0 -29
- package/rules/core/code-quality.md +0 -30
- package/rules/core/evidence.md +0 -26
- package/rules/core/interface.md +0 -26
- package/rules/core/iteration.md +0 -26
- package/rules/core/layer-boundary.md +0 -25
- package/rules/core/logging.md +0 -26
- package/rules/core/security.md +0 -26
- package/rules/core/task-boundary.md +0 -27
- package/rules/docs/api.md +0 -34
- package/rules/docs/capture-summary.md +0 -29
- package/rules/docs/capture.md +0 -34
- package/rules/docs/contract.md +0 -30
- package/rules/docs/decision-log.md +0 -32
- package/rules/docs/examples.md +0 -28
- package/rules/docs/index.md +0 -49
- package/rules/docs/reference.md +0 -32
- package/rules/overlays/pig-cloud/controller.md +0 -33
- package/rules/overlays/pig-cloud/dto-vo.md +0 -33
- package/rules/overlays/pig-cloud/entity.md +0 -32
- package/rules/overlays/pig-cloud/exception.md +0 -32
- package/rules/overlays/pig-cloud/layering.md +0 -31
- package/rules/overlays/pig-cloud/mapper.md +0 -32
- package/rules/overlays/pig-cloud/query-style.md +0 -32
- package/rules/overlays/pig-cloud/rest-response.md +0 -33
- package/rules/overlays/pig-cloud/service.md +0 -33
- package/rules/overlays/pig-cloud/transactions.md +0 -32
- package/rules/overlays/pig-cloud/validation.md +0 -33
- package/rules/product/acceptance.md +0 -25
- package/rules/product/briefing.md +0 -27
- package/rules/product/index.md +0 -36
- package/rules/product/intake.md +0 -27
- package/rules/product/modeling.md +0 -25
- package/rules/product/project-context.md +0 -29
- package/rules/review/code.md +0 -35
- package/rules/review/evidence.md +0 -31
- package/rules/review/index.md +0 -50
- package/rules/review/java.md +0 -42
- package/rules/review/performance.md +0 -38
- package/rules/review/rubric.md +0 -28
- package/rules/review/security.md +0 -38
- package/rules/review/ts.md +0 -33
- package/rules/review/vue.md +0 -33
- package/rules/skill-profile-map.json +0 -59
- package/rules/skill-profile-map.md +0 -29
- package/rules/workflow/handoff.md +0 -25
- package/rules/workflow/index.md +0 -37
- package/rules/workflow/refinement.md +0 -29
- package/rules/workflow/router.md +0 -25
- package/rules/workflow/selection.md +0 -25
- package/rules/workflow/stop.md +0 -25
- package/skills/api-contract-docs/SKILL.md +0 -77
- package/skills/business-fact-extraction/SKILL.md +0 -337
- package/skills/business-fact-extraction/scripts/write-knowledge-base.js +0 -228
- package/skills/code-review/SKILL.md +0 -136
- package/skills/code-review/references/findings-template.md +0 -51
- package/skills/code-review/references/performance-checklist.md +0 -213
- package/skills/code-review/references/rubric.md +0 -232
- package/skills/code-review/references/rules.md +0 -32
- package/skills/code-review/references/security-checklist.md +0 -178
- package/skills/code-review/references/stack-notes.md +0 -25
- package/skills/code-review/references/template-review.md +0 -39
- package/skills/code-review/scripts/lint-code-review.mjs +0 -431
- package/skills/domain-modeling/SKILL.md +0 -81
- package/skills/domain-modeling/references/README.md +0 -134
- package/skills/domain-modeling/references/distillation-checklist.md +0 -44
- package/skills/domain-modeling/references/test-cases-template.md +0 -128
- package/skills/environment-deploy/SKILL.md +0 -81
- package/skills/feature-build/SKILL.md +0 -122
- package/skills/feature-build/references/coding-checklist.md +0 -97
- package/skills/feature-build/references/comment-specification.md +0 -89
- package/skills/knowledge-capture/SKILL.md +0 -93
- package/skills/performance-audit/SKILL.md +0 -118
- package/skills/project-bootstrap/SKILL.md +0 -81
- package/skills/references/anti-rationalization.md +0 -144
- package/skills/references/business-fact-extraction.md +0 -415
- package/skills/references/engineering-delivery-method.md +0 -64
- package/skills/references/engineering-delivery-template.md +0 -81
- package/skills/references/golden-prompt-suite.js +0 -436
- package/skills/references/golden-prompt-suite.md +0 -33
- package/skills/references/project-requirement-alignment.md +0 -42
- package/skills/references/rule-loading-map.md +0 -117
- package/skills/references/skill-authoring-standard.md +0 -74
- package/skills/references/skill-boundary-template.md +0 -71
- package/skills/references/skill-enhanced-template.md +0 -103
- package/skills/references/skill-reference-matrix.md +0 -62
- package/skills/security-audit/SKILL.md +0 -119
- package/skills/spec-refinement/SKILL.md +0 -149
- package/skills/technical-design/SKILL.md +0 -106
- package/skills/technical-design/references/solid-checklist.md +0 -199
- package/skills/test-design/SKILL.md +0 -92
- package/skills/workflow-router/SKILL.md +0 -86
|
@@ -1,199 +0,0 @@
|
|
|
1
|
-
# SOLID 检查清单
|
|
2
|
-
|
|
3
|
-
> 面向对象设计五大原则检查项
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## S - Single Responsibility Principle (单一职责原则)
|
|
8
|
-
|
|
9
|
-
**定义**:一个类应该只有一个引起它变化的原因
|
|
10
|
-
|
|
11
|
-
| 检查项 | 问题信号 | 修复方案 |
|
|
12
|
-
|--------|----------|----------|
|
|
13
|
-
| 类职责过多 | 类名包含"And"或"Or" | 拆分为多个类 |
|
|
14
|
-
| 方法类型混杂 | CRUD + 业务逻辑 + 工具方法 | 分离到不同类 |
|
|
15
|
-
| 字段分组明显 | 字段可按功能分组 | 拆分为多个类 |
|
|
16
|
-
| 变更频率不同 | 部分方法频繁变更,部分不变 | 拆分为多个类 |
|
|
17
|
-
|
|
18
|
-
**示例**:
|
|
19
|
-
```java
|
|
20
|
-
// ❌ 违反 SRP:订单类同时处理订单数据和邮件通知
|
|
21
|
-
public class Order {
|
|
22
|
-
private Long id;
|
|
23
|
-
private String orderNo;
|
|
24
|
-
|
|
25
|
-
public void calculateTotal() { }
|
|
26
|
-
public void sendEmail() { } // 应分离到 NotificationService
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
// ✅ 符合 SRP:职责分离
|
|
30
|
-
public class OrderEntity {
|
|
31
|
-
private Long id;
|
|
32
|
-
private String orderNo;
|
|
33
|
-
public void calculateTotal() { }
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
public class NotificationService {
|
|
37
|
-
public void sendOrderEmail(OrderEntity order) { }
|
|
38
|
-
}
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
---
|
|
42
|
-
|
|
43
|
-
## O - Open/Closed Principle (开闭原则)
|
|
44
|
-
|
|
45
|
-
**定义**:对扩展开放,对修改关闭
|
|
46
|
-
|
|
47
|
-
| 检查项 | 问题信号 | 修复方案 |
|
|
48
|
-
|--------|----------|----------|
|
|
49
|
-
| 硬编码条件 | if-else 类型判断 | 使用策略模式/多态 |
|
|
50
|
-
| 新增类型需修改现有代码 | 添加新类型需修改 switch | 使用接口+实现类 |
|
|
51
|
-
| 逻辑固定 | 业务规则硬编码 | 使用配置/规则引擎 |
|
|
52
|
-
|
|
53
|
-
**示例**:
|
|
54
|
-
```java
|
|
55
|
-
// ❌ 违反 OCP:新增支付方式需修改现有代码
|
|
56
|
-
public class PaymentService {
|
|
57
|
-
public void pay(String type) {
|
|
58
|
-
if (type.equals("ALIPAY")) { }
|
|
59
|
-
else if (type.equals("WECHAT")) { }
|
|
60
|
-
// 新增支付方式需修改此处
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
// ✅ 符合 OCP:使用策略模式
|
|
65
|
-
public interface PaymentStrategy {
|
|
66
|
-
void pay();
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
public class AlipayStrategy implements PaymentStrategy { }
|
|
70
|
-
public class WechatStrategy implements PaymentStrategy { }
|
|
71
|
-
// 新增支付方式只需添加新实现类
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
---
|
|
75
|
-
|
|
76
|
-
## L - Liskov Substitution Principle (里氏替换原则)
|
|
77
|
-
|
|
78
|
-
**定义**:子类必须能够替换其父类
|
|
79
|
-
|
|
80
|
-
| 检查项 | 问题信号 | 修复方案 |
|
|
81
|
-
|--------|----------|----------|
|
|
82
|
-
| 子类抛出新异常 | 父类不抛出,子类抛出 | 保持异常一致 |
|
|
83
|
-
| 子类返回不同类型 | 返回类型不兼容 | 保持返回类型一致 |
|
|
84
|
-
| 子类行为不一致 | 相同输入不同输出 | 保持行为一致 |
|
|
85
|
-
| 子类限制更强 | 子类拒绝父类接受的输入 | 放宽限制或重新设计 |
|
|
86
|
-
|
|
87
|
-
**示例**:
|
|
88
|
-
```java
|
|
89
|
-
// ❌ 违反 LSP:子类行为不一致
|
|
90
|
-
public class Rectangle {
|
|
91
|
-
public void setWidth(int w) { width = w; }
|
|
92
|
-
public void setHeight(int h) { height = h; }
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
public class Square extends Rectangle {
|
|
96
|
-
@Override
|
|
97
|
-
public void setWidth(int w) {
|
|
98
|
-
width = w;
|
|
99
|
-
height = w; // 强制宽高相等,行为不一致
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
// ✅ 符合 LSP:不使用继承,使用组合
|
|
104
|
-
public class Shape { }
|
|
105
|
-
public class Rectangle extends Shape { }
|
|
106
|
-
public class Square extends Shape { }
|
|
107
|
-
```
|
|
108
|
-
|
|
109
|
-
---
|
|
110
|
-
|
|
111
|
-
## I - Interface Segregation Principle (接口隔离原则)
|
|
112
|
-
|
|
113
|
-
**定义**:客户端不应该依赖它不需要的接口
|
|
114
|
-
|
|
115
|
-
| 检查项 | 问题信号 | 修复方案 |
|
|
116
|
-
|--------|----------|----------|
|
|
117
|
-
| 接口方法过多 | 接口方法数 > 10 | 拆分为多个接口 |
|
|
118
|
-
| 实现类空方法 | 实现类有空方法体 | 拆分接口 |
|
|
119
|
-
| 客户端只使用部分方法 | 客户端调用 < 50% 方法 | 拆分接口 |
|
|
120
|
-
| 接口职责混杂 | 接口包含不同职责方法 | 拆分接口 |
|
|
121
|
-
|
|
122
|
-
**示例**:
|
|
123
|
-
```java
|
|
124
|
-
// ❌ 违反 ISP:接口方法过多
|
|
125
|
-
public interface Worker {
|
|
126
|
-
void work();
|
|
127
|
-
void eat();
|
|
128
|
-
void sleep(); // Robot 不需要 sleep
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
// ✅ 符合 ISP:接口拆分
|
|
132
|
-
public interface Workable {
|
|
133
|
-
void work();
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
public interface Feedable {
|
|
137
|
-
void eat();
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
public class Human implements Workable, Feedable { }
|
|
141
|
-
public class Robot implements Workable { }
|
|
142
|
-
```
|
|
143
|
-
|
|
144
|
-
---
|
|
145
|
-
|
|
146
|
-
## D - Dependency Inversion Principle (依赖倒置原则)
|
|
147
|
-
|
|
148
|
-
**定义**:高层模块不应该依赖低层模块,两者都应该依赖抽象
|
|
149
|
-
|
|
150
|
-
| 检查项 | 问题信号 | 修复方案 |
|
|
151
|
-
|--------|----------|----------|
|
|
152
|
-
| 直接 new 对象 | Service 中 new Mapper() | 使用依赖注入 |
|
|
153
|
-
| 依赖具体类 | 依赖具体实现类 | 依赖接口/抽象类 |
|
|
154
|
-
| 硬编码依赖 | 依赖类型硬编码 | 使用配置/注入 |
|
|
155
|
-
|
|
156
|
-
**示例**:
|
|
157
|
-
```java
|
|
158
|
-
// ❌ 违反 DIP:Service 直接依赖具体 Mapper
|
|
159
|
-
public class OrderService {
|
|
160
|
-
private OrderMapper mapper = new OrderMapper(); // 直接 new
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
// ✅ 符合 DIP:依赖注入
|
|
164
|
-
public class OrderServiceImpl implements OrderService {
|
|
165
|
-
private final OrderMapper mapper; // 注入抽象
|
|
166
|
-
|
|
167
|
-
public OrderServiceImpl(OrderMapper mapper) {
|
|
168
|
-
this.mapper = mapper;
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
```
|
|
172
|
-
|
|
173
|
-
---
|
|
174
|
-
|
|
175
|
-
## Anti-rationalization Table (Design)
|
|
176
|
-
|
|
177
|
-
| 常见借口 | 反驳理由 | 正确做法 |
|
|
178
|
-
|---------|---------|---------|
|
|
179
|
-
| "先实现功能,设计文档以后补" | 无文档的设计无法维护 | 先设计后实现 |
|
|
180
|
-
| "这个实体很简单,不需要设计" | 简单实体也会变复杂 | 完整设计 |
|
|
181
|
-
| "状态流转很直观,不用画图" | 直观的流转也有边界情况 | 绘制状态图 |
|
|
182
|
-
| "接口定义很清楚,不需要文档" | 清楚的定义也需要确认 | 编写API文档 |
|
|
183
|
-
| "这个依赖关系很简单" | 简单依赖也会产生循环 | 分析依赖图 |
|
|
184
|
-
| "SOLID检查太耗时" | 违反SOLID的代码更耗时维护 | 执行SOLID检查 |
|
|
185
|
-
| "这个功能单体和微服务都一样" | 架构差异影响设计决策 | 明确架构类型 |
|
|
186
|
-
| "这个类以后会扩展" | 未预留扩展点会导致修改 | 使用开闭原则 |
|
|
187
|
-
|
|
188
|
-
---
|
|
189
|
-
|
|
190
|
-
## Verification Gates
|
|
191
|
-
|
|
192
|
-
| 门禁 | 检查方法 | 通过条件 | 失败处理 |
|
|
193
|
-
|------|---------|---------|---------|
|
|
194
|
-
| SRP检查 | 类职责分析 | 每个类职责单一 | 拆分类 |
|
|
195
|
-
| OCP检查 | 扩展点分析 | 新功能无需修改现有代码 | 添加扩展点 |
|
|
196
|
-
| LSP检查 | 子类行为测试 | 子类可替换父类 | 修复行为不一致 |
|
|
197
|
-
| ISP检查 | 接口方法数 | 接口方法 <= 10 | 拆分接口 |
|
|
198
|
-
| DIP检查 | 依赖分析 | 无直接 new 对象 | 使用依赖注入 |
|
|
199
|
-
| 用户确认 | 设计文档评审 | 用户确认设计 | 修改设计 |
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: test-design
|
|
3
|
-
description: 当需要验证回归风险或边界场景时,为已实现的变更设计并验证测试覆盖
|
|
4
|
-
lifecycle_stage: verify
|
|
5
|
-
rule_profile: testing
|
|
6
|
-
dependencies:
|
|
7
|
-
- feature-build
|
|
8
|
-
triggers:
|
|
9
|
-
- test
|
|
10
|
-
- validation
|
|
11
|
-
- coverage
|
|
12
|
-
- regression
|
|
13
|
-
- edge case
|
|
14
|
-
- verification
|
|
15
|
-
inputs:
|
|
16
|
-
- implementation notes
|
|
17
|
-
- executable spec-refinement
|
|
18
|
-
- design constraints
|
|
19
|
-
- self-test evidence
|
|
20
|
-
outputs:
|
|
21
|
-
- test strategy
|
|
22
|
-
- test cases
|
|
23
|
-
- regression matrix
|
|
24
|
-
- validation result
|
|
25
|
-
- gap report
|
|
26
|
-
workflow:
|
|
27
|
-
- confirm the implementation scope
|
|
28
|
-
- review the self-test evidence and implementation notes
|
|
29
|
-
- design test cases and coverage boundaries
|
|
30
|
-
- run validation or prepare execution steps
|
|
31
|
-
- hand off a validation result to code-review
|
|
32
|
-
gates:
|
|
33
|
-
- stop at verification
|
|
34
|
-
- do not modify production code
|
|
35
|
-
- do not rewrite the PRD
|
|
36
|
-
- do not replace code review
|
|
37
|
-
refs:
|
|
38
|
-
- skills/references/rule-loading-map.md
|
|
39
|
-
- skills/references/flow-test-cases.md
|
|
40
|
-
- skills/references/full-chain-replay-scenarios.md
|
|
41
|
-
- skills/references/prompt-replay-checklist.md
|
|
42
|
-
- rules/index.md
|
|
43
|
-
---
|
|
44
|
-
|
|
45
|
-
# Test Design
|
|
46
|
-
|
|
47
|
-
## Purpose
|
|
48
|
-
|
|
49
|
-
Design and validate test coverage for the implemented change.
|
|
50
|
-
|
|
51
|
-
## Suitable / Unsuitable
|
|
52
|
-
|
|
53
|
-
- Suitable: test strategy, test cases, coverage, regression, boundary validation
|
|
54
|
-
- Unsuitable: modifying production code, rewriting the PRD, replacing code review
|
|
55
|
-
|
|
56
|
-
## Workflow
|
|
57
|
-
|
|
58
|
-
1. Confirm the implementation scope and risk areas.
|
|
59
|
-
2. Review self-test evidence and identify coverage gaps.
|
|
60
|
-
3. Design coverage, boundaries, and regression cases.
|
|
61
|
-
4. Execute or prepare validation steps.
|
|
62
|
-
5. Hand off a validation result to `code-review`.
|
|
63
|
-
|
|
64
|
-
## Replay Signals
|
|
65
|
-
|
|
66
|
-
- Input signal: implementation notes, risk areas, coverage gaps, or verification request.
|
|
67
|
-
- Output to verify: test strategy, test cases, regression matrix, validation result, gap report.
|
|
68
|
-
- Stop signal: modifying production code, rewriting the PRD, or replacing code review.
|
|
69
|
-
- Handoff signal: a validation result is ready for `code-review`.
|
|
70
|
-
|
|
71
|
-
## Examples
|
|
72
|
-
|
|
73
|
-
- Input: "The feature is implemented; design coverage and run the validation steps."
|
|
74
|
-
- Output: test strategy, test cases, regression matrix, validation result, gap report
|
|
75
|
-
- Stop: do not change production code
|
|
76
|
-
|
|
77
|
-
## Stop Rules
|
|
78
|
-
|
|
79
|
-
- Stop at verification.
|
|
80
|
-
- Do not modify production code.
|
|
81
|
-
- Do not rewrite the PRD.
|
|
82
|
-
- Do not replace code review.
|
|
83
|
-
- Do not skip the self-test evidence.
|
|
84
|
-
|
|
85
|
-
## References
|
|
86
|
-
|
|
87
|
-
- `skills/references/rule-loading-map.md`
|
|
88
|
-
- `skills/references/flow-test-cases.md`
|
|
89
|
-
- `skills/references/engineering-delivery-method.md`
|
|
90
|
-
- `skills/references/engineering-delivery-template.md`
|
|
91
|
-
- `rules/index.md`
|
|
92
|
-
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: workflow-router
|
|
3
|
-
description: 当意图、归属或交接不清楚时,将工作路由到下一技能和阶段
|
|
4
|
-
lifecycle_stage: routing
|
|
5
|
-
rule_profile: router
|
|
6
|
-
dependencies: []
|
|
7
|
-
triggers:
|
|
8
|
-
- unclear stage
|
|
9
|
-
- unclear intent
|
|
10
|
-
- next step
|
|
11
|
-
- route
|
|
12
|
-
- handoff
|
|
13
|
-
inputs:
|
|
14
|
-
- user intent
|
|
15
|
-
- current stage
|
|
16
|
-
- available artifacts
|
|
17
|
-
outputs:
|
|
18
|
-
- next skill
|
|
19
|
-
- stage decision
|
|
20
|
-
- handoff note
|
|
21
|
-
workflow:
|
|
22
|
-
- identify the intent type
|
|
23
|
-
- select the next stage and skill
|
|
24
|
-
- attach the needed inputs
|
|
25
|
-
- hand off to the target skill
|
|
26
|
-
gates:
|
|
27
|
-
- stop after routing
|
|
28
|
-
- do not perform the target skill's work
|
|
29
|
-
- do not add rule details
|
|
30
|
-
refs:
|
|
31
|
-
- skills/references/skill-reference-matrix.md
|
|
32
|
-
- skills/references/rule-loading-map.md
|
|
33
|
-
- skills/references/flow-test-cases.md
|
|
34
|
-
- skills/references/prompt-replay-checklist.md
|
|
35
|
-
- skills/references/full-chain-replay-scenarios.md
|
|
36
|
-
---
|
|
37
|
-
|
|
38
|
-
# Workflow Router
|
|
39
|
-
|
|
40
|
-
## Purpose
|
|
41
|
-
|
|
42
|
-
Route a request to the right stage and skill. This skill ends when the next skill is selected.
|
|
43
|
-
|
|
44
|
-
## Suitable / Unsuitable
|
|
45
|
-
|
|
46
|
-
- Suitable: stage selection, handoff, intent disambiguation
|
|
47
|
-
- Unsuitable: requirement analysis, design, implementation, review, capture
|
|
48
|
-
|
|
49
|
-
## Workflow
|
|
50
|
-
|
|
51
|
-
1. Identify the intent type.
|
|
52
|
-
2. Select the next stage and skill.
|
|
53
|
-
3. Attach the needed inputs.
|
|
54
|
-
4. Hand off to the target skill.
|
|
55
|
-
|
|
56
|
-
## Replay Signals
|
|
57
|
-
|
|
58
|
-
- Input signal: user intent, current stage, or available artifacts.
|
|
59
|
-
- Output to verify: next skill, stage decision, handoff note.
|
|
60
|
-
- Stop signal: any target-skill work or rule loading.
|
|
61
|
-
- Handoff signal: the next skill is selected and ready.
|
|
62
|
-
|
|
63
|
-
## Examples
|
|
64
|
-
|
|
65
|
-
- Input: "We need a new feature but the stage is unclear."
|
|
66
|
-
- Output: selected next skill and handoff note
|
|
67
|
-
- Stop: do not start analysis or implementation
|
|
68
|
-
|
|
69
|
-
- Input: "Just tell me which step comes next."
|
|
70
|
-
- Output: next skill decision and minimal handoff note
|
|
71
|
-
- Stop: do not begin the target work
|
|
72
|
-
|
|
73
|
-
## Stop Rules
|
|
74
|
-
|
|
75
|
-
- Stop after routing.
|
|
76
|
-
- Do not perform the target skill's work.
|
|
77
|
-
- Do not perform the next skill's work.
|
|
78
|
-
- Do not add rule details.
|
|
79
|
-
|
|
80
|
-
## References
|
|
81
|
-
|
|
82
|
-
- `skills/references/skill-reference-matrix.md`
|
|
83
|
-
- `skills/references/rule-loading-map.md`
|
|
84
|
-
- `skills/references/flow-test-cases.md`
|
|
85
|
-
- `skills/references/prompt-replay-checklist.md`
|
|
86
|
-
- `skills/references/full-chain-replay-scenarios.md`
|