@winspan/claude-forge 8.51.1 → 8.53.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/CLAUDE.md +5 -5
- package/dist/cli/commands/skills.d.ts.map +1 -1
- package/dist/cli/commands/skills.js +115 -0
- package/dist/cli/commands/skills.js.map +1 -1
- package/dist/core/constants.d.ts +2 -0
- package/dist/core/constants.d.ts.map +1 -1
- package/dist/core/constants.js +4 -0
- package/dist/core/constants.js.map +1 -1
- package/dist/daemon/index.d.ts.map +1 -1
- package/dist/daemon/index.js +11 -1
- package/dist/daemon/index.js.map +1 -1
- package/dist/daemon/skill-sync.d.ts +21 -0
- package/dist/daemon/skill-sync.d.ts.map +1 -0
- package/dist/daemon/skill-sync.js +75 -0
- package/dist/daemon/skill-sync.js.map +1 -0
- package/dist/hooks/notification.sh +1 -1
- package/dist/hooks/post-tool-use.sh +1 -1
- package/dist/hooks/pre-tool-use.sh +1 -1
- package/dist/hooks/stop.sh +1 -1
- package/dist/hooks/user-prompt-submit.sh +1 -1
- package/dist/skills/official/code-simplifier.md +37 -1
- package/dist/skills/official/find-skills.md +120 -1
- package/dist/skills/official/official-api-design.md +14 -1
- package/dist/skills/official/official-architecture-decision.md +22 -1
- package/dist/skills/official/official-db-schema-design.md +19 -1
- package/dist/skills/official/official-debug.md +9 -1
- package/dist/skills/official/official-pr-review.md +1 -1
- package/dist/skills/official/official-security-hardening.md +7 -1
- package/dist/skills/official/planning-with-files.md +206 -2
- package/dist/skills/official/ui-ux-pro-max.md +88 -1
- package/dist/skills/official/webapp-testing.md +85 -1
- package/dist/skills/registry.d.ts +1 -1
- package/dist/skills/registry.d.ts.map +1 -1
- package/dist/skills/registry.js +2 -2
- package/dist/skills/registry.js.map +1 -1
- package/dist/skills/semantic-matcher.d.ts +2 -1
- package/dist/skills/semantic-matcher.d.ts.map +1 -1
- package/dist/skills/semantic-matcher.js +6 -3
- package/dist/skills/semantic-matcher.js.map +1 -1
- package/dist/skills/upgrade-engine.d.ts +91 -0
- package/dist/skills/upgrade-engine.d.ts.map +1 -0
- package/dist/skills/upgrade-engine.js +436 -0
- package/dist/skills/upgrade-engine.js.map +1 -0
- package/dist/skills/upgrade-prompt.d.ts +20 -0
- package/dist/skills/upgrade-prompt.d.ts.map +1 -0
- package/dist/skills/upgrade-prompt.js +75 -0
- package/dist/skills/upgrade-prompt.js.map +1 -0
- package/docs/design/skill-ai-upgrade-spec-20260518-1930.md +297 -0
- package/docs/implementation/daemon-skill-sync-changelog-20260518-2000.md +22 -0
- package/docs/implementation/skill-ai-upgrade-changelog-20260518-1930.md +49 -0
- package/package.json +1 -1
- package/src/cli/commands/skills.ts +143 -0
- package/src/core/constants.ts +5 -0
- package/src/daemon/index.ts +11 -1
- package/src/daemon/skill-sync.ts +88 -0
- package/src/hooks/notification.sh +1 -1
- package/src/hooks/post-tool-use.sh +1 -1
- package/src/hooks/pre-tool-use.sh +1 -1
- package/src/hooks/stop.sh +1 -1
- package/src/hooks/user-prompt-submit.sh +1 -1
- package/src/skills/official/code-simplifier.md +37 -1
- package/src/skills/official/find-skills.md +120 -1
- package/src/skills/official/official-api-design.md +14 -1
- package/src/skills/official/official-architecture-decision.md +22 -1
- package/src/skills/official/official-db-schema-design.md +19 -1
- package/src/skills/official/official-debug.md +9 -1
- package/src/skills/official/official-pr-review.md +1 -1
- package/src/skills/official/official-security-hardening.md +7 -1
- package/src/skills/official/planning-with-files.md +206 -2
- package/src/skills/official/ui-ux-pro-max.md +88 -1
- package/src/skills/official/webapp-testing.md +85 -1
- package/src/skills/registry.ts +2 -2
- package/src/skills/semantic-matcher.ts +6 -3
- package/src/skills/upgrade-engine.ts +541 -0
- package/src/skills/upgrade-prompt.ts +84 -0
- package/tests/unit/daemon/skill-sync.test.ts +75 -0
- package/tests/unit/skills/upgrade-engine-parse.test.ts +138 -0
- package/tests/unit/skills/upgrade-engine.test.ts +401 -0
- package/tests/unit/skills/upgrade-prompt.test.ts +89 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upgrade-engine.js","sourceRoot":"","sources":["../../src/skills/upgrade-engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* upgrade-prompt.ts
|
|
3
|
+
*
|
|
4
|
+
* Builds the system + user prompts for AI-assisted skill evaluation.
|
|
5
|
+
* Pure functions — no I/O, no side effects.
|
|
6
|
+
*/
|
|
7
|
+
import type { CandidateSkill } from './upgrade-engine.js';
|
|
8
|
+
import type { OfficialSkill } from './official-skills.js';
|
|
9
|
+
/**
|
|
10
|
+
* Build system + user prompts for evaluating whether a candidate skill should
|
|
11
|
+
* upgrade, merge with, or skip an official skill.
|
|
12
|
+
*
|
|
13
|
+
* The system prompt defines the decision criteria and output JSON contract.
|
|
14
|
+
* The user prompt contains the two skill bodies (capped at 2000 chars each).
|
|
15
|
+
*/
|
|
16
|
+
export declare function buildEvaluationPrompt(candidate: CandidateSkill, official: OfficialSkill): {
|
|
17
|
+
system: string;
|
|
18
|
+
user: string;
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=upgrade-prompt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upgrade-prompt.d.ts","sourceRoot":"","sources":["../../src/skills/upgrade-prompt.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAa1D;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,cAAc,EACzB,QAAQ,EAAE,aAAa,GACtB;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAoDlC"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* upgrade-prompt.ts
|
|
3
|
+
*
|
|
4
|
+
* Builds the system + user prompts for AI-assisted skill evaluation.
|
|
5
|
+
* Pure functions — no I/O, no side effects.
|
|
6
|
+
*/
|
|
7
|
+
const MAX_CONTENT_CHARS = 2000;
|
|
8
|
+
/**
|
|
9
|
+
* Truncate content to at most `maxChars` characters, appending an ellipsis
|
|
10
|
+
* marker so the model knows the text was cut.
|
|
11
|
+
*/
|
|
12
|
+
function truncate(text, maxChars = MAX_CONTENT_CHARS) {
|
|
13
|
+
if (text.length <= maxChars)
|
|
14
|
+
return text;
|
|
15
|
+
return text.slice(0, maxChars) + '\n\n...[content truncated]';
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Build system + user prompts for evaluating whether a candidate skill should
|
|
19
|
+
* upgrade, merge with, or skip an official skill.
|
|
20
|
+
*
|
|
21
|
+
* The system prompt defines the decision criteria and output JSON contract.
|
|
22
|
+
* The user prompt contains the two skill bodies (capped at 2000 chars each).
|
|
23
|
+
*/
|
|
24
|
+
export function buildEvaluationPrompt(candidate, official) {
|
|
25
|
+
const system = `你是 Claude Code skill 内容评估专家。
|
|
26
|
+
|
|
27
|
+
你的任务是比较"候选 skill"和"官方 skill",决定如何处理。
|
|
28
|
+
|
|
29
|
+
## 评估维度
|
|
30
|
+
- **主题重叠度**:两个 skill 覆盖的领域是否高度相关
|
|
31
|
+
- **内容质量**:深度、广度、实例丰富程度、可操作性
|
|
32
|
+
- **互补性**:候选是否包含官方 skill 未涵盖的独特章节
|
|
33
|
+
|
|
34
|
+
## 决策标准
|
|
35
|
+
- **skip**:主题不重叠,或官方 skill 已完整覆盖候选内容,合并无额外价值
|
|
36
|
+
- **upgrade**:候选覆盖官方 skill 的全部核心要点,且整体质量明显更高(深度/广度提升 ≥30%),用候选直接替换官方版本
|
|
37
|
+
- **merge**:主题相同但各有独特章节,合并后整体价值更高,需要生成合并后完整内容
|
|
38
|
+
|
|
39
|
+
## 输出格式
|
|
40
|
+
必须返回严格的 JSON,不含任何其他文本、代码块标记或注释:
|
|
41
|
+
{"action":"upgrade|merge|skip","confidence":0-100,"reasoning":"简短中文说明(<200字)","merged_content":null或合并后完整md字符串}
|
|
42
|
+
|
|
43
|
+
## merged_content 规则
|
|
44
|
+
- action = merge → 提供合并后的完整 .md 文件内容(含 frontmatter)
|
|
45
|
+
- action = upgrade → null(直接使用候选原文)
|
|
46
|
+
- action = skip → null`;
|
|
47
|
+
const user = `## 官方 Skill(目标)
|
|
48
|
+
|
|
49
|
+
**ID**: ${official.name}
|
|
50
|
+
**描述**: ${official.description}
|
|
51
|
+
**关键词**: ${official.keywords.join(', ') || '(无)'}
|
|
52
|
+
|
|
53
|
+
\`\`\`markdown
|
|
54
|
+
${truncate(official.content)}
|
|
55
|
+
\`\`\`
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## 候选 Skill(来源: ${candidate.source})
|
|
60
|
+
|
|
61
|
+
**ID**: ${candidate.id}
|
|
62
|
+
**名称**: ${candidate.name}
|
|
63
|
+
**描述**: ${candidate.description}
|
|
64
|
+
**关键词**: ${candidate.keywords.join(', ') || '(无)'}
|
|
65
|
+
|
|
66
|
+
\`\`\`markdown
|
|
67
|
+
${truncate(candidate.content)}
|
|
68
|
+
\`\`\`
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
请评估候选 skill 相对于官方 skill 的升级价值,返回 JSON。`;
|
|
73
|
+
return { system, user };
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=upgrade-prompt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upgrade-prompt.js","sourceRoot":"","sources":["../../src/skills/upgrade-prompt.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,MAAM,iBAAiB,GAAG,IAAI,CAAC;AAE/B;;;GAGG;AACH,SAAS,QAAQ,CAAC,IAAY,EAAE,QAAQ,GAAG,iBAAiB;IAC1D,IAAI,IAAI,CAAC,MAAM,IAAI,QAAQ;QAAE,OAAO,IAAI,CAAC;IACzC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,4BAA4B,CAAC;AAChE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CACnC,SAAyB,EACzB,QAAuB;IAEvB,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;yBAqBQ,CAAC;IAExB,MAAM,IAAI,GAAG;;UAEL,QAAQ,CAAC,IAAI;UACb,QAAQ,CAAC,WAAW;WACnB,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK;;;EAG9C,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC;;;;;kBAKV,SAAS,CAAC,MAAM;;UAExB,SAAS,CAAC,EAAE;UACZ,SAAS,CAAC,IAAI;UACd,SAAS,CAAC,WAAW;WACpB,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK;;;EAG/C,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC;;;;;uCAKU,CAAC;IAEtC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AAC1B,CAAC"}
|
|
@@ -0,0 +1,297 @@
|
|
|
1
|
+
# AI 辅助 official skill 升级 Spec
|
|
2
|
+
|
|
3
|
+
## 目标
|
|
4
|
+
|
|
5
|
+
为 `claude-forge` 新增 `cf skills upgrade` 命令,通过 AI 评估将外部开源 skill 仓库(addyosmani/agent-skills、obra/superpowers)的优质内容合并进 `src/skills/official/*.md`(永久内置 skill),而不是让它们在用户目录独立存在。整个流程默认 dry-run,用户审核 markdown 报告后执行 `--apply`。
|
|
6
|
+
|
|
7
|
+
## 用户决策(已通过对话确认)
|
|
8
|
+
|
|
9
|
+
| 决策点 | 确认值 |
|
|
10
|
+
|--------|--------|
|
|
11
|
+
| 候选源目录 | `~/.claude-forge/skill-candidates/<source-name>/` |
|
|
12
|
+
| AI 评估使用 | `config.ai.model` + `config.ai.base_url` |
|
|
13
|
+
| 覆盖目标 | `src/skills/official/*.md`(编译进 dist 的永久内置) |
|
|
14
|
+
| 报告路径 | `~/.claude-forge/skill-upgrade-report.md` |
|
|
15
|
+
| 默认行为 | dry-run(只生成报告) |
|
|
16
|
+
| `--apply` 行为 | 读取报告中 action,备份后覆写源码 |
|
|
17
|
+
| 备份路径 | `~/.claude-forge/backups/skills/<timestamp>/`(已有 FORGE_PATHS.backups('skills')) |
|
|
18
|
+
|
|
19
|
+
## 数据流图
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
[cf skills upgrade]
|
|
23
|
+
│
|
|
24
|
+
▼
|
|
25
|
+
[1] pullCandidates()
|
|
26
|
+
├─ git clone/pull ~/.claude-forge/skill-candidates/agent-skills/
|
|
27
|
+
└─ git clone/pull ~/.claude-forge/skill-candidates/superpowers/
|
|
28
|
+
│
|
|
29
|
+
▼
|
|
30
|
+
[2] scanCandidateFiles()
|
|
31
|
+
└─ 遍历 .md 文件,解析 frontmatter → CandidateSkill[]
|
|
32
|
+
│
|
|
33
|
+
▼
|
|
34
|
+
[3] matchToOfficial() (per candidate)
|
|
35
|
+
└─ tag/keyword 模糊匹配 → MatchResult (official id | null)
|
|
36
|
+
│
|
|
37
|
+
▼
|
|
38
|
+
[4] evaluateWithAI() (有 official 匹配时才调用)
|
|
39
|
+
└─ ClaudeProvider.complete() → UpgradeDecision (JSON)
|
|
40
|
+
│
|
|
41
|
+
▼
|
|
42
|
+
[5] generateReport()
|
|
43
|
+
└─ ~/.claude-forge/skill-upgrade-report.md
|
|
44
|
+
│
|
|
45
|
+
▼ (用户审核)
|
|
46
|
+
│
|
|
47
|
+
[cf skills upgrade --apply]
|
|
48
|
+
│
|
|
49
|
+
▼
|
|
50
|
+
[6] applyDecisions()
|
|
51
|
+
├─ git status 工作树检查
|
|
52
|
+
├─ backup src/skills/official/ → backups/skills/<ts>/
|
|
53
|
+
└─ 覆写 src/skills/official/<id>.md
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## 模块设计
|
|
57
|
+
|
|
58
|
+
### Module 1: `src/skills/upgrade-engine.ts`
|
|
59
|
+
|
|
60
|
+
**职责**:编排全流程,不含 AI prompt 字符串逻辑。
|
|
61
|
+
|
|
62
|
+
```ts
|
|
63
|
+
export interface CandidateSkill {
|
|
64
|
+
id: string;
|
|
65
|
+
source: string; // 'agent-skills' | 'superpowers'
|
|
66
|
+
filePath: string;
|
|
67
|
+
name: string;
|
|
68
|
+
description: string;
|
|
69
|
+
keywords: string[];
|
|
70
|
+
content: string;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
export interface MatchResult {
|
|
74
|
+
officialId: string;
|
|
75
|
+
score: number; // 0-100,关键词重叠率
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
export type UpgradeAction = 'upgrade' | 'merge' | 'skip';
|
|
79
|
+
export interface UpgradeDecision {
|
|
80
|
+
action: UpgradeAction;
|
|
81
|
+
confidence: number; // 0-100
|
|
82
|
+
reasoning: string;
|
|
83
|
+
merged_content: string | null;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
export interface ReportEntry {
|
|
87
|
+
officialId: string;
|
|
88
|
+
candidateId: string;
|
|
89
|
+
candidateSource: string;
|
|
90
|
+
action: UpgradeAction | 'error' | 'needs_review';
|
|
91
|
+
confidence: number;
|
|
92
|
+
reasoning: string;
|
|
93
|
+
candidateFilePath: string;
|
|
94
|
+
merged_content: string | null;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
export async function pullCandidates(
|
|
98
|
+
sources: Array<{ name: string; url: string }>,
|
|
99
|
+
candidatesDir: string,
|
|
100
|
+
): Promise<CandidateSkill[]>
|
|
101
|
+
|
|
102
|
+
export function matchToOfficial(
|
|
103
|
+
candidate: CandidateSkill,
|
|
104
|
+
officialSkills: OfficialSkill[],
|
|
105
|
+
): MatchResult | null // null = 无匹配(score < 30)
|
|
106
|
+
|
|
107
|
+
export async function evaluateWithAI(
|
|
108
|
+
candidate: CandidateSkill,
|
|
109
|
+
official: OfficialSkill,
|
|
110
|
+
aiProvider: ClaudeProvider,
|
|
111
|
+
): Promise<UpgradeDecision>
|
|
112
|
+
|
|
113
|
+
export async function generateReport(
|
|
114
|
+
entries: ReportEntry[],
|
|
115
|
+
outputPath: string,
|
|
116
|
+
stats: { total: number; matched: number; unmatched: number },
|
|
117
|
+
): Promise<void>
|
|
118
|
+
|
|
119
|
+
export async function applyDecisions(
|
|
120
|
+
reportPath: string,
|
|
121
|
+
officialDir: string,
|
|
122
|
+
backupBaseDir: string,
|
|
123
|
+
): Promise<{ applied: number; skipped: number; backupPath: string }>
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
**关键逻辑**:
|
|
127
|
+
- `pullCandidates`:单源失败 try/catch 跳过
|
|
128
|
+
- `matchToOfficial`:keywords + name token overlap,阈值 30 分(满分 100)
|
|
129
|
+
- `evaluateWithAI`:`maxTokens: 1200, timeoutMs: 45000`;JSON 解析失败返回 skip + needs_review
|
|
130
|
+
- `applyDecisions`:apply 前 `git status --porcelain` 检查工作树是否干净,脏的话 abort
|
|
131
|
+
|
|
132
|
+
### Module 2: `src/skills/upgrade-prompt.ts`
|
|
133
|
+
|
|
134
|
+
```ts
|
|
135
|
+
export function buildEvaluationPrompt(
|
|
136
|
+
candidate: CandidateSkill,
|
|
137
|
+
official: OfficialSkill,
|
|
138
|
+
): { system: string; user: string }
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
**System prompt 要点**:
|
|
142
|
+
```
|
|
143
|
+
你是 Claude Code skill 内容评估专家。
|
|
144
|
+
评估维度:主题重叠度 / 内容质量 / 互补性
|
|
145
|
+
返回严格 JSON(不含其他文本):
|
|
146
|
+
{"action":"upgrade|merge|skip","confidence":0-100,"reasoning":"...","merged_content":null或合并后完整md}
|
|
147
|
+
|
|
148
|
+
决策标准:
|
|
149
|
+
- skip:主题不重叠,或 official 已完整覆盖
|
|
150
|
+
- upgrade:候选覆盖 official 全部要点且质量明显更高(+30% depth/breadth)
|
|
151
|
+
- merge:主题相同但各有独特章节,合并后价值更高
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
**User prompt**:双 skill 内容各截 2000 字 + JSON 要求。
|
|
155
|
+
|
|
156
|
+
### Module 3: 候选源拉取
|
|
157
|
+
|
|
158
|
+
```ts
|
|
159
|
+
const DEFAULT_SOURCES = [
|
|
160
|
+
{ name: 'agent-skills', url: 'https://github.com/addyosmani/agent-skills.git' },
|
|
161
|
+
{ name: 'superpowers', url: 'https://github.com/obra/superpowers.git' },
|
|
162
|
+
];
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
**扫描兼容**:
|
|
166
|
+
- agent-skills 格式:`<name>/SKILL.md`(目录格式)
|
|
167
|
+
- superpowers 格式:顶层 `*.md`(平铺)
|
|
168
|
+
- 复用 `SkillRegistry.scan()` 的格式识别逻辑
|
|
169
|
+
|
|
170
|
+
### Module 4: CLI 子命令
|
|
171
|
+
|
|
172
|
+
```ts
|
|
173
|
+
skills
|
|
174
|
+
.command('upgrade')
|
|
175
|
+
.description('AI-assisted upgrade of official skills (dry-run by default)')
|
|
176
|
+
.option('--apply', 'Apply decisions from the last report')
|
|
177
|
+
.option('--rollback <timestamp>', 'Rollback to a backup')
|
|
178
|
+
.option('--report <path>', 'Custom report path')
|
|
179
|
+
.action(async (options) => { await upgradeSkills(options); });
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
## AI 输出契约
|
|
183
|
+
|
|
184
|
+
```ts
|
|
185
|
+
type UpgradeDecision = {
|
|
186
|
+
action: 'upgrade' | 'merge' | 'skip';
|
|
187
|
+
confidence: number; // 0-100 整数
|
|
188
|
+
reasoning: string; // 简短中文 < 200 字
|
|
189
|
+
merged_content: string | null;
|
|
190
|
+
// merged_content 规则:
|
|
191
|
+
// merge → 完整合并后 .md(含 frontmatter)
|
|
192
|
+
// upgrade → null(直接用候选原文)
|
|
193
|
+
// skip → null
|
|
194
|
+
};
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
容错:`JSON.parse` 失败 → `action: skip, needs_review: true`,不阻断。
|
|
198
|
+
|
|
199
|
+
## 报告格式
|
|
200
|
+
|
|
201
|
+
```markdown
|
|
202
|
+
# Skill Upgrade Report
|
|
203
|
+
|
|
204
|
+
Generated: 2026-05-18 19:30 | Model: claude-opus-4-7
|
|
205
|
+
|
|
206
|
+
## Summary
|
|
207
|
+
|
|
208
|
+
| Metric | Count |
|
|
209
|
+
|--------|-------|
|
|
210
|
+
| Candidates scanned | 37 (23 agent-skills + 14 superpowers) |
|
|
211
|
+
| Matched to official | 12 |
|
|
212
|
+
| Action: upgrade | 5 |
|
|
213
|
+
| Action: merge | 4 |
|
|
214
|
+
| Action: skip | 3 |
|
|
215
|
+
| Unmatched | 25 |
|
|
216
|
+
|
|
217
|
+
## Per-Skill Decisions
|
|
218
|
+
|
|
219
|
+
### official-db-schema-design
|
|
220
|
+
- **Action**: upgrade
|
|
221
|
+
- **Confidence**: 85%
|
|
222
|
+
- **Candidate**: `agent-skills/database-design`
|
|
223
|
+
- **Reasoning**: 候选增加"分库分表策略"和"迁移工具对比"...
|
|
224
|
+
|
|
225
|
+
<!-- upgrade-entry: official-db-schema-design | <candidatePath> | upgrade -->
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
**机器可读标记**:HTML 注释 `<!-- upgrade-entry: <id> | <path> | <action> -->`;merge 用 `<!-- merged-content-begin -->...<!-- merged-content-end -->` 包裹合并内容。`--apply` 解析这些注释。
|
|
229
|
+
|
|
230
|
+
## 备份机制
|
|
231
|
+
|
|
232
|
+
```
|
|
233
|
+
~/.claude-forge/backups/skills/
|
|
234
|
+
└── 20260518-1930/
|
|
235
|
+
├── official-tdd.md
|
|
236
|
+
└── ... (所有 official .md 快照)
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
- 只在 `--apply` 触发备份
|
|
240
|
+
- `--rollback <ts>` 还原
|
|
241
|
+
- 复用 `FORGE_PATHS.backups('skills')`
|
|
242
|
+
- 同 ts 已存在则追加 `-2`、`-3`
|
|
243
|
+
|
|
244
|
+
## 错误处理
|
|
245
|
+
|
|
246
|
+
| 场景 | 处理 |
|
|
247
|
+
|------|------|
|
|
248
|
+
| git clone/pull 失败 | warn + 跳过该 source |
|
|
249
|
+
| AI JSON 解析失败 | needs_review,继续 |
|
|
250
|
+
| AI API 超时/5xx | retry 2 次失败 → error 标记 |
|
|
251
|
+
| `--apply` 工作树脏 | abort,提示先 commit |
|
|
252
|
+
| 候选无 frontmatter | 用文件名作 id,keywords=[] |
|
|
253
|
+
| 同 ts 备份冲突 | 后缀 -2 -3 |
|
|
254
|
+
|
|
255
|
+
## 改造范围
|
|
256
|
+
|
|
257
|
+
| 文件 | 操作 | 行数估计 |
|
|
258
|
+
|------|------|---------|
|
|
259
|
+
| `src/skills/upgrade-engine.ts` | 新增 | ~200 |
|
|
260
|
+
| `src/skills/upgrade-prompt.ts` | 新增 | ~60 |
|
|
261
|
+
| `src/cli/commands/skills.ts` | 加 upgrade 子命令 + 函数 | +80 |
|
|
262
|
+
| `src/core/constants.ts` | 加 `skillCandidates` 路径(可选)| +2 |
|
|
263
|
+
|
|
264
|
+
**不改动**:dist/、daemon、web 路由、hook、SkillRegistry、official-skills.ts。
|
|
265
|
+
|
|
266
|
+
## 测试策略
|
|
267
|
+
|
|
268
|
+
| 测试文件 | 内容 |
|
|
269
|
+
|---------|------|
|
|
270
|
+
| `tests/unit/skills/upgrade-engine.test.ts` | mock ClaudeProvider.complete → 三条路径;applyDecisions dry-run 不写;备份目录创建 |
|
|
271
|
+
| `tests/unit/skills/upgrade-prompt.test.ts` | system/user prompt 含必要字段;JSON 格式要求 |
|
|
272
|
+
| `tests/unit/skills/upgrade-engine-parse.test.ts` | AI 非 JSON → needs_review;合法 JSON 正确解析 |
|
|
273
|
+
|
|
274
|
+
集成测试可选:本地 mock .md 跑 dry-run 全流程。
|
|
275
|
+
|
|
276
|
+
## 风险与回滚
|
|
277
|
+
|
|
278
|
+
| 风险 | 缓解 |
|
|
279
|
+
|------|------|
|
|
280
|
+
| AI 误判覆盖好 skill | 默认 dry-run;apply 强制 backup;--rollback 还原 |
|
|
281
|
+
| 覆写后 build 错 | apply 后提示 `npm run build` 验证 |
|
|
282
|
+
| API 成本 | 仅 score>=30 调 AI;截 2000 字;预估 ~18K tokens / 12 matched |
|
|
283
|
+
| 候选仓库结构变化 | 单源失败不阻断 |
|
|
284
|
+
|
|
285
|
+
## 实施顺序
|
|
286
|
+
|
|
287
|
+
1. **upgrade-prompt.ts**(纯函数,无依赖)
|
|
288
|
+
2. **upgrade-engine.ts** — matchToOfficial → evaluateWithAI → pullCandidates → generateReport → applyDecisions
|
|
289
|
+
3. **cli/commands/skills.ts** — 注册 upgrade 子命令
|
|
290
|
+
4. (可选)`FORGE_PATHS.skillCandidates`
|
|
291
|
+
5. 测试:upgrade-prompt → upgrade-engine(mock)→ CLI e2e
|
|
292
|
+
|
|
293
|
+
## 命名遵循
|
|
294
|
+
|
|
295
|
+
- 文件:kebab-case
|
|
296
|
+
- 函数:动词开头 camelCase(`pullCandidates` / `matchToOfficial`)
|
|
297
|
+
- 类型:PascalCase(`CandidateSkill` / `UpgradeDecision`)
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# daemon skill 自动同步 Changelog
|
|
2
|
+
|
|
3
|
+
**Date**: 2026-05-18 20:00
|
|
4
|
+
**Status**: 完成
|
|
5
|
+
|
|
6
|
+
## 背景
|
|
7
|
+
类比 v8.51.1 hook-sync:npm 升级 dist/skills/official/ 但不会自动同步
|
|
8
|
+
~/.claude/skills/ 本地副本,SkillRegistry 优先级 user > official 加载
|
|
9
|
+
旧副本,导致 skill 残缺/功能错乱。
|
|
10
|
+
|
|
11
|
+
## 改动
|
|
12
|
+
- 新建 src/daemon/skill-sync.ts: syncSkills() sha256 比对自动同步
|
|
13
|
+
- daemon/index.ts 启动时调用(紧挨 syncHooks)
|
|
14
|
+
- 失败 logger.warn 不阻断
|
|
15
|
+
|
|
16
|
+
## 测试
|
|
17
|
+
- 5 case 单测全过
|
|
18
|
+
- 现有测试不退化
|
|
19
|
+
- tsc 0 errors
|
|
20
|
+
|
|
21
|
+
## 已知问题
|
|
22
|
+
- linkEventToTask pre-existing(sqlite-refactor-harness.test.ts)
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# AI 辅助 skill 升级 Changelog
|
|
2
|
+
|
|
3
|
+
**Date**: 2026-05-18 19:30
|
|
4
|
+
**Spec**: docs/design/skill-ai-upgrade-spec-20260518-1930.md
|
|
5
|
+
**Status**: 完成
|
|
6
|
+
|
|
7
|
+
## 完成清单
|
|
8
|
+
|
|
9
|
+
- [x] `src/skills/upgrade-prompt.ts` — buildEvaluationPrompt 纯函数
|
|
10
|
+
- [x] `src/skills/upgrade-engine.ts` — 5 个 pipeline 函数 + 全部类型定义
|
|
11
|
+
- [x] `src/cli/commands/skills.ts` — upgrade 子命令 + upgradeSkills() 函数
|
|
12
|
+
- [x] `src/core/constants.ts` — 新增 skillCandidates / skillUpgradeReport 路径
|
|
13
|
+
- [x] 单测 3 文件(44 个新测试用例全过)
|
|
14
|
+
|
|
15
|
+
## 关键代码定位
|
|
16
|
+
|
|
17
|
+
- `src/skills/upgrade-prompt.ts:14` — `buildEvaluationPrompt()` system/user prompt 构造
|
|
18
|
+
- `src/skills/upgrade-engine.ts:105` — `pullCandidates()` git clone/pull + .md 扫描
|
|
19
|
+
- `src/skills/upgrade-engine.ts:141` — `matchToOfficial()` Jaccard 关键词重叠评分(阈值 30/100)
|
|
20
|
+
- `src/skills/upgrade-engine.ts:183` — `evaluateWithAI()` AI 调用 + JSON 容错解析
|
|
21
|
+
- `src/skills/upgrade-engine.ts:237` — `generateReport()` markdown + HTML 注释机器标记
|
|
22
|
+
- `src/skills/upgrade-engine.ts:284` — `applyDecisions()` git status 检查 + 备份 + 写文件
|
|
23
|
+
- `src/cli/commands/skills.ts:126` — `upgradeSkills()` 全流程协调(dry-run / apply / rollback)
|
|
24
|
+
|
|
25
|
+
## 测试结果
|
|
26
|
+
|
|
27
|
+
- 新增测试: 44 passed(upgrade-prompt: 11, upgrade-engine: 22, upgrade-engine-parse: 11)
|
|
28
|
+
- tsc: 0 errors
|
|
29
|
+
- npm test: 614 passed / 615 total(1 pre-existing failure: linkEventToTask)
|
|
30
|
+
- build: 成功
|
|
31
|
+
|
|
32
|
+
## 实施决策
|
|
33
|
+
|
|
34
|
+
1. **ClaudeProvider.complete() 接口**: 使用 `complete(prompt, options)` 形式,其中 `options.system` 传递 system prompt。经查 `src/core/ai/provider.ts` 确认签名。
|
|
35
|
+
|
|
36
|
+
2. **require('node:fs') 用于同步读文件**: `parseCandidateFile` 使用同步 `readFileSync`,通过 `require('node:fs')` 调用(ESM 模块中已有 `import fs` 但需要同步读取)。
|
|
37
|
+
|
|
38
|
+
3. **matchToOfficial 评分策略**: 采用 keyword overlap(权重 60%)+ name/description token overlap(权重 40%)的加权 Jaccard 相似度,而非简单字符串匹配。
|
|
39
|
+
|
|
40
|
+
4. **evaluateWithAI markdown fence 剥离**: AI 模型有时会将 JSON 包裹在 `\`\`\`json` 代码块中,在 JSON.parse 前统一剥离。
|
|
41
|
+
|
|
42
|
+
5. **applyDecisions git status**: 使用 `git status --porcelain <officialDir>` 检查工作树。若目标目录不在 git 仓库中(如测试用 tmp 目录),warn 并继续(不 abort)。
|
|
43
|
+
|
|
44
|
+
6. **备份冲突后缀**: 对 `<YYYYMMDD-HHMM>` 时间戳已存在时,自动追加 `-2`、`-3` 等后缀,通过循环 `fs.access` 找到可用路径。
|
|
45
|
+
|
|
46
|
+
## 已知问题
|
|
47
|
+
|
|
48
|
+
- `linkEventToTask` 测试失败:pre-existing,与本次改动无关
|
|
49
|
+
- 手测 deferred:网络环境未验证 git clone 实际可达性;dry-run 流程逻辑已通过 mock 测试覆盖
|