@pigcloud/skills 1.0.10 → 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 +282 -188
- 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,337 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: business-fact-extraction
|
|
3
|
-
description: 当 Codex 需要逆向理解系统真实行为或为领域建模、需求细化或知识沉淀准备证据时,从代码、测试、日志和文档中提取业务事实、当前行为、不变量和术语
|
|
4
|
-
lifecycle_stage: analysis
|
|
5
|
-
rule_profile: modeling
|
|
6
|
-
dependencies: []
|
|
7
|
-
triggers:
|
|
8
|
-
- reverse engineer behavior
|
|
9
|
-
- business facts
|
|
10
|
-
- current behavior
|
|
11
|
-
- code facts
|
|
12
|
-
- extract facts from code
|
|
13
|
-
- behavior map
|
|
14
|
-
inputs:
|
|
15
|
-
- code paths
|
|
16
|
-
- tests
|
|
17
|
-
- logs
|
|
18
|
-
- docs
|
|
19
|
-
- schemas
|
|
20
|
-
- runtime evidence
|
|
21
|
-
outputs:
|
|
22
|
-
- code fact map
|
|
23
|
-
- business fact map
|
|
24
|
-
- codewiki delta
|
|
25
|
-
- handoff notes
|
|
26
|
-
- knowledge-base file targets
|
|
27
|
-
workflow:
|
|
28
|
-
- collect code, test, doc, and runtime evidence for the requested area
|
|
29
|
-
- extract code facts first, then derive business meaning, then propose CodeWiki updates
|
|
30
|
-
- mark each fact as evidence-backed, inferred, or unknown
|
|
31
|
-
- summarize gaps, contradictions, and open questions
|
|
32
|
-
- choose the destination knowledge-base files before writing the final note
|
|
33
|
-
- hand off to domain-modeling, spec-refinement, or knowledge-capture
|
|
34
|
-
gates:
|
|
35
|
-
- stop at fact extraction
|
|
36
|
-
- do not design a new solution
|
|
37
|
-
- do not rewrite the PRD
|
|
38
|
-
- do not generate code
|
|
39
|
-
refs:
|
|
40
|
-
- skills/references/business-fact-extraction.md
|
|
41
|
-
- skills/references/skill-reference-matrix.md
|
|
42
|
-
- skills/references/rule-loading-map.md
|
|
43
|
-
- docs/codewiki-knowledge-base.md
|
|
44
|
-
---
|
|
45
|
-
|
|
46
|
-
# Business Fact Extraction
|
|
47
|
-
|
|
48
|
-
## Purpose
|
|
49
|
-
|
|
50
|
-
Turn code-backed evidence into reusable business facts.
|
|
51
|
-
|
|
52
|
-
## Suitable / Unsuitable
|
|
53
|
-
|
|
54
|
-
- Suitable: reverse engineering, current behavior mapping, business rule extraction, terminology normalization, evidence-backed summaries
|
|
55
|
-
- Unsuitable: PRD drafting, solution design, implementation, review, final knowledge capture
|
|
56
|
-
|
|
57
|
-
## Quick Start
|
|
58
|
-
|
|
59
|
-
- Start from code paths, tests, docs, runtime traces, and schemas.
|
|
60
|
-
- Produce the output in three stages: code facts, business facts, and CodeWiki updates.
|
|
61
|
-
- Keep evidence, inference, and unknowns distinct.
|
|
62
|
-
- Hand off the result when the facts are stable enough for `domain-modeling`, `spec-refinement`, or `knowledge-capture`.
|
|
63
|
-
|
|
64
|
-
## Write Back
|
|
65
|
-
|
|
66
|
-
- When the user wants persistence, render the staged output into a JSON fact pack.
|
|
67
|
-
- Use `skills/business-fact-extraction/scripts/write-knowledge-base.js` to write the pack into the knowledge-base files.
|
|
68
|
-
- Keep the pack keyed by target file path under `knowledge-base/`.
|
|
69
|
-
- Write only the smallest matching file for each fact.
|
|
70
|
-
- Treat the script as a writer, not as a second analysis pass.
|
|
71
|
-
|
|
72
|
-
## Inputs / Outputs
|
|
73
|
-
|
|
74
|
-
- Inputs:
|
|
75
|
-
- code paths
|
|
76
|
-
- tests
|
|
77
|
-
- logs
|
|
78
|
-
- docs
|
|
79
|
-
- schemas
|
|
80
|
-
- runtime evidence
|
|
81
|
-
- Outputs:
|
|
82
|
-
- code fact map
|
|
83
|
-
- business fact map
|
|
84
|
-
- codewiki delta
|
|
85
|
-
- handoff notes
|
|
86
|
-
- knowledge-base file targets
|
|
87
|
-
|
|
88
|
-
## Output Template
|
|
89
|
-
|
|
90
|
-
### 1. Code Facts
|
|
91
|
-
|
|
92
|
-
#### `knowledge-base/realtime-code/modules.md`
|
|
93
|
-
|
|
94
|
-
- module:
|
|
95
|
-
- current responsibility:
|
|
96
|
-
- key entry points:
|
|
97
|
-
- important constraints:
|
|
98
|
-
- last verified:
|
|
99
|
-
|
|
100
|
-
#### `knowledge-base/realtime-code/flows.md`
|
|
101
|
-
|
|
102
|
-
- flow name:
|
|
103
|
-
- trigger:
|
|
104
|
-
- path:
|
|
105
|
-
- output:
|
|
106
|
-
- failure points:
|
|
107
|
-
- notes:
|
|
108
|
-
|
|
109
|
-
#### `knowledge-base/realtime-code/runtime-notes.md`
|
|
110
|
-
|
|
111
|
-
- fact:
|
|
112
|
-
- evidence:
|
|
113
|
-
- affected area:
|
|
114
|
-
- date:
|
|
115
|
-
- notes:
|
|
116
|
-
|
|
117
|
-
### 2. Business Facts
|
|
118
|
-
|
|
119
|
-
#### `knowledge-base/requirements/decisions.md`
|
|
120
|
-
|
|
121
|
-
- decision:
|
|
122
|
-
- reason:
|
|
123
|
-
- date or context:
|
|
124
|
-
- affected artifact:
|
|
125
|
-
- notes:
|
|
126
|
-
|
|
127
|
-
#### `knowledge-base/requirements/acceptance.md`
|
|
128
|
-
|
|
129
|
-
- requirement:
|
|
130
|
-
- acceptance criteria:
|
|
131
|
-
- out of scope:
|
|
132
|
-
- open questions:
|
|
133
|
-
- confirmed by:
|
|
134
|
-
|
|
135
|
-
#### `knowledge-base/requirements/conflicts.md`
|
|
136
|
-
|
|
137
|
-
- conflict:
|
|
138
|
-
- source:
|
|
139
|
-
- impact:
|
|
140
|
-
- resolution:
|
|
141
|
-
- status:
|
|
142
|
-
|
|
143
|
-
### 3. CodeWiki Update
|
|
144
|
-
|
|
145
|
-
#### `knowledge-base/codewiki/overview.md`
|
|
146
|
-
|
|
147
|
-
- one-line summary:
|
|
148
|
-
- what the system does:
|
|
149
|
-
- what changed:
|
|
150
|
-
- why it matters:
|
|
151
|
-
|
|
152
|
-
#### `knowledge-base/codewiki/architecture.md`
|
|
153
|
-
|
|
154
|
-
- layers:
|
|
155
|
-
- boundaries:
|
|
156
|
-
- dependencies:
|
|
157
|
-
- major integration points:
|
|
158
|
-
|
|
159
|
-
#### `knowledge-base/codewiki/modules.md`
|
|
160
|
-
|
|
161
|
-
- module name:
|
|
162
|
-
- responsibility:
|
|
163
|
-
- main interfaces:
|
|
164
|
-
- related runtime facts:
|
|
165
|
-
|
|
166
|
-
#### `knowledge-base/codewiki/flows.md`
|
|
167
|
-
|
|
168
|
-
- request flow:
|
|
169
|
-
- data flow:
|
|
170
|
-
- error flow:
|
|
171
|
-
- handoff flow:
|
|
172
|
-
|
|
173
|
-
#### `knowledge-base/codewiki/api.md`
|
|
174
|
-
|
|
175
|
-
- endpoint or contract:
|
|
176
|
-
- request shape:
|
|
177
|
-
- response shape:
|
|
178
|
-
- constraints:
|
|
179
|
-
|
|
180
|
-
#### `knowledge-base/codewiki/runbook.md`
|
|
181
|
-
|
|
182
|
-
- startup:
|
|
183
|
-
- verify:
|
|
184
|
-
- troubleshoot:
|
|
185
|
-
- recover:
|
|
186
|
-
|
|
187
|
-
#### `knowledge-base/codewiki/conventions.md`
|
|
188
|
-
|
|
189
|
-
- naming:
|
|
190
|
-
- layering:
|
|
191
|
-
- error handling:
|
|
192
|
-
- logging:
|
|
193
|
-
- data handling:
|
|
194
|
-
|
|
195
|
-
### 4. Enterprise Note
|
|
196
|
-
|
|
197
|
-
#### `knowledge-base/enterprise/decisions.md`
|
|
198
|
-
|
|
199
|
-
- decision:
|
|
200
|
-
- reason:
|
|
201
|
-
- scope:
|
|
202
|
-
- date:
|
|
203
|
-
- reusable lesson:
|
|
204
|
-
|
|
205
|
-
#### `knowledge-base/enterprise/pitfalls.md`
|
|
206
|
-
|
|
207
|
-
- pitfall:
|
|
208
|
-
- context:
|
|
209
|
-
- why it failed:
|
|
210
|
-
- how to avoid it:
|
|
211
|
-
|
|
212
|
-
#### `knowledge-base/enterprise/examples.md`
|
|
213
|
-
|
|
214
|
-
- example:
|
|
215
|
-
- context:
|
|
216
|
-
- lesson:
|
|
217
|
-
- reusable pattern:
|
|
218
|
-
|
|
219
|
-
#### `knowledge-base/enterprise/ai-coding-rules.md`
|
|
220
|
-
|
|
221
|
-
- rule:
|
|
222
|
-
- when it applies:
|
|
223
|
-
- why it matters:
|
|
224
|
-
- examples:
|
|
225
|
-
|
|
226
|
-
## Sample Output
|
|
227
|
-
|
|
228
|
-
### Code Facts
|
|
229
|
-
|
|
230
|
-
#### `knowledge-base/realtime-code/modules.md`
|
|
231
|
-
|
|
232
|
-
- module: `order-service`
|
|
233
|
-
- current responsibility: creates orders and reserves inventory
|
|
234
|
-
- key entry points: `createOrder()`, `reserveInventory()`
|
|
235
|
-
- important constraints: stock must be checked before commit
|
|
236
|
-
- last verified: 2026-06-22
|
|
237
|
-
|
|
238
|
-
#### `knowledge-base/realtime-code/flows.md`
|
|
239
|
-
|
|
240
|
-
- flow name: checkout order placement
|
|
241
|
-
- trigger: user confirms checkout
|
|
242
|
-
- path: validate stock -> reserve inventory -> create order
|
|
243
|
-
- output: confirmed order or shortage error
|
|
244
|
-
- failure points: stock shortage, reservation failure
|
|
245
|
-
- notes: reservation must happen before the order commit
|
|
246
|
-
|
|
247
|
-
### Business Facts
|
|
248
|
-
|
|
249
|
-
#### `knowledge-base/requirements/decisions.md`
|
|
250
|
-
|
|
251
|
-
- decision: inventory must be reserved before order confirmation
|
|
252
|
-
- reason: avoid overselling
|
|
253
|
-
- date or context: 2026-06-22, order flow review
|
|
254
|
-
- affected artifact: checkout spec-refinement
|
|
255
|
-
- notes: failure should return a clear stock shortage message
|
|
256
|
-
|
|
257
|
-
#### `knowledge-base/requirements/acceptance.md`
|
|
258
|
-
|
|
259
|
-
- requirement: checkout must not confirm an order when stock is unavailable
|
|
260
|
-
- acceptance criteria: shortage blocks confirmation and returns a clear message
|
|
261
|
-
- out of scope: backorder design
|
|
262
|
-
- open questions: whether to retry reservation automatically
|
|
263
|
-
- confirmed by: order flow review
|
|
264
|
-
|
|
265
|
-
### CodeWiki Update
|
|
266
|
-
|
|
267
|
-
#### `knowledge-base/codewiki/flows.md`
|
|
268
|
-
|
|
269
|
-
- request flow: checkout -> validate stock -> reserve inventory -> create order
|
|
270
|
-
- data flow: cart snapshot -> reservation record -> order record
|
|
271
|
-
- error flow: stock shortage -> stop checkout -> return shortage reason
|
|
272
|
-
- handoff flow: checkout service hands off to inventory service and order repository
|
|
273
|
-
|
|
274
|
-
#### `knowledge-base/codewiki/modules.md`
|
|
275
|
-
|
|
276
|
-
- module name: `order-service`
|
|
277
|
-
- responsibility: coordinates checkout and order creation
|
|
278
|
-
- main interfaces: `createOrder()`, `reserveInventory()`
|
|
279
|
-
- related runtime facts: inventory must be reserved before commit
|
|
280
|
-
|
|
281
|
-
### Enterprise Note
|
|
282
|
-
|
|
283
|
-
#### `knowledge-base/enterprise/pitfalls.md`
|
|
284
|
-
|
|
285
|
-
- pitfall: reservation happens after order creation
|
|
286
|
-
- context: checkout path
|
|
287
|
-
- why it failed: allowed overselling under concurrent requests
|
|
288
|
-
- how to avoid it: reserve before committing the order
|
|
289
|
-
|
|
290
|
-
#### `knowledge-base/enterprise/ai-coding-rules.md`
|
|
291
|
-
|
|
292
|
-
- rule: reserve inventory before committing the order
|
|
293
|
-
- when it applies: any checkout flow that can oversell
|
|
294
|
-
- why it matters: keeps business state consistent under concurrency
|
|
295
|
-
- examples: validate stock, reserve, then create the order
|
|
296
|
-
|
|
297
|
-
## Workflow
|
|
298
|
-
|
|
299
|
-
1. Collect code, test, doc, and runtime evidence for the requested area.
|
|
300
|
-
2. Write the code fact map with observed behavior, state changes, contracts, and evidence.
|
|
301
|
-
3. Derive the business fact map from the code facts and separate inference from proof.
|
|
302
|
-
4. Draft the CodeWiki delta with reusable architecture, flow, and convention updates.
|
|
303
|
-
5. Map each section to the exact knowledge-base files it should update.
|
|
304
|
-
6. Mark each fact as evidence-backed, inferred, or unknown.
|
|
305
|
-
7. Summarize gaps, contradictions, and open questions.
|
|
306
|
-
8. Hand off to `domain-modeling`, `spec-refinement`, or `knowledge-capture`.
|
|
307
|
-
|
|
308
|
-
## Replay Signals
|
|
309
|
-
|
|
310
|
-
- Input signal: codebase walkthrough, behavior reconstruction, business rule extraction, or current-state analysis.
|
|
311
|
-
- Output to verify: code fact map, business fact map, codewiki delta, file targets, gap list.
|
|
312
|
-
- Stop signal: solution design, PRD rewriting, or code generation.
|
|
313
|
-
- Handoff signal: the extracted facts are stable enough for downstream modeling or capture.
|
|
314
|
-
|
|
315
|
-
## Gotchas
|
|
316
|
-
|
|
317
|
-
- Do not infer business intent from comments alone.
|
|
318
|
-
- Do not merge evidence-backed facts and assumptions into one claim.
|
|
319
|
-
- Do not skip contradictory evidence.
|
|
320
|
-
- Do not turn extraction into design.
|
|
321
|
-
- Do not write the CodeWiki delta before the code facts are stable.
|
|
322
|
-
- Do not leave file targets implicit.
|
|
323
|
-
|
|
324
|
-
## Stop Rules
|
|
325
|
-
|
|
326
|
-
- Stop at fact extraction.
|
|
327
|
-
- Do not design a new solution.
|
|
328
|
-
- Do not rewrite the PRD.
|
|
329
|
-
- Do not generate code.
|
|
330
|
-
|
|
331
|
-
## References
|
|
332
|
-
|
|
333
|
-
- `skills/references/business-fact-extraction.md`
|
|
334
|
-
- `skills/references/skill-reference-matrix.md`
|
|
335
|
-
- `skills/references/rule-loading-map.md`
|
|
336
|
-
- `docs/codewiki-knowledge-base.md`
|
|
337
|
-
|
|
@@ -1,228 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
const fs = require('fs');
|
|
4
|
-
const path = require('path');
|
|
5
|
-
|
|
6
|
-
const REPO_ROOT = path.join(__dirname, '..', '..', '..');
|
|
7
|
-
const START_MARKER = '<!-- business-fact-extraction:start -->';
|
|
8
|
-
const END_MARKER = '<!-- business-fact-extraction:end -->';
|
|
9
|
-
|
|
10
|
-
const FILE_FIELD_ORDER = {
|
|
11
|
-
'knowledge-base/realtime-code/modules.md': ['module', 'current responsibility', 'key entry points', 'important constraints', 'last verified'],
|
|
12
|
-
'knowledge-base/realtime-code/flows.md': ['flow name', 'trigger', 'path', 'output', 'failure points', 'notes'],
|
|
13
|
-
'knowledge-base/realtime-code/runtime-notes.md': ['fact', 'evidence', 'affected area', 'date', 'notes'],
|
|
14
|
-
'knowledge-base/requirements/decisions.md': ['decision', 'reason', 'date or context', 'affected artifact', 'notes'],
|
|
15
|
-
'knowledge-base/requirements/acceptance.md': ['requirement', 'acceptance criteria', 'out of scope', 'open questions', 'confirmed by'],
|
|
16
|
-
'knowledge-base/requirements/conflicts.md': ['conflict', 'source', 'impact', 'resolution', 'status'],
|
|
17
|
-
'knowledge-base/codewiki/overview.md': ['one-line summary', 'what the system does', 'what changed', 'why it matters'],
|
|
18
|
-
'knowledge-base/codewiki/architecture.md': ['layers', 'boundaries', 'dependencies', 'major integration points'],
|
|
19
|
-
'knowledge-base/codewiki/modules.md': ['module name', 'responsibility', 'main interfaces', 'related runtime facts'],
|
|
20
|
-
'knowledge-base/codewiki/flows.md': ['request flow', 'data flow', 'error flow', 'handoff flow'],
|
|
21
|
-
'knowledge-base/codewiki/api.md': ['endpoint or contract', 'request shape', 'response shape', 'constraints'],
|
|
22
|
-
'knowledge-base/codewiki/runbook.md': ['startup', 'verify', 'troubleshoot', 'recover'],
|
|
23
|
-
'knowledge-base/codewiki/conventions.md': ['naming', 'layering', 'error handling', 'logging', 'data handling'],
|
|
24
|
-
'knowledge-base/enterprise/decisions.md': ['decision', 'reason', 'scope', 'date', 'reusable lesson'],
|
|
25
|
-
'knowledge-base/enterprise/pitfalls.md': ['pitfall', 'context', 'why it failed', 'how to avoid it'],
|
|
26
|
-
'knowledge-base/enterprise/examples.md': ['example', 'context', 'lesson', 'reusable pattern'],
|
|
27
|
-
'knowledge-base/enterprise/ai-coding-rules.md': ['rule', 'when it applies', 'why it matters', 'examples']
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
const SAMPLE_PACK = {
|
|
31
|
-
files: {
|
|
32
|
-
'knowledge-base/realtime-code/modules.md': [
|
|
33
|
-
{
|
|
34
|
-
module: 'order-service',
|
|
35
|
-
'current responsibility': 'creates orders and reserves inventory',
|
|
36
|
-
'key entry points': 'createOrder(), reserveInventory()',
|
|
37
|
-
'important constraints': 'stock must be checked before commit',
|
|
38
|
-
'last verified': '2026-06-22'
|
|
39
|
-
}
|
|
40
|
-
],
|
|
41
|
-
'knowledge-base/requirements/decisions.md': [
|
|
42
|
-
{
|
|
43
|
-
decision: 'inventory must be reserved before order confirmation',
|
|
44
|
-
reason: 'avoid overselling',
|
|
45
|
-
'date or context': '2026-06-22, order flow review',
|
|
46
|
-
'affected artifact': 'checkout spec-refinement',
|
|
47
|
-
notes: 'failure should return a clear stock shortage message'
|
|
48
|
-
}
|
|
49
|
-
],
|
|
50
|
-
'knowledge-base/codewiki/flows.md': [
|
|
51
|
-
{
|
|
52
|
-
'request flow': 'checkout -> validate stock -> reserve inventory -> create order',
|
|
53
|
-
'data flow': 'cart snapshot -> reservation record -> order record',
|
|
54
|
-
'error flow': 'stock shortage -> stop checkout -> return shortage reason',
|
|
55
|
-
'handoff flow': 'checkout service hands off to inventory service and order repository'
|
|
56
|
-
}
|
|
57
|
-
],
|
|
58
|
-
'knowledge-base/enterprise/pitfalls.md': [
|
|
59
|
-
{
|
|
60
|
-
pitfall: 'reservation happens after order creation',
|
|
61
|
-
context: 'checkout path',
|
|
62
|
-
'why it failed': 'allowed overselling under concurrent requests',
|
|
63
|
-
'how to avoid it': 'reserve before committing the order'
|
|
64
|
-
}
|
|
65
|
-
]
|
|
66
|
-
}
|
|
67
|
-
};
|
|
68
|
-
|
|
69
|
-
function parseArgs(argv) {
|
|
70
|
-
const args = {
|
|
71
|
-
input: null,
|
|
72
|
-
root: REPO_ROOT,
|
|
73
|
-
dryRun: false,
|
|
74
|
-
sample: false
|
|
75
|
-
};
|
|
76
|
-
|
|
77
|
-
for (let index = 0; index < argv.length; index += 1) {
|
|
78
|
-
const token = argv[index];
|
|
79
|
-
if (token === '--input' || token === '-i') {
|
|
80
|
-
args.input = argv[++index];
|
|
81
|
-
continue;
|
|
82
|
-
}
|
|
83
|
-
if (token.startsWith('--input=')) {
|
|
84
|
-
args.input = token.slice('--input='.length);
|
|
85
|
-
continue;
|
|
86
|
-
}
|
|
87
|
-
if (token === '--root' || token === '-r') {
|
|
88
|
-
args.root = path.resolve(argv[++index]);
|
|
89
|
-
continue;
|
|
90
|
-
}
|
|
91
|
-
if (token.startsWith('--root=')) {
|
|
92
|
-
args.root = path.resolve(token.slice('--root='.length));
|
|
93
|
-
continue;
|
|
94
|
-
}
|
|
95
|
-
if (token === '--dry-run') {
|
|
96
|
-
args.dryRun = true;
|
|
97
|
-
continue;
|
|
98
|
-
}
|
|
99
|
-
if (token === '--sample') {
|
|
100
|
-
args.sample = true;
|
|
101
|
-
continue;
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
return args;
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
function readInput(inputPath) {
|
|
109
|
-
if (!inputPath || inputPath === '-') {
|
|
110
|
-
return fs.readFileSync(0, 'utf8');
|
|
111
|
-
}
|
|
112
|
-
return fs.readFileSync(inputPath, 'utf8');
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
function loadPack(inputText) {
|
|
116
|
-
const parsed = JSON.parse(String(inputText).replace(/^\uFEFF/, ''));
|
|
117
|
-
if (parsed && typeof parsed === 'object' && parsed.files && typeof parsed.files === 'object') {
|
|
118
|
-
return parsed.files;
|
|
119
|
-
}
|
|
120
|
-
if (parsed && typeof parsed === 'object') {
|
|
121
|
-
return parsed;
|
|
122
|
-
}
|
|
123
|
-
throw new Error('Input must be a JSON object.');
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
function normalizeValue(value) {
|
|
127
|
-
if (value === null || value === undefined || value === '') return 'unknown';
|
|
128
|
-
if (Array.isArray(value)) return value.map(item => normalizeValue(item)).join(', ');
|
|
129
|
-
if (typeof value === 'object') return JSON.stringify(value);
|
|
130
|
-
return String(value).trim() || 'unknown';
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
function renderEntry(fields, entry) {
|
|
134
|
-
return fields.map(field => `- ${field}: ${normalizeValue(entry[field])}`).join('\n');
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
function renderFileSection(relativePath, entries) {
|
|
138
|
-
const fieldOrder = FILE_FIELD_ORDER[relativePath];
|
|
139
|
-
if (!fieldOrder) {
|
|
140
|
-
throw new Error(`Unsupported target file: ${relativePath}`);
|
|
141
|
-
}
|
|
142
|
-
if (!Array.isArray(entries) || entries.length === 0) {
|
|
143
|
-
throw new Error(`No entries provided for ${relativePath}`);
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
const blocks = entries.map(entry => renderEntry(fieldOrder, entry));
|
|
147
|
-
return [
|
|
148
|
-
'## Generated Entries',
|
|
149
|
-
START_MARKER,
|
|
150
|
-
blocks.join('\n\n'),
|
|
151
|
-
END_MARKER
|
|
152
|
-
].join('\n');
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
function upsertGeneratedSection(existingContent, generatedSection) {
|
|
156
|
-
const startIndex = existingContent.indexOf(START_MARKER);
|
|
157
|
-
const endIndex = existingContent.indexOf(END_MARKER);
|
|
158
|
-
|
|
159
|
-
if (startIndex >= 0 && endIndex >= 0 && endIndex > startIndex) {
|
|
160
|
-
const before = existingContent.slice(0, startIndex).trimEnd();
|
|
161
|
-
const after = existingContent.slice(endIndex + END_MARKER.length).trimStart();
|
|
162
|
-
const middle = generatedSection;
|
|
163
|
-
const parts = [before, middle];
|
|
164
|
-
if (after) {
|
|
165
|
-
parts.push(after);
|
|
166
|
-
}
|
|
167
|
-
return `${parts.filter(Boolean).join('\n\n').trimEnd()}\n`;
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
const base = existingContent.trimEnd();
|
|
171
|
-
if (!base) {
|
|
172
|
-
return `${generatedSection}\n`;
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
return `${base}\n\n${generatedSection}\n`;
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
function collectTargets(filePack) {
|
|
179
|
-
const targets = [];
|
|
180
|
-
for (const [relativePath, entries] of Object.entries(filePack)) {
|
|
181
|
-
if (!relativePath.startsWith('knowledge-base/')) {
|
|
182
|
-
throw new Error(`Refusing to write outside knowledge-base: ${relativePath}`);
|
|
183
|
-
}
|
|
184
|
-
targets.push({ relativePath, entries });
|
|
185
|
-
}
|
|
186
|
-
return targets;
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
function ensureParentDir(filePath) {
|
|
190
|
-
fs.mkdirSync(path.dirname(filePath), { recursive: true });
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
function main() {
|
|
194
|
-
const args = parseArgs(process.argv.slice(2));
|
|
195
|
-
|
|
196
|
-
if (args.sample) {
|
|
197
|
-
process.stdout.write(`${JSON.stringify(SAMPLE_PACK, null, 2)}\n`);
|
|
198
|
-
return;
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
const inputText = readInput(args.input);
|
|
202
|
-
const filePack = loadPack(inputText);
|
|
203
|
-
const targets = collectTargets(filePack);
|
|
204
|
-
|
|
205
|
-
for (const { relativePath, entries } of targets) {
|
|
206
|
-
const absolutePath = path.join(args.root, relativePath);
|
|
207
|
-
const generatedSection = renderFileSection(relativePath, entries);
|
|
208
|
-
const existingContent = fs.existsSync(absolutePath) ? fs.readFileSync(absolutePath, 'utf8') : '';
|
|
209
|
-
const nextContent = upsertGeneratedSection(existingContent, generatedSection);
|
|
210
|
-
|
|
211
|
-
if (args.dryRun) {
|
|
212
|
-
process.stdout.write(`=== ${relativePath} ===\n${nextContent}\n`);
|
|
213
|
-
continue;
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
ensureParentDir(absolutePath);
|
|
217
|
-
fs.writeFileSync(absolutePath, nextContent, 'utf8');
|
|
218
|
-
process.stdout.write(`Wrote ${relativePath}\n`);
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
try {
|
|
223
|
-
main();
|
|
224
|
-
} catch (error) {
|
|
225
|
-
console.error(error.message);
|
|
226
|
-
process.exitCode = 1;
|
|
227
|
-
}
|
|
228
|
-
|
|
@@ -1,136 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: code-review
|
|
3
|
-
description: 当需要通用代码审查时,对 diff 或 PR 进行正确性、可维护性和回归风险审查
|
|
4
|
-
lifecycle_stage: review
|
|
5
|
-
rule_profile: code
|
|
6
|
-
dependencies:
|
|
7
|
-
- feature-build
|
|
8
|
-
triggers:
|
|
9
|
-
- diff
|
|
10
|
-
- pull request
|
|
11
|
-
- review
|
|
12
|
-
- quality gate
|
|
13
|
-
- checklist
|
|
14
|
-
- code review
|
|
15
|
-
inputs:
|
|
16
|
-
- diff
|
|
17
|
-
- pull request
|
|
18
|
-
- changed files
|
|
19
|
-
outputs:
|
|
20
|
-
- findings
|
|
21
|
-
- severity
|
|
22
|
-
- fix recommendation
|
|
23
|
-
- evidence summary
|
|
24
|
-
- review summary
|
|
25
|
-
workflow:
|
|
26
|
-
- lock the review scope
|
|
27
|
-
- identify the tech stack and load the matching review overlay(s)
|
|
28
|
-
- inspect correctness, maintainability, and regression risk
|
|
29
|
-
- route security-specific issues to `security-audit`
|
|
30
|
-
- route performance-specific issues to `performance-audit`
|
|
31
|
-
- rank findings by severity
|
|
32
|
-
- produce an actionable review report
|
|
33
|
-
gates:
|
|
34
|
-
- stop at review findings
|
|
35
|
-
- do not rewrite code
|
|
36
|
-
- do not perform implementation refactors
|
|
37
|
-
- do not become a general design discussion
|
|
38
|
-
refs:
|
|
39
|
-
- skills/references/rule-loading-map.md
|
|
40
|
-
- skills/references/flow-test-cases.md
|
|
41
|
-
- skills/references/full-chain-replay-scenarios.md
|
|
42
|
-
- skills/references/prompt-replay-checklist.md
|
|
43
|
-
- skills/code-review/references/rules.md
|
|
44
|
-
- skills/code-review/references/findings-template.md
|
|
45
|
-
- skills/code-review/references/stack-notes.md
|
|
46
|
-
- rules/index.md
|
|
47
|
-
---
|
|
48
|
-
|
|
49
|
-
# Code Review
|
|
50
|
-
|
|
51
|
-
## Purpose
|
|
52
|
-
|
|
53
|
-
Review a change set and return actionable findings.
|
|
54
|
-
|
|
55
|
-
## Suitable / Unsuitable
|
|
56
|
-
|
|
57
|
-
- Suitable: PR review, diff review, quality gate, regression check, generic code quality review across Java, Vue, and mixed-stack changes
|
|
58
|
-
- Unsuitable: implementation work, refactoring, broad design discussion, security-specific review, performance-specific review, requirement rewriting
|
|
59
|
-
|
|
60
|
-
## Quick Start
|
|
61
|
-
|
|
62
|
-
- Lock the review scope before reading details.
|
|
63
|
-
- Identify the stack(s) first. This repository may apply Java, Vue, or mixed-stack review overlays.
|
|
64
|
-
- Read the diff with the current rules bundle in mind.
|
|
65
|
-
- Report findings with severity and a concrete fix path.
|
|
66
|
-
- If the issue is clearly about auth, secrets, or exposure, hand off to `security-audit`.
|
|
67
|
-
- If the issue is clearly about latency, throughput, or resource usage, hand off to `performance-audit`.
|
|
68
|
-
- Keep stack-specific concerns in the matching overlay and keep the core review generic.
|
|
69
|
-
|
|
70
|
-
## Report Format
|
|
71
|
-
|
|
72
|
-
- Use one entry per finding.
|
|
73
|
-
- Include `location`, `severity`, `evidence`, `why it matters`, and `fix recommendation`.
|
|
74
|
-
- When a stack overlay applies, anchor the finding to the smallest stack-specific surface:
|
|
75
|
-
- Java: controller, service, entity, mapper, DTO / VO, or MyBatis XML symbol
|
|
76
|
-
- Vue: component, composable, state module, template, or frontend build file
|
|
77
|
-
- TypeScript: typed utility, module boundary, state module, or TS config symbol
|
|
78
|
-
- Keep the review summary short when the change is acceptable.
|
|
79
|
-
- If there are no findings, explain why the change is acceptable and what was checked.
|
|
80
|
-
- Separate must-fix findings from optional suggestions.
|
|
81
|
-
|
|
82
|
-
## Inputs / Outputs
|
|
83
|
-
|
|
84
|
-
- Inputs:
|
|
85
|
-
- diff
|
|
86
|
-
- pull request
|
|
87
|
-
- changed files
|
|
88
|
-
- Outputs:
|
|
89
|
-
- findings
|
|
90
|
-
- severity
|
|
91
|
-
- fix recommendation
|
|
92
|
-
- evidence summary
|
|
93
|
-
|
|
94
|
-
## Workflow
|
|
95
|
-
|
|
96
|
-
1. Lock the review scope.
|
|
97
|
-
2. Identify the stack overlays and load the matching review baseline(s) when applicable.
|
|
98
|
-
3. Inspect correctness, maintainability, and regression risk.
|
|
99
|
-
4. Route security-specific issues to `security-audit`.
|
|
100
|
-
5. Route performance-specific issues to `performance-audit`.
|
|
101
|
-
6. Rank findings by severity.
|
|
102
|
-
7. Produce an actionable review report.
|
|
103
|
-
|
|
104
|
-
## Replay Signals
|
|
105
|
-
|
|
106
|
-
- Input signal: diff, PR, changed files, or quality gate request.
|
|
107
|
-
- Output to verify: findings, severity, fix recommendation, evidence summary, review summary.
|
|
108
|
-
- Stop signal: rewriting code, implementation refactors, or broad design discussion.
|
|
109
|
-
- Handoff signal: findings are ready for `knowledge-capture`.
|
|
110
|
-
|
|
111
|
-
## Gotchas
|
|
112
|
-
|
|
113
|
-
- Do not turn review into implementation work.
|
|
114
|
-
- Do not broaden the scope beyond the submitted change.
|
|
115
|
-
- Do not produce findings without concrete evidence.
|
|
116
|
-
- Do not hide severity or fix recommendation.
|
|
117
|
-
- Do not keep security or performance findings inside generic code review when a specialized review skill fits better.
|
|
118
|
-
- Do not turn stack-specific rules into a generic design discussion.
|
|
119
|
-
|
|
120
|
-
## Stop Rules
|
|
121
|
-
|
|
122
|
-
- Stop at review findings.
|
|
123
|
-
- Do not rewrite code.
|
|
124
|
-
- Do not perform implementation refactors.
|
|
125
|
-
- Do not become a general design discussion.
|
|
126
|
-
- Do not turn review into a design task.
|
|
127
|
-
|
|
128
|
-
## References
|
|
129
|
-
|
|
130
|
-
- `skills/references/rule-loading-map.md`
|
|
131
|
-
- `skills/references/flow-test-cases.md`
|
|
132
|
-
- `rules/review/index.md`
|
|
133
|
-
- `rules/review/code.md`
|
|
134
|
-
- `rules/review/java.md`
|
|
135
|
-
- `rules/review/vue.md`
|
|
136
|
-
|