@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,20 +1,21 @@
|
|
|
1
|
-
# /workflow
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
## Route
|
|
6
|
-
|
|
7
|
-
-
|
|
8
|
-
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
-
|
|
1
|
+
# /workflow
|
|
2
|
+
|
|
3
|
+
当任务还不能直接归类时,先判断下一步应该去哪个 skill。
|
|
4
|
+
|
|
5
|
+
## Route
|
|
6
|
+
|
|
7
|
+
- 对应 skill: `ambiguity-detection`
|
|
8
|
+
- 适用: 多阶段任务、阶段切换、需要先定下一步
|
|
9
|
+
- 不适用: 已经是明确单步任务
|
|
10
|
+
|
|
11
|
+
## Workflow
|
|
12
|
+
|
|
13
|
+
1. 判断当前卡在哪个阶段。
|
|
14
|
+
2. 选出最合适的下一步 skill。
|
|
15
|
+
3. 如果信息不足,先说明原因再继续。
|
|
16
|
+
4. 记录下一步应该去哪个 skill。
|
|
17
|
+
|
|
18
|
+
## Guardrails
|
|
19
|
+
|
|
20
|
+
- 不要替用户跳过阶段。
|
|
21
|
+
- 不要把未确认的结论写成定论。
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pigcloud/skills",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.1.2",
|
|
4
4
|
"description": "面向 Codex、Trae 和 Claude Code 的 AI 技能包,提供共享技能、规则约束、工作流路由和 Pig Cloud 专属覆盖层。",
|
|
5
5
|
"author": "Pig Skills Maintainers",
|
|
6
6
|
"license": "MIT",
|
|
@@ -44,10 +44,13 @@
|
|
|
44
44
|
"CHANGELOG.md"
|
|
45
45
|
],
|
|
46
46
|
"scripts": {
|
|
47
|
-
"test": "node validate-skills.js && node scripts/validate-skill-shapes.js && node scripts/validate-rules.js && node
|
|
47
|
+
"test": "node validate-skills.js && node scripts/validate-skill-shapes.js && node scripts/validate-rules.js && node self-test-skills.js",
|
|
48
48
|
"test:self": "node self-test-skills.js",
|
|
49
49
|
"replay:golden": "node scripts/run-golden-replays.js",
|
|
50
50
|
"replay:golden:mock": "node scripts/run-golden-replays.js --provider mock",
|
|
51
|
+
"generate:skill-specs": "node scripts/bootstrap-skill-specs.js",
|
|
52
|
+
"generate:skill-prompts": "node scripts/generate-skill-prompt-library.js",
|
|
53
|
+
"generate:skills": "node scripts/bootstrap-skill-specs.js && node scripts/migrate-skill-packages.js",
|
|
51
54
|
"postinstall": "node bin/postinstall.js",
|
|
52
55
|
"validate:skills": "node validate-skills.js",
|
|
53
56
|
"validate:shapes": "node scripts/validate-skill-shapes.js",
|
package/rules/core/index.md
CHANGED
|
@@ -1,41 +1,26 @@
|
|
|
1
|
-
# Core Rules
|
|
2
|
-
|
|
3
|
-
`core/` contains the baseline rules that apply to every AI-assisted task in this repository.
|
|
4
|
-
|
|
5
|
-
##
|
|
6
|
-
|
|
7
|
-
-
|
|
8
|
-
-
|
|
9
|
-
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
- Do not
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
-
|
|
26
|
-
|
|
27
|
-
## 回放信号
|
|
28
|
-
|
|
29
|
-
- Any prompt that only needs general collaboration or quality constraints should start here.
|
|
30
|
-
- If the task needs product, workflow, coding, docs, or review specifics, hand off to the matching bundle.
|
|
31
|
-
|
|
32
|
-
## References
|
|
33
|
-
|
|
34
|
-
- `core/task-boundary.md`
|
|
35
|
-
- `core/evidence.md`
|
|
36
|
-
- `core/iteration.md`
|
|
37
|
-
- `core/interface.md`
|
|
38
|
-
- `core/layer-boundary.md`
|
|
39
|
-
- `core/code-quality.md`
|
|
40
|
-
- `core/logging.md`
|
|
41
|
-
- `core/security.md`
|
|
1
|
+
# Core Rules
|
|
2
|
+
|
|
3
|
+
`core/` contains the baseline rules that apply to every AI-assisted task in this repository.
|
|
4
|
+
|
|
5
|
+
## Purpose
|
|
6
|
+
|
|
7
|
+
- Keep the request bounded before deeper work starts.
|
|
8
|
+
- Favor evidence over guesswork.
|
|
9
|
+
- Keep the file short and push details into stage-specific guidance only when needed.
|
|
10
|
+
|
|
11
|
+
## Do Not
|
|
12
|
+
|
|
13
|
+
- Do not mix stage-specific policy into core rules.
|
|
14
|
+
- Do not turn core into a repository encyclopedia.
|
|
15
|
+
- Do not let unclear inputs expand into open-ended work.
|
|
16
|
+
|
|
17
|
+
## Check
|
|
18
|
+
|
|
19
|
+
- Can the task be solved with only baseline rules?
|
|
20
|
+
- Is the task boundary explicit?
|
|
21
|
+
- Is the output shape clear?
|
|
22
|
+
|
|
23
|
+
## Use When
|
|
24
|
+
|
|
25
|
+
- Start here for any prompt that only needs general collaboration or quality constraints.
|
|
26
|
+
- Hand off to the matching stage when the task needs discovery, design, implementation, validation, delivery, or shared guidance.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Delivery Rules
|
|
2
|
+
|
|
3
|
+
`delivery/` contains rules for release readiness, handoff, changelog, and deployment guidance.
|
|
4
|
+
|
|
5
|
+
## Purpose
|
|
6
|
+
|
|
7
|
+
- Confirm the change is ready to ship.
|
|
8
|
+
- Record what changed and how to verify it.
|
|
9
|
+
- Keep deployment and recovery steps explicit.
|
|
10
|
+
|
|
11
|
+
## Do Not
|
|
12
|
+
|
|
13
|
+
- Do not introduce new feature work here.
|
|
14
|
+
- Do not reopen earlier stage decisions unless a release blocker appears.
|
|
15
|
+
- Do not hide verification steps in prose.
|
|
16
|
+
|
|
17
|
+
## Check
|
|
18
|
+
|
|
19
|
+
- Is the release safe to proceed?
|
|
20
|
+
- Are the verification and rollback steps explicit?
|
|
21
|
+
- Is the next owner clear?
|
|
22
|
+
|
|
23
|
+
## Use When
|
|
24
|
+
|
|
25
|
+
- Use this stage when the work is complete and needs release packaging or operational guidance.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Design Rules
|
|
2
|
+
|
|
3
|
+
`design/` contains rules for architecture, API, schema, and task-split decisions.
|
|
4
|
+
|
|
5
|
+
## Purpose
|
|
6
|
+
|
|
7
|
+
- Define the smallest useful system boundary before implementation starts.
|
|
8
|
+
- Keep contracts, dependencies, and tradeoffs explicit.
|
|
9
|
+
- Split approved work into testable pieces when needed.
|
|
10
|
+
|
|
11
|
+
## Do Not
|
|
12
|
+
|
|
13
|
+
- Do not write production code here.
|
|
14
|
+
- Do not mix discovery questions into design output.
|
|
15
|
+
- Do not expand the design beyond the confirmed boundary.
|
|
16
|
+
|
|
17
|
+
## Check
|
|
18
|
+
|
|
19
|
+
- Is the boundary stable enough to implement?
|
|
20
|
+
- Are the contracts or data shapes clear?
|
|
21
|
+
- Is the next implementation step obvious?
|
|
22
|
+
|
|
23
|
+
## Use When
|
|
24
|
+
|
|
25
|
+
- Use this stage when the request needs a design decision before coding can begin.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Discovery Rules
|
|
2
|
+
|
|
3
|
+
`discovery/` contains rules for requirement framing, ambiguity removal, and impact analysis.
|
|
4
|
+
|
|
5
|
+
## Purpose
|
|
6
|
+
|
|
7
|
+
- Clarify the request before design or implementation starts.
|
|
8
|
+
- Extract business terms, constraints, and risks from the request or repository facts.
|
|
9
|
+
- Keep the work bounded and evidence driven.
|
|
10
|
+
|
|
11
|
+
## Do Not
|
|
12
|
+
|
|
13
|
+
- Do not jump into implementation details.
|
|
14
|
+
- Do not treat assumptions as facts.
|
|
15
|
+
- Do not turn discovery into design or review.
|
|
16
|
+
|
|
17
|
+
## Check
|
|
18
|
+
|
|
19
|
+
- Is the request clear enough to move forward?
|
|
20
|
+
- Are the important constraints and risks explicit?
|
|
21
|
+
- Is the next stage obvious?
|
|
22
|
+
|
|
23
|
+
## Use When
|
|
24
|
+
|
|
25
|
+
- Use this stage when the input is ambiguous, underspecified, or likely to change the downstream plan.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Implementation Rules
|
|
2
|
+
|
|
3
|
+
`implementation/` contains rules for code changes, refactoring, scaffolding, and data-flow work.
|
|
4
|
+
|
|
5
|
+
## Purpose
|
|
6
|
+
|
|
7
|
+
- Make the smallest correct change that satisfies the confirmed design.
|
|
8
|
+
- Keep implementation within the approved scope.
|
|
9
|
+
- Validate the change before handing it off.
|
|
10
|
+
|
|
11
|
+
## Do Not
|
|
12
|
+
|
|
13
|
+
- Do not reopen design unless a blocking fact appears.
|
|
14
|
+
- Do not broaden scope because it is convenient.
|
|
15
|
+
- Do not skip validation.
|
|
16
|
+
|
|
17
|
+
## Check
|
|
18
|
+
|
|
19
|
+
- Is the change still inside the approved boundary?
|
|
20
|
+
- Is the implementation path minimal and reversible?
|
|
21
|
+
- Is there a concrete validation step?
|
|
22
|
+
|
|
23
|
+
## Use When
|
|
24
|
+
|
|
25
|
+
- Use this stage when the task is ready to become code or migration work.
|
package/rules/index.md
CHANGED
|
@@ -1,46 +1,31 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Rules Entry
|
|
2
2
|
|
|
3
|
-
`rules/`
|
|
3
|
+
`rules/` is the AI-facing constraint layer for the repository.
|
|
4
|
+
Primary audience: AI readers.
|
|
4
5
|
|
|
5
|
-
##
|
|
6
|
+
## Layers
|
|
6
7
|
|
|
7
|
-
- `core
|
|
8
|
-
- `
|
|
9
|
-
- `
|
|
10
|
-
- `
|
|
11
|
-
- `
|
|
12
|
-
- `
|
|
13
|
-
- `
|
|
14
|
-
- `
|
|
8
|
+
- `core`: universal baseline rules
|
|
9
|
+
- `discovery`: requirement framing, ambiguity removal, and impact analysis
|
|
10
|
+
- `design`: architecture, API, schema, and task-split decisions
|
|
11
|
+
- `implementation`: code changes, refactoring, scaffolding, and data-flow work
|
|
12
|
+
- `validation`: tests, review, regression, security, and performance checks
|
|
13
|
+
- `delivery`: release readiness, handoff, changelog, and deployment guidance
|
|
14
|
+
- `shared`: repository orientation, evidence packaging, and reusable framework conventions
|
|
15
|
+
- `overlays`: repository-specific or stack-specific overrides
|
|
16
|
+
- `skill-stage-map.json`: canonical skill to stage mapping
|
|
15
17
|
|
|
16
|
-
##
|
|
18
|
+
## Design Principles
|
|
17
19
|
|
|
18
|
-
|
|
20
|
+
- Keep the rules stage-oriented and lightweight.
|
|
21
|
+
- Keep rules authoritative and reusable.
|
|
22
|
+
- Keep overlays narrow and explicit.
|
|
23
|
+
- Keep routing metadata out of skill files.
|
|
24
|
+
- Load the smallest stage set that still covers the task.
|
|
25
|
+
- Treat the stage map as the source of truth for skill-to-rule routing.
|
|
26
|
+
- Use [docs/skill-layer-boundary-plan.md](../docs/skill-layer-boundary-plan.md) as the companion map for how `skills`, `references`, and `rules` fit together.
|
|
19
27
|
|
|
20
|
-
|
|
21
|
-
- 禁区
|
|
22
|
-
- 检查
|
|
23
|
-
- 回放信号
|
|
24
|
-
- References
|
|
28
|
+
## Related Docs
|
|
25
29
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
- 能用 `core` 解决的,不要加载更具体的 bundle。
|
|
29
|
-
- 需要更具体约束时,先加载 `core`,再加载匹配的 bundle/profile。
|
|
30
|
-
- `skill` frontmatter 里的 `rule_profile` 是声明源,映射文件只做校验和回退。
|
|
31
|
-
- 不要把产品发现、技能路由或专属 overlay 的正文写回 `rules/index.md`。
|
|
32
|
-
|
|
33
|
-
## 使用方式
|
|
34
|
-
|
|
35
|
-
- skill 不要内嵌规则细节,统一指向这里。
|
|
36
|
-
- loader 先识别 bundle,再按 profile 选最小文件集。
|
|
37
|
-
- `PIG_SKILLS_RULE_BUNDLE` 负责强制 bundle。
|
|
38
|
-
- `PIG_SKILLS_RULE_PROFILE` 负责强制 profile。
|
|
39
|
-
- `PIG_SKILLS_RULE_SKILL` 负责按 skill 名自动推导。
|
|
40
|
-
- `PIG_SKILLS_RULE_OVERLAY` 可用于附加本地覆盖层。
|
|
41
|
-
|
|
42
|
-
## Review Stack Split
|
|
43
|
-
|
|
44
|
-
- `review/code.md` 是通用审查边界。
|
|
45
|
-
- `review/java.md`、`review/vue.md`、`review/ts.md` 是按栈叠加的审查覆盖层。
|
|
46
|
-
- 混合栈仓库可以叠加多个 overlay。
|
|
30
|
+
- [docs/skill-system-target.md](../docs/skill-system-target.md)
|
|
31
|
+
- [docs/skill-layer-boundary-plan.md](../docs/skill-layer-boundary-plan.md)
|
package/rules/overlays/index.md
CHANGED
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Overlays
|
|
2
2
|
|
|
3
|
-
`overlays/`
|
|
3
|
+
`overlays/` holds narrow repository-, team-, or stack-specific rules.
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## Purpose
|
|
6
6
|
|
|
7
|
-
-
|
|
8
|
-
-
|
|
7
|
+
- Add local conventions on top of shared stage rules.
|
|
8
|
+
- Keep special cases out of the generic rule tree.
|
|
9
|
+
- Avoid duplicating the same guidance across multiple places.
|
|
9
10
|
|
|
10
|
-
##
|
|
11
|
+
## Good Overlay Content
|
|
11
12
|
|
|
12
|
-
-
|
|
13
|
-
-
|
|
14
|
-
-
|
|
13
|
+
- Spring Boot conventions
|
|
14
|
+
- MyBatis conventions
|
|
15
|
+
- Redis conventions
|
|
16
|
+
- project-specific layering rules
|
|
17
|
+
- local naming and response-shape conventions
|
|
15
18
|
|
|
16
|
-
##
|
|
19
|
+
## What Not to Put Here
|
|
17
20
|
|
|
18
|
-
-
|
|
19
|
-
-
|
|
21
|
+
- Generic engineering rules that belong in `core/`
|
|
22
|
+
- Stage routing that belongs in `core/` plus the stage map
|
|
23
|
+
- Discovery, design, implementation, validation, or delivery policy that belongs in the matching stage
|
|
20
24
|
|
|
21
|
-
##
|
|
25
|
+
## Rule of Thumb
|
|
22
26
|
|
|
23
|
-
-
|
|
24
|
-
|
|
25
|
-
## References
|
|
26
|
-
|
|
27
|
-
- `rules/index.md`
|
|
28
|
-
- `rules/overlays/pig-cloud.md`
|
|
27
|
+
- If the rule is true for most repositories, it should not be an overlay.
|
|
28
|
+
- If the rule is only true for this repository or stack, overlay is the right place.
|
|
@@ -1,45 +1,20 @@
|
|
|
1
|
-
# Pig Cloud
|
|
2
|
-
|
|
3
|
-
`overlays/pig-cloud
|
|
4
|
-
|
|
5
|
-
##
|
|
6
|
-
|
|
7
|
-
1.
|
|
8
|
-
2.
|
|
9
|
-
3.
|
|
10
|
-
|
|
11
|
-
##
|
|
12
|
-
|
|
13
|
-
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
-
|
|
20
|
-
-
|
|
21
|
-
- [exception.md](rules/overlays/pig-cloud/exception.md)
|
|
22
|
-
- [layering.md](rules/overlays/pig-cloud/layering.md)
|
|
23
|
-
- [rest-response.md](rules/overlays/pig-cloud/rest-response.md)
|
|
24
|
-
- [entity.md](rules/overlays/pig-cloud/entity.md)
|
|
25
|
-
- [validation.md](rules/overlays/pig-cloud/validation.md)
|
|
26
|
-
- [query-style.md](rules/overlays/pig-cloud/query-style.md)
|
|
27
|
-
- [transactions.md](rules/overlays/pig-cloud/transactions.md)
|
|
28
|
-
|
|
29
|
-
## 禁区
|
|
30
|
-
|
|
31
|
-
- 不要把具体规则再写回这个索引页。
|
|
32
|
-
|
|
33
|
-
## 检查
|
|
34
|
-
|
|
35
|
-
- 入口是否仍然足够短?
|
|
36
|
-
- 具体约束是否都下沉到了子文件?
|
|
37
|
-
|
|
38
|
-
## 回放信号
|
|
39
|
-
|
|
40
|
-
- 当需要定位 Pig Cloud 专属规则时触发。
|
|
41
|
-
|
|
42
|
-
## References
|
|
43
|
-
|
|
44
|
-
- `rules/overlays/index.md`
|
|
45
|
-
- `rules/index.md`
|
|
1
|
+
# Pig Cloud Overlay
|
|
2
|
+
|
|
3
|
+
`overlays/pig-cloud.md` is the explicit overlay for the Pig Cloud repository.
|
|
4
|
+
|
|
5
|
+
## Loading Order
|
|
6
|
+
|
|
7
|
+
1. Read `rules/index.md`
|
|
8
|
+
2. Read `rules/overlays/index.md`
|
|
9
|
+
3. Load this overlay only when Pig Cloud conventions are required
|
|
10
|
+
|
|
11
|
+
## Default Behavior
|
|
12
|
+
|
|
13
|
+
- Keep this file as an overlay entry point and index.
|
|
14
|
+
- Do not duplicate generic stage rules here.
|
|
15
|
+
- Keep stack-specific rules narrow and local.
|
|
16
|
+
|
|
17
|
+
## References
|
|
18
|
+
|
|
19
|
+
- `rules/overlays/index.md`
|
|
20
|
+
- `rules/index.md`
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Shared Rules
|
|
2
|
+
|
|
3
|
+
`shared/` contains repository orientation, evidence packaging, and reusable framework conventions.
|
|
4
|
+
|
|
5
|
+
## Purpose
|
|
6
|
+
|
|
7
|
+
- Keep cross-stage guidance reusable.
|
|
8
|
+
- Capture evidence and repo facts once.
|
|
9
|
+
- Hold framework-level conventions that apply across stages.
|
|
10
|
+
|
|
11
|
+
## Do Not
|
|
12
|
+
|
|
13
|
+
- Do not put stage routing here.
|
|
14
|
+
- Do not move task-specific policy into shared rules.
|
|
15
|
+
- Do not duplicate detailed stage guidance.
|
|
16
|
+
|
|
17
|
+
## Check
|
|
18
|
+
|
|
19
|
+
- Is the content useful across more than one stage?
|
|
20
|
+
- Does it stay narrow enough to load quickly?
|
|
21
|
+
- Is it stable across tasks?
|
|
22
|
+
|
|
23
|
+
## Use When
|
|
24
|
+
|
|
25
|
+
- Use this stage for shared context, evidence, and framework conventions.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"requirement-discovery": { "stage": "discovery" },
|
|
3
|
+
"business-analysis": { "stage": "discovery" },
|
|
4
|
+
"ambiguity-detection": { "stage": "discovery" },
|
|
5
|
+
"impact-analysis": { "stage": "discovery" },
|
|
6
|
+
"architecture-design": { "stage": "design" },
|
|
7
|
+
"api-design": { "stage": "design" },
|
|
8
|
+
"database-design": { "stage": "design" },
|
|
9
|
+
"task-breakdown": { "stage": "design" },
|
|
10
|
+
"backend-development": { "stage": "implementation" },
|
|
11
|
+
"frontend-development": { "stage": "implementation" },
|
|
12
|
+
"database-change": { "stage": "implementation" },
|
|
13
|
+
"bug-fix": { "stage": "implementation" },
|
|
14
|
+
"unit-test": { "stage": "validation" },
|
|
15
|
+
"code-review": { "stage": "validation" },
|
|
16
|
+
"security-review": { "stage": "validation" },
|
|
17
|
+
"performance-review": { "stage": "validation" },
|
|
18
|
+
"regression-check": { "stage": "validation" },
|
|
19
|
+
"release-check": { "stage": "delivery" },
|
|
20
|
+
"release-validation": { "stage": "delivery" },
|
|
21
|
+
"change-log": { "stage": "delivery" },
|
|
22
|
+
"deployment-guide": { "stage": "delivery" },
|
|
23
|
+
"framework-guide": { "stage": "shared" },
|
|
24
|
+
"codebase-learning": { "stage": "shared" },
|
|
25
|
+
"evidence-collector": { "stage": "shared" }
|
|
26
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
{
|
|
2
|
+
"core": {
|
|
3
|
+
"description": "Universal baseline rules that apply to every AI-assisted task in this repository.",
|
|
4
|
+
"entry": "core/index.md",
|
|
5
|
+
"files": ["core/index.md"]
|
|
6
|
+
},
|
|
7
|
+
"discovery": {
|
|
8
|
+
"description": "Requirement framing, ambiguity removal, and impact analysis before design or implementation.",
|
|
9
|
+
"entry": "discovery/index.md",
|
|
10
|
+
"files": ["discovery/index.md"]
|
|
11
|
+
},
|
|
12
|
+
"design": {
|
|
13
|
+
"description": "Architecture, API, schema, and task-split decisions before implementation.",
|
|
14
|
+
"entry": "design/index.md",
|
|
15
|
+
"files": ["design/index.md"]
|
|
16
|
+
},
|
|
17
|
+
"implementation": {
|
|
18
|
+
"description": "Production code, refactoring, scaffolding, and data-flow change rules.",
|
|
19
|
+
"entry": "implementation/index.md",
|
|
20
|
+
"files": ["implementation/index.md"]
|
|
21
|
+
},
|
|
22
|
+
"validation": {
|
|
23
|
+
"description": "Testing, review, regression, security, and performance verification rules.",
|
|
24
|
+
"entry": "validation/index.md",
|
|
25
|
+
"files": ["validation/index.md"]
|
|
26
|
+
},
|
|
27
|
+
"delivery": {
|
|
28
|
+
"description": "Release readiness, handoff, change logging, and deployment guidance.",
|
|
29
|
+
"entry": "delivery/index.md",
|
|
30
|
+
"files": ["delivery/index.md"]
|
|
31
|
+
},
|
|
32
|
+
"shared": {
|
|
33
|
+
"description": "Repository orientation, evidence packaging, and reusable framework conventions.",
|
|
34
|
+
"entry": "shared/index.md",
|
|
35
|
+
"files": ["shared/index.md"]
|
|
36
|
+
},
|
|
37
|
+
"overlays": {
|
|
38
|
+
"description": "Repository- or stack-specific rules applied only when explicitly requested.",
|
|
39
|
+
"entry": "overlays/index.md",
|
|
40
|
+
"files": ["overlays/index.md", "overlays/pig-cloud.md"],
|
|
41
|
+
"variants": {
|
|
42
|
+
"pig-cloud": {
|
|
43
|
+
"entry": "overlays/pig-cloud.md",
|
|
44
|
+
"files": ["overlays/index.md", "overlays/pig-cloud.md"]
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Validation Rules
|
|
2
|
+
|
|
3
|
+
`validation/` contains rules for tests, review, regression, security, and performance checks.
|
|
4
|
+
|
|
5
|
+
## Purpose
|
|
6
|
+
|
|
7
|
+
- Prove the change is correct, safe, and ready for handoff.
|
|
8
|
+
- Keep findings concrete and tied to evidence.
|
|
9
|
+
- Avoid rewriting the change during validation.
|
|
10
|
+
|
|
11
|
+
## Do Not
|
|
12
|
+
|
|
13
|
+
- Do not use validation to redesign the implementation.
|
|
14
|
+
- Do not report findings without proof.
|
|
15
|
+
- Do not expand the scope beyond the submitted change.
|
|
16
|
+
|
|
17
|
+
## Check
|
|
18
|
+
|
|
19
|
+
- Is the evidence strong enough to support the conclusion?
|
|
20
|
+
- Is the risk concrete and reproducible?
|
|
21
|
+
- Is the next handoff step clear?
|
|
22
|
+
|
|
23
|
+
## Use When
|
|
24
|
+
|
|
25
|
+
- Use this stage after implementation or when a change must be inspected for risk.
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
const fs = require('fs');
|
|
4
|
+
const path = require('path');
|
|
5
|
+
|
|
6
|
+
const repoRoot = path.join(__dirname, '..');
|
|
7
|
+
const skillsRoot = path.join(repoRoot, 'skills');
|
|
8
|
+
const suite = require(path.join(repoRoot, 'scripts', 'golden-prompt-suite.current.js'));
|
|
9
|
+
|
|
10
|
+
function readSkillDirectories() {
|
|
11
|
+
const results = [];
|
|
12
|
+
|
|
13
|
+
function walk(dir) {
|
|
14
|
+
for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {
|
|
15
|
+
if (entry.name === 'references' || entry.name === 'assets' || entry.name === 'scripts') {
|
|
16
|
+
continue;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
const fullPath = path.join(dir, entry.name);
|
|
20
|
+
if (entry.isDirectory()) {
|
|
21
|
+
const skillFile = path.join(fullPath, 'SKILL.md');
|
|
22
|
+
if (fs.existsSync(skillFile)) {
|
|
23
|
+
results.push(fullPath);
|
|
24
|
+
}
|
|
25
|
+
walk(fullPath);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
walk(skillsRoot);
|
|
31
|
+
return results.sort();
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
function readSkillMd(skillFile) {
|
|
35
|
+
const content = fs.readFileSync(skillFile, 'utf8');
|
|
36
|
+
const frontmatterMatch = content.match(/^---\r?\n([\s\S]*?)\r?\n---/);
|
|
37
|
+
const frontmatter = frontmatterMatch ? frontmatterMatch[1] : '';
|
|
38
|
+
const name = (frontmatter.match(/^name:\s*(.+)$/m) || [])[1]?.trim() || path.basename(path.dirname(skillFile));
|
|
39
|
+
const description = (frontmatter.match(/^description:\s*(.+)$/m) || [])[1]?.trim() || '';
|
|
40
|
+
const title = (content.match(/^#\s+(.+)$/m) || [])[1]?.trim() || name;
|
|
41
|
+
|
|
42
|
+
function extractSection(title) {
|
|
43
|
+
const match = content.match(new RegExp(`## ${title}\\s*\\n\\n([\\s\\S]*?)(?=\\n## |$)`));
|
|
44
|
+
if (!match) {
|
|
45
|
+
return [];
|
|
46
|
+
}
|
|
47
|
+
return match[1]
|
|
48
|
+
.split(/\r?\n/)
|
|
49
|
+
.map((line) => line.trim())
|
|
50
|
+
.filter((line) => line.startsWith('- '))
|
|
51
|
+
.map((line) => line.slice(2).trim());
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
function extractSectionText(title) {
|
|
55
|
+
const match = content.match(new RegExp(`## ${title}\\s*\\n\\n([\\s\\S]*?)(?=\\n## |$)`));
|
|
56
|
+
return match ? match[1].trim().replace(/\r/g, '') : '';
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
return {
|
|
60
|
+
name,
|
|
61
|
+
description,
|
|
62
|
+
title,
|
|
63
|
+
purpose: extractSectionText('Purpose'),
|
|
64
|
+
whenToUse: extractSection('When to Use'),
|
|
65
|
+
how: extractSection('How'),
|
|
66
|
+
whenToAvoid: extractSection('When to Avoid'),
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
function findCaseId(skillName) {
|
|
71
|
+
const testCase = suite.cases.find((item) => item.expectedFirstSkill === skillName);
|
|
72
|
+
return testCase ? testCase.id : null;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
function main() {
|
|
76
|
+
let count = 0;
|
|
77
|
+
|
|
78
|
+
for (const skillDir of readSkillDirectories()) {
|
|
79
|
+
const skillFile = path.join(skillDir, 'SKILL.md');
|
|
80
|
+
const specFile = path.join(skillDir, 'skill-spec.json');
|
|
81
|
+
const group = path.relative(skillsRoot, skillDir).split(path.sep)[0];
|
|
82
|
+
const spec = readSkillMd(skillFile);
|
|
83
|
+
const payload = {
|
|
84
|
+
group,
|
|
85
|
+
...spec,
|
|
86
|
+
caseId: findCaseId(spec.name),
|
|
87
|
+
source: 'bootstrap-from-skill-md',
|
|
88
|
+
};
|
|
89
|
+
fs.writeFileSync(specFile, `${JSON.stringify(payload, null, 2)}\n`, 'utf8');
|
|
90
|
+
count += 1;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
console.log(`Bootstrapped ${count} skill specs.`);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
main();
|